Filing gate: ① a defect with a named position, a finding of class (a).
What happens (measured, public door)
os init demo -t bogus prints ✗ Unknown template: bogus on stdout, then oclif's › Error: Unknown template: bogus on stderr, and exits 2. One refusal's sentence is read twice, across two streams.
Why (read from source at origin/main)
Direction (⛔ not a ruling)
One rendering per refusal, by the split #15692 established. Either the command prints the ✗ line and raises with this.exit(n), or it raises with this.error and prints nothing itself, or it uses the isReportedError shape. ⛔ No second mechanism. Pins: each of the 8 refusals renders its sentence once at the public door, with its exit status unchanged.
Dedupe
MCP search_issues, repo-scoped, open and closed: 「printError then this.error refusal printed twice stdout stderr oclif Error block」 gave 1 hit, #21523, which is the exit-signal re-report from a catch, a different mechanism. None covers this.
Dedupe words: printError then this.error; os init refusal printed twice stdout stderr; oclif Error block repeats the ✗ line; Unknown template printed twice.
Generated by Claude Code
Filing gate: ① a defect with a named position, a
findingof class (a).reach:was measured at a public door by the The exit-signal family's this.error face: os init re-reports its refusals from its outer catch, and the exit-signal pin is seeded with this.exit only (the remainder of #21496) #21523 dev at549f3704e4(os-dev report on The exit-signal family's this.error face: os init re-reports its refusals from its outer catch, and the exit-signal pin is seeded with this.exit only (the remainder of #21496) #21523, out-of-scope finding 1; PR fix(cli): os init prints its in-try refusals once; the exit-signal pin is seeded with this.error #21541).domain:cliseat,session_016GiHYRmLSNWTfbX9gVQkpz. ⛔ Not a claim.packages/cli(domain:cli).What happens (measured, public door)
os init demo -t bogusprints✗ Unknown template: boguson stdout, then oclif's› Error: Unknown template: boguson stderr, and exits 2. One refusal's sentence is read twice, across two streams.Why (read from source at
origin/main)packages/cli/src/commandspairprintError(msg)withthis.error(msg), andthis.errormakes oclif's entry point render the same sentence again:init.ts: the 5 refusals before thetry, and the catch-all;compile.ts: the bundling refusal (about :1045–1046) and the catch-all (about :1216–1217).packages/cli/src/utils/format.ts'sisReportedErrordocblock names this exact outcome as the defect it exists to stop ("the operator would … read one refusal twice across two streams", [finding]resolveConfigPathprints human text to STDOUT thenprocess.exit(1)s — 9 commands'--jsonface emits unparseable bytes when the config file is missing #15547 / fix(cli): route resolveConfigPath's refusals to stderr, and pin the pre-boot --json face #15692). The pairing sites do not use it.os migrate recorded-by --apply --jsonprints a second JSON document{"error":"EEXIT: 0"}and exits 1 after a completed run (the command's catch re-reports oclif's exit signal) #21434, The exit-signal family's text face: os package install, package publish and plugin sign re-report oclif's exit signal as an extra "EEXIT: 1" error line (the remainder of #21434) #21496, The exit-signal family's this.error face: os init re-reports its refusals from its outer catch, and the exit-signal pin is seeded with this.exit only (the remainder of #21496) #21523). That family re-reported a signal from acatch. Here the command renders the sentence itself and also hands it to oclif to render.Direction (⛔ not a ruling)
One rendering per refusal, by the split #15692 established. Either the command prints the
✗line and raises withthis.exit(n), or it raises withthis.errorand prints nothing itself, or it uses theisReportedErrorshape. ⛔ No second mechanism. Pins: each of the 8 refusals renders its sentence once at the public door, with its exit status unchanged.Dedupe
MCP
search_issues, repo-scoped, open and closed: 「printError then this.error refusal printed twice stdout stderr oclif Error block」 gave 1 hit, #21523, which is the exit-signal re-report from acatch, a different mechanism. None covers this.Dedupe words: printError then this.error; os init refusal printed twice stdout stderr; oclif Error block repeats the ✗ line; Unknown template printed twice.
Generated by Claude Code