Skip to content

[AI:codex] docs(library): add a curated searchable product guide library (TASK-B6B1278890774EF993D2EBC327862470-111) - #3101

Closed
joemooney wants to merge 5 commits into
task-b6b1278890774ef993d2ebc327862470-110-workfrom
task-b6b1278890774ef993d2ebc327862470-111-work
Closed

joemooney wants to merge 5 commits into
task-b6b1278890774ef993d2ebc327862470-110-workfrom
task-b6b1278890774ef993d2ebc327862470-111-work

Conversation

@joemooney

@joemooney joemooney commented Oct 29, 2026 •

Copy link
Copy Markdown
Owner

A curated searchable library renders six explicitly selected product guides from tracked Markdown and publication.json. It provides audience filters, snippets, reset/empty states and source links; all selected links remain available without JavaScript. The source/output ownership instructions now identify the manifest and omit transient process notes. Broader publication remains an explicit advisor curation question; no hosted audience changes.

Validation at author head e15d8a968c1b7eed5bc4d25aa7a121aed07bfe72: make check-ci-fast completed all 35 gates successfully at this exact head. Guide output was rebuilt from its source and shared template; this change adds no runtime authority or deployment behavior. Author checks provide no independent approval or merge-hold clearance. Advisor review and bottom-up integration remain required.

…ary (TASK-B6B1278890774EF993D2EBC327862470-111)
… notes (TASK-B6B1278890774EF993D2EBC327862470-111)
@joemooney
joemooney force-pushed the task-b6b1278890774ef993d2ebc327862470-111-work branch from ef7985c to d84f608 Compare October 30, 2026 00:36
@joemooney
joemooney force-pushed the task-b6b1278890774ef993d2ebc327862470-110-work branch from 3f2833e to 25f18f9 Compare October 30, 2026 00:36
@joemooney joemooney added aida:merge-hold Supervised merge hold — merge-hold-gate fails while present aida:merge-hold-recorded Supervised merge hold was recorded — persists across clearance labels Oct 30, 2026
@joemooney

Copy link
Copy Markdown
Owner Author

Review: PR-3101 (round 1): request changes

Reviewed head d84f608f683e. Diff is relative to the stacked base task-…-110-work.

Acceptance criterion Status Evidence
ac565cae allowlist/classification ✅ met, untested publication.json lists 6 guides tagged human/operator; build.py rejects unknown categories, non-.md, symlinks, paths outside docs/ and untracked files (git ls-files --error-unmatch). Historical/internal material is excluded, and the scope note says expansion awaits advisor curation
acaff5ca static pages + search index from approved sources ✅ met, untested library.html and search-data.js are generated from manifest entries only. Comment traces are stripped from the index; no runtime data
ac955c5b links/anchors/assets/provenance; mobile; keyboard ✅ met, untested Reviewer script: every href/src/#anchor in the 6 pages + library + index resolves. Controls are native form elements with labels, reset, a role=status live region and an empty state. No tables in sources (see finding 4)
ac9c1de7 stable rebuild, single source of truth ✅ met manually, ❌ unguarded Re-running build.py produced a zero diff. README documents Python 3 + Git and output ownership, but nothing enforces it
acac445d owner-private, no CLI/API/deploy ✅ No hosting, CLI or API changes in the diff

CI: only merge-hold-gate runs, because this is a stacked PR and the Build workflow triggers only on main. make check-ci-fast was run locally by the reviewer: 35 gates passed, exit 0.

Findings

  1. (minor) None of the 5 criteria has an automated guard, and nothing fails when generated output drifts from its sources or is hand-edited. Add a docs-only check to check-ci-fast that does three things: rebuild and diff, check links/anchors, and assert the manifest allowlist.
  2. (minor) build.py:104-106: the search text keeps raw [label](path.md) syntax and URLs, so searches like "md" or "agents" match link targets and result excerpts show raw markup. The blanket strip of the four characters ` # * > also mangles prose such as "C#" and "->".
  3. (minor) Manifest outputs are not checked for duplicates or for collisions with library.html/index.html, so a bad entry silently overwrites a page.
  4. (cosmetic) guide.css adds table and .table-scroll rules, but render() emits neither, so the rules are dead CSS.
  5. (cosmetic) write_library rewrites the footer with a whole-page replace('the source guide', …), which is fragile. Use a template placeholder instead.
  6. (cosmetic) library.js:18-19: the snippet offset is computed on the lowercased string but used to slice the original, which misaligns for some Unicode.

Recommendation: one small rework round covering all of the above. Recovery: aida rework TASK-B6B1278890774EF993D2EBC327862470-111 --work --resume --reason "PR-3101 review round 1 findings"

…0774EF993D2EBC327862470-111)

# Conflicts:
#	docs/showcase/index.html
@joemooney

Copy link
Copy Markdown
Owner Author

Review: PR-3101 (round 1 at e0a7f94) — Approved

Acceptance criterion Status Evidence
ac565cae allowlist/classification ✅ verified docs/showcase/publication.json (6 guides, human/operator), README "Curated library and publication scope"; build refuses unknown categories. The six-guide scope is still awaiting advisor confirmation on the spec.
acaff5ca static pages + search index from tracked sources ✅ verified build.py render_outputs/render_library; git ls-files --error-unmatch source gate; comments stripped; test_search_keeps_punctuation_and_link_labels
ac955c5b links/anchors/assets/provenance, mobile, keyboard ✅ verified (manual) Reviewer audit: 0 broken href/src/anchor across 7 generated pages. Longest unbreakable body token ≤ 23 chars, pre{overflow:auto}, single-column library below 600px. Native form controls with role=status live region and empty state.
ac9c1de7 stable rebuild, no hand-edited copy ✅ verified test_clean_check_and_rebuild_are_stable, test_check_names_all_drift_and_never_writes; build.py --check exits 0 at head; wired into CI's fast static step
acac445d owner-private, no new CLI/API ✅ verified Diff touches only docs/showcase, one test, one CI step line; no deploy

Local evidence: python3 -m unittest tests/test_showcase_build.py passed all 7 tests, and build.py --check exited 0 with a clean tree. This PR is stacked on a non-main base, so the only PR check that ran is merge-hold-gate. It is red because of the standing hold from the prior round.

Non-blocking findings:

  • The refusal paths (untracked source, symlink, path escape, unknown category) have no tests.
  • Link resolution has no automated check.
  • Advisor confirmation of the publication scope is still open.
  • Cosmetic: the library card always appends "…", and --check prints a traceback on an untracked output.

@joemooney joemooney added aida:merge-hold-cleared Recorded merge hold has a human-gated clearance and removed aida:merge-hold Supervised merge hold — merge-hold-gate fails while present labels Oct 30, 2026
@joemooney

Copy link
Copy Markdown
Owner Author

Final-round author update at e15d8a968c1b7eed5bc4d25aa7a121aed07bfe72.

Merged the final corrected predecessor and regenerated affected guide/library artifacts. No new slice-specific content edits; final approval/base-only attestation remains the advisor’s decision.

All lower-stack fixes are included by ordinary merges; no rebases or force pushes. These are author checks, with no independent-review or hold-clearance authority.

Validation: make check-ci-fast completed all 35 gates successfully at this exact head

@joemooney

Copy link
Copy Markdown
Owner Author

Included in PR-3103, which merged the approved stack 107-113 to main as one PR (advisor 11:35).

@joemooney joemooney closed this Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

aida:merge-hold-cleared Recorded merge hold has a human-gated clearance aida:merge-hold-recorded Supervised merge hold was recorded — persists across clearance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant