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 says 'execute lean feature', 'build this lean plan', 'sd-lean-execute', 'run the checks for this feature', or 'continue the lean build'.
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of Sd Lean Execute?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ronnasayd-sd-lean-execute)
---
name: sd-lean-execute
description: "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 says 'execute lean feature', 'build this lean plan', 'sd-lean-execute', 'run the checks for this feature', or 'continue the lean build'."
model: opus
effort: medium
disable-model-invocation: true
metadata:
author: Ronnasayd Machado - github.com/Ronnasayd
version: "1.0.0"
---
# 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
- [troubleshooting.md](./references/troubleshooting.md) -- common failure symptoms and fixes
- [diagram.md](./references/diagram.md) -- diagram of the flow.