Agentic Pattern Libraryby Vikas Goyal
← All patterns
43

Artifact Ownership

Also known as: ownership labels, human/AI artifact split, decision rights for AI artifacts

Each artifact is marked developer-owned, AI-drafted or joint, so everyone knows who decides what.

TrackBuilding with coding agents FamilyWorking agreements Maturity Horizon ChangesDecisionCoordination
01

Problem

When a coding agent can edit everything, it’s unclear who decides what. The agent rewrites a spec the developer cared about, edits test expectations to make them pass, or changes a README section a teammate owns. Over time nobody knows which files reflect human decisions and which are the agent’s best guess.

  • Some artifacts encode decisions only a person should make.
  • Agents are fast and useful at drafting almost everything.
  • Ownership that isn’t written down is invisible to agents.
  • Too many locks slow the agent down and frustrate developers.
02

Solution

Give every important artifact one of three ownership labels and write the mapping where the agent will see it, usually in the Project Memory File. Developer-owned artifacts, like the spec, acceptance tests and security config, can be changed by the agent only as a proposal the developer approves. AI-drafted artifacts, like implementation code, docs drafts and boilerplate, can be changed freely by the agent and are reviewed in PRs. Joint artifacts, like the memory file and architecture notes, are edited by both, with the agent explaining its edits. Enforce the most important labels with tooling, such as code owners or protected paths.

03

Diagram

Developer-ownedagent proposes only mvp-spec.md tests/acceptance/ config/security.yml protected by code owners AI-draftedagent changes freely src/ unit tests doc drafts reviewed in PRs Jointboth edit CLAUDE.md docs/architecture.md agent explains each edit

Three lanes, three different rules. The labels are written where the agent reads them, and enforced in tooling for the files that matter most.

04

When to use

Use it when

  • Agents have broad write access to the repo
  • Some files encode business decisions, contracts or security choices
  • Several people and agents share the same codebase
  • Agents have changed tests or specs to make their work "pass"

Avoid it when

  • Solo throwaway projects where you review everything anyway
  • When the labels would cover every file; then nothing stands out
  • As a replacement for review; ownership complements PRs
05

Trade-offs

Latency Proposals on owned files wait for approval
Cost A short mapping plus code-owner rules
Complexity Labels, documentation, light enforcement
Reliability Human decisions can't be silently overwritten

Gains

  • Decisions stay with the people accountable for them
  • Agents can move fast on everything else
  • Tests and specs stay trustworthy as checks on agent work

Costs

  • Some friction when an owned file genuinely needs updating
  • Labels need upkeep as the repo changes
  • Gray areas need judgment, not just rules
06

Worked example

Scenario
The Linkwatch repo labels its artifacts in CLAUDE.md, with code-owner rules on the developer-owned ones.
  1. Developer-ownedmvp-spec.md, tests/acceptance/ and config/security.yml. The agent may propose changes but not commit them.
  2. AI-draftedEverything in src/, unit tests and draft docs. The agent changes these freely, and they’re reviewed in PRs.
  3. JointCLAUDE.md and docs/architecture.md. Both edit them; the agent explains each change in its PR.
  4. Moment of truthIn MVP2 an acceptance test fails after a change. Instead of editing the test, the agent opens a proposal: “the spec says alerts within 5 minutes; the new retry logic makes it 6. Change the spec or the retry?”
  5. DeveloperKeeps the 5-minute requirement and asks for a shorter retry delay. The agent fixes the code, and the test stays as the developer wrote it.
07

Failure modes

FailureSymptomMitigation
Agent edits the refereeTests or specs changed so the agent's work passesAcceptance tests and specs developer-owned and protected
Invisible labelsOwnership known to people but never written downMapping in the memory file plus code-owner rules
Everything lockedAgent stalls on approvals for trivial editsKeep developer-owned to the few files that encode decisions
Joint means nobodyJoint files drift with unexplained changesAgent explains every edit to a joint file in its PR