Skip to content
Back to skills

Execute

ASecurity

Use to implement one planned, approved phase of a slice — once its design and plan exist and its runtime phase sheet is ready. Move the phase to in_progress, build it TDD red/green/refactor, keep notes current, end green, and surface blockers early.

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 19, 2026
developmentgoshellbashcode-review

Works with

  • cli

Security analysis

A100/100

Scanned September 29, 2026

npx -y skills add davidlee/doctrine --skill execute --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Execute?

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

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

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
description: Use to implement one planned, approved phase of a slice — once its design and plan exist and its runtime phase sheet is ready. Move the phase to in_progress, build it TDD red/green/refactor, keep notes current, end green, and surface blockers early.
---

# Execute

You are executing one phase of planned work.

Inputs:

- the active runtime phase sheet (`state/.../phases/phase-NN.md`)
- `plan.toml` / `plan.md`
- `design.md` (canonical design reference)
- `slice-nnn.md` (scope)

## Process

1. Confirm the phase's entrance criteria (`EN-`) are met for the active phase.
2. Read `design.md` + `plan.toml` + the runtime phase sheet before coding. If the sheet
   is not yet filled, run `/phase-plan` first; use `/preflight` if confirmed
   inputs, assumptions, and tensions are not yet surfaced.
3. Identify the concrete files or components you expect to touch first and run
   `/retrieve-memory` against those paths before deep reading or editing, so any
   scope-bound gotchas or patterns surface early.
4. Ensure status matches reality before implementation proceeds:
   - first phase starting → move the slice: `doctrine slice status <id> started`
     (bare number), if not already there.
   - flip the phase to `in_progress` with `doctrine slice phase` (see
     `lib:reference/using-doctrine.md`). **This auto-records the conformance
     boundary** — the
     handler stamps `code_start_oid = HEAD` into the phase sheet. No extra call;
     the binding rides the transition you already issue. (It self-skips
     in a dispatch coordination context, where the funnel beat is the recorder
     instead.)
5. Implement phase tasks in small coherent units, **TDD red/green/refactor**
   write a failing test, make it pass, then refactor. Test behaviour, not
   trivial implementation. Build and improve test helpers and fixtures as you go.
6. After each meaningful unit, run `/harvest`.
7. If that unit produced a durable gotcha, pattern, or subsystem fact worth
   future retrieval, run `/record-memory` before moving on.
8. Lint as you go (`cargo clippy`, zero warnings) and keep the tree buildable.
9. Follow the repo's commit policy: frequent, small conventional commits scoped
   with the slice id (e.g. `feat(SL-NNN): …`). Bias toward a clean tree; don't
   let `.doctrine/**` workflow edits drift in a stale uncommitted pile.
10. If `/preflight` or implementation reveals unresolved design ambiguity,
    unexpected obstacles, tradeoffs, or policy ambiguity, stop and `/consult`
    before improvising past it.
11. Keep the runtime phase sheet current as work progresses — never record progress in
    authored `plan.toml` / `plan.md` (the storage rule).
12. Before declaring the phase ready, run the verification gate — `doctrine
    check gate` (lint + test + format) — and review the touched subsystems and
    notes once
    more for missed memory-capture candidates. At phase wrap, weigh a
    **per-phase review** per the code-review skill's `## Cadence` — default on
    below the adherence bar, mandatory on any tripwire.
13. When exit criteria (`EX-`) and verification (`VT-`, plus any agent/human
    `VA-`/`VH-` modes) are satisfied, flip the
    phase to `completed` with `doctrine slice phase`. **This closes the conformance
    boundary** — the handler captures `code_end_oid = HEAD`, applies the
    ancestor/non-merge guard, and upserts the phase's row into the slice's
    arm-neutral registry. Deterministic, on the critical path — **not** a
    "remember to also record" step; `slice record-delta` is only the manual
    fallback (correct a range, or bootstrap a pre-binding phase). Then hand off:
    `/phase-plan` for the next phase, or — when the slice's phases are all done —
    `doctrine slice status <id> audit` and `/audit`.

## Optional: solo isolation (opt-in)

Default execution runs **in-tree** — the path above is unchanged unless isolation
is requested.

**Opt-in only — never automatic.** Run the phase on its own worktree fork *only*
when the user or the plan explicitly asks for isolation. Absent that annotation,
implement in-tree.

When isolation is requested, before implementing (i.e. before step 5) invoke
`/worktree` with:

- `mode = solo`, `allow_work_in_place = true` (solo MAY degrade to in-tree on
  sandbox denial);
- `branch = slice/SL-NNN-slug` (the slice id is in scope — e.g.
  `slice/SL-NNN-<slug>`), worktree dir keyed by the durable id
  (`.worktrees/SL-NNN`).

`/worktree` handles detection, the creation ladder (`doctrine worktree fork`),
provisioning, the spawn guards, and the green baseline; the **fork branch it
returns is the deliverable**.

**Assert a clean direct-writer entry.** Solo `/execute` is its own orchestrator —
worker mode is **never** used here (that is `/dispatch`'s path). Worker-ness is a
property of the *process*: if `DOCTRINE_WORKER` is set in this shell, every
doctrine-mediated authored write refuses mid-work. Confirm it is unset before the
TDD loop (`doctrine worktree status` prints the resolved mode); if it is set,
unset it — there is no stale on-disk state to clear.

Carry out the TDD loop (steps 5–12) inside the fork. When green, **land the fork
onto the coordination branch** — `/execute` is the sole caller of `land`:

```bash
doctrine worktree land --fork slice/SL-NNN-slug   # merge --no-ff, ancestry preserved (NEVER squash)
doctrine worktree gc   --fork slice/SL-NNN-slug   # reap the spent fork once the oracle proves it landed
```

See `lib:reference/dispatch-mechanics.md` §§ "The import severs ancestry — so
"did it land?" needs a patch-id oracle" and "The squash blind spot", for why
`land`/`gc` behave as they do.

## Outcomes

- Phase objectives are implemented with traceable evidence, ending green.
- Phase status matches reality during implementation, not only at closure.
- Notes and durable memory stay current throughout execution.

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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.