Thank you for your interest in contributing to AD-SDLC! This document provides guidelines and instructions for contributing.
Please read and follow our Code of Conduct to maintain a welcoming environment for all contributors.
- Node.js 18+
- Git 2.30+
- GitHub CLI (
gh) 2.0+ - Claude Code CLI
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/claude_code_agent.git cd claude_code_agent - Install dependencies:
npm install
- Create a feature branch:
git checkout -b feature/your-feature-name
Use descriptive branch names following this pattern:
feature/description- New featuresfix/description- Bug fixesdocs/description- Documentation updatesrefactor/description- Code refactoringtest/description- Test additions or updates
We use Conventional Commits. Each commit message should follow this format:
type(scope): description
[optional body]
[optional footer(s)]
feat: A new featurefix: A bug fixdocs: Documentation only changesstyle: Changes that don't affect the meaning of the coderefactor: Code change that neither fixes a bug nor adds a featureperf: Performance improvementtest: Adding or updating testschore: Changes to build process or auxiliary toolsci: Changes to CI configuration
feat(agent): add token usage tracking to collector
fix(workflow): resolve race condition in parallel worker execution
docs(readme): add CI/CD section with workflow descriptions
All commit messages must be written in English.
When using AI assistants (like Claude) for code generation:
- Do NOT include AI-generated signatures in commits
- Do NOT add "Generated by Claude" or similar attribution
- Do NOT include "Co-Authored-By: Claude" or AI-related co-author tags
- Code ownership and responsibility belong to the human committer
This ensures clean git history and proper accountability for all contributions.
- Run linter before committing:
npm run lint - Run formatter:
npm run format - Ensure all tests pass:
npm test
We use standardized comment markers to track technical debt in the codebase. These markers help identify areas that need improvement and ensure debt is visible and actionable.
| Marker | Purpose | When to Use |
|---|---|---|
// TODO: |
Future improvements | Features to add, optimizations to make |
// FIXME: |
Known bugs or issues | Code that works but has problems |
// HACK: |
Temporary workarounds | Quick fixes that need proper solutions |
// NOTE: |
Important context | Non-obvious behavior explanations |
// TODO: Add caching to reduce API calls
// Description of what needs to be done and why.
// Optional: link to related issue #123
// FIXME: Race condition when multiple workers access same file
// Current workaround is retry logic, but proper locking is needed.
// HACK: Using setTimeout to wait for external service
// Should implement proper event-driven approach.- Explain why - Not just what, but why it's needed
- Link issues when applicable - Use
#issue-numberfor tracking - Keep comments updated - Remove when fixed, update if scope changes
- Be specific - Vague comments like "TODO: fix this" are not helpful
# List all TODOs
npm run todo
# List all TODOs, FIXMEs, and HACKs
npm run todo:all
# VS Code users: Install "Todo Tree" extension for sidebar view- Write tests for new features
- Update tests when modifying existing functionality
- Aim for 80%+ code coverage
# Run all tests
npm test
# Run tests with coverage
npm test -- --coverage
# Run specific test file
npm test -- path/to/test.spec.ts
# Run E2E tests only
npm run test:e2e
# Run unit tests only
npm test -- tests/controller| Category | Location | Description |
|---|---|---|
| Unit Tests | tests/{module}/ |
Individual component testing |
| E2E Tests | tests/e2e/ |
Full pipeline and integration testing |
| Orchestration Tests | tests/e2e/orchestration.e2e.test.ts |
Multi-agent coordination and parallel worker execution |
The orchestration tests (tests/e2e/orchestration.e2e.test.ts) validate:
- Controller → Worker distribution: Work order assignment and tracking
- State persistence: Controller state save/restore between runs
- Parallel execution: 3-5 concurrent workers without conflicts
- Resource contention: Priority queue and concurrent access handling
- Deadlock prevention: Interleaved operations without blocking
- Failure recovery: Worker failure handling and task reassignment
- Ensure your code follows the style guidelines
- Update documentation if needed
- Add or update tests as appropriate
- Run the full test suite locally
- Rebase on the latest
mainbranch
- Push your changes to your fork
- Create a Pull Request using the PR template
- Fill out all sections of the template
- Link related issues using
Closes #issue-number - Request review from maintainers
- Automated checks must pass (lint, test, build)
- At least one maintainer approval required
- Address review feedback promptly
- Squash commits if requested
Use the Bug Report template and include:
- Clear description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Environment details
- Relevant logs or screenshots
Use the Feature Request template and include:
- Problem statement
- Proposed solution
- Alternatives considered
- Priority assessment
claude_code_agent/
├── .github/ # GitHub configuration
│ ├── workflows/ # CI/CD workflows
│ ├── ISSUE_TEMPLATE/ # Issue templates
│ ├── CODEOWNERS # Code ownership
│ └── pull_request_template.md
├── .claude/ # Claude agent definitions
│ └── agents/
├── .ad-sdlc/ # AD-SDLC configuration
├── docs/ # Documentation
├── src/ # Source code
└── tests/ # Test files
Releases are automated via GitHub Actions:
- Maintainer creates a version tag:
git tag v1.2.3 - Push the tag:
git push origin v1.2.3 - Release workflow builds, tests, and publishes
- GitHub Release is created with auto-generated notes
We follow Semantic Versioning:
- MAJOR: Breaking changes
- MINOR: New features (backward compatible)
- PATCH: Bug fixes (backward compatible)
If you have questions, feel free to:
- Open a Discussion
- Check existing Issues
- Review the Documentation
Thank you for contributing!