<h1 align="center">
<a href="https://prompts.chat">
Sign in to like and favorite skills
This project uses Nocturnal for specification-driven development with AI agent integration. Specifications should be human-led - if a user asks for improvements to specs, remind them of this.
Nocturnal is a tool that brings structure to software development by managing specifications, proposals, rules, and maintenance tasks. It exposes project context to AI agents through MCP (Model Context Protocol).
Nocturnal uses a structured specification workflow with three document types per proposal:
| Document | Purpose |
|---|---|
| What to build - requirements using RFC 2119 language (MUST/SHOULD/MAY) |
| How to build it - architecture decisions, options considered, trade-offs |
| Progress tracking - phased tasks with checkboxes, testing plan |
spec/ ├── nocturnal.yaml # Configuration file ├── .nocturnal.json # State file (active proposals, hashes, maintenance tracking) ├── project.md # Project overview, goals, architecture ├── AGENTS.md # This file - instructions for AI agents ├── coding guidelines.md # Code style, testing, error handling conventions ├── specification guidelines.md # How to write specifications ├── design guidelines.md # How to write design documents ├── rule/ # Project-wide rules (MUST follow) │ └── *.md # Individual rule files ├── third/ # Third-party library/API documentation │ └── *.md # Documentation components (format: # name\ncontent\n---\n# name\ncontent) ├── proposal/ # Work in progress │ └── <slug>/ │ ├── specification.md # What to build (requirements) │ ├── design.md # How to build it (architecture) │ ├── implementation.md # Progress tracking (tasks) │ └── affected-files.txt # Optional: List of files this proposal modifies ├── section/ # Completed specifications (promoted) │ └── <slug>.md ├── archive/ # Archived design/implementation for completed/abandoned proposals │ └── <slug>/ │ ├── design.md │ ├── implementation.md │ └── .abandoned # Marker file if proposal was abandoned └── maintenance/ # Recurring operational tasks └── <slug>.md # Maintenance items with requirements
All MCP tools are unified - use optional parameters to switch between proposal and maintenance contexts.
| Tool | Description | Parameters |
|---|---|---|
| Get project rules, design, and active proposal/maintenance context. Returns integrity warnings if proposal files changed. | (optional): pass maintenance slug for maintenance context instead of proposal |
| Get current phase tasks or maintenance requirements. For proposals, shows first incomplete phase only. | (optional): pass maintenance slug for maintenance tasks |
| Mark a task/requirement as complete. If git.auto_commit is enabled, automatically commits changes. | (required): task ID like "1.1" or requirement ID (optional): required for maintenance items |
| List all available third-party documentation components | None |
| Search documentation by name - returns full content of matches | (required): search term |
| List all maintenance items with due/total requirement counts | None |
Proposal workflow:
context() # Get active proposal context tasks() # Get current phase tasks task_complete(id="1.1") # Mark task 1.1 complete
Maintenance workflow:
maintenance_list() # See all maintenance items context(maintenance_slug="dependency-updates") # Get requirements for dependency-updates tasks(maintenance_slug="dependency-updates") # Get due requirements task_complete(id="REQ-1", maintenance_slug="dependency-updates") # Mark REQ-1 complete
MCP prompts are guided workflows that help agents follow best practices:
| Prompt | Description | When to Use |
|---|---|---|
| Guide comprehensive proposal elaboration with design, steps, phases, and dependencies. Asks user questions to ensure 98% confidence. | Before implementing a new proposal - ensures thorough planning |
| Methodical implementation: investigate → plan tests → implement → validate → test. Fail-fast with validation checkpoints. | For careful, production-ready implementation |
| Fast autonomous implementation: implement quickly, move past blockers, document incomplete items | For rapid prototyping or proof-of-concept work |
| Execute due requirements for a maintenance item (params: slug: string) | When maintenance items show due requirements |
| Generate condensed library documentation for spec/third/ (params: urls: comma-separated URLs) | When adding new third-party dependencies |
| Write comprehensive specifications for all features of a new project following IETF RFC format | When starting a new project - before creating any proposals |
For New Projects:
populate-spec-sections to write comprehensive specifications for all features
spec/section/ following RFC formatFor Feature Development:
Planning Phase: Use
elaborate-spec to thoroughly design the proposal
Implementation Phase: Use
start-implementation or lazy
Maintenance: Use
start-maintenance for recurring tasks
Maintenance files use a special format with frequency tags:
## Requirements - [id=dep-update] [freq=weekly] Update npm dependencies - [id=security-audit] [freq=monthly] Run security audit - [id=backup-check] [freq=daily] Verify backup completion - [id=onetime-task] Setup CI/CD pipeline
Frequency values:
daily, weekly, biweekly, monthly, quarterly, yearly, or omit [freq=...] for always-due.
Proposals can declare dependencies in their specification.md using:
**Dependencies**: proposal-slug-1, proposal-slug-2
Dependencies must exist as completed specifications in
spec/section/ before a proposal can be activated.
context before starting work to get rules, spec, and designspec/rule/*.md are mandatory constraintsspec/coding guidelines.mdtasks to see current work, task_complete to mark donecontext returns an integrity warning about changed files, STOP and ask user to confirmmaintenance_list to see if any recurring tasks are duedocs_search to check available documentation