[object Object]

← back to Ticket System

tk new: intercept bare --help/-h so it prints usage instead of minting junk tickets (TK-11899/TK-11937)

fbfd5fba477de9f29dba6d28b520c4f13947bb2f · 2026-09-20 03:01:02 -0700 · Steve Abrams

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QwxmsRUybBgfF9QnvacjZ8

Files touched

Diff

commit fbfd5fba477de9f29dba6d28b520c4f13947bb2f
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Sun Sep 20 03:01:02 2026 -0700

    tk new: intercept bare --help/-h so it prints usage instead of minting junk tickets (TK-11899/TK-11937)
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01QwxmsRUybBgfF9QnvacjZ8
---
 tk | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tk b/tk
index e3642d3f..8441fe5d 100755
--- a/tk
+++ b/tk
@@ -115,7 +115,14 @@ function titleWindow(id) {
 if (cmd === 'new') {
   const project = opt('-p') || opt('--project') || '';
   const body = opt('-b') || opt('--body') || '';
-  const title = argv.join(' ').trim(); if (!title) die('usage: tk new "title" [-p project] [-a agent]');
+  const title = argv.join(' ').trim();
+  // TK-11899/TK-11937 (2026-09-20): `tk new --help` / `tk new -h` has no --help
+  // flag to consume, so the token became the TITLE and minted junk tickets named
+  // "--help" (happened 3x: TK-11899, TK-11937, and the original nightloop typo).
+  // Intercept ONLY the bare help-flag forms and print usage instead of creating —
+  // a real multi-word title that merely contains "help" is unaffected.
+  if (/^(--help|-h|--h)$/i.test(title)) die('usage: tk new "title" [-p project] [-a agent] [-b "opening comment"]');
+  if (!title) die('usage: tk new "title" [-p project] [-a agent]');
   // TK-11676: mechanical cap on the masterdot per-colour subagents' tk-new authority.
   // A free-judgment LLM supervisor once minted 24 per-tty tickets in ~19s off a signal it
   // recorded it COULD NOT verify. Prose briefs can't stop an LLM under time pressure, so the

← b9b94aaa TK-11899/TK-11937: verify + close two junk '--help' typo tic  ·  back to Ticket System  ·  ticket board: PARKED lane + reaper skips parked tickets (dur e8b78db9 →