T 111
uid: T-111 title: Task board renders I-NNN tickets (board build indexed tasks only) status: done area: infra, docs created: 2026-06-24 updated: 2026-06-24 related: T-103
Why (owner, 2026-06-24)¶
The owner went to the task board (tasks.theestablishers.com) to read the coaching-invoice
diagnosis ticket I-012 and found no I-xxx tickets anywhere on the site.
Owner, 2026-06-24 (verbatim): "I'm a bit confused as the Tasks page isn't showing any I-xxx threads at all and there's no way for me to see them⦠Could you give me some more contexts in regards?" ⦠"then fix the board"
Root cause (not data loss): the board build (scripts/build-docs-site.py, which runs on the
orphan taskboard branch via docs-deploy.yml) generated the Task Board page from T-*.md files
only β load_tasks() globbed T-*.md, and the wikilink rewriter resolved [[T-NNN]] only. So the
12 tickets (I-001β¦I-012) were copied into the site as standalone pages but never surfaced in any
index, and [[I-NNN]] cross-links rendered as dead text. All ticket data was intact the whole time β
purely a rendering gap.
What changed¶
Edited scripts/build-docs-site.py on the taskboard branch (that's the copy docs-deploy.yml
actually runs; the main copy is vestigial β see "Follow-up" below):
load_tickets()β globstickets/I-*.md, reads frontmatter. Uses the filename stem as the ticket id (not thetid:frontmatter) so the known I-006/I-007tidcollision (both files carrytid: I-006) can't mislink β the link always matches the published page URL.build_ticket_board()β renders a## π« Ticketssection grouped by ticket status (open / investigating / escalated / fixed / closed / wontfix), appended to the Task Board page and the homepage. Escalated + fixed rows link theirtask:T-NNNin a Task column.render_table()β newtid(β/eop-tasks/tickets/<id>/) andtask(β/eop-tasks/tasks/<T-NNN>/) link-column handling.rewrite_wikilinks()β regex widenedT-β[TI]-, so[[I-NNN]]resolves to the ticket page.
Verification¶
Ran the modified script against the real taskboard data (109 tasks, 12 tickets) in a scratch rig
(python-frontmatter installed, PIL stubbed to skip PWA-icon generation): board generated cleanly,
the Tickets section rendered with correct status grouping, and I-012 showed under Escalated
linked to T-079. python -m py_compile clean. Could not run full mkdocs build in-sandbox
(no mkdocs), but the pre-process step is the only part this change touches; a build failure would
leave the prior Cloudflare Pages deploy serving, so blast radius is bounded.
Decision log¶
2026-06-24 β opened + landed (board now renders tickets)¶
- β
Attestation (Accounting (Infrastructure)): read
AGENTS.md; scope-scanned β no existing task covers "board doesn't render tickets" (T-103 created the orphantaskboardbranch + build but didn't index tickets). Owner directed the fix this session. Branch signalmainπ’ Β·nightlyπ΄ β this task doc goes tomainonly; the build-script change is ontaskboard(where it deploys). - Source: Accounting (Infrastructure) Β· https://claude.ai/code/session_015P6KzVYsQCLgEmUjR9bMwM
- Proposed by: the owner. Approved by: the owner (same prompt β "then fix the board").
- What landed: the
scripts/build-docs-site.pychanges above, committed to thetaskboardbranch (which triggersdocs-deploy.ymlβ Cloudflare Pages rebuild). - Blast radius: the published board now shows a Tickets section + working
[[I-NNN]]links. No web-app code touched; no task/ticket content changed (only how the board renders it). Themain-sidedocs/eop-tasks/canonical data is unchanged. - Follow-up (flagged, not fixed here):
scripts/build-docs-site.py+mkdocs.ymlalso exist onmain, butmainhas nodocs-deploy.yml(removed in T-103) so that copy is never run β it's a footgun (a future edit tomain's copy would silently do nothing). Whoever owns the taskboard infra (T-103 = EOP Local Assistance) may want to either deletemain's copy or add a one-line "vestigial β the live copy is ontaskboard" header. Left for them rather than deleting another agent's file unprompted.
Commit index (backfilled 2026-07-01, best-effort Β· Coaching (Diagnostic))¶
Candidate related commits, auto-backfilled from git on main: commits whose message references this task's UID or a PR number it cites. Not verified β this squash-merged history can't yield a precise per-task list, so rows tagged (mentions only) name the task in passing (may be tangential) and untagged work commits may be missing. Treat as a starting point: verify, prune tangential rows, and append any real ones per the AGENTS.md "record every related SHA" policy.
ab59c652026-06-24 β docs(board): T-110 (WOPC list fix + drop All tab) + I-011/I-012 symptom tickets (mentions only)b8eed7d2026-06-24 β docs(t-111): record the board-renders-tickets fix (done) (mentions only)303e1102026-06-25 β chore(t-103): remove dead scripts/build-docs-site.py from main (never run; flagged via T-111)a84c6e02026-06-25 β docs(T-112): restore coachingInvoiceNumber.ts provenance comment (mentions only)a56f4442026-06-29 β docs: refresh Accounting (Infrastructure) session ledger + T-130 review note (mentions only)