Repository navigation
Releases: NakliTechie/ntkit
Release list
ntkit v2.5.0
ntkit v2.5.0
/forward-pass-nt now checks code structure, not only dead code. /autopilot-nt builds the end state when it cleans that structure up, and stops before breaking a caller outside the repo. /windup-nt deletes branches already merged to main and asks about the rest. Ideas from jnsahaj/skills zero-tech-debt; adapted from mattpocock/skills codebase-design (MIT).
[2.5.0] — 2026-10-02
Added
/windup-ntsweeps stray branches.windup-nt/bin/branches.shclassifies every local andoriginbranch and changes nothing:merged(an ancestor of the default branch, or a squash or rebase merge whose merge changes no file),hold(merged, but a long-lived name, a remote or same-name local branch with unmerged commits, or named inpending.mdorworkplan.md), orunmerged. Windup deletesmergedbranches locally and on the remote, records each tip SHA in the day summary, and asks about the rest in one Open question./resume-ntruns the same script read-only and names the counts in its brief.tests/branches.test.sh.- Eval cases
forward-pass-nt-structure(four planted structure findings, with a legitimate injected payment gateway as bait) andautopilot-nt-external-caller(a Stray item that would delete a published export).
Changed
/forward-pass-nttests live structure. The Stray lens adds three tests: no caller (callers outside the repo count), deletion (a pass-through is Stray), and two adapters (one implementation and no test stand-in is Stray). Security gains a fourth habit: a permission, flag or gate rule written in two places is a finding, ranked by what the weaker copy lets through. The map ranks files by churn, and structure items in busy files come first. A fix that would undo a recordedhistory.mddecision quotes it and defers to/decide-nt.- Dependency categories decide which stand-in a test may use (
test-value.md,SUBSTANCE.md§6.3): the real code for in-process logic, a local stand-in for a database or filesystem, an injected port with a test adapter for owned remote and third-party services, the clock and randomness. An injected payment client is no longer a test-only seam; a mock of in-process code is Mock-as-subject. /autopilot-nt: a bug still gets the smallest fix. A Stray item or refactor goal writes its end state in one sentence and deletes compatibility paths with no caller; its checker greps each deleted name for a remaining caller. Removing a published export, a persisted data shape, a public route, or a documented flag or config key is a new stop-line.
Verified
sh tests/run.sh: 14 passed, 0 failed, 0 skipped.evals/run.sh: all 10 model evals pass on Claude Opus 5.5 (about $6.07 in estimated usage). The two new cases check that/forward-pass-ntflags the planted structure and leaves the real seam alone, and that/autopilot-ntdeletes a private helper but parks the published export.
ntkit v2.4.0
ntkit v2.4.0
The kit is 20 skills, and each one is shorter. /standup-nt and /maintain-nt are gone, and every command was trimmed to what still changes a current model's behaviour (64,010 → about 41,700 words). /forward-pass-nt and /harden-nt gain grounding rules from google/mantis: a fresh disprover for every serious finding, cited ingress, severity caps, variant re-attacks, and a pointer check on every report.
[2.4.0] — 2026-10-01
Upgrade note: the kit is 20 skills. /standup-nt and /maintain-nt are removed. Delete ~/.claude/skills/standup-nt/ and ~/.claude/skills/maintain-nt/ after upgrading.
Removed
/standup-nt(2 runs since 2026-06-20) and/maintain-nt(1 run). Cross-repo status lives in the plan store (NT_PLAN_STORE); dependency and Actions upkeep is Dependabot's job; performance drift is theweb-perfskill's. maintain-nt's supply-chain and CI-privilege checks moved into/forward-pass-nt(below).DRIVER-HARNESS.md./harden-ntcarries every rule it described.
Changed
- Every command trimmed to what still changes a current model's behaviour: 64,010 → about 41,700 words across the kit. Cut generic how-to, textbook lists, rationale prose and text repeated across files; kept every contract, stop-line and incident rule, and the guards against self-grading, unverified "done", stubs and anchoring. Three fresh checkers compared old against new; every lost rule they found is restored.
- One short
## Impactblock (MEMORY.md §3) in every record writer, naming the writer rule: a command may flip an item's status, never add, drop or reword it. - MEMORY.md W3: any executor may tick the
[ ]items of a report's own Workplan, with an evidence row in its progress log. /forward-pass-nt(from google/mantis, Apache-2.0): every Critical, High and Security candidate is challenged by a fresh agent that sees only the claim and itspath:line; Security severity is capped by marginal capability and a Security finding cites its ingress; a git-history seed re-checks past fixes and hunts their variants; findings are reconciled against prior reports after the cold read (new · still open · regression · re-flagged); the report header carriesCommit:./forward-pass-ntsecurity classes gain Supply chain & CI: floating sources, privileged fork triggers, script injection, cache poisoning, and known-advisory scanning. Any repo with dependencies or workflows runs it./harden-ntattacks the fix, not the input: a Verify round needs at least three variants of the same defect class, every run must show it reached the guarded code, and a fix that removes the feature counts as a stub. Hardened paths get a row inverify/neuter-matrix.md, replayed in Phase 6./autopilot-ntapplies the same variant rule to[Security]items./ux-review-ntreports end with a batched[ ]Workplan, which/release-ntand/autopilot-ntalready read./package-ntno longer edits the app's<head>, deploys or pushes. A missing app card or meta tags is a gate finding; the app card renders tomarketing/social-app.png. A missing LICENSE, a failed fresh-clone install, and a third-party host under a local-only README claim are blockers./replan-ntapplies each record's Impact once and folds lab leg reports;/resume-ntnames open lab campaigns.- Rotation in
/forward-pass-nt,/walkthrough-ntand/ux-review-ntsays what to do when no other model is reachable: run as-is and writerotation: unavailable. allowed-toolsnamesAgentinstead ofTask, and lists the browser tools of every skill that drives one.
Added
forward-pass-nt/bin/cite-check.py: the report's exit check. Everypath:linemust name an existing file and line, and every finding must cite one.tests/cite-check.test.sh.tests/anchoring.test.sh: skills run their own scripts by anchored path ($SKILL/...), never repo-relative (AUTHORING §11).tests/security-classes-sync.test.sh: the two copies of the class catalogue stay identical.
Fixed
/autopilot-ntwrotepending.mdandhistory.mddirectly, against its own contract; it now declares them as Impact lines. Its branch, worktree and record names are fixed once at launch, so a run that crosses midnight no longer merges a branch that does not exist; same-day runs take the first free-N./replan-nt's plancheck command used$(dirname "$0"), which names the shell in an agent's Bash;/package-ntran two scripts by repo-relative path. All three are anchored./walkthrough-ntand/ux-review-ntdisagreed on the number of floor invariants (seven) and on waiting (a condition, never a fixed sleep).- Cross-skill paths use
$SKILL/../<skill>/, so per-project installs resolve them. - Private project names removed from skill text and this changelog.
Not verified: the model evals (evals/run.sh) did not run for this release; the eval login needs a keychain approval. tests/run.sh: 13 passed, 0 failed.
Full changelog: v2.3.0...v2.4.0
ntkit v2.3.0
ntkit v2.3.0
/research-nt turns a web question into a cited report. It plans with three independent agents, requests plan approval, researches sections, edits, and checks sampled claims.
Plan memory also gains quoted provenance, standing questions, and recall over prior records.
[2.3.0] — 2026-09-30
Added
/research-nt: a question-to-report workflow with optional vault lookup, an approval stop, bounded web fetches, section research, editing, and sampled citation checks./research-ntL2–L5: three independent planners and a merge judge, one critic/reviser pass, one scoped editor, and sampled claim verification with one repair allowance. L6 comparative research quality remains unmeasured.evals/research-bench.pyblinds the five preregistered report pairs and computes the documented shipping rule from complete rubric verdicts and claim-support counts.- quoted provenance. A tag may carry the record's own words,
[from: 2026-09-10-summary "parked until usage passes 10k rows"].plancheckchecks that the words are in the record it names and reports a new hard finding, misquote, when they are not. The comparison ignores case, whitespace, typographic quotes, dashes and markdown emphasis; asoc:quote must come from that one entry. Until nowplancheckcould prove a record existed but not that an item said what it said (MEMORY.md §6); a quoted item's wording is now checked./replan-ntand/windup-ntquote where the record has the words. Bare tags stay valid. - standing questions, an optional
plan/standing.md. The human writes the##questions; the reconcile pass rewrites the answers from the records, tagged and quoted;/resume-ntprints them without recomputing.plancheckchecks its answers likepending.md's. No file, no change. MEMORY.md §7. - recall over the records (MEMORY.md §8).
/resume-ntanswers "when did we decide X / why did we drop Y" by searchingplan/and_archive/withscholia history <terms> --plan ., which dates each hit; without scholia it falls back torg. tests/plancheck.test.sh: clean, orphan, ghost, misquote, soc-entry scoping,standing.mdas a derived file, and--json. Against the previousplancheckit fails 8 checks.- Research workflow documentation, updated workflow and social images, and research, hardening, chaos-leg, and ATTEST promo videos.
Changed
- G3 reconstructs the full ten-claim sample, binds verdicts to the report and stored evidence, and rejects missing repair reviews. Skipping G3 produces a diagnostic result, never VERIFIED.
/research-nt statusprints the run slug, state, and original question. Offline eval fixtures cover BUDGET resume and infrastructure failure.- README software comparisons are optional in the packaging gate. The chaos-leg brief describes the action-sequence walk explicitly.
Fixed
- concurrent planners share a locked fetch budget, preventing simultaneous requests from exceeding their cap.
Validation limits
- The L6 comparison stopped before completion. This release makes no claim of measured superiority over the baseline research workflow.
- Native role validation does not establish Claude-host compatibility. Notification integrations remain untested.
Verification
sh tests/run.sh: 10 passed, 0 failed, 0 skipped.- Ruff and
git diff --checkpassed. - Native fixtures exercise the approval stop, BUDGET resume, infrastructure failure, and claim-repair handling.
- The five-prompt L6 comparison remains incomplete. The user explicitly requested release after stopping that comparison.
- No application deployment exists: ntkit distributes Markdown skills and scripts through GitHub.
ntkit v2.2.0
Two additions lead this release.
Launch videos. /package-nt now makes the launch video itself. brag is vendored inside it, so a fresh install needs no other skill. It has two modes: demo, 15–25 s of the product in use for people who will install it, and promo, 35–45 s of one headline per thing the product does, for leadership and non-technical viewers. Every video gets a settled poster baked into frame 0 and a fresh-context stranger test on what and who. The 43-second promo attached below was made this way.
Disk cleanup. /reclaim-nt scans with disktree-cli. Sizes are what deleting gives back. Findings come in two tiers, so the model judges only what may be someone's only copy: weights, worktrees with their git state, stale experiments, old archives. Build output and caches skip the judgment. Removal goes to the Trash only, one named finding at a time, through tested guards.
Also in this release
/demo-nthosted mode: serve the demo from your laptop through a named tunnel, sign in as fictional personas, and pass an anonymous probe of every public hostname before the link is shared. It keeps a presenter playbook inplan/demo-protocol.md.- A test bench:
tests/run.sh(free, seconds) andevals/run.sh(one model run per case). - A contrast gate on social cards, caption-first launch drafts, and a
HERO_FLOWstoryboard from/guide-nt.
Known gap: the /demo-nt probe stop-line has no eval case, because it needs a live tunnel.
Credits for disktree and brag are in the README. Full detail: CHANGELOG.md.
Full changelog: v2.1.0...v2.2.0
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
ntkit v2.0.0
ntkit is now 21 skills. The knowledge-vault pair, /capture-nt and /ask-nt, moved to NakliTechie/scholia with the search engine they call — in ntkit they depended on a script that existed only in the author's private vault, so they never worked for anyone else. Install them from scholia; copies already in ~/.claude/skills/ keep working.
Also: /package-nt now uploads the repo's social card itself through Claude-in-Chrome and verifies it by hash, and a truncated /windup-nt reference is restored.
- Removed:
capture-ntandask-ntmove to their own repo, NakliTechie/scholia, with the vault engine they call. They depended on abin/vaultdb.pythat lived only in the author's private vault, so both were broken for anyone else who installed ntkit. Install them from scholia; skills already in~/.claude/skills/keep working./scaffold-ntand/lab-ntstill run/ask-ntfirst when it is installed and fall back to the web when it is not. The kit is 21 skills. - Changed (shipped in scholia v0.1.0, not here): before the move,
ask-ntbecame a bounded search loop (at most 4 rounds, evidence accumulates,Rounds: n/4footer) with fixes from three cold runs, andcapture-ntgained passage links ([[source#^claim]]), a text snapshot of every source, and realm tags for personal/work notes (0a6da8e,3ce0280,f6eaed8). - Changed: the repo's social card is now set by the agent by default.
/package-ntuploads it through Claude-in-Chrome instead of handing the user a manual step (the one outward action it takes: the project's own repo setting, not a post), and/release-ntre-uploads it when the card image changed.references/social-preview.mdis corrected from two real uploads: open the Edit menu first, thenfile_uploadto the hiddentype=fileinput; an upload before opening the menu left a card URL servingAccessDeniedwhileusesCustomOpenGraphImagereadtrue. The check is now a hash of the image GitHub serves against the local file, because the settings preview can stay blank after a good upload. - Added:
package-ntships a reusable social-card template —references/render-social-card.sh(headless Chrome +sips, no npm) andreferences/social-card-build.md— run once for the repo's card and once for the deployed app's, instead of hand-writing card HTML per project (47c98d7). - Changed:
package-nt's launch gate checks the deployed app's own card (og:image/twitter:imageon the live URL), not only the repo's, and flags the repo's "About" description as a separate field that feeds shared cards (e0b6915). - Fix:
windup-nt'sreferences/summary-and-pending.mdwas truncated when the skill became a router (a709955, 2026-09-06): it stopped after Step 2's opening code fence, so every windup since ran without the pending.md structure and merge rules. Restored verbatim from the pre-routerSKILL.md. The other seven reference files split in that commit were checked paragraph by paragraph against the original; none lost text. - Fix: 8 skills were missing AUTHORING.md rule-1 frontmatter:
allowed-toolsadded todecide-nt,soc-nt,replan-nt,resume-nt,standup-nt,windup-nt(and the two since moved to scholia),argument-hintadded toreplan-ntandwindup-nt(183fe66).
Full changelog: v1.6.0...v2.0.0
v1.6.0
Highlights
- ATTEST Issue 0.2 — a readability zone alongside the claim zone: sentence caps, one-idea-per-sentence, and a documented AI-tell blocklist now apply everywhere, not only formal reports.
- Full security-domain coverage —
forward-pass-ntandharden-ntgain all ten of cloudflare/security-audit-skill's attack-class domains (MIT), condensed, including memory-safety/binary and desktop/mobile/local-IPC for the shift toward distributed binaries and end-user apps. - New skill:
/reclaim-nt— sweeps a project for orphaned checkpoints, stale downloads, dead artifacts; proposes deletions, never auto-deletes. The kit is 23 skills. - README rebuilt to
README-DOCTRINE.md's house shape (156 → 109 lines); the knowledge vault promoted from a footer line to its own product section and its own bar in the workflow diagram. - Agent-readiness lens —
forward-pass-nt's fifth lens checks whether a declared agent-facing manifest exists and holds parity with the UI (Build Doctrine's "two doors, one core"), plusDRIVER.md's ergonomics self-check.harden-nt's original "does an agent surface exist" purpose moved here, where it's now actually checked on every pass instead of a workplan TODO nobody verified. package-nt's social-preview instruction replaced with a real, tested procedure — including the one step that isn't a click.
Full changelog: CHANGELOG.md
Compare: v1.5.0...v1.6.0
v1.5.0 — remove /spar-nt alias
Removed /spar-nt, the deprecated alias for /harden-nt carried since v1.3. Delete ~/.claude/skills/spar-nt/ after upgrading. The kit is 22 skills.
v1.4.0 — skills layout, short descriptions, routers
v1.4.0 — 2026-09-06
Driven by Eric Provencher's "Rethinking skills and prompts for GPT-6 Astra" (2026-09-05) and the Claude Code skills docs, which cap each listed description at 1,536 characters and budget the whole listing.
- Layout: every command moved from
commands/<name>.mdtoskills/<name>/SKILL.md. Install is nowcp -r ntkit/skills/* ~/.claude/skills/. Delete old copies in~/.claude/commands/after upgrading. - Descriptions: all 23 cut to 15 words or fewer, trigger first, side effect named (657 → 289 words in aggregate).
- Routers:
autopilot,walkthrough,guide,forward-pass,capture,windup,hardenare now a shortSKILL.md(contract, guards, stop-lines, a phase table) plusreferences/files read on entering each phase. Procedure text moved verbatim; nothing was dropped. - AUTHORING.md: §1 description rule (15 words), new §9 "Route, don't recite", checklist updated.
- Fix:
capture-nttag-listing command usedrg -ohIwith a brace glob and printed ripgrep's help; replaced with agrep -rhoEform. .worktrees/gitignored./spar-ntremains as the deprecated alias for/harden-nt.