sd-lean-execute

Build and verify a tlc-spec-lean feature with slice-by-slice Build, a docs sync, a UI regression gate, proofs and an independent Verifier, ending at a green validate_verification.py. Use when user say

SKILL.md

GitHub

Execute Lean Feature

This skill does not reimplement execution: it runs tlc-spec-lean's Build and Verify exactly as documented in references/build.md and references/verify.md, and layers two things on top: a docs sync and a UI regression gate on the screens the feature did not set out to change.

Everything lands before the proofs. check_proofs.py fails on uncommitted changes outside .specs/, and validate_verification.py fails when proofs.md was written at another HEAD. docs/ is outside .specs/, so each docs change is committed before check_proofs.py runs, never after its last run.

Steps

Add the following steps as tasks using the TaskCreate, TaskUpdate, TaskGet, and TaskList tools. Update the status as you progress through each step to keep the user informed.

# Step Action Output / Gate
1 Validate feature Confirm .specs/features/{FEATURE}/checks.md exists and validate_checks.py {FEATURE} --execute exits 0, which also runs the Build: line once Missing or red checks -> stop: run sd-lean-planning. Red Build: -> tell the user, stop
2 Read lean skill Invoke /tlc-spec-lean; read its references/build.md and references/verify.md once, references/verify-screens.md when a criterion cites a capture, and references/memory.md when resuming Build and Verify conventions loaded. Resolve these from the skill's own directory
3 Build slice by slice Run Build as documented: tests from the checks, code, commits, the walk and saved pictures. Stop at its "Then stop" section, before check_proofs.py Slices implemented, proofs green
4 Sync docs Invoke generate-docs skill in update mode, scoped to the commits of this run, if the changes warrant a docs update, and commit the result docs/ reflects the feature before the proofs run -- skip silently if no doc-worthy changes occurred
5 UI regression gate If the build touched a UI component or screen, test it with Playwright MCP (or similar E2E tool), looking at screens the feature did not set out to change. Lean's walk, pictures and screens sub-agent already judge the screens it changed No regression in other features -- skip silently for non-UI work. Something broken is fixed and committed before step 6
6 Verify Run check_proofs.py {FEATURE}, then dispatch the Verifier and the screens sub-agent as references/build.md "Then stop" says, unchanged Findings in verification.md, verdicts in screens.md
7 Fix findings No findings -> skip. A missing obligation is an appended check. Fix everything in one pass and commit any docs change with the fix, then run check_proofs.py {FEATURE} and, when the fix changed code, screens round 2 as references/build.md says Nothing outside .specs/ is left uncommitted
8 Gate Run validate_verification.py {FEATURE} Exit 0. A red gate is reported first, never left for the reader to find
9 Summary Open with the last line of validate_verification.py, then what tlc-spec-lean reported and the docs sync outcome Local commits are made; git push and deploy wait for the user's explicit go-ahead
10 Save permanent memory At the end of the session, evaluate whether there is anything worth saving as permanent memory. Save only what the next session will need and cannot rediscover by reading the code, Git, or CLAUDE.md -- such as the reason behind a decision, a non-obvious invariant, or a user preference; if it is already in the repo or only matters for this specific conversation, do not save it. Use the ai-memory-durable-pages skill to persist it. Durable page written when warranted, or nothing when not

Reference files