@brainervirus/workit-claude-code 8.4.1 → 8.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/bin/workit-hook.mjs +5 -1
- package/dist/workit-hook.js +45 -43
- package/dist/workit.js +21 -8
- package/hooks/hooks.json +12 -1
- package/package.json +3 -3
- package/skills/retro/SKILL.md +2 -2
package/dist/workit.js
CHANGED
|
@@ -65,7 +65,7 @@ var package_default;
|
|
|
65
65
|
var init_package = __esm(() => {
|
|
66
66
|
package_default = {
|
|
67
67
|
name: "@brainervirus/workit-cli",
|
|
68
|
-
version: "8.
|
|
68
|
+
version: "8.5.1",
|
|
69
69
|
private: false,
|
|
70
70
|
description: "Workit CLI — setup wizard, doctor, and task control for agentic coding workflows",
|
|
71
71
|
keywords: [
|
|
@@ -103,9 +103,9 @@ var init_package = __esm(() => {
|
|
|
103
103
|
},
|
|
104
104
|
dependencies: {
|
|
105
105
|
"@babel/parser": "7.29.9",
|
|
106
|
-
"@brainervirus/workit-core": "^8.
|
|
107
|
-
"@brainervirus/workit-cursor": "^8.
|
|
108
|
-
"@brainervirus/workit-opencode": "^8.
|
|
106
|
+
"@brainervirus/workit-core": "^8.5.1",
|
|
107
|
+
"@brainervirus/workit-cursor": "^8.5.1",
|
|
108
|
+
"@brainervirus/workit-opencode": "^8.5.1",
|
|
109
109
|
"@inkjs/ui": "2.0.0",
|
|
110
110
|
ink: "7.1.1",
|
|
111
111
|
react: "19.2.8"
|
|
@@ -15121,6 +15121,9 @@ function summarizeRow(row) {
|
|
|
15121
15121
|
case "standing.cleared":
|
|
15122
15122
|
summary = `cleared ${text("target") || "every standing order"} (fanout ${text("fanout")})`;
|
|
15123
15123
|
break;
|
|
15124
|
+
case "skill.loaded":
|
|
15125
|
+
summary = `${text("skill")} (${text("via") || "tool"})${row.actor.session ? "" : " (no session)"}`;
|
|
15126
|
+
break;
|
|
15124
15127
|
case "commit.recorded":
|
|
15125
15128
|
summary = `${(row.head ?? "?").slice(0, 12)} ${text("subject")}${row.actor.session ? "" : " (no session)"}`;
|
|
15126
15129
|
break;
|
|
@@ -76194,20 +76197,30 @@ async function status(argv, io) {
|
|
|
76194
76197
|
return forgeFail(io, report);
|
|
76195
76198
|
const doc = report.data.doc;
|
|
76196
76199
|
const hint = nextHint(doc.next, doc.number);
|
|
76197
|
-
return emit(io, ok({ ...doc, nextHint: hint, verdict: verdictBlock(io.cwd, doc.head.branch) }), (data) => {
|
|
76200
|
+
return emit(io, ok({ ...doc, nextHint: hint, verdict: verdictBlock(io.cwd, doc.head.branch, doc) }), (data) => {
|
|
76198
76201
|
const lines = renderStatus(data);
|
|
76199
|
-
lines.splice(lines.length - 1, 0, data.verdict ? `verdict: ${data.verdict.accepted ? `accepted (${data.verdict.basis})` : data.verdict.review === "self-reviewed" ? "self-reviewed (author's own verdict; not independent)" : `not accepted (${data.verdict.reasons.join(", ") || data.verdict.basis})`}` : "verdict: unknown (ledger unreadable)");
|
|
76202
|
+
lines.splice(lines.length - 1, 0, data.verdict?.merge ? `verdict: ${mergedVerdictLine(data.verdict.merge)}` : data.verdict ? `verdict: ${data.verdict.accepted ? `accepted (${data.verdict.basis})` : data.verdict.review === "self-reviewed" ? "self-reviewed (author's own verdict; not independent)" : `not accepted (${data.verdict.reasons.join(", ") || data.verdict.basis})`}` : "verdict: unknown (ledger unreadable)");
|
|
76200
76203
|
if (data.nextHint)
|
|
76201
76204
|
lines.splice(lines.length - 1, 0, `do: ${data.nextHint}`);
|
|
76202
76205
|
return lines;
|
|
76203
76206
|
});
|
|
76204
76207
|
}
|
|
76205
|
-
function verdictBlock(cwd, branch) {
|
|
76208
|
+
function verdictBlock(cwd, branch, doc) {
|
|
76206
76209
|
const ledger = readLedger(cwd);
|
|
76207
76210
|
if (!ledger.ok)
|
|
76208
76211
|
return null;
|
|
76209
76212
|
const check = checkVerdicts(cwd, branch, ledger.value.rows);
|
|
76213
|
+
let landed = null;
|
|
76214
|
+
if (doc.state === "merged") {
|
|
76215
|
+
const row = ledger.value.rows.findLast((candidate) => candidate.type === "pr.merged" && candidate.observer === "workit_cli" && candidate.pr === doc.number && candidate.base === doc.base);
|
|
76216
|
+
landed = row ? {
|
|
76217
|
+
head: typeof row.head === "string" ? row.head : null,
|
|
76218
|
+
verdictId: typeof row.verdictId === "string" ? row.verdictId : null,
|
|
76219
|
+
unverified: row.unverified !== undefined && row.unverified !== null
|
|
76220
|
+
} : "untracked";
|
|
76221
|
+
}
|
|
76210
76222
|
return {
|
|
76223
|
+
merge: landed,
|
|
76211
76224
|
accepted: check.accepted.accepted,
|
|
76212
76225
|
review: check.review,
|
|
76213
76226
|
basis: check.current.basis,
|
|
@@ -76493,7 +76506,7 @@ async function run10(argv, io) {
|
|
|
76493
76506
|
return reply(rest, io);
|
|
76494
76507
|
return usage3(io, sub && !sub.startsWith("-") ? `unknown pr subcommand "${sub}"` : "missing pr subcommand", USAGE4);
|
|
76495
76508
|
}
|
|
76496
|
-
var STATUS_USAGE = "workit pr status [--pr <n> | --branch <b>] [--log-lines 60] [--json]", CREATE_USAGE = "workit pr create [--base <b> | --track <t>] (--title <t> [--body <text> | --body-file <f|->] | --fill) [--label <l>]… [--reviewer <login>]… [--draft] [--json]", MERGE_USAGE = "workit pr merge [--pr <n>] [--method squash|merge|rebase] [--delete-branch] [--unverified --reason <why>] [--json]", READY_USAGE = "workit pr ready [--pr <n>] [--undo] [--json]", EDIT_USAGE = "workit pr edit [--pr <n>] [--title <t>] [--body-file <f|->] [--add-label <l>]… [--remove-label <l>]… [--add-reviewer <login>]… [--base <b>] [--json]", THREADS_USAGE = "workit pr threads [--pr <n>] [--json]", REPLY_USAGE = "workit pr reply [--pr <n>] --thread <id> [--body-file <f|->] [--resolve] [--json]", USAGE4 = "workit pr status|create|merge|ready|edit|threads|reply ... (workit help pr)", prLabel = (kind, number) => `${kind === "github" ? "PR #" : "MR !"}${number}`, METHODS2;
|
|
76509
|
+
var STATUS_USAGE = "workit pr status [--pr <n> | --branch <b>] [--log-lines 60] [--json]", CREATE_USAGE = "workit pr create [--base <b> | --track <t>] (--title <t> [--body <text> | --body-file <f|->] | --fill) [--label <l>]… [--reviewer <login>]… [--draft] [--json]", MERGE_USAGE = "workit pr merge [--pr <n>] [--method squash|merge|rebase] [--delete-branch] [--unverified --reason <why>] [--json]", READY_USAGE = "workit pr ready [--pr <n>] [--undo] [--json]", EDIT_USAGE = "workit pr edit [--pr <n>] [--title <t>] [--body-file <f|->] [--add-label <l>]… [--remove-label <l>]… [--add-reviewer <login>]… [--base <b>] [--json]", THREADS_USAGE = "workit pr threads [--pr <n>] [--json]", REPLY_USAGE = "workit pr reply [--pr <n>] --thread <id> [--body-file <f|->] [--resolve] [--json]", USAGE4 = "workit pr status|create|merge|ready|edit|threads|reply ... (workit help pr)", prLabel = (kind, number) => `${kind === "github" ? "PR #" : "MR !"}${number}`, mergedVerdictLine = (landed) => landed === "untracked" ? "merged outside workit (no merge record)" : landed.unverified ? `merged unverified at ${(landed.head ?? "?").slice(0, 12)} (recorded bypass)` : `merged with accepted verdict ${landed.verdictId ?? "?"} at ${(landed.head ?? "?").slice(0, 12)}`, METHODS2;
|
|
76497
76510
|
var init_pr = __esm(() => {
|
|
76498
76511
|
init_pr_body();
|
|
76499
76512
|
init_pr_edit();
|
package/hooks/hooks.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"description": "Workit host hooks: task context on session start (incl. compaction restore and forks) and when it changes per turn, branch policy and raw git/forge steering (deny gate bypasses, nudge routine commands) on shell commands, the before-write gate on file edits and shell writes, recording raw git commits for the session after they run,
|
|
2
|
+
"description": "Workit host hooks: task context on session start (incl. compaction restore and forks) and when it changes per turn, branch policy and raw git/forge steering (deny gate bypasses, nudge routine commands) on shell commands, the before-write gate on file edits and shell writes, recording raw git commits for the session after they run, worktree guidance for subagents, a one-line skill nudge on prompts and delivery commands, and recording each Workit skill load. Only events that change Claude's behavior are registered.",
|
|
3
3
|
"hooks": {
|
|
4
4
|
"SessionStart": [
|
|
5
5
|
{
|
|
@@ -59,6 +59,17 @@
|
|
|
59
59
|
"timeout": 5
|
|
60
60
|
}
|
|
61
61
|
]
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"matcher": "Skill",
|
|
65
|
+
"hooks": [
|
|
66
|
+
{
|
|
67
|
+
"type": "command",
|
|
68
|
+
"command": "node",
|
|
69
|
+
"args": ["${CLAUDE_PLUGIN_ROOT}/bin/workit-hook.mjs"],
|
|
70
|
+
"timeout": 5
|
|
71
|
+
}
|
|
72
|
+
]
|
|
62
73
|
}
|
|
63
74
|
],
|
|
64
75
|
"PostToolUse": [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brainervirus/workit-claude-code",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.5.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Workit Claude Code plugin — session and per-turn task context, branch policy on git shell commands, workit method skills, and verifier/reviewer/implementer agents",
|
|
6
6
|
"keywords": [
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"build": "bun scripts/build.ts"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@brainervirus/workit-cli": "^8.
|
|
43
|
-
"@brainervirus/workit-core": "^8.
|
|
42
|
+
"@brainervirus/workit-cli": "^8.5.1",
|
|
43
|
+
"@brainervirus/workit-core": "^8.5.1"
|
|
44
44
|
},
|
|
45
45
|
"engines": {
|
|
46
46
|
"node": ">=24"
|
package/skills/retro/SKILL.md
CHANGED
|
@@ -15,8 +15,8 @@ proposes and stops. Nothing changes until the user approves.
|
|
|
15
15
|
`retro:` row in `workit ledger list --type decision`), else the last ~10
|
|
16
16
|
sessions. State the window in one line.
|
|
17
17
|
2. **Read through workit, cheapest first.** Every finding cites these:
|
|
18
|
-
- `workit ledger list --last 200`: rulings
|
|
19
|
-
|
|
18
|
+
- `workit ledger list --last 200`: rulings, failed/self verdicts, handoffs,
|
|
19
|
+
check runs, CI reruns, `skill.loaded` rows (skipped skills: routing).
|
|
20
20
|
- `workit pr status --pr <n>` for each recent PR: threads, failing checks.
|
|
21
21
|
- `git log --oneline -50`, plus reverts and fixups after review.
|
|
22
22
|
- `workit knowledge lint`: today's AGENTS.md and need-based files.
|