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.
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
| Doc | Says | Code shows | Evidence |
|---|
| README.md:10 | Set `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'
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 scope | What it lets a run do |
|---|
search.read | Search the workspace’s code, by keyword and by meaning. |
|---|
memory.read | Search memory, and read decisions and lessons. |
|---|
memory.write.note | Save one note per run. |
|---|
context.read | Read the run’s context pack from the workspace. |
|---|
context.feedback | Mark the context items a result cited as helpful. |
|---|
model.invoke | Call 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.