

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
123456<!-- story: e02s01 e46s03 -->7<!-- story: e38s05 -->8<!-- story: e45s05 -->9<!-- story: e45s09 -->10<!-- story: e45s13 -->11<!-- story: e45s40 -->12<!-- story: e51s03 -->13<!-- story: e20s04 -->14<!-- story: e20s06 -->151617# Verify Work1819> **HARD GATE** — No story is "done" until manual UAT for the active story is confirmed with evidence.20>21> **HARD GATE** — Do NOT run on `main` or `master`. Use the feature branch from `kickoff-branch`.2223Review answers "is the code good?"; Verify answers "does the built thing do what was promised?"2425## Modes2627- Default: full UAT plus gaps loop28- --smoke: Cold-start only plus one happy-path flow. Use for hotfixes.29- --cli: CLI tool verification — replaces cold-start with binary smoke checklist. Use for CLI tools with no server process.3031## Risk-Scaled Depth3233`verify-work` reads the `risk:` field from the story template (defaults to `P1` if absent) to scale verification rigor:34- **P0**: Full verify-work multi-phase + `security-review` (step 5) + NFR evidence gate (step 5b).35- **P1**: Standard verify-work (build, test, lint, step-by-step manual).36- **P2**: Smoke, typecheck, lint only. Skip tests, security scan, and step-by-step manual UAT.37- **P3**: Typecheck and lint only. Skip smoke, tests, security scan, and step-by-step manual UAT.3839## Process4041> **Timing:** `bash scripts/bp-timing.sh start verify-work` at invocation; `bash scripts/bp-timing.sh end verify-work` before handoff.42430. **Branch check** — must not be `main`/`master`.44450a. **Preflight / CI green (HARD GATE — e51s03)** — Run Preflight from `CLAUDE.md` or `BP_PREFLIGHT` (`bp-read-agents.sh`). If PR open: `gh pr checks` (**CI green**). Failure blocks all phases → `quick-fix` or `fix-bug`.46471. Read active story tasks from `specs/epics/<capsule>/eNNsYY-tasks.yaml` and story spec from `specs/epics/<capsule>/eNNsYY-<slug>.md` (countable-story-format, Gherkin in §17). Note the `risk:` level (`P0`–`P3`).481a. **Pre-UAT verify validation** — for each task's `verify:` command, run it and detect pattern mismatches before UAT begins. If a grep/awk/jq command fails, check whether the pattern is wrong vs. a genuine failure:49```bash50 # For a failing grep -q 'PATTERN' FILE, check what is actually in FILE51 grep 'PATTERN' FILE || grep -n '' FILE | head -20 # show nearest lines52```53 Report: `"Pattern 'X' not found. Nearest match: 'Y' at line N"` and ask `"Update verify command? [Y/n]"`. Fix before proceeding — a mismatched verify command produces false failures during UAT.542. **Cold-start smoke** (if app; skip if P3): stop server, clear caches, boot from scratch.553. **AGENTS.md preflight** — if 0a skipped BP_PREFLIGHT, run `bash scripts/bp-read-agents.sh` and use detected command.564. Mechanical gates: build → typecheck → lint → tests (from `CLAUDE.md` or AGENTS.md). Skip tests if P2/P3.5758> **HARD GATE — One-test-minimum terminal verdict (e45s13):** At least one mechanical gate MUST be a **real terminal-verdict command** (shell exits 0 or non-zero — not prose, not combined log excerpts). Record that command's stdout/stderr from a **single contiguous run** in `specs/verifications/eNNsYY-verify.yaml` under `terminal_verdict`. Bug reports and gap logs MUST NOT merge evidence from multiple runs into one verdict — each failing run gets its own evidence block.59605. **Security scan** (skip if P2/P3) — run `security-review` against the git diff (working tree vs merge-base). Parse findings report. If any HIGH findings with confidence ≥ 8 exist → **block the gate**. Write findings to `specs/security/REVIEW.md`. Allow documented exceptions via `specs/security/EXCEPTIONS.md`. MEDIUM/LOW findings warn but don't block.615a. **Blind-spot check** — run `bash scripts/check-blind-spots.sh`. This detects structural quality gaps (verify-gap, test-gap, stale-tag, etc.) beyond percentage coverage. If any HIGH-severity findings exist → **block the verify-work PASS gate**. Findings are written to `specs/blind-spots.json`. MEDIUM/LOW findings warn but don't block.625a2. **Completeness critic (e45s05)** — `bash scripts/lib/completeness-critic.sh`. **BLOCKER** aborts merge gate; WARNING → gaps loop; FILLED = evidence only.63645b. **NFR Evidence Gate** (P0 only) — Produces go/no-go output on three dimensions: Performance (response time, throughput), Reliability (error rate, recovery), and Operability (logging, health checks). Reads thresholds from `specs/tech-architecture/eNN-TEST_PLAN_LATEST.md` and writes evidence as OKF verification-report bundles to `specs/verifications/NFR-eNNsYY.json`. FAIL on any dimension blocks the gate.656. **Step-by-step UAT** (skip if P2/P3) — one user-observable action at a time.667. **Gaps loop** — failures → log → `plan-work` → re-verify. Unaddressed HIGH findings from step 5 feed into this loop alongside other quality gaps.67687a. **Validation gate (e45s09)** — All tasks `status: passing`; evidence in `specs/verifications/`; update `execution-status.yaml`.697b. **Reopen-don't-refile (e45s09)** — Regressions reopen existing story/bug — no duplicate capsule entries.7071## Verify sub-operations7273### Cold-Start Smoke (absorbed)7475Stop server, clear caches, boot from scratch; confirm no stale config affects behavior.7677### Gaps Loop (absorbed)7879After UAT, identify and close any gaps between promised behavior and actual behavior:8081- Capture what was promised in the epic task description82- Document what actually happened (expected vs actual)83- If behavior doesn't match the promises, log the gap84- Loop back to `plan-work` or `develop-tdd` to fix the gap85- Re-verify until all gaps are closed (gaps count = 0)8687## UAT dialogue8889- Pass: user confirms per step.90- Fail: capture expected vs actual; do not mark done in `execution-status.yaml`.9192## Persist verification evidence9394After UAT passes, write structured evidence to `specs/verifications/eNNsYY-verify.yaml`:9596```yaml97story_id: e01s0198verified_at: "2026-06-11T14:30:00Z"99verifier: verify-work100phases:101 smoke:102 passed: true103 build:104 passed: true105 command: "npm run build"106 typecheck:107 passed: true108 lint:109 passed: true110 tests:111 passed: true112 coverage: "94.2%"113 terminal_verdict:114 command: "npm test"115 exit_code: 0116 captured_at: "2026-06-11T14:25:00Z"117 note: "Single run — do not merge output from other attempts"118 manual:119 steps:120 - step: "Open /login"121 expected: "Login form renders"122 actual: "Login form rendered correctly"123 passed: true124 gaps:125 closed: true126```127128### 5b. OKF wiki LINT (e39s08)129130```bash131for p in specs/skills-wiki/skills/*.md; do s="skills/$(basename "$p" .md)/SKILL.md"; [ -f "$s" ]&&[ "$p" -ot "$s" ]&&echo "STALE: $p"; done132for p in specs/conventions-wiki/*.md; do [ "$(basename "$p")" = "index.md" ]&&continue; grep -q "$(basename "$p" .md)" CONVENTIONS.md||echo "ORPHAN: $p"; done133```134135> **HARD GATE** — Verification evidence MUST be persisted before marking the story done. No evidence = not verified.136137## --cli mode138139CLI tools: use `--cli` when no server process. Binary detect + checklist: [REFERENCE.md](REFERENCE.md#cli-mode).140141## Verify142143→ verify: `find specs/verifications -maxdepth 1 -name '*-verify.yaml' 2>/dev/null | grep -q .`144145## Handoff146READY -> next: audit-code147Writes: state.yaml handoff.next_skill = audit-code148149---150151# Verify Work — Reference152153## Cold-start smoke154155```bash156# Example — adapt to project CLAUDE.md157pkill -f "<dev-server>" 2>/dev/null || true158rm -rf .next/cache node_modules/.cache 2>/dev/null || true159<run command> &160sleep 3 && curl -sf http://localhost:<port>/health || echo "BOOT FAIL"161```162163## Gaps template164165```markdown166## Gaps (verify-work)167168| Step | Expected | Actual | Status |169|------|----------|--------|--------|170| 1 | ... | ... | FAIL |171```172173Feed gaps to `plan-work` as new steps with verify commands, then re-run verify-work.174175## CLI mode176177For CLI tools where cold-start smoke does not apply. Auto-detected when no server process; or use `--cli`.178179**Auto-detect binary name:**180```bash181BINARY=$(grep '^name' Cargo.toml | head -1 | awk -F'"' '{print $2}') # Cargo182BINARY=$(node -e "console.log(require('./package.json').bin && Object.keys(require('./package.json').bin)[0] || '')" 2>/dev/null)183BINARY=$(grep '^BIN\s*=' Makefile 2>/dev/null | awk '{print $3}')184```185186**Checklist (replaces cold-start smoke):**1871. `$BINARY --help` → output contains "Usage"1882. `$BINARY --version` → matches manifest1893. README example command → non-empty output1904. `$BINARY --invalid-flag` → exit ≠ 0 with error message191
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| danielvm-git/bigpowers.cursor/rules/simple-english.mdc · 139 | Cursor rules | styletypesgitdatabase+6 | 47/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/assess-impact.mdc · 139 | Cursor rules | testtesting-strategydeployment | 66/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/audit-plan.mdc · 139 | Cursor rules | buildteststylegit | 74/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/build-epic.mdc · 139 | Cursor rules | buildgit | 58/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/change-request.mdc · 139 | Cursor rules | no sections | 48/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/commit-message.mdc · 139 | Cursor rules | lint-formatstyletypesgit+3 | 82/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/compose-workflow.mdc · 139 | Cursor rules | styledo-notagent-behaviour | 65/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/context7-mcp.mdc · 139 | Cursor rules | style | 54/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/deepen-architecture.mdc · 139 | Cursor rules | testtesting-strategydo-not | 57/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/define-language.mdc · 139 | Cursor rules | lint-formatdo-not | 65/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/define-success.mdc · 139 | Cursor rules | no sections | 4/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/delegate-task.mdc · 139 | Cursor rules | git | 62/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/deploy.mdc · 139 | Cursor rules | setupbuildtestdeployment | 77/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/verify-work.md · 139 | Windsurf rules | buildtestlint-formatagent-behaviour | 74/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/develop-tdd.mdc · 139 | Cursor rules | teststylearchtesting-strategy+5 | 85/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/diagnose-root.mdc · 139 | Cursor rules | no sections | 39/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/diagnose-stall.mdc · 139 | Cursor rules | no sections | 44/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/dispatch-agents.mdc · 139 | Cursor rules | git | 54/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/edit-document.mdc · 139 | Cursor rules | no sections | 39/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/elaborate-spec.mdc · 139 | Cursor rules | test | 58/100 | 14 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| hiromaily/go-crypto-wallet.cursor/rules/typescript.mdc · 126 | Cursor rules | setupbuildtestlint-format+6 | 100/100 | 14 days ago | |
| TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 46 | Cursor rules | testlint-formatstylearch+5 | 100/100 | 14 days ago | |
| dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| markstev/mark-starter.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+6 | 99/100 | 14 days ago | |
| Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 14 days ago | |
| bybren-llc/safe-agentic-workflow.cursor/rules/10-backend-python.mdc · 399 | Cursor rules | testlint-formatstylegit+4 | 97/100 | today |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/danielvm-git-bigpowers-cursor-rules-verify-work)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.