@ccoalm/ccl-skills 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/classify_envelope.py +34 -3
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_abort_leak_state_helpers.sh +148 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_classify_envelope.sh +28 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_parse_review_json.sh +7 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_gate.sh +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_gate_abort_leak.sh +271 -34
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/references/public-data-acquisition.md +3 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/references/public-disclosure-channels.md +2 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/SKILL.md +12 -12
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/dual-track-review-gate.md +8 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/eval-routing.md +7 -8
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/external-practice-controls.md +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/extraction-quickstart.md +3 -2
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/firing-point-placement.md +8 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/harness-patterns-and-eval.md +7 -6
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/recurring-anti-patterns-checklist.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-register.md +47 -2
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-to-skill-extraction.md +28 -29
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-ccl-skills.sh +165 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-health.rb +23 -10
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/impact-chain-gate.rb +303 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_impact_chain_refscripts.sh +222 -91
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_regressions.sh +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_ci_checkout_ref_binding.sh +85 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_entrypoint_domain_scan_terms.sh +123 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_impact_chain_gate_dateless_host.sh +6 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_impact_chain_gate_verdict_differential.sh +1 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_impact_chain_round_attribution.sh +12 -12
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_impact_chain_self_adjudication.sh +455 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_impact_chain_source_refuted.sh +20 -20
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_liveness_predicate_gate.sh +288 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/SKILL.md +4 -4
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/deliverable-doc-genre-skeletons.md +133 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/doc-charter-first.md +2 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/figure-and-table-craft.md +318 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/AGENTS.md +46 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/doc-lint.py +246 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/figure-lint.py +1092 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/mutation_probe.sh +100 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/test_figure_and_doc_lint.sh +375 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/doc/control.md +10 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/doc/empty-header.md +6 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/doc/fake-header.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/doc/fenced-noise.md +14 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/doc/fig-dangling.md +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/doc/fig-orphan-captioned.md +11 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/doc/fig-orphan.md +9 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/doc/fig.png +0 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/doc/imbalance.md +41 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/doc/no-unit.md +8 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/doc/should-be-chart.md +11 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/doc/tables-only-clean.md +35 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/doc/unfilled.md +7 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/doc/wide-table.md +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/bad-viewbox.svg +9 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/blackmarker.svg +9 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/control.svg +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/crossings.svg +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/cvd-confusable.svg +9 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/decorative-line.svg +10 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/edge-no-arrow.svg +11 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/edge-vague.svg +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/figure-contract.json +21 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/figure-is-a-list.svg +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/flow-mixed.svg +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/low-contrast.svg +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/malformed.svg +1 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/no-aria.svg +9 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/no-group.svg +10 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/no-legend.svg +9 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/no-title.svg +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/no-viewbox.svg +9 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/offcontract-shape.svg +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/overflow.svg +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/transformed.svg +9 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/ungrouped-card.svg +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/tests/svg/unlabeled-edge.svg +13 -0
- package/dist/assets/release.json +276 -31
- package/package.json +1 -1
|
@@ -66,6 +66,22 @@ new_case() {
|
|
|
66
66
|
git -C "$REPO" switch -q -C "$1" fixture-base
|
|
67
67
|
git -C "$REPO" branch --set-upstream-to=fixture-base "$1" >/dev/null 2>&1
|
|
68
68
|
}
|
|
69
|
+
# 045: a round that edits a frontmatter description owes bank evidence. These
|
|
70
|
+
# fixtures exercise the OTHER impact-chain predicates and deliberately do not
|
|
71
|
+
# measure routing, so each routing-surface case records that downscope where a
|
|
72
|
+
# reader reaches it — verbatim, because a bare token would be discharged by any
|
|
73
|
+
# line that happens to contain the word.
|
|
74
|
+
RS_DOWNSCOPE_N=0
|
|
75
|
+
routing_surface_downscope() {
|
|
76
|
+
# APPENDS a uniquely numbered line, one per call. The record has to be an ADDED
|
|
77
|
+
# line in the round being judged: a multi-round case whose first commit wrote
|
|
78
|
+
# the file leaves the second round with no added line, and an identical rewrite
|
|
79
|
+
# produces no diff at all. Each round records its own downscope.
|
|
80
|
+
RS_DOWNSCOPE_N=$((RS_DOWNSCOPE_N + 1))
|
|
81
|
+
mkdir -p "$REPO/specs/fixture-refscripts"
|
|
82
|
+
printf -- '- Round %s downscope downscoped:REFSCRIPTS-FIXTURE-NO-BANK: these cases pin gate predicates, not routing measurement.\n' \
|
|
83
|
+
"$RS_DOWNSCOPE_N" >> "$REPO/specs/fixture-refscripts/plan.md"
|
|
84
|
+
}
|
|
69
85
|
commit_case() { git -C "$REPO" add -A; git -C "$REPO" commit -qm "$1"; }
|
|
70
86
|
full_check_runs=0
|
|
71
87
|
gate_runs=0
|
|
@@ -96,6 +112,7 @@ run_gate() {
|
|
|
96
112
|
# Case 1: an upstream owner's REFERENCE changed with NO impact-chain row -> block.
|
|
97
113
|
new_case case-ref-no-row
|
|
98
114
|
printf '\nFixture reference edit for the impact-chain refscripts gate.\n' >> "$REPO/$UPSTREAM_REF"
|
|
115
|
+
routing_surface_downscope
|
|
99
116
|
commit_case "ref edit, no impact-chain row"
|
|
100
117
|
run_full_check
|
|
101
118
|
assert_rc "$rc" 1 "reference edit without a row must fail the gate"
|
|
@@ -110,6 +127,7 @@ assert_contains "references/ and scripts/" "$out" "diagnostic should explain ref
|
|
|
110
127
|
new_case case-ref-row-without-behavior-evidence
|
|
111
128
|
printf '\nFixture reference edit for the impact-chain behavior-evidence gate.\n' >> "$REPO/$UPSTREAM_REF"
|
|
112
129
|
printf '| Fixture row without behavior evidence | `downstream-executor` | Executor applies the reference behavior | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
130
|
+
routing_surface_downscope
|
|
113
131
|
commit_case "ref edit with row but no behavior evidence"
|
|
114
132
|
run_gate
|
|
115
133
|
assert_rc "$rc" 1 "an impact-chain row without behavioral evidence must fail"
|
|
@@ -120,7 +138,8 @@ assert_contains "impact_chain_behavior_evidence_missing" "$out" "checker should
|
|
|
120
138
|
# must be accepted as an enforcing firing-path line.
|
|
121
139
|
new_case case-ref-never-verb-firing-path
|
|
122
140
|
printf '\n- Never bypass the fixture upstream rule for this gate.\n' >> "$REPO/$UPSTREAM_REF"
|
|
123
|
-
printf '| Fixture never-verb rule | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Never bypass the fixture upstream rule | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
141
|
+
printf '| Fixture never-verb rule | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Never bypass the fixture upstream rule | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
142
|
+
routing_surface_downscope
|
|
124
143
|
commit_case "never-verb normative firing path"
|
|
125
144
|
run_gate
|
|
126
145
|
assert_not_contains "impact_chain_firing_path_missing" "$out" "a never-phrased normative rule should satisfy the firing-path gate"
|
|
@@ -130,7 +149,8 @@ assert_rc "$rc" 0 "a never-phrased normative list rule must be accepted"
|
|
|
130
149
|
# verb) is not an enforcing rule; the widened verb list must not admit it.
|
|
131
150
|
new_case case-ref-descriptive-always-firing-path
|
|
132
151
|
printf '\n- The host always exposes this delegation capability surface.\n' >> "$REPO/$UPSTREAM_REF"
|
|
133
|
-
printf '| Fixture descriptive always line | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#always exposes this delegation capability | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
152
|
+
printf '| Fixture descriptive always line | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#always exposes this delegation capability | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
153
|
+
routing_surface_downscope
|
|
134
154
|
commit_case "descriptive always line as firing path"
|
|
135
155
|
run_gate
|
|
136
156
|
assert_rc "$rc" 1 "a descriptive list line must not satisfy the firing-path gate"
|
|
@@ -140,7 +160,8 @@ assert_contains "impact_chain_firing_path_missing" "$out" "checker should reject
|
|
|
140
160
|
# comment-carrying anchor line is never an enforcing rule surface.
|
|
141
161
|
new_case case-ref-html-comment-firing-path
|
|
142
162
|
printf '\n- <!-- must enforce this hidden fixture directive --> bookkeeping note.\n' >> "$REPO/$UPSTREAM_REF"
|
|
143
|
-
printf '| Fixture html-comment firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#must enforce this hidden fixture directive | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
163
|
+
printf '| Fixture html-comment firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#must enforce this hidden fixture directive | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
164
|
+
routing_surface_downscope
|
|
144
165
|
commit_case "html-comment line as firing path"
|
|
145
166
|
run_gate
|
|
146
167
|
assert_rc "$rc" 1 "an HTML-comment anchor line must not satisfy the firing-path gate"
|
|
@@ -152,7 +173,8 @@ new_case case-ref-noshebang-command-firing-path
|
|
|
152
173
|
printf '\nFixture reference edit for the shebang command gate.\n' >> "$REPO/$UPSTREAM_REF"
|
|
153
174
|
printf '# fixture executable-bit markdown\n' > "$REPO/skills/product-rd-workflow/scripts/zz-fixture-noshebang.md"
|
|
154
175
|
chmod +x "$REPO/skills/product-rd-workflow/scripts/zz-fixture-noshebang.md"
|
|
155
|
-
printf '| Fixture no-shebang command | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: command:skills/product-rd-workflow/scripts/zz-fixture-noshebang.md | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
176
|
+
printf '| Fixture no-shebang command | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: command:skills/product-rd-workflow/scripts/zz-fixture-noshebang.md | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
177
|
+
routing_surface_downscope
|
|
156
178
|
commit_case "executable-bit file without shebang as firing path"
|
|
157
179
|
run_gate
|
|
158
180
|
assert_rc "$rc" 1 "a shebang-less executable-bit file must not satisfy a command firing path"
|
|
@@ -165,7 +187,8 @@ new_case case-ref-command-firing-path-accepted
|
|
|
165
187
|
printf '\nFixture reference edit for the accepted command firing path.\n' >> "$REPO/$UPSTREAM_REF"
|
|
166
188
|
printf '#!/usr/bin/env bash\nprintf "fixture owner enforcement script\\n"\n' > "$REPO/skills/product-rd-workflow/scripts/zz-fixture-owner-command.sh"
|
|
167
189
|
chmod +x "$REPO/skills/product-rd-workflow/scripts/zz-fixture-owner-command.sh"
|
|
168
|
-
printf '| Fixture accepted command firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: command:skills/product-rd-workflow/scripts/zz-fixture-owner-command.sh | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
190
|
+
printf '| Fixture accepted command firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: command:skills/product-rd-workflow/scripts/zz-fixture-owner-command.sh | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
191
|
+
routing_surface_downscope
|
|
169
192
|
commit_case "changed shebang owner executable as firing path"
|
|
170
193
|
run_gate
|
|
171
194
|
assert_not_contains "impact_chain_firing_path_missing" "$out" "a changed shebang owner executable should satisfy the firing-path gate"
|
|
@@ -177,8 +200,9 @@ assert_rc "$rc" 0 "a complete RED row with a changed owner executable must pass"
|
|
|
177
200
|
# (review owns that residual). The complete sibling row satisfies the gate.
|
|
178
201
|
new_case case-ref-malformed-row-advisory
|
|
179
202
|
printf '\n- MUST enforce Fixture reference edit for the malformed-row gate.\n' >> "$REPO/$UPSTREAM_REF"
|
|
180
|
-
printf '| Fixture complete sibling row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
203
|
+
printf '| Fixture complete sibling row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
181
204
|
printf '| Fixture malformed row | `downstream-executor` | prose with an unescaped | pipe inside a cell | `updated` | `product-rd-workflow/SKILL.md` second disposition |\n' >> "$REGISTER"
|
|
205
|
+
routing_surface_downscope
|
|
182
206
|
commit_case "complete row plus malformed sibling row"
|
|
183
207
|
run_gate
|
|
184
208
|
assert_contains "impact_chain_row_malformed" "$out" "checker should warn about the malformed row"
|
|
@@ -189,7 +213,8 @@ assert_rc "$rc" 0 "a malformed row stays advisory when a complete sibling row sa
|
|
|
189
213
|
# label every change "stable" and self-clear the package.
|
|
190
214
|
new_case case-ref-semantic-control-alone
|
|
191
215
|
printf '\n- MUST enforce Fixture reference edit for semantic-control firing-path coverage.\n' >> "$REPO/$UPSTREAM_REF"
|
|
192
|
-
printf '| Fixture semantic control self-adjudication | `downstream-executor` | behavioral-evidence: semantic-control; observed-failure: no; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
216
|
+
printf '| Fixture semantic control self-adjudication | `downstream-executor` | behavioral-evidence: semantic-control; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
217
|
+
routing_surface_downscope
|
|
193
218
|
commit_case "semantic control label alone"
|
|
194
219
|
run_gate
|
|
195
220
|
assert_rc "$rc" 1 "a semantic-control-only owner package must fail"
|
|
@@ -199,8 +224,9 @@ assert_contains "impact_chain_behavior_evidence_missing" "$out" "checker should
|
|
|
199
224
|
# non-wording owner; the RED row satisfies the owner-level floor.
|
|
200
225
|
new_case case-ref-semantic-control-with-owner-red
|
|
201
226
|
printf '\n- MUST enforce Fixture reference edit for semantic-control plus owner RED validation.\n' >> "$REPO/$UPSTREAM_REF"
|
|
202
|
-
printf '| Fixture stable semantic control | `downstream-executor` | behavioral-evidence: semantic-control; observed-failure: no; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` stable control |\n' >> "$REGISTER"
|
|
203
|
-
printf '| Fixture owner behavior delta | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` changed behavior |\n' >> "$REGISTER"
|
|
227
|
+
printf '| Fixture stable semantic control | `downstream-executor` | behavioral-evidence: semantic-control; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` stable control |\n' >> "$REGISTER"
|
|
228
|
+
printf '| Fixture owner behavior delta | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` changed behavior |\n' >> "$REGISTER"
|
|
229
|
+
routing_surface_downscope
|
|
204
230
|
commit_case "semantic control supplemented by owner RED"
|
|
205
231
|
run_gate
|
|
206
232
|
assert_not_contains "impact_chain_behavior_evidence_missing" "$out" "valid owner RED should permit a supplementary stable semantic-control row"
|
|
@@ -210,7 +236,8 @@ assert_rc "$rc" 0 "semantic-control plus a valid owner RED row should pass"
|
|
|
210
236
|
# closed. This is the exact "rule existed but did not execute" regression.
|
|
211
237
|
new_case case-ref-observed-without-firing-path
|
|
212
238
|
printf '\nFixture reference edit for the impact-chain firing-path gate.\n' >> "$REPO/$UPSTREAM_REF"
|
|
213
|
-
printf '| Fixture observed failure without firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
239
|
+
printf '| Fixture observed failure without firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
240
|
+
routing_surface_downscope
|
|
214
241
|
commit_case "ref edit with observed failure but no firing path"
|
|
215
242
|
run_gate
|
|
216
243
|
assert_rc "$rc" 1 "an observed failure without a firing path must fail"
|
|
@@ -219,7 +246,8 @@ assert_contains "impact_chain_firing_path_missing" "$out" "checker should name t
|
|
|
219
246
|
# Whitespace is not a firing path either.
|
|
220
247
|
new_case case-ref-observed-with-empty-firing-path
|
|
221
248
|
printf '\nFixture reference edit for the empty firing-path gate.\n' >> "$REPO/$UPSTREAM_REF"
|
|
222
|
-
printf '| Fixture observed failure with empty firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: ; | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
249
|
+
printf '| Fixture observed failure with empty firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: ; | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
250
|
+
routing_surface_downscope
|
|
223
251
|
commit_case "ref edit with empty firing path"
|
|
224
252
|
run_gate
|
|
225
253
|
assert_rc "$rc" 1 "an empty firing path must fail"
|
|
@@ -228,7 +256,8 @@ assert_contains "impact_chain_firing_path_missing" "$out" "checker should reject
|
|
|
228
256
|
# Non-placeholder prose is still not a resolvable firing mechanism.
|
|
229
257
|
new_case case-ref-observed-with-unresolvable-firing-path
|
|
230
258
|
printf '\nFixture reference edit for the resolvable firing-path gate.\n' >> "$REPO/$UPSTREAM_REF"
|
|
231
|
-
printf '| Fixture observed failure with prose firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: the existing rule | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
259
|
+
printf '| Fixture observed failure with prose firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: the existing rule | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
260
|
+
routing_surface_downscope
|
|
232
261
|
commit_case "ref edit with unresolvable firing path"
|
|
233
262
|
run_gate
|
|
234
263
|
assert_rc "$rc" 1 "an arbitrary prose firing path must fail"
|
|
@@ -241,7 +270,8 @@ printf '\nFixture reference edit for owner-scoped firing paths.\n' >> "$REPO/$UP
|
|
|
241
270
|
mkdir -p "$REPO/skills/grill-me/scripts"
|
|
242
271
|
printf '#!/usr/bin/env bash\nprintf "fixture cross-owner executable\\n"\n' > "$REPO/skills/grill-me/scripts/zz-fixture-crossowner.sh"
|
|
243
272
|
chmod +x "$REPO/skills/grill-me/scripts/zz-fixture-crossowner.sh"
|
|
244
|
-
printf '| Fixture cross-owner firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: command:skills/grill-me/scripts/zz-fixture-crossowner.sh | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
273
|
+
printf '| Fixture cross-owner firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: command:skills/grill-me/scripts/zz-fixture-crossowner.sh | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
274
|
+
routing_surface_downscope
|
|
245
275
|
commit_case "ref edit with cross-owner firing path"
|
|
246
276
|
run_gate
|
|
247
277
|
assert_rc "$rc" 1 "a cross-owner firing mechanism must fail"
|
|
@@ -253,7 +283,8 @@ assert_contains "impact_chain_firing_path_missing" "$out" "checker should bind f
|
|
|
253
283
|
new_case case-ref-decorative-owner-prose-firing-path
|
|
254
284
|
printf '\nFixture reference edit for enforcing firing-path coverage.\n' >> "$REPO/$UPSTREAM_REF"
|
|
255
285
|
printf '\n- This row is recorded for ledger bookkeeping only.\n' >> "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
256
|
-
printf '| Fixture decorative firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#This row is recorded for ledger bookkeeping only | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
286
|
+
printf '| Fixture decorative firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#This row is recorded for ledger bookkeeping only | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
287
|
+
routing_surface_downscope
|
|
257
288
|
commit_case "ref edit with decorative owner prose firing path"
|
|
258
289
|
run_gate
|
|
259
290
|
assert_rc "$rc" 1 "decorative owner prose must not satisfy a firing path"
|
|
@@ -262,7 +293,8 @@ assert_contains "impact_chain_firing_path_missing" "$out" "checker should requir
|
|
|
262
293
|
# A token that exists only in old content is not a newly landed firing point.
|
|
263
294
|
new_case case-ref-stale-anchor-firing-path
|
|
264
295
|
printf '\nFixture reference edit for changed-anchor coverage.\n' >> "$REPO/$UPSTREAM_REF"
|
|
265
|
-
printf '| Fixture stale-anchor firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Stale anchor fixture sentence must stay unchanged | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
296
|
+
printf '| Fixture stale-anchor firing path | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Stale anchor fixture sentence must stay unchanged | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
297
|
+
routing_surface_downscope
|
|
266
298
|
commit_case "ref edit with stale anchor firing path"
|
|
267
299
|
run_gate
|
|
268
300
|
assert_rc "$rc" 1 "an unchanged anchor must fail"
|
|
@@ -272,7 +304,8 @@ assert_contains "impact_chain_firing_path_missing" "$out" "checker should requir
|
|
|
272
304
|
# gate satisfied.
|
|
273
305
|
new_case case-ref-with-row
|
|
274
306
|
printf '\n- MUST enforce Fixture reference edit for the impact-chain refscripts gate.\n' >> "$REPO/$UPSTREAM_REF"
|
|
275
|
-
printf '| Fixture reference-path rule | `downstream-executor` | Executor applies the reference behavior; behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
307
|
+
printf '| Fixture reference-path rule | `downstream-executor` | Executor applies the reference behavior; behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
308
|
+
routing_surface_downscope
|
|
276
309
|
commit_case "ref edit with matching impact-chain row"
|
|
277
310
|
run_gate
|
|
278
311
|
assert_not_contains "impact_chain_gate_missing" "$out" "a matching row must satisfy the gate for a reference edit"
|
|
@@ -284,8 +317,9 @@ assert_rc "$rc" 0 "reference edit with a valid row should pass"
|
|
|
284
317
|
# second bare disposition for the same owner.
|
|
285
318
|
new_case case-ref-complete-row-masks-incomplete-row
|
|
286
319
|
printf '\n- MUST enforce Fixture reference edit for per-row behavior evidence.\n' >> "$REPO/$UPSTREAM_REF"
|
|
287
|
-
printf '| Fixture complete row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
320
|
+
printf '| Fixture complete row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
288
321
|
printf '| Fixture incomplete sibling row | `downstream-executor` | Bare owner citation only | `updated` | `product-rd-workflow/SKILL.md` second disposition |\n' >> "$REGISTER"
|
|
322
|
+
routing_surface_downscope
|
|
289
323
|
commit_case "one complete row cannot mask one incomplete row"
|
|
290
324
|
run_gate
|
|
291
325
|
assert_rc "$rc" 1 "every added row for an owner must carry complete behavior evidence"
|
|
@@ -294,6 +328,7 @@ assert_contains "impact_chain_behavior_evidence_missing" "$out" "checker should
|
|
|
294
328
|
# Case 3: an upstream owner's SCRIPT changed with NO impact-chain row -> block.
|
|
295
329
|
new_case case-script-no-row
|
|
296
330
|
printf '\n# fixture script edit for the impact-chain refscripts gate\n' >> "$REPO/$UPSTREAM_SCRIPT"
|
|
331
|
+
routing_surface_downscope
|
|
297
332
|
commit_case "script edit, no impact-chain row"
|
|
298
333
|
run_gate
|
|
299
334
|
assert_rc "$rc" 1 "script edit without a row must fail the gate"
|
|
@@ -307,7 +342,8 @@ new_case case-ref-indented-row
|
|
|
307
342
|
UPSTREAM_REF2="skills/test-artifact-management/references/gen_report.py" # a NON-.md upstream reference
|
|
308
343
|
[ -f "$REPO/$UPSTREAM_REF2" ] || fail "fixture non-md reference missing: $UPSTREAM_REF2"
|
|
309
344
|
printf '\n- MUST enforce Fixture reference edit for the impact-chain refscripts gate.\n' >> "$REPO/$UPSTREAM_REF"
|
|
310
|
-
printf ' | Fixture indented row | `downstream-executor` | Executor applies the reference behavior; behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
345
|
+
printf ' | Fixture indented row | `downstream-executor` | Executor applies the reference behavior; behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
346
|
+
routing_surface_downscope
|
|
311
347
|
commit_case "ref edit with an indented (valid) impact-chain row"
|
|
312
348
|
run_gate
|
|
313
349
|
assert_not_contains "impact_chain_gate_missing" "$out" "an indented but valid evidence row must count"
|
|
@@ -316,7 +352,8 @@ assert_rc "$rc" 0 "indented valid row should pass"
|
|
|
316
352
|
# Deterministically wording-only rows are the sole no-firing-path exception.
|
|
317
353
|
new_case case-ref-wording-only-row
|
|
318
354
|
printf '\n' >> "$REPO/$UPSTREAM_REF"
|
|
319
|
-
printf '| Fixture formatting-only row | `downstream-executor` | behavioral-evidence: not-required wording-only; artifact: diff:product-rd-workflow/SKILL.md; observed-failure: no | `updated` | `product-rd-workflow/SKILL.md` formatting-only edit |\n' >> "$REGISTER"
|
|
355
|
+
printf '| Fixture formatting-only row | `downstream-executor` | behavioral-evidence: not-required wording-only; artifact: diff:product-rd-workflow/SKILL.md; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `product-rd-workflow/SKILL.md` formatting-only edit |\n' >> "$REGISTER"
|
|
356
|
+
routing_surface_downscope
|
|
320
357
|
commit_case "formatting-only edit with explicit evidence"
|
|
321
358
|
run_gate
|
|
322
359
|
assert_not_contains "impact_chain_behavior_evidence_missing" "$out" "wording-only row with artifact should satisfy behavior record"
|
|
@@ -326,7 +363,8 @@ assert_rc "$rc" 0 "deterministically wording-only row should pass"
|
|
|
326
363
|
# A substantive change cannot self-label as wording-only to skip the firing path.
|
|
327
364
|
new_case case-ref-substantive-mislabeled-wording-only
|
|
328
365
|
printf '\nSubstantive fixture behavior change.\n' >> "$REPO/$UPSTREAM_REF"
|
|
329
|
-
printf '| Fixture mislabeled wording-only row | `downstream-executor` | behavioral-evidence: not-required wording-only; artifact: diff:product-rd-workflow/SKILL.md; observed-failure: no | `updated` | `product-rd-workflow/SKILL.md` substantive edit |\n' >> "$REGISTER"
|
|
366
|
+
printf '| Fixture mislabeled wording-only row | `downstream-executor` | behavioral-evidence: not-required wording-only; artifact: diff:product-rd-workflow/SKILL.md; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `product-rd-workflow/SKILL.md` substantive edit |\n' >> "$REGISTER"
|
|
367
|
+
routing_surface_downscope
|
|
330
368
|
commit_case "substantive edit mislabeled wording-only"
|
|
331
369
|
run_gate
|
|
332
370
|
assert_rc "$rc" 1 "a substantive edit mislabeled wording-only must fail"
|
|
@@ -336,7 +374,8 @@ assert_contains "impact_chain_behavior_evidence_missing" "$out" "checker should
|
|
|
336
374
|
# non-wording change must use RED-baseline or semantic-control.
|
|
337
375
|
new_case case-ref-substantive-mislabeled-wording-only-with-path
|
|
338
376
|
printf '\nAnother substantive fixture behavior change.\n' >> "$REPO/$UPSTREAM_REF"
|
|
339
|
-
printf '| Fixture mislabeled wording-only row with path | `downstream-executor` | behavioral-evidence: not-required wording-only; artifact: diff:product-rd-workflow/SKILL.md; observed-failure: no; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` substantive edit |\n' >> "$REGISTER"
|
|
377
|
+
printf '| Fixture mislabeled wording-only row with path | `downstream-executor` | behavioral-evidence: not-required wording-only; artifact: diff:product-rd-workflow/SKILL.md; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` substantive edit |\n' >> "$REGISTER"
|
|
378
|
+
routing_surface_downscope
|
|
340
379
|
commit_case "substantive edit mislabeled wording-only with path"
|
|
341
380
|
run_gate
|
|
342
381
|
assert_rc "$rc" 1 "a firing path must not rescue a false wording-only label"
|
|
@@ -347,7 +386,8 @@ assert_contains "impact_chain_behavior_evidence_missing" "$out" "checker should
|
|
|
347
386
|
new_case case-owner-multifile-substantive-mislabeled-wording-only
|
|
348
387
|
printf '\n' >> "$REPO/$UPSTREAM_REF"
|
|
349
388
|
printf '\nSubstantive multi-file owner behavior change.\n' >> "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
350
|
-
printf '| Fixture multi-file mislabeled wording-only row | `downstream-executor` | behavioral-evidence: not-required wording-only; artifact: diff:product-rd-workflow/SKILL.md; observed-failure: no | `updated` | `product-rd-workflow/SKILL.md` multi-file substantive edit |\n' >> "$REGISTER"
|
|
389
|
+
printf '| Fixture multi-file mislabeled wording-only row | `downstream-executor` | behavioral-evidence: not-required wording-only; artifact: diff:product-rd-workflow/SKILL.md; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `product-rd-workflow/SKILL.md` multi-file substantive edit |\n' >> "$REGISTER"
|
|
390
|
+
routing_surface_downscope
|
|
351
391
|
commit_case "multi-file substantive owner edit mislabeled wording-only"
|
|
352
392
|
run_gate
|
|
353
393
|
assert_rc "$rc" 1 "wording-only must be false when any owner file has letter or digit deltas"
|
|
@@ -358,7 +398,8 @@ assert_contains "impact_chain_behavior_evidence_missing" "$out" "checker should
|
|
|
358
398
|
# so it must not be classifiable as wording-only.
|
|
359
399
|
new_case case-ref-nonmd-punctuation-mislabeled-wording-only
|
|
360
400
|
printf '\n#\n' >> "$REPO/$UPSTREAM_REF2"
|
|
361
|
-
printf '| Fixture non-md punctuation wording-only row | `downstream-executor` | behavioral-evidence: not-required wording-only; observed-failure: no | `updated` | `test-artifact-management/SKILL.md` runnable reference edit |\n' >> "$REGISTER"
|
|
401
|
+
printf '| Fixture non-md punctuation wording-only row | `downstream-executor` | behavioral-evidence: not-required wording-only; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `test-artifact-management/SKILL.md` runnable reference edit |\n' >> "$REGISTER"
|
|
402
|
+
routing_surface_downscope
|
|
362
403
|
commit_case "punctuation-only edit to a runnable reference mislabeled wording-only"
|
|
363
404
|
run_gate
|
|
364
405
|
assert_rc "$rc" 1 "a non-md owner file change must never classify as wording-only"
|
|
@@ -368,7 +409,8 @@ assert_contains "impact_chain_behavior_evidence_missing" "$out" "checker should
|
|
|
368
409
|
# start its own semicolon-delimited fragment.
|
|
369
410
|
new_case case-ref-embedded-declaration-key
|
|
370
411
|
printf '\n- MUST enforce Fixture reference edit for the embedded-key gate.\n' >> "$REPO/$UPSTREAM_REF"
|
|
371
|
-
printf '| Fixture embedded key row | `downstream-executor` | there is no behavioral-evidence: RED-baseline here; observed-failure: yes; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
412
|
+
printf '| Fixture embedded key row | `downstream-executor` | there is no behavioral-evidence: RED-baseline here; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Fixture reference edit | `updated` | `product-rd-workflow/SKILL.md` reference edit |\n' >> "$REGISTER"
|
|
413
|
+
routing_surface_downscope
|
|
372
414
|
commit_case "declaration key embedded in prose"
|
|
373
415
|
run_gate
|
|
374
416
|
assert_rc "$rc" 1 "an embedded declaration key must not parse as a declaration"
|
|
@@ -378,6 +420,7 @@ assert_contains "impact_chain_behavior_evidence_missing" "$out" "checker should
|
|
|
378
420
|
# must never read as "no changed owners".
|
|
379
421
|
new_case case-git-diff-failure-fails-closed
|
|
380
422
|
printf '\nFixture reference edit for the git fail-closed gate.\n' >> "$REPO/$UPSTREAM_REF"
|
|
423
|
+
routing_surface_downscope
|
|
381
424
|
commit_case "ref edit behind a failing git diff"
|
|
382
425
|
GIT_SHIM_DIR="$TMP/git-shim"
|
|
383
426
|
mkdir -p "$GIT_SHIM_DIR"
|
|
@@ -396,6 +439,7 @@ assert_contains "impact_chain_git_failed" "$out" "checker should name the failed
|
|
|
396
439
|
# Editing it without an impact-chain row must not bypass the gate.
|
|
397
440
|
new_case case-research-owner-no-row
|
|
398
441
|
printf '\nFixture research-owner edit for impact-chain coverage.\n' >> "$REPO/skills/multi-perspective-research/SKILL.md"
|
|
442
|
+
routing_surface_downscope
|
|
399
443
|
commit_case "research owner edit, no impact-chain row"
|
|
400
444
|
run_gate
|
|
401
445
|
assert_rc "$rc" 1 "a research-owner edit without an impact-chain row must fail"
|
|
@@ -406,6 +450,7 @@ assert_contains "multi-perspective-research/SKILL.md" "$out" "diagnostic should
|
|
|
406
450
|
# escape the same impact-chain row requirement that they impose on other owners.
|
|
407
451
|
new_case case-extraction-owner-no-row
|
|
408
452
|
printf '\n- MUST enforce fixture extraction-owner behavior.\n' >> "$REPO/skills/skill-extraction-workflow/SKILL.md"
|
|
453
|
+
routing_surface_downscope
|
|
409
454
|
commit_case "skill-extraction owner edit, no impact-chain row"
|
|
410
455
|
run_gate
|
|
411
456
|
assert_rc "$rc" 1 "the extraction owner must require its own impact-chain row"
|
|
@@ -416,6 +461,7 @@ assert_contains "skill-extraction-workflow/SKILL.md" "$out" "diagnostic should n
|
|
|
416
461
|
# helper) also ships behavior and must require a row. Guards the references/.+ fix.
|
|
417
462
|
new_case case-nonmd-ref-no-row
|
|
418
463
|
printf '\n# fixture edit to a non-md upstream reference helper\n' >> "$REPO/$UPSTREAM_REF2"
|
|
464
|
+
routing_surface_downscope
|
|
419
465
|
commit_case "non-md reference edit, no impact-chain row"
|
|
420
466
|
run_gate
|
|
421
467
|
assert_rc "$rc" 1 "a non-.md reference edit without a row must fail the gate"
|
|
@@ -427,6 +473,7 @@ assert_contains "test-artifact-management/SKILL.md" "$out" "diagnostic should na
|
|
|
427
473
|
# path. Guards the --no-renames fix.
|
|
428
474
|
new_case case-ref-moveout
|
|
429
475
|
git -C "$REPO" mv "$MOVEOUT_REL" "docs/zz-fixture-moveout.md"
|
|
476
|
+
routing_surface_downscope
|
|
430
477
|
commit_case "move an upstream reference out of skills/ with no row"
|
|
431
478
|
run_gate
|
|
432
479
|
assert_rc "$rc" 1 "moving an upstream reference out of skills/ without a row must fail"
|
|
@@ -439,7 +486,8 @@ assert_contains "product-rd-workflow/SKILL.md" "$out" "diagnostic should name th
|
|
|
439
486
|
new_case case-ref-moveout-with-replacement-row
|
|
440
487
|
git -C "$REPO" mv "$MOVEOUT_REL" "docs/zz-fixture-moveout.md"
|
|
441
488
|
printf '\n- MUST enforce Fixture replacement rule after deleting an owner reference.\n' >> "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
442
|
-
printf '| Fixture move-out replacement row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#Fixture replacement rule after deleting an owner reference | `updated` | `product-rd-workflow/SKILL.md` replacement rule |\n' >> "$REGISTER"
|
|
489
|
+
printf '| Fixture move-out replacement row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#Fixture replacement rule after deleting an owner reference | `updated` | `product-rd-workflow/SKILL.md` replacement rule |\n' >> "$REGISTER"
|
|
490
|
+
routing_surface_downscope
|
|
443
491
|
commit_case "move an upstream reference out with replacement evidence"
|
|
444
492
|
run_gate
|
|
445
493
|
assert_not_contains "impact_chain_behavior_evidence_missing" "$out" "a deletion covered by a surviving changed firing path should validate"
|
|
@@ -450,6 +498,7 @@ assert_rc "$rc" 0 "move-out with complete deleted-subject evidence should pass"
|
|
|
450
498
|
# row to it (with no other upstream change) must NOT demand a self-referential row.
|
|
451
499
|
new_case case-register-only
|
|
452
500
|
printf '\n<!-- fixture: benign ledger note, no upstream change -->\n' >> "$REGISTER"
|
|
501
|
+
routing_surface_downscope
|
|
453
502
|
commit_case "register-only edit is excluded"
|
|
454
503
|
run_gate
|
|
455
504
|
assert_not_contains "impact_chain_gate_missing" "$out" "editing only the ledger must not trigger the gate"
|
|
@@ -459,7 +508,7 @@ assert_rc "$rc" 0 "register-only edit should pass"
|
|
|
459
508
|
# skill-extraction-workflow itself; the surviving owner SKILL remains bound.
|
|
460
509
|
new_case case-extraction-owner-ledger-exclusion
|
|
461
510
|
printf '\n- MUST enforce Fixture extraction owner ledger exclusion.\n' >> "$REPO/skills/skill-extraction-workflow/SKILL.md"
|
|
462
|
-
printf '| Fixture extraction ledger exclusion | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/skill-extraction-workflow/SKILL.md#Fixture extraction owner ledger exclusion | `updated` | `skill-extraction-workflow/SKILL.md` fixture rule |\n' >> "$REGISTER"
|
|
511
|
+
printf '| Fixture extraction ledger exclusion | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/skill-extraction-workflow/SKILL.md#Fixture extraction owner ledger exclusion | `updated` | `skill-extraction-workflow/SKILL.md` fixture rule |\n' >> "$REGISTER"
|
|
463
512
|
git -C "$REPO" add -A
|
|
464
513
|
git -C "$REPO" commit -qm "extraction owner ledger exclusion"
|
|
465
514
|
run_gate
|
|
@@ -474,7 +523,8 @@ assert_rc "$rc" 0 "extraction owner change plus ledger row should pass"
|
|
|
474
523
|
new_case case-owner-package-renamed
|
|
475
524
|
git -C "$REPO" mv skills/platform-observability skills/platform-signal-evidence
|
|
476
525
|
printf '\n- MUST enforce Fixture renamed owner rule.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
477
|
-
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-signal-evidence/SKILL.md#Fixture renamed owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
526
|
+
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Fixture renamed owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
527
|
+
routing_surface_downscope
|
|
478
528
|
commit_case "rename an upstream owner package with a row on the surviving name"
|
|
479
529
|
run_gate
|
|
480
530
|
assert_not_contains "platform-observability/SKILL.md" "$out" "the renamed-away path must not be demanded as a row subject"
|
|
@@ -486,6 +536,7 @@ assert_rc "$rc" 0 "renaming an owner package with a row on the new name should p
|
|
|
486
536
|
new_case case-owner-package-renamed-live-owner-still-bound
|
|
487
537
|
git -C "$REPO" mv skills/platform-observability skills/platform-signal-evidence
|
|
488
538
|
printf '\nFixture reference edit alongside an unrelated owner rename.\n' >> "$REPO/$UPSTREAM_REF"
|
|
539
|
+
routing_surface_downscope
|
|
489
540
|
commit_case "rename one owner while editing another owner's reference, no row"
|
|
490
541
|
run_gate
|
|
491
542
|
assert_rc "$rc" 1 "a live owner's reference edit must still demand a row"
|
|
@@ -501,8 +552,9 @@ assert_not_contains "platform-observability/SKILL.md" "$out" "the renamed-away p
|
|
|
501
552
|
new_case case-identifier-rename-retarget
|
|
502
553
|
git -C "$REPO" mv skills/platform-observability skills/platform-signal-evidence
|
|
503
554
|
retarget_all "$REPO/skills/platform-signal-evidence" "$REPO/skills/defect-diagnosis"
|
|
504
|
-
printf '| Fixture retarget row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no | `updated` | `defect-diagnosis/SKILL.md` pointer retarget |\n' >> "$REGISTER"
|
|
505
|
-
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
555
|
+
printf '| Fixture retarget row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `defect-diagnosis/SKILL.md` pointer retarget |\n' >> "$REGISTER"
|
|
556
|
+
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
557
|
+
routing_surface_downscope
|
|
506
558
|
commit_case "retarget a pointer at a renamed skill"
|
|
507
559
|
run_gate
|
|
508
560
|
assert_rc "$rc" 1 "the renamed owner itself must not take the no-behaviour class"
|
|
@@ -516,8 +568,9 @@ new_case case-identifier-rename-smuggled-content
|
|
|
516
568
|
git -C "$REPO" mv skills/platform-observability skills/platform-signal-evidence
|
|
517
569
|
retarget_all "$REPO/skills/platform-signal-evidence" "$REPO/skills/defect-diagnosis"
|
|
518
570
|
printf '\n- Smuggled fixture rule that must never ride in on a rename.\n' >> "$REPO/skills/defect-diagnosis/SKILL.md"
|
|
519
|
-
printf '| Fixture smuggled row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no | `updated` | `defect-diagnosis/SKILL.md` pointer retarget |\n' >> "$REGISTER"
|
|
520
|
-
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
571
|
+
printf '| Fixture smuggled row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `defect-diagnosis/SKILL.md` pointer retarget |\n' >> "$REGISTER"
|
|
572
|
+
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
573
|
+
routing_surface_downscope
|
|
521
574
|
commit_case "smuggle content alongside a retarget"
|
|
522
575
|
run_gate
|
|
523
576
|
assert_rc "$rc" 1 "content smuggled alongside a retarget must lose the class"
|
|
@@ -527,7 +580,8 @@ assert_contains "defect-diagnosis/SKILL.md" "$out" "the smuggling owner must be
|
|
|
527
580
|
# no rename pairs there is no transform that could reproduce the bytes.
|
|
528
581
|
new_case case-identifier-rename-declared-without-any-rename
|
|
529
582
|
printf '\n- Fixture rule added with no rename anywhere in the diff.\n' >> "$REPO/skills/defect-diagnosis/SKILL.md"
|
|
530
|
-
printf '| Fixture bogus rename row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no | `updated` | `defect-diagnosis/SKILL.md` no rename happened |\n' >> "$REGISTER"
|
|
583
|
+
printf '| Fixture bogus rename row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `defect-diagnosis/SKILL.md` no rename happened |\n' >> "$REGISTER"
|
|
584
|
+
routing_surface_downscope
|
|
531
585
|
commit_case "declare identifier-rename with no rename in the diff"
|
|
532
586
|
run_gate
|
|
533
587
|
assert_rc "$rc" 1 "the class must be refused when the diff contains no rename"
|
|
@@ -538,6 +592,7 @@ assert_rc "$rc" 1 "the class must be refused when the diff contains no rename"
|
|
|
538
592
|
# self-contradicting gate did not have, because that one failed closed.
|
|
539
593
|
new_case case-owner-package-deleted-still-bound
|
|
540
594
|
git -C "$REPO" rm -rq skills/platform-observability
|
|
595
|
+
routing_surface_downscope
|
|
541
596
|
commit_case "delete an upstream owner package outright with no row"
|
|
542
597
|
run_gate
|
|
543
598
|
assert_rc "$rc" 1 "deleting an upstream owner without a row must still block"
|
|
@@ -554,8 +609,9 @@ rm -f "$REPO/skills/defect-diagnosis/agents/openai.yaml"
|
|
|
554
609
|
# The destination owes real evidence now, so give it a valid owner-scoped anchor;
|
|
555
610
|
# otherwise the gate stops on that row and never reaches the dependent owner.
|
|
556
611
|
printf '\n- Never skip the fixture renamed-owner rule for this gate.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
557
|
-
printf '| Fixture dependent row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no | `updated` | `defect-diagnosis/SKILL.md` pointer retarget |\n' >> "$REGISTER"
|
|
558
|
-
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
612
|
+
printf '| Fixture dependent row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `defect-diagnosis/SKILL.md` pointer retarget |\n' >> "$REGISTER"
|
|
613
|
+
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
614
|
+
routing_surface_downscope
|
|
559
615
|
commit_case "a dependent owner drops a file while retargeting"
|
|
560
616
|
run_gate
|
|
561
617
|
assert_rc "$rc" 1 "a dependent owner that drops a package file must lose the class"
|
|
@@ -567,6 +623,7 @@ assert_contains "defect-diagnosis/SKILL.md" "$out" "the dependent owner must be
|
|
|
567
623
|
new_case case-rename-to-unselected-slug-still-bound
|
|
568
624
|
git -C "$REPO" mv skills/tighten-doc skills/zz-fixture-unselected
|
|
569
625
|
find "$REPO/skills/zz-fixture-unselected" -type f -exec perl -pi -e 's/tighten-doc/zz-fixture-unselected/g' {} +
|
|
626
|
+
routing_surface_downscope
|
|
570
627
|
commit_case "rename a curated owner to a slug nobody added to the curated list"
|
|
571
628
|
run_gate
|
|
572
629
|
assert_rc "$rc" 1 "a curated owner renamed out of the curated list must not escape the gate"
|
|
@@ -581,8 +638,9 @@ git -C "$REPO" mv skills/platform-observability skills/platform-signal-evidence
|
|
|
581
638
|
retarget_all "$REPO/skills/platform-signal-evidence" "$REPO/skills/product-rd-workflow"
|
|
582
639
|
chmod -x "$REPO/$UPSTREAM_SCRIPT"
|
|
583
640
|
printf '\n- Never skip the fixture renamed-owner rule for this gate.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
584
|
-
printf '| Fixture exec-bit row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no | `updated` | `product-rd-workflow/SKILL.md` pointer retarget |\n' >> "$REGISTER"
|
|
585
|
-
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
641
|
+
printf '| Fixture exec-bit row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `product-rd-workflow/SKILL.md` pointer retarget |\n' >> "$REGISTER"
|
|
642
|
+
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
643
|
+
routing_surface_downscope
|
|
586
644
|
commit_case "a dependent owner loses a script's executable bit while retargeting"
|
|
587
645
|
run_gate
|
|
588
646
|
assert_rc "$rc" 1 "dropping an executable bit must lose the class"
|
|
@@ -595,8 +653,9 @@ git -C "$REPO" mv skills/platform-observability skills/platform-signal-evidence
|
|
|
595
653
|
retarget_all "$REPO/skills/platform-signal-evidence" "$REPO/skills/defect-diagnosis"
|
|
596
654
|
printf '\377\376 not utf-8 \377' > "$REPO/skills/defect-diagnosis/zz-fixture-binary.bin"
|
|
597
655
|
printf '\n- Never skip the fixture renamed-owner rule for this gate.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
598
|
-
printf '| Fixture binary row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no | `updated` | `defect-diagnosis/SKILL.md` pointer retarget |\n' >> "$REGISTER"
|
|
599
|
-
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
656
|
+
printf '| Fixture binary row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `defect-diagnosis/SKILL.md` pointer retarget |\n' >> "$REGISTER"
|
|
657
|
+
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
658
|
+
routing_surface_downscope
|
|
600
659
|
commit_case "a dependent owner package tracks a non-UTF-8 blob"
|
|
601
660
|
run_gate
|
|
602
661
|
assert_not_contains "invalid byte sequence" "$out" "a non-UTF-8 blob must not crash the comparison"
|
|
@@ -612,8 +671,9 @@ git -C "$REPO" mv skills/platform-signal-evidence/references/platform-observabil
|
|
|
612
671
|
skills/platform-signal-evidence/references/platform-signal-evidence-playbook.md
|
|
613
672
|
retarget_all "$REPO/skills/platform-signal-evidence" "$REPO/skills/defect-diagnosis"
|
|
614
673
|
printf '\n- Never skip the fixture renamed-owner rule for this gate.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
615
|
-
printf '| Fixture inner-rename dependent row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no | `updated` | `defect-diagnosis/SKILL.md` pointer retarget |\n' >> "$REGISTER"
|
|
616
|
-
printf '| Fixture inner-rename owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
674
|
+
printf '| Fixture inner-rename dependent row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `defect-diagnosis/SKILL.md` pointer retarget |\n' >> "$REGISTER"
|
|
675
|
+
printf '| Fixture inner-rename owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
676
|
+
routing_surface_downscope
|
|
617
677
|
commit_case "rename an owner whose inner filename carries the slug"
|
|
618
678
|
run_gate
|
|
619
679
|
assert_not_contains "platform-observability/SKILL.md" "$out" "an inner filename carrying the slug must not break the move proof"
|
|
@@ -626,9 +686,11 @@ assert_rc "$rc" 0 "a rename that also renames a slug-named inner file should sti
|
|
|
626
686
|
# description entry instead. Exempting it would drop the evidence requirement from
|
|
627
687
|
# the class carrying the most behaviour.
|
|
628
688
|
new_case case-routing-surface-description-anchor
|
|
689
|
+
routing_surface_downscope
|
|
629
690
|
perl -0pi -e 's/^(description: .+)$/$1 Fixture routing-surface trigger clause./m' \
|
|
630
691
|
"$REPO/skills/product-rd-workflow/SKILL.md"
|
|
631
|
-
printf '| Fixture routing-surface row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description-only |\n' >> "$REGISTER"
|
|
692
|
+
printf '| Fixture routing-surface row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description-only |\n' >> "$REGISTER"
|
|
693
|
+
routing_surface_downscope
|
|
632
694
|
commit_case "routing-surface: anchor bound to the changed description"
|
|
633
695
|
run_gate
|
|
634
696
|
assert_not_contains "impact_chain_firing_path_missing" "$out" "a changed description must be an anchorable firing path when it is the owner's whole change"
|
|
@@ -640,29 +702,35 @@ assert_rc "$rc" 0 "a description-only owner may anchor its firing path on the ch
|
|
|
640
702
|
# description line cannot meet. Each case varies exactly one of the three arms;
|
|
641
703
|
# without the third, the non-description frontmatter comparison stays unmeasured.
|
|
642
704
|
new_case case-routing-surface-anchor-refused-with-body-edit
|
|
705
|
+
routing_surface_downscope
|
|
643
706
|
perl -0pi -e 's/^(description: .+)$/$1 Fixture routing-surface trigger clause./m' \
|
|
644
707
|
"$REPO/skills/product-rd-workflow/SKILL.md"
|
|
645
708
|
printf '\n- Never skip the smuggled fixture body rule for this gate.\n' >> "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
646
|
-
printf '| Fixture routing-surface body row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description plus body |\n' >> "$REGISTER"
|
|
709
|
+
printf '| Fixture routing-surface body row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description plus body |\n' >> "$REGISTER"
|
|
710
|
+
routing_surface_downscope
|
|
647
711
|
commit_case "routing-surface: body content beside the description"
|
|
648
712
|
run_gate
|
|
649
713
|
assert_rc "$rc" 1 "a body edit riding along must take back the ordinary anchor bar"
|
|
650
714
|
|
|
651
715
|
new_case case-routing-surface-anchor-refused-with-reference-edit
|
|
716
|
+
routing_surface_downscope
|
|
652
717
|
perl -0pi -e 's/^(description: .+)$/$1 Fixture routing-surface trigger clause./m' \
|
|
653
718
|
"$REPO/skills/product-rd-workflow/SKILL.md"
|
|
654
719
|
printf '\n- Never skip the smuggled fixture reference rule for this gate.\n' >> "$REPO/$UPSTREAM_REF"
|
|
655
|
-
printf '| Fixture routing-surface reference row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description plus reference |\n' >> "$REGISTER"
|
|
720
|
+
printf '| Fixture routing-surface reference row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description plus reference |\n' >> "$REGISTER"
|
|
721
|
+
routing_surface_downscope
|
|
656
722
|
commit_case "routing-surface: sibling reference beside the description"
|
|
657
723
|
run_gate
|
|
658
724
|
assert_rc "$rc" 1 "a sibling reference edit must take back the ordinary anchor bar"
|
|
659
725
|
|
|
660
726
|
new_case case-routing-surface-anchor-refused-with-frontmatter-key
|
|
727
|
+
routing_surface_downscope
|
|
661
728
|
perl -0pi -e 's/^(description: .+)$/$1 Fixture routing-surface trigger clause./m' \
|
|
662
729
|
"$REPO/skills/product-rd-workflow/SKILL.md"
|
|
663
730
|
perl -0pi -e 's/^(name: product-rd-workflow)$/$1\nfixture_extra_key: smuggled/m' \
|
|
664
731
|
"$REPO/skills/product-rd-workflow/SKILL.md"
|
|
665
|
-
printf '| Fixture routing-surface frontmatter row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description plus another frontmatter key |\n' >> "$REGISTER"
|
|
732
|
+
printf '| Fixture routing-surface frontmatter row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description plus another frontmatter key |\n' >> "$REGISTER"
|
|
733
|
+
routing_surface_downscope
|
|
666
734
|
commit_case "routing-surface: second frontmatter key beside the description"
|
|
667
735
|
run_gate
|
|
668
736
|
assert_rc "$rc" 1 "a second frontmatter key must take back the ordinary anchor bar"
|
|
@@ -673,9 +741,11 @@ assert_rc "$rc" 1 "a second frontmatter key must take back the ordinary anchor b
|
|
|
673
741
|
# prefix would leave exactly these owners unanchorable, which is the problem this
|
|
674
742
|
# widening exists to solve.
|
|
675
743
|
new_case case-routing-surface-anchor-on-continuation-line
|
|
744
|
+
routing_surface_downscope
|
|
676
745
|
perl -0pi -e 's/^description: (.+)$/description: >-\n $1\n Fixture routing-surface trigger clause./m' \
|
|
677
746
|
"$REPO/skills/product-rd-workflow/SKILL.md"
|
|
678
|
-
printf '| Fixture routing-surface folded row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` folded description |\n' >> "$REGISTER"
|
|
747
|
+
printf '| Fixture routing-surface folded row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` folded description |\n' >> "$REGISTER"
|
|
748
|
+
routing_surface_downscope
|
|
679
749
|
commit_case "routing-surface: anchor on a folded-scalar continuation line"
|
|
680
750
|
run_gate
|
|
681
751
|
assert_rc "$rc" 0 "an anchor inside a folded description entry must bind"
|
|
@@ -689,10 +759,12 @@ perl -0pi -e 's/^description: (.+)$/description: >-\n $1\n Fixture routing-sur
|
|
|
689
759
|
git -C "$REPO" add -A; git -C "$REPO" commit -qm "seed folded description base"
|
|
690
760
|
git -C "$REPO" switch -q -C case-routing-surface-anchor-after-deletion fixture-folded
|
|
691
761
|
git -C "$REPO" branch --set-upstream-to=fixture-folded case-routing-surface-anchor-after-deletion >/dev/null 2>&1
|
|
762
|
+
routing_surface_downscope
|
|
692
763
|
perl -0pi -e 's/\n Fixture routing-surface second clause\.//' "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
693
764
|
[ -z "$(git -C "$REPO" diff fixture-folded -- skills/product-rd-workflow/SKILL.md | grep -E '^\+[^+]')" ] \
|
|
694
765
|
|| fail "deletion fixture must add no line to the owner entrypoint"
|
|
695
|
-
printf '| Fixture routing-surface deletion row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` deleted continuation line |\n' >> "$REGISTER"
|
|
766
|
+
printf '| Fixture routing-surface deletion row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` deleted continuation line |\n' >> "$REGISTER"
|
|
767
|
+
routing_surface_downscope
|
|
696
768
|
commit_case "routing-surface: continuation line deleted, nothing added"
|
|
697
769
|
run_gate
|
|
698
770
|
assert_rc "$rc" 0 "a description change that only deletes a continuation line must still qualify"
|
|
@@ -701,9 +773,11 @@ assert_rc "$rc" 0 "a description change that only deletes a continuation line mu
|
|
|
701
773
|
# ride inside the entry — and even carry the anchor — if the entry boundary were
|
|
702
774
|
# the only check. The value must still be a string.
|
|
703
775
|
new_case case-routing-surface-nested-mapping-refused
|
|
776
|
+
routing_surface_downscope
|
|
704
777
|
perl -0pi -e 's/^description: .+$/description:\n hidden_key: Fixture routing-surface trigger clause/m' \
|
|
705
778
|
"$REPO/skills/product-rd-workflow/SKILL.md"
|
|
706
|
-
printf '| Fixture routing-surface nested row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` nested description |\n' >> "$REGISTER"
|
|
779
|
+
printf '| Fixture routing-surface nested row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` nested description |\n' >> "$REGISTER"
|
|
780
|
+
routing_surface_downscope
|
|
707
781
|
commit_case "routing-surface: description turned into a nested mapping"
|
|
708
782
|
run_gate
|
|
709
783
|
assert_rc "$rc" 1 "a description that is not a string must lose the anchor widening"
|
|
@@ -712,9 +786,11 @@ assert_rc "$rc" 1 "a description that is not a string must lose the anchor widen
|
|
|
712
786
|
# at the blank line would push the later paragraph into the "other keys" set and
|
|
713
787
|
# refuse an ordinary description edit.
|
|
714
788
|
new_case case-routing-surface-blank-line-in-folded-description
|
|
789
|
+
routing_surface_downscope
|
|
715
790
|
perl -0pi -e 's/^description: (.+)$/description: >-\n $1\n\n Fixture routing-surface trigger clause./m' \
|
|
716
791
|
"$REPO/skills/product-rd-workflow/SKILL.md"
|
|
717
|
-
printf '| Fixture routing-surface blank-line row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` folded description with blank line |\n' >> "$REGISTER"
|
|
792
|
+
printf '| Fixture routing-surface blank-line row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` folded description with blank line |\n' >> "$REGISTER"
|
|
793
|
+
routing_surface_downscope
|
|
718
794
|
commit_case "routing-surface: folded description containing a blank line"
|
|
719
795
|
run_gate
|
|
720
796
|
assert_rc "$rc" 0 "a blank line inside a folded description must not break the entry boundary"
|
|
@@ -722,9 +798,11 @@ assert_rc "$rc" 0 "a blank line inside a folded description must not break the e
|
|
|
722
798
|
# The locator for this class is the canonical field name. A free-text substring
|
|
723
799
|
# that merely SURVIVED the edit identifies nothing, so it must not be accepted.
|
|
724
800
|
new_case case-routing-surface-surviving-substring-locator-refused
|
|
801
|
+
routing_surface_downscope
|
|
725
802
|
perl -0pi -e 's/^(description: .+)$/$1 Fixture routing-surface trigger clause./m' \
|
|
726
803
|
"$REPO/skills/product-rd-workflow/SKILL.md"
|
|
727
|
-
printf '| Fixture routing-surface substring row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#Fixture routing-surface trigger clause | `updated` | `product-rd-workflow/SKILL.md` substring locator |\n' >> "$REGISTER"
|
|
804
|
+
printf '| Fixture routing-surface substring row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#Fixture routing-surface trigger clause | `updated` | `product-rd-workflow/SKILL.md` substring locator |\n' >> "$REGISTER"
|
|
805
|
+
routing_surface_downscope
|
|
728
806
|
commit_case "routing-surface: free-text substring locator"
|
|
729
807
|
run_gate
|
|
730
808
|
assert_rc "$rc" 1 "a free-text substring must not serve as the locator for this class"
|
|
@@ -732,9 +810,11 @@ assert_rc "$rc" 1 "a free-text substring must not serve as the locator for this
|
|
|
732
810
|
# A quoted top-level key is valid YAML; refusing it would block a legitimate
|
|
733
811
|
# description-only change with no satisfiable anchor.
|
|
734
812
|
new_case case-routing-surface-quoted-key
|
|
813
|
+
routing_surface_downscope
|
|
735
814
|
perl -0pi -e 's/^description: (.+)$/"description": $1 Fixture routing-surface trigger clause./m' \
|
|
736
815
|
"$REPO/skills/product-rd-workflow/SKILL.md"
|
|
737
|
-
printf '| Fixture routing-surface quoted row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` quoted description key |\n' >> "$REGISTER"
|
|
816
|
+
printf '| Fixture routing-surface quoted row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` quoted description key |\n' >> "$REGISTER"
|
|
817
|
+
routing_surface_downscope
|
|
738
818
|
commit_case "routing-surface: quoted description key"
|
|
739
819
|
run_gate
|
|
740
820
|
assert_rc "$rc" 0 "a quoted description key must still qualify"
|
|
@@ -742,13 +822,15 @@ assert_rc "$rc" 0 "a quoted description key must still qualify"
|
|
|
742
822
|
# A sibling frontmatter key that deserializes to a Date (or uses an alias) must
|
|
743
823
|
# not refuse the class: this check cares only about the description value.
|
|
744
824
|
new_case case-routing-surface-date-sibling-key
|
|
825
|
+
routing_surface_downscope
|
|
745
826
|
perl -0pi -e 's/^(name: product-rd-workflow)$/$1\nreleased: 2026-08-11/m' "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
746
827
|
git -C "$REPO" add -A; git -C "$REPO" commit -qm "seed date sibling key"
|
|
747
828
|
git -C "$REPO" branch -f fixture-dated HEAD
|
|
748
829
|
git -C "$REPO" switch -q -C case-routing-surface-date-sibling-key fixture-dated
|
|
749
830
|
git -C "$REPO" branch --set-upstream-to=fixture-dated case-routing-surface-date-sibling-key >/dev/null 2>&1
|
|
750
831
|
perl -0pi -e 's/^(description: .+)$/$1 Fixture routing-surface trigger clause./m' "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
751
|
-
printf '| Fixture routing-surface dated row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description beside a date key |\n' >> "$REGISTER"
|
|
832
|
+
printf '| Fixture routing-surface dated row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description beside a date key |\n' >> "$REGISTER"
|
|
833
|
+
routing_surface_downscope
|
|
752
834
|
commit_case "routing-surface: date-valued sibling frontmatter key"
|
|
753
835
|
run_gate
|
|
754
836
|
assert_rc "$rc" 0 "a date-valued sibling key must not refuse the class"
|
|
@@ -781,8 +863,10 @@ run_gate_dateless() {
|
|
|
781
863
|
set -e
|
|
782
864
|
}
|
|
783
865
|
new_case case-routing-surface-dateless-host
|
|
866
|
+
routing_surface_downscope
|
|
784
867
|
perl -0pi -e 's/^(description: .+)$/$1 Fixture routing-surface trigger clause./m' "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
785
|
-
printf '| Fixture routing-surface dateless row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description judged on a date-less host |\n' >> "$REGISTER"
|
|
868
|
+
printf '| Fixture routing-surface dateless row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description judged on a date-less host |\n' >> "$REGISTER"
|
|
869
|
+
routing_surface_downscope
|
|
786
870
|
commit_case "routing-surface: description-only change judged on a date-less host"
|
|
787
871
|
run_gate_dateless
|
|
788
872
|
assert_rc "$rc" 0 "a date-less host must not refuse the routing-surface class"
|
|
@@ -813,7 +897,8 @@ assert_contains "product-rd-workflow/SKILL.md" "$out" "the mutant must name the
|
|
|
813
897
|
git -C "$REPO" switch -q -C case-routing-surface-dateless-dated-sibling fixture-dated
|
|
814
898
|
git -C "$REPO" branch --set-upstream-to=fixture-dated case-routing-surface-dateless-dated-sibling >/dev/null 2>&1
|
|
815
899
|
perl -0pi -e 's/^(description: .+)$/$1 Fixture routing-surface trigger clause./m' "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
816
|
-
printf '| Fixture routing-surface dateless dated row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` dated sibling on a date-less host |\n' >> "$REGISTER"
|
|
900
|
+
printf '| Fixture routing-surface dateless dated row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` dated sibling on a date-less host |\n' >> "$REGISTER"
|
|
901
|
+
routing_surface_downscope
|
|
817
902
|
commit_case "routing-surface: date-valued sibling judged on a date-less host"
|
|
818
903
|
run_gate_dateless
|
|
819
904
|
assert_rc "$rc" 0 "parsing a date-valued sibling on a date-less host must still qualify"
|
|
@@ -821,10 +906,12 @@ assert_rc "$rc" 0 "parsing a date-valued sibling on a date-less host must still
|
|
|
821
906
|
# A file MOVED OUT of the owner package must take back the ordinary bar: the diff
|
|
822
907
|
# is read with --no-renames, so the vacated path still counts as an owner change.
|
|
823
908
|
new_case case-routing-surface-file-moved-out
|
|
909
|
+
routing_surface_downscope
|
|
824
910
|
perl -0pi -e 's/^(description: .+)$/$1 Fixture routing-surface trigger clause./m' "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
825
911
|
mkdir -p "$REPO/docs"
|
|
826
912
|
git -C "$REPO" mv "$MOVEOUT_REL" docs/zz-fixture-moveout.md
|
|
827
|
-
printf '| Fixture routing-surface moveout row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description plus a file moved out |\n' >> "$REGISTER"
|
|
913
|
+
printf '| Fixture routing-surface moveout row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description plus a file moved out |\n' >> "$REGISTER"
|
|
914
|
+
routing_surface_downscope
|
|
828
915
|
commit_case "routing-surface: owner file moved out of the package"
|
|
829
916
|
run_gate
|
|
830
917
|
assert_rc "$rc" 1 "a file moved out of the package must take back the ordinary bar"
|
|
@@ -832,9 +919,11 @@ assert_rc "$rc" 1 "a file moved out of the package must take back the ordinary b
|
|
|
832
919
|
# The entrypoint's MODE is part of its identity: bytes alone would let a chmod
|
|
833
920
|
# ride along with a description edit and still read as description-only.
|
|
834
921
|
new_case case-routing-surface-mode-change-refused
|
|
922
|
+
routing_surface_downscope
|
|
835
923
|
perl -0pi -e 's/^(description: .+)$/$1 Fixture routing-surface trigger clause./m' "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
836
924
|
chmod +x "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
837
|
-
printf '| Fixture routing-surface mode row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description plus mode change |\n' >> "$REGISTER"
|
|
925
|
+
printf '| Fixture routing-surface mode row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description plus mode change |\n' >> "$REGISTER"
|
|
926
|
+
routing_surface_downscope
|
|
838
927
|
commit_case "routing-surface: entrypoint mode changed alongside the description"
|
|
839
928
|
run_gate
|
|
840
929
|
assert_rc "$rc" 1 "a mode change riding along must take back the ordinary bar"
|
|
@@ -845,19 +934,21 @@ assert_rc "$rc" 1 "a mode change riding along must take back the ordinary bar"
|
|
|
845
934
|
# refusing the locator here would refuse an owner with nothing else to evidence —
|
|
846
935
|
# and on an integration branch that accumulates rounds, that is the normal shape.
|
|
847
936
|
new_case case-routing-surface-with-retargeted-sibling
|
|
937
|
+
routing_surface_downscope
|
|
848
938
|
git -C "$REPO" mv skills/platform-observability skills/platform-signal-evidence
|
|
849
939
|
git -C "$REPO" mv skills/platform-signal-evidence/references/platform-observability-playbook.md \
|
|
850
940
|
skills/platform-signal-evidence/references/platform-signal-evidence-playbook.md
|
|
851
941
|
retarget_all "$REPO/skills/platform-signal-evidence" "$REPO/skills/defect-diagnosis" "$REPO/skills/product-rd-workflow"
|
|
852
942
|
perl -0pi -e 's/^(description: .+)$/$1 Fixture routing-surface trigger clause./m' "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
853
943
|
printf '\n- Never skip the fixture renamed-owner rule for this gate.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
854
|
-
printf '| Fixture retargeted-sibling row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description beside retargeted references |\n' >> "$REGISTER"
|
|
855
|
-
printf '| Fixture retargeted-sibling dependent row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no | `updated` | `defect-diagnosis/SKILL.md` pointer retarget only |\n' >> "$REGISTER"
|
|
856
|
-
printf '| Fixture retargeted-sibling owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
944
|
+
printf '| Fixture retargeted-sibling row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description beside retargeted references |\n' >> "$REGISTER"
|
|
945
|
+
printf '| Fixture retargeted-sibling dependent row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `defect-diagnosis/SKILL.md` pointer retarget only |\n' >> "$REGISTER"
|
|
946
|
+
printf '| Fixture retargeted-sibling owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
857
947
|
# Keep this case's only script untouched so it varies exactly one thing.
|
|
858
948
|
git -C "$REPO" checkout fixture-base -- skills/product-rd-workflow/scripts/check-agent-contract-coverage.sh
|
|
859
949
|
[ -n "$(git -C "$REPO" diff --name-only fixture-base -- 'skills/product-rd-workflow/references/*.md')" ] \
|
|
860
950
|
|| fail "positive case must actually retarget an eligible .md sibling"
|
|
951
|
+
routing_surface_downscope
|
|
861
952
|
commit_case "routing-surface: description beside a pure rename retarget in the same package"
|
|
862
953
|
run_gate
|
|
863
954
|
assert_rc "$rc" 0 "a package whose non-entrypoint changes are a proven retarget must not lose the locator"
|
|
@@ -865,6 +956,7 @@ assert_rc "$rc" 0 "a package whose non-entrypoint changes are a proven retarget
|
|
|
865
956
|
# The composition is bounded by the SAME byte-exact reproduction: a sibling file
|
|
866
957
|
# carrying real content beside the retarget still takes the locator away.
|
|
867
958
|
new_case case-routing-surface-retarget-plus-real-edit
|
|
959
|
+
routing_surface_downscope
|
|
868
960
|
git -C "$REPO" mv skills/platform-observability skills/platform-signal-evidence
|
|
869
961
|
git -C "$REPO" mv skills/platform-signal-evidence/references/platform-observability-playbook.md \
|
|
870
962
|
skills/platform-signal-evidence/references/platform-signal-evidence-playbook.md
|
|
@@ -872,11 +964,12 @@ retarget_all "$REPO/skills/platform-signal-evidence" "$REPO/skills/defect-diagno
|
|
|
872
964
|
perl -0pi -e 's/^(description: .+)$/$1 Fixture routing-surface trigger clause./m' "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
873
965
|
printf '\n- Never skip the smuggled fixture rule beside the retarget.\n' >> "$REPO/$UPSTREAM_REF"
|
|
874
966
|
printf '\n- Never skip the fixture renamed-owner rule for this gate.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
875
|
-
printf '| Fixture retarget-plus-edit row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description plus a real sibling edit |\n' >> "$REGISTER"
|
|
876
|
-
printf '| Fixture retarget-plus-edit dependent row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no | `updated` | `defect-diagnosis/SKILL.md` pointer retarget only |\n' >> "$REGISTER"
|
|
877
|
-
printf '| Fixture retarget-plus-edit owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
967
|
+
printf '| Fixture retarget-plus-edit row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description plus a real sibling edit |\n' >> "$REGISTER"
|
|
968
|
+
printf '| Fixture retarget-plus-edit dependent row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `defect-diagnosis/SKILL.md` pointer retarget only |\n' >> "$REGISTER"
|
|
969
|
+
printf '| Fixture retarget-plus-edit owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
878
970
|
# Keep this case's only script untouched so it varies exactly one thing.
|
|
879
971
|
git -C "$REPO" checkout fixture-base -- skills/product-rd-workflow/scripts/check-agent-contract-coverage.sh
|
|
972
|
+
routing_surface_downscope
|
|
880
973
|
commit_case "routing-surface: real sibling edit beside the retarget"
|
|
881
974
|
run_gate
|
|
882
975
|
assert_rc "$rc" 1 "real content beside the retarget must still take the locator away"
|
|
@@ -885,15 +978,17 @@ assert_rc "$rc" 1 "real content beside the retarget must still take the locator
|
|
|
885
978
|
# rewriting that identifier was safe there — some occurrences of an old slug are
|
|
886
979
|
# deliberately kept. Prose only.
|
|
887
980
|
new_case case-routing-surface-retargeted-script-refused
|
|
981
|
+
routing_surface_downscope
|
|
888
982
|
git -C "$REPO" mv skills/platform-observability skills/platform-signal-evidence
|
|
889
983
|
git -C "$REPO" mv skills/platform-signal-evidence/references/platform-observability-playbook.md \
|
|
890
984
|
skills/platform-signal-evidence/references/platform-signal-evidence-playbook.md
|
|
891
985
|
retarget_all "$REPO/skills/platform-signal-evidence" "$REPO/skills/defect-diagnosis" "$REPO/skills/product-rd-workflow"
|
|
892
986
|
perl -0pi -e 's/^(description: .+)$/$1 Fixture routing-surface trigger clause./m' "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
893
987
|
printf '\n- Never skip the fixture renamed-owner rule for this gate.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
894
|
-
printf '| Fixture retargeted-script row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description beside a changed script |\n' >> "$REGISTER"
|
|
895
|
-
printf '| Fixture retargeted-script dependent row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no | `updated` | `defect-diagnosis/SKILL.md` pointer retarget only |\n' >> "$REGISTER"
|
|
896
|
-
printf '| Fixture retargeted-script owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
988
|
+
printf '| Fixture retargeted-script row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description beside a changed script |\n' >> "$REGISTER"
|
|
989
|
+
printf '| Fixture retargeted-script dependent row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `defect-diagnosis/SKILL.md` pointer retarget only |\n' >> "$REGISTER"
|
|
990
|
+
printf '| Fixture retargeted-script owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
991
|
+
routing_surface_downscope
|
|
897
992
|
commit_case "routing-surface: a changed script in the package"
|
|
898
993
|
run_gate
|
|
899
994
|
assert_rc "$rc" 1 "a changed script must take the locator away even under a retarget"
|
|
@@ -914,9 +1009,10 @@ git -C "$REPO" checkout fixture-base -- skills/product-rd-workflow/scripts/check
|
|
|
914
1009
|
ln -s ../../platform-signal-evidence/SKILL.md "$REPO/skills/product-rd-workflow/references/zz-fixture-link.md"
|
|
915
1010
|
perl -0pi -e 's/^(description: .+)$/$1 Fixture routing-surface trigger clause./m' "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
916
1011
|
printf '\n- Never skip the fixture renamed-owner rule for this gate.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
917
|
-
printf '| Fixture symlink row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description beside a retargeted symlink |\n' >> "$REGISTER"
|
|
918
|
-
printf '| Fixture symlink dependent row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no | `updated` | `defect-diagnosis/SKILL.md` pointer retarget only |\n' >> "$REGISTER"
|
|
919
|
-
printf '| Fixture symlink owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1012
|
+
printf '| Fixture symlink row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description beside a retargeted symlink |\n' >> "$REGISTER"
|
|
1013
|
+
printf '| Fixture symlink dependent row | `downstream-executor` | behavioral-evidence: not-required identifier-rename; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `defect-diagnosis/SKILL.md` pointer retarget only |\n' >> "$REGISTER"
|
|
1014
|
+
printf '| Fixture symlink owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture renamed-owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1015
|
+
routing_surface_downscope
|
|
920
1016
|
commit_case "routing-surface: a retargeted .md symlink in the package"
|
|
921
1017
|
run_gate
|
|
922
1018
|
assert_rc "$rc" 1 "a retargeted .md symlink must take the locator away"
|
|
@@ -935,10 +1031,12 @@ assert_rc "$rc" 1 "a retargeted .md symlink must take the locator away"
|
|
|
935
1031
|
# superseded-row notes.
|
|
936
1032
|
new_case case-round-scope-verdict-stability
|
|
937
1033
|
printf '\n***\n' >> "$REPO/$UPSTREAM_REF"
|
|
938
|
-
printf '| Fixture round-1 punctuation edit | `downstream-executor` | behavioral-evidence: not-required wording-only; observed-failure: no | `updated` | `product-rd-workflow/SKILL.md` punctuation-only round |\n' >> "$REGISTER"
|
|
1034
|
+
printf '| Fixture round-1 punctuation edit | `downstream-executor` | behavioral-evidence: not-required wording-only; observed-failure: no; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK | `updated` | `product-rd-workflow/SKILL.md` punctuation-only round |\n' >> "$REGISTER"
|
|
1035
|
+
routing_surface_downscope
|
|
939
1036
|
commit_case "round 1: punctuation-only edit declared wording-only"
|
|
940
1037
|
printf '\n- Never bypass the fixture round-scope rule for this gate.\n' >> "$REPO/$UPSTREAM_REF"
|
|
941
|
-
printf '| Fixture round-2 substantive edit | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Never bypass the fixture round-scope rule | `updated` | `product-rd-workflow/SKILL.md` substantive round |\n' >> "$REGISTER"
|
|
1038
|
+
printf '| Fixture round-2 substantive edit | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/references/adr-convention.md#Never bypass the fixture round-scope rule | `updated` | `product-rd-workflow/SKILL.md` substantive round |\n' >> "$REGISTER"
|
|
1039
|
+
routing_surface_downscope
|
|
942
1040
|
commit_case "round 2: substantive edit to the same owner"
|
|
943
1041
|
run_gate
|
|
944
1042
|
assert_rc "$rc" 0 "a landed wording-only row must not be re-judged against a later round"
|
|
@@ -950,10 +1048,12 @@ assert_not_contains "impact_chain_behavior_evidence_missing" "$out" "the round-1
|
|
|
950
1048
|
# a real round had to drop its product-rd-workflow row before landing.
|
|
951
1049
|
new_case case-round-scope-description-after-body
|
|
952
1050
|
printf '\n- Never skip the fixture body-round rule for this gate.\n' >> "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
953
|
-
printf '| Fixture body round | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#Never skip the fixture body-round rule | `updated` | `product-rd-workflow/SKILL.md` body round |\n' >> "$REGISTER"
|
|
1051
|
+
printf '| Fixture body round | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#Never skip the fixture body-round rule | `updated` | `product-rd-workflow/SKILL.md` body round |\n' >> "$REGISTER"
|
|
1052
|
+
routing_surface_downscope
|
|
954
1053
|
commit_case "round 1: body rule added to the entrypoint"
|
|
955
1054
|
perl -0pi -e 's/^(description: .+)$/$1 Fixture round-scope routing clause./m' "$REPO/skills/product-rd-workflow/SKILL.md"
|
|
956
|
-
printf '| Fixture description round | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description-only round |\n' >> "$REGISTER"
|
|
1055
|
+
printf '| Fixture description round | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/product-rd-workflow/SKILL.md#description | `updated` | `product-rd-workflow/SKILL.md` description-only round |\n' >> "$REGISTER"
|
|
1056
|
+
routing_surface_downscope
|
|
957
1057
|
commit_case "round 2: description-only edit to the same owner"
|
|
958
1058
|
run_gate
|
|
959
1059
|
assert_rc "$rc" 0 "a description-only round keeps its locator after an earlier body round"
|
|
@@ -964,9 +1064,11 @@ assert_not_contains "impact_chain_firing_path_missing" "$out" "the description a
|
|
|
964
1064
|
# no rows — an earlier round's row must not cover it.
|
|
965
1065
|
new_case case-round-scope-trailing-work-uncovered
|
|
966
1066
|
printf '\n- Never skip the fixture trailing rule for this gate.\n' >> "$REPO/skills/platform-observability/SKILL.md"
|
|
967
|
-
printf '| Fixture trailing round 1 | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture trailing rule | `updated` | `platform-observability/SKILL.md` declared round |\n' >> "$REGISTER"
|
|
1067
|
+
printf '| Fixture trailing round 1 | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture trailing rule | `updated` | `platform-observability/SKILL.md` declared round |\n' >> "$REGISTER"
|
|
1068
|
+
routing_surface_downscope
|
|
968
1069
|
commit_case "round 1: declared owner change"
|
|
969
1070
|
printf '\nFixture undeclared trailing edit that no row covers.\n' >> "$REPO/skills/platform-observability/references/platform-observability-playbook.md"
|
|
1071
|
+
routing_surface_downscope
|
|
970
1072
|
commit_case "trailing round: owner edit with no ledger append"
|
|
971
1073
|
run_gate
|
|
972
1074
|
assert_rc "$rc" 1 "owner work in the trailing round must not ride on an earlier round's row"
|
|
@@ -978,9 +1080,11 @@ assert_rc "$rc" 1 "owner work in the trailing round must not ride on an earlier
|
|
|
978
1080
|
# route, which is the shape a loosening change has to be checked hardest for.
|
|
979
1081
|
new_case case-round-scope-deleted-row-does-not-count
|
|
980
1082
|
printf '\n- Never skip the fixture survival rule for this gate.\n' >> "$REPO/skills/platform-observability/SKILL.md"
|
|
981
|
-
printf '| Fixture survival row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture survival rule | `updated` | `platform-observability/SKILL.md` declared round |\n' >> "$REGISTER"
|
|
1083
|
+
printf '| Fixture survival row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture survival rule | `updated` | `platform-observability/SKILL.md` declared round |\n' >> "$REGISTER"
|
|
1084
|
+
routing_surface_downscope
|
|
982
1085
|
commit_case "round 1: owner change with its row"
|
|
983
1086
|
perl -ni -e 'print unless /Fixture survival row/' "$REGISTER"
|
|
1087
|
+
routing_surface_downscope
|
|
984
1088
|
commit_case "round 2: delete the row that vouched for it"
|
|
985
1089
|
run_gate
|
|
986
1090
|
assert_rc "$rc" 1 "a row deleted in a later round must not still vouch for the owner"
|
|
@@ -993,15 +1097,18 @@ assert_contains "impact_chain_gate_missing" "$out" "a deleted row leaves the own
|
|
|
993
1097
|
# would read the transient duplicate as surviving, so the budget is HEAD's
|
|
994
1098
|
# occurrence count minus base's.
|
|
995
1099
|
new_case case-round-scope-duplicate-row-laundering
|
|
996
|
-
printf '| Fixture duplicate row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture duplicate rule | `updated` | `platform-observability/SKILL.md` pre-existing row |\n' >> "$REGISTER"
|
|
1100
|
+
printf '| Fixture duplicate row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture duplicate rule | `updated` | `platform-observability/SKILL.md` pre-existing row |\n' >> "$REGISTER"
|
|
997
1101
|
printf '\n- Never skip the fixture duplicate rule for this gate.\n' >> "$REPO/skills/platform-observability/SKILL.md"
|
|
1102
|
+
routing_surface_downscope
|
|
998
1103
|
commit_case "base: an owner change and its row, both already landed"
|
|
999
1104
|
git -C "$REPO" branch -q -f dup-base HEAD
|
|
1000
1105
|
git -C "$REPO" branch --set-upstream-to=dup-base case-round-scope-duplicate-row-laundering >/dev/null 2>&1
|
|
1001
1106
|
printf '\nFixture second substantive edit that owes its own row.\n' >> "$REPO/skills/platform-observability/references/platform-observability-playbook.md"
|
|
1002
|
-
printf '| Fixture duplicate row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture duplicate rule | `updated` | `platform-observability/SKILL.md` pre-existing row |\n' >> "$REGISTER"
|
|
1107
|
+
printf '| Fixture duplicate row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture duplicate rule | `updated` | `platform-observability/SKILL.md` pre-existing row |\n' >> "$REGISTER"
|
|
1108
|
+
routing_surface_downscope
|
|
1003
1109
|
commit_case "round 1: new owner bytes plus a duplicate of the existing row"
|
|
1004
1110
|
perl -ni -e 'BEGIN{$n=0} if (/Fixture duplicate row/) { $n++; next if $n == 1 } print' "$REGISTER"
|
|
1111
|
+
routing_surface_downscope
|
|
1005
1112
|
commit_case "round 2: drop one copy so the ledger ends unchanged"
|
|
1006
1113
|
run_gate
|
|
1007
1114
|
assert_rc "$rc" 1 "a duplicated-then-dropped row must not vouch for new owner bytes"
|
|
@@ -1016,8 +1123,10 @@ assert_contains "impact_chain_gate_missing" "$out" "the net-zero ledger leaves t
|
|
|
1016
1123
|
new_case case-round-scope-merged-worktree-round
|
|
1017
1124
|
git -C "$REPO" switch -q -c feature-round-merged
|
|
1018
1125
|
printf '\n- Never skip the fixture merged-round rule for this gate.\n' >> "$REPO/skills/platform-observability/SKILL.md"
|
|
1126
|
+
routing_surface_downscope
|
|
1019
1127
|
commit_case "worktree round: owner work"
|
|
1020
|
-
printf '| Fixture merged round | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture merged-round rule | `updated` | `platform-observability/SKILL.md` merged round |\n' >> "$REGISTER"
|
|
1128
|
+
printf '| Fixture merged round | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture merged-round rule | `updated` | `platform-observability/SKILL.md` merged round |\n' >> "$REGISTER"
|
|
1129
|
+
routing_surface_downscope
|
|
1021
1130
|
commit_case "worktree round: its ledger append"
|
|
1022
1131
|
git -C "$REPO" switch -q case-round-scope-merged-worktree-round
|
|
1023
1132
|
git -C "$REPO" merge -q --no-ff -m "Merge branch 'feature-round-merged': one worktree round" feature-round-merged
|
|
@@ -1029,11 +1138,13 @@ assert_rc "$rc" 0 "a merged worktree round must resolve to one boundary covering
|
|
|
1029
1138
|
new_case case-round-scope-after-merged-round
|
|
1030
1139
|
git -C "$REPO" switch -q -c feature-round-merged-2
|
|
1031
1140
|
printf '\n- Never skip the fixture merged-round rule for this gate.\n' >> "$REPO/skills/platform-observability/SKILL.md"
|
|
1032
|
-
printf '| Fixture merged round 2 | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture merged-round rule | `updated` | `platform-observability/SKILL.md` merged round |\n' >> "$REGISTER"
|
|
1141
|
+
printf '| Fixture merged round 2 | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture merged-round rule | `updated` | `platform-observability/SKILL.md` merged round |\n' >> "$REGISTER"
|
|
1142
|
+
routing_surface_downscope
|
|
1033
1143
|
commit_case "worktree round: owner work and its ledger append"
|
|
1034
1144
|
git -C "$REPO" switch -q case-round-scope-after-merged-round
|
|
1035
1145
|
git -C "$REPO" merge -q --no-ff -m "Merge branch 'feature-round-merged-2': one worktree round" feature-round-merged-2
|
|
1036
1146
|
printf '\nFixture undeclared edit committed after the merged round.\n' >> "$REPO/skills/platform-observability/references/platform-observability-playbook.md"
|
|
1147
|
+
routing_surface_downscope
|
|
1037
1148
|
commit_case "after the merge: undeclared owner edit"
|
|
1038
1149
|
run_gate
|
|
1039
1150
|
assert_rc "$rc" 1 "work committed after a merged round must not ride on that round's row"
|
|
@@ -1047,12 +1158,15 @@ assert_rc "$rc" 1 "work committed after a merged round must not ride on that rou
|
|
|
1047
1158
|
# impossible to write.
|
|
1048
1159
|
new_case case-round-scope-renamed-away-pre-rename-round
|
|
1049
1160
|
printf '\n- Never skip the fixture pre-rename rule for this gate.\n' >> "$REPO/skills/platform-observability/SKILL.md"
|
|
1161
|
+
routing_surface_downscope
|
|
1050
1162
|
commit_case "round 1: owner work with no row"
|
|
1051
1163
|
printf 'Fixture ledger note closing round one without the owner row.\n' >> "$REGISTER"
|
|
1164
|
+
routing_surface_downscope
|
|
1052
1165
|
commit_case "round 1 boundary: ledger append without the owner row"
|
|
1053
1166
|
git -C "$REPO" mv skills/platform-observability skills/platform-signal-evidence
|
|
1054
1167
|
printf '\n- MUST enforce Fixture renamed owner rule.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
1055
|
-
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-signal-evidence/SKILL.md#Fixture renamed owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1168
|
+
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Fixture renamed owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1169
|
+
routing_surface_downscope
|
|
1056
1170
|
commit_case "round 2: rename the owner with a row on the surviving name"
|
|
1057
1171
|
run_gate
|
|
1058
1172
|
assert_rc "$rc" 1 "owner work in a pre-rename round must not escape with the later rename"
|
|
@@ -1064,11 +1178,13 @@ assert_contains "platform-observability/SKILL.md" "$out" "the missing row must n
|
|
|
1064
1178
|
# invalidate it — rejecting it would demand a row no honest author could write.
|
|
1065
1179
|
new_case case-round-scope-renamed-away-row-at-round-head
|
|
1066
1180
|
printf '\n- Never skip the fixture pre-rename declared rule for this gate.\n' >> "$REPO/skills/platform-observability/SKILL.md"
|
|
1067
|
-
printf '| Fixture pre-rename declared row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture pre-rename declared rule | `updated` | `platform-observability/SKILL.md` pre-rename round |\n' >> "$REGISTER"
|
|
1181
|
+
printf '| Fixture pre-rename declared row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture pre-rename declared rule | `updated` | `platform-observability/SKILL.md` pre-rename round |\n' >> "$REGISTER"
|
|
1182
|
+
routing_surface_downscope
|
|
1068
1183
|
commit_case "round 1: owner work with its row"
|
|
1069
1184
|
git -C "$REPO" mv skills/platform-observability skills/platform-signal-evidence
|
|
1070
1185
|
printf '\n- MUST enforce Fixture renamed owner rule.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
1071
|
-
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-signal-evidence/SKILL.md#Fixture renamed owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1186
|
+
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Fixture renamed owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1187
|
+
routing_surface_downscope
|
|
1072
1188
|
commit_case "round 2: rename the owner with a row on the surviving name"
|
|
1073
1189
|
run_gate
|
|
1074
1190
|
assert_rc "$rc" 0 "a pre-rename round declared against its own round head must pass"
|
|
@@ -1082,9 +1198,11 @@ assert_not_contains "impact_chain_evidence_missing_file" "$out" "a row citing th
|
|
|
1082
1198
|
# which is what proves the flag load-bearing.
|
|
1083
1199
|
new_case case-round-scope-merged-row-before-work
|
|
1084
1200
|
git -C "$REPO" switch -q -c feature-round-row-first
|
|
1085
|
-
printf '| Fixture row-first merged round | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture row-first rule | `updated` | `platform-observability/SKILL.md` merged round |\n' >> "$REGISTER"
|
|
1201
|
+
printf '| Fixture row-first merged round | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-observability/SKILL.md#Never skip the fixture row-first rule | `updated` | `platform-observability/SKILL.md` merged round |\n' >> "$REGISTER"
|
|
1202
|
+
routing_surface_downscope
|
|
1086
1203
|
commit_case "worktree round: ledger append first"
|
|
1087
1204
|
printf '\n- Never skip the fixture row-first rule for this gate.\n' >> "$REPO/skills/platform-observability/SKILL.md"
|
|
1205
|
+
routing_surface_downscope
|
|
1088
1206
|
commit_case "worktree round: owner work after the append"
|
|
1089
1207
|
git -C "$REPO" switch -q case-round-scope-merged-row-before-work
|
|
1090
1208
|
git -C "$REPO" merge -q --no-ff -m "Merge branch 'feature-round-row-first': one worktree round" feature-round-row-first
|
|
@@ -1099,14 +1217,17 @@ assert_rc "$rc" 0 "a merged worktree round collapses to one boundary even when t
|
|
|
1099
1217
|
new_case case-round-scope-transient-rename-hop-undeclared
|
|
1100
1218
|
git -C "$REPO" mv skills/platform-observability skills/platform-signal-evidence
|
|
1101
1219
|
printf '\n- MUST enforce Fixture renamed owner rule.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
1102
|
-
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-signal-evidence/SKILL.md#Fixture renamed owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1220
|
+
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Fixture renamed owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1221
|
+
routing_surface_downscope
|
|
1103
1222
|
commit_case "round A: rename X to Y with a row on the surviving name"
|
|
1104
1223
|
printf '\n- Never skip the fixture transient-hop rule for this gate.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
1105
1224
|
printf 'Fixture ledger note closing the transient round without the owner row.\n' >> "$REGISTER"
|
|
1225
|
+
routing_surface_downscope
|
|
1106
1226
|
commit_case "round B: substantive Y edit closed with no Y row"
|
|
1107
1227
|
git -C "$REPO" mv skills/platform-signal-evidence skills/platform-telemetry-evidence
|
|
1108
1228
|
printf '\n- MUST enforce Fixture final renamed owner rule.\n' >> "$REPO/skills/platform-telemetry-evidence/SKILL.md"
|
|
1109
|
-
printf '| Fixture final renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-telemetry-evidence/SKILL.md#Fixture final renamed owner rule | `updated` | `platform-telemetry-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1229
|
+
printf '| Fixture final renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-telemetry-evidence/SKILL.md#Fixture final renamed owner rule | `updated` | `platform-telemetry-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1230
|
+
routing_surface_downscope
|
|
1110
1231
|
commit_case "round C: rename Y to Z with a row on the surviving name"
|
|
1111
1232
|
run_gate
|
|
1112
1233
|
assert_rc "$rc" 1 "a substantive round on a transient rename hop must not escape undeclared"
|
|
@@ -1118,14 +1239,17 @@ assert_contains "platform-signal-evidence/SKILL.md" "$out" "the missing row must
|
|
|
1118
1239
|
new_case case-round-scope-transient-rename-hop-declared
|
|
1119
1240
|
git -C "$REPO" mv skills/platform-observability skills/platform-signal-evidence
|
|
1120
1241
|
printf '\n- MUST enforce Fixture renamed owner rule.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
1121
|
-
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-signal-evidence/SKILL.md#Fixture renamed owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1242
|
+
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Fixture renamed owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1243
|
+
routing_surface_downscope
|
|
1122
1244
|
commit_case "round A: rename X to Y with a row on the surviving name"
|
|
1123
1245
|
printf '\n- Never skip the fixture transient-hop rule for this gate.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
1124
|
-
printf '| Fixture transient hop row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture transient-hop rule | `updated` | `platform-signal-evidence/SKILL.md` transient round |\n' >> "$REGISTER"
|
|
1246
|
+
printf '| Fixture transient hop row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Never skip the fixture transient-hop rule | `updated` | `platform-signal-evidence/SKILL.md` transient round |\n' >> "$REGISTER"
|
|
1247
|
+
routing_surface_downscope
|
|
1125
1248
|
commit_case "round B: substantive Y edit with its own Y row"
|
|
1126
1249
|
git -C "$REPO" mv skills/platform-signal-evidence skills/platform-telemetry-evidence
|
|
1127
1250
|
printf '\n- MUST enforce Fixture final renamed owner rule.\n' >> "$REPO/skills/platform-telemetry-evidence/SKILL.md"
|
|
1128
|
-
printf '| Fixture final renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-telemetry-evidence/SKILL.md#Fixture final renamed owner rule | `updated` | `platform-telemetry-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1251
|
+
printf '| Fixture final renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-telemetry-evidence/SKILL.md#Fixture final renamed owner rule | `updated` | `platform-telemetry-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1252
|
+
routing_surface_downscope
|
|
1129
1253
|
commit_case "round C: rename Y to Z with a row on the surviving name"
|
|
1130
1254
|
run_gate
|
|
1131
1255
|
assert_rc "$rc" 0 "a declared transient-hop chain must pass end to end"
|
|
@@ -1140,11 +1264,13 @@ new_case case-round-scope-delete-then-recreate-lookalike
|
|
|
1140
1264
|
cp -R "$REPO/skills/platform-observability" "$TMP/stash-lookalike"
|
|
1141
1265
|
git -C "$REPO" rm -qr skills/platform-observability
|
|
1142
1266
|
printf 'Fixture ledger note closing the deletion round without the owner row.\n' >> "$REGISTER"
|
|
1267
|
+
routing_surface_downscope
|
|
1143
1268
|
commit_case "round A: delete the owner with no row"
|
|
1144
1269
|
cp -R "$TMP/stash-lookalike" "$REPO/skills/platform-signal-evidence"
|
|
1145
1270
|
retarget_all "$REPO/skills/platform-signal-evidence"
|
|
1146
1271
|
printf '\n- MUST enforce Fixture recreated owner rule.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
1147
|
-
printf '| Fixture recreated owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-signal-evidence/SKILL.md#Fixture recreated owner rule | `updated` | `platform-signal-evidence/SKILL.md` recreated owner |\n' >> "$REGISTER"
|
|
1272
|
+
printf '| Fixture recreated owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Fixture recreated owner rule | `updated` | `platform-signal-evidence/SKILL.md` recreated owner |\n' >> "$REGISTER"
|
|
1273
|
+
routing_surface_downscope
|
|
1148
1274
|
commit_case "round B: recreate a lookalike under a new name with its own row"
|
|
1149
1275
|
run_gate
|
|
1150
1276
|
assert_rc "$rc" 1 "a cross-round delete-then-recreate must stay an undeclared deletion"
|
|
@@ -1157,11 +1283,13 @@ assert_contains "platform-observability/SKILL.md" "$out" "the deleted owner must
|
|
|
1157
1283
|
new_case case-round-scope-declared-rename-cycle
|
|
1158
1284
|
git -C "$REPO" mv skills/platform-observability skills/platform-signal-evidence
|
|
1159
1285
|
printf '\n- MUST enforce Fixture renamed owner rule.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
1160
|
-
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-signal-evidence/SKILL.md#Fixture renamed owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1286
|
+
printf '| Fixture renamed owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-signal-evidence/SKILL.md#Fixture renamed owner rule | `updated` | `platform-signal-evidence/SKILL.md` renamed owner |\n' >> "$REGISTER"
|
|
1287
|
+
routing_surface_downscope
|
|
1161
1288
|
commit_case "round 1: rename A to B with a row on the surviving name"
|
|
1162
1289
|
git -C "$REPO" mv skills/platform-signal-evidence skills/platform-observability
|
|
1163
1290
|
printf '\n- MUST enforce Fixture reverted owner rule.\n' >> "$REPO/skills/platform-observability/SKILL.md"
|
|
1164
|
-
printf '| Fixture reverted owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-observability/SKILL.md#Fixture reverted owner rule | `updated` | `platform-observability/SKILL.md` reverted owner |\n' >> "$REGISTER"
|
|
1291
|
+
printf '| Fixture reverted owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-observability/SKILL.md#Fixture reverted owner rule | `updated` | `platform-observability/SKILL.md` reverted owner |\n' >> "$REGISTER"
|
|
1292
|
+
routing_surface_downscope
|
|
1165
1293
|
commit_case "round 2: rename B back to A with a row on the surviving name"
|
|
1166
1294
|
run_gate
|
|
1167
1295
|
assert_rc "$rc" 0 "a fully-declared rename cycle must pass"
|
|
@@ -1172,10 +1300,12 @@ new_case case-round-scope-undeclared-rename-cycle
|
|
|
1172
1300
|
git -C "$REPO" mv skills/platform-observability skills/platform-signal-evidence
|
|
1173
1301
|
printf '\n- MUST enforce Fixture renamed owner rule.\n' >> "$REPO/skills/platform-signal-evidence/SKILL.md"
|
|
1174
1302
|
printf 'Fixture ledger note closing the outbound rename round without a row.\n' >> "$REGISTER"
|
|
1303
|
+
routing_surface_downscope
|
|
1175
1304
|
commit_case "round 1: rename A to B with no row"
|
|
1176
1305
|
git -C "$REPO" mv skills/platform-signal-evidence skills/platform-observability
|
|
1177
1306
|
printf '\n- MUST enforce Fixture reverted owner rule.\n' >> "$REPO/skills/platform-observability/SKILL.md"
|
|
1178
|
-
printf '| Fixture reverted owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-observability/SKILL.md#Fixture reverted owner rule | `updated` | `platform-observability/SKILL.md` reverted owner |\n' >> "$REGISTER"
|
|
1307
|
+
printf '| Fixture reverted owner row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-observability/SKILL.md#Fixture reverted owner rule | `updated` | `platform-observability/SKILL.md` reverted owner |\n' >> "$REGISTER"
|
|
1308
|
+
routing_surface_downscope
|
|
1179
1309
|
commit_case "round 2: rename B back to A with a row on the surviving name"
|
|
1180
1310
|
run_gate
|
|
1181
1311
|
assert_rc "$rc" 1 "the round that created the transient name still owes its row"
|
|
@@ -1191,7 +1321,8 @@ new_case case-round-scope-skillmd-directory-masquerade
|
|
|
1191
1321
|
git -C "$REPO" rm -q skills/platform-observability/SKILL.md
|
|
1192
1322
|
mkdir -p "$REPO/skills/platform-observability/SKILL.md"
|
|
1193
1323
|
printf -- '- MUST enforce Fixture masquerade rule.\n' > "$REPO/skills/platform-observability/SKILL.md/rules.md"
|
|
1194
|
-
printf '| Fixture masquerade row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/platform-observability/SKILL.md/rules.md#Fixture masquerade rule | `updated` | `platform-observability/SKILL.md` masquerade |\n' >> "$REGISTER"
|
|
1324
|
+
printf '| Fixture masquerade row | `downstream-executor` | behavioral-evidence: RED-baseline; observed-failure: yes; result-class: failure; bank-evidence: downscoped:REFSCRIPTS-FIXTURE-NO-BANK; firing-path: file:skills/platform-observability/SKILL.md/rules.md#Fixture masquerade rule | `updated` | `platform-observability/SKILL.md` masquerade |\n' >> "$REGISTER"
|
|
1325
|
+
routing_surface_downscope
|
|
1195
1326
|
commit_case "replace the entrypoint with a same-named directory and vouch via a nested anchor"
|
|
1196
1327
|
run_gate
|
|
1197
1328
|
assert_rc "$rc" 1 "a directory masquerading as SKILL.md must not read as a present entrypoint"
|