issues: close sweep fixes 18,19

f2b2028gl0w

all commits

Message

issues: close sweep fixes 18,19

Diff

.forge/issues/1c25767c-4e1c-473e-827d-4a39bc8c4cac/issue.md+2 −2
diff --git a/.forge/issues/1c25767c-4e1c-473e-827d-4a39bc8c4cac/issue.md b/.forge/issues/1c25767c-4e1c-473e-827d-4a39bc8c4cac/issue.mdindex 02e1057..a1ce6be 100644--- a/.forge/issues/1c25767c-4e1c-473e-827d-4a39bc8c4cac/issue.md+++ b/.forge/issues/1c25767c-4e1c-473e-827d-4a39bc8c4cac/issue.md@@ -1,13 +1,13 @@11 ---22 id: 1c25767c-4e1c-473e-827d-4a39bc8c4cac33 title: 'bug: panics on EPIPE when stdout consumer closes early'4-state: open4+state: closed55 labels:66 - dogfood77 - pri88 assignees: []99 milestone: null1010 created: 2026-09-08T04:44:54Z11-updated: null11+updated: 2026-09-08T06:27:28Z1212 ---1313 Evidence: "f0rge issue list | awk ..." where awk exited early -> process panicked: thread main panicked "failed printing to stdout: Broken pipe (os error 32)" with full stack trace. Violates: no panics on hostile input, one-line errors, exit codes 0/1/2 (exit was 101). All stdout users (println!/print!) must treat BrokenPipe as clean exit (write via writeln! and ignore EPIPE, like issue #13 fix but on the output side). Verify: "f0rge issue list | head -1" exits 0, no stderr, no panic; same for --json and every cmd.
.forge/issues/6b7e227e-e9b4-4674-889d-75764f6c713b/issue.md+2 −2
diff --git a/.forge/issues/6b7e227e-e9b4-4674-889d-75764f6c713b/issue.md b/.forge/issues/6b7e227e-e9b4-4674-889d-75764f6c713b/issue.mdindex 2245dde..90dcfe7 100644--- a/.forge/issues/6b7e227e-e9b4-4674-889d-75764f6c713b/issue.md+++ b/.forge/issues/6b7e227e-e9b4-4674-889d-75764f6c713b/issue.md@@ -1,12 +1,12 @@11 ---22 id: 6b7e227e-e9b4-4674-889d-75764f6c713b33 title: 'UX: -h should surface the skill instead of duplicating contract text'4-state: open4+state: closed55 labels:66 - dogfood77 assignees: []88 milestone: null99 created: 2026-09-08T04:45:13Z10-updated: null10+updated: 2026-09-08T06:27:28Z1111 ---1212 Idea: per-verb -h strings are hand-maintained and generic (agents end up reading spec/schema.md anyway); every extra help string is duplicated contract that can drift. Make `f0rge <cmd> -h` = one usage line + pointer to the contract (`f0rge --skill`), so the skill is the single source of truth. Budgets keep applying: -h <=250B/8 lines, root <=300B/12, skill <=900B/30 — pick the compact shape that fits (e.g. usage line + "contract: f0rge --skill"). No core changes; docs/UX only (cmd/*.rs help() strings, skill.rs). Acceptance: budget tests green; no -h string paraphrases contract prose that --skill already owns.