Skip to content

chore(missing_docs): audit bookkeeping for the 2026-08-24 drift-watch run - #614

Merged
rachaelrenk merged 4 commits into
mainfrom
oz/missing-docs-bookkeeping-2026-08-24
Aug 25, 2026
Merged

chore(missing_docs): audit bookkeeping for the 2026-08-24 drift-watch run#614
rachaelrenk merged 4 commits into
mainfrom
oz/missing-docs-bookkeeping-2026-08-24

Conversation

@hongyi-chen

@hongyi-chen hongyi-chen commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

Bookkeeping companion to the missing_docs drift-watch run of 2026-08-24: surface-map entries for the two newly detected Factory REST routes, a refreshed surface snapshot, and two fixes to the staleness audit that were producing permanent false positives.

The run found no undocumented features, CLI commands, slash commands, or settings, and no map-hygiene, stale-doc-reference, unlisted-page, or changelog-verification findings. No feature doc PRs accompany this one. The only other output is #613, which syncs the OpenAPI spec.

Changes

references/feature_surface_map.md

Two new /factory routes appeared in warp-server since the last snapshot. Both are mapped internal, matching every other route in that namespace:

  • POST /factory/automations/{id}/run — fires an automation's cron trigger immediately; marked x-internal: true in warp-server's canonical spec, so its own publish filter strips it.
  • POST /factory/{uid}/runs — dispatches a run to a factory. This one is not marked x-internal upstream, so it needed a separate rationale: it stays out of the docs copy because the sync-openapi-spec policy excludes the entire /factory namespace (factory in EXCLUDED_TAGS plus the /factory path prefix) while the Factory REST API is unreleased. The map comment records that distinction and points at the exclusion to revisit when the API ships.

Neither is hand-documented: warp-server is private, and per the skill's "Public vs. private surfaces" guardrail an endpoint absent from the released spec is treated as not-yet-public.

references/surface_snapshot.json

Regenerated with --update-snapshot. Only those two routes changed.

scripts/audit_docs.py — staleness false positives

The staleness audit reported 29 findings, none of them actionable. Two causes were mechanical and are fixed here; the rest are triaged below.

Link and image destinations were matched as prose. strip_code_spans removed code spans so CLI examples wouldn't trip terminology rules, but left ](...) targets in place. Every single agent-mode hit was a URL slug or an asset filename — ](/knowledge-and-collaboration/warp-drive/agent-mode-context/), ](../../assets/terminal/agent-mode-suggestion-1.png). Neither is fixable wording: renaming a published page to chase a terminology change breaks inbound links, and image filenames are not reader-visible. The [...] label is left alone, since that half is prose. Removes 5 findings, two files entirely.

The generated telemetry table was matched as prose. All three privacy.mdx hits (warp ai, ai command, ambient agent) were inside the exhaustive telemetry table, which the release_updates skill's update_telemetry.py regenerates wholesale from the client's event definitions. Those strings are code-derived; editing them here is reverted on the next release, and the real fix is upstream in the event definition. The audit now stops at the ### Exhaustive telemetry table heading, mirroring the same constant that script uses. Removes 1 finding.

Net: 29 → 23 findings, with the remainder being genuine style-guide questions rather than audit noise.

Deferred findings

Nothing below was silently dropped — each was checked against source and left for the owning skill or a human decision.

Deferred to style_lint (23 low-severity terminology findings)

The missing_docs skill delegates pure wording to style_lint, and each of these is a wording judgement rather than a docs gap. Grouped by term:

  • ai credits (10 files) — needs a style-guide decision first. AGENTS.md line 831 says "credits (lowercase, not 'AI credits')" and line 837 says to drop the "AI" prefix throughout, but line 833 uses "AI credits" itself when defining compute credits: "Used alongside AI credits and platform credits when describing credit types." The docs consistently follow the second reading, naming the inference bucket in the three-bucket model (AI / compute / platform). AGENTS.md contradicts itself here; resolving that is a style-guide change, not an audit fix, so the rule was left as written.
  • warp terminal (7 files) — the rule already permits this "unless distinguishing," and every hit is the distinguishing case: client vs. backend in the enterprise architecture diagram, the local terminal vs. the cloud platform on the harness pages, and the product name in the enterprise product list. The one arguable hit is terminal/more-features/index.mdx ("Explore additional Warp terminal features").
  • warp ai (3 files)faqs.mdx is a deliberate historical reference ("What happened to the old Warp AI chat panel?"). The other two are the phrase "Warp AI credits," which folds into the ai credits decision above.
  • ai command (1 file) — "AI Command Search" is a live feature name, still present in the client source (app/src/terminal/input.rs, app/src/settings/input.rs, app/src/tips/tip_view.rs).
  • generate command (1 file) — a word-boundary artifact: the page says "generate command suggestions," a verb phrase, and Generate still ships (the page is already titled "Generate (Legacy)"). The rule was left intact rather than narrowed, since weakening it to kill one benign match risks missing a real one.

Deferred elsewhere

  • warp-server ownership gap. scripts/suggest_reviewers.py resolved no owner for public_api/openapi.yaml, router/handlers/public_api/factories.go, or router/handlers/public_api/factory_automations.go — warp-server's .github/CODEOWNERS and .github/STAKEHOLDERS have no rule covering public_api/ or router/handlers/public_api/. Adding one there (a job for the sync-stakeholders skill) would let future spec syncs route themselves.

Validation

  • test_audit_docs.py → 12 tests, OK (including the accounting-totality and snapshot-roundtrip checks)
  • test_suggest_reviewers.py → 15 tests, OK
  • Re-ran the full audit with --diff: exit 0, api_routes findings 0 (was 2), surface_changes 0 (was 2), unaccounted: none
  • npm run build → exit 0

Reviewers

No reviewer assigned. The docs repo has no CODEOWNERS, and recent history on .agents/skills/missing_docs/ is almost entirely the account opening this PR, so there is no second owner to route to automatically.

Unverified claims

None — this PR adds no page content. Every claim about route visibility was checked against warp-server/public_api/openapi.yaml and public-openapi-filter.yaml, and every claim about a live feature name against the public warpdotdev/warp checkout.

Co-Authored-By: Oz oz-agent@warp.dev
Co-Authored-By: Warp agent@warp.dev

…aleness false positives

Map POST /factory/{uid}/runs and POST /factory/automations/{id}/run as
internal, regenerate the surface snapshot, and stop the staleness audit
from matching link/image destinations and the generated telemetry table.

Co-Authored-By: Oz <oz-agent@warp.dev>
Co-Authored-By: Warp <agent@warp.dev>
@hongyi-chen hongyi-chen added the documentation Improvements or additions to documentation label Aug 24, 2026
@vercel

vercel Bot commented Aug 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview Aug 25, 2026 7:25pm

Request Review

@cla-bot cla-bot Bot added the cla-signed label Aug 24, 2026

Copy link
Copy Markdown
Collaborator Author

This PR was generated with Warp.

Comment @warp-agent on this PR to send it follow-up work.

@warp-factories

Copy link
Copy Markdown
Contributor

Your GitHub account is not connected to Warp. Connect it here.

@rachaelrenk
rachaelrenk marked this pull request as ready for review August 25, 2026 19:00
@warp-for-oss

warp-for-oss Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

@rachaelrenk

I'm starting a first review of this pull request.

You can view the conversation on Warp.

I completed the review and no human review was requested for this pull request.

Comment /warp-agent-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@warp-for-oss warp-for-oss Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overview

This PR updates missing-docs audit bookkeeping for two Factory API surfaces and adjusts the staleness audit to ignore non-prose link targets and the generated telemetry table. I found one correctness issue in the telemetry-table exclusion that can suppress stale-terminology findings outside the intended page.

Concerns

  • The generated telemetry table skip is applied to every document, so any page with the same heading can hide stale terms below it instead of limiting the exception to the privacy telemetry table.

Verdict

Found: 0 critical, 1 important, 0 suggestions

Request changes

Comment /warp-agent-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Comment thread .agents/skills/missing_docs/scripts/audit_docs.py Outdated
rachaelrenk and others added 2 commits August 25, 2026 13:21
Co-authored-by: warp-for-oss[bot] <277970191+warp-for-oss[bot]@users.noreply.github.com>
@rachaelrenk
rachaelrenk merged commit 7ee6815 into main Aug 25, 2026
8 checks passed
@rachaelrenk
rachaelrenk deleted the oz/missing-docs-bookkeeping-2026-08-24 branch August 25, 2026 19:27
rachaelrenk added a commit that referenced this pull request Aug 25, 2026
… titles

The convention I introduced, "missing_docs bookkeeping: <version>", quietly
contradicted create_pr's existing rule that docs PR titles carry a prefix. It
also invented a third naming shape in a change whose whole point is that two
competing shapes are what let #614 and #624 miss each other.

"chore(missing_docs): bookkeeping for <version>" matches the shape #614 already
used, matches the repo's conventional-commit practice, and still carries both
terms the documented search keys on -- verified against #614, whose title has
exactly this form and which the search finds.

Co-Authored-By: Warp <agent@warp.dev>
rachaelrenk added a commit that referenced this pull request Aug 25, 2026
#614 landed the same two /factory map entries this branch adds, so the surface
map conflicted. Resolved in favour of main: #614 placed each route beside its
logical neighbours with a comment explaining why it is internal, which is what
the skill asks for. This branch had both as bare uncommented lines in one spot.
Dropping the duplicates leaves each route mapped exactly once.

The snapshot auto-merged cleanly and needed no regeneration: this branch's
regen is a strict superset of #614's. Both contain the two /factory route
additions; this one additionally records CtrlCCancelsThirdPartyHarness going
dogfood -> ga and OpenWarpNewSettingsModes being removed. Verified the merged
snapshot is byte-identical to this branch's original.

Both of those flag changes were already triaged here -- CtrlCCancelsThirdPartyHarness
has a map ignore entry explaining it has no setting, menu, or CLI surface, and
OpenWarpNewSettingsModes was pruned from the map. Neither is silently swallowed
by the advancing snapshot. The ledger anby the advancing snapshot. The ledger anby the advancing snapshot. The ledger-Authored-By: Warp <agent@warp.dev>
rachaelrenk added a commit that referenced this pull request Aug 25, 2026
* missing_docs: keep at most one bookkeeping PR open

The PR strategy said a bookkeeping PR "is independently mergeable in any
order." That is true against feature PRs, which is the case it was written for.
It is false against a second bookkeeping PR: both edit feature_surface_map.md
and surface_snapshot.json, and the snapshot is a wholesale regen, so a conflict
between two of them cannot be resolved by hand at all -- it has to be
regenerated on the merged tree.

#614 and #624 are that collision, sitting open right now. Two drift-watch runs
a day apart independently triaged the same two /factory routes, reached the
same Gate 0 verdict, and each added the same two map lines. Neither looked for
the other's PR, and they used different branch-naming schemes, so there was no
way to find one from the other. Run #2's ledger eway to find one from the other. Run #2's ledger eway to find one from the other. Run #2's ledger eway to find one from the other. Run #2's ledger eway to find one from the other. Run #2's ledgeran
stays rare. Changes:

- Scope the independence claim to feature PRs, and add the rule: check for an
  open bookkeeping PR first, extend that branch, and re-run --commit and
  --update-snapshot there so the marker and snapshot stay one regen covering
  every release the PR carries. Wait for the merge instead when it is already
  approved.
- Standardize the title (missing_docs bookkeeping: <version>) and branch
  (missing-docs/boo  (missing-docs/boo  (mise search  (missing-docs/boo  (missing-docs/boo  (mise search  (missing-docs/boo  (miste their inconsistent
  titles.
- Triage now reads the ledger and map as they stand on any open bookkeeping PR,
  not just on main. A verdict in an unmerged PR is still a verdict.
- Carry both into drift-watch step 8 and the scheduled-agent prompt, which is
  the only copy a cron run is guaranteed to read.

Co-Authored-By: Warp <agent@warp.dev>

* missing_docs: use the repo's existing prefix style for bookkeeping PR titles

The convention I introduced, "missing_docs bookkeeping: <version>", quietly
contradicted create_pr's existing rule that docs PR titles carry a prefix. It
also invented a third naming shape in a change whose whole point is that two
competing shapes are what let #614 and #624 miss each other.

"chore(missing_docs): bookkeeping for <version>" matches the shape #614 already
used, matches the repo's conventional-commit practice, and still carries both
terms the documented search keys on -- verified against #614, whose title has
exactly this form and which the search finds.

Co-Authored-By: Warp <agent@warp.dev>

* missing_docs: restrict bookkeeping-PR search to avoid self-match

The gh pr list --search "missing_docs bookkeeping in:title" query ANDs
the two words anywhere in the title, so it also matches this rule-only
PR's own title ("...keep at most one bookkeeping PR open"). The next
drift-watch run would then check out and extend this PR's branch
instead of a real bookkeeping PR.

Restrict the search to the quoted "bookkeeping for" phrase, which
matches the canonical and legacy bookkeeping-PR titles but not this
PR's title, and add reviewDecision to the output so the already-
approved exception can be applied without a second query. Apply the
same corrected query to the recommended scheduled-agent prompt.

Co-Authored-By: Warp <agent@warp.dev>

---------

Co-authored-by: Warp <agent@warp.dev>
Co-authored-by: warp-agent-staging[bot] <240773466+warp-agent-staging[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants