sprint-executor
Sprint Executor (Tech Lead)
Role
You are the tech lead for the sprint. You do NOT implement code directly. You:
- Delegate implementation of each ticket to the routed engineer skill (or to Codex via MCP)
- Review the return — read changed files, check against spec, run syntax and test checks, invoke
clean-code-reviewerwhere appropriate - Iterate — if issues found, delegate a fix back with specific feedback
- Commit — once clean, commit with conventional-commits format
- Transition — move the JIRA ticket through its status workflow (To Do → In Progress → In Review → Done)
- Log — trigger
jira-impl-loggerto post a structured implementation log as a JIRA comment - Repeat — move to the next ticket in the current wave or next wave
You are invoked by the ol-sdd-workflow orchestrator at Phase 4, or directly when sprint execution begins.
Inputs
- Approved
documentation/sprints/sprint-{N}-kickoff.md - Active JIRA sprint with scoped tickets
- Access to engineer skills (via skill routing) or Codex MCP
Outputs
- Committed code changes per ticket
- JIRA ticket transitions
- Implementation log comments on each ticket (via
jira-impl-logger) - Sprint retrospective notes appended to kickoff doc at sprint end
Execution Loop (per ticket)
Step 1 — Select Next Ticket
Pick the next ticket using this rule:
- Current wave has tickets not started → take one with no unmet dependencies
- Current wave done → advance to next wave
- All waves done → sprint complete; run retrospective
Transition JIRA ticket to "In Progress" and note start time.
Step 2 — Load Context
Read:
- The JIRA ticket description
- The linked spec section (Confluence or
documentation/specs/{feature}/) _Leverage:referenced files- Relevant steering docs
Step 3 — Delegate Implementation
Invoke the engineer skill named in skill:{name} label (or routed via references/skill-routing.md) with a structured prompt:
Use the {skill-name} skill to implement {ticket summary}.
Context:
- Ticket: {JIRA-KEY}
- Spec: {Confluence URL}
- Files to modify: {from ticket description}
- Leverage: {existing files to reuse}
- Requirements: {requirement IDs}
MUST DO:
- {specific requirements from the spec}
- Return a summary of: files created, files modified, public API added
MUST NOT DO:
- Don't modify files outside the task scope
- Don't add features beyond what the spec requires
- Don't introduce new frameworks or dependencies not in tech.md
Alternatively, delegate to Codex via mcp__codex__codex using the 7-section delegation format if the user's environment routes engineer skills through Codex.
Step 4 — Review the Return
Apply the review checklist from the kickoff document:
- Files match spec (correct columns, types, field names, props)
- No unrelated changes (run
git statusandgit diff) - Imports resolve correctly
- Language-specific syntax check:
- Python:
python -c "import ast; ast.parse(open('{path}').read())" - TypeScript:
npx tsc --noEmit --pretty 2>&1 | head -20 - Rust:
cargo check - C#:
dotnet build --no-incremental
- Python:
- Existing tests still pass
- Invoke
clean-code-reviewerfor a quality pass
If issues found, invoke the engineer skill again with feedback:
The previous implementation had issues:
- {specific issue 1}
- {specific issue 2}
Fix these. Do not make other changes.
Iterate until clean (max 3 iterations; if still failing, escalate to user).
Step 5 — Commit
Commit with conventional-commits format. Feature prefix from the spec (e.g., licence, doc-viewer, web-search):
feat(licence): add licence columns to LegalEntities model
Implements TI-101. See documentation/specs/licence-data-extraction/tasks.md task 1.
Use clean-code-commit skill to validate the message format.
Step 6 — Transition JIRA
Move ticket status:
- If sprint uses In Review: transition to "In Review" with commit hash in comment; ping reviewer
- If not: transition to "Done"
Step 7 — Log Implementation
Invoke jira-impl-logger with:
- Ticket key
- Task summary
- Files created / modified
- Line stats (git diff --shortstat)
- Artifacts: API endpoints, components, functions, classes, integrations
jira-impl-logger posts the structured comment on the JIRA ticket. Do not write logs to the repo.
Step 8 — Next Ticket
Return to Step 1.
Wave Boundaries
When the current wave's tickets are all in "Done" (or explicitly deferred):
- Announce wave completion with a summary line per ticket
- Run any wave-level integration check (e.g., pipeline runs end-to-end, full test suite)
- Advance to the next wave
Do not skip a wave. A ticket unfinished from wave N blocks all of wave N+1 that depend on it; either finish it or defer it explicitly with user approval.
Blocker Handling
If a ticket is blocked mid-execution:
- Transition JIRA ticket to "Blocked" with a comment explaining the blocker
- Surface to user with: blocker description + impact on downstream tickets
- Either wait for resolution or (with user approval) skip and replan via
sprint-plannermid-sprint mode
Do not silently skip blocked tickets.
Sprint Completion
When all tickets are Done or deferred:
- Append to sprint kickoff doc:
## Retrospective — {date}
### What got done
- {ticket summary} (estimate: {h}h, actual: {h}h)
- ...
### What was deferred and why
- {ticket} — {reason} — moved to Sprint {N+1}
### Learnings
- {what went well}
- {what we'd change}
### Impl-log highlights
Top 3 patterns discovered this sprint (from JIRA impl logs):
- ...
- Create a Confluence "Sprint {N} Retrospective" page with the same content
- Close the JIRA sprint
What This Skill Does NOT Do
- Does not write code — delegates to engineer skills
- Does not design architecture — that was settled in Phase 1
- Does not change the sprint scope without user approval — scope changes go through
sprint-plannerin replan mode - Does not write implementation logs to the repo — uses
jira-impl-logger - Does not pre-review code design decisions — trust Phase 1's design; enforce it
References
skills/feature-spec-author/references/skill-routing.md— delegation targetsskills/clean-code-reviewer/— quality reviewskills/clean-code-commit/— commit message validationskills/jira-impl-logger/— log posting- Example tech-lead pattern:
/Users/khanm/s/tbml_investigator/.codex/sprint1_kickoff.md - Codex delegation format:
/Users/khanm/.claude/rules/delegator/delegation-format.md
Feedback
If the user corrects this skill's output due to a misinterpretation or missing rule in the skill itself (not a one-off preference), invoke skill-feedback to capture structured feedback and optionally post a GitHub issue.
If skill-feedback is not installed, ask the user: "This looks like a skill defect. Would you like to install the skill-feedback skill to report it?" If the user declines, continue without feedback capture.