every single hardcoded issue ref (ex ward#123) is wrong when you are on the wrong git remote #446

Closed
opened 2026-07-01 21:56:44 +00:00 by coilysiren · 5 comments
Owner

This is a problem all over the place. In every repo, not just ward. it needs a linter + a hard thorough scrub.

This is a problem all over the place. In every repo, not just ward. it needs a linter + a hard thorough scrub.
Member

+1 — independently hit via github-only-dev/jargon-audit, run 16. The cross-repo variant (aos#310, cli-guard#178 — no host context at all) is called out in #449.
Filed by Claude Code during a cold-read release pressure test (run 16).

+1 — independently hit via github-only-dev/jargon-audit, run 16. The cross-repo variant (aos#310, cli-guard#178 — no host context at all) is called out in #449. Filed by Claude Code during a cold-read release pressure test (run 16).
Member

+1 — independently hit via drive-by-critic/docs-ia, run 36: every single doc read this session (README, FEATURES, agent*, container*, doctor) cites bare ward#NNN refs as load-bearing explanation; off-remote (GitHub mirror, HN thread, search snippet) none resolve.

+1 — independently hit via drive-by-critic/docs-ia, run 36: every single doc read this session (README, FEATURES, agent*, container*, doctor) cites bare ward#NNN refs as load-bearing explanation; off-remote (GitHub mirror, HN thread, search snippet) none resolve.
coilyco-ops added this to the ward launch milestone 2026-07-01 23:29:47 +00:00
Member

DECISION - scrub target: every ref must resolve for a GitHub reader (full URLs, or refs valid on the GitHub mirror). Pairs with #443's rule (external copy GitHub-only). Linter + one hard scrub across ward's public surfaces gates launch; other repos are post-launch. Recorded by Claude Code (Fable) during the 2026-07-01 ward launch triage session with Kai.

DECISION - scrub target: every ref must resolve for a GitHub reader (full URLs, or refs valid on the GitHub mirror). Pairs with #443's rule (external copy GitHub-only). Linter + one hard scrub across ward's public surfaces gates launch; other repos are post-launch. Recorded by Claude Code (Fable) during the 2026-07-01 ward launch triage session with Kai.
Member

🔒 Reserved by ward agent --driver claude — container engineer-claude-ward-446 on host kais-macbook-pro-2.local is carrying this issue (reserved 2026-07-02T07:51:52Z). Concurrent ward agent runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); --force overrides.

— Claude (she/her), via ward agent

<!-- ward-agent-reservation --> 🔒 Reserved by `ward agent --driver claude` — container `engineer-claude-ward-446` on host `kais-macbook-pro-2.local` is carrying this issue (reserved 2026-07-02T07:51:52Z). Concurrent `ward agent` runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); `--force` overrides. <!-- ward-agent-signature --> — Claude (she/her), via `ward agent`
Author
Owner

WARD-OUTCOME: done - added an issue-ref linter (ward exec lint-refs + pre-commit gate) and scrubbed terse refs to full-URL links across README, FEATURES, and every docs/*.md that fits its size cap.

The mechanical half was the easy half. Writing the detector that skips code fences, inline code (including the multi-line backtick span that tripped it once), and already-linked refs, then --fix rewriting the rest to full Forgejo URLs, went smoothly and self-tested well.

What fought back was a collision between two of ward's own rules: "every ref must resolve for a GitHub reader" (needs ~76-char Markdown links) versus the documentation-layout 4000-char cap that the deep design docs are hand-tuned to sit just under (3997-3999). You can't inline-link ~330 refs across 31 capped docs without busting the cap. I resolved it by treating those design docs as contributor-facing (terse Forgejo refs allowed per #443, same as source) and scrubbing everything that fits - README, FEATURES, and ~34 walkthrough docs. The front-page provenance refs (ward#455/#454/#356) I dropped rather than link-bloat, matching #444's "move the lore out" direction.

Confidence is high on the linter and the scrubbed surfaces (pre-commit green, build/test clean). The honest caveat is scope: the 31 exempted docs still carry terse refs, filed as #521 to trim-then-relink them once the provenance noise is cut. Also worth naming: origin/main advanced four times mid-run and each merge dragged in fresh bare refs from sibling launch work, so the linter earned its keep immediately by catching them before they landed.

WARD-OUTCOME: done - added an issue-ref linter (`ward exec lint-refs` + pre-commit gate) and scrubbed terse refs to full-URL links across README, FEATURES, and every `docs/*.md` that fits its size cap. The mechanical half was the easy half. Writing the detector that skips code fences, inline code (including the multi-line backtick span that tripped it once), and already-linked refs, then `--fix` rewriting the rest to full Forgejo URLs, went smoothly and self-tested well. What fought back was a collision between two of ward's own rules: "every ref must resolve for a GitHub reader" (needs ~76-char Markdown links) versus the documentation-layout 4000-char cap that the deep design docs are hand-tuned to sit *just* under (3997-3999). You can't inline-link ~330 refs across 31 capped docs without busting the cap. I resolved it by treating those design docs as contributor-facing (terse Forgejo refs allowed per #443, same as source) and scrubbing everything that fits - README, FEATURES, and ~34 walkthrough docs. The front-page provenance refs (ward#455/#454/#356) I dropped rather than link-bloat, matching #444's "move the lore out" direction. Confidence is high on the linter and the scrubbed surfaces (pre-commit green, build/test clean). The honest caveat is scope: the 31 exempted docs still carry terse refs, filed as #521 to trim-then-relink them once the provenance noise is cut. Also worth naming: origin/main advanced four times mid-run and each merge dragged in fresh bare refs from sibling launch work, so the linter earned its keep immediately by catching them before they landed.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/ward#446
No description provided.