HUB-WP-0006-T06: seed legacy topic aliases and add RM_SLICE_TOPICSPINE
- hub_core/runtime/data/legacy_topic_aliases.json: checked-in, versioned (2026-10-13.1) seed of the 16 State Hub topics from the STATE-WP-0098-T01 capture -> primary_domain facet, residual owner STATE-WP-0079, expiry 2027-03-31T23:59:59Z. Never fetched live; topic UUIDs kept verbatim. - legacy_topic_aliases.py: loader validated against the 1.0.0 legacyTopicAlias schema; per-response active/expired status; underscore slugs emitted hyphenated (1.0.0 pattern forbids '_'). - RM_SLICE_TOPICSPINE setting (off|shadow|on, default off). off keeps the navigation output unchanged (aliases []); shadow/on serve the aliases and mark responses with X-RM-Slice-Topicspine. Documented as the A5 rollback switch in docs/runtime.md. - tests/test_legacy_topic_aliases.py: seed, flag and local A5 comparison cases (C01, C02/C08, C03, C10) against fixtures. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 356991@bnt-lap001 Assistant-Session: 5d99ea69-ed55-4a1e-8d97-f4f312db247f
This commit is contained in:
parent
e8fb648f25
commit
9e4d5ba23c
10 changed files with 762 additions and 2 deletions
99
hub_core/runtime/data/legacy_topic_aliases.json
Normal file
99
hub_core/runtime/data/legacy_topic_aliases.json
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
{
|
||||
"alias_set_id": "hub-core.legacy-topic-aliases",
|
||||
"alias_set_version": "2026-10-13.1",
|
||||
"target_contract": "helixforge.repository-navigation 1.0.0",
|
||||
"source": {
|
||||
"system": "state-hub",
|
||||
"request": "GET /topics/?status=active",
|
||||
"captured_at": "2026-10-13",
|
||||
"evidence": "state-hub docs/a5-topic-spine-comparison-packet.md (STATE-WP-0098-T01), cases A5-C01/C02",
|
||||
"note": "Checked-in seed. hub-core never fetches topics from State Hub at runtime. Topic UUIDs are stable identity; do not change them while repos carry topic_id."
|
||||
},
|
||||
"authority": false,
|
||||
"facet_kind": "primary_domain",
|
||||
"residual_owner": "STATE-WP-0079",
|
||||
"expires_at": "2027-03-31T23:59:59Z",
|
||||
"slug_normalisation": "Legacy slugs containing underscores are emitted with hyphens because the 1.0.0 legacyTopicAlias.legacy_topic_slug pattern forbids underscores; legacy_topic_slug keeps the State Hub spelling here.",
|
||||
"aliases": [
|
||||
{
|
||||
"legacy_topic_id": "fe2aaa78-9c20-4feb-b3d2-4fe0529572a3",
|
||||
"legacy_topic_slug": "canon",
|
||||
"facet_value": "infotech"
|
||||
},
|
||||
{
|
||||
"legacy_topic_id": "96fa8e80-9f74-40f2-84cd-644e9747b9ec",
|
||||
"legacy_topic_slug": "citation_evidence_mvp",
|
||||
"facet_value": "infotech"
|
||||
},
|
||||
{
|
||||
"legacy_topic_id": "36c7421b-c537-4723-bf75-42a3ebc6a1dc",
|
||||
"legacy_topic_slug": "coulomb-social",
|
||||
"facet_value": "communication"
|
||||
},
|
||||
{
|
||||
"legacy_topic_id": "cee7bedf-2b48-46ef-8601-006474f2ad7a",
|
||||
"legacy_topic_slug": "custodian",
|
||||
"facet_value": "infotech"
|
||||
},
|
||||
{
|
||||
"legacy_topic_id": "64418556-3206-457a-ba29-6884b5b12cf3",
|
||||
"legacy_topic_slug": "foerster-capabilities",
|
||||
"facet_value": "agents"
|
||||
},
|
||||
{
|
||||
"legacy_topic_id": "f39fa2a3-c491-414c-a91b-b4c5fcc6139c",
|
||||
"legacy_topic_slug": "helix-forge",
|
||||
"facet_value": "infotech"
|
||||
},
|
||||
{
|
||||
"legacy_topic_id": "1f2e4d10-c967-4803-ae6c-7f4b4e806409",
|
||||
"legacy_topic_slug": "inter_hub",
|
||||
"facet_value": "infotech"
|
||||
},
|
||||
{
|
||||
"legacy_topic_id": "5571d954-0d30-4950-980d-7bcaaad8e3e2",
|
||||
"legacy_topic_slug": "markitect",
|
||||
"facet_value": "communication"
|
||||
},
|
||||
{
|
||||
"legacy_topic_id": "a6c6e745-bf54-4465-9340-1534a2be493e",
|
||||
"legacy_topic_slug": "netkingdom",
|
||||
"facet_value": "communication"
|
||||
},
|
||||
{
|
||||
"legacy_topic_id": "e61b8d01-78ec-47af-a68b-b92afa6fb188",
|
||||
"legacy_topic_slug": "nudge-space",
|
||||
"facet_value": "infotech"
|
||||
},
|
||||
{
|
||||
"legacy_topic_id": "084430ab-c630-48dc-9e1d-d07d1e8fce3c",
|
||||
"legacy_topic_slug": "personhood",
|
||||
"facet_value": "government"
|
||||
},
|
||||
{
|
||||
"legacy_topic_id": "c1d199b6-55ee-4db6-b49e-257a9f0f15ac",
|
||||
"legacy_topic_slug": "practice",
|
||||
"facet_value": "agents"
|
||||
},
|
||||
{
|
||||
"legacy_topic_id": "ca369340-a64e-442e-98f1-a4fa7dc74a38",
|
||||
"legacy_topic_slug": "railiance",
|
||||
"facet_value": "financials"
|
||||
},
|
||||
{
|
||||
"legacy_topic_id": "595afc64-bd28-47bf-aafb-ba230b28371b",
|
||||
"legacy_topic_slug": "stack",
|
||||
"facet_value": "infotech"
|
||||
},
|
||||
{
|
||||
"legacy_topic_id": "7d4d3e35-312f-4723-bde9-ddb43799109e",
|
||||
"legacy_topic_slug": "vergabe_teilnahme",
|
||||
"facet_value": "government"
|
||||
},
|
||||
{
|
||||
"legacy_topic_id": "4c2e5315-2cb9-447c-9d16-a39bdb0aabd0",
|
||||
"legacy_topic_slug": "whynot",
|
||||
"facet_value": "consumer"
|
||||
}
|
||||
]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue