Summary
Architectural debt accumulated during audit-r4..r7 + audit-r-dogfood cycles. None of these are blocking — they're refactor / methodology hardening items deferred from the v0.32.0 closing sprint. Tracking here so they don't get lost.
Items
ARCH-1: ADR for 3-field status deprecation timeline
Context: forgeplan_discover_* tools now expose three semantically-overlapping fields (status legacy + session_status + artifact_status) plus _field_warnings. No artifact (ADR-XXX) fixes the deprecation horizon. Without it, status lingers forever in the API surface.
Acceptance:
ARCH-3: Explicit git_root parameter (forgeplan_release_notes)
Context: find_git_root does magic discovery (walk-up + walk-down). Works, but introduces an invisible convention. Users in unusual layouts will hit edges. Better: explicit git_root: Option<PathBuf> parameter, magic helper becomes opt-in.
Acceptance:
ARCH-4: Invert apply_restore as shim
Context: Two near-identical public functions (apply_restore + apply_restore_with_target). Forks the API surface. Should be: _with_target is canonical, apply_restore(r) -> apply_restore_with_target(r, None) is the shim.
Acceptance:
ARCH-5: PROB for pre-existing undo::restore projection bypass
Context: crates/forgeplan-core/src/undo/restore.rs calls store.create_artifact / store.update_artifact / store.delete_relation directly, bypassing projection::*_with_projection helpers. Pre-existing (from v0.22.x), not a regression of audit-r-dogfood. tests/adr_003_invariant.rs scope is commands/ + mcp/server.rs so this is exempt by the regression guard. Document as known exception or fix.
Acceptance:
ARCH-6: Move CROSS-REPO-WORKFLOW.ru.md to org-wide repo
Context: Methodology doc lives in forgeplan/docs/methodology/ — invisible to marketplace contributors. Belongs in ForgePlan/.github/profile/ (org-wide visibility) or dedicated forgeplan-rfcs/ meta-repo.
Acceptance:
ARCH-7: Shared evidence_recipe(artifact_id) helper
Context: 5-step EVID fix recipe (audit-r4 CODE-294 closure) is hardcoded in format! literal inside activate error path. Same recipe will be needed in forgeplan_review output, forgeplan_health blindspot advisory, CLI hint — copy-paste risk.
Acceptance:
Labels
enhancement, documentation (where applicable)
Origin
Filed from fix/issues-290-295-dogfood-findings branch closure (audit-r-dogfood 3-agent adversarial review).
Summary
Architectural debt accumulated during audit-r4..r7 + audit-r-dogfood cycles. None of these are blocking — they're refactor / methodology hardening items deferred from the v0.32.0 closing sprint. Tracking here so they don't get lost.
Items
ARCH-1: ADR for 3-field
statusdeprecation timelineContext:
forgeplan_discover_*tools now expose three semantically-overlapping fields (statuslegacy +session_status+artifact_status) plus_field_warnings. No artifact (ADR-XXX) fixes the deprecation horizon. Without it,statuslingers forever in the API surface.Acceptance:
ADR-XXX: discover_* status field deprecation timeline_field_warnings.messageto reference the ADRARCH-3: Explicit
git_rootparameter (forgeplan_release_notes)Context:
find_git_rootdoes magic discovery (walk-up + walk-down). Works, but introduces an invisible convention. Users in unusual layouts will hit edges. Better: explicitgit_root: Option<PathBuf>parameter, magic helper becomes opt-in.Acceptance:
git_roottoReleaseNotesparamsNone, fall through tofind_git_root(current behaviour, no break)Some(path), skip discovery, validate.git/exists at pathARCH-4: Invert
apply_restoreas shimContext: Two near-identical public functions (
apply_restore+apply_restore_with_target). Forks the API surface. Should be:_with_targetis canonical,apply_restore(r) -> apply_restore_with_target(r, None)is the shim.Acceptance:
ARCH-5: PROB for pre-existing
undo::restoreprojection bypassContext:
crates/forgeplan-core/src/undo/restore.rscallsstore.create_artifact/store.update_artifact/store.delete_relationdirectly, bypassingprojection::*_with_projectionhelpers. Pre-existing (from v0.22.x), not a regression of audit-r-dogfood.tests/adr_003_invariant.rsscope iscommands/+mcp/server.rsso this is exempt by the regression guard. Document as known exception or fix.Acceptance:
PROB-XXX: undo::restore bypass projection — file/store sync drift riskARCH-6: Move
CROSS-REPO-WORKFLOW.ru.mdto org-wide repoContext: Methodology doc lives in
forgeplan/docs/methodology/— invisible to marketplace contributors. Belongs inForgePlan/.github/profile/(org-wide visibility) or dedicatedforgeplan-rfcs/meta-repo.Acceptance:
ForgePlan/.github/profile/CROSS-REPO-WORKFLOW.md[!INFO] Canonical version at org/.github/...ARCH-7: Shared
evidence_recipe(artifact_id)helperContext: 5-step EVID fix recipe (audit-r4 CODE-294 closure) is hardcoded in
format!literal insideactivateerror path. Same recipe will be needed inforgeplan_reviewoutput,forgeplan_healthblindspot advisory, CLI hint — copy-paste risk.Acceptance:
lifecycle::evidence_recipe(artifact_id: &str) -> StringLabels
enhancement,documentation(where applicable)Origin
Filed from
fix/issues-290-295-dogfood-findingsbranch closure (audit-r-dogfood 3-agent adversarial review).