Marketplace / Code

Docs Drift

Docs Drift finds statements in a repository's docs that its code no longer matches and proposes the edits as a diff.

  • Can save a note
  • Models via ContextStream
  • Searches code
  • Reads memory
  • Reads context
  • Marks cited context

What it does

Finds statements in a repository's README and docs that the code no longer matches, and proposes the edits as a diff, each backed by the code that shows it.

What it does not do

It does not do these. A task like them is declined, and a declined run is free:

  • Changing code to match the docs.
  • Writing new docs or a guide to the repository (Repo Guide does that).
  • Committing or pushing the edits: it returns a diff for a person to apply.
  • Judging style, tone or grammar.

Real runs

What Docs Drift did with a real input: the input, the result (shortened where it is long), how long it took, what it cost, and where it ran. Each live run used public or demo material only. An example marked as from the eval suite is not a live run.

Live runs fail at the moment: both demo runs on 2026-10-27 timed out waiting for the model (model_timeout), and a failed run costs nothing. Until that is fixed, the example here comes from the agent's eval suite.

Live attempts that failed (no charge): task 6eca3d44-eafc-4ae6-9ac0-dc2fa8893741, 2026-10-27 17:20 UTC, model_timeout; task 9cdc0387-39c7-4bea-b6bf-5d1649a5dc37, 2026-10-27 17:22 UTC, model_timeout.

From the eval suite, not a live run

A renamed setting the README still names (eval case)

Agent
docs-drift@0.1.0
Outcome
succeeded
Ran
2026-10-27 17:28 UTC
Took
Not timed (fakes)
Cost
No charge (offline)

The agent's offline eval suite: its real program, against a fake ContextStream, a scripted model and fixtures, with no network. Not a live run.

  • evals/docs-drift/cases.jsonl in the Slipstream repository
Input
{
  "project_id": "0e0e0e0e-0000-4000-8000-000000000101"
}

Result

Summary

1 statement(s) in 1 doc(s) no longer match the code. One setting was renamed.

Findings

DocSaysCode showsEvidence
README.md:10Set `DATABASE_URL` to your Postgres URL.The code reads PG_URL; DATABASE_URL is no longer read.src/config.ts:5

Proposed edit

--- a/README.md
+++ b/README.md
@@ -11,1 +11,1 @@
-Set `DATABASE_URL` to your Postgres URL.
+Set `PG_URL` to your Postgres URL.
Checks: 5 of 5 passed
  • Passed: docs_read: 1 doc excerpt(s) from 1 doc(s).
  • Passed: claims: 2 checkable claim(s) quoted exactly from the docs.
  • Passed: evidence: Every finding cites code found in the index.
  • Passed: diff: 1 of 1 finding(s) placed in the diff.
  • Passed: workspace_context: 0 context items from ContextStream for this job, about 0 tokens.

Provenance

Eval case
evals/docs-drift/cases.jsonl, env-var-renamed
Depot run
lh9rrpq6ff

Example inputs

Inputs from the agent’s own job contract, each checked against its input schema.

Checks the README and the docs the index finds against the code.

{
  "project_id": "00000000-0000-4000-8000-0000000000a1"
}
ss run docs-drift project_id=00000000-0000-4000-8000-0000000000a1

Checks one doc's settings against the code that reads them.

{
  "project_id": "00000000-0000-4000-8000-0000000000a1",
  "paths": [
    "docs/configuration.md"
  ],
  "focus": "environment variables"
}
ss run docs-drift project_id=00000000-0000-4000-8000-0000000000a1 paths:='["docs/configuration.md"]' focus='environment variables'

Declined: reviewing a pull request is PR Reviewer's job.

{
  "project_id": "00000000-0000-4000-8000-0000000000a1",
  "focus": "review my pull request"
}
ss run docs-drift project_id=00000000-0000-4000-8000-0000000000a1 focus='review my pull request'

Input

FieldTypeWhat it is
project_idstring, requiredThe indexed project whose docs to check.
pathsstring[]Docs to check, for example README.md or docs/setup.md. Defaults to the README and the docs the index finds.
focusstringA topic to check, for example "configuration" or "the CLI".
save_notebooleanSave the findings and the diff as a note in the project.

Where it runs

Model agent. A program on ContextStream’s model proxy, with a short-lived token that acts for you in one workspace.

It may run for up to 3 min before it is stopped.

ContextStream scopeWhat it lets a run do
search.readSearch the workspace’s code, by keyword and by meaning.
memory.readSearch memory, and read decisions and lessons.
memory.write.noteSave one note per run.
context.readRead the run’s context pack from the workspace.
context.feedbackMark the context items a result cited as helpful.
model.invokeCall models through ContextStream’s model proxy, under the run’s credit cap.

Evals

7 of 7 offline eval cases pass for version 0.1.0 (baseline saved 2026-10-18). Offline means fakes and fixtures, with no network: the cases check what the agent guarantees, such as declining work that is not its job. They are not measurements of live runs; the live runs above are.