R6 Tier-1: content-owned routing index generator + CI guard

Retire the orchestrator's hardcoded ~28-token signal catalog by compiling a
routing index from article front-matter. New tools/Build-RoutingIndex.ps1 scans
all knowledge layers and emits routing-index.json (signal-token -> domain +
backing articles), seeded from the migrated legacy catalog (routing-seed.json)
so recall is never below today. Optional per-article 'signals:' front-matter
(validator rule R24) is the authored precision path; domain-normalization
reconciles front-matter/orchestrator/feedback domain vocabularies.

Artifact is a runtime build (gitignored), orchestrator-facing only (not the
lean agent-replayed knowledge index). CI guard Test-RoutingIndex.ps1 asserts
determinism, seed recall floor, no orphaned signals, and normalization
completeness; wired into the index workflow.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
dayland 2026-07-13 11:20:30 +01:00
parent 4119417ce4
commit 6ed56b95b7
8 changed files with 722 additions and 7 deletions

View file

@ -1,10 +1,14 @@
name: Validate knowledge index
name: Validate knowledge & routing indexes
# BCQuality owns the knowledge-index generator (tools/Build-KnowledgeIndex.ps1),
# which the AL review skills' Source step consumes. This guards the generator's
# health so consumers never have to: the index a consumer uses at runtime is
# rebuilt over its own pruned clone, but the generator that builds it lives and
# is validated here.
# BCQuality owns two index generators consumed by the AL review pipeline:
# - tools/Build-KnowledgeIndex.ps1 -> knowledge-index.json (lean, agent-replayed
# in the CLI run via the review skills' Source step)
# - tools/Build-RoutingIndex.ps1 -> routing-index.json (orchestrator-facing;
# maps PR-diff signals to domains + backing articles; consumed by the manifest
# builder behind BCQ_INDEX_V2)
# This workflow guards both generators' health so consumers never have to: each
# index a consumer uses at runtime is rebuilt over its own pruned clone, but the
# generators that build them live and are validated here.
on:
pull_request:
@ -22,3 +26,7 @@ jobs:
- name: Validate knowledge-index generator
shell: pwsh
run: ./.github/scripts/Test-KnowledgeIndex.ps1 -Root .
- name: Validate routing-index generator
shell: pwsh
run: ./.github/scripts/Test-RoutingIndex.ps1 -Root .