look-before-you-leap/codex-skills/lbyl-implement/SKILL.md
Implementation protocol for Codex-owned plan steps. Read plan.json for step description, files, and progress items. Read discovery.md for codebase context. Implement exactly what the step specifies — no scope additions, no scope cuts. Run verification after changes. Report FILES CHANGED, WHAT WAS DONE, VERIFICATION, ISSUES.
npx skillsauth add miospotdevteam/claude-control lbyl-implementInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are implementing a plan step. Your job is to produce working code that meets the step's acceptance criteria exactly.
plan.json at the path given in the prompttitle — what the step is aboutdescription — what to implement (the specification)acceptanceCriteria — concrete conditions your work must satisfyfiles — which files to create or modifyprogress — the sub-tasks to work through in orderdiscovery.md in the same directory for codebase context:
For each file you need to modify:
.claude/look-before-you-leap.local.md):
find ~/.claude/plugins -name "deps-query.py" -path "*/look-before-you-leap/*" 2>/dev/null | head -1
python3 <path-to-deps-query.py> <project-root> "<file>"
Work through the step's progress items in order. For each:
task fieldfiles arrayany or as any in TypeScript — figure out the correct type.catch(() => {}) or .catch(() => null))After completing all progress items:
tsc --noEmit, bun run tsgo, mypy, cargo check,
or whatever the project uses (check package.json, Makefile, pyproject.toml)bash -n on any new or modified shell scriptsFix any failures before reporting.
Your output is consumed by run-codex-implement.sh. It is both a human
trace and the source for <plan-dir>/codex-receipt-step-N.json.
You MUST emit:
```codex-receipt-v1
{ ...valid JSON... }
```
The fenced block MUST be the last block in the response. Do not put prose
inside the fence. Do not emit more than one codex-receipt-v1 fence.
Format your human trace exactly as:
FILES CHANGED:
- path/to/file1.ts (created|modified)
- path/to/file2.ts (created|modified)
WHAT WAS DONE:
- Progress item 1: <brief summary of what you did>
- Progress item 2: <brief summary of what you did>
VERIFICATION:
- Type checker: PASS|FAIL (with output if FAIL)
- Linter: PASS|FAIL|N/A
- Tests: PASS|FAIL|N/A (with output if FAIL)
- Consumer check: PASS|N/A
ISSUES:
- <any issues encountered, or "none">
The section headings are exact and all-caps. Keep each item on a single line when possible so the wrapper can lift section bodies into the receipt artifact.
The fenced JSON block MUST match look-before-you-leap/references/codex-receipt-schema.md
schema version 1.0.0.
Required top-level fields:
schemaVersion: exactly "1.0.0"kind: exactly "implement"stepId: numeric plan step idowner: step owner from plan.jsonmode: step mode from plan.jsonplanName: plan .namecodexExitCode: 0 when Codex completed normallycriteria: one entry per acceptance criterionfilesChanged: structured version of the FILES CHANGED sectionfindings: [] on clean implementation, otherwise structured issue objectsfinalVerdict: "PASS" or "FINDINGS"; use "FAIL" only when Codex
itself could not complete implementationgeneratedAt: UTC ISO-8601 timestampOptional but preferred fields:
projectRoot, planPathresultTxtPath, resultTxtSha256streamJsonlPath, streamJsonlSha256commandsdigestHintsEach criteria[] item MUST include:
id: 1-based criterion indexacceptanceCriterion: verbatim criterion text from plan.jsonacceptanceCriterionSha256: sha256 of the normalized criterion textverdict: "PASS", "FAIL", or "SKIPPED"evidence: array of addressable evidenceFor file evidence, use:
type: "file"file: project-relative pathlineStart and lineEnd: the evidence range; these are the schema fields
for the required evidence[].rangesha256: sha of the referenced file or relevant excerpt when availableFor command evidence, use:
type: "command"command: exact command runexitCode: command exit codestdoutSha256 and/or stderrSha256: output shas when availableFor output evidence, use:
type: "output"label: output labelsha256: output shafilesChanged[] MUST be the parseable source of the human FILES CHANGED
section. Each item includes:
path: project-relative pathchangeType: "added", "modified", "deleted", or "renamed"sha256After: sha after the change when the file still existslinesAdded and linesDeleted when availablecommands[] MUST include every verification command reported in the
VERIFICATION section with command, exitCode, and output shas when
available.
finalVerdict MUST be:
"PASS" only when all progress items were completed, every
criteria[].verdict is "PASS", findings is empty, and codexExitCode
is 0."FINDINGS" when implementation completed but a requested item is blocked,
a verification command failed, any criterion failed or was skipped, or any
issue exists."FAIL" only when Codex could not complete the implementation run.FILES CHANGED:
- look-before-you-leap/codex-skills/lbyl-implement/SKILL.md (modified)
WHAT WAS DONE:
- Progress item 1: Replaced prose-only reporting with exact parseable sections.
- Progress item 2: Added the required codex-receipt-v1 JSON output contract.
VERIFICATION:
- Type checker: N/A (markdown-only change)
- Linter: N/A
- Tests: PASS (frontmatter validation and grep checks passed)
- Consumer check: PASS (wrapper script prompt consumers reviewed)
ISSUES:
- none
{
"schemaVersion": "1.0.0",
"kind": "implement",
"stepId": 15,
"owner": "codex",
"mode": "codex-impl",
"projectRoot": "/Users/me/Projects/claude-code-setup",
"planPath": ".temp/plan-mode/active/codex-first-conductor/plan.json",
"planName": "codex-first-conductor",
"codexExitCode": 0,
"criteria": [
{
"id": 1,
"acceptanceCriterion": "Both SKILL.md files specify exact headings / fenced-JSON delimiters.",
"acceptanceCriterionSha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"verdict": "PASS",
"evidence": [
{
"type": "file",
"file": "look-before-you-leap/codex-skills/lbyl-implement/SKILL.md",
"lineStart": 90,
"lineEnd": 210,
"sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"note": "Human headings and codex-receipt-v1 fence are specified."
},
{
"type": "command",
"command": "rg -n \"codex-receipt-v1|FILES CHANGED|WHAT WAS DONE|VERIFICATION|ISSUES\" look-before-you-leap/codex-skills/lbyl-implement/SKILL.md",
"exitCode": 0,
"stdoutSha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
]
}
],
"filesChanged": [
{
"path": "look-before-you-leap/codex-skills/lbyl-implement/SKILL.md",
"changeType": "modified",
"sha256After": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
],
"commands": [
{
"command": "python3 - <<'PY' ... yaml frontmatter validation ... PY",
"exitCode": 0,
"stdoutSha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
}
],
"findings": [],
"finalVerdict": "PASS",
"generatedAt": "2026-04-24T18:32:11Z"
}
FILES CHANGED:
- look-before-you-leap/codex-skills/lbyl-implement/SKILL.md (modified)
WHAT WAS DONE:
- Progress item 1: Added exact human headings.
- Progress item 2: Blocked because the receipt JSON fence was not added.
VERIFICATION:
- Type checker: N/A (markdown-only change)
- Linter: N/A
- Tests: FAIL (rg did not find codex-receipt-v1)
- Consumer check: PASS (wrapper script prompt consumers reviewed)
ISSUES:
- Missing required codex-receipt-v1 fenced JSON block.
{
"schemaVersion": "1.0.0",
"kind": "implement",
"stepId": 15,
"owner": "codex",
"mode": "codex-impl",
"projectRoot": "/Users/me/Projects/claude-code-setup",
"planPath": ".temp/plan-mode/active/codex-first-conductor/plan.json",
"planName": "codex-first-conductor",
"codexExitCode": 0,
"criteria": [
{
"id": 1,
"acceptanceCriterion": "Both SKILL.md files specify exact headings / fenced-JSON delimiters.",
"acceptanceCriterionSha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"verdict": "FAIL",
"rationale": "The human headings exist but the required JSON fence is missing.",
"evidence": [
{
"type": "file",
"file": "look-before-you-leap/codex-skills/lbyl-implement/SKILL.md",
"lineStart": 90,
"lineEnd": 110,
"sha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
},
{
"type": "command",
"command": "rg -n \"codex-receipt-v1\" look-before-you-leap/codex-skills/lbyl-implement/SKILL.md",
"exitCode": 1,
"stdoutSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
]
}
],
"filesChanged": [
{
"path": "look-before-you-leap/codex-skills/lbyl-implement/SKILL.md",
"changeType": "modified"
}
],
"commands": [
{
"command": "rg -n \"codex-receipt-v1\" look-before-you-leap/codex-skills/lbyl-implement/SKILL.md",
"exitCode": 1,
"stdoutSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
],
"findings": [
{
"severity": "HIGH",
"category": "INCOMPLETE_WORK",
"file": "look-before-you-leap/codex-skills/lbyl-implement/SKILL.md",
"lineStart": 90,
"lineEnd": 110,
"summary": "Missing codex-receipt-v1 output fence.",
"rationale": "The wrapper cannot extract a parseable JSON receipt from sectioned prose alone.",
"suggestedFix": "Add the exact codex-receipt-v1 fenced JSON block required by the schema.",
"criterionId": 1
}
],
"finalVerdict": "FINDINGS",
"generatedAt": "2026-04-24T18:55:09Z"
}
development
Use after discovery to write implementation plans with TDD-granularity steps. Produces plan.json (immutable definition, frozen after approval), progress.json (mutable execution state), and masterPlan.md (user-facing proposal for Orbit review). Every step is one component/feature; TDD rhythm (test, verify fail, implement, verify pass, commit) lives in its progress items. Consumes discovery.md from exploration phase. Make sure to use this skill whenever the user says discovery is done, exploration is finished, discovery.md is ready, or asks to write/create/draft the implementation plan — even if they don't mention plan.json or masterPlan.md by name. Also use when the user references completed exploration findings, blast radius analysis, or consumer mappings and wants them converted into actionable steps. Do NOT use when: the user says 'just do it' or 'no plan', resuming or executing an existing plan, during exploration or brainstorming (discovery not yet complete), debugging, or code review.
tools
End-to-end webapp testing with Playwright MCP integration. Use when: writing Playwright tests, E2E testing, browser testing, webapp testing, visual regression testing, accessibility testing with axe-core, testing user flows through a web UI, verifying frontend behavior in a real browser. Integrates with test-driven-development skill for test-first browser tests and engineering-discipline for verification. Do NOT use when: unit tests only (no browser UI involved), API tests without UI, mobile native testing (use react-native-mobile), testing CLI tools, or writing backend-only integration tests.
development
Test-Driven Development workflow enforcing red-green-refactor cycles. Use when writing new features, adding behavior, or implementing functions where tests should drive design. Requires explicit test-first prompting because Claude naturally writes implementation first. Integrates with writing-plans (TDD rhythm in Progress items) and engineering-discipline (verification). Do NOT use when: fixing a bug in existing tested code (use systematic-debugging), writing tests for existing untested code (characterization tests are a different workflow), refactoring without behavior change (use refactoring), or the project has no test infrastructure.
development
Use when encountering any bug, test failure, or unexpected behavior. Enforces root cause investigation before fixes. Four phases: investigate, analyze patterns, form hypotheses, implement. Prevents guess-and-check thrashing. Use ESPECIALLY when under pressure or when 'just one quick fix' seems obvious. Do NOT use for: learning unfamiliar APIs (use exploration), performance optimization without a specific regression, or code review without a reported bug.