

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
123456# Validate Fix7> **HARD GATE** — Fix must not regress. Run full test suite and manual UAT before declaring success.8910Prove the fix works. "I think it works" is not evidence. Run the suite, show the output, then harden against recurrence.1112> **Two-commit red/green policy (e45s08)** — Bug fixes follow the same two-commit discipline as `develop-tdd`: first commit adds/adjusts the failing test (`test(<scope>): …`), second commit applies the fix (`fix(<scope>): …`). Do not squash RED and GREEN before review.1314## Checklist1516### 1. Re-run the originally failing test1718```bash19# Run the specific test that captured the bug20<test command for the failing test>21```2223- [ ] Previously failing test now passes2425### 2. Run the full test suite2627```bash28# Run all tests — no filtering29<full test command from CLAUDE.md>30```3132- [ ] All tests pass (zero regressions)3334### 3. Type check3536```bash37<typecheck command>38```3940- [ ] No type errors introduced4142### 4. Lint4344```bash45<lint command>46```4748- [ ] No lint violations introduced4950### 5. Harden against recurrence5152For every bug fixed, add at least one prevention layer:5354| Mechanism | When to use |55|-----------|-------------|56| Type guard | Input could be the wrong shape |57| Schema validation (Zod, Pydantic, etc.) | External data crossing a boundary |58| Invariant assertion | Internal state that must always hold |59| Lint rule | Pattern that's easy to repeat by mistake |60| Environment check at startup | Missing config causes silent failure |6162- [ ] At least one hardening mechanism added63- [ ] Hardening mechanism is tested6465### 5b. Generalize-fix (HARD GATE — e80s04 / GH #98)6667Sweep the **defect class** across the codebase after local hardening — see [REFERENCE-generalize-fix.md](REFERENCE-generalize-fix.md).6869- [ ] Defect class documented (not just the one-line root cause)70- [ ] Grep sweep run and `match_count` recorded71- [ ] `verify-generalize-sweep.sh` passes on the artifact7273### 6. Update the bug file and registry.yaml7475Find the most recent `specs/bugs/BUG-*.md` file and append the resolution:7677```markdown78## Resolution7980**Fixed:** [date]81**Root cause confirmed:** [one sentence]82**Fix applied:** [what was changed]83**Hardening added:** [type guard / schema / assertion / lint rule]84**Evidence:** all tests pass (`<verify command>`)85**Commit:** `fix(<scope>): <description>`86```8788Also update the corresponding row in `specs/bugs/registry.yaml`: set `status` to `fixed`, fill in `files_changed`, `approach`, `risk_level`, `commit_message`, and any other resolution fields.8990- [ ] specs/bugs/BUG-*.md updated with resolution91- [ ] specs/bugs/registry.yaml row updated with resolution fields9293### 7. Behavioral Proof (HARD GATE)9495Mechanical verification (tests passing) is only half the fix. You must prove **behavioral correctness**.9697- [ ] Manually demonstrate the fixed behavior (e.g., via `run_shell_command` or `web_fetch`)98- [ ] Compare the output/state against the "Expected Behavior" in the bug file99- [ ] Show the user evidence of the behavior, not just the test logs100101## Rules102103- **Loop until behavioral correctness is verified**: if any checklist item fails, or if the behavior is still incorrect despite passing tests, return to step 1 and run all checks again from the top — do not declare done until every item is green and the behavior is proven correct in a single run.104- **Never use `@ts-ignore`, `as any`, or `// eslint-disable`** to "fix" a bug — these suppress the symptom without fixing the root cause105- **Never mark the task done if any test is still failing**106- **The verify command from specs/bugs/BUG-*.md or the active epic task `verify` field must pass**107108Suggest next skill: `audit-code` → `commit-message`.109110## Verify111112→ verify: `grep -q 'generalize-fix' skills/validate-fix/SKILL.md && test -x scripts/verify-generalize-sweep.sh && bash scripts/verify-generalize-sweep.sh --self-test && echo OK`113114---115116# Generalize-fix (e80s04 / GH #98)117118After local hardening in `validate-fix`, sweep the **defect class** across the codebase.119120## Steps1211221. **Classify** — name the pattern (e.g. `unscoped org query`, `fail-open verify`, `hardcoded package manager`).1232. **Sweep** — grep for sibling instances; record `match_count` and `grep_pattern`.1243. **Resolve** — patch all matches in this PR **or** file one tracking issue listing every remaining instance.1254. **Artifact** — write sweep evidence before declaring done:126127```bash128cat > specs/verifications/generalize-sweep-BUG-YYYY-MM-DD-slug.json <<EOF129{130 "defect_class": "fail-open-verify",131 "grep_pattern": "\\\\|\\\\| echo",132 "match_count": 0,133 "sweep_scope": "skills/*/SKILL.md",134 "patched_in_pr": [],135 "tracked_issues": []136}137EOF138bash scripts/verify-generalize-sweep.sh specs/verifications/generalize-sweep-*.json139```140141## Security classes142143When the defect class is security- or gate-relevant:144145- Add a row to `security-review` CWE fixture table (see `skills/security-review/SKILL.md` § CWE mapping mandate).146- If security-impact was MEDIUM+: add regression test, false-positive exclusion rule, and threat-model update (HIGH+).147
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 · 134 | Cursor rules | styletypesgitdatabase+6 | 47/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/build-epic.mdc · 134 | Cursor rules | buildgit | 58/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/extract-design.mdc · 134 | Cursor rules | lint-formatstyledependenciesui | 82/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/plan-tests.mdc · 134 | Cursor rules | teststyletesting-strategyagent-behaviour | 66/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/plan-release.mdc · 134 | Cursor rules | testlint-formatarchdeployment | 74/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/request-review.mdc · 134 | Cursor rules | git | 62/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/research-first.mdc · 134 | Cursor rules | buildarchdependencies | 70/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/run-benchmark.mdc · 134 | Cursor rules | styleperformance | 58/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/reset-baseline.mdc · 134 | Cursor rules | no sections | 40/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/define-language.md · 134 | Windsurf rules | lint-formatdo-not | 65/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/context7-mcp.md · 134 | Windsurf rules | style | 54/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/delegate-task.md · 134 | Windsurf rules | git | 62/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/extract-design.md · 134 | Windsurf rules | lint-formatstyledependenciesui | 82/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/security-review.md · 134 | Windsurf rules | lint-formattesting-strategygitsecurity+2 | 60/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/verify-work.md · 134 | Windsurf rules | buildtestlint-formatagent-behaviour | 74/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/wire-ci.md · 134 | Windsurf rules | buildtestlint-formatstyle+1 | 81/100 | 14 days ago | |
| danielvm-git/bigpowerswebsite/AGENTS.md · 134 | AGENTS.md | docs | 31/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/terse-mode.md · 134 | Windsurf rules | styledo-not | 56/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/trace-requirement.md · 134 | Windsurf rules | buildtesting-strategy | 54/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/align-grid.mdc · 134 | Cursor rules | lint-formatdo-notagent-behaviour | 65/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 · 45 | 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 | |
| TechSquidTV/Hermes.cursor/rules/20-hermes-api-tests.mdc · 45 | Cursor rules | teststyletesting-strategysecurity+3 | 97/100 | 14 days ago |
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-validate-fix)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.