Synthesize the agent-memory landscape

Type: types/instruction.md

Produce a public comparison whose numbers and qualitative findings come from one frozen population of analysis sets, identified by one commit.

Inputs and authority

Use the requested output, selected systems, and current or historical mode from the user request or invoking packet. A request to refresh a named artifact supplies its output authority. Without a file destination, return the synthesis in the response. Load the output collection's contract before writing there.

The evidence inputs are current accepted sets enumerated from kb/agentic-system-analyses/retained/<system-slug>/. Use the shared current-set enumerator through the comparison tools; no separate review metadata selects or pins the population. The current set contract declares its members: boundary.md holds the evidence boundary and source register; runtime.md the runtime account and runtime-declared records; memory.md the memory findings and memory-declared records; epistemic.md the epistemic blocks; workflow.md the representative multi-step workflow and its evidence limits; reconciliation.md the amendments, supersessions and unresolved conflicts; memory-profile.md the memory-comparison profile; and synthesis.md the cross-lens account and limitations. report-verification.md, profile-verification.md and synthesis-verification.md retain the independent judgments. The code-written overview.md holds identity, disposition, member links, the amendment index and deterministic validation. Validate the artifact directory before reading its members. The overview is the reader entry point, not a substitute for a member account or comparison assessment.

Use kb/agentic-system-analyses/types/agentic-system-memory-profile.md for the memory-comparison contract, kb/agentic-system-analyses/types/agentic-system-boundary.md for sources and evidence layers, kb/agentic-system-analyses/instructions/agentic-analysis-records.md for record conventions and evidence interpretation, kb/agentic-system-analyses/types/agentic-system-analysis-set.md for membership, and kb/agentic-system-analyses/types/agentic-system-synthesis.md for the cross-lens account. Each matrix row preserves its source revision, run, analysis cutoff, evidence tier, compared memory boundary, profile revision (comparison_version), and per-axis coverage assessment, supported value unions, per-value existence evidence, canonical records, and revision-2 unit data (<axis>_units). The unversioned retained profile is revision 1; the reader preserves it without reclassification. Revision 2 measures write admission control: manual requires an explicit human content-admission decision; software/model admission without that decision is automatic. A generic caller alone does not establish manual control. Revision-1 write-agency values retain their original meaning and cannot be pooled with revision 2. No legacy review, old CSV, transfer scan, or newly acquired source may supply or repair a finding. Missing required inputs block the selected population; report the main-analysis regeneration needed. Existing sets must not be hand-patched to make a comparison pass.

Freeze the evidence

  1. Select the population. Default a refresh to current inputs. Repeat --review to select the commissioned current overviews; omit it only when the commission covers all current analyses. Record the selection rule and exclusions. Select one review per source identity. A small selected set is a bounded comparison, with no implication of historical-corpus coverage.
  2. Record the inputs commit. Every selected review and retained set, the two contracts above, the reader code under src/commonplace/lib/ and scripts/, and this instruction must be committed and unchanged in the worktree: git status --porcelain -- <those paths> prints nothing. Record git rev-parse HEAD as the inputs commit. A dirty input blocks the synthesis: commit it under its own authority or drop it from the selection with a new commit; never read an uncommitted finding. Build the matrix from the same selection into a temporary path, never over the public comparison files:

bash uv run python scripts/build_systems_matrix.py --review <current-overview-path> --output <temporary-matrix.csv>

Repeat --review as needed. Require exit status zero and record the matrix file's SHA-256 beside the inputs commit before interpretation. 3. Use only committed evidence. Read members and the matrix as they are at the inputs commit. If a needed finding is absent, obtain it through a new analysis run and a new commit, then restart from selection; do not mix in uncommitted files. For a historical synthesis, check out or git show the recorded commit and use its contracts and instruction. A method mismatch between that commit and the current one requires the matching checkout. Legacy-corpus snapshots remain historical evidence, but this procedure does not rebuild or merge them into its population.

The inputs commit is the reconstructable evidence location: it holds every input byte, the contracts and the reader code. Record it, the selection rule and the matrix hash in the published evidence boundary. A tracked comparison must remain auditable without ignored local run state.

Analyse and write

  1. Compute quantitative candidates. Query the matrix CSV mechanically, decoding value cells as JSON arrays. For implementation/operation counts, decode <axis>_evidence as a JSON object and use code-grounded values at wired, observed, or causally supported basis for existence counts. For revision 2, also decode <axis>_units as a JSON array: each unit retains its scope, assessment, findings, records and note; each finding retains its value, basis, records and note. The union's strongest witness supports existence only; it does not upgrade another unit with the same value. Both known and partial coverage can support positive membership. Use absent assessments for bounded evidenced negatives; omitted values, unresolved units and weaker evidence are not negatives. A local trace-learning no is not a system-wide negative in partial coverage; a yes union retains local negative evidence in its units. Complete-set distributions and set-equality queries require known axis coverage and strong evidence for every positive unit finding in revision 2, not merely one strong witness per union value. Revision 1 uses its original per-value evidence contract. Do not filter weak findings to manufacture a complete profile. Keep claimed and afforded findings separate. Keep doc-grounded findings in a separate qualitative section. Within each query, report partial, inapplicable, uninspected, and not-determinable rows separately; none is an observed negative. A structurally valid unknown does not block unrelated findings.

Retain an executable query and its output in a working query ledger. Each candidate names the fields, value-membership or set-equality test, tier and basis filters, numerator, denominator, included run IDs, and exclusions. Stratify queries by comparison_version and report each revision's denominator. Never pool changed write-agency semantics across revisions or infer human control from an old caller-based value. Cross-revision contrasts must name the semantic differences and withhold equivalence where unproved. Count each system once per query even when its value set contains several stores or routes. An assessed-subset proportion must name that subset; a whole-population prevalence claim requires complete applicable assessment. A change claim requires two verified snapshots, comparable scopes/contracts, and an explicit treatment of population changes. 5. Read and ground the mechanisms. For each selected finding, read the members that hold it and the cited canonical records, including their source evidence and limitations. Preserve the external mechanism and explain why the Commonplace term fits. Trace every qualitative example to a member path, the manifest (ARTIFACT.yaml) hash, run ID, canonical IDs, and supporting section. Open-ended observations support named examples and contrasts, never prevalence from omitted mentions. Keep static wiring, observed use, contextual activation, and causal effect distinct. Withhold claims stronger than their records support. Budget the aggregate output of batched reads as well as each command. Check delivered output for truncation and reread omitted spans in smaller calls; requested line ranges and zero exit status do not establish full reading. 6. Write one coherent snapshot. State the evidence identity, selection, source-tier population, source cutoffs, and analytical lens. Select only findings that the available population supports; do not pad a small pilot into a landscape survey. Give denominators beside numbers and scope beside comparisons. Link qualitative claims to their retained member paths, using a section anchor where useful; overviews additionally serve navigation. Do not cite the temporary matrix path. Name withheld conclusions and evidence gaps. Commonplace-specific recommendations belong in a separately commissioned transfer scan. Replace an incumbent synthesis as a complete snapshot, never by updating counts alone. 7. Verify the draft. Recompute every query from the matrix and check each example against its members and records. If independent review is commissioned, give the checker the inputs commit, the matrix hash, the query ledger, and the draft, without transfer scans or writer rationale. Otherwise perform these checks locally and report that mode. 8. Recheck and publish. Immediately before returning or writing, confirm that git rev-parse HEAD still equals the inputs commit or that git diff --quiet <inputs-commit> HEAD -- <input paths> succeeds, that git status --porcelain -- <input paths> prints nothing, and that rebuilding the matrix from the same selection reproduces the recorded hash. For an all-current selection, also confirm that no set was added or replaced under kb/agentic-system-analyses/retained/ since the inputs commit. On any failure, withhold the draft and restart from selection. Write the commissioned output only after these checks pass; run commonplace-validate on every changed Markdown artifact. Public matrix/table refresh is a separate output: when commissioned, pass the identical explicit review list to both existing build scripts and check their recorded input identities against the inputs commit.

Report

Return the output path or response-only disposition; current or historical status; selection rule and source-tier population; cutoffs; the inputs commit and matrix hash; query verification and semantic verification mode; the final commit and worktree recheck; validation; and withheld claims. A fixture trial establishes procedure behavior, not external-system findings or production corpus coverage.