Contributing
We are open to contributions. Please open an issue or a pull request on GitHub.
Project Structure
lead-dev-os is distributed as a Claude Code plugin. The plugin lives at lead-dev-os/ in the repository root:
lead-dev-os/ # The plugin
├── .claude-plugin/
│ └── plugin.json # Plugin metadata
├── skills/ # Flat skill directories (no nesting)
│ ├── configure-project/ # Project configuration
│ │ ├── SKILL.md
│ │ ├── templates/ # Templates for target project files
│ │ │ ├── agents.md # → agents-context/AGENTS.md
│ │ │ ├── claude.md # → CLAUDE.md framework section
│ │ │ ├── readme.md # → agents-context/README.md
│ │ │ └── workflow.md # → agents-context/guides/workflow.md
│ │ ├── examples/
│ │ │ └── readme-filled.md # Example of a mature README.md
│ │ ├── standards-global/ # Global standards (always copied)
│ │ └── standards-testing/ # Testing standards (always copied)
│ ├── plan-product/ # Strategic: product mission
│ ├── plan-roadmap/ # Strategic: feature roadmap
│ ├── define-standards/ # Strategic: coding standards
│ ├── create-or-update-concepts/ # Strategic: codebase → concept files
│ ├── step1-write-spec/ # Tactical: requirements → spec
│ ├── step2-scope-tasks/ # Tactical: spec → task groups
│ ├── step3-implement-tasks/ # Tactical: task execution
│ └── step4-archive-spec/ # Tactical: archive completed spec
Testing
Tests live in tests/ and cover both the plugin structure and legacy install behavior.
Run all tests
./tests/run_all.sh
Test suites
| Suite | File | What it tests |
|---|---|---|
| Plugin structure | tests/test_plugin_structure.sh | plugin.json valid, all 9 skill dirs exist, configure-project skill has bundled standards |
| Skill content | tests/test_skill_content.sh | No placeholders, all cross-refs namespaced, no config.yml refs, valid frontmatter |
| Content bundle | tests/test_content_bundle.sh | All global standards present, CLAUDE.md namespaced, README updated |
| Update settings | tests/test_update_settings.sh | update-settings.sh creates/appends deny rules, idempotent |
| Unit | tests/test_common_functions.sh | ensure_dir, ensure_gitkeep, copy_if_not_exists, copy_with_warning, print_verbose |
| Integration: creates | tests/test_install_creates.sh | Fresh install produces all expected files (legacy installer) |
| Integration: overwrites | tests/test_install_overwrites.sh | Re-install overwrites skills/guides, preserves concepts/standards (legacy installer) |
| Integration: help | tests/test_install_help.sh | –help flag behavior (legacy installer) |
| Integration: stack config | tests/test_stack_config.sh | Stack config, profiles, plan mode (legacy installer) |
Conventions
- Plugin skills use flat directories (no
strategic/ortactical/nesting) - All skill cross-references use the
/lead-dev-os:namespace - Templates and examples are co-located with their skills
- No
config.ymlreferences in plugin skills — stack selection is interactive
Support
For support, please open a GitHub issue. We welcome bug reports, feature requests, and questions about using Spec-Driven Development.
License
MIT License