tdd-verified — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited tdd-verified (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Register: DISCIPLINE — Iron Laws apply. Non-negotiable.
This skill enforces proof-first development. For behavior code and bug fixes, the default proof mode is RED-GREEN-REFACTOR with VHEATM evidence anchors at every gate. For migrations, config, docs, or spikes, declare an alternate proof mode before implementation.
Core principle: Evidence before claims. If you didn't watch the test fail, you don't know if it tests the right thing. If you didn't run verification, you cannot claim it passes.
Violating the letter of these rules is violating their spirit.
1. NO IMPLEMENTATION WITHOUT A DECLARED PROOF MODE
2. NO BEHAVIOR CODE WITHOUT A FAILING TEST FIRST
3. NO COMPLETION CLAIM WITHOUT FRESH VERIFICATION EVIDENCE
4. NO FIX CLAIM WITHOUT A FIX ANCHOR (file:line re-read after change)For behavior code, writing code before the failing test means delete it and start over. For other work, the declared proof mode defines the evidence gate.
Declare one before implementation:
| Proof mode | Use when | Required evidence |
|---|---|---|
| TEST_FIRST | behavior code, feature logic, bug fixes | failing test observed first, then passing test/suite |
| MIGRATION_DRY_RUN | schema/data migration, backfill | dry-run output, backup/rollback or accepted irreversibility, checksum/count plan |
| CONFIG_SMOKE | config, routing, deployment settings | config diff, smoke command, environment-specific verification |
| DOC_SOURCE_CHECK | README/spec/docs claims | source cross-check against code/spec/ADR; label unverified claims T4 |
| SPIKE_THROWAWAY | exploratory prototype | timeboxed learning, explicit throwaway status; cannot ship until converted to another proof mode |
No completion claim is allowed until the proof mode has T1/T2 evidence.
Write one minimal test showing exactly what should happen.
✅ Clear name: "rejects empty email address"
✅ Tests behavior: assert result.error == 'Email required'
✅ Real code: no mocks unless unavoidable
✅ One thing: no "and" in test nameEvidence gate — verify RED:
# Run test. Must FAIL. Document the failure output.
<test command> <test file>::<test name>
Evidence Anchor: test fails with "<exact failure message>"If test passes immediately → you're testing existing behavior. Fix test. If test errors → fix error, re-run until failure is intentional.
You cannot proceed to GREEN without documented failure evidence.
Write the simplest code that makes the test pass. Nothing more.
YAGNI: no extra parameters, no future-proofing, no "while I'm here" changes.
Evidence gate — verify GREEN:
# Run test. Must PASS. Run full suite. Must stay green.
<test command>
Evidence Anchor: test passes — N/N suite greenIf test fails → fix code (not test). If other tests break → fix immediately before proceeding.
You cannot proceed to REFACTOR without documented passing evidence.
After GREEN only: remove duplication, improve names, extract helpers. Keep tests green. Add zero new behavior.
Evidence gate — verify REFACTOR:
<test command>
Evidence Anchor: suite still N/N green after refactorFor every bug fix, before claiming "fixed":
Fix Anchor: <file>:<line> — <one-line description of change>
Action: re-read that file section AFTER the fix
Status: VERIFIED | ASSUMEDASSUMED = you didn't re-read the file. Mark explicitly. VERIFIED = you re-read after the fix. Required before marking fixed.
After fix → trigger pattern-globalize: does this bug class exist elsewhere?
Before marking ANY work complete:
pattern-globalize run for every confirmed bugverification-before-completion checked before claiming doneCannot check all boxes? You skipped proof-first discipline. For behavior code, start over with TDD. For other modes, stop and gather the required proof evidence.
| Excuse | Reality |
|---|---|
| "Too simple to test" | Simple code breaks. Test takes 30 seconds. |
| "I'll test after" | Tests passing immediately prove nothing. |
| "Already manually tested" | Ad-hoc ≠ systematic. No record, can't re-run. |
| "Tests after achieve same goals" | Tests-after = "what does this do?" Tests-first = "what should this do?" |
| "Deleting work is wasteful" | Sunk cost. Keeping unverified code is technical debt. |
| "I'm confident it works" | Confidence ≠ evidence. Run verification. |
| "Fix Anchor is overkill" | Re-reading takes 30 seconds. Skipping it ships bugs. |
For behavior code, these mean: delete, start over with TDD. For non-behavior work, stop and re-enter through the declared proof mode.
Những reasoning patterns dẫn đến skip skill này. Nhận ra chúng. Reject chúng.
<!-- Populated by knowledge-compound skill after cycles where this skill underperformed --> <!-- Format: [YYYY-MM-DD] What failed | Root cause | What to do instead --> <!-- DO NOT pre-populate with speculation — real observations only --> <!-- Example: [2026-06-01] Agent skipped risk scoring for "trivial" CSS task that touched auth config | Triage gate not read carefully | Triage gate now checks file content, not just task description -->
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.