feat: add provider-aware browser QA setup

Detect host-native browser tools before offering the isolated local Chromium fallback, add a common readiness fixture, harden managed browser startup, and verify standards installs expose one canonical QA skill.
This commit is contained in:
Sinabina
2026-07-20 16:01:24 -07:00
parent f14445bb00
commit d6ef673e4d
163 changed files with 5272 additions and 990 deletions
@@ -58,15 +58,15 @@
}
},
"mechanical_port": {
"rendered_sha256": "b2f811568920dfdbd500372df13855041ecb2b8b73e3629f3c71d87c5a78e034",
"rendered_sha256": "811b50b2cf2e20768138c50ef67471402ad1e361bd07958c63107c5081cf21b7",
"differs_from_baseline": true,
"allowed_difference": "Canonical GStack 2 carve: exclude the retired shared onboarding wrapper and host hook advisory; resolve retired invocations to six public routes; relocate host/runtime paths; lazy-load pinned carved sections from package-local references."
},
"candidate": {
"target_path": "skills/plan/references/legacy/plan-ceo-review.md",
"rendered_legacy_body_sha256": "b2f811568920dfdbd500372df13855041ecb2b8b73e3629f3c71d87c5a78e034",
"rendered_legacy_body_sha256": "811b50b2cf2e20768138c50ef67471402ad1e361bd07958c63107c5081cf21b7",
"semantic_signature": {
"normalized_sha256": "b2f811568920dfdbd500372df13855041ecb2b8b73e3629f3c71d87c5a78e034",
"normalized_sha256": "811b50b2cf2e20768138c50ef67471402ad1e361bd07958c63107c5081cf21b7",
"headings_sha256": "aee8af5dbf376874037f52d130bc6a804d4f27c989afd787b769ef53a9bbc56b",
"questions_sha256": "442f02fed4d7a2e9e868795fe12aa5df3fb74a1dd8e538fbc76b8b1907345a81",
"obligations_sha256": "305f7bea6815e4aa1d968c20c0823e0f98f34bf475065f0091f918c8eaa5ba85",
@@ -60,15 +60,15 @@
}
},
"mechanical_port": {
"rendered_sha256": "9d6398fe0d2900fcce8ae1eb0b390e21f05c94d6ae3a4e21c911025cdc1fd963",
"rendered_sha256": "0afa76278ec061e56a36048eb9034a2cda6e56ea70bba321a0414bc279ddf84b",
"differs_from_baseline": true,
"allowed_difference": "Canonical GStack 2 carve: exclude the retired shared onboarding wrapper and host hook advisory; resolve retired invocations to six public routes; relocate host/runtime paths; lazy-load pinned carved sections from package-local references."
},
"candidate": {
"target_path": "skills/review/references/legacy/review.md",
"rendered_legacy_body_sha256": "9d6398fe0d2900fcce8ae1eb0b390e21f05c94d6ae3a4e21c911025cdc1fd963",
"rendered_legacy_body_sha256": "0afa76278ec061e56a36048eb9034a2cda6e56ea70bba321a0414bc279ddf84b",
"semantic_signature": {
"normalized_sha256": "9d6398fe0d2900fcce8ae1eb0b390e21f05c94d6ae3a4e21c911025cdc1fd963",
"normalized_sha256": "0afa76278ec061e56a36048eb9034a2cda6e56ea70bba321a0414bc279ddf84b",
"headings_sha256": "8ed11544f49943c2974265c86ad258f53207aaed6f289ea2e6afd1239eee26d8",
"questions_sha256": "477b52941fada9cd9a3c3863c90310e198fca3dead264006f1431b0fde20f807",
"obligations_sha256": "2e21e383f16f209a665d66710ca6d0ebae5a7fea3a200fc23506cfc584ca74b9",
@@ -53,15 +53,15 @@
}
},
"mechanical_port": {
"rendered_sha256": "91f19c8d736a9a6077941f63f52853634325059e5ac4d8808c4ba6dbceca1a30",
"rendered_sha256": "ee817d27e0b303b1e173ab2c572c70f55ef2211225d366a166d2e26cbbe3b2ab",
"differs_from_baseline": true,
"allowed_difference": "Canonical GStack 2 carve: exclude the retired shared onboarding wrapper and host hook advisory; resolve retired invocations to six public routes; relocate host/runtime paths; lazy-load pinned carved sections from package-local references."
},
"candidate": {
"target_path": "skills/debug/references/legacy/investigate.md",
"rendered_legacy_body_sha256": "91f19c8d736a9a6077941f63f52853634325059e5ac4d8808c4ba6dbceca1a30",
"rendered_legacy_body_sha256": "ee817d27e0b303b1e173ab2c572c70f55ef2211225d366a166d2e26cbbe3b2ab",
"semantic_signature": {
"normalized_sha256": "91f19c8d736a9a6077941f63f52853634325059e5ac4d8808c4ba6dbceca1a30",
"normalized_sha256": "ee817d27e0b303b1e173ab2c572c70f55ef2211225d366a166d2e26cbbe3b2ab",
"headings_sha256": "aae491f6430a9d113ece7954490bd9db9d546e55ee5f10f2ac6cd67dc4d4e284",
"questions_sha256": "9e058bbca5f57ed0c9c4724b67d640e15872a0ad283d496b8913d2dd6cfe897d",
"obligations_sha256": "d832c32c233beb080da54a3ebdc627da9535a158f9772dce4abee15742996a1c",
@@ -57,15 +57,15 @@
}
},
"mechanical_port": {
"rendered_sha256": "1db4cd23ee115ce841d2db898cc442141588635d43018393703aa28ce40d48f2",
"rendered_sha256": "e27c29760f1edffffee08f131b2c0ee76720eb447d3bb05eee4278467d785620",
"differs_from_baseline": true,
"allowed_difference": "Canonical GStack 2 carve: exclude the retired shared onboarding wrapper and host hook advisory; resolve retired invocations to six public routes; relocate host/runtime paths; lazy-load pinned carved sections from package-local references."
},
"candidate": {
"target_path": "skills/design/references/legacy/design-shotgun.md",
"rendered_legacy_body_sha256": "1db4cd23ee115ce841d2db898cc442141588635d43018393703aa28ce40d48f2",
"rendered_legacy_body_sha256": "e27c29760f1edffffee08f131b2c0ee76720eb447d3bb05eee4278467d785620",
"semantic_signature": {
"normalized_sha256": "1db4cd23ee115ce841d2db898cc442141588635d43018393703aa28ce40d48f2",
"normalized_sha256": "e27c29760f1edffffee08f131b2c0ee76720eb447d3bb05eee4278467d785620",
"headings_sha256": "54756bba54ab9183163992eb243290a41b99f896b5993d7f7a0242a5434e0ffe",
"questions_sha256": "2492e14286f1029d529a7ecb1fe28cffc94f2f4c922521e73b26a23147a60e29",
"obligations_sha256": "8d595f621cb352052f374d49204597142f011694db5953fb826d46c68946e94e",
@@ -57,21 +57,21 @@
}
},
"mechanical_port": {
"rendered_sha256": "afa1f2b58d22d9f0f9064336ce7e9836430a298e1deb56f5330390f91df3f680",
"rendered_sha256": "d323457820291635bc4c46e4559ce6f4d194b940607b76208e95df0c86ffcb0b",
"differs_from_baseline": true,
"allowed_difference": "Canonical GStack 2 carve: exclude the retired shared onboarding wrapper and host hook advisory; resolve retired invocations to six public routes; relocate host/runtime paths; lazy-load pinned carved sections from package-local references."
},
"candidate": {
"target_path": "skills/design/references/legacy/design-consultation.md",
"rendered_legacy_body_sha256": "afa1f2b58d22d9f0f9064336ce7e9836430a298e1deb56f5330390f91df3f680",
"rendered_legacy_body_sha256": "d323457820291635bc4c46e4559ce6f4d194b940607b76208e95df0c86ffcb0b",
"semantic_signature": {
"normalized_sha256": "afa1f2b58d22d9f0f9064336ce7e9836430a298e1deb56f5330390f91df3f680",
"normalized_sha256": "d323457820291635bc4c46e4559ce6f4d194b940607b76208e95df0c86ffcb0b",
"headings_sha256": "78cdfd5aa0c0264964542d45190c919c7adb8c01ea68a22d67dd0fad538cc643",
"questions_sha256": "91adedef9aa8000a9aa3385381227d149dbc52cbf2d127656bf0697510b62906",
"obligations_sha256": "bca9ced676d3f62fad557554c5268ff0b339d39ab028b1022ddff1a930bd24f7",
"obligations_sha256": "c36974d06c0f66d0a0f2ea3d27282ed785c7cc956cce40a8c8db35492680c972",
"heading_count": 12,
"question_count": 2,
"obligation_count": 17
"obligation_count": 18
}
},
"deterministic_comparison": {
@@ -57,21 +57,21 @@
}
},
"mechanical_port": {
"rendered_sha256": "33584047a11aa46a1b6a2bef5bf97a4d0b443bb6c9542685732e7d4dff795a2e",
"rendered_sha256": "fe15a4fae62fba41432ae18bbf4ef5620058b784b7bf9768304d0d1dd17bf45b",
"differs_from_baseline": true,
"allowed_difference": "Canonical GStack 2 carve: exclude the retired shared onboarding wrapper and host hook advisory; resolve retired invocations to six public routes; relocate host/runtime paths; lazy-load pinned carved sections from package-local references."
},
"candidate": {
"target_path": "skills/design/references/legacy/design-review.md",
"rendered_legacy_body_sha256": "33584047a11aa46a1b6a2bef5bf97a4d0b443bb6c9542685732e7d4dff795a2e",
"rendered_legacy_body_sha256": "fe15a4fae62fba41432ae18bbf4ef5620058b784b7bf9768304d0d1dd17bf45b",
"semantic_signature": {
"normalized_sha256": "33584047a11aa46a1b6a2bef5bf97a4d0b443bb6c9542685732e7d4dff795a2e",
"normalized_sha256": "fe15a4fae62fba41432ae18bbf4ef5620058b784b7bf9768304d0d1dd17bf45b",
"headings_sha256": "739abb73da8446c6133835f56ea0c862a7c1fd57e6702a6afe1ed1fd2fb2b2c8",
"questions_sha256": "57579e50936d62734df12299638bdcf8ce412f24b68688b071be156312aafcbc",
"obligations_sha256": "e7b864611d4940a37f553642dec6bf9ba3c4eec94f0ecbe2cab19699751cacb8",
"obligations_sha256": "e4fe261ecc3956834dfac15cac60fc4b8057ad0c3b37ede06ee4667d61852655",
"heading_count": 62,
"question_count": 24,
"obligation_count": 62
"obligation_count": 63
}
},
"deterministic_comparison": {
@@ -59,15 +59,15 @@
}
},
"mechanical_port": {
"rendered_sha256": "fff989dcab1f37d0c219378caef6b1e627c23c2537a717564be0d8567229bccc",
"rendered_sha256": "2d39acb36fdc7f4f4b3492ff7dd21081fad98b256fa40d00aeee67bd41343f15",
"differs_from_baseline": true,
"allowed_difference": "Canonical GStack 2 carve: exclude the retired shared onboarding wrapper and host hook advisory; resolve retired invocations to six public routes; relocate host/runtime paths; lazy-load pinned carved sections from package-local references."
},
"candidate": {
"target_path": "skills/plan/references/legacy/plan-devex-review.md",
"rendered_legacy_body_sha256": "fff989dcab1f37d0c219378caef6b1e627c23c2537a717564be0d8567229bccc",
"rendered_legacy_body_sha256": "2d39acb36fdc7f4f4b3492ff7dd21081fad98b256fa40d00aeee67bd41343f15",
"semantic_signature": {
"normalized_sha256": "fff989dcab1f37d0c219378caef6b1e627c23c2537a717564be0d8567229bccc",
"normalized_sha256": "2d39acb36fdc7f4f4b3492ff7dd21081fad98b256fa40d00aeee67bd41343f15",
"headings_sha256": "7aebb4be8ec2a9ba9034b835bb07a244053a62156eabec252e0d78b3523f248a",
"questions_sha256": "5d2d6b27d20c553887edf16ec79a25c0ecab599418052d8e5fc52a172ceb8afe",
"obligations_sha256": "44fe82d36ea1aca78b396ef65052cff618b4f444fcb6f9ace283c116d0add332",
@@ -58,15 +58,15 @@
}
},
"mechanical_port": {
"rendered_sha256": "ee268f1d24769509b89b7db998372a773d9e7bc376306a68319af4f74c6fe713",
"rendered_sha256": "0ed7d4a6ec9dadf363ef5d9311392067a3d90bddac9c1ec781d0f25db55e13ae",
"differs_from_baseline": true,
"allowed_difference": "Canonical GStack 2 carve: exclude the retired shared onboarding wrapper and host hook advisory; resolve retired invocations to six public routes; relocate host/runtime paths; lazy-load pinned carved sections from package-local references."
},
"candidate": {
"target_path": "skills/plan/references/legacy/plan-eng-review.md",
"rendered_legacy_body_sha256": "ee268f1d24769509b89b7db998372a773d9e7bc376306a68319af4f74c6fe713",
"rendered_legacy_body_sha256": "0ed7d4a6ec9dadf363ef5d9311392067a3d90bddac9c1ec781d0f25db55e13ae",
"semantic_signature": {
"normalized_sha256": "ee268f1d24769509b89b7db998372a773d9e7bc376306a68319af4f74c6fe713",
"normalized_sha256": "0ed7d4a6ec9dadf363ef5d9311392067a3d90bddac9c1ec781d0f25db55e13ae",
"headings_sha256": "0200c83cdde0bdc56f79527a4e38884bf075c09b1d829a4244e979b324dc52fc",
"questions_sha256": "b74758da3f085a457fc0f9cf1b5c34dfe849fd713a5882849da0abb2edc1a73f",
"obligations_sha256": "186b9e3bb712898fa6e8544ba2f6fc932a161e9bb388cb7b8f7bdecb782b57f9",
@@ -58,21 +58,21 @@
}
},
"mechanical_port": {
"rendered_sha256": "b633a6ef87928ca2434f3a2b1ce88946cbe528a9e3659469e0f9cbbe8a7b146b",
"rendered_sha256": "1a5c9dbda769631df4c3e909fde6b97917780f6a7e9eca5a4edc8c2d0f302052",
"differs_from_baseline": true,
"allowed_difference": "Canonical GStack 2 carve: exclude the retired shared onboarding wrapper and host hook advisory; resolve retired invocations to six public routes; relocate host/runtime paths; lazy-load pinned carved sections from package-local references."
},
"candidate": {
"target_path": "skills/plan/references/legacy/office-hours.md",
"rendered_legacy_body_sha256": "b633a6ef87928ca2434f3a2b1ce88946cbe528a9e3659469e0f9cbbe8a7b146b",
"rendered_legacy_body_sha256": "1a5c9dbda769631df4c3e909fde6b97917780f6a7e9eca5a4edc8c2d0f302052",
"semantic_signature": {
"normalized_sha256": "b633a6ef87928ca2434f3a2b1ce88946cbe528a9e3659469e0f9cbbe8a7b146b",
"normalized_sha256": "1a5c9dbda769631df4c3e909fde6b97917780f6a7e9eca5a4edc8c2d0f302052",
"headings_sha256": "f50aa767e26cdfc3c8fa4c6bdcabd10e061ca0ab59e2aff4c204eaf68bfd1d56",
"questions_sha256": "92d854d47b2f92f30cc34a59cfb6f3e18449beddcb8ebd5490162545bc8384c7",
"obligations_sha256": "ec3076674f71ffad877bfcd6d147fc77c218831ac13329f5c80442e5f2e7e1f0",
"obligations_sha256": "c6f9f220f431b50b7721ac9baa3ae3d7be5de88b489c80a45350028c96a9db84",
"heading_count": 34,
"question_count": 13,
"obligation_count": 42
"obligation_count": 43
}
},
"deterministic_comparison": {
@@ -57,15 +57,15 @@
}
},
"mechanical_port": {
"rendered_sha256": "a9353a4d837240f85c0e13144e66575f9e267926090cfc0f344a08b5fb09b98c",
"rendered_sha256": "73ea0aabaa9e7c8fdd4ae279f519303a78682540b2340816f97e239718908e62",
"differs_from_baseline": true,
"allowed_difference": "Canonical GStack 2 carve: exclude the retired shared onboarding wrapper and host hook advisory; resolve retired invocations to six public routes; relocate host/runtime paths; lazy-load pinned carved sections from package-local references."
},
"candidate": {
"target_path": "skills/qa/references/legacy/ios-qa.md",
"rendered_legacy_body_sha256": "a9353a4d837240f85c0e13144e66575f9e267926090cfc0f344a08b5fb09b98c",
"rendered_legacy_body_sha256": "73ea0aabaa9e7c8fdd4ae279f519303a78682540b2340816f97e239718908e62",
"semantic_signature": {
"normalized_sha256": "a9353a4d837240f85c0e13144e66575f9e267926090cfc0f344a08b5fb09b98c",
"normalized_sha256": "73ea0aabaa9e7c8fdd4ae279f519303a78682540b2340816f97e239718908e62",
"headings_sha256": "79304f733fa401249340540c659f15a9da4e7a89a3d505d39437f6bcbcaf4ce5",
"questions_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"obligations_sha256": "1d8b9f6b93b844f1a9ad43f1434c7b0a4b891a6e5e0ad8827f41c7eefbef239f",
@@ -57,21 +57,21 @@
}
},
"mechanical_port": {
"rendered_sha256": "b1387290067842593297c8d64dc578a890a336ce5a8b60085e51b52c55ebaade",
"rendered_sha256": "e7cd5615adaf54413daa97838cb364810317dd7d661cec5cc4ed40eb48192e55",
"differs_from_baseline": true,
"allowed_difference": "Canonical GStack 2 carve: exclude the retired shared onboarding wrapper and host hook advisory; resolve retired invocations to six public routes; relocate host/runtime paths; lazy-load pinned carved sections from package-local references."
},
"candidate": {
"target_path": "skills/qa/references/legacy/qa.md",
"rendered_legacy_body_sha256": "b1387290067842593297c8d64dc578a890a336ce5a8b60085e51b52c55ebaade",
"rendered_legacy_body_sha256": "e7cd5615adaf54413daa97838cb364810317dd7d661cec5cc4ed40eb48192e55",
"semantic_signature": {
"normalized_sha256": "b1387290067842593297c8d64dc578a890a336ce5a8b60085e51b52c55ebaade",
"normalized_sha256": "e7cd5615adaf54413daa97838cb364810317dd7d661cec5cc4ed40eb48192e55",
"headings_sha256": "dd0b56f79cee31c4c3c71f32fb0a4438f686c6ae517625a7d59475deecd4c75e",
"questions_sha256": "8fece376011d8a8606bcd05d52332f77b56de551b7f1abde94bff1f33ef0a9c1",
"obligations_sha256": "e2f2395744c3e2b66bb69fd4d0acea685ab3a76b86796dc8a8f3e23bc9fb29ec",
"obligations_sha256": "c9a3696553c10b1338568d728f86f47c9a7a06b2defa37bd557c662d4a9086d8",
"heading_count": 58,
"question_count": 6,
"obligation_count": 64
"obligation_count": 65
}
},
"deterministic_comparison": {
@@ -57,21 +57,21 @@
}
},
"mechanical_port": {
"rendered_sha256": "e360ea826399287e00b030c9aa0bcda16e06ab004f5dcdb14db309bad0ccea25",
"rendered_sha256": "376eff42459f5b8755bd95934cce615db0fca16504c8e82f84b2704c63f62af3",
"differs_from_baseline": true,
"allowed_difference": "Canonical GStack 2 carve: exclude the retired shared onboarding wrapper and host hook advisory; resolve retired invocations to six public routes; relocate host/runtime paths; lazy-load pinned carved sections from package-local references."
},
"candidate": {
"target_path": "skills/qa/references/legacy/qa-only.md",
"rendered_legacy_body_sha256": "e360ea826399287e00b030c9aa0bcda16e06ab004f5dcdb14db309bad0ccea25",
"rendered_legacy_body_sha256": "376eff42459f5b8755bd95934cce615db0fca16504c8e82f84b2704c63f62af3",
"semantic_signature": {
"normalized_sha256": "e360ea826399287e00b030c9aa0bcda16e06ab004f5dcdb14db309bad0ccea25",
"normalized_sha256": "376eff42459f5b8755bd95934cce615db0fca16504c8e82f84b2704c63f62af3",
"headings_sha256": "0241f7efa9ffcaef764bd6517099b03394e09f90c8d1f3f015c7c7a135f78201",
"questions_sha256": "8fece376011d8a8606bcd05d52332f77b56de551b7f1abde94bff1f33ef0a9c1",
"obligations_sha256": "e876a6573bd7cdd581cbab5dd913c86d78e7dba1532bd9e60b8b324f56fe11d1",
"obligations_sha256": "9ea973707574aa3750e38a2920e65072f804fe7cddf789f1710e08b0a44d92d3",
"heading_count": 34,
"question_count": 6,
"obligation_count": 39
"obligation_count": 40
}
},
"deterministic_comparison": {
@@ -56,15 +56,15 @@
}
},
"mechanical_port": {
"rendered_sha256": "2cecaf39e950a0ec848f85c11f9678b6a7644c0251c07be42cd52d4b2e6b61a6",
"rendered_sha256": "d79cf702cef33e878da8569c63936e3bdf811b194d8abbce925b6bb759f05cf7",
"differs_from_baseline": true,
"allowed_difference": "Canonical GStack 2 carve: exclude the retired shared onboarding wrapper and host hook advisory; resolve retired invocations to six public routes; relocate host/runtime paths; lazy-load pinned carved sections from package-local references."
},
"candidate": {
"target_path": "skills/review/references/legacy/cso.md",
"rendered_legacy_body_sha256": "2cecaf39e950a0ec848f85c11f9678b6a7644c0251c07be42cd52d4b2e6b61a6",
"rendered_legacy_body_sha256": "d79cf702cef33e878da8569c63936e3bdf811b194d8abbce925b6bb759f05cf7",
"semantic_signature": {
"normalized_sha256": "2cecaf39e950a0ec848f85c11f9678b6a7644c0251c07be42cd52d4b2e6b61a6",
"normalized_sha256": "d79cf702cef33e878da8569c63936e3bdf811b194d8abbce925b6bb759f05cf7",
"headings_sha256": "45365014bc4ff67be80c8747098a368c439104ea76ad4d1c36000fe65192e291",
"questions_sha256": "e7e23a9ccc1e3677812d260b4f38b16ef8c438e0b2346c045c1334b7045006de",
"obligations_sha256": "2f83f56fa932b0937d9f968a7e27c974f17772ad8062b9577504dfae600622f6",
@@ -56,15 +56,15 @@
}
},
"mechanical_port": {
"rendered_sha256": "ab7a7219653b0fc5cdad0bb2959394798bc50ae4db4dc24b76c0454dd1b1397a",
"rendered_sha256": "ca55c56483c524c732cf4cd1a7b7ef36f379666577549ef989823b98bce8c5b5",
"differs_from_baseline": true,
"allowed_difference": "Canonical GStack 2 carve: exclude the retired shared onboarding wrapper and host hook advisory; resolve retired invocations to six public routes; relocate host/runtime paths; lazy-load pinned carved sections from package-local references."
},
"candidate": {
"target_path": "skills/ship/references/legacy/ship.md",
"rendered_legacy_body_sha256": "ab7a7219653b0fc5cdad0bb2959394798bc50ae4db4dc24b76c0454dd1b1397a",
"rendered_legacy_body_sha256": "ca55c56483c524c732cf4cd1a7b7ef36f379666577549ef989823b98bce8c5b5",
"semantic_signature": {
"normalized_sha256": "ab7a7219653b0fc5cdad0bb2959394798bc50ae4db4dc24b76c0454dd1b1397a",
"normalized_sha256": "ca55c56483c524c732cf4cd1a7b7ef36f379666577549ef989823b98bce8c5b5",
"headings_sha256": "42c12606506cfd2cfd31dc678c91d63b0212aa4e424730f5b9e257ab033c4958",
"questions_sha256": "943ac3bc0b28becb558873810d1884e4311865a10cbd44a2b8c8ae0184fece84",
"obligations_sha256": "134233894787ff09edb0506fdede185d24a756fc3278fe2e81790296bd48ca8c",
@@ -58,15 +58,15 @@
}
},
"mechanical_port": {
"rendered_sha256": "059ec7a95791f6fc559f4e2321d7340ef5ae7e4ba89949df401f74d91411bfd3",
"rendered_sha256": "76b7c03e6d8e7b852beda0a58409d97153771dd8f7b870bbdda23e996ac23fc1",
"differs_from_baseline": true,
"allowed_difference": "Canonical GStack 2 carve: exclude the retired shared onboarding wrapper and host hook advisory; resolve retired invocations to six public routes; relocate host/runtime paths; lazy-load pinned carved sections from package-local references."
},
"candidate": {
"target_path": "skills/plan/references/legacy/spec.md",
"rendered_legacy_body_sha256": "059ec7a95791f6fc559f4e2321d7340ef5ae7e4ba89949df401f74d91411bfd3",
"rendered_legacy_body_sha256": "76b7c03e6d8e7b852beda0a58409d97153771dd8f7b870bbdda23e996ac23fc1",
"semantic_signature": {
"normalized_sha256": "059ec7a95791f6fc559f4e2321d7340ef5ae7e4ba89949df401f74d91411bfd3",
"normalized_sha256": "76b7c03e6d8e7b852beda0a58409d97153771dd8f7b870bbdda23e996ac23fc1",
"headings_sha256": "339ccc4b1c0d870b7c696ef28b1116ee22742a81d7b8713040a2766a3e36c3c3",
"questions_sha256": "d98a7e322b838c543487c19d59332501a4393513b5f1a58b2ba4ac6cf911aa67",
"obligations_sha256": "7f6a3078d1b84288b26cf37943d7a036d8f7a50d7a1dcea6aefe96c297662a6b",