SessionProgress.ts + LoadContext reader exist but no enforcement trigger connects them
Summary
SessionProgress.ts (the writer) and LoadContext.hook.ts → getProjectProgress() (the reader) form a complete multi-session continuity system — but nothing in the Algorithm, CLAUDE.md, or any hook mandates creating a progress file when multi-session work begins. The infrastructure is built in two halves with no enforcement layer connecting them.
What exists (working correctly)
Writer: PAI/TOOLS/SessionProgress.ts
- Creates/updates progress files at
MEMORY/STATE/progress/<project>-progress.json
- Tracks: objectives, decisions, work completed, blockers, handoff notes, next steps
- CLI with
create, work, decision, next, handoff, resume, complete commands
Reader: hooks/LoadContext.hook.ts → getProjectProgress()
- Fires at SessionStart
- Reads ALL files in
MEMORY/STATE/progress/ with no time cutoff
- Injects project objectives, handoff notes, and next steps into the DA's context
- Flags stale projects (>14 days since last update)
Short-term bridge: getRecentWorkSessions() in the same hook scans MEMORY/WORK/ ISAs from the last 48h. Non-completed ISAs appear automatically. This covers same-day/next-day continuity but expires after 48h.
What's missing
No enforcement trigger connects the writer to the workflow. Specifically:
-
Algorithm v6.3.0 — does not reference SessionProgress.ts. The LEARN phase Learning Router routes state to PROJECTS.md (human-readable layer) but not to progress files (machine-readable layer that LoadContext actually reads programmatically).
-
CLAUDE.md — no operational rule mandates progress file creation for multi-session work.
-
Hooks — no hook fires at SessionEnd (or ISA creation, or phase transition) that detects "multi-session work exists without a corresponding progress file" and either auto-creates one or blocks/reminds.
-
ISA Skill — the Scaffold workflow doesn't check whether the work it's scaffolding is multi-session and prompt for progress file creation.
Reproduction
- Fresh V5 install. Fifth session.
- User requests work that clearly spans multiple sessions (e.g., multi-step onboarding plan with 6 phases).
- DA creates ISA, executes first phase, marks ISA
phase: complete.
- Session ends. No progress file created. No handoff notes. No next steps in LoadContext.
- New session starts. LoadContext injects nothing about the multi-session plan.
- User must manually remind the DA that a plan exists and where it is.
The DA "should have known" to create a progress file — but "should have known" is DA-discipline-dependent, which violates Founding Principle #6 ("As Deterministic as Possible").
Impact
For expert users, this is likely a non-issue — you know the tool exists and invoke it consciously. For new users whose DA is also encountering the system for the first time, this creates a silent continuity failure. Work gets done but the handoff between sessions doesn't happen unless the user chases it up. The system feels unreliable on first contact.
This is especially sharp because the reader (LoadContext) is already wired and waiting — the user will never see a progress injection because nothing upstream creates the file.
Proposed fix
Option A (deterministic, preferred): A hook at SessionEnd that:
- Checks if an ISA was active this session with
effort: E3+ or with explicit multi-session indicators (next_steps in decisions, plan with future phases)
- Checks if a corresponding progress file exists in
MEMORY/STATE/progress/
- If not: auto-creates one from ISA frontmatter + decisions, or emits a blocking reminder
Option B (doctrine): Add to Algorithm LEARN phase Learning Router:
| `continuity` | `MEMORY/STATE/progress/<project>-progress.json` via SessionProgress.ts | **Inline create/update.** |
With a mandate: "If this Algorithm run is part of multi-session work, a progress file MUST exist before phase: complete."
Option C (ISA Skill integration): When ISA Scaffold creates an ISA at E3+, prompt: "Is this multi-session? If yes, create progress file." Or detect it heuristically from the Features table (features with depends_on pointing to things not yet done).
Option A is most aligned with Founding Principle #6 (deterministic enforcement). Options B and C are DA-discipline-dependent but lightweight.
Design question for maintainer
Was the gap between SessionProgress.ts and LoadContext intentional (expert users invoke the tool consciously when they know work spans sessions) or an oversight (the enforcement hook was planned but not built)? The answer determines whether the fix is "add enforcement" or "document the manual invocation point more prominently."
Environment
- PAI 5.0.0
- Algorithm v6.3.0
- Fresh install, fifth session
SessionProgress.ts + LoadContext reader exist but no enforcement trigger connects them
Summary
SessionProgress.ts(the writer) andLoadContext.hook.ts → getProjectProgress()(the reader) form a complete multi-session continuity system — but nothing in the Algorithm, CLAUDE.md, or any hook mandates creating a progress file when multi-session work begins. The infrastructure is built in two halves with no enforcement layer connecting them.What exists (working correctly)
Writer:
PAI/TOOLS/SessionProgress.tsMEMORY/STATE/progress/<project>-progress.jsoncreate,work,decision,next,handoff,resume,completecommandsReader:
hooks/LoadContext.hook.ts → getProjectProgress()MEMORY/STATE/progress/with no time cutoffShort-term bridge:
getRecentWorkSessions()in the same hook scansMEMORY/WORK/ISAs from the last 48h. Non-completed ISAs appear automatically. This covers same-day/next-day continuity but expires after 48h.What's missing
No enforcement trigger connects the writer to the workflow. Specifically:
Algorithm v6.3.0 — does not reference
SessionProgress.ts. The LEARN phase Learning Router routesstatetoPROJECTS.md(human-readable layer) but not to progress files (machine-readable layer that LoadContext actually reads programmatically).CLAUDE.md — no operational rule mandates progress file creation for multi-session work.
Hooks — no hook fires at SessionEnd (or ISA creation, or phase transition) that detects "multi-session work exists without a corresponding progress file" and either auto-creates one or blocks/reminds.
ISA Skill — the Scaffold workflow doesn't check whether the work it's scaffolding is multi-session and prompt for progress file creation.
Reproduction
phase: complete.The DA "should have known" to create a progress file — but "should have known" is DA-discipline-dependent, which violates Founding Principle #6 ("As Deterministic as Possible").
Impact
For expert users, this is likely a non-issue — you know the tool exists and invoke it consciously. For new users whose DA is also encountering the system for the first time, this creates a silent continuity failure. Work gets done but the handoff between sessions doesn't happen unless the user chases it up. The system feels unreliable on first contact.
This is especially sharp because the reader (LoadContext) is already wired and waiting — the user will never see a progress injection because nothing upstream creates the file.
Proposed fix
Option A (deterministic, preferred): A hook at SessionEnd that:
effort: E3+or with explicit multi-session indicators (next_steps in decisions, plan with future phases)MEMORY/STATE/progress/Option B (doctrine): Add to Algorithm LEARN phase Learning Router:
With a mandate: "If this Algorithm run is part of multi-session work, a progress file MUST exist before
phase: complete."Option C (ISA Skill integration): When ISA Scaffold creates an ISA at E3+, prompt: "Is this multi-session? If yes, create progress file." Or detect it heuristically from the Features table (features with
depends_onpointing to things not yet done).Option A is most aligned with Founding Principle #6 (deterministic enforcement). Options B and C are DA-discipline-dependent but lightweight.
Design question for maintainer
Was the gap between SessionProgress.ts and LoadContext intentional (expert users invoke the tool consciously when they know work spans sessions) or an oversight (the enforcement hook was planned but not built)? The answer determines whether the fix is "add enforcement" or "document the manual invocation point more prominently."
Environment