Current arrangement

This records the pre-change baseline used by the comparison. The operator has since adopted the comparison's prose-only clarification: report-verifier omission selection, effort-sensitive stopping, source-search authority and brief coverage reporting. The roles and dependencies below are unchanged; the selection and authority gaps described below are the ones that change addressed, not outstanding live-contract gaps.

What the live method already decides about layers, lens inputs, depth, stopping and coverage. Read this before the open questions: several of them already have an answer in the plan, and the workshop compares options against that answer rather than against a blank page. Observed on 2026-10-11 from the plan and role instructions under kb/agentic-system-analyses/instructions/analyse-agentic-system/. Re-check the files before relying on a detail; the method may have moved.

Roles and their order

The plan (plan.yaml) runs: opening, acquire, boundary, runtime, memory, epistemic, reconciliation, report-verification, memory-profile, profile-verification, synthesis, synthesis-verification, overview, publish. Each analytical role gets a derived check job. One report verifier judges runtime, memory, epistemic and reconciliation together, with boundary as a required input. The layout's report-verification.verifies names those four members, not boundary; boundary is not a correction addressee. There is no per-analyst semantic verifier.

The general layer exists: it is the runtime role

trace-runtime.md asks for the consequential claimed work, shipped entry paths, one ordinary invocation end to end, material routes, load-bearing guarantees with their enforcement points, and change-admission mechanisms. It says the report "is not a product inventory" and restricts inspection of permissions, providers, packaging and the like to where they change claimed work or a result later analysts rely on. This is the general architectural layer the operator described, under the name runtime.

The runtime record contract (kb/agentic-system-analyses/types/agentic-system-runtime-report.md) carries shared records with source anchors: Components, Operative objects, Routes, Claims, Evidenced absences and Behavioral-authority paths. The union of those anchors is the set of source paths the general layer located. No separate "located paths" surface exists or is needed to name that set.

Lenses exist and receive the map

Memory and epistemic are question-driven investigations with authority to search the frozen source. In the plan both read boundary: required and runtime: order-only. In this engine an order-only input is handed to the job and the job waits for it, but a change to it does not trigger a rerun (src/commonplace/artifactrun/plan.py, class Input). So lenses receive the general map today, and runtime corrections do not automatically re-run them.

analyse-memory.md depends on this: "Choose the memory scope from runtime routes and state inclusions and exclusions." It also asks the memory analyst to "cover every included part along the record contract's coverage dimensions, not only a primary store or the best-understood route", and to check CLI dispatch, hooks, registered tools and exposed operations against the routes.

Stopping rules that already exist

The runtime instruction has an explicit depth and stopping rule for guarantees: "Inspect the smallest warranted set of forcing cases, ordinarily two to four for a full code-grounded analysis, and state what remains unobserved." Both analyst instructions require looking for a source-supported case that would falsify a consequential claim before settling it.

Worker rules distinguish an uncertainty that only limits a conclusion, which stays beside the claim, from a scope decision the instruction did not authorize, which requires a problem record (follow-worker-rules.md).

The coverage rule the verifier carries

verify-reports.md tells the verifier to "judge coverage against the frozen repository tree, not just listed anchors", to apply the verification type's materiality threshold, and not to weaken supported findings to produce uniform coverage. The verification type sets the threshold at findings that undermine a central conclusion or leave the analysis materially misleading.

So the method does bound coverage, by materiality and by the declared boundary, and the type says completeness is "not exhaustive inspection of repository contents". What it does not state is how the verifier selects where to search for omissions and when to stop. Reading the instruction and type together does not create an exhaustive duty: the frozen tree is the comparison basis, while materiality limits the obligation. The operational gap applies to runtime and both lenses, and is the locus of the verification coverage bounds proposal.

There is also a source-read authority tension. Shared worker rules restrict roles after the analysts to resolving named ambiguities in cited records at cited paths. That is narrower than independent tree-based omission checking. A clarification must explicitly reconcile those clauses; it must not assume that a search-selection rule alone grants additional read authority. The comparison proposes a report-verifier-only clarification, leaving later profile and synthesis roles record-based.

What this means for the open questions

  • "How much of the general layer does the runtime role provide?" Nearly all of it by intent; whether its depth and declared untraced components suffice is an evidence question.
  • "Should lenses receive the general map?" They do, order-only. The open part is whether that anchors discovery, and whether a runtime correction should trigger lens reruns.
  • "What is a defensible stopping point?" Runtime has one for guarantees; memory has a coverage-dimensions rule; the verifier has a materiality threshold but no selection or stopping rule for omission searches.