From a4ae2feaac8d59b72a38789dd1a4973c1878944e Mon Sep 17 00:00:00 2001 From: Mikael Hugo Date: Sat, 2 May 2026 07:26:07 +0200 Subject: [PATCH] sf snapshot: pre-dispatch, uncommitted changes after 30m inactivity --- src/resources/extensions/sf/commands-backlog.ts | 4 ++-- src/resources/extensions/sf/commands-todo.ts | 2 +- src/resources/extensions/sf/commands/catalog.ts | 2 +- .../extensions/sf/tests/commands-backlog.test.ts | 4 ++-- src/resources/extensions/sf/tests/commands-todo.test.ts | 8 ++++---- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/resources/extensions/sf/commands-backlog.ts b/src/resources/extensions/sf/commands-backlog.ts index bb8b20866..68ee43168 100644 --- a/src/resources/extensions/sf/commands-backlog.ts +++ b/src/resources/extensions/sf/commands-backlog.ts @@ -2,7 +2,7 @@ * SF Command — /sf backlog * * Structured backlog management with 999.x numbering. - * Items stored in .sf/USER-BACKLOG.md as markdown checklist. + * Items stored in .sf/WORK-QUEUE.md as markdown checklist. * Items can be promoted to active slices via add-slice. */ @@ -23,7 +23,7 @@ interface BacklogItem { } function backlogPath(basePath: string): string { - return join(sfRoot(basePath), "USER-BACKLOG.md"); + return join(sfRoot(basePath), "WORK-QUEUE.md"); } function parseBacklog(basePath: string): BacklogItem[] { diff --git a/src/resources/extensions/sf/commands-todo.ts b/src/resources/extensions/sf/commands-todo.ts index fc9f6e376..466fe25fc 100644 --- a/src/resources/extensions/sf/commands-todo.ts +++ b/src/resources/extensions/sf/commands-todo.ts @@ -332,7 +332,7 @@ function renderSkillProposals(result: TodoTriageResult): string { } function backlogPath(basePath: string): string { - return join(sfRoot(basePath), "USER-BACKLOG.md"); + return join(sfRoot(basePath), "WORK-QUEUE.md"); } function nextBacklogId(content: string): string { diff --git a/src/resources/extensions/sf/commands/catalog.ts b/src/resources/extensions/sf/commands/catalog.ts index 47f6cae97..7071c4495 100644 --- a/src/resources/extensions/sf/commands/catalog.ts +++ b/src/resources/extensions/sf/commands/catalog.ts @@ -408,7 +408,7 @@ const NESTED_COMPLETIONS: CompletionMap = { todo: [ { cmd: "triage", desc: "Triage root TODO.md into .sf/triage artifacts" }, { cmd: "triage --no-clear", desc: "Triage TODO.md without resetting it" }, - { cmd: "triage --backlog", desc: "Also add implementation tasks to .sf/USER-BACKLOG.md" }, + { cmd: "triage --backlog", desc: "Also add implementation tasks to .sf/WORK-QUEUE.md" }, ], "pr-branch": [ { cmd: "--dry-run", desc: "Preview what would be filtered" }, diff --git a/src/resources/extensions/sf/tests/commands-backlog.test.ts b/src/resources/extensions/sf/tests/commands-backlog.test.ts index a5ed62baa..afe2f0a6e 100644 --- a/src/resources/extensions/sf/tests/commands-backlog.test.ts +++ b/src/resources/extensions/sf/tests/commands-backlog.test.ts @@ -28,7 +28,7 @@ function cleanup(base: string): void { } function backlogPath(base: string): string { - return join(base, ".sf", "USER-BACKLOG.md"); + return join(base, ".sf", "WORK-QUEUE.md"); } function writeBacklog(base: string, content: string): void { @@ -176,7 +176,7 @@ test("backlog: next ID increments correctly", () => { test("backlog: empty backlog returns no items", () => { const base = makeTmpBase(); try { - // No USER-BACKLOG.md exists + // No WORK-QUEUE.md exists assert.ok(!existsSync(backlogPath(base))); // Would return empty array } finally { diff --git a/src/resources/extensions/sf/tests/commands-todo.test.ts b/src/resources/extensions/sf/tests/commands-todo.test.ts index bc13beac4..0376da9ee 100644 --- a/src/resources/extensions/sf/tests/commands-todo.test.ts +++ b/src/resources/extensions/sf/tests/commands-todo.test.ts @@ -344,7 +344,7 @@ test("triageTodoDump appends implementation tasks to backlog only when requested { date: fixedDate, backlog: true }, ); - const backlogPath = join(base, ".sf", "BACKLOG.md"); + const backlogPath = join(base, ".sf", "WORK-QUEUE.md"); assert.equal(output.backlogItemsAdded, 1); assert.equal(existsSync(backlogPath), true); assert.match( @@ -387,7 +387,7 @@ test("triageTodoDump writes backlog JSONL with valid BacklogEntry schema", async assert.equal(lines.length, 2, "should have one JSONL entry per implementation task"); const entries = lines.map((line) => JSON.parse(line)); - const backlogMd = readFileSync(join(base, ".sf", "BACKLOG.md"), "utf-8"); + const backlogMd = readFileSync(join(base, ".sf", "WORK-QUEUE.md"), "utf-8"); for (let i = 0; i < entries.length; i++) { const entry = entries[i]; @@ -402,7 +402,7 @@ test("triageTodoDump writes backlog JSONL with valid BacklogEntry schema", async ); assert.ok( backlogMd.includes(entry.id), - `JSONL entry id ${entry.id} should match an id in BACKLOG.md`, + `JSONL entry id ${entry.id} should match an id in WORK-QUEUE.md`, ); } } finally { @@ -636,7 +636,7 @@ test("triageTodoDump in CI mode forces no-clear and backlog", async () => { assert.equal(output.skipped, false); assert.ok(existsSync(join(base, "TODO.md")), "TODO.md should NOT be cleared in CI mode"); assert.equal(output.backlogItemsAdded, 1, "backlog should be forced true in CI mode"); - assert.ok(existsSync(join(base, ".sf", "BACKLOG.md"))); + assert.ok(existsSync(join(base, ".sf", "WORK-QUEUE.md"))); } finally { rmSync(base, { recursive: true, force: true }); }