Evidence packet — run AAS-20260820-CCDW-01
Prepared once by the orchestrator under step 2.4 of analyse-agentic-system.
Lens workers consume this packet and may make targeted reads inside the frozen
boundary only (i.e. re-reading SRC-1 itself). No lens may reacquire, refresh, or widen
sources, rename a record, or mint a parallel ID namespace.
1. Run and staging identity
| Field | Value |
|---|---|
| Run / result ID | AAS-20260820-CCDW-01 |
| System identifier | Claude Code dynamic workflows — the Workflow orchestration facility inside the Claude Code harness (model-authored JavaScript orchestrator over sub-agents) |
| Orchestrating instruction | analyse-agentic-system (candidate under trial) |
| Staging identity | kb/work/analyse-agentic-system/trials/cc-dynamic-workflows/ |
| Publication target | none authorized for this run — publication blocker recorded (see result §11) |
| Analysis cutoff | 2026-06-03 (capture date of SRC-1) |
| Run date | 2026-08-20 |
2. Scope confirmation (step 1.2)
In scope. Dynamic workflows are an orchestration framework: a runtime that executes a script which schedules and dispatches up to 1,000 model-backed sub-agents, holds intermediate results, and returns one synthesized output. Deployed behavior depends on model calls (script authoring, every sub-agent) plus surrounding machinery (runtime, permission gate, command registry, progress/control UI).
3. Boundary declaration (step 1.3–1.4)
This is a subsystem-only boundary and is named as such. Dynamic workflows are one facility inside the Claude Code harness. No whole-system conclusion about Claude Code may be drawn from this run.
Included — components whose scheduling, context selection, retained state, action execution, checking, acceptance, or authority decisions produce or constrain workflow behavior:
- the workflow runtime (isolated background executor) —
CMP-1 - the model-authored orchestrator script —
CMP-2 - the script-authoring path inside the main Claude session (
ultracodekeyword,/effort ultracode, natural-language request) —CMP-3 - the sub-agent worker pool the script dispatches —
CMP-4 - the launch approval gate and its permission-mode table —
CMP-5 - the
/workflowsprogress-and-control surface (TUI, task panel, Desktop pane) —CMP-6 - the workflow command registry (bundled + project + personal) —
CMP-7 - the per-run script archive under
~/.claude/projects/—CMP-8 - the resume / agent-result store —
CMP-9 - the feature disable surface (
/config,disableWorkflows, env var, managed settings) —CMP-10 - the bundled
/deep-researchworkflow as an instance —CMP-11 - the main Claude conversation session in its two workflow-facing roles only: script
author and final-report recipient —
CMP-12
Excluded (named, so the conclusions they prevent are visible):
- Claude Code's ordinary turn-by-turn agent loop, skills, and agent teams, except where the docs' comparison table is cited as doctrine about workflows.
- The sub-agent primitive's own internals (
/en/sub-agentswas not in the source bundle). - The
/deep-researchscript's actual source text — never inspected; only its documented behavior. - Model inference, provider routing (Bedrock / Vertex / Foundry), billing and rate-limit accounting internals.
- Claude Code's general permission engine beyond the workflow-specific rows quoted.
External dependencies: the model provider (Anthropic API / Bedrock / Vertex / Foundry);
the WebSearch tool (required by /deep-research); the host filesystem and shell reached
only through sub-agents; the user's tool allowlist; MCP servers when agents call them.
4. Source register (step 2.3)
| ID | Kind | Identity / location | Revision or capture | Evidence layer | Inspected scope | Citation anchors | Access gaps |
|---|---|---|---|---|---|---|---|
SRC-1 |
Supplied document snapshot | kb/sources/claude-code-dynamic-workflows-docs.md, from https://code.claude.com/docs/en/workflows |
captured 2026-06-03, capture: web-fetch, genre tool-announcement; frontmatter states the feature is in research preview and requires Claude Code v2.1.154+ |
doctrine/design (vendor documentation); its permission/limit tables are also doctrine about implemented behavior, not inspected implementation | Whole file, all sections | Section headings used as anchors: #when-to-use, #bundled, #watch-the-run, #have-claude-write, #ask-in-prompt, #ultracode, #approve, #save, #args, #how-it-runs, #limits, #resume, #cost, #turn-off |
Linked pages (/en/sub-agents, /en/skills, /en/agent-teams, /en/agents, /en/costs) not in the bundle and not fetched. No source code, no script text, no run trace, no changelog. Doc's own "Date: Unknown". |
SRC-2 |
Live-session capture (negative) | ./capture-live-session-tool-roster.md |
captured 2026-08-20T20:09:31+02:00; host claude --version = 2.1.237 |
observed run, scope: roster-only / negative | This sub-agent process's full tool roster + a ToolSearch probe |
Whole capture file | Sub-agent tier ≠ main-session tier; establishes only that this process exposes no workflow tool. Supports no positive finding about the target. |
Cutoff conflict, preserved as a conflict (not resolved): SRC-1 is pinned at
2026-06-03 and documents behavior at/near v2.1.154–v2.1.160; the host observed under
SRC-2 runs v2.1.237. The run's analysis cutoff is 2026-06-03. Any behavior change
between those versions is outside the boundary and is recorded as a limitation.
5. Evidence tier (step 3)
doc-grounded. The material loops recorded in the runtime baseline rest on vendor
documentation, not on inspected implementation material. No implementation, no observed
run of the target, no causal experiment. Per step 3, this tier is fixed for the whole run
and no lens may upgrade it.
6. Shared canonical records
6.1 Components (CMP-*) — orchestrator-owned
| ID | Component | Form / substrate | Anchor |
|---|---|---|---|
CMP-1 |
Workflow runtime | Executor process, isolated environment separate from the conversation; runs in background | #how-it-runs |
CMP-2 |
Orchestrator script | JavaScript source text, model-authored; holds loop, branching, intermediate results | #when-to-use, #how-it-runs |
CMP-3 |
Script-authoring path in main session | Model call in the conversation, triggered by keyword/effort/natural language | #have-claude-write, #ask-in-prompt, #ultracode |
CMP-4 |
Sub-agent worker pool | Model-backed workers; ≤16 concurrent (fewer on low-CPU hosts), ≤1000 per run; acceptEdits mode; inherit user tool allowlist; use session model unless the script routes a stage elsewhere |
#limits, #approve, #cost |
CMP-5 |
Launch approval gate | Interactive prompt (CLI) / approval card (Desktop); behavior varies by permission mode; can record persistent consent | #approve |
CMP-6 |
Progress-and-control surface | /workflows TUI list + phase/agent drill-down; task-panel progress line; Desktop Background-tasks pane |
#watch-the-run, #manage-runs |
CMP-7 |
Workflow command registry | Files in .claude/workflows/ (project, shared via repo) and ~/.claude/workflows/ (personal); bundled commands; project wins on name collision; appear in / autocomplete |
#save, #bundled |
CMP-8 |
Per-run script archive | File written per run under the session's directory in ~/.claude/projects/ |
#how-it-runs |
CMP-9 |
Resume / agent-result store | Runtime-tracked per-agent results; session-scoped | #how-it-runs, #resume |
CMP-10 |
Feature disable surface | /config toggle, "disableWorkflows" in ~/.claude/settings.json, CLAUDE_CODE_DISABLE_WORKFLOWS=1, managed settings, admin page |
#turn-off |
CMP-11 |
/deep-research bundled workflow |
A specific CMP-2 instance shipped with Claude Code; requires WebSearch |
#bundled, #run-a-bundled-workflow |
CMP-12 |
Main conversation session (workflow-facing roles only) | Model context window; author of CMP-2, recipient of the final report and the run-script path |
#how-it-runs, #when-to-use |
6.2 Operative objects (OBJ-*) — orchestrator-owned generic identity
| ID | Object | Representational form | Substrate | Anchor |
|---|---|---|---|---|
OBJ-1 |
Workflow script text | symbolic (JavaScript) | file (CMP-8) + runtime memory |
#how-it-runs |
OBJ-2 |
args global |
structured data (array/object), passed at invocation | script global | #args |
OBJ-3 |
Script variables / intermediate results | in-language values; may hold natural-language agent output | runtime process memory | #when-to-use, #how-it-runs |
OBJ-4 |
Agent result (per sub-agent, with its prompt and recent tool calls) | natural-language + tool-call trace | runtime store (CMP-9), surfaced in CMP-6 |
#watch-the-run, #how-it-runs |
OBJ-5 |
Phase record (agent count, token total, elapsed time) | numeric/structured telemetry | CMP-6 |
#watch-the-run |
OBJ-6 |
Final report / answer | natural language, cited in the /deep-research case |
delivered into CMP-12 context |
#run-a-bundled-workflow, #when-to-use |
OBJ-7 |
Saved workflow command file | symbolic (JavaScript) + command name | CMP-7 |
#save |
OBJ-8 |
Permission consent record | configuration entry | user settings / project-scoped consent | #approve |
OBJ-9 |
Deep-research claim | natural-language proposition with source citation | OBJ-3 then OBJ-6 |
#bundled |
OBJ-10 |
Fetched web source | external document | fetched by agents | #run-a-bundled-workflow, #bundled |
OBJ-11 |
Cross-check / vote result on a claim | disposition value | script variables | #bundled |
OBJ-12 |
Tool allowlist | configuration | user settings; inherited by CMP-4 |
#approve |
OBJ-13 |
Session effort setting (ultracode) |
configuration | session-scoped, resets on new session | #ultracode |
OBJ-14 |
Session model selection | configuration | session | #cost |
6.3 Routes (RTE-*) — runtime-owned endpoints and progression
Lenses annotate these; they do not re-inventory or rename them.
Control routes
| ID | Route | Trigger / decision policy | Anchor |
|---|---|---|---|
RTE-C1 |
Trigger → script authoring | ultracode keyword in prompt, natural-language request ("use a workflow"), or /effort ultracode (Claude then decides per substantive task). Pre-v2.1.160 the literal keyword was workflow. Decision form: model judgement, keyword-gated. |
#ask-in-prompt, #ultracode |
RTE-C2 |
Launch approval | Per-run prompt showing planned phases; options Yes / Yes-and-don't-ask-again / View raw script / No; Ctrl+G opens the script, Tab edits the prompt. Prompt presence is a table-driven function of permission mode. Decision form: human, with configurable bypass. |
#approve |
RTE-C3 |
Script execution | Runtime executes OBJ-1 in an isolated environment, in the background; session stays responsive. Decision form: code — the script holds loop and branching. |
#how-it-runs, #when-to-use |
RTE-C4 |
Agent dispatch | Script spawns sub-agents; runtime enforces ≤16 concurrent and ≤1000 total. Next-step owner: the script. | #when-to-use, #limits |
RTE-C5 |
Interactive run control | In /workflows: p pause/resume, x stop agent or whole run, r restart a running agent, s save script. Decision form: human, mid-run. |
#watch-the-run |
RTE-C6 |
Resume | Completed agents return cached results from CMP-9; the rest run live. Works only within the same session; exiting Claude Code makes the next session start the workflow fresh. |
#resume |
RTE-C7 |
Command invocation | /<name> resolves in CMP-7; project beats personal on collision; optional args. |
#save, #args, #bundled |
RTE-C8 |
Feature disable | /config, settings key, env var (read at startup), managed settings/admin page. When disabled: bundled commands unavailable, ultracode keyword no longer triggers, ultracode removed from /effort. |
#turn-off |
RTE-C9 |
Mid-run tool permission prompt | Shell commands, web fetches, and MCP tools outside the allowlist can still prompt mid-run. Only agent permission prompts can pause a run; there is otherwise no mid-run user input. In claude -p/SDK there is nobody to prompt, so configured rules apply without confirmation. |
#approve, #limits |
Context routes
| ID | Route | Selection / delivery | Anchor |
|---|---|---|---|
RTE-X1 |
Script → sub-agent prompt | The script composes each agent's prompt from OBJ-3/OBJ-2. Selection signal is script-authored code, not model judgement at dispatch time. |
#when-to-use, #watch-the-run (agent prompt is inspectable) |
RTE-X2 |
Sub-agent result → script variables | OBJ-4 returns into OBJ-3, not into CMP-12's context window. |
#when-to-use, #how-it-runs |
RTE-X3 |
Final answer → main session | Only the final answer lands in CMP-12's context. |
#when-to-use |
RTE-X4 |
Run-script path → main session | Claude receives the path to the archived script at run start and can be asked for it. | #how-it-runs |
RTE-X5 |
args → script global |
Claude passes user-named input as structured data; script calls array/object methods directly; undefined if omitted. |
#args |
RTE-X6 |
Run internals → human | /workflows drill-down exposes each phase's agent count, token total, elapsed time, and each agent's prompt, recent tool calls, and result. |
#watch-the-run |
State / action routes
| ID | Route | Reads / writes | Anchor |
|---|---|---|---|
RTE-S1 |
Run-script archive write | Every run writes OBJ-1 to a file under the session dir in ~/.claude/projects/. User may open, diff against a previous run's script, or edit it and ask Claude to relaunch from the edited version. |
#how-it-runs |
RTE-S2 |
Save run script as command | s in /workflows → save dialog → .claude/workflows/ (project, shared via repo) or ~/.claude/workflows/ (personal). Becomes /<name> in future sessions. |
#save |
RTE-S3 |
Consent record write | "Yes, and don't ask again for <name> in <path>" persists for that workflow in that project; in Auto mode any Yes records consent in user settings and later launches start without prompting. |
#approve |
RTE-S4 |
Agent-mediated external action | The script has no direct filesystem or shell access. Agents read, write, and run commands; the script coordinates. Agents run in acceptEdits: file edits auto-approved regardless of session mode. |
#limits, #approve |
RTE-S5 |
Agent-result tracking | Runtime tracks each agent's result as the run progresses — the stated mechanism behind resumability. | #how-it-runs |
RTE-S6 |
Usage accounting | Runs count toward plan usage and rate limits; per-agent token usage visible live; stopping keeps completed work. | #cost |
Deep-research routes (CMP-11) — documented behavior of one bundled script
| ID | Route | Description | Anchor |
|---|---|---|---|
RTE-E1 |
Search fan-out | Fans out web searches on the question across several angles. | #bundled, #run-a-bundled-workflow |
RTE-E2 |
Source fetch | Fetches the sources it finds. | same |
RTE-E3 |
Cross-check | Cross-checks the sources it finds against each other. | same |
RTE-E4 |
Vote | Votes on each claim. | #bundled |
RTE-E5 |
Filter | Claims that didn't survive cross-checking are filtered out of the report. | #bundled, #run-a-bundled-workflow |
RTE-E6 |
Cited synthesis | Synthesizes a cited report; it cites the sources each claim came from. | same |
RTE-E7 |
Adversarial peer review (generic pattern) | A workflow "can have independent agents adversarially review each other's findings before they're reported". Stated as a capability of the pattern, not as shipped behavior of a named workflow. | #when-to-use |
RTE-E8 |
Multi-angle drafting and weighing (generic pattern) | "draft a plan from several angles and weigh them against each other". Same capability status as RTE-E7. |
#when-to-use |
6.4 Behavioral-authority paths (BAP-*) — orchestrator-owned
Fields: consumer | channel | force | horizon (run-level extension).
| ID | Consumer | Channel | Force | Horizon | Anchor |
|---|---|---|---|---|---|
BAP-1 |
Workflow runtime (CMP-1) |
Execution of OBJ-1 in the isolated environment |
enforcing — the script is the control flow ("Who decides what runs next: the script") | one run | #when-to-use, #how-it-runs |
BAP-2 |
Future sessions' command resolver + Claude/user | CMP-7 registry lookup on /<name> |
enforcing on invocation — running that saved orchestration; project entry overrides personal | persistent across sessions; project-scoped (repo-shared) or user-scoped | #save |
BAP-3 |
Sub-agent (CMP-4) |
Spawn prompt via RTE-X1 |
directive for that worker's task | that agent's lifetime | #when-to-use |
BAP-4 |
Main session Claude + user (CMP-12) |
RTE-X3 context delivery |
advisory — content informing the conversation | session / turn | #when-to-use, #run-a-bundled-workflow |
BAP-5 |
Launch approval gate (CMP-5) |
OBJ-8 consent record in project/user settings |
permissive — suppresses the launch prompt | persistent, per workflow+project (default/acceptEdits) or per user (Auto) | #approve |
BAP-6 |
Sub-agent tool executor | Inherited OBJ-12 allowlist + forced acceptEdits |
permissive/enforcing — auto-approves file edits, still prompts for non-allowlisted shell/web/MCP | run | #approve, #limits |
BAP-7 |
Whole feature | CMP-10 settings / env var / managed settings |
enforcing prohibition | persistent; organization-wide via managed settings | #turn-off |
BAP-8 |
Main session Claude's planning (CMP-3) |
OBJ-13 /effort ultracode session setting |
directive default — Claude plans a workflow for every substantive task | current session; resets on new session | #ultracode |
BAP-9 |
Claude / user, on request | Archived OBJ-1 file (CMP-8) read via the path from RTE-X4 |
material for relaunch — read, diffed, edited, then relaunched; advisory until relaunched, at which point it becomes BAP-1 |
persists on disk under the session directory | #how-it-runs |
BAP-10 |
Runtime scheduler | Concurrency (≤16) and total (≤1000) agent caps | enforcing ceiling | every run | #limits |
6.5 Claims (CLM-*) — orchestrator namespace; the epistemic lens owns truth/scope/warrant fields
| ID | Claim (as stated) | Kind | Anchor |
|---|---|---|---|
CLM-1 |
Independent agents adversarially reviewing each other's findings, or drafting a plan from several angles and weighing them, gives "a more trustworthy result than a single pass". | warrant claim | #when-to-use |
CLM-2 |
/deep-research "votes on each claim, and returns a cited report with claims that didn't survive cross-checking filtered out". |
knowledge-production / operation claim | #bundled |
CLM-3 |
"A workflow script holds the loop, the branching, and the intermediate results itself, so Claude's context holds only the final answer." | operation claim (context economy) | #when-to-use |
CLM-4 |
"The runtime tracks each agent's result as the run progresses, which is what makes a run resumable within the same session." | mechanism claim | #how-it-runs |
CLM-5 |
The 1,000-agent cap "prevents runaway loops"; the caps "bound the cost of a runaway script". | control claim | #limits, #cost |
CLM-6 |
"No direct filesystem or shell access from the workflow itself" — agents act, the script coordinates. | isolation claim | #limits |
CLM-7 |
What is repeatable in a workflow is "the orchestration itself"; the plan moves into code. | design claim | #when-to-use |
CLM-8 |
"Your permission mode controls only the launch prompt" — spawned sub-agents always run in acceptEdits and inherit the allowlist regardless of session mode. |
authority claim | #approve |
7. Runtime baseline (step 4)
Scheduling, context assembly, and external state/action are treated as causal
responsibilities, not module boundaries. In this system one facility spans several: the
script (CMP-2) is simultaneously the scheduler and the context assembler, while it is
deliberately not an actor on the outside world.
Loop A — Workflow authoring loop (in the conversation)
| Field | Finding | Status | Evidence |
|---|---|---|---|
| Trigger / input | User prompt containing ultracode, a natural-language request ("use a workflow"), or any substantive task while /effort ultracode is set. Highlight is dismissible (Option/Alt+W, backspace after the keyword) and the trigger is disableable in /config. |
claimed |
SRC-1#ask-in-prompt, #ultracode |
| Next-step owner | Main-session Claude (CMP-3) |
claimed |
SRC-1#have-claude-write |
| Decision policy and form | Model judgement, keyword- or setting-gated. Under ultracode the model decides per task whether a workflow is warranted, and a single request can become several workflows in a row (understand → change → verify). |
claimed |
SRC-1#ultracode |
| Context selection / framing | Not documented. What the authoring model reads to write the script is uninspected. An existing orchestrator (a folder of sub-agent prompts, or a fan-out skill) can be pointed at as input. | uninspected for the general case; claimed for the point-at-an-orchestrator path |
SRC-1#ask-in-prompt |
| State reads / writes | Writes OBJ-1; reads OBJ-13. |
claimed |
SRC-1#ultracode, #how-it-runs |
| Action executor / boundary | None — authoring produces text only. | claimed |
SRC-1#how-it-runs |
| Persistence | RTE-S1 archives every run's script (CMP-8). |
claimed |
SRC-1#how-it-runs |
| Coordination / return | Hands OBJ-1 to RTE-C2 then CMP-1; receives the archive path back (RTE-X4). |
claimed |
SRC-1#how-it-runs |
| Retry / cancellation / recovery | User dismisses the keyword highlight, edits the prompt with Tab, or answers No at the gate. |
claimed |
SRC-1#ask-in-prompt, #approve |
| Output | OBJ-1, a JavaScript orchestrator script, plus the phase list shown at the gate. |
claimed |
SRC-1#approve |
Loop B — Launch-approval loop
| Field | Finding | Status | Evidence |
|---|---|---|---|
| Trigger / input | A composed OBJ-1 about to run. |
claimed |
SRC-1#approve |
| Next-step owner | The human, except where the permission mode removes them. | claimed |
SRC-1#approve |
| Decision policy and form | Table-driven configuration selecting between human decision and automatic start: Default/accept-edits → every run unless "don't ask again"; Auto → first launch only, any Yes records consent in user settings, and the prompt is skipped entirely when ultracode is on; Bypass permissions / claude -p / Agent SDK → never prompt, run starts immediately. |
claimed |
SRC-1#approve |
| Context selection / framing | The gate shows the planned phases; the raw script is available on demand (View raw script, Ctrl+G). Desktop shows name, phase list, and a token-usage caution. So the human's default decision surface is a summary, with full text opt-in. |
claimed |
SRC-1#approve |
| State reads / writes | Reads permission mode and prior consent; writes OBJ-8 (RTE-S3). |
claimed |
SRC-1#approve |
| Action executor / boundary | Starts or cancels the run. | claimed |
SRC-1#approve |
| Coordination / return | On Yes, control passes to CMP-1. |
claimed |
SRC-1#approve |
| Retry / cancellation | No, or Tab to adjust the prompt before the run starts. |
claimed |
SRC-1#approve |
| Materiality | This is the run's only pre-execution human control point, and the point where a persistent authority record is created. | — | — |
Loop C — Script execution loop (the core scheduler)
| Field | Finding | Status | Evidence |
|---|---|---|---|
| Trigger / input | Approved launch, or /<name> invocation with optional args. |
claimed |
SRC-1#approve, #args |
| Next-step owner | The script (OBJ-1), executed by CMP-1. Explicitly contrasted with subagents/skills/agent-teams where "Claude, turn by turn" or "the lead agent, turn by turn" decides. |
claimed |
SRC-1#when-to-use |
| Decision policy and form | Symbolic — loop and branching are JavaScript. This is the system's defining property: the plan is in code, and "the orchestration itself" is what is repeatable. | claimed |
SRC-1#when-to-use |
| Context selection / framing | The script composes each agent's prompt from OBJ-3/OBJ-2 (RTE-X1). Selection is code-determined, not model-determined at dispatch. |
claimed (mechanism documented; no example script inspected) |
SRC-1#when-to-use, #watch-the-run |
| State reads / writes | Intermediate results live in script variables (OBJ-3) inside the isolated environment, not in a context window and not on the filesystem. Runtime separately tracks per-agent results (RTE-S5). |
claimed |
SRC-1#how-it-runs |
| Action executor / boundary | The script itself has no direct filesystem or shell access. All external action is delegated to sub-agents (RTE-S4). This is a hard architectural line: the orchestrator is a pure coordinator. |
claimed |
SRC-1#limits |
| Persistence | OBJ-3 is process-local and not documented as persisted; OBJ-1 is archived (RTE-S1); OBJ-4 is tracked in CMP-9. |
claimed for archive and tracking; uninspected for whether OBJ-3 survives the process |
SRC-1#how-it-runs |
| Coordination / return | Fan-out to ≤16 concurrent agents, ≤1000 total; results return into script variables; one final answer returns to the session. | claimed |
SRC-1#limits, #when-to-use |
| Retry / cancellation / recovery | Pause/resume (p), stop agent or run (x), restart a running agent (r); resume replays cached results for completed agents. Recovery is session-bounded: exiting Claude Code loses it and the next session starts fresh. |
claimed |
SRC-1#watch-the-run, #resume |
| Output | OBJ-6, one report or answer, delivered to CMP-12. |
claimed |
SRC-1#run-a-bundled-workflow, #when-to-use |
Loop D — Sub-agent execution loop
| Field | Finding | Status | Evidence |
|---|---|---|---|
| Trigger / input | Dispatch from the script with a composed prompt. | claimed |
SRC-1#when-to-use |
| Next-step owner | The sub-agent itself, turn by turn, within its task. | claimed (by reference to the sub-agent primitive; that primitive's docs were not in the bundle) |
SRC-1#related |
| Decision policy and form | Model judgement inside the agent. | uninspected in detail |
— |
| Context selection | The agent receives its prompt; what else it loads is undocumented here. | uninspected |
— |
| State reads / writes | Reads and writes the real filesystem; runs commands. | claimed |
SRC-1#limits |
| Action executor / boundary | Runs in acceptEdits regardless of session mode; file edits auto-approved; inherits the user's tool allowlist; non-allowlisted shell/web/MCP calls can still prompt mid-run. |
claimed |
SRC-1#approve |
| Persistence | Its result is tracked by the runtime (OBJ-4) and is inspectable in /workflows (prompt, recent tool calls, result). |
claimed |
SRC-1#watch-the-run, #how-it-runs |
| Coordination / return | Returns into OBJ-3 via RTE-X2. |
claimed |
SRC-1#when-to-use |
| Retry / cancellation | x stops it; r restarts it. |
claimed |
SRC-1#watch-the-run |
| Model | Session model unless the script routes a stage to a different one. | claimed |
SRC-1#cost |
Loop E — Observation and mid-run control loop (human)
| Field | Finding | Status | Evidence |
|---|---|---|---|
| Trigger / input | A running or completed workflow. | claimed |
SRC-1#watch-the-run |
| Next-step owner | The human, asynchronously; the run does not wait for them. | claimed |
SRC-1#limits ("No mid-run user input") |
| Decision policy | Human, from telemetry: phase agent counts, token totals, elapsed time; drill-down to an agent's prompt, recent tool calls, and result. | claimed |
SRC-1#watch-the-run |
| Actions available | pause/resume, stop agent, stop run, restart agent, save script. | claimed |
SRC-1#watch-the-run |
| Boundary | The only thing that can pause a run besides p is an agent permission prompt. Staged human sign-off requires splitting into separate workflows. |
claimed |
SRC-1#limits |
| Output | Control actions; optionally OBJ-7 via RTE-S2. |
claimed |
SRC-1#save |
Anti-conflation checks held (step 4.3)
- A filesystem is not a scheduler.
CMP-8andCMP-7store scripts; neither dispatches. The scheduler isOBJ-1running insideCMP-1. - Retaining material is not selecting it into context.
CMP-9retains every agent result; only what the script reads into a prompt (RTE-X1) or the final answer (RTE-X3) enters any model's context. MostOBJ-4content documentedly never reachesCMP-12. - A tool schema present in context is not tool execution. The inherited allowlist (
OBJ-12) defines what agents may call; execution happens in Loop D and can still be blocked mid-run. - Capability is not deployment.
RTE-E7/RTE-E8describe what a workflow can be written to do; no shipped workflow is documented as doing them.
Conditional surfaces inspected under step 4.4 (materiality stated)
- Permissions / governance — material: it changes the control path. The launch gate is the only pre-execution check, it is removable by mode or by a persistent consent record, sub-agents are forced into
acceptEditsindependent of the session's mode, and org-leveldisableWorkflowsis the only hard off switch. This directly bounds what any authority conclusion can say. - Observability — material: it is the evidence surface for the human and the sole mid-run control channel; agent prompts, tool calls, and results are inspectable, and the archived script makes the orchestration itself readable and diffable.
- Packaging / distribution — material:
RTE-S2turns a one-off run into a repo-shared command, which is the mechanism behind the run's strongest memory read-back finding and behindBAP-2. - Cost / resource limits — material: caps are an enforcing control (
BAP-10) and the doc ties them to a safety claim (CLM-5). - Providers, UI surfaces, performance — inspected only enough to record availability (paid plans, API, Bedrock, Vertex, Foundry; CLI, Desktop, IDE,
claude -p, Agent SDK) and the headless behavioral difference (no prompts). Not otherwise material.
This inventory is deliberately open: it is not a taxonomy, template, maturity ladder, ranking, or adoption advice.
8. Instructions to lens workers
- Cite only
SRC-1(andSRC-2for its negative scope). Do not fetch, search, or open any other file — in particular nothing else underkb/. - Extend records by existing ID. Do not rename, re-inventory, or create a parallel namespace. Genuinely new material records are returned to the orchestrator as "PROPOSED NEW RECORD: ..." for canonical registration.
- The overall evidence tier is
doc-groundedand fixed. Use only the conclusion statusesabsent,inapplicable,uninspected,claimed,implemented,observed,causally supported. Nothing here reachesimplementedor above. - Every negative or uncertain result names the inspected boundary and the exact conclusion it prevents.
- Never upgrade: context presence → activation; implementation → observed operation; observation → causality; operational continuation → warrant.