Responsibility matrix for the base workflow system
Keep the extracted base usable without Commonplace while preserving the guarantees that Commonplace needs from its workers.
Prepared 2026-10-19 at the operator's request. The workshop framing fixes the agreed scope. This matrix proposes the detailed ownership boundary for extraction; it describes intended responsibilities, not capabilities already verified in the implementation.
Owners
- Base: the reusable execution and result-recording code, including its harness adapters. An adapter translates a request into a headless harness invocation and interprets the harness's execution evidence.
- Workflow: caller-written code that selects jobs, supplies their inputs and checks, and decides what follows their results. In Commonplace this includes the analysis sequence and correction cascade.
- Artifact layer: Commonplace's types, validation and interpretation of verification and correction records. The base must also work without it.
- Host: the caller's setup and operation of the working directory, installed tools, permissions and external services. This is a responsibility, not a proposed environment-provider API.
- Publication: Commonplace's assembly, publication and integration code. Other consumers supply their own handling of external effects.
Each row names one accountable owner. Other components may supply inputs or execute a check without owning its policy.
Execution and results
| Responsibility | Owner | Inputs and guarantee at the boundary |
|---|---|---|
| Choose model work and its order | Workflow | Calls into the base encode branches, loops and independent groups. The base does not infer a dependency graph or drive an orchestrator agent. |
| Compose the task | Workflow | Supplies task instructions, named input contents, output names and worker selection. Domain prompts stay outside the base. |
| Launch a headless worker | Base | Translates the supplied worker configuration for a supported harness, uses the supplied working directory, and reports launch outcome. Model choice remains the caller's. |
| Render delivery paths | Base | Materializes supplied inputs and the per-launch prompt/output paths. This mechanical frame does not add KB roles or type rules. |
| Separate launch outputs | Base | Every launch, including relaunches, receives fresh output paths. Collects only that launch's files; this is not filesystem access enforcement. |
| Detect delivery problems | Base | Distinguishes missing required outputs, a worker-reported inability to finish, and a failed process. File presence does not imply content acceptance. |
| Attribute results | Base | Retains exact returned content and its launch evidence, including available harness/session/model identity. Missing evidence remains explicit rather than guessed. |
| Limit concurrency | Base | Enforces the supplied launch limit. The workflow chooses which calls are independent and how their results are combined. |
| Relaunch after execution failure | Base | Implements a documented, bounded failure policy with fresh output paths and retained failure evidence. Does not equate every failed exit with a rejected document. |
| Select retry and correction allowances | Workflow | Supplies limits appropriate to the task. Limits apply to defined events; changing their meaning is a contract change. |
| Enforce supplied limits | Base | Records and counts the events defined by its contract, including across resume. The workflow passes the remaining role allowance when several calls share a budget. |
| Own a run's execution records | Base | Prevents competing controllers from concurrently updating the same run and commits reusable results without exposing partial records. Does not lock the whole project. |
Checks and workflow decisions
| Responsibility | Owner | Inputs and guarantee at the boundary |
|---|---|---|
| Interpret output types | Artifact layer | Checks schemas, required members, identities, citations and other declared relationships. Returns findings over specified content. No KB parser or type registry is required by the base. |
| Select stable comparison inputs | Workflow | Freezes the sibling outputs and criteria a check is to use before a parallel round. Supplies that snapshot to checks; checks must not silently consult changing sibling state. |
| Apply a supplied check | Base | A bounded check-and-retry helper may invoke the caller's check on a delivered result and return findings. The base does not choose what constitutes a valid artifact. |
| Interpret verification and correction obligations | Artifact layer | Determines which exact subjects a verdict covers and what a correction must answer. Markdown blocker syntax and Commonplace verdict rules stay here. |
| Build correction requests | Workflow | Uses findings and prior outputs to commission the next task. Chooses correction order and when independent verification must run again. |
| Decide progression and stopping | Workflow | Interprets execution outcomes and domain judgments. Cached delivery alone never authorizes publication or establishes that a current check passes. |
The base's check helper, if retained, must accept caller-defined checks and feedback construction. It must not import Commonplace's refusal parser to make a generic retry work. Reuse of delivered content and reuse of an acceptance decision are different: the workflow must rerun the check against the intended snapshot, or explicitly establish that the prior judgment still applies.
Environment, resumption and effects
| Responsibility | Owner | Inputs and guarantee at the boundary |
|---|---|---|
| Prepare the execution environment | Host | Supplies the working directory and runnable harnesses. Worktrees, dependency installation, pinned code and environment checks remain outside the base. |
| Enforce worker access restrictions | Host | Configures sandbox, credentials, filesystem and network permissions. The base passes supported launch settings but does not claim to enforce restrictions itself. |
| Identify reusable calls within a run | Base | Keys delivered results by the declared request material, including supplied input contents and relevant worker settings. Does not discover ambient dependencies. |
| Establish whether reuse remains valid | Host | Maintains the environment required by the workflow's resume contract. A changed environment may require a new run. Cross-run caching is outside the initial scope. |
| Reconstruct workflow progress | Workflow | Re-executes its ordinary control flow using retained results. Controls its own decisions and budgets; the base does not persist a general scheduler. |
| Report interrupted or stopped execution | Base | Documents what survives a stop, what may repeat and what happens to launched processes. The exact contract must be settled before implementation; durable results do not promise exactly-once execution. |
| Authorize operational recovery | Host | Repairs environmental failures and decides when to resume or start anew, within the documented interruption contract. Automatic recovery from every failure is outside scope. |
| Assemble and publish | Publication | Uses exact accepted members and verifies publication conditions. Owns destination locks, replacement checks, effect journals and integration. A cached worker result is not a transaction around external effects. |
Decisions still needed before extraction
The following choices need evidence from the independent implementation and its example workflow. The implementation plan proposes initial defaults and phases for resolving them; no decision waits for the headless branch. They do not authorize widening the agreed scope:
- Which execution failures permit relaunch, and how launch failures, timeouts, incomplete outputs and content rejections spend their respective budgets.
- What a normal stop, timeout and abrupt controller loss guarantee about surviving workers, and what the operator must establish before resuming.
- Whether the example warrants a generic check-and-retry helper, or whether only launch/result primitives belong in the first release.
- Which harnesses have sufficient adapter and real-execution evidence to be supported initially, and what execution evidence each can actually provide.
- Where the package lives and whether Treadle is reused. These choices do not require compatibility with the earlier step-program protocol.
Boundary acceptance
An ordinary-file workflow must launch, check, retry and resume without any Commonplace imports or a Git worktree. This is the package's independent acceptance boundary. A later Commonplace integration must retain its type checks, verification rules and publication protections; it is not a package release prerequisite. Exercise the failure and completion-order cases in the workshop framing.
Record any unresolved ownership conflict before extraction reaches that interface. In particular, a base helper that needs to understand a KB type, prepare a worktree, or select a correction cascade has crossed this boundary.