Repository navigation
ntkit v2.1.0
-
Fix:
/standup-ntmissed everyplanthat is a symlink:find -type ddoes not match a link, so a repo whose plan lives elsewhere reported as "no plan/". It now matches folders and links, drops broken links, skips worktrees and the plan store, and keeps one row per real folder. -
Fix: the ignore check was a text search for
plan/in.gitignore, and aplan/line matches folders only — a symlinkedplanshowed as untracked (?? plan) while every check passed./scaffold-ntnow writes/plan;/decide-nt,/soc-nt,/windup-nt,/replan-ntand/package-ntcheck withgit check-ignore -q planand append/planwhen it fails. Existingplan/lines keep working for real folders. -
Added:
MEMORY.md§0 Where plan/ lives —plan/is a folder or a symlink to one, and every command accepts both. Opt-inNT_PLAN_STORE(default: unset):/scaffold-nt,/decide-ntand/soc-ntcreate a missingplan/inside the store and symlink it in, mirroring the repo's path, so one job can back up every plan./windup-nt's worktree rescue notes that a symlinked worktreeplanholds nothing of its own.AUTHORING.mdchecklist gains the rule for new commands. -
Added:
/forward-pass-ntgains a sixth lens, test value, and aTfinding track. It hunts tests that cannot fail for the reason they claim (assertion-free probes, expected values produced by the code under test, mocks that implement the asserted behaviour, mirror tests, duplicate proof, vacuous negatives, regressions that never went red) and production seams that exist only for tests. A retention bar outranks the hunt: protocol, migration, security, and other contract tests stay. EachTfinding names its keeper test and the command that runs it; the lens recommends and never deletes. Catalogue inreferences/test-value.md, adapted from openclaw'stest-auditskill. -
Changed:
SUBSTANCE.md§6.3 adds the authoring gate for new tests (four questions: what it protects, what regression turns it red, why existing coverage misses it, whether it needs a test-only seam), failure modes written before isolated code, a regression test must go red on the pre-fix code, and an end-to-end check ends in a replayable artifact. -
Added:
SUBSTANCE.md§6.8 deletion without a keeper, the eighth named pattern: removing a test because "another layer covers it" without naming that test and showing it goes red under a mutation. openclaw's Telegram campaign found 9 real coverage gaps behind cuts that looked safe. -
Changed:
/autopilot-nt's checker enforces both: a new regression test is run against the stashed-out fix and must go red first, and aTdelete/consolidate item passes only when the named keeper goes red under one deliberate mutation, with the source restored byte for byte.
No verifier defined (markdown skills, no build or tests).
Full changelog: v2.0.0...v2.1.0