You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tracks the marrair-side coordination work for virtualian/pai-v5#2 (Port AISTEERINGRULES.md base + loadAtStartup wiring).
Mirrors the #173 pattern: actual overlay files live on virtualian/pai-v5 (per-issue branch yet to be cut from main); this issue covers the design-doc-side decisions and progress tracking that belong on virtualian/pai.
Decisions to capture in Plans/v5-0-0-plus-port.md
A. Wiring mechanism — loadAtStartup vs @imports
The design doc currently specifies settings.json.overlay adding {path: PAI/AISTEERINGRULES.md} to the loadAtStartup array. But v5's baseline settings.json reads:
"loadAtStartup": {
"_docs": "v5.0: Static files migrated to @imports in CLAUDE.md.template. Dynamic context via LoadContext.hook.ts.",
"files": []
},
v5 has explicitly deprecated loadAtStartup.files for static files, moving them to @imports in CLAUDE.md. The fork's planned path re-activates a deprecated mechanism. Two viable resolutions:
Resurrect loadAtStartup (design doc's current plan): less invasive — single-key Class-B merge in settings.json.overlay; matches v3.7.0 mechanism familiar to /learn extension pipeline. Cost: documented future-incompatibility risk if v5 stops honouring the deprecated key.
Adopt v5's @imports path: align with v5's stated direction. Cost: requires modifying CLAUDE.md.template (or live CLAUDE.md) via Class B section-append — needs deploy-overlay.sh extension we deferred during pai-v5#1 (Option 2 wiring).
Recommendation TBD until Phase B trial-session probe under each path (or until v5 either follows through on deprecating loadAtStartup.files semantics or quietly leaves the key honoured).
B. AISTEERINGRULES content source — bootstrap snapshot vs fresh runtime
The overlay file Releases/v5.0.0-overlay/PAI/AISTEERINGRULES.md on bootstrap/v5-overlay-and-tooling is the 95-line runtime snapshot captured at 2026-05-08. Marrair's live ~/.pai/PAI/AISTEERINGRULES.md may have been further /learn-extended since the snapshot. Decide:
Use the bootstrap snapshot verbatim (port-time-frozen baseline; conscious snapshot moment).
Refresh from marrair runtime at pickup time (captures any /learn additions between 2026-05-08 and pickup).
C. settings.json.overlay co-mingling cleanup
bootstrap/v5-overlay-and-tooling's settings.json.overlay carries THREE concerns intermingled:
loadAtStartup entry for AISTEERINGRULES (this issue's concern)
The per-issue branch for pai-v5#2 must include ONLY concern (1), per design-doc "branch-as-feature" principle. The other two need separate handling:
Decide whether (2) and (3) get their own coordination issues now or whether the SecurityValidator-residue follow-up (mentioned in Track #166 progress + audit pai-v5 overlay scaffold #171 audit, still unfiled) covers (3) and a separate "voice posture" issue covers (2).
Progress / Status updates
Update design doc's "Decisions Locked" table when path A is resolved.
Update design doc's "Progress / Status" section as pai-v5#2 overlay branch is cut and files committed.
After deploy + acceptance verify on marrmini, update Progress / Status to mark pai-v5#2 as ported.
Context
Tracks the marrair-side coordination work for
virtualian/pai-v5#2(Port AISTEERINGRULES.md base +loadAtStartupwiring).Mirrors the #173 pattern: actual overlay files live on
virtualian/pai-v5(per-issue branch yet to be cut from main); this issue covers the design-doc-side decisions and progress tracking that belong onvirtualian/pai.Decisions to capture in
Plans/v5-0-0-plus-port.mdA. Wiring mechanism —
loadAtStartupvs@importsThe design doc currently specifies
settings.json.overlayadding{path: PAI/AISTEERINGRULES.md}to theloadAtStartuparray. But v5's baselinesettings.jsonreads:v5 has explicitly deprecated
loadAtStartup.filesfor static files, moving them to@importsin CLAUDE.md. The fork's planned path re-activates a deprecated mechanism. Two viable resolutions:loadAtStartup(design doc's current plan): less invasive — single-key Class-B merge insettings.json.overlay; matches v3.7.0 mechanism familiar to /learn extension pipeline. Cost: documented future-incompatibility risk if v5 stops honouring the deprecated key.@importspath: align with v5's stated direction. Cost: requires modifyingCLAUDE.md.template(or liveCLAUDE.md) via Class B section-append — needsdeploy-overlay.shextension we deferred during pai-v5#1 (Option 2 wiring).Recommendation TBD until Phase B trial-session probe under each path (or until v5 either follows through on deprecating
loadAtStartup.filessemantics or quietly leaves the key honoured).B. AISTEERINGRULES content source — bootstrap snapshot vs fresh runtime
The overlay file
Releases/v5.0.0-overlay/PAI/AISTEERINGRULES.mdonbootstrap/v5-overlay-and-toolingis the 95-line runtime snapshot captured at 2026-05-08. Marrair's live~/.pai/PAI/AISTEERINGRULES.mdmay have been further /learn-extended since the snapshot. Decide:C. settings.json.overlay co-mingling cleanup
bootstrap/v5-overlay-and-tooling'ssettings.json.overlaycarries THREE concerns intermingled:loadAtStartupentry for AISTEERINGRULES (this issue's concern)voiceEnabled: false(separate fork-posture choice)hooks.PreToolUse → SecurityValidator.hook.ts(the dropped HIGH item; flagged for cleanup in PR Track #166 progress + audit pai-v5 overlay scaffold #171 audit)The per-issue branch for pai-v5#2 must include ONLY concern (1), per design-doc "branch-as-feature" principle. The other two need separate handling:
Progress / Status updates
Out of scope
virtualian/pai-v5:<NN>-port-aisteeringrules(branch TBD).References
Plans/v5-0-0-plus-port.md(sequencing item 2, lines 338–345)virtualian/pai-v5#2vX.Y.Z+localLATEST (from Track pai-v5#1 port: record Option 3 wiring decision (LATEST→6.3.0+local) in design doc #173) — may or may not apply here depending on path A resolution