Skip to content

Releases: NakliTechie/ntkit

ntkit v2.5.0

Choose a tag to compare

@NakliTechie NakliTechie released this 02 Oct 10:34

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-nt sweeps stray branches. windup-nt/bin/branches.sh classifies every local and origin branch 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 in pending.md or workplan.md), or unmerged. Windup deletes merged branches locally and on the remote, records each tip SHA in the day summary, and asks about the rest in one Open question. /resume-nt runs 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) and autopilot-nt-external-caller (a Stray item that would delete a published export).

Changed

  • /forward-pass-nt tests 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 recorded history.md decision 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-nt flags the planted structure and leaves the real seam alone, and that /autopilot-nt deletes a private helper but parks the published export.

ntkit v2.4.0

Choose a tag to compare

@NakliTechie NakliTechie released this 01 Oct 17:59

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 the web-perf skill's. maintain-nt's supply-chain and CI-privilege checks moved into /forward-pass-nt (below).
  • DRIVER-HARNESS.md. /harden-nt carries 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 ## Impact block (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 its path: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 carries Commit:.
  • /forward-pass-nt security 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-nt attacks 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 in verify/neuter-matrix.md, replayed in Phase 6. /autopilot-nt applies the same variant rule to [Security] items.
  • /ux-review-nt reports end with a batched [ ] Workplan, which /release-nt and /autopilot-nt already read.
  • /package-nt no longer edits the app's <head>, deploys or pushes. A missing app card or meta tags is a gate finding; the app card renders to marketing/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-nt applies each record's Impact once and folds lab leg reports; /resume-nt names open lab campaigns.
  • Rotation in /forward-pass-nt, /walkthrough-nt and /ux-review-nt says what to do when no other model is reachable: run as-is and write rotation: unavailable.
  • allowed-tools names Agent instead of Task, and lists the browser tools of every skill that drives one.

Added

  • forward-pass-nt/bin/cite-check.py: the report's exit check. Every path:line must 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-nt wrote pending.md and history.md directly, 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-nt ran two scripts by repo-relative path. All three are anchored.
  • /walkthrough-nt and /ux-review-nt disagreed 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

Choose a tag to compare

@NakliTechie NakliTechie released this 30 Sep 13:45

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-nt L2–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.py blinds 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"]. plancheck checks 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; a soc: quote must come from that one entry. Until now plancheck could 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-nt and /windup-nt quote 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-nt prints them without recomputing. plancheck checks its answers like pending.md's. No file, no change. MEMORY.md §7.
  • recall over the records (MEMORY.md §8). /resume-nt answers "when did we decide X / why did we drop Y" by searching plan/ and _archive/ with scholia history <terms> --plan ., which dates each hit; without scholia it falls back to rg.
  • tests/plancheck.test.sh: clean, orphan, ghost, misquote, soc-entry scoping, standing.md as a derived file, and --json. Against the previous plancheck it 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 status prints 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 --check passed.
  • 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.

Full changelog

ntkit v2.2.0

Choose a tag to compare

@NakliTechie NakliTechie released this 27 Sep 08:50

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-nt hosted 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 in plan/demo-protocol.md.
  • A test bench: tests/run.sh (free, seconds) and evals/run.sh (one model run per case).
  • A contrast gate on social cards, caption-first launch drafts, and a HERO_FLOW storyboard 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

Choose a tag to compare

@NakliTechie NakliTechie released this 25 Sep 17:47
  • Fix: /standup-nt missed every plan that is a symlink: find -type d does 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 a plan/ line matches folders only — a symlinked plan showed as untracked (?? plan) while every check passed. /scaffold-nt now writes /plan; /decide-nt, /soc-nt, /windup-nt, /replan-nt and /package-nt check with git check-ignore -q plan and append /plan when it fails. Existing plan/ 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-in NT_PLAN_STORE (default: unset): /scaffold-nt, /decide-nt and /soc-nt create a missing plan/ 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 worktree plan holds nothing of its own. AUTHORING.md checklist gains the rule for new commands.

  • Added: /forward-pass-nt gains a sixth lens, test value, and a T finding 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. Each T finding names its keeper test and the command that runs it; the lens recommends and never deletes. Catalogue in references/test-value.md, adapted from openclaw's test-audit skill.

  • 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 a T delete/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

Choose a tag to compare

@NakliTechie NakliTechie released this 24 Sep 04:48

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-nt and ask-nt move to their own repo, NakliTechie/scholia, with the vault engine they call. They depended on a bin/vaultdb.py that 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-nt and /lab-nt still run /ask-nt first 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-nt became a bounded search loop (at most 4 rounds, evidence accumulates, Rounds: n/4 footer) with fixes from three cold runs, and capture-nt gained 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-nt uploads 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-nt re-uploads it when the card image changed. references/social-preview.md is corrected from two real uploads: open the Edit menu first, then file_upload to the hidden type=file input; an upload before opening the menu left a card URL serving AccessDenied while usesCustomOpenGraphImage read true. 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-nt ships a reusable social-card template — references/render-social-card.sh (headless Chrome + sips, no npm) and references/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:image on 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's references/summary-and-pending.md was 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-router SKILL.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-tools added to decide-nt, soc-nt, replan-nt, resume-nt, standup-nt, windup-nt (and the two since moved to scholia), argument-hint added to replan-nt and windup-nt (183fe66).

Full changelog: v1.6.0...v2.0.0

v1.6.0

Choose a tag to compare

@NakliTechie NakliTechie released this 23 Sep 03:13

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-nt and harden-nt gain 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"), plus DRIVER.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

Choose a tag to compare

@NakliTechie NakliTechie released this 06 Sep 08:24

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

Choose a tag to compare

@NakliTechie NakliTechie released this 06 Sep 08:16

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>.md to skills/<name>/SKILL.md. Install is now cp -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, harden are now a short SKILL.md (contract, guards, stop-lines, a phase table) plus references/ 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-nt tag-listing command used rg -ohI with a brace glob and printed ripgrep's help; replaced with a grep -rhoE form.
  • .worktrees/ gitignored.
  • /spar-nt remains as the deprecated alias for /harden-nt.