issues: file debt 6 (-h->skill) + 9 (merge hardening umbrella)
Message
issues: file debt 6 (-h->skill) + 9 (merge hardening umbrella)
Diff
.forge/issues/6b7e227e-e9b4-4674-889d-75764f6c713b/issue.md+12 −0
--- /dev/null+++ b/.forge/issues/6b7e227e-e9b4-4674-889d-75764f6c713b/issue.md@@ -0,0 +1,12 @@1+---2+id: 6b7e227e-e9b4-4674-889d-75764f6c713b3+title: 'UX: -h should surface the skill instead of duplicating contract text'4+state: open5+labels:6+- dogfood7+assignees: []8+milestone: null9+created: 2026-09-08T04:45:13Z10+updated: null11+---12+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.
.forge/issues/b873332e-737f-442e-be74-d83732fab9ad/issue.md+13 −0
--- /dev/null+++ b/.forge/issues/b873332e-737f-442e-be74-d83732fab9ad/issue.md@@ -0,0 +1,13 @@1+---2+id: b873332e-737f-442e-be74-d83732fab9ad3+title: 'merge hardening: base-aware branch diff + collision assistance (bitter-lesson guardrails)'4+state: open5+labels:6+- dogfood7+- pri8+assignees: []9+milestone: null10+created: 2026-09-08T04:45:13Z11+updated: null12+---13+Umbrella for the merge-flow debt; coordinate with #15/#17 (likely one agent, one PR in cmd/merge.rs). Goals: (a) branch merges compute the diff against a base that preserves already-landed forge state (base-aware), (b) fork-drift surfaces as a precise conflict list (extend SEC-05 file listing to .forge deletions) instead of silent loss, (c) record links to the real PR (see #15). EXPLICIT NON-GOALS so the philosophy holds: no locks, no claim protocols, no auto-resolvers, no merge engine, no CI framework — the CLI only lists what conflicted and stops; the reconciling agent decides. Acceptance: merging fork-drifted branches never silently loses state; conflicts = one line + file list; non-goals enforced in review.