← back to Ticket System
auto-save: 2026-07-26T14:44:02 (2 files) — server.js tk
0744d3001cc10e2a89b1c5a3b04eb13c1bb3a109 · 2026-07-26 14:44:02 -0700 · Steve Abrams
Files touched
Diff
commit 0744d3001cc10e2a89b1c5a3b04eb13c1bb3a109
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Sun Jul 26 14:44:02 2026 -0700
auto-save: 2026-07-26T14:44:02 (2 files) — server.js tk
---
server.js | 3 ++-
tk | 5 ++++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/server.js b/server.js
index fd8c4c7..a968020 100644
--- a/server.js
+++ b/server.js
@@ -36,10 +36,11 @@ function page() {
.card.x .thread{display:block}
.c{font-size:12px;margin:4px 0;color:#c6ccd8}.c i{color:#8a93a5;font-style:normal;font-size:10px;margin:0 4px}
.c.k-note{color:#e8d48b}.c.k-action{color:#8fd49a}.c.none{color:#5b6270}
+ .c.k-win{color:#34d399}.c.k-challenge{color:#e06c75}.c.k-cody{color:#f59e0b}
.cts{display:block;font-size:10px;color:#5b6270}
.col-doing .card{border-left:3px solid #6db3f2}.col-blocked .card{border-left:3px solid #e06c75}.col-done .card{opacity:.55}
</style>
-<h1>FLEET TICKETS<small>every agent action rides a ticket — tk new / comment / note / log / take / done</small></h1>
+<h1>FLEET TICKETS<small>every agent action rides a ticket — tk new / comment / note / log / win / challenge / cody / take / done</small></h1>
<div class="board">${STATUSES.map(s => `<div class="col col-${s}"><h2>${s} (${cols[s].length})</h2>${cols[s].map(card).join('') || '<div class="c none">empty</div>'}</div>`).join('')}</div>`;
}
diff --git a/tk b/tk
index 643e7a2..89e3015 100755
--- a/tk
+++ b/tk
@@ -4,6 +4,9 @@
// tk new "title" [-p project] [-a agent] [-b "opening comment"]
// tk comment TK-3 "text" [-a agent] # discussion comment
// tk note TK-3 "text" [-a agent] # agent-to-agent handoff note
+// tk win TK-3 "text" [-a agent] # record a WIN (something landed)
+// tk challenge TK-3 "text" [-a agent] # record a CHALLENGE (what fought back)
+// tk cody TK-3 "text" [-a agent] # record Cody the Contrarian's dissent
// tk log TK-3 "action taken" [-a agent] # record an action performed under this ticket
// tk take TK-3 -a agent # assign to an agent
// tk status TK-3 open|doing|blocked|done
@@ -30,7 +33,7 @@ if (cmd === 'new') {
const title = argv.join(' ').trim(); if (!title) die('usage: tk new "title" [-p project] [-a agent]');
const ev = withLock(() => append({ ts, type: 'create', id: nextId(), title, project, agent, body }));
console.log(ev.id);
-} else if (cmd === 'comment' || cmd === 'note') {
+} else if (cmd === 'comment' || cmd === 'note' || cmd === 'win' || cmd === 'challenge' || cmd === 'cody') {
const id = norm(argv.shift()); const text = argv.join(' ').trim(); if (!text) die('missing text');
if (!tickets().has(id)) die('no such ticket ' + id);
append({ ts, type: 'comment', id, kind: cmd, agent, text }); console.log(`${cmd} added to ${id}`);
← c5a54df ticket-system: shared fleet ticket store + tk CLI + kanban b
·
back to Ticket System
·
ticket ids: 5-digit zero-padded + title slug (TK-00025-style a547850 →