issues: file #49 (install placement correction)
Message
issues: file #49 (install placement correction)
Diff
.forge/issues/97eeb419-d05e-49b2-b23a-e1ccef967219/issue.md+38 −0
--- /dev/null+++ b/.forge/issues/97eeb419-d05e-49b2-b23a-e1ccef967219/issue.md@@ -0,0 +1,38 @@1+---2+id: 97eeb419-d05e-49b2-b23a-e1ccef9672193+title: 'release install: scope generic copy out — placement belongs to the project''s installer'4+state: open5+labels: []6+assignees: []7+milestone: null8+created: 2026-09-09T00:41:14.175262663Z9+updated: null10+---11+SOURCE: owner correction on #48 (2026-09-08), agreed: placement is12+the PROJECT's job, not the forge's. #48 overgeneralized "artifact13+exists" into "f0rge places it" — a Go/Python/Node binary in14+$CARGO_HOME/bin is a cargo-ism injected into ecosystems that never15+touched cargo. The forge must not invent placement.16+17+KEEP from #48 (proven): resolution order (record sha > git tag >18+main) and artifact STAGING (releases/build/<ver>/ holds the19+project's built binary, produced by the project's own CI/build20+script).21+22+CORRECT: release install becomes resolve + stage + HAND OFF:23+- if a project installer exists at a documented convention (e.g.24+ install.sh at repo root, or releases/build/<ver>/install.sh —25+ pick ONE, document in spec [release]), execute it argv-only with26+ the staged artifact path; IT places the binary per its ecosystem27+ (go install, venv, /usr/local/bin, whatever); agents write their28+ project's installer and own it;29+- if no installer: f0rge-self keeps its cargo install path (f0rge's30+ installer IS cargo); foreign projects get a clear one-line31+ message ("no installer for this project; write install.sh or use32+ the project's documented install") + --dry-run shows the handoff;33+- DELETE the generic copy-to-$CARGO_HOME/bin fallback for foreign34+ projects.35+- AGENTS.md Install section reworded to the scoped promise:36+ f0rge release install = resolve+stage+run-the-project-installer.37+DONE: go/python-style project with install.sh installs via ITS38+script; f0rge self-installs via cargo; no generic copy; tests.