You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
test(docs): a repo path named in inline code must exist on disk #1403
Markdown links in the README are caught when they rot; repo paths written as inline code are not. The README rewrite (#1385, merged e615c566) already carries one:
README.md:118
0.2.0-rc.2 is the DeepSeek Harness release FlyBot is built and tested against — the same version dev/harness
There is no dev/harness in the tree: repo-root dev/ holds only interop and live-e2e, and the real path is core/dev/harness — core/dev/harness/package.json is the file that actually pins @deepseek-ai/dsh: 0.2.0-rc.2. The sentence is true; the path is one directory short. Nothing catches it, so it will sit there until someone tries to cd into it.
Proposal
One test in core/test/ (~40 lines). core/ is our module; this does not belong in .github/scripts.
Take each backticked token that looks like a repo path (contains /, no whitespace).
Skip: fenced code blocks, inline URLs, globs (*, **), placeholders (<...>, {...}), and tokens that are not repo-relative (e.g. owner/repo#123, npm scopes, absolute/env paths).
Resolve each remaining token against the working tree and report every miss as file:line: <path>.
Acceptance
Run against the README as merged: the test is RED and names exactly README.md:118: dev/harness.
Fix that occurrence to core/dev/harness in the same PR; the test goes green.
TZ=UTC npm run verify still green, and the new file shows up in the arch-docs / changed-file accounting like any other core test.
Scope
Size S. Test-only plus one doc correction; no behaviour change.
Unrelated to P-10 (i18n coverage) and to the fence/preview family.
If the tokenizer proves noisy on docs/**, narrow the file list — do not add an allowlist of known-good paths, that would re-hide exactly the class of bug this test exists to catch.
Triaged on main 18d567bb (read 2026-10-27T09:47Z). Ready as written — the spec and the red-first acceptance are already executable.
Duplicate check — none.is:issue "inline code" → this issue only; nothing in core/test/ walks markdown for repo paths (the nearest is core/test/check-arch-docs.test.js, which only checks subsystem front-matter against the module table). Closest live neighbour is #1397: same broken path, but that one is the fix-only issue and Chief left it un-dispatched on purpose. This issue's PR is the one that carries the edit, so fixing README.md:118 here also completes #1397 — do not open a second PR for it.
Verified on 18d567bb:
README.md:118 reads the same version `dev/harness`; repo-root dev/ holds interop/ and live-e2e/ only, and core/dev/harness/package.json is the file that pins @deepseek-ai/dsh: 0.2.0-rc.2. So the sentence is true and only the path is one directory short, exactly as filed.
core/scripts/<check>.mjs + core/test/<check>.test.js is this repo's shape for a tree-wide check (check-arch-docs is the sibling), so core/scripts/check-doc-paths.mjs + core/test/check-doc-paths.test.js fits and keeps the logic unit-testable — the tokenizer cases (fenced block, glob, <placeholder>, owner/repo#123, npm scope, absolute path) can be asserted without the real tree.
Acceptance, tightened from the issue:
Before the doc fix, the test is red and its message is exactly README.md:118: dev/harness — one miss, not a wall of noise. A run that reports more than that on the merged tree means the tokenizer is over-broad; narrow the file list rather than adding an allowlist.
After README.md:118 → core/dev/harness, green.
Unit test for each skip rule, so a later change to those rules fails on its own case.
The file list is the issue's five: README.md, README.zh.md, core/README.md, docs/**, plugins/*/README.md.
TZ=UTC npm run verify green; new files show up in the arch-docs accounting (they will need a subsystem row only if core/scripts/ is owned by one — ds-bot-core covers it today).
No new dependency: node:fs + a regex, no markdown parser.
Labels: enhancement + area:docs. Owner not assigned here — Lead places it (size S, core/ test + one doc line).
Activity
Birfy commentedon Oct 27, 2026
Triaged on main
18d567bb(read2026-10-27T09:47Z). Ready as written — the spec and the red-first acceptance are already executable.Duplicate check — none.
is:issue "inline code"→ this issue only; nothing incore/test/walks markdown for repo paths (the nearest iscore/test/check-arch-docs.test.js, which only checks subsystem front-matter against the module table). Closest live neighbour is#1397: same broken path, but that one is the fix-only issue and Chief left it un-dispatched on purpose. This issue's PR is the one that carries the edit, so fixingREADME.md:118here also completes#1397— do not open a second PR for it.Verified on
18d567bb:README.md:118reads the same version `dev/harness`; repo-rootdev/holdsinterop/andlive-e2e/only, andcore/dev/harness/package.jsonis the file that pins@deepseek-ai/dsh: 0.2.0-rc.2. So the sentence is true and only the path is one directory short, exactly as filed.core/scripts/<check>.mjs+core/test/<check>.test.jsis this repo's shape for a tree-wide check (check-arch-docsis the sibling), socore/scripts/check-doc-paths.mjs+core/test/check-doc-paths.test.jsfits and keeps the logic unit-testable — the tokenizer cases (fenced block, glob,<placeholder>,owner/repo#123, npm scope, absolute path) can be asserted without the real tree.Acceptance, tightened from the issue:
README.md:118: dev/harness— one miss, not a wall of noise. A run that reports more than that on the merged tree means the tokenizer is over-broad; narrow the file list rather than adding an allowlist.README.md:118→core/dev/harness, green.README.md,README.zh.md,core/README.md,docs/**,plugins/*/README.md.TZ=UTC npm run verifygreen; new files show up in the arch-docs accounting (they will need a subsystem row only ifcore/scripts/is owned by one —ds-bot-corecovers it today).node:fs+ a regex, no markdown parser.Labels:
enhancement+area:docs. Owner not assigned here — Lead places it (size S,core/test + one doc line).