You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Blocked-by: #10679 (this is follow-up work that only becomes correct after that card's PR merges — nothing to do before then).
Found while implementing #10679. Filed rather than folded into that PR: docs/qa/platform-checklist/areas/cli.json is the hot shared file of the #10663 QA-run lane, a clause edit is authoring work that also owes a revision bump plus a history entry with a ref (enforced by scripts/check-platform-checklist.mjs), and this repo already treats checklist-text corrections as their own card (#7530, #7671, #7687, #7740).
Nothing is red today. check:platform-checklist is structural — it validates ids, revisions, oracles and trap vocabulary, never whether a clause is still true — so this rots silently until a runner reads it.
What goes stale
Item cli.doctor-health-report, revision 1 (authored 2026-08-20, ref claude/new-session-0pv25p). Three texts:
The EXPECTED-FAIL acceptance clause (the last one on the item). It states the defect as live — "Today it prints — the run records the verbatim lines as the failure evidence and extracts the defect card". After os doctor prints ✓ Test coverage / ✓ Deprecations about a tree it never examined (in any user app) #10679 the two lines it quotes are not printed at all; the report shows a named-reason skip instead. The clause should invert into an ordinary pass clause: in a cwd with no packages/spec/src, doctor prints neither clean bill of health and prints an informational skip naming the reason, and -v adds the resolved directory it looked for.
The first acceptance clause, which enumerates the rows: "every environment check emits its own row — Node.js, pnpm, TypeScript, Dependencies, @objectstack/spec, Git, Environment files, Installed packages". The @objectstack/spec row is now conditional on the monorepo spec workspace being present, so in the scaffold this item is run against, that row is correctly absent. The enumeration needs the condition stated, or the row moved to a monorepo-cwd clause.
Step 7 of the run steps (the one beginning "the expected-fail pair"), which instructs the runner to capture the two lines verbatim and to "note the sibling @objectstack/spec Not built warning row from the same monorepo-anchored path family (doctor.ts:1837)". Both captures become impossible in the scaffold; the step should instead capture the skip rows and assert the Not built row's absence.
Line anchors quoted in those texts (:1142-1143, :1160-1161, :1939, :1951, :1837) all move with the fix and need re-deriving at head as part of the same revision.
Suggested shape
One revision bump on cli.doctor-health-report covering all three, with a history entry naming #10679 as the change that inverted the expected-fail. No other item in cli.json is affected.
Blocked-by: #10679 (this is follow-up work that only becomes correct after that card's PR merges — nothing to do before then).
Found while implementing #10679. Filed rather than folded into that PR:
docs/qa/platform-checklist/areas/cli.jsonis the hot shared file of the #10663 QA-run lane, a clause edit is authoring work that also owes arevisionbump plus ahistoryentry with aref(enforced byscripts/check-platform-checklist.mjs), and this repo already treats checklist-text corrections as their own card (#7530, #7671, #7687, #7740).Nothing is red today.
check:platform-checklistis structural — it validates ids, revisions, oracles and trap vocabulary, never whether a clause is still true — so this rots silently until a runner reads it.What goes stale
Item
cli.doctor-health-report, revision 1 (authored 2026-08-20, refclaude/new-session-0pv25p). Three texts:The EXPECTED-FAIL acceptance clause (the last one on the item). It states the defect as live — "Today it prints — the run records the verbatim lines as the failure evidence and extracts the defect card". After os doctor prints ✓ Test coverage / ✓ Deprecations about a tree it never examined (in any user app) #10679 the two lines it quotes are not printed at all; the report shows a named-reason skip instead. The clause should invert into an ordinary pass clause: in a cwd with no
packages/spec/src, doctor prints neither clean bill of health and prints an informational skip naming the reason, and-vadds the resolved directory it looked for.The first acceptance clause, which enumerates the rows: "every environment check emits its own row — Node.js, pnpm, TypeScript, Dependencies, @objectstack/spec, Git, Environment files, Installed packages". The
@objectstack/specrow is now conditional on the monorepo spec workspace being present, so in the scaffold this item is run against, that row is correctly absent. The enumeration needs the condition stated, or the row moved to a monorepo-cwd clause.Step 7 of the run steps (the one beginning "the expected-fail pair"), which instructs the runner to capture the two lines verbatim and to "note the sibling
@objectstack/spec Not builtwarning row from the same monorepo-anchored path family (doctor.ts:1837)". Both captures become impossible in the scaffold; the step should instead capture the skip rows and assert theNot builtrow's absence.Line anchors quoted in those texts (
:1142-1143,:1160-1161,:1939,:1951,:1837) all move with the fix and need re-deriving at head as part of the same revision.Suggested shape
One revision bump on
cli.doctor-health-reportcovering all three, with ahistoryentry naming #10679 as the change that inverted the expected-fail. No other item incli.jsonis affected.