mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-08-06 17:36:53 +01:00
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>
63 lines
5.2 KiB
JSON
63 lines
5.2 KiB
JSON
{
|
|
"$schema-note": "BCQuality routing SEED — content-owned migration of the signal catalog that used to live hardcoded in the PR-review orchestrator ($BcqSignalCatalog / $BcqObjectKindDomain in Invoke-CopilotPRReview.ps1). Build-RoutingIndex.ps1 ingests this seed FIRST so the compiled routing-index.json detects at least everything the legacy code catalog did (recall >= today), then enriches each signal with the articles that back it and adds article-declared signals on top. Over time, entries here migrate into per-article `signals:` front-matter and this seed shrinks. Domains use the orchestrator's TitleCase taxonomy (see domain-normalization).",
|
|
"version": 1,
|
|
"domain-normalization": {
|
|
"error-handling": "Error Handling",
|
|
"performance": "Performance",
|
|
"privacy": "Privacy",
|
|
"security": "Security",
|
|
"style": "Style",
|
|
"testing": "Testing",
|
|
"ui": "Accessibility",
|
|
"upgrade": "Upgrade",
|
|
"breaking-changes": "Breaking Changes",
|
|
"events": "Events",
|
|
"interfaces": "Interfaces",
|
|
"web-services": "Web Services",
|
|
"telemetry": "Privacy"
|
|
},
|
|
"object-kind-domain": {
|
|
"page": "Accessibility",
|
|
"pageextension": "Accessibility",
|
|
"pagecustomization": "Accessibility",
|
|
"profile": "Accessibility",
|
|
"report": "Performance",
|
|
"reportextension": "Performance",
|
|
"query": "Performance",
|
|
"permissionset": "Security",
|
|
"permissionsetextension": "Security",
|
|
"entitlement": "Security",
|
|
"interface": "Interfaces",
|
|
"xmlport": "Web Services"
|
|
},
|
|
"signals": [
|
|
{ "token": "FindSet", "pattern": "\\bFindSet\\b", "domain": "Performance" },
|
|
{ "token": "FindFirst", "pattern": "\\bFindFirst\\b", "domain": "Performance" },
|
|
{ "token": "FindLast", "pattern": "\\bFindLast\\b", "domain": "Performance" },
|
|
{ "token": "SetRange", "pattern": "\\bSetRange\\b", "domain": "Performance" },
|
|
{ "token": "SetFilter", "pattern": "\\bSetFilter\\b", "domain": "Performance" },
|
|
{ "token": "CalcFields", "pattern": "\\bCalcFields\\b", "domain": "Performance" },
|
|
{ "token": "CalcSums", "pattern": "\\bCalcSums\\b", "domain": "Performance" },
|
|
{ "token": "SetLoadFields", "pattern": "\\bSetLoadFields\\b", "domain": "Performance" },
|
|
{ "token": "SetAutoCalcFields", "pattern": "\\bSetAutoCalcFields\\b", "domain": "Performance" },
|
|
{ "token": "loop", "pattern": "\\brepeat\\b", "domain": "Performance" },
|
|
{ "token": "HttpClient", "pattern": "\\bHttpClient\\b", "domain": "Security" },
|
|
{ "token": "SecretText", "pattern": "\\bSecretText\\b", "domain": "Security" },
|
|
{ "token": "IsolatedStorage", "pattern": "\\bIsolatedStorage\\b", "domain": "Security" },
|
|
{ "token": "PermissionSet", "pattern": "\\bPermissionSet\\b|\\bPermissions\\s*=", "domain": "Security" },
|
|
{ "token": "Entitlement", "pattern": "\\bEntitlement\\b", "domain": "Security" },
|
|
{ "token": "DataClassification", "pattern": "\\bDataClassification\\b", "domain": "Privacy" },
|
|
{ "token": "Telemetry", "pattern": "\\bLogMessage\\b|\\bFeatureTelemetry\\b", "domain": "Privacy" },
|
|
{ "token": "Error", "pattern": "\\bError\\b|\\bFieldError\\b|\\bTestField\\b", "domain": "Error Handling" },
|
|
{ "token": "TryFunction", "pattern": "\\[TryFunction\\]", "domain": "Error Handling" },
|
|
{ "token": "Commit", "pattern": "\\bCommit\\b", "domain": "Error Handling" },
|
|
{ "token": "Caption", "pattern": "\\bCaption\\s*=", "domain": "Accessibility" },
|
|
{ "token": "ToolTip", "pattern": "\\bToolTip\\s*=", "domain": "Accessibility" },
|
|
{ "token": "ApplicationArea", "pattern": "\\bApplicationArea\\s*=", "domain": "Accessibility" },
|
|
{ "token": "Obsolete", "pattern": "\\bObsoleteState\\b|\\bObsoleteReason\\b|\\bObsoleteTag\\b", "domain": "Upgrade" },
|
|
{ "token": "UpgradeTag", "pattern": "\\bUpgradeTag\\b", "domain": "Upgrade" },
|
|
{ "token": "EventPublisher", "pattern": "\\[IntegrationEvent|\\[BusinessEvent", "domain": "Events" },
|
|
{ "token": "EventSubscriber", "pattern": "\\[EventSubscriber", "domain": "Events" },
|
|
{ "token": "ApiObject", "pattern": "PageType\\s*=\\s*API|\\bEntityName\\b|\\bEntitySetName\\b|\\bODataKeyFields\\b", "domain": "Web Services" }
|
|
]
|
|
}
|