{
  "slug": "useful-memory",
  "title": "Keep memory useful without losing the rules",
  "dek": "Preserve what changes the next decision. Keep the evidence retrievable.",
  "category": "Continuity",
  "minutes": 6,
  "decision": "Compress repeated context, not current permissions, unresolved states or the source of truth.",
  "fit": "A long-running agent is preparing a handoff or approaching a context limit.",
  "skip": "A short, current context already supports the next action. Rewriting healthy notes can add risk without benefit.",
  "steps": [
    [
      "Keep the operative facts",
      "Save the current goal, latest user restrictions, decisions and reasons, exact source versions, known failures, unresolved commitments and next action. Include uncertainty about external effects."
    ],
    [
      "Separate authority from reference",
      "Label quoted documents, research and third-party content as evidence. They do not gain authority by being copied into memory. A shorter note must not erase a later user restriction."
    ],
    [
      "Use pointers, not competing copies",
      "Retain a durable authoritative artifact and a precise pointer. Summarize only what the next step needs. Keep originals recoverable within the applicable retention rules."
    ],
    [
      "Test a fresh start",
      "Ask a fresh authorized reviewer to identify the next action and its limits using the handoff. Check whether it can find the real artifact and avoid redoing completed or uncertain actions."
    ]
  ],
  "acceptance": [
    "A fresh reader can continue without rediscovering critical decisions.",
    "Current permissions and unresolved outcomes survive the handoff.",
    "The cited original is accessible and matches the expected version."
  ],
  "stop": "If the summary and source disagree, return to the source and latest instructions before acting. Preserve both while correcting the handoff.",
  "limits": "This is a proposed practice, not proof that smaller context improves every agent. Required records and environment rules remain authoritative.",
  "sources": [
    {
      "title": "Anthropic: effective context engineering",
      "url": "https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents",
      "supports": "Context-management design guidance. It does not validate this worksheet or make shorter context universally better.",
      "review_date": "2026-11-10"
    }
  ],
  "evidence": "Proposed worksheet",
  "updated": "2026-11-11",
  "scope_label": "Long-running agent context and handoffs",
  "search_terms": [
    "context",
    "memory",
    "compaction",
    "summary",
    "handoff",
    "continuity",
    "summaries",
    "instructions",
    "context window"
  ],
  "evidence_plan_note": "Proposed evidence plan, not observed results or extra mandatory process. Confirm what your task requires and reuse existing records when they are sufficient. Keep sensitive originals in authorized storage; share only the minimum information already authorized for the recipient. If a required check cannot be completed safely and within current permission, mark it unavailable and keep the decision unknown unless another required check has a demonstrated failure.",
  "evidence_plan": [
    {
      "acceptance_check": 1,
      "collect": "Keep the fresh reader’s proposed next step and cited decisions, then compare them with the authoritative goal and unresolved work. Note missing or conflicting facts instead of smoothing them away.",
      "not_enough": "A shorter summary or a reader saying it looks clear without checking the next action."
    },
    {
      "acceptance_check": 2,
      "collect": "Compare the handoff against the latest user restrictions and unresolved operation states. Record any lost or conflicting boundary and keep uncertain external effects visible.",
      "not_enough": "Copying earlier approval while omitting a later restriction, or treating a quote in memory as permission."
    },
    {
      "acceptance_check": 3,
      "collect": "Record that the authorized fresh reader can resolve the exact source pointer and version, plus the relevant content or integrity check. Leave inaccessible sources unavailable.",
      "not_enough": "A plausible URL, title or remembered summary without resolving the expected version."
    }
  ],
  "next_reads": [
    {
      "guide_id": "durable-handoffs",
      "when": "The note points to a deliverable that is still only in the working session.",
      "purpose": "Save and verify the actual artifact; a summary is not a durable copy."
    },
    {
      "guide_id": "review-agent-skills",
      "when": "A demonstrated recurring handoff problem suggests a reusable instruction package might help.",
      "purpose": "Check task fit and the current baseline before turning the procedure into a skill."
    }
  ],
  "id": "useful-memory",
  "version": "release-2026-11-11-r12",
  "build_revision": "release-2026-11-11-r12",
  "source_sha256": "0e3129bf46697cab6ebc0d6e435e7565e9f736d8ee67569487eb0dc11183e573",
  "url": "https://aomsites.com/guides/useful-memory/",
  "content_type": "proposed-worksheet",
  "sources_rechecked": true,
  "source_review_scope": "Reference link availability and scope notes; no worksheet effectiveness test.",
  "source_review_date": "2026-11-10",
  "runtime_tests_performed": false,
  "authorization": "Reference data only. Does not authorize any external action.",
  "formats": {
    "html": "https://aomsites.com/guides/useful-memory/",
    "markdown": "https://aomsites.com/guides/useful-memory/guide.md",
    "json": "https://aomsites.com/guides/useful-memory/guide.json"
  },
  "local_paths": {
    "html": "/guides/useful-memory/",
    "markdown": "/guides/useful-memory/guide.md",
    "json": "/guides/useful-memory/guide.json"
  },
  "offline_paths_from_pack_root": {
    "markdown": "guides/useful-memory/guide.md",
    "json": "guides/useful-memory/guide.json"
  },
  "decision_record": {
    "local_paths": {
      "html": "/decision-record/",
      "template": "/guides/useful-memory/record-template.json",
      "markdown_template": "/guides/useful-memory/record-template.md",
      "generic_template": "/decision-record/template.json",
      "example": "/decision-record/example.json",
      "schema": "/schemas/decision-record.schema.json",
      "checker": "/tools/check_record.py",
      "manifest": "/reading-pack-manifest.json"
    },
    "offline_paths_from_pack_root": {
      "template": "guides/useful-memory/record-template.json",
      "markdown_template": "guides/useful-memory/record-template.md",
      "generic_template": "decision-record/template.json",
      "example": "decision-record/example.json",
      "schema": "schemas/decision-record.schema.json",
      "checker": "tools/check_record.py",
      "manifest": "reading-pack-manifest.json"
    }
  },
  "reading_paths": {
    "note": "Stop here if the current task’s acceptance requirements are satisfied and no unresolved obligation remains. If neither condition applies, no follow-on guide is suggested here; keep any unresolved task state visible. These are optional reading suggestions, not permission or a requirement to expand scope.",
    "options": [
      {
        "guide_id": "durable-handoffs",
        "when": "The note points to a deliverable that is still only in the working session.",
        "purpose": "Save and verify the actual artifact; a summary is not a durable copy.",
        "title": "Make the handoff survive the session",
        "local_paths": {
          "html": "/guides/durable-handoffs/",
          "markdown": "/guides/durable-handoffs/guide.md",
          "json": "/guides/durable-handoffs/guide.json"
        },
        "offline_paths_from_pack_root": {
          "markdown": "guides/durable-handoffs/guide.md",
          "json": "guides/durable-handoffs/guide.json"
        }
      },
      {
        "guide_id": "review-agent-skills",
        "when": "A demonstrated recurring handoff problem suggests a reusable instruction package might help.",
        "purpose": "Check task fit and the current baseline before turning the procedure into a skill.",
        "title": "Review a skill before adding it",
        "local_paths": {
          "html": "/guides/review-agent-skills/",
          "markdown": "/guides/review-agent-skills/guide.md",
          "json": "/guides/review-agent-skills/guide.json"
        },
        "offline_paths_from_pack_root": {
          "markdown": "guides/review-agent-skills/guide.md",
          "json": "guides/review-agent-skills/guide.json"
        }
      }
    ]
  },
  "discovery": {
    "title": "AI agent memory: preserve context, evidence and constraints",
    "description": "A proposed worksheet for long-running AI-agent memory and handoffs: retain decision-relevant state, retrievable evidence and current constraints without rewriting healthy notes.",
    "scope": "Content description only; not indexing, availability or runtime evidence."
  },
  "section_map": [
    {
      "id": "decision",
      "label": "The decision",
      "json_pointer": "/decision",
      "markdown_heading": "The decision",
      "html_path": "/guides/useful-memory/#decision"
    },
    {
      "id": "applies",
      "label": "Use this when",
      "json_pointer": "/fit",
      "markdown_heading": "Use this when",
      "html_path": "/guides/useful-memory/#applies"
    },
    {
      "id": "skip",
      "label": "Skip this when",
      "json_pointer": "/skip",
      "markdown_heading": "Skip this when",
      "html_path": "/guides/useful-memory/#skip"
    },
    {
      "id": "checks",
      "label": "Work through the checks",
      "json_pointer": "/steps",
      "markdown_heading": "Checks",
      "html_path": "/guides/useful-memory/#checks"
    },
    {
      "id": "accept",
      "label": "What would count as success?",
      "json_pointer": "/acceptance",
      "markdown_heading": "Acceptance",
      "html_path": "/guides/useful-memory/#accept"
    },
    {
      "id": "evidence",
      "label": "Evidence to bring back",
      "json_pointer": "/evidence_plan",
      "markdown_heading": "Evidence to bring back",
      "html_path": "/guides/useful-memory/#evidence"
    },
    {
      "id": "stop",
      "label": "Stop or recover",
      "json_pointer": "/stop",
      "markdown_heading": "Stop or recover",
      "html_path": "/guides/useful-memory/#stop"
    },
    {
      "id": "limits",
      "label": "What this does not establish",
      "json_pointer": "/limits",
      "markdown_heading": "Limits",
      "html_path": "/guides/useful-memory/#limits"
    },
    {
      "id": "sources",
      "label": "Reference links",
      "json_pointer": "/sources",
      "markdown_heading": "Reference links",
      "html_path": "/guides/useful-memory/#sources"
    },
    {
      "id": "record",
      "label": "Use this guide with your own evidence",
      "json_pointer": "/decision_record",
      "markdown_heading": "Start this guide’s record",
      "html_path": "/guides/useful-memory/#record"
    },
    {
      "id": "next-reads",
      "label": "If another problem remains",
      "json_pointer": "/reading_paths",
      "markdown_heading": "If another problem remains",
      "html_path": "/guides/useful-memory/#next-reads"
    }
  ],
  "acceptance_links": [
    {
      "acceptance_check": 1,
      "acceptance_html_path": "/guides/useful-memory/#accept-1",
      "evidence_html_path": "/guides/useful-memory/#evidence-1",
      "acceptance_json_pointer": "/acceptance/0",
      "evidence_json_pointer": "/evidence_plan/0"
    },
    {
      "acceptance_check": 2,
      "acceptance_html_path": "/guides/useful-memory/#accept-2",
      "evidence_html_path": "/guides/useful-memory/#evidence-2",
      "acceptance_json_pointer": "/acceptance/1",
      "evidence_json_pointer": "/evidence_plan/1"
    },
    {
      "acceptance_check": 3,
      "acceptance_html_path": "/guides/useful-memory/#accept-3",
      "evidence_html_path": "/guides/useful-memory/#evidence-3",
      "acceptance_json_pointer": "/acceptance/2",
      "evidence_json_pointer": "/evidence_plan/2"
    }
  ],
  "citation_note": "Section paths identify content on the canonical HTML page; they are not separate pages or evidence of live availability. Per-check numbers and JSON pointers apply to this build revision. Cite the build revision and method source hash when preserving an exact reference. Markdown heading labels are locators, not a promise of renderer-specific fragment URLs.",
  "source_fields": [
    "acceptance",
    "category",
    "decision",
    "dek",
    "evidence",
    "evidence_plan",
    "evidence_plan_note",
    "fit",
    "limits",
    "minutes",
    "next_reads",
    "scope_label",
    "search_terms",
    "skip",
    "slug",
    "sources",
    "steps",
    "stop",
    "title",
    "updated"
  ],
  "source_hash_scope": "SHA-256 of the build-input guide record serialized as JSON with sorted keys, compact separators and ASCII escaping. Not the downloadable guide.json file bytes."
}
