Always perform in order:
-
Confirm Location
python3 scripts/resolve_project_dir.py
Store the output as the absolute project directory. Use it for all reads/writes of
features.jsonandprogress.md. -
Review Recent Work
git log --oneline -10
Read
progress.mdto understand previous sessions. This step is mandatory — it provides the context from prior sessions that enables continuity across context windows. -
Review Feature Status Read
features.jsonto see:- Current sprint status
- Completed features
- In-progress features
- Pending features
- Dependencies
-
Verify Project State Run lint and build commands (see project's AGENTS.md).
⚠️ If broken, fix existing issues before starting new work.
Always perform:
- Update
progress.mdwith session summary - Update
features.jsonif feature complete - Ensure no lint/build errors
- Commit all changes — this is critical for maintaining project state across sessions:
Never skip the commit step. Each session must end with a clean commit so the next session can start fresh.
git add features.json progress.md [implementation files] git commit -m "feat(<scope>): <description>"
Choose ONE feature per session. Prioritize:
- Features from current in-progress sprint
- High-priority pending features with completed dependencies
- Features that build on recent work
Before coding:
- Read acceptance criteria carefully
- Review technical notes
- Verify dependencies are satisfied
- Identify affected files
- Plan implementation approach
Write a brief plan covering:
- Which files will be modified
- What patterns to follow
- What tests to write
- Potential challenges
Key principles:
- Small Commits - Frequent, logical commits
- Test Continuously - Verify each change
- Stay Focused - Don't scope-creep
- Follow Conventions - Match existing code style
Commit message format:
<type>(<scope>): <description>
[optional body]
Feature: <feature-id>
Types: feat, fix, refactor, test, docs, chore, style
Check all acceptance criteria:
- Each criterion can be demonstrated
- Happy path works
- Error scenarios handled
- Edge cases considered
Add entry at top of sessions section:
## Session N - YYYY-MM-DD
**Agent**: Coding Agent
**Sprint**: [Sprint ID]
**Feature**: [Feature ID and title]
### Implementation
- [What was implemented]
- [Key decisions made]
### Files Changed
- path/to/file.ts - [brief description]
- path/to/another.ts - [brief description]
### Tests Performed
- [How the feature was verified]
- [What scenarios were tested]
### Issues Encountered
- [Any blockers or bugs found]
- [How they were resolved]
### Acceptance Criteria Status
- [x] Criterion 1
- [x] Criterion 2
- [ ] Criterion 3 (if incomplete, explain why)
### Next Steps
- [Recommended next feature or follow-up]Only update feature status field:
{
"id": "s1-feat-001",
"status": "completed" // or "in_progress"
}| Status | When to Use |
|---|---|
pending |
Not started |
in_progress |
Currently being worked on |
completed |
Fully implemented and tested |
blocked |
Cannot proceed due to blocker |
Before marking feature complete:
-
Functional Testing
- Test as a user would interact
- Verify all acceptance criteria
- Check happy path and errors
-
Cross-Platform Testing
- Test relevant platforms for the project
- See project's AGENTS.md for requirements
-
Technical Testing
- Lint passes (see AGENTS.md for command)
- Build succeeds (see AGENTS.md for command)
- Application starts without errors
- No console errors
☐ Happy path works
☐ Error handling works
☐ Responsive on all devices (if applicable)
☐ Theme compatibility (if applicable)
☐ Internationalization (if applicable)
☐ No console errors
☐ No lint errors
☐ Build passes
See examples.md for complete examples.
☐ All acceptance criteria met
☐ Lint passes
☐ Build succeeds
☐ Manual testing completed
☐ Code committed with descriptive message
☐ progress.md updated
☐ features.json status updated
☐ No TODO comments left
☐ No debug code remaining
☐ Feature complete (or clearly documented why not)
☐ No lint or build errors
☐ Code committed
☐ progress.md updated
☐ features.json updated (if feature complete)
☐ Application in working state
- One Feature Per Session - Don't try to do too much
- Always Leave Working Code - Never leave codebase broken
- Follow Acceptance Criteria - Implement exactly what's specified
- Follow Project Conventions - See project's AGENTS.md for code style
- Don't Modify features.json Lightly - Only change feature status
- Commit Frequently - Enable rollback
Stop immediately if you encounter:
- Build errors
- Lint errors
- Failing tests
- Application won't start
- Previously working feature broken
- Uncommitted changes from previous session
Fix these before proceeding with new work.