Implement code changes based on approved atomic specs. Executes one atomic spec at a time, gathers evidence, and escalates if implementation reveals spec gaps. Use after spec group approval.
Before beginning work, read these files for project-specific guidelines:
.codex/memory-bank/best-practices/subagent-design.mdBefore starting, read trace files for the modules you will be modifying. Treat trace data as advisory -- verify critical assumptions (file existence, export availability) against source before irreversible decisions.
How to resolve relevant traces:
.codex/traces/trace.config.json and match each file path against module fileGlobs to find the owning module ID.codex/traces/low-level/<module-id>.jsonmtime against the staleness threshold (use isTraceStale(moduleId, config) from .codex/scripts/lib/trace-utils.mjs if available). Stale traces are still useful but verify critical assumptions against source.codex/traces/ directory, trace.config.json, or matching modules exist, skip this section entirely and proceed without traces -- no error or warning neededToken budget: Keep total trace reads under 5K tokens in dispatch context.
Before beginning work, address these operational feasibility questions:
If any question cannot be answered from available context, surface it as a finding -- do not skip.
Execute implementation from approved atomic specs with full traceability to requirements.
Key Input: Atomic specs from .codex/specs/groups/<spec-group-id>/atomic/
/implement <spec-group-id> # Implement all atomic specs in order
/implement <spec-group-id> <atomic-spec-id> # Implement specific atomic spec
/implement <spec-group-id> --parallel # Dispatch parallel implementers per atomic spec
Before using this skill, verify:
.codex/specs/groups/<spec-group-id>/APPROVED in manifest.jsonatomic/ directoryatomic_specs exists in manifest, verify atomic_specs.enforcement_status: "passing". For oneoff-spec workflows (no atomic specs), enforcement is not required — skip this check.If prerequisites not met → STOP and resolve before implementing.
Check for existing session state to enable resuming mid-implementation:
# Check session checkpoint
cat .codex/context/session.json | jq '.phase_checkpoint'
If atomic_specs_pending has values, use those as the implementation queue instead of starting fresh. This enables cross-session recovery if implementation was interrupted.
{
"phase_checkpoint": {
"phase": "implementing",
"atomic_specs_pending": ["as-003", "as-004"],
"atomic_specs_complete": ["as-001", "as-002"],
"last_completed": "as-002"
}
}
If no checkpoint exists or phase is not implementing, proceed with full atomic spec list from Step 2.
Read: .codex/specs/groups/<spec-group-id>/manifest.json
Read: .codex/specs/groups/<spec-group-id>/requirements.md
Read: .codex/specs/groups/<spec-group-id>/spec.md
List: .codex/specs/groups/<spec-group-id>/atomic/*.md
Verify in manifest.json:
review_state is APPROVEDatomic_specs exists in manifest (orchestrator workflow): atomic_specs.enforcement_status is passingatomic_specs is absent (oneoff-spec workflow): skip enforcement check.codex/specs/groups/<spec-group-id>/atomic/
├── as-001-logout-button-ui.md
├── as-002-token-clearing.md
├── as-003-post-logout-redirect.md
└── as-004-error-handling.md
Each atomic spec is independently implementable. Execute in order (as-001, as-002, etc.).
Before making changes, study existing patterns:
For each atomic spec:
Update atomic spec frontmatter: