Context
AGENTS_STARTUP.md §6 (Memory Core Boot Sequence) currently asserts:
"On startup, the Memory Core server automatically finds and summarizes any previous sessions that were not yet processed. You do not need to trigger this manually."
This claim is silently false on the canonical instance and on every default-config deployment. Empirically reproducible via healthcheck — the response includes "startup": {"summarizationStatus": "not_attempted", "summarizationDetails": null} even on multi-hour-old MC server processes with thousands of unsummarized sessions in raw memory.
The doc inaccuracy was surfaced today during ticket #10569 Phase-1 capture. #10569 itself was closed wontfix because the auto-disable is load-bearing strategy (per-harness 2x+ MCP server instances → massive summary duplication if auto-fired). The proposed Phase-2 fix in #10569 (re-enable the gate) was correctly rejected. But the doc-accuracy concern remains: agents reading §6 at boot are misled into believing summarization runs automatically, and don't know they need to invoke summarize_sessions manually for the freshness premise to hold.
The Problem
Two compounding harms:
Agents trust a false invariant. Boot-grounding agents read §6 and assume the summary corpus is fresh. They then query_summaries and get stale results without understanding why. The not_attempted state is invisible unless they explicitly inspect the healthcheck.
Downstream pipelines fail silently. runSandman.mjs consumes the summary corpus to produce sandman_handoff.md + Golden Path topology. With auto-summarization disabled, the input corpus is whatever was manually summarized last — frequently empty or stale. Without doc disclosure, agents diagnosing the missing handoff (get_context_frontier returning empty, no resources/content/sandman_handoff.md) have no easy path to the canonical workflow.
This is the verify-before-assert friction surface in microcosm: a doc anchor whose claim contradicts an empirically observable runtime state. Per feedback_verify_before_assert.md, the cost of a false load-bearing claim in agent-facing docs compounds across every session that consumes it.
The Architectural Reality
The auto-summarization gate is intentionally disabled at two layers (per #10569 Phase-1 capture):
- Template-level —
ai/mcp/server/memory-core/config.template.mjs line ~28: autoSummarize: process.env.AUTO_SUMMARIZE === 'true' (default-opt-in; flipped from default-opt-out via PR #10042).
- Canonical-instance override —
ai/mcp/server/memory-core/config.mjs (gitignored, copied per-clone): autoSummarize: false && process.env.AUTO_SUMMARIZE !== 'false' — short-circuits the env var entirely.
The disable rationale (per @tobiu's #10569 hard-stop): each harness (Claude Code / Antigravity / Codex) launches 2+ MCP server instances under typical operating conditions; auto-firing on each boot would multiply summarization writes across instances. Re-enablement is gated downstream of:
- #10186 MCP concurrency audit + single-writer enforcement
- #10103 SDK-layer config: migrate daemon/service-layer keys out of memory-core/config.template.mjs
- #10063 Auto-persist turn memories via ai/services.mjs
The same pattern applies to autoDream and autoGoldenPath (also default-false) — runSandman.mjs and runGoldenPath.mjs are the explicit operator-side hooks that bypass this gate.
The Fix
Edit AGENTS_STARTUP.md §6 to reflect the opt-in reality + add agent-facing remediation guidance. Two concrete edits:
- Replace the false-positive claim with an accurate description of the on-demand model:
- Document that
autoSummarize / autoDream / autoGoldenPath are intentionally disabled by default (link rationale to #10569 + #10186 + #10103 + #10063).
- Document the canonical manual workflow:
npm run ai:summarize-sessions + npm run ai:run-sandman + npm run ai:run-golden-path for agents who need fresh summaries / handoff / Golden Path during a session.
- Add a healthcheck-based observability tip so agents can detect the state empirically:
healthcheck.startup.summarizationStatus === "not_attempted" is expected behavior, not a bug. Adjacent: missing resources/content/sandman_handoff.md is also expected unless an operator has run runSandman.mjs recently.
Optional secondary scope (defer to follow-up if it bloats):
- Cross-reference the same disclaimer in the
Memory Core Boot Sequence Step 6 checklist near the top of AGENTS_STARTUP.md — currently lists view_file resources/content/sandman_handoff.md as a mandatory boot step, which fails on the canonical instance whenever the operator hasn't recently triggered Sandman.
Acceptance Criteria
Out of Scope
- Re-enabling
autoSummarize / autoDream / autoGoldenPath at the config level. Closed wontfix per #10569; gated downstream of #10186 / #10103 / #10063.
- Restructuring the Memory Core boot lifecycle to reduce per-harness MCP instance count. That's #10186's substrate; this ticket is doc-only.
- Updating
learn/agentos/MemoryCore.md or learn/agentos/DreamPipeline.md if their claims are also stale. Those are downstream guides and merit a separate audit ticket if the inaccuracy spreads — file as follow-up if discovered during this ticket's PR review.
- Updating the
summarize_sessions MCP tool description. Its current text is correct (manual invocation tool); only the AGENTS_STARTUP.md boot-doc misrepresents the lifecycle.
Avoided Traps
- Trap: re-propose enabling auto-summarization as the doc-fix substrate. Already closed wontfix per #10569; would be the verify-before-assert relapse this ticket exists to prevent. The doc-accuracy concern was explicitly raised in #10569's closing comment as legitimate follow-up scope.
- Trap: file as
enhancement instead of bug. The doc claim contradicts observable runtime state. That's a documentation bug — bug + documentation is the correct label combination per ticket-create-workflow.md §4.
- Trap: bundle with
learn/agentos/MemoryCore.md audit. Different consumer surfaces (boot-time agent grounding vs deeper architecture guides). Boot-grounding is highest-leverage fix; downstream audit can chain via cross-reference if needed.
- Trap: skip the duplicate sweep on AGENTS_STARTUP-mentioning tickets. Sweep run against
resources/content/issues/ for AGENTS_STARTUP + silently false + boot summarization doc — 9 hits inspected, none duplicate this scope. Adjacent open ticket #10083 (soften §9 Single-Full-Read framing) is a different §, different concern.
Related
- #10569 — closed today; raised the doc-accuracy follow-up explicitly. This ticket is the scoped extraction.
- #10186 — MCP concurrency audit + single-writer enforcement (strategic gate).
- #10103 — SDK-layer config migration (strategic gate).
- #10063 — Auto-persist turn memories via ai/services.mjs (strategic gate).
- #10042 — flipped
autoSummarize template default from opt-out to opt-in. Provenance for the disable.
Origin Session ID: 86b7a3a0-7b14-4bd1-b707-52c5741aaeeb
Retrieval Hint: "AGENTS_STARTUP §6 boot summarization silently false opt-in canonical disable"
Context
AGENTS_STARTUP.md §6(Memory Core Boot Sequence) currently asserts:This claim is silently false on the canonical instance and on every default-config deployment. Empirically reproducible via
healthcheck— the response includes"startup": {"summarizationStatus": "not_attempted", "summarizationDetails": null}even on multi-hour-old MC server processes with thousands of unsummarized sessions in raw memory.The doc inaccuracy was surfaced today during ticket #10569 Phase-1 capture. #10569 itself was closed
wontfixbecause the auto-disable is load-bearing strategy (per-harness 2x+ MCP server instances → massive summary duplication if auto-fired). The proposed Phase-2 fix in #10569 (re-enable the gate) was correctly rejected. But the doc-accuracy concern remains: agents reading §6 at boot are misled into believing summarization runs automatically, and don't know they need to invokesummarize_sessionsmanually for the freshness premise to hold.The Problem
Two compounding harms:
Agents trust a false invariant. Boot-grounding agents read §6 and assume the summary corpus is fresh. They then
query_summariesand get stale results without understanding why. Thenot_attemptedstate is invisible unless they explicitly inspect the healthcheck.Downstream pipelines fail silently.
runSandman.mjsconsumes the summary corpus to producesandman_handoff.md+ Golden Path topology. With auto-summarization disabled, the input corpus is whatever was manually summarized last — frequently empty or stale. Without doc disclosure, agents diagnosing the missing handoff (get_context_frontierreturning empty, noresources/content/sandman_handoff.md) have no easy path to the canonical workflow.This is the verify-before-assert friction surface in microcosm: a doc anchor whose claim contradicts an empirically observable runtime state. Per
feedback_verify_before_assert.md, the cost of a false load-bearing claim in agent-facing docs compounds across every session that consumes it.The Architectural Reality
The auto-summarization gate is intentionally disabled at two layers (per #10569 Phase-1 capture):
ai/mcp/server/memory-core/config.template.mjsline ~28:autoSummarize: process.env.AUTO_SUMMARIZE === 'true'(default-opt-in; flipped from default-opt-out via PR #10042).ai/mcp/server/memory-core/config.mjs(gitignored, copied per-clone):autoSummarize: false && process.env.AUTO_SUMMARIZE !== 'false'— short-circuits the env var entirely.The disable rationale (per @tobiu's #10569 hard-stop): each harness (Claude Code / Antigravity / Codex) launches 2+ MCP server instances under typical operating conditions; auto-firing on each boot would multiply summarization writes across instances. Re-enablement is gated downstream of:
The same pattern applies to
autoDreamandautoGoldenPath(also default-false) —runSandman.mjsandrunGoldenPath.mjsare the explicit operator-side hooks that bypass this gate.The Fix
Edit
AGENTS_STARTUP.md §6to reflect the opt-in reality + add agent-facing remediation guidance. Two concrete edits:autoSummarize/autoDream/autoGoldenPathare intentionally disabled by default (link rationale to #10569 + #10186 + #10103 + #10063).npm run ai:summarize-sessions+npm run ai:run-sandman+npm run ai:run-golden-pathfor agents who need fresh summaries / handoff / Golden Path during a session.healthcheck.startup.summarizationStatus === "not_attempted"is expected behavior, not a bug. Adjacent: missingresources/content/sandman_handoff.mdis also expected unless an operator has runrunSandman.mjsrecently.Optional secondary scope (defer to follow-up if it bloats):
Memory Core Boot Sequence Step 6checklist near the top ofAGENTS_STARTUP.md— currently listsview_file resources/content/sandman_handoff.mdas a mandatory boot step, which fails on the canonical instance whenever the operator hasn't recently triggered Sandman.Acceptance Criteria
AGENTS_STARTUP.md §6no longer asserts "automatically finds and summarizes." The new text accurately describes the opt-in model.npm run ai:summarize-sessions/ai:run-sandman/ai:run-golden-path) with a one-line use-case for each.healthcheck.startup.summarizationStatus === "not_attempted"is expected, and absentsandman_handoff.mdis expected between manualrunSandmaninvocations.AGENTS_STARTUP.mdeither softens theview_file resources/content/sandman_handoff.mdstep (e.g., "if present") OR includes a one-line note about the manual-invocation precondition.Out of Scope
autoSummarize/autoDream/autoGoldenPathat the config level. Closed wontfix per #10569; gated downstream of #10186 / #10103 / #10063.learn/agentos/MemoryCore.mdorlearn/agentos/DreamPipeline.mdif their claims are also stale. Those are downstream guides and merit a separate audit ticket if the inaccuracy spreads — file as follow-up if discovered during this ticket's PR review.summarize_sessionsMCP tool description. Its current text is correct (manual invocation tool); only theAGENTS_STARTUP.mdboot-doc misrepresents the lifecycle.Avoided Traps
enhancementinstead ofbug. The doc claim contradicts observable runtime state. That's a documentation bug —bug+documentationis the correct label combination perticket-create-workflow.md§4.learn/agentos/MemoryCore.mdaudit. Different consumer surfaces (boot-time agent grounding vs deeper architecture guides). Boot-grounding is highest-leverage fix; downstream audit can chain via cross-reference if needed.resources/content/issues/forAGENTS_STARTUP+silently false+boot summarization doc— 9 hits inspected, none duplicate this scope. Adjacent open ticket #10083 (soften §9 Single-Full-Read framing) is a different §, different concern.Related
autoSummarizetemplate default from opt-out to opt-in. Provenance for the disable.Origin Session ID: 86b7a3a0-7b14-4bd1-b707-52c5741aaeeb Retrieval Hint: "AGENTS_STARTUP §6 boot summarization silently false opt-in canonical disable"