Skip to content
Back to skills

Execute Phase

ASecurity

Step executor for units whose triage (unit-lane) decided which steps the unit needs. Implements one triaged step (or all remaining steps), with frozen acceptance, step-local gates, commits, red-gate repair, and diff-size guard. BREAKING: replaced PLAN.md/TASKS.md/progress.md/ACCEPTANCE.md with the unit doc's Tasks section, Evidence rows, and Progress log; ACCEPTANCE.md is gone — acceptance criteria live in the unit doc and Evidence rows are the receipts.

  • 21 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
ai-agentsgoshellbashrailsgitsecuritydocumentation

Works with

  • claude code
  • terminal

Security analysis

A100/100

Pro scans all 16 files and shows the line behind each finding

Scanned September 25, 2026

npx -y skills add gtrabanco/agentic-workflow --skill execute-phase --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Execute Phase?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Execute Phase
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gtrabanco-execute-phase-agentic-workflow/badge)](https://www.skillsdirectory.com/skills/gtrabanco-execute-phase-agentic-workflow)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: execute-phase
user-invocable: true
version: 5.0.1
argument-hint: <NN-slug> [P<k>|step] [--max-attempts N] [--force]
allowed-tools: [Bash, Read, Edit, Write, MultiEdit]
author: "Gabriel Trabanco <1969593+gtrabanco@users.noreply.github.com>"
license: MIT
description: >
  Step executor for units whose triage (unit-lane) decided which steps the unit
  needs. Implements one triaged step (or all remaining steps), with frozen
  acceptance, step-local gates, commits, red-gate repair, and diff-size guard.
  BREAKING: replaced PLAN.md/TASKS.md/progress.md/ACCEPTANCE.md with the unit
  doc's Tasks section, Evidence rows, and Progress log; ACCEPTANCE.md is gone —
  acceptance criteria live in the unit doc and Evidence rows are the receipts.
---

# Execute Phase

Step executor for units. The unit doc (created by `unit-lane`) owns `Tasks` P1…Pn,
`Evidence` rows, and a `Progress` log — these replace PLAN.md, TASKS.md,
progress.md, and ACCEPTANCE.md. Each step runs as an atomic gate/commit.

**Argument resolution (first match):**
- `<NN-slug> P<k>` — exactly the step named by the triage order (P1, P2, …)
- `<NN-slug>` (no step) — all remaining steps, one commit each
- `P<k>` alone — the step by position in the current unit (last-known NN-slug)

Never infer a step ID absent from the triage block in the unit doc.

## Turn contract

Tick every box before ending the turn; an unchecked box means the turn is not
done:

```
✓ Triage verified — unit doc Evidence section header matches
  `bun scripts/unit-route.mjs --triage <slug>` output block (PREFLIGHT.md)
✓ Unit doc read and step selected (explicit P<k> or first unfinished)
✓ Step executed and committed (one commit per step, conventional format)
✓ Evidence rows updated (command → exit/digest → output → verified-by)
✓ Progress log updated with a dated `YYYY-MM-DD HH:MM` entry (what, commit, next)
✓ Diff guard passed (on implement steps) — see `diff-guard` in PREFLIGHT.md
✓ → Next: block printed as the absolute last output
```

## When to use

- A triaged unit from `unit-lane`: steps include `implement`/`tests`/`evidence`
  → invoke with `<NN-slug>` or `<NN-slug> P<k>`.
- Docs-only units (triage returns only `[docs, evidence]`) do **not** load this
  skill — they are executed in-place by the unit-lane conductor.
- To execute all remaining steps: `<NN-slug>` with no step argument.
- To repair a failed step: `<NN-slug> P<k>` (retry the same step).

## Step 0 — Discover the project

Per the agent guide's **Workflow conventions** + **documentation map**, read the
unit doc at `docs/features/<NN-slug>/SPEC.md`. Verify it carries `## Tasks` (P1…Pn),
`## Evidence`, and `## Progress` sections. If absent, the unit is not ready —
stop and suggest `unit-lane` triage first.

## Process

### 1. Verify triage currency

Run `bun scripts/unit-route.mjs --triage <slug>` and compare its block to the
Evidence section header in the unit doc. **Mismatch → STOP and re-triage first.**
This is the gate that ensures the executor and unit-lane agree on steps.

### 2. Select the step

If a step argument is given (e.g. `P2`), use that step. Otherwise, the **first
unfinished step** — the first P<k> in `Tasks` whose checkbox is unticked.
Never execute a step the triage skipped.

### 3. Pre-step gates

Run gates in order; any fails → STOP (see [PREFLIGHT.md](references/PREFLIGHT.md)):

1. **Path-protection checkpoint** — read the committed range against protected
   paths (e.g. `tests/`, `fixtures/`). Exit 1 → STOP with the gate rejection
   block. No `--force` bypass (no flag can override).
2. **Phase-lint** — run `bun scripts/phase-lint.mjs <unit-doc>` **only** when the
   step is `implement` and the unit has `Tasks` P1…Pn. Parse the `Tasks` section
   (not PLAN.md/TASKS.md). Exit 1 → STOP. If the script is absent, apply the
   eight `phase-contract` rules by hand, label weaker, and disclose.
3. **Pre-write mapper** — for `implement` steps, settle the pre-write mapper
   contract before branch creation, planning commit, or source/test edit:
   ([implementation-discovery](../implementation-discovery/SKILL.md)): it closes
   the seven evidence questions and routes `READY | REPLAN | NEEDS-DESIGN |
   BLOCKED`; only `READY` authorizes the first write.
4. **Dependency/invariant checks** — per unit-lane's triage catalog rules:
   ensure required dependencies are merged; architectural invariants preserved
   or backed by an explicit recorded decision (block `violates`/`introduces`/
   `changes` before edits).

### 4. Execute the step

Follow the unit-lane reference for this step (`references/STEPS.md` catalog):
one line — read the step's reference file, perform its checklist, commit the
work. For `implement` steps: write tests-first where they pay (core/domain,
orchestration — record the failing red run's command, exit, and failing test
names before implementation), then green. UI/adapter glue may test after.

### 5. Post-step

1. **Diff guard** (implement steps only): run `bun scripts/diff-guard.mjs --base
   <last-step-commit> --unit <unit>` — paste the block verbatim. **BREACH → STOP**
   (re-triage or record exception). Anti-gaming: **NEVER shrink a diff by deleting
   comments, blank lines, docs or tests.**
2. **Evidence rows**: one row per AC satisfied — `| AC | command | exit/digest |
   output (≤2 lines) | verified-by |`. Append to the Evidence section.
3. **Progress log**: append a dated entry —
   `YYYY-MM-DD HH:MM — <what was done> → <commit sha> — next: <what is next>`.
4. **Commit**: `git add <changed files>` then `git commit -m "<type>(<scope>):
   <step-summary>"` — run it, paste the SHA.

### 6. Red gate (repair loop)

After each step: run the project's verification gate (type-check + tests + build).

- **Gate green** → proceed.
- **Gate red** → record exit code + failing test names in the Progress log, repair
  the same step, retry. Default `--max-attempts 3` (user value overrides).
- **Exhausted** → STOP with:

  ```text
  UNIT LOOP — <unit> BLOCKED at <P<k>>
  Reason: <NO-PROGRESS|ATTEMPT-BUDGET> · Attempts: <n>
  Last validator: <command> → <exit/status + compact failure>
  Preserved: no red commit; acceptance blob <sha> unchanged

  → Next: inspect the named blocker, then re-run /execute-phase <unit> <P<k>>
    · architecture/product decision required → resolve it before resuming
    · continue atomically → /execute-phase <unit> <P<k>>
  ```

### 7. Whole-unit mode

When invoked as `<NN-slug>` with no step: loop all remaining steps, one commit
each. After each step: gates, execute, diff guard (if implement), evidence/
progress update, commit. Skip intermediate review checkpoints; the mandatory end
review covers the full accumulated diff. On gate red at any step: repair that
step (up to `--max-attempts`), then continue the loop. Terminal:

```text
UNIT LOOP — <unit> COMPLETE
Steps: <n> · Commits: <sha list> · Gate: PASS
PR: <url>

→ Next: /review-change on the changed HEAD — the mandatory end review
  · findings (REVIEW-FAIL) → /fold-findings repairs them; a fresh /review-change follows the fold
  · merge gate after REVIEW-PASS → /audit-pr
```

### 8. Descope guard

Before creating **any** issue while executing: classify with the descope test.
A descope (moving an acceptance criterion or task out of scope) requires
**explicit user approval first**, then record in the unit doc's
`## References` section (not a follow-up issue) as:
`- <YYYY-MM-DD> — descoped: "<criterion>" — approved by user`.
An issue may never be the first record of a descope.

## Required references

These files must be loaded when their topic is active:
- [PREFLIGHT.md](references/PREFLIGHT.md) — all gate blocks (dependency, status, pre-exec, evidence, lint, path-protection)
- [EXECUTION_CONTRACT.md](references/EXECUTION_CONTRACT.md) — step completion gate, architectural invariants
- [PRE_EXECUTION_GATE.md](references/PRE_EXECUTION_GATE.md) — pre-execution review gate, normalizer order
- [FOLDING.md](references/FOLDING.md) — review finding fold cycle
- [DESCOPE.md](references/DESCOPE.md) — descope test and amendment rule
- [FORGE_BODY.md](references/FORGE_BODY.md) — forge operations (gh body-file rule)

## Guardrails

**Allowed:**
- Only the triaged steps listed by the unit doc's Evidence header
- Changes scoped to the acceptance criteria and step tasks
- Documentation updates in the unit doc (Evidence, Progress, References)
- Conventional commit messages per the project's Workflow conventions
- The step's own reference file (read one-hop from the unit doc catalog)

**Forbidden:**
- Never commit red (test failure) — fix within the step's scope, or record the
  blocker and stop.
- Never weaken a validator (loosen assertions, reduce coverage) — a repair must
  keep assertions at least as strong.
- Never execute a step the triage skipped — the catalog is authoritative.
- Never edit the unit doc's Acceptance criteria (that is re-triage with user consent).
- Never expand scope beyond what Non-goals define — findings discovered during
  implementation never widen the unit.
- Never invent an acceptance criterion — ask the user with concrete options.

## Relationship to other skills

`unit-lane` conducts (triage → steps → doc updates); this executes (one step at a
time or all remaining). `fold-findings` handles review finding repairs. The review
pack axes (`review-implementation`, `review-code`, `review-security`, `review-perf`,
`review-a11y`, `review-debt`) compose the review step; `workflow-status` routes
here. `triage-issue` feeds issues into the lane. This skill is the **step executor**
a turn invokes to perform one triaged step of a unit under the full gate machinery.

## Portability (agents other than Claude Code)

- **No slash menu** — open this `SKILL.md` and follow it literally in a fresh
  conversation. Where it says `run`, execute the shell command directly.
- **No model tiers** — triage and review use the strongest model; execution
  steps may use cheaper. Never review with a weaker model than the author.
- **No `/loop`/subagents** — invoke `<NN-slug>` for all remaining steps (the
  built-in loop), or `<NN-slug> P<k>` for individual steps.
- **No fresh workers** — execute inline and reduce state to the unit doc after
  each commit; never re-read prior files.

## Done when

- Requested scope is implemented (all remaining steps, one explicit step), gate
  is green, unit doc Evidence/Progress are current, and the work is committed.
- **The closing `→ Next:` block is printed.**

## Closing recommendation

```
→ Next: /unit-lane <NN-slug> — the conductor continues with the next triaged step
  · all steps done → /review-change — the mandatory end review
  · findings (REVIEW-FAIL) → /fold-findings repairs them; a fresh /review-change follows the fold
  · merge gate after REVIEW-PASS → /audit-pr — the merge gate
```

Files in this skill

  • SKILL.md6.7 KB
  • references/BATCH_AND_PORTABILITY.md2.2 KB
  • references/CLOSEOUT.md4.9 KB
  • references/DESCOPE.md2.4 KB
  • references/EXECUTION_CONTRACT.md7.7 KB
  • references/FOLDING.md4 KB
  • references/FORGE_BODY.md2 KB
  • references/HANDOFF.md1016 B
  • references/OPPORTUNISTIC_FINDING.md2.6 KB
  • references/PREFLIGHT.md9.2 KB
  • references/PRE_EXECUTION_GATE.md5.3 KB
  • references/UNIT_LOOP.md3.9 KB
  • references/WORKFLOWS_FEATURE.md2.5 KB
  • references/WORKFLOWS_FIX.md3.1 KB
  • references/WORKFLOWS_LEGACY.md1.7 KB
  • references/WORKFLOWS_SMALL_PHASED.md2.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…