AI Builder - Code Development
This skill implements backlogs through a structured feature-driven approach. As a Software Engineer expert, you'll read backlog requirements, reference existing features, design implementation approach, write code, and create comprehensive documentation for the features knowledge base.
When to Use This Skill
- User asks to implement a backlog
- User requests to complete a feature, change, bug fix, or improvement
- User says "develop backlog X"
- User wants to implement work from sprint
- User asks to code a specific backlog item
Prerequisites
This skill requires:
04-prd/- Product Requirements Document (business requirements and acceptance criteria)07-tech-specs/- Engineering standards and constraints10-sprints/folder with active sprint and backlogsfeatures/folder with features-index.md (existing features knowledge base)- Understanding of the backlog type: FEATURE, CHANGE, BUG, or IMPROVE
Feature-Driven Development Workflow
CRITICAL: This skill follows a strict feature-driven approach where feature-name is the index for the entire project:
For Each Backlog:
- Read
backlogfrom10-sprints/SPRINT-XX-descriptive-name/[BACKLOG_TYPE]-XX-[feature-name]-<sub-feature>.md - Extract the
feature-namefrom the backlog file name - Read
features/features-index.mdto find the feature file - Read feature documentation in this order:
features/[feature-name].md- Feature definition (WHAT/WHY/SCOPE)features/flows/[feature-name].md- User flows and process flows (if exists)features/contracts/[feature-name].md- API/data contracts (if exists)features/impl/[feature-name].md- Implementation notes (if exists)
- Locate source code at
{SRC}/usingfeatures/impl/[feature-name].md - Implement the code following
07-tech-specs/ - Update
backlogwith development notes
This approach ensures AI developers can work on large projects without reading all code at once.
Your Roles in This Skill
See dev-swarm/docs/general-dev-stage-rule.md for role selection guidance.
Role Communication
See dev-swarm/docs/general-dev-stage-rule.md for the required role announcement format.
Instructions
Follow these steps in order for coding development:
Step 0: Verify Prerequisites and Gather Context
IMPORTANT: Follow this exact order to efficiently locate all relevant context:
-
Identify the backlog:
- User specifies which backlog to work on
- Or you select next backlog from
10-sprints/in order
10-sprints/ └── SPRINT-XX-descriptive-name/ └── [BACKLOG_TYPE]-XX-[feature-name]-<sub-feature>.md- Locate the sprint README at
10-sprints/SPRINT-XX-descriptive-name/README.mdfor required progress log updates
-
Read the backlog file:
- Understand task description and requirements
- Note backlog type (FEATURE/CHANGE/BUG/IMPROVE)
- Extract the
feature-namefrom the file name (CRITICAL) - Verify
Feature Namein backlog metadata matches the file name - If they do not match, stop and ask the user to confirm the correct feature name
- Review test plan requirements
- Identify acceptance criteria
-
Read source code structure standards:
- Read
dev-swarm/docs/source-code-structure.mdfor general guidelines - Note file naming conventions and directory structure
- Read
-
Read PRD and tech specs:
- Read
04-prd/(all markdown files) - Product requirements and acceptance criteria for the feature - Read
07-tech-specs/(all markdown files) - Technical specifications and engineering standards - Understand the business context and technical constraints
- Read
-
Read feature documentation (using feature-name as index):
- Read
features/features-index.mdto confirm feature exists - Read
features/[feature-name].md- Feature definition (WHAT/WHY/SCOPE) - Read
features/flows/[feature-name].md- User flows (if exists) - Read
features/contracts/[feature-name].md- API contracts (if exists) - Read
features/impl/[feature-name].md- Implementation notes (if exists)
- Read
-
Locate existing source code:
- Use
features/impl/[feature-name].mdto find code locations - Navigate to
{SRC}/directory - Review existing code structure and patterns
- Identify files to modify (CHANGE/BUG/IMPROVE) or create (FEATURE)
- Use
-
Understand codebase patterns:
- Review existing code in
{SRC}/using locations fromfeatures/impl/[feature-name].md - Note architectural patterns and integration points
- Review existing code in
DO NOT read the entire codebase. Use features/impl/[feature-name].md to find only relevant files in {SRC}/.
Step 1: Design the Implementation
Before writing code, create the feature design document:
-
Create/Update file
features/{feature-name}.md- If backlog type is
featureand the related feature file is not exist, create new feature file - If backlog type is
change/bug/improveor the feature file is exist, update existing feature file - Use the provided templates for consistency
- If backlog type is
-
Create/update
flowandcontractfiles if it is neededfeatures/flows/{feature-name}.md- User flows and process flows (when needed)features/contracts/{feature-name}.md- API contracts and interfaces (when needed)
-
Present design to user for approval
- Show the feature design document
- Explain approach and rationale
- Highlight any assumptions or decisions
- Wait for user confirmation before proceeding
Step 2: Implement the Code (After User Confirms)
Once user approves the design:
-
Organize code in {SRC}/:
- Follow
dev-swarm/docs/source-code-structure.mdfor file organization guidelines - Place code in appropriate locations within
{SRC}/ - Use file naming conventions defined in source-code-structure.md
- Follow
-
Write the code:
- Implement according to the approved design
- Follow coding standards
- Write clean, modular, maintainable code
- Include appropriate error handling
- Avoid over-engineering (keep it simple)
-
Code quality guidelines:
- Modular: Break code into small, focused functions/components
- Readable: Clear variable names, self-documenting code
- Simple: Don't add features not in requirements
- Consistent: Match style of existing codebase
- Secure: No XSS, SQL injection, command injection, or OWASP vulnerabilities
- Tested: Code should be testable per backlog test plan
-
What NOT to do:
- Don't add extra features beyond requirements
- Don't over-abstract or create unnecessary helpers
- Don't add comments to code you didn't change
- Don't refactor code outside scope of backlog
- Don't add hypothetical error handling
- Don't create backwards-compatibility hacks
-
For different backlog types:
Feature (new functionality):
- Create new files/components
- Integrate with existing system
- Follow established patterns
Change (modify existing feature):
- Update existing code
- Maintain compatibility where needed
- Update related code if necessary
Bug (fix defect):
- Fix the specific issue
- Avoid changing unrelated code
- Verify fix matches test plan
Improve (optimize existing code):
- Refactor/optimize as specified
- Maintain same functionality
- Document performance improvements
Step 3: Create Implementation Documentation
After code is complete, create implementation documentation:
-
Create
features/impl/{feature-name}.mdFiles Changed:
- List all files created or modified
- For each file, note key changes
- Use file paths, function names as keywords (NOT line numbers)
Implementation Details:
- Describe how the feature was implemented
- Key functions/components created
- Integration points with other features
- Any important implementation decisions
Code Structure:
- Directory organization
- Module/component breakdown
- Dependencies added
Key Functions/APIs:
- List important functions with descriptions
- Document key API endpoints
- Note important classes/components
Reference for Developers:
- Quick keywords for code search
- How to find relevant code
- Common use patterns
-
Update
features/{feature-name}.mdif needed- Add any insights discovered during implementation
- Note if actual implementation differs from design (explain why)
- Keep it synchronized with current code
-
Update
features/features-index.mdif needed -
Update or create
{SRC}/README.md(Project Documentation):- IMPORTANT: Developers should maintain project documentation in
{SRC}/README.md, NOT in the root README.md - Add or update feature documentation:
- Feature overview and purpose
- Installation and setup instructions
- Usage examples and API documentation
- Configuration options
- Troubleshooting tips
- Keep
{SRC}/README.mdas the primary technical reference for developers - Include links to
features/documentation for detailed specs
- IMPORTANT: Developers should maintain project documentation in
Step 4: Verify Against Test Plan
Before marking complete:
-
Review backlog test plan:
- Ensure code meets all test requirements
- Verify acceptance criteria are met
-
Self-test (if possible):
- Run the code
- Test key functionality
- Verify no obvious errors
-
Document test status:
- Note if manual testing was done
- List any test results
- Flag anything needing QA attention
Step 5: Finalize and Commit
CRITICAL: Follow this process to safely commit changes and update tracking:
-
Update Tracking Files:
- Update
backlog.md:- Change status from "Not Started" to "In Code Review"
- Add "Development Notes" section:
- Files Created/Modified: List changes
- Implementation Approach: Summary of work
- Key Decisions: Technical choices
- Links: To feature docs and impl docs
- Update
10-sprints/.../README.md:- Update status in table
- Add progress log entry
- Update
-
Request Human Review:
- Present the work and the plan to commit
- Ask user: "Please review the changes. If approved, I will commit the code and update the backlog."
- Wait for approval.
-
Commit the Code (Content):
- Run
git add .to stage all changes - Unstage the backlog file and sprint README (
git reset HEAD <path-to-backlog> <path-to-sprint-readme>) to keep metadata separate - Check if there are staged changes:
- If yes:
- Draft conventional commit message (e.g., "feat: implement [feature-name]")
- Commit:
git commit -m "feat: ..." - Get Commit ID:
git rev-parse --short HEAD
- If no (only docs/metadata changed):
- Skip to next step
- If yes:
- Run
-
Update Backlog with Commit ID:
- If a code commit was made, append "Implementation Commit:
[commit-id]" to the "Development Notes" inbacklog.md
- If a code commit was made, append "Implementation Commit:
-
Commit the Backlog (Metadata):
- Stage
backlog.mdand sprintREADME.md - Commit:
git commit -m "docs([feature-name]): update backlog status to In Code Review"
- Stage
-
Notify user:
- Confirm completion
- Suggest next step: "Ready for code review"
This two-step commit process ensures code history is preserved before the backlog is updated with the commit reference.
Expected File Structure
project-root/
├── 10-sprints/
│ └── SPRINT-XX-descriptive-name/
│ └── [BACKLOG_TYPE]-XX-[feature-name]-<sub-feature>.md # Backlog entry point
│
├── features/ # Features knowledge base
│ ├── features-index.md # Index of all features
│ ├── [feature-name].md # Feature definition (WHAT/WHY/SCOPE)
│ ├── flows/
│ │ └── [feature-name].md # User flows (if needed)
│ ├── contracts/
│ │ └── [feature-name].md # API contracts (if needed)
│ └── impl/
│ └── [feature-name].md # Implementation notes (code locations)
│
└── {SRC}/ # Source code
├── README.md # Project documentation (maintained by developers)
└── [organized per dev-swarm/docs/source-code-structure.md guidelines]
File Templates
features-index.md
# Features Index
- [feature name a](feature-name-a.md)
- [feature name b](feature-name-b.md)
- feature.md
# Title
## Description
[The overview for this feature's implementation, for approval, codeo review, trouble shooting or further development]
## References
The details of this feature's implementation
* [flow](flows/feature-name.md)
* [contract](contracts/feature-name.md)
* [Implement](impl/feature-name.md)
-
flows/feature-name.md- help to understand the code logic- User flow diagrams (mermaid)
- Process flows and sequence diagrams
- State transitions
- Integration flows
-
contracts/feature-name.md- the interface between services, pacakges, workflows- REST API used or endpoint definitions
- Request/response schemas
- Data models and database schemas
- Event contracts
-
impl/feature-name.md- help to find the code location in the source code file for codeo review, trouble shooting or further development- searchable keywords - function name, class name, even comment text in the file
- file path
- Dependencies and integration details
- Avoid citing line numbers in the code file as any code change will affect the line numbers