From d4ee719016ee4562982ec526e8217aa840dab14e Mon Sep 17 00:00:00 2001 From: liolevx <312117550+liolevx@users.noreply.github.com> Date: Fri, 4 Sep 2026 10:55:18 -0400 Subject: [PATCH 1/2] fix: use plain labels in task briefs --- src/output.ts | 12 ++++++------ tests/output-contract.test.ts | 19 ++++++++++++++++++- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/output.ts b/src/output.ts index e1ed9ae..7272825 100644 --- a/src/output.ts +++ b/src/output.ts @@ -355,18 +355,18 @@ export function renderContext(context: ContextPackage, options: RenderOptions = options, ), ...section( - "Likely owner", + "Relevant files", owners.length ? owners.map(candidatePath) : ["Not established"], options, ), ...section( - "Likely tests", + "Related tests", tests.length ? tests.map(candidatePath) : ["Not established"], options, ), ...section("Also selected", guidance.map(candidatePath), options), ...section( - "Checks", + "Checks to run", context.requiredVerification.length ? context.requiredVerification.map( (check) => `${commandText(check)} · cwd ${check.cwd}`, @@ -414,19 +414,19 @@ export function renderContext(context: ContextPackage, options: RenderOptions = ANSI.green, ), ...section( - "Likely owner", + "Relevant files", context.likelyOwningSource.length ? context.likelyOwningSource.map(candidatePath) : ["Not established"], options, ), ...section( - "Likely tests", + "Related tests", context.likelyTests.length ? context.likelyTests.map(candidatePath) : ["Not established"], options, ), ...section( - "Checks", + "Checks to run", context.requiredVerification.length ? context.requiredVerification.map(commandText) : ["No approved command is available."], diff --git a/tests/output-contract.test.ts b/tests/output-contract.test.ts index fc08fb7..caff16a 100644 --- a/tests/output-contract.test.ts +++ b/tests/output-contract.test.ts @@ -1,7 +1,24 @@ import { expect, it } from "vitest"; -import { renderGuidedFinish } from "../src/output.js"; +import path from "node:path"; +import { buildContext } from "../src/core/context.js"; +import { renderContext, renderGuidedFinish } from "../src/output.js"; import type { GuidedRunRecord } from "../src/orchestration/guided.js"; +it.each([false, true])("uses plain task-brief labels (verbose: %s)", async (verbose) => { + const context = await buildContext( + "save favourite restaurants", + path.resolve("tests/fixtures/nextjs"), + ); + const before = JSON.stringify(context); + const output = renderContext(context, { verbose }); + expect(output).toContain("Relevant files\n"); + expect(output).toContain("Related tests\n"); + expect(output).toContain("Checks to run\n"); + expect(output).not.toMatch(/Likely owner|Likely tests/); + expect(output).not.toContain("passed"); + expect(JSON.stringify(context)).toBe(before); +}); + function record(status: GuidedRunRecord["status"]): GuidedRunRecord { return { id: "one", From 9627a9f2dc2daa1aaa18d7748dfb3d83f0e20416 Mon Sep 17 00:00:00 2001 From: liolevx <312117550+liolevx@users.noreply.github.com> Date: Fri, 4 Sep 2026 10:55:18 -0400 Subject: [PATCH 2/2] docs: replace terminal example with compact task brief --- README.md | 10 +++------- docs/assets/noxroot-terminal.png | Bin 34746 -> 69957 bytes tests/documentation.test.ts | 10 ++++------ 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 87af616..2a3cb60 100644 --- a/README.md +++ b/README.md @@ -32,16 +32,12 @@ Code, Cursor, OpenCode, Copilot CLI, and other coding agents. New chats do not require another `init`. Ordinary questions need no Noxroot task. Noxroot stays in the background until code-changing work needs it. -Inspect the relevant files and checks before the agent starts editing: +Example task brief (illustrative excerpt):
-
+