The hermes-spec plugin brings Spec-Driven Development (SDD) to Hermes Agent, inspired by Smart Ralph. It provides a structured workflow that guides you from idea to production through well-defined phases, each producing persistent artifacts.
- 11 Specialized Tools covering the full SDD lifecycle
- Profile-Aware Delegation automatically routes work to the right Hermes profile
- Skill Integration leverages existing Hermes skills (plan, test-driven-development, etc.)
- Persistent Artifacts stored in
.spec/directory, version-controllable - Progress Tracking with
spec_statusdashboard - Workflow Presets for common scenarios (greenfield, feature, bugfix, etc.)
- Graceful Degradation works with or without Graphiti/Graphify
- Quality Gates enforce completion of each phase before proceeding
The plugin is automatically installed in all Hermes profiles. To verify:
# Check if plugin is loaded (after restarting Hermes)
spec_statusIf you see "No .spec directory found", the plugin is loaded and ready.
# 1. Initialize a new spec project
spec_init --project_name "Task API" --goal "Build a REST API for task management"
# 2. Research phase
spec_research --focus "FastAPI best practices, async patterns"
# 3. Requirements
spec_requirements --format user_stories
# 4. Design
spec_design --include_diagrams true --arch_style monolith
# 5. Task breakdown
spec_tasks --time_unit hours --detail_level medium
# 6. Implementation (incremental)
spec_implement --work_incrementally true
# 7. Testing
spec_test --test_type both --coverage_threshold 80
# 8. Review
spec_review --focus all --fix_automatically true
# 9. Documentation
spec_docs --doc_type all --audience both
# 10. Check status
spec_statusInitialize a new spec-driven project.
Arguments:
project_name(string, required): Human-readable project namegoal(string, required): Brief description of project goal
Example:
spec_init --project_name "User Service" --goal "Microservice for user authentication and profiles"Perform research for the project. Delegates to researcher profile.
Arguments:
focus(string, optional): Specific area to focus onuse_graphiti(boolean, default: false): Query Graphiti for existing knowledgeuse_graphify(boolean, default: false): Run Graphify semantic search
Generate requirements from research. Delegates to writer profile.
Arguments:
format(enum: user_stories|use_cases|brief, default: user_stories): Output format
Create technical design from requirements. Delegates to coder profile.
Arguments:
include_diagrams(boolean, default: true): Include Mermaid diagramsarch_style(enum: microservices|monolith|layered|event-driven, optional): Preferred architecture
Break down design into hierarchical tasks. Uses planning methodology.
Arguments:
time_unit(enum: hours|days, default: hours): Estimation unitdetail_level(enum: high|medium|low, default: medium): Granularity
Implement features following task list. Delegates to coder profile.
Arguments:
start_from(string, optional): Task ID to start from (e.g., "T3")work_incrementally(boolean, default: false): Pause after each task
Run tests with TDD methodology. Delegates to coder profile.
Arguments:
test_type(enum: unit|integration|both|all, default: both): Test categoriescoverage_threshold(number, default: 80): Minimum coverage percentage
Perform code review. Delegates to coder profile with requesting-code-review skill.
Arguments:
focus(enum: security|style|performance|all, default: all): Review focusfix_automatically(boolean, default: false): Apply auto-fixes
Generate documentation. Delegates to writer profile.
Arguments:
doc_type(enum: readme|api|changelog|all, default: all): Documentation typesaudience(enum: end_users|developers|both, default: both): Target audience
Show workflow progress dashboard.
Arguments: None
Run code simplification and optionally remove .spec directory.
Arguments:
remove_spec_dir(boolean, default: false): Delete .spec after cleanuplevel(enum: light|moderate|aggressive, default: moderate): Cleanup intensity
Predefined workflows for common scenarios:
| Workflow | Description | Use Case |
|---|---|---|
greenfield |
Full SDD for new projects | Starting from scratch |
feature |
Add feature to existing project | New feature development |
bugfix |
Bug fix with root cause analysis | Production bug fixes |
refactor |
Safe refactoring with verification | Technical debt reduction |
migration |
Technology/framework migration | Major version upgrades |
release |
Release preparation and execution | Version releases |
documentation |
Comprehensive documentation | Docs-only projects |
api |
API design and implementation | REST/GraphQL APIs |
Workflows are YAML files in workflows/. Run each step sequentially:
# Example: greenfield workflow
spec_init --project_name "My Project" --goal "Build a blog platform"
spec_research --use_graphiti true --use_graphify true
spec_requirements --format user_stories
# ... continue through all stepsOr create a script to run them automatically.
All artifacts stored in .spec/ directory:
.spec/
├── metadata.json # Project metadata
├── research.md # Research findings
├── requirements.md # User stories, acceptance criteria
├── design.md # Technical architecture
├── tasks.md # Hierarchical task breakdown
├── implementation.md # Implementation notes
├── testing.md # Test results
├── review.md # Code review findings
├── documentation.md # User-facing docs
└── changelog.md # Version history (if generated)
| Phase | Hermes Profile | Skills Used |
|---|---|---|
| Research | researcher | web_search, Graphiti, Graphify |
| Requirements | writer | — |
| Design | coder | plan |
| Tasks | coder | plan |
| Implementation | coder | — |
| Testing | coder | test-driven-development |
| Review | coder | requesting-code-review |
| Documentation | writer | — |
| Cleanup | coder | simplify-code |
If installed, the plugin automatically uses them during research:
- Graphiti: Retrieves architecture decisions, past implementations, API knowledge
- Graphify: Semantic search over codebase for patterns and components
Enable with:
spec_research --use_graphiti true --use_graphify trueThe workflow enforces implicit quality gates:
- Research must complete before requirements
- Requirements must complete before design
- Design must complete before tasks
- Tasks must complete before implementation
- Implementation should pass tests before review
- Review should pass before documentation
Use spec_status to verify phase completion.
- Create a YAML file in
workflows/following the schema - Reference existing tools with appropriate arguments
- Document in this README
- Add schema and handler to
__init__.py - Register in
register(ctx)function - Update
plugin.yamlwith new tool name - Restart Hermes
Add templates to templates/ directory for:
- Spec file templates
- Diagram templates
- Documentation templates
- Restart Hermes session (required for plugin discovery)
- Verify
hermes-specinplugins.enabledin config.yaml - Verify
specintoolsetsin config.yaml
- Run
spec_initfirst to initialize the project
- Ensure target profile exists (coder, researcher, writer, etc.)
- Check Hermes logs for delegation errors
- Tools are optional; plugin works without them
- Verify MCP servers are running if enabled
See examples/ directory for complete project walkthroughs:
task-api/- REST API exampleblog-platform/- Full-stack examplemicroservice-migration/- Migration example
- Fork the plugin
- Add features/workflows
- Update documentation
- Submit PR
MIT License - See LICENSE file