Thank you for your interest in contributing!
-
Clone the repo:
git clone https://github.com/akaszubski/autonomous-dev.git cd autonomous-dev -
Set up development environment:
python3 -m venv venv source venv/bin/activate # or `venv\Scripts\activate` on Windows pip install -r requirements.txt
-
Run tests:
pytest tests/
-
Make changes, commit, push:
git add -A git commit -m "feat: your change" git push
This repo has two audiences:
| Audience | Location | Purpose |
|---|---|---|
| Contributors | Root level | Building/developing the plugin |
| Users | plugins/autonomous-dev/ |
Using the plugin |
autonomous-dev/
├── README.md # User-facing documentation
├── CLAUDE.md # Instructions for Claude Code
├── PROJECT.md # Project goals, scope, constraints
├── CONTRIBUTING.md # This file
├── CHANGELOG.md # Version history
│
├── plugins/autonomous-dev/ # THE PLUGIN (distributed to users)
│ ├── commands/ # 10 slash commands (9 core + 1 utility)
│ ├── agents/ # 20 AI agents
│ ├── skills/ # 28 skill packages
│ ├── hooks/ # Automation hooks
│ ├── lib/ # 29 Python libraries
│ ├── scripts/ # User scripts (setup.py, etc.)
│ ├── templates/ # Templates for settings, projects
│ ├── config/ # Configuration files
│ └── docs/ # User documentation
│
├── docs/ # Developer documentation
│ ├── ARCHITECTURE.md # System architecture
│ ├── DEVELOPMENT.md # Development guide
│ ├── AGENTS.md # Agent reference
│ └── ... # Other dev docs
│
├── tests/ # Test suite
│ ├── unit/ # Unit tests
│ ├── integration/ # Integration tests
│ └── ...
│
└── scripts/ # Development scripts
For users - Gets installed when someone uses the plugin.
commands/- Slash command definitions (.mdfiles)agents/- AI agent prompts (.mdfiles)skills/- Knowledge packages for agentshooks/- Python automation scriptslib/- Reusable Python librariesdocs/- User-facing documentation (TROUBLESHOOTING, COMMANDS, etc.)
For contributors - Development resources, not distributed.
docs/- Developer documentation (ARCHITECTURE, DEVELOPMENT, etc.)tests/- Test suitescripts/- Development scripts
-
Create the command file:
vim plugins/autonomous-dev/commands/my-command.md
-
Follow the command template:
--- description: Short description for autocomplete --- # /my-command [Command instructions here]
-
Test and commit:
pytest tests/ git add plugins/autonomous-dev/commands/my-command.md git commit -m "feat: add /my-command"
-
Create the agent file:
vim plugins/autonomous-dev/agents/my-agent.md
-
Follow agent conventions (see existing agents for examples)
-
Register in CLAUDE.md if it's a core workflow agent
-
Create skill directory:
mkdir plugins/autonomous-dev/skills/my-skill vim plugins/autonomous-dev/skills/my-skill/SKILL.md
-
Follow skill template (see existing skills)
-
Create in
plugins/autonomous-dev/lib/:vim plugins/autonomous-dev/lib/my_library.py
-
Follow the two-tier design pattern:
- Core logic as functions/classes
- CLI wrapper with
if __name__ == "__main__"
-
Add tests in
tests/ -
Document in
docs/LIBRARIES.md
- Style: PEP 8, enforced by black/ruff
- Type hints: Required for public APIs
- Docstrings: Google style
- Security: Use
lib/security_utils.pyfor path/input validation
- Commands: Must have YAML frontmatter with
description - Agents: Clear purpose, tool restrictions, output format
- Skills: Progressive disclosure (summary → details)
Follow Conventional Commits:
feat: add new feature
fix: fix a bug
docs: update documentation
chore: maintenance tasks
refactor: code refactoring
test: add or update tests
pytest tests/# Unit tests only
pytest tests/unit/
# Integration tests only
pytest tests/integration/
# Specific test file
pytest tests/unit/test_security_utils.pyThe repo has pre-commit hooks that run automatically:
- Structure validation
- Command implementation checks
- Documentation link validation
-
Create a branch:
git checkout -b feat/my-feature
-
Make changes and test:
pytest tests/
-
Commit with descriptive message:
git commit -m "feat: add feature X for issue #123" -
Push and create PR:
git push -u origin feat/my-feature gh pr create --title "feat: add feature X" --body "Description..."
-
Address review feedback
-
Merge when approved
Claude Code caches commands at startup. After modifying commands:
- Fully quit Claude Code (
Cmd+Q/Ctrl+Q) - Wait 5 seconds
- Restart Claude Code
For local testing, sync plugin files to your project's .claude/:
/sync --devVerify plugin integrity:
/health-check- Issues: GitHub Issues
- Documentation: See
docs/folder - Architecture:
docs/ARCHITECTURE.md - Development Guide:
docs/DEVELOPMENT.md
MIT License - See LICENSE for details.