This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Agents

Repository-wide agent-system architecture, goals, and skills

Repository agent system

This project owns the repository-wide agent-system contract, its durable improvement goals, and reusable cross-repository skills. It does not centralize component facts or runtime state: each fact remains canonical at its natural owner, and system-wide views are derived projections.

Document Purpose
Current state Evidence-backed baseline and material seams
Architecture Canonical abstraction tower, authorities, and invariants
Roadmap Dependency-ordered future work and acceptance signals
Durable goals Versioned attempts, evidence, and acceptance state
Root agent guide Current repository-wide operating policy

The current-state document describes supported entry points and their evidence boundaries. Dated audits remain in the goal records. The architecture defines the intended composition contract; the roadmap does not claim that proposed interfaces already exist.

  • docs/ owns the cross-layer system model and plan, not duplicated component configuration.
  • goals/ owns durable repository-agent work records and evidence.
  • skills/ owns reusable repository-wide agent procedures and their development-time evaluations.
  • Product-specific skills remain with their project at projects/<project>/skills/<name>.
  • Repository-internal executors and build integrations may live under tools/; their behavior remains owned and documented there.

Every canonical skill is packaged as a skill_library in its owning directory.

The repository discovery directory .agents/skills/ contains one relative symlink per skill. Each link points directly to its canonical project-owned directory. Bazel ignores the discovery directory and builds only canonical targets, preventing duplicate packages while allowing skills from more than one owning project.

Skill evaluation data is not part of the runtime skill_library unless a skill explicitly declares otherwise. Every new or updated skill includes an offline Promptfoo configuration-validation target. That target checks the eval harness, not answer correctness. Live behavioral evaluations are manual, networked tests and must not be included in ordinary wildcard test runs; they may be omitted when representative coverage requires tool calls or external state that cannot be provided safely and reproducibly, with the gap documented beside the eval configuration.

1 - Repository agent goals

Durable goals, attempts, and evidence for the repository agent system

Repository agent goals

Each child directory is an owner-local durable goal record. Canonical resource files and attempt artifacts are created and validated through the repository goal workflow; do not edit generated records or projections directly.

Goal evidence may contain source and operational analysis, including non-secret live or generated facts. It must never contain credentials, other secrets, or personal information. Inspect raw artifacts before promoting their content. Structured task artifacts such as FrictionRecord and LearningProposal JSON files are task scratch: keep them under out/<task>/ and cite them from goal evidence Markdown rather than committing them into evidence/, which accepts only .md files.

Discover current open work through the goal catalog and its bounded resume view; status is owned by each goal record. The agent-system-phase-six-ergonomics/ goal records a completed friction-reduction attempt, with the original evidence and its limitations preserved.

The current-state document describes supported interfaces and current evidence boundaries. Closed attempts remain historical records; later implementation reviews may narrow claims they made without rewriting those immutable records.

2 - Repository agent system current state

Supported agent entry points, evidence boundaries, and limitations

Repository agent system current state

This is the maintained guide to the checked-in interfaces. Source links below identify their owners; runtime availability must be observed in the current session. Historical audits and acceptance claims remain in the immutable goal records. Their dates and evidence tiers limit what they prove.

Read applicable AGENTS.md instructions and the nearest owner README. Use the available Cordis repository-context handlers for bounded reads and searches, or the native tools when Cordis is unavailable. Cordis availability does not determine whether offline repository work is possible.

The offline context command provides a bounded advisory view:

bazel_agent bazel run //tools/agents/cmd/agent_system -- \
  --workspace-root "$PWD" --path projects/goal

Its owner documentation describes the supported flags and limitations. Catalog declarations identify source facts; they do not establish live provider health, action authorization, successful validation, or a task’s association with a goal. Missing observations remain explicit. A source digest proves identity, not freshness against a live system.

Need Entry point Boundary
Policy and layout Applicable AGENTS.md, owner README, BUILD and MODULE files The user request owns intended outcome and authorization.
Procedure Canonical skill selected from .agents/skills Load only the procedure needed for the task.
Build or test bazel_agent bazel <command> Start with the affected package and avoid redundant compatible invocations.
Context //tools/agents/cmd/agent_system Offline, advisory source projection.
Stored runtime status //tools/agents/cmd/control_status Stored package observations do not prove present runtime health.
Durable work //projects/goal/cmd/goal Use workspace records for task coordination and owner-local project records when maintained history is needed.
Delivery //tools/repo_delivery Prepare, establish applicable validation, then explicitly publish the exact candidate.

The Bazel runner also supports cached control-tool execution in current builds. If an installed runner lacks that subcommand, the supported bazel run targets remain available. Updating a shared host installation is a separate operation from changing repository source.

Simple tasks need no durable goal. For work that needs a resume point, the goal checkpoint accepts a short summary, the current candidate, evidence references, and the next action. The store maintains the record’s identity and digests; show includes the active continuation. Detailed attempt review remains available for repeated failures and maintained project history. Local progress checkpoints do not trigger publication. Deliver at a meaningful review boundary or final handoff, with explicit remote backups when needed.

Delivery can execute a caller-selected Bazel validation plan and retain its results against the prepared candidate. Its continue command reports the next state; continue --publish explicitly requests publication using those results. The tool carries the candidate and receipt between steps. It does not decide task ownership, semantic sufficiency, or whether representative output satisfies the request. Changed candidates and rebases require fresh validation; uncertain publication outcomes require inspection before another mutation. Follow the owning README’s launcher instructions when validation itself invokes Bazel.

  • Skill packaging validates canonical artifacts and discovery links. Evaluation payloads are separate from runtime skill bodies.
  • Goal storage validates resource revisions and artifact digests, provides bounded continuation information, and supports recovery from interrupted publication. These checks establish record integrity; criterion verdicts still require appropriate evidence.
  • Delivery binds the prepared candidate, scope, remote expectations, and pull-request identity. Exact leases and state checks protect publication. The caller selects and establishes the required validation; a preparation receipt is not a test result.
  • Cordis provides bounded repository tools and supervised subprocess cleanup. Its package code is trusted. The documented process boundary is not a security sandbox.

The coverage projection inventories configured cases. It does not measure successful routing or task completion. Offline configuration checks are useful hygiene; stronger claims require actual result artifacts identifying the source, fixture, execution, and judge where applicable.

The shared control contracts include admission and runtime-control libraries with unit tests. Their existence does not establish enforcement by production providers. Earlier phase acceptance records describe broader gateway and runtime guarantees than those unit tests demonstrate. Treat provider integration, process isolation, and runtime fault containment as unverified until a concrete consumer and corresponding integration evidence establish them. The roadmap retains that future work.

Stored control snapshots contain package observations. Their age, missing writer identity, and lack of a live heartbeat limit their interpretation. The status reader preserves those limitations and does not create a runtime or its storage directories merely to inspect them.

Measure representative questions, edits, recovery, and delivery tasks before claiming an instruction or workflow is faster or more reliable. Compare task success, unauthorized actions, context bytes, commands, duration, and resume steps against the prior behavior. Keep model and fixture identities with observations; do not infer measured improvement from configuration checks or the presence of a new schema.

The local comparison fixtures provide four bounded scenarios and an observer protocol. They cover question answering, a local prose edit, recovery after a changed postcondition, and a delivery validation decision. Their simulated observations do not exercise real publication. Unobservable routing, command, context, or token metrics remain unavailable; available instruction bytes are not the same as consumed context. Results belong with the exact task candidate, not in the configured coverage inventory.

Preserve useful safeguards while reducing repeated consumer instructions. Retire obsolete workarounds and completed tracking when justified. Clean runs after a fix are not a reason to remove useful diagnostics or regression tests. Historical proposals suggesting otherwise do not define current policy.

The architecture describes composition responsibilities. It does not replace these implementation boundaries or authorize new work.

3 - Repository agent-system architecture

Canonical composition contract for repository-wide agent work, evidence, delivery, and learning

Repository agent-system architecture

This document defines the target composition contract for the repository as one agent-driven system. It is normative about boundaries, invariants, and ownership. A named interface or record is not a current capability merely because it appears here. The current-state snapshot describes implemented behavior; the roadmap orders the work needed to reach this design.

The objective is to let an agent form an accurate situation model, choose the least costly safe action, prove the exact result, and make later work cheaper. The design must remain useful with no daemon, network, credential, runtime extension, or active durable goal.

The repository should have one composition protocol, not one mutable brain.

Each fact stays at its narrow natural owner. Typed, versioned references join facts across owners. Deterministic bounded projections make those joins cheap to read. An execution gateway enforces effects at the point where they occur. No catalog, agent, skill, plan, or receipt may silently become an independent authority.

This yields four structural rules:

  1. One mutation authority per fact. A fact changes only at its owner.
  2. Many derived views. Human maps, JSON catalogs, context capsules, and status views are replaceable projections with provenance.
  3. Typed transitions. Cross-layer claims carry stable identities, versions or digests, completeness, and limitations.
  4. Effects are admitted at execution. Selection and planning advise; explicit authority plus an executable contract controls mutation.

Physical co-location is not required for logical cohesion. Repository-agent documents and goals belong under projects/agents. A future repository-internal controller or executor may belong under tools/agents. Component declarations remain with their component.

Fact Mutation authority System projection
Requested outcome and granted authority Current user/task interaction Task authority envelope
Applicable agent policy Nearest AGENTS.md chain Policy slice with source digests
Component purpose and local boundary Nearest owner README.md Topology record
Review accountability CODEOWNERS Effective reviewer record
Workspace and dependency structure MODULE.bazel, BUILD, and owning macros Workspace and action catalogs
Reusable procedure and routing intent Canonical project-owned skill Capability record
Durable outcome, criteria, and attempts Owner-local goal resources Goal catalog and resume packet
Task-local scratch and worker ownership Task manifest below ignored out/<task>/ Bounded task-status record
Desired runtime configuration Owning checked-in or task-local config Desired-state reference
Observed runtime state Live provider instance Provider-health observation
Source candidate Git plus an explicit dirty-input declaration Subject reference
Check execution Executing provider Action receipt
Acceptance judgment Goal criterion or task acceptance policy Evidence assertion
Feature publication and review Git, forge, and repository delivery Delivery and review receipts
Version and release identity Versioning and release owners Release identity and manifest
Durable adopted learning Destination owner through normal review Updated contract and regression

The architecture owns only this composition model. It must not restate mutable component values. If two authorities conflict, a projection reports the conflict and its sources; it does not choose a winner. A relevant unresolved conflict blocks effectful admission.

Cross-layer artifacts should share a small logical envelope. The roadmap owns the eventual schema and migration; payloads remain subsystem-specific.

ArtifactEnvelope
  apiVersion, kind, id
  producerRef
  authorityRefs[]?
  inputRefs[]: {kind, id, version?, digest, role}
  subjectRef?
  completeness: complete | partial | truncated | unknown
  limitations[]
  informationClass
  retentionClass
  digest

Observation or expiry times belong on live observations. Deterministic catalog content must not contain nondeterministic generation timestamps. Artifacts never contain credentials, secret-value hashes, personal information, environment dumps, absolute checkout paths, unreviewed raw logs, or full transcripts.

An authority reference is optional and repeatable. A deterministic catalog or ordinary observation does not gain authority merely by using this envelope. The artifact digest covers canonical schema-defined bytes without recursively including its own digest field.

A SubjectRef identifies the thing a claim is about. Depending on the claim, it can bind repository identity, base/commit/tree OIDs, the explicit task-owned dirty input set, relevant configuration and toolchain digests, an environment or remote resource selector, and a timed remote observation. Claims must not use a weaker subject merely because it is easier to obtain.

Each layer consumes contracts from the layer above, adds one kind of fact, and produces a bounded contract for the layer below.

Owner: the user interaction; durable acceptance belongs to the goal when one exists.

Input: the request, explicit constraints, and prior accepted context.

Output: an outcome, acceptance questions, scope, authority envelope, and resource limits.

Invariant: a question, skill selection, plan, prior permission, or tool availability never widens authority. Conditional authority is usable only after its condition is evidenced. Missing authority is unknown, not permission.

Repository policy may define an explicit implementation request to include ordinary feature-branch commit, publication, and review through the delivery workflow. That default must be visible in the authority envelope and never extends to tags, releases, deployments, infrastructure changes, or destruction.

Simple bounded tasks may keep this state in the active interaction. Iterative, delegated, or resumable work uses a durable goal and attempt.

Owners: paths, nearest READMEs, CODEOWNERS, MODULE.bazel, BUILD files, and explicit boundary declarations.

Input: workspace identity plus affected paths or labels.

Output: component and workspace identity, applicable policy sources, review accountability, dependency role, and classification axes.

Invariant: keep these axes independent:

  • checked-in source disclosure;
  • log and evidence handling;
  • Bazel target visibility;
  • allowed build consumers;
  • artifact and documentation publication; and
  • secret or personal-information presence and live-environment association.

Checked-in content in this public repository is public information unless it contains an accidental secret or personal information. Operational facts do not become confidential merely because they are generated or live, but raw artifacts require inspection because they can contain prohibited content. Public information status does not make a target eligible for production consumption or artifact publication.

Owners: applicable AGENTS.md, owner-local policy, and the executable provider or owning build macro.

Input: authority envelope, topology slice, and requested operation.

Output: an admission decision with stable reason codes, required preconditions, and an exact allowed effect set.

Invariant: every runnable operation declares atomic effects such as:

source.read       source.write       task_state.write
host.write        history.write      code.execute
credential.consume
network.read      remote.write       remote.destroy

The executable/provider owns effects; a skill references them rather than copying them. Unknown effects fail closed. Known read-only discovery may degrade visibly. Remote writes and destruction require exact resource, environment, candidate, pre-state, authority, and expiry bindings.

history.write is distinct from source.write: commits, local ref moves, tags, and rewrites alter history even when worktree bytes do not change. Operation scopes such as edit, commit, feature publication, review mutation, release-ref publication, deployment, and destruction map to additive atomic effects rather than substituting for them.

Review accountability, component ownership, task path/hunk or commit ownership, goal-storage ownership, remote-ref ownership, external-resource ownership, and user authority are separate relations. Unknown ownership fails closed for history rewrite, credential expansion, publication, remote mutation, and destruction.

Owners: canonical skills for routing and procedure; executable and runtime providers for actual capability contracts.

Input: intent, policy slice, available providers, effects, evidence maturity, and cost.

Output: the smallest sufficient capability set, ordering, exclusions, fallbacks, and an explanation of every choice.

Invariant: selection is advisory and never grants authority. Required dependencies are acyclic. Conflicts, unavailable providers, unsupported platforms, and unverified behavior are explicit. Full instructions and schemas load only after compact metadata selects them.

Owner: the current task coordinator and, for durable work, owner-local goal resources.

Input: intent, criteria, context slice, capability choices, prior evidence, and relevant defects.

Output: a WorkPacket or goal attempt plus CapabilityPlan and ActionPlan, with exact inputs, affected criteria, hypotheses where needed, checks, omissions, fallbacks, fixed regressions, budgets, stop conditions, and a strategy-reset condition.

Invariant: a plan does not authorize and does not prove. Delegated workers receive immutable bindings and disjoint output ownership; only the coordinator mutates canonical goal state. A repeated stable defect changes strategy rather than accumulating indistinguishable retries.

Owners: Bazel and bazel_agent, native repository tools, Cordis or another runtime provider, and explicit external adapters.

Input: admitted operation, exact subject and inputs, task/run identity, deadline, quotas, and cancellation contract.

Output: immutable ActionReceipt records plus bounded task-local raw-log pointers.

Invariant: executors remain thin and signal-transparent. Scratch is isolated by workspace, task, run, and worker; generated execution receives only declared filesystem, environment, process, network, and credential capabilities. Desired and observed state remain separate. A control kernel must stay responsive when optional data-plane extensions fail.

Owners: providers own observations; the task or goal acceptance policy owns semantic sufficiency.

Input: receipts, subject, validation profile, declared policy, known limitations, and—only for semantic judgment—a criterion revision.

Output: three distinct records:

  • EvidenceEvaluation derives applicable, stale, insufficient, unavailable, or unverifiable with stable reasons;
  • execution-owned, criterion-neutral ValidationSet aggregates exact candidate, plan/check identities, sanitized invocations, provider/configuration provenance, results, coverage, and limitations; and
  • goal/task-owned EvidenceAssertion applies evidence to an exact criterion and subject with satisfied, not_satisfied, or unknown.

Invariant: receipts prove what ran and what was observed; they do not prove that selected checks were semantically sufficient. One immutable validation set may support non-goal delivery and multiple criterion assertions. Partial, truncated, skipped, or unknown evidence cannot support complete coverage. Reuse requires matching relevant input, policy, contract, configuration, toolchain, and subject-class digests.

Owners: Git and the forge own remote facts; repository delivery owns feature publication and review operations; versioning and release keep their separate identities.

Input: exact candidate, authority, an applicable criterion-neutral ValidationSet, expected remote state, and operation-specific policy.

Output: delivery, synchronization, review, version, release, and deployment receipts linked by exact subject references.

Invariant: use the effectful protocol:

inspect -> prepare -> immutable candidate -> validate -> authorize
        -> execute -> verify -> receipt

Delivery validates candidate-bound evidence but does not select semantic checks. Feature publication does not imply tag or deployment authority. Version identity and release snapshot identity are joined by a typed handoff, not by assuming that any Git tag has the same meaning.

Owner: the component that will adopt the lesson through ordinary review and delivery.

Input: exact task evidence, review dispositions, stable defect identity, measured friction, and regression results.

Output: a LearningProposal, then—only after acceptance—an owner-local document, contract, check, evaluation, skill, or global invariant.

Invariant: learning is never automatic mutation. It is minimized, public, reviewed, regression-backed, measurable, reversible, and given a retirement path. Runtime promotion creates a normal candidate; it does not write project source or goal state directly.

The complete traversable chain is:

ContextCapsule
  -> GoalAttempt / WorkPacket
  -> CapabilityPlan / ActionPlan
  -> AuthorityBinding + AdmissionDecision
  -> ActionReceipt(s)
  -> EvidenceEvaluation + ValidationSet + EvidenceAssertion(s)
  -> accepted candidate
  -> Delivery / Review / ReleaseRef / ReleaseManifest / Deployment receipts
  -> GoalOutcome
  -> LearningProposal / LearningAdoption

The logical records serve distinct purposes:

  • ContextCapsule says what was known, applicable, authorized, available, stale, and omitted before planning.
  • WorkPacket says what outcome and criteria a bounded unit will pursue.
  • CapabilityPlan and ActionPlan say what was selected, omitted, ordered, budgeted, and expected to prove the result.
  • AuthorityBinding and AdmissionDecision say which exact effects, subject, environment, policy, pre-state, and expiry were checked before execution.
  • ActionReceipt says what provider executed or observed against which exact inputs and with what result and resource use.
  • ValidationSet records criterion-neutral check execution and coverage; EvidenceAssertion makes the separate criterion judgment.
  • Delivery, review, release-ref, manifest, and deployment receipts say which external transition occurred and which postcondition was observed.
  • GoalOutcome records durable acceptance or the honest terminal state.
  • LearningProposal requests owner review; LearningAdoption identifies the exact accepted change, regression, delivery, and measured effect.

Plans do not authorize. Receipts do not judge semantic sufficiency. Delivery receipts do not prove that validation selection was complete. Learning proposals do not edit policy.

Every edge binds the relevant subject and catalog-slice, policy, contract, and input digests.

The tower defines composition; this loop defines control over time:

Orient -> Bind -> Plan -> Admit -> Act -> Prove -> Decide
                                              |-> replan
                                              |-> deliver -> verify -> close
                                              |-> wait or escalate
                                              `-> stop
                                                     |
                                                   Learn

Orientation obtains the smallest context capable of exposing uncertainty. Binding freezes the intended outcome, exact subject, authority, criteria, and budgets. Planning names omissions, fallback, stop conditions, and the cheapest evidence capable of falsifying the current hypothesis. Admission checks the exact plan against current policy and pre-state. Decision either accepts, changes strategy, waits for named external state, escalates authority, or stops honestly.

A declared transient failure permits at most one same-input retry. A deterministic recurrence requires a changed hypothesis or strategy. A remote operation with unknown postcondition is observed and reconciled before any second write.

The target zero-context interface is one read-only, bounded projection. It may be a repository tool and optionally an MCP surface, but it cannot require MCP to function. It contains:

  • repository, workspace, worktree, revision, and dirty-input identity;
  • task/session, coordinator, worker, and run identity;
  • requested outcome, authority, budgets, and durable goal binding if any;
  • applicable instruction and owner-document paths with digests;
  • component, workspace, review owner, and classification slice;
  • candidate capabilities with effects, cost, dependencies, providers, and evidence maturity;
  • provider boot/incarnation ID, catalog ETag, desired/observed revisions, action-contract hashes, observation time, expiry, and unavailable reasons;
  • relevant checks and reusable evidence, not raw logs; and
  • provenance, observation time, freshness, completeness, truncation, and safe next discovery actions.

The capsule is a join over owner-local catalogs and observations. It stores no independent truth. A missing optional provider yields a structured unavailable field; it does not make the whole capsule fail.

An agent climbs this cost ladder only when existing evidence cannot answer the acceptance question:

  1. checked, cached metadata and narrow source reads;
  2. targeted static queries and reusable subject-bound receipts;
  3. narrow local builds and tests;
  4. broad or uncached validation;
  5. external reads and stochastic/model-assisted evaluation; and
  6. authorized remote mutation or destructive work.

Budgets inherit from repository defaults to task to plan to operation/worker. A child may narrow but never silently expand a hard bound. Reserve capacity for cancellation cleanup and final verification. Track context/input bytes, compute and target/workspace scope, elapsed time, output/log/artifact bytes, retention, retries, worker fan-out, concurrency, and cacheability. Use measured p50/p95 workloads to set numeric defaults.

Credentials, network access, history or remote writes, and destruction are non-fungible authority scopes, never spendable budget. Compatible Bazel work is batched. Context loads summaries and digests first, then full bodies, schemas, source, or logs only on demand. A global catalog change triggers cheap applicability reevaluation, not automatic reruns of unrelated evidence.

sanitized bounded friction event
  -> aggregation by stable signature and consequence
  -> LearningProposal with destination owner
  -> minimized regression or routing fixture
  -> destination-owner review
  -> one appropriate contract, policy, tool, test, or skill change
  -> normal validation and delivery
  -> LearningAdoption and regenerated evidence status
  -> recurrence and resource measurement

Raw transcripts, credentials, unreviewed runtime values, secret-bearing logs, personal information, and accidental local state never enter the promotion path. Ignored task-private out/<task>/ may temporarily contain secret-bearing material under restrictive access and cleanup, but that material is not tracked or imported as durable evidence. A global invariant is an exceptional owner-approved destination, not the automatic final rung of the sequence.

  • unknown means the system lacks a fact; it is not false, safe, or allowed.
  • unavailable names a provider or source that could not be observed.
  • stale means a once-valid observation no longer matches its applicability inputs.
  • partial and truncated bound what a result can prove.
  • Desired state and observed state are always separate fields.
  • Runtime observations identify boot/incarnation, catalog, desired and observed revisions, action contract, observation time, and expiry.
  • Provider lifecycle is explicit: loading, ready, degraded, failed, timed_out, draining, or disabled.
  • Shared mutable task, goal, and runtime state uses a cross-process lock or lease plus expected version/digest; atomic rename alone is not concurrency control.
  • Nested work uses one absolute deadline with cancellation and cleanup margin.
  • Failures carry phase, stable code/signature, subject, observed state, valid partial result, retry class, cost spent, redacted artifact references, and next safe action. Retry class is never, same-input-once, after-state-change, or requires-human.
  • Read-only discovery returns the useful safe subset with explicit gaps.
  • Effectful admission fails closed on unknown effects, authority, environment, subject, policy conflicts, or relevant stale state.
  • Secret-bearing raw output stays in task-private scratch and only a bounded allowlisted summary may cross into ordinary evidence.

Optimization is evaluated with representative zero-context tasks, not by file count or architectural novelty. Track at least:

  • task correctness and unsupported-claim rate;
  • unauthorized or incorrectly scoped mutation rate;
  • reads, tool calls, context bytes or tokens, and elapsed/resource cost before the first correct action;
  • redundant checks and exact evidence reuse rate;
  • steps and missing facts required to resume durable work;
  • stale, partial, and conflict detection accuracy;
  • provider startup and degraded-status latency; and
  • the rate at which repeated defects gain a regression, owner, delivery identity, and eventual retirement.
  • No hand-maintained central manifest duplicating owner-local facts.
  • No universal mega-skill or always-loaded copy of every procedure.
  • No mandatory daemon, database, vector store, or runtime extension for basic orientation and safe degradation.
  • No raw transcript ingestion, secret promotion, or automatic doctrine edits.
  • No inference of authority from selection, planning, receipts, ownership, or tool availability.
  • No durable goal requirement for a simple one-step task.
  • No broad //... validation or live model evaluation by default.
  • No physical repository reorganization merely to make the conceptual model look centralized.

4 - Repository agent-system roadmap

Remaining work ordered by observed task friction and evidence

Repository agent-system roadmap

This document records intentional future work. The current-state guide owns the supported interface summary; component documentation and executable tests establish implementation details. The architecture describes composition responsibilities. Historical phase plans and acceptance records remain in the immutable goals. A completed historical phase does not establish a current runtime guarantee.

Use representative question, edit, recovery, and delivery scenarios to compare the current workflow with a candidate. Keep source, instructions, fixture, model, observation method, and execution identity with each result. Measure task success, unauthorized actions, commands, context actually consumed, duration, and resume steps where the observer can establish them. Record unavailable measurements explicitly. Configuration validation and shorter documents do not establish behavioral improvement.

Local simulated delivery scenarios can exercise candidate selection and validation decisions without publishing anything. They do not prove forge integration, remote concurrency, or successful real publication. Use the owning delivery integration tests for their encoded cases, and distinguish those tests from model behavior.

Reduce repeated common-path instructions and load exceptional procedures only when their triggering condition occurs. Keep exact candidate, task ownership, authority, leases, recovery, and review completion requirements. Improve entrypoint capability detection and workspace-relative path handling before introducing another execution interface.

Acceptance requires measured task outcomes with no new critical boundary failures. A small exploratory comparison is useful evidence, not a universal performance claim. Retain useful diagnostics and regressions after clean runs; remove obsolete workarounds and completed tracking when their purpose expires.

Extend bounded offline context only with facts that have an identifiable owner and observation method. Prefer observed Git state and direct routes to applicable policy, owner documentation, build declarations, and explicit goal records. Never infer authorization or task-to-goal association from proximity, ownership, a catalog entry, or an available tool.

Check suggestions must explain their selection basis and uncovered scope. Nearest-package selection is not dependency analysis. Root configuration, build-graph changes, ignored paths, and nested workspaces can require explicit checks beyond the returned labels. Avoid accidental broad builds while keeping the mandatory repository quality and affected semantic checks.

Delivery preparation binds the candidate and publication expectations. The caller selects applicable validation. The delivery tool can execute that plan, record candidate-bound results, and carry them into explicitly requested publication. The manual publication path also remains supported. Neither a preparation receipt nor an asserted commit ID proves that tests ran. Broader evidence imports must specify their trust boundary and preserve caller responsibility for semantic sufficiency.

Reuse observations only while their relevant inputs remain unchanged. Reuse test evidence across a message-only amendment only when tree, configuration, toolchain, environment, and every other relevant input are stable. Rerun commit-sensitive or uncertain checks. A receipt alone never establishes reuse.

Acceptance requires representative edits to select sufficient checks, explain omissions, and invalidate evidence when a relevant input changes. Preserve cheap read-only discovery when optional providers are unavailable.

The configured coverage inventory is not a successful-run ledger. Extend routing scenarios across positive, adjacent-negative, inert-payload, exclusion, conflict, and composition cases when the corresponding skill is changed or a recurring failure demonstrates a gap.

Stronger aggregated evidence needs actual execution artifacts bound to the source, fixture, model or provider, and judge where applicable. Keep live stochastic evaluations manual or scheduled and separate from normal wildcard tests. Use isolated writable fixtures for Git, Bazel, forge, infrastructure, secret-handling, and runtime trajectories before making claims about them. Never reuse shared authentication in a mode that requires exclusive access while concurrent sessions are active.

Promote a repeated lesson only with an owner, minimized public reproducer, regression, supported contract, fallback, measured cost, delivered revision, and a reasoned retirement rule. A schema or proposal does not establish that this learning loop runs automatically.

Shared admission and control libraries have unit-test coverage. Production provider enforcement, process isolation, and runtime fault containment remain unverified. Build further runtime machinery only for an identified consumer whose required behavior and failure modes justify it.

For that consumer, test bounded status during a stuck extension, package deadlines, desired versus observed revision, cancellation and cleanup, cross-task storage isolation, and the actual filesystem, process, network, credential, and output boundaries. Trusted in-process code is not a security sandbox. A source contract cannot substitute for consumer integration evidence.

Keep bounded native and offline fallbacks available. A missing optional provider must produce an explicit unavailable result rather than preventing ordinary repository work.

  • Facts remain at their owning sources; generated views carry provenance and limits rather than becoming new mutation authorities.
  • Keep goals, delivery, release, review, and provider state separate. Add joins through typed references only when a real workflow needs them.
  • Do not add a mandatory daemon, database, vector store, network call, or central orchestrator for basic orientation.
  • Do not relocate components merely to match conceptual diagrams.
  • Keep reviewed evidence bounded and free of credentials and personal data.
  • Use workspace goals for temporary coordination and owner-local maintained records only when durable project history is justified.
  • Choose the least costly check that answers acceptance; broad audits remain separately scoped work.