Spike-completion autopilot session 2026-04-26 — what closed, what stayed open, methodological lessons
What closed (3 phases × 4 commits)
[1/4] S-3 unblocked closures (commit 977a545; arch-state v2.66; spec v1.2):
- 3 upstream-issue manifests authored (deferred filing; gh-cli/gitlab.com auth gap)
- Worked-example
wrapper_main_reserve_hereditaire.cauthored (~115 LOC) + run via mopsa-c - 4-wrapper consistency confirmation of
catala_runtime.c:89bump-allocator alarm — empirically robust upstream-tracking finding - 0 NEW scope-internal alarms on the worked example — first empirical evidence that Catala compiled output is well-typed end-to-end on a non-trivial succession-law rule
[2/4] S-7 procurement decision (commit d81b7c7; arch-state v2.67; inventory v2.11):
- 3-vendor scorecard authored: Cloud-IAM Scaleway-EU 8.70 > SkyCloak 7.40 > Phase Two 6.80
- Working hypothesis LOCKED with explicit fallback (SkyCloak) + 5 abort-conditions
- 5-step partner-firm-onboarding runbook skeleton with
<TBD>placeholders for at-trigger fill-in - Phase Two reserved for Phase-2 (per-cluster pricing not Phase-1.5-appropriate)
[3/4] S-8 jurisdictional submission playbook (commit a3e59fd; arch-state v2.68; inventory v2.12; playbook v1.1):
- Pre-existing v1.0 playbook DISCOVERED at the spec path; pivoted from “author new” to “verify-and-flip-status”
- v1.0 → v1.1 status flip
approved→research-complete-pending-phase-1-5-engineer-pickup - 4 new calendar-bound tasks (#165-#168) appended to richard-tasks.md (commit c88f77f in davieshq/docs-personal); 5th (Settld) already covered by existing #147
- Pre-existing v1.0 was MORE comprehensive than autopilot Decision-Matrix-scoped 5-secular-only draft would have been
[4/4] Final closing snapshot (this commit): spike-status-snapshot-2026-04-26.md authored as the input doc for Rich’s upcoming meta-replay-the-decisions exercise.
Total session arch-state version drift: v2.65 → v2.69 (4 closing rows).
What stayed open
S-3 itself: still gated on Phase-1.5 corpus per arch-state v2.49 — pre-stage closure does NOT close the spike, it closes the prep work. Phase-1.5 LATE-STAGE engineer cold-start now reduced to 15 min (was 30 min after pre-stage v1.1).
S-7 itself: still gated on first M365 partner-firm signing IAS pilot agreement. At-trigger budget collapses from 2 days to ~4 hours engineer-time + ~1 day calendar-time (legal review) per the procurement spec.
S-1 corpus expansion: explicitly out of scope this session per autopilot prompt — needs its own session with explicit instance-count target + £-ceiling.
3 upstream-issue manifests: deferred filing pending Rich review of tone (Issue 1 to CatalaLang/catala; Issues 2+3 to gitlab.com/mopsa/mopsa-analyzer; orchestrator session has gh-cli authenticated to GitHub only, not gitlab).
A-21 gate 19 wire-in: design-spec ready at 2026-04-26-a21-ci-gate-mopsa-date-ambiguity.md v1.0; Phase-1.5 engineer wire-in (8-item checklist) lands the A-NEW-21 amendment when complete.
JurisdictionalSubmission primitive (cross-module #14 candidate per T52 §finding 2): design captured in S-8 playbook v1.1 §5; registration deferred to Phase-1 Probate brief authoring per feedback_introduction_module_rule.
Methodological lessons (3 reusable patterns)
1. Always check spec-path-existence BEFORE authoring fresh
Phase [3/4] surfaced a pre-existing v1.0 playbook at the spec-path that the autopilot Decision Matrix hadn’t anticipated. The Decision-Matrix-scoped draft would have been narrower (5-secular-only) than the pre-existing comprehensive v1.0 (8-jurisdiction including faith-tradition advisory via A-115).
Pattern: every spike-completion / scorecard / spec authoring session should check for pre-existing artefact at the target path FIRST. If pre-existing content is comprehensive + arch-state-consistent, pivot to “verify-and-flip-status” rather than overwriting.
Why: pre-existing comprehensive content beats Decision-Matrix-scoped fresh draft when arch-state-consistent. The cost of a 1-line ls check is negligible against the cost of overwriting valid work.
Trigger: any spec-authoring instruction in an autopilot prompt.
2. Pre-trigger procurement-decision-as-audit-trail beats wait-until-trigger
Phase [2/4] authored S-7’s procurement decision (Cloud-IAM Scaleway-EU; SkyCloak fallback) ahead of partner-firm signature trigger. By the time partner-firm signature lands, the question “which vendor?” is answered + critiqued + has explicit abort-conditions. The 0.5-day at-trigger budget collapses from “open option-search” to “execution against runbook.”
Same pattern as S-3 pre-stage applied to A-21 gate 19 design (Phase 3 of S-3 pre-stage authored the gate-spec ahead of Phase-1.5 engineer wire-in; design-from-scratch step removed from engineer envelope).
Pattern: when a partner-trigger gates a deliverable, author the decidable half AHEAD of trigger. Working-hypothesis + critique + fallback + abort-conditions = audit-trail. At-trigger work becomes execution, not deliberation.
Why: Rich/engineer time at trigger is the binding constraint. Pre-trigger decision-locking removes the deliberation cost when the partner is waiting.
Trigger: any spike or deliverable that is partner / event / external-condition-gated.
3. Redirect-uncertainty-to-artifacts works at the autopilot scale
Phase [3/4] surfaced an unanticipated divergence (pre-existing v1.0 vs Decision-Matrix-scoped fresh draft). Per autopilot Decision Matrix’s “redirect uncertainty to artifacts” rule, the divergence was logged to:
~/off-github/library/projects/inherit/spike-completion-2026-04-26/decisions.log- ntfy DECISION-MADE message
- Commit message
- Playbook v1.1 CHANGELOG
The autopilot did NOT escalate to Rich. The decision (defer to pre-existing comprehensive v1.0) was justified per arch-state-consistency check — a non-blocking determination orchestrator could make.
Pattern: when an autopilot encounters a divergence from the pre-decided plan, the redirect-to-artifacts mechanism (decisions.log + commit msg + ntfy DECISION-MADE) handles it cleanly when the divergence is non-blocking. Escalation to Rich is reserved for genuinely ambiguous scope decisions.
Why: Rich was unavailable (90-min run + meta-replay-the-decisions prep). Escalating would have blocked the autopilot. The pre-existing v1.0 + arch-state-consistency made the non-escalation decision unambiguous.
Trigger: any unanticipated divergence in an autopilot run where (a) the divergence is non-blocking AND (b) arch-state or pre-existing artefacts give a clear right-answer.
Verbatim numeric figures for cross-reference
- arch-state version trajectory this session: v2.65 → v2.66 (Phase 1) → v2.67 (Phase 2) → v2.68 (Phase 3) → v2.69 (Phase 4)
- inventory version trajectory: v2.10 → v2.11 (Phase 2) → v2.12 (Phase 3) → v2.13 (Phase 4)
- richard-tasks: appended 165-168 (4 new tasks; 5th covered by #147)
- Phase-1.5 LATE-STAGE engineer cold-start reductions:
- S-3: 2-4h (pre-spike) → 30 min (post-pre-stage v1.1) → 15 min (post-Phase [1/4] worked-example)
- S-8: 4-6 weeks (per T52 implicit-spike) → ~5-10 days execution against playbook + calendar-bound work
- S-7: 2 days at trigger → ~4 hours engineer-time + ~1 day calendar-time at trigger
- Library deliverables (off-git per CLAUDE.md §17.5):
spike-s3-2026-04-26/upstream-issues-to-file.mdv1.0spike-s3-2026-04-26/wrapper_main_reserve_hereditaire.cspike-s3-2026-04-26/raw-output/phase-5-reserve-hereditaire.logspike-completion-2026-04-26/decisions.log
- Total session wall-clock: ~1h 45min orchestrator-time (autopilot started ~19:25; closing ~21:10).
Cross-references
feedback_architecture_state_file_discipline— the discipline this session honoured (every state-file row updated after every tension-lock).feedback_actively_use_t_files_in_scorecard_authoring— applied in Phase [3/4] (T52 + T56 + T60 verbatim quotation).feedback_automatic_deep_dive_when_options_feel_imperfect— NOT triggered this session (each phase had a clean working hypothesis with no narrow margins).project_first_vertical_slice_symmetric_2026_04_24— preserved (8-jurisdiction symmetric Phase-1; faith-tradition + secular together).feedback_stop_uk_drift_international_from_day_one_strict— applied throughout (per-jurisdiction-crate axiom framing in S-8 §4.4).feedback_autopilot_prompt_techniques— the prompt that drove this session was a 5/5 Decision Matrix + banned-phrasing + automatic-phase-transition + user-unavailable-framing + redirect-uncertainty-to-artifacts. Worked.
Why this memory exists (gold-value)
Future spike-completion sessions can re-use the 3 methodological lessons (spec-path-existence-check; pre-trigger decision-locking; redirect-to-artifacts at scale) without re-discovering them. The methodological-lesson section is the primary reusable artefact; the what-closed-what-stayed-open sections are session-specific record.