Execute tasks from .forge/tasks.yaml one at a time using thin vertical slices. Reads the task's contracts, implements the minimum code to satisfy acceptance criteria, and commits after each task. Use when .forge/tasks.yaml exists and implementation is starting.
Pick the next ready task from .forge/tasks.yaml, load its contracts from .forge/contracts/, implement using tdd discipline (red-green-refactor), verify against acceptance criteria, commit, and mark done. Repeat until all tasks are complete.
.forge/tasks.yaml exists with at least one unstarted taskplanning-and-task-breakdown firstarchitecture-and-contracts first| Thought |
|---|
| Reality |
|---|
| "I'll implement a few tasks together to go faster" | Mixing tasks blurs acceptance criteria and commit history |
| "I don't need to read the contract — I know the interface" | Contracts encode invariants and error types you'll miss |
| "I'll write tests after the implementation is working" | Then you're testing implementation, not behavior |
| "This small extra thing is obviously correct to add" | Scope creep is always "obviously correct" in the moment |
| "I'll commit everything at the end" | Atomic commits per task make revert and review tractable |
tasks.yamlfiles_likely_affectedRead .forge/tasks.yaml. Find all tasks where depends_on tasks are complete and the task is not started. Pick the highest-priority unblocked task (or ask the user if multiple are ready).
Read the task's acceptance criteria and verification steps. Read each contract listed in the task's contracts field from .forge/contracts/. Load only the files_likely_affected — don't read the whole codebase.
Follow the tdd skill. For this task's acceptance criteria:
RED: Write a failing test for the first acceptance criterion
GREEN: Write minimum code to make it pass
REPEAT for each acceptance criterion
REFACTOR: Clean up while keeping all tests green
Stay within the task's scope. Do not add features not in the acceptance criteria. Do not touch files outside files_likely_affected without explicit reason.
Run the verification steps listed in the task. All must pass:
git add <files>
git commit -m "[T001] <task title>
- Implements: <acceptance criterion 1>
- Implements: <acceptance criterion 2>
- Tests: <what the tests verify>"
Update .forge/tasks.yaml: set the task status to done. Check if any blocked tasks are now unblocked. Report progress to user.
Before marking any task done:
.forge/contracts/).forge/tasks.yaml updated with task status