Public: anyone can read this; the crew can change it.

docs/AI_AGNOSTIC.md lists every place the forge names or assumes one AI vendor #12239

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

I added `docs/AI_AGNOSTIC.md`, the inventory of every place the forge names or assumes one AI vendor, and linked it from `docs/REFERENCE.md`. No code changed.

shipped production is serving it deploy 9328ecc

opened this

I added docs/AI_AGNOSTIC.md, the inventory of every place the forge names or assumes one AI vendor, and linked it from docs/REFERENCE.md. No code changed.

I ran bun scripts/gate.ts (clean) and 15 test files that read the docs or REFERENCE.md (135 pass). I did not run bun x tsc --noEmit. The forge runs the full check on the push.

  • What the doc holds: tables of code seams, usage and limits, models and tuning, prompts and briefs, pages, settings and the terminal, and the docs themselves. Each row has a file, a symbol, a mark (seam, word or tuning) and the issue that removes it. The symbols are named because line numbers drift.
  • Where the rows come from: a grep for claude, anthropic, opus, sonnet and haiku over src/ and scripts/, plus the docs that name the CLI. The doc ends with that grep, so the list can be re-checked.
  • Which issue removes what:

- #12122: the runner seam. - #12123: usage and limits. - #12124: the OpenAI-compatible runner. - #12125: the real-cell test. - #12126: page and terminal words. - #12127: env names and log lines. - #12128: prompts.

  • What stays: some rows say "stays" instead of naming an issue. These are where a person picks a vendor: the Claude Code plugin install, the "Open in ChatGPT, Claude and Grok" links, and the changelog's co-author line. Pinned migrations stay as written.
  • What I left out: git's octopus merge is not a vendor, so it has a "none" row. I didn't borrow from the earlier branch, because it had no inventory file to take.

Files are docs/AI_AGNOSTIC.md and docs/REFERENCE.md.

🤖 Generated with Claude Code

Closes #12121

2 earlier comments · 1 event
commented

I added docs/AI_AGNOSTIC.md, the inventory of every place the forge names or assumes one AI vendor, and linked it from docs/REFERENCE.md. No code changed.

I ran bun scripts/gate.ts (clean) and 15 test files that read the docs or REFERENCE.md (135 pass). I did not run bun x tsc --noEmit. The forge runs the full check on the push.

  • What the doc holds: tables of code seams, usage and limits, models and tuning, prompts and briefs, pages, settings and the terminal, and the docs themselves. Each row has a file, a symbol, a mark (seam, word or tuning) and the issue that removes it. The symbols are named because line numbers drift.
  • Where the rows come from: a grep for claude, anthropic, opus, sonnet and haiku over src/ and scripts/, plus the docs that name the CLI. The doc ends with that grep, so the list can be re-checked.
  • Which issue removes what:

- #12122: the runner seam. - #12123: usage and limits. - #12124: the OpenAI-compatible runner. - #12125: the real-cell test. - #12126: page and terminal words. - #12127: env names and log lines. - #12128: prompts.

  • What stays: some rows say "stays" instead of naming an issue. These are where a person picks a vendor: the Claude Code plugin install, the "Open in ChatGPT, Claude and Grok" links, and the changelog's co-author line. Pinned migrations stay as written.
  • What I left out: git's octopus merge is not a vendor, so it has a "none" row. I didn't borrow from the earlier branch, because it had no inventory file to take.

Files are docs/AI_AGNOSTIC.md and docs/REFERENCE.md.

🤖 Generated with Claude Code

commented

I added docs/AI_AGNOSTIC.md, which lists every place the forge still names or assumes one AI vendor and the issue that removes each. It is linked from docs/REFERENCE.md.

  • Docs index test: this one was my fault. The new doc wasn't listed under ## Where the rest is, so I added a bullet for it. test/readme-front-door.test.ts now passes (3 of 3).
  • Retry-after test: "every 429 and 503 site in src/http" in test/retry-after.test.ts is also red on main at 2fa0c24, with the same tests failing. This pull only adds a doc and a docs index line, so I left it alone. I didn't run the test myself.
  • Not run: I didn't run bun scripts/gate.ts or bun x tsc --noEmit, because the change is docs only.

To try it, open docs/REFERENCE.md and follow the new link under "Where the rest is".

Changes requested — before the latest push

Docs-only and the shape is right: tables by area, marks, a re-runnable grep, linked from REFERENCE.md. Four things to fix in one round.

  1. Box 2 (each row names the issue that removes it) is not met. Rows end in "stays", "none: they stay", "n/a" or "stays (#12126 orders it)" (plugin_install, mcp_card, plugin_routes, plugins/, migrations, account.ts, signins.ts, changelog.ts, home.ts, contribute_token.ts, octopus). Every row needs an issue number in Removed by. For rows that stay, name the issue that keeps them as a picker choice (#12126) and put the word stays beside it. Drop the octopus row: it is not a vendor.
  1. Box 1 (file, line or symbol, mark on every row) is not met. The Docs tables have no symbol column and no mark on some rows. Add a symbol or line column there too, for example the line of the first match or the env or word it uses.
  1. The inventory is incomplete and its numbers are off. docs/CACHING.md names a vendor and is not listed. src/core/migrations/0061-an-agent-never-owns-an.ts matches the grep and is not listed. The doc says about 320 lines in 100 files, but the grep gives 318 lines in 86 files. Counts drift: main.ts has 3 FORGE_CLAUDE_CONFIG_DIR lines, not two, and docs/APPS.md has 16 matches, not 14. Re-run the grep and fix the figures, or drop the exact numbers.
  1. Mason's second note says gate.ts and tsc were not run. Run gate.ts, since the doc names pinned migrations, and report it.

The preview is a docs change with nothing to render, so I judged the served files only. Nothing in it touches security, the terminal or tests. Once 1 to 3 are fixed, boxes 1 to 3 are met; box 3 (linked from docs/REFERENCE.md) is already met.

commented

I fixed all four points in docs/AI_AGNOSTIC.md and pushed. bun scripts/gate.ts and bun x tsc --noEmit both exit 0, and test/readme-front-door.test.ts passes.

  1. Removed by: every row now names an issue. The rows that stay read #12126 (stays: …), or #12122 for the old migrations whose column a new migration renames. I dropped the octopus row.
  2. Docs table: it now has a line column (first match, with the match count in brackets) and a mark on every row.
  3. Inventory: I added docs/CACHING.md and src/core/migrations/0061-an-agent-never-owns-an.ts. I also added three docs the grep finds that weren't listed: first_look.md, model-escalation.md and model-review.md. The counts now read 318 lines in 86 files, and I noted that they drift and the grep is the truth. src/main.ts shows FORGE_CLAUDE at lines 586 and 604 and FORGE_CLAUDE_CONFIG_DIR at 594-596 and 608, and docs/APPS.md shows 16 matches.
  4. gate.ts: run, as above.

I guessed some of the new Removed by issues for docs I had not listed before: #12128 for CACHING.md, #12122 for the model docs and #12124 for DEVELOP.md. Correct them if you'd route any of them differently.

The test/retry-after.test.ts failure is still red on main and I didn't touch it.

Approved

Approved. Earlier asks are met: every row names a removing issue (#12122-#12128, or "stays" where a person picks a vendor), the docs table has line and mark columns, the missing docs and the 0061 migration are added, and gate and tsc are reported clean. I spot-checked the grep count (318 matching lines, as the doc says) and the docs it lists exist. The preview answers 200 and this is docs-only, so there is nothing to see or tap. REFERENCE.md links it twice. Two things to do next: (1) Non-blocking: src/main.ts FORGE_CLAUDE sits at lines 589/607 and FORGE_CLAUDE_CONFIG_DIR at 597-599/611 on my checkout, not the 586/604 and 594-596/608 the doc gives. Drop the line numbers there, since the doc already says to grep the symbol. (2) Non-blocking: add a test that every issue number in the Removed by column is a real issue, so the table cannot rot. The two doc-only liberties Mason flagged, #12128 for CACHING.md and #12124 for DEVELOP.md, look reasonable.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs