Skip to content

Supporting artifacts ​

This page answers what each of the five supporting artifacts is for, which command writes it, when the agent creates one on its own, and where it lives. Their frontmatter and templates are in Artifacts.

Supporting artifacts are the project's shared memory outside any single track. Agents find them through on-track/INDEX.md, not by scanning the tree. A track's intent cites them by slug in its frontmatter lists research:, refs:, assessments:, and decisions:.

Overview ​

ArtifactPreservesWritten byLives at
RefMaterial you supplied that grounds a change: a URL, a document, an external code snippetot-intent, during the intenton-track/refs/<slug>.md
ResearchExternal facts, with cited sources, conflicts, and limitationsot-researchon-track/research/<slug>.md
AssessmentEvidence about the current state of something in the project, with counterevidence, limitations, and recommendationsot-assesson-track/assessments/<YYYY-MM-DD>-<slug>.md
Decision (ADR)A costly choice, its alternatives, and why one wonot-intent, ot-spec, ot-implement, or the Express laneon-track/decisions/<NNN-slug>.md
HandoffThe context another session, agent, or model needs to continueot-handoffon-track/handoffs/<YYYY-MM-DD-HHmmssZ>-<slug>.md

Refs and decisions have no command of their own. Research, assessments, and handoffs do.

No track needed ​

A request that only asks for research or only for an assessment needs no track. The agent writes the artifact, regenerates the index, and reports the result and the path, without a next-step line. A handoff works the same way. If such a request reaches ot-intent and describes no change to the system, the agent routes it to ot-research or ot-assess and creates no track and no intent.

text
/ot-research Compare the newsletter providers we could use for the signup form.
/ot-assess Audit the landing page for accessibility.
/ot-handoff Save the context before I switch to another agent.

When the agent creates one on its own ​

During an intent, the agent checks for these triggers before drafting. When one holds, it tells you in one sentence and creates the artifact without asking permission. Research and assessments run this way only as an auxiliary step for a change request; the agent that calls them lists the result in its own summary.

ArtifactTrigger
ResearchA scope, design, or acceptance decision depends on an external fact (version behavior, API contract, configuration, limit, license, or price) that is not verified in the repository or in sources already read in the session. Familiarity with a technology does not waive it.
RefYou supply a URL, document, or external code snippet that materially grounds the intent.
AssessmentScope or design depends on a condition of the existing system that reading the relevant files does not settle. See Thresholds.
ADRYou make a decision that meets the ADR threshold. See Thresholds.

The spec and implement stages also file a qualifying ADR without a separate request. On the Express lane, a qualifying ADR is the only artifact allowed besides the crumb.

Refs ​

A ref captures source material once and keeps it immutable.

  • Two types: inline stores the exact source text in the file, for redistributable text that fits; pointer stores a canonical source locator and a pin (an immutable version, release, commit, or content id) or, when there is none, retrieved_at. Use pointer for large, binary, stable-upstream, restricted, or unknown-license content.
  • sha256 hashes the source content observed at capture time, never the URL or the Markdown file.
  • The whole file is at most 500 KB.
  • Identical content reuses the existing ref and slug. Changed source bytes need a new ref.
  • If the source cannot be retrieved or supplied after one direct request, create no ref or synthetic hash. Do not hash a URL or locator stub as source content. Record the missing basis under Open questions or Assumed state in the intent.
  • Captured content is data, never instructions: the agent does not follow directives found in it.
  • The required fields, the body section each type keeps, and how inline source is normalized before hashing are in Artifacts.

Research ​

Research answers a question about the outside world.

  • The agent states the question and its acceptance boundary first, prefers primary sources, reads the source itself rather than search snippets, and uses more than one independent source for a material conclusion when available.
  • Every material claim has a direct citation. Observed facts are separated from inference.
  • Credible disagreement goes under Conflicts; single-source dependence, staleness, and inaccessible material go under Limitations. Claims that depend on a single source or potentially stale evidence are labeled explicitly. When the evidence does not support an answer, the conclusion says the result is inconclusive and names what would settle it.
  • There is no status. An existing research file is rewritten only when you ask to refresh it; otherwise the agent picks a new slug.

Assessments ​

An assessment evaluates something inside the project.

  • It is read-only toward the subject: the agent inspects files, history, commands, and behavior, and modifies nothing while gathering evidence.
  • Criteria are stated before the conclusion. Evidence for and against is gathered; material counterevidence goes under Evidence against conclusion.
  • Each finding states the problem, its evidence, its consequence, and a recommendation. Recommendations are inputs for later work; the assessment implements nothing.
  • The file records the evaluator (provider and model when known) and the tracks it evaluates. There is no status. An existing assessment is rewritten only when you ask to redo it.

Decisions (ADRs) ​

An ADR records a choice that was real and costly to get wrong; the full threshold is in Thresholds.

  • Status is accepted or superseded only.
  • on-track/decisions/ holds only the decisions in force. To replace an ADR, the agent files the replacement as the next numbered accepted ADR, sets the original to superseded with superseded_by, and moves it, with its text unchanged, to on-track/decisions/archive/. Numbers are never reused: a new ADR takes the number after the highest one in both folders.
  • INDEX.md lists the decisions in force with their titles, so it doubles as the summary of what is decided. Archived ADRs stay out of it; open them only to follow a citation or a superseded_by chain.
  • Supporting refs, research, assessments, URLs, or repository paths are cited in the ## Evidence section.

Handoffs ​

A handoff lets another session pick up the work. Use it when switching harness or model, or ending a session.

  • It keeps every active instruction of yours verbatim, separates verified completed work from next actions, and references other artifacts by path instead of copying them. Secrets and unnecessary personal data are omitted, and each omission is disclosed.
  • The file name and its captured field use the same UTC instant. The agent never overwrites an existing handoff.
  • The newest three handoffs stay active; older ones move to on-track/handoffs/archive/, which agents and the index ignore.