@windyroad/retrospective 0.27.1 → 0.27.2
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/.claude-plugin/plugin.json +1 -1
- package/package.json +5 -2
- package/hooks/test/retrospective-deferral-census.bats +0 -112
- package/hooks/test/retrospective-readme-jtbd-currency.bats +0 -312
- package/scripts/test/check-ask-hygiene.bats +0 -262
- package/scripts/test/check-autocreate-rfc-scope.bats +0 -250
- package/scripts/test/check-briefing-budgets.bats +0 -349
- package/scripts/test/check-internal-id-leaks.bats +0 -286
- package/scripts/test/check-plugin-maturity-drift.bats +0 -269
- package/scripts/test/check-readme-jtbd-currency.bats +0 -165
- package/scripts/test/check-skill-md-budgets.bats +0 -336
- package/scripts/test/check-tarball-shipped-shims.bats +0 -284
- package/scripts/test/check-tickets-deferred-cause.bats +0 -330
- package/scripts/test/list-plugin-attribution.bats +0 -149
- package/scripts/test/measure-context-budget.bats +0 -298
- package/skills/analyze-context/test/analyze-context-skill-contract.bats +0 -142
- package/skills/migrate-briefing/test/migrate-briefing-contract.bats +0 -105
- package/skills/migrate-briefing/test/migrate-briefing-fixture.bats +0 -242
- package/skills/run-retro/test/run-retro-anti-pattern-clause.bats +0 -87
- package/skills/run-retro/test/run-retro-codification-candidates.bats +0 -168
- package/skills/run-retro/test/run-retro-context-usage-step-2c.bats +0 -156
- package/skills/run-retro/test/run-retro-pipeline-instability-scan.bats +0 -122
- package/skills/run-retro/test/run-retro-signal-vs-noise.bats +0 -137
- package/skills/run-retro/test/run-retro-skill-candidates.bats +0 -116
- package/skills/run-retro/test/run-retro-stage-1-fallback-gating.bats +0 -65
- package/skills/run-retro/test/run-retro-step-2d-r6-auto-flag.bats +0 -82
- package/skills/run-retro/test/run-retro-step-3-tier-3-branch-b-evidence-based.bats +0 -189
- package/skills/run-retro/test/run-retro-step-4a-cross-plugin-dispatch.bats +0 -114
- package/skills/run-retro/test/run-retro-step-4a-prior-session-evidence-drain.bats +0 -168
- package/skills/run-retro/test/run-retro-step-4a-recovery-path.bats +0 -84
- package/skills/run-retro/test/run-retro-step-4b-retro-auto-ticket-carveout.bats +0 -115
- package/skills/run-retro/test/run-retro-ticket-first-flow.bats +0 -161
- package/skills/run-retro/test/run-retro-verification-close-housekeeping.bats +0 -132
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bats
|
|
2
|
-
# Doc-lint guard: run-retro SKILL.md Step 4b must implement the two-stage
|
|
3
|
-
# ticket-first flow introduced by P075. Every codify-worthy observation files
|
|
4
|
-
# a problem ticket first (mechanical, Stage 1); the codification shape is
|
|
5
|
-
# recorded as the proposed fix strategy on the ticket (user-interactive,
|
|
6
|
-
# Stage 2). The 19-option flat AskUserQuestion is removed.
|
|
7
|
-
#
|
|
8
|
-
# Structural assertion — Permitted Exception to the source-grep ban
|
|
9
|
-
# (ADR-005 / P011 / ADR-037 contract-assertion pattern). These tests assert
|
|
10
|
-
# that the SKILL.md contract document carries the new two-stage structure
|
|
11
|
-
# and the architect-required audit notes.
|
|
12
|
-
#
|
|
13
|
-
# @problem P075
|
|
14
|
-
# @jtbd JTBD-001 (enforce governance without slowing down — removes redundant ticketing axis)
|
|
15
|
-
# @jtbd JTBD-006 (progress the backlog while I'm away — AFK-safe Rule 6 fallback)
|
|
16
|
-
# @jtbd JTBD-101 (extend the suite with clear patterns)
|
|
17
|
-
# @jtbd JTBD-201 (audit trail of AI-assisted work — every observation lands in the backlog)
|
|
18
|
-
#
|
|
19
|
-
# Cross-reference:
|
|
20
|
-
# P075: docs/problems/075-run-retro-codification-prompt-redundant-every-observation-is-a-problem.open.md
|
|
21
|
-
# P016: concern-boundary split preserved in Stage 1
|
|
22
|
-
# P044 / P050 / P051: reframed by P075 — fix-strategy on a problem ticket, not one option among 19
|
|
23
|
-
# ADR-013 Rule 1 / Rule 6 (docs/decisions/013-structured-user-interaction-for-governance-decisions.proposed.md)
|
|
24
|
-
# ADR-032 (docs/decisions/032-governance-skill-invocation-patterns.proposed.md) —
|
|
25
|
-
# foreground-spawns-N-background-fanout pattern and deferred-question contract
|
|
26
|
-
# ADR-037 (docs/decisions/037-skill-testing-strategy.proposed.md) — contract-assertion bats pattern
|
|
27
|
-
|
|
28
|
-
setup() {
|
|
29
|
-
SKILL_DIR="$(cd "$(dirname "$BATS_TEST_FILENAME")/.." && pwd)"
|
|
30
|
-
SKILL_FILE="${SKILL_DIR}/SKILL.md"
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
@test "SKILL.md Step 4b has Stage 1 and Stage 2 headings (P075)" {
|
|
34
|
-
# Two-stage flow is the load-bearing shape of the P075 fix.
|
|
35
|
-
run grep -inE "Stage 1[: —-]|### Stage 1|\*\*Stage 1\*\*" "$SKILL_FILE"
|
|
36
|
-
[ "$status" -eq 0 ]
|
|
37
|
-
run grep -inE "Stage 2[: —-]|### Stage 2|\*\*Stage 2\*\*" "$SKILL_FILE"
|
|
38
|
-
[ "$status" -eq 0 ]
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
@test "SKILL.md Step 4b Stage 1 delegates to manage-problem (P075)" {
|
|
42
|
-
# Stage 1 fires mechanically: every codify-worthy observation becomes a
|
|
43
|
-
# problem ticket via the ticket-creation delegation path. Accept either the
|
|
44
|
-
# foreground manage-problem path or the future capture-problem background
|
|
45
|
-
# path (ADR-032 sibling).
|
|
46
|
-
run grep -inE "/wr-itil:manage-problem|/wr-itil:capture-problem" "$SKILL_FILE"
|
|
47
|
-
[ "$status" -eq 0 ]
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
@test "SKILL.md Step 4b Stage 1 is mechanical — no ticketing AskUserQuestion (P075)" {
|
|
51
|
-
# The P075 user directive: "The answer should always be 'create a problem
|
|
52
|
-
# ticket' so the question is redundant." Stage 1 must NOT present
|
|
53
|
-
# ticketing as an AskUserQuestion option alongside other shapes. The
|
|
54
|
-
# literal "Problem — invoke manage-problem" option from the legacy
|
|
55
|
-
# 19-option flat list must be gone.
|
|
56
|
-
run grep -in "Problem — invoke manage-problem\|Problem - invoke manage-problem" "$SKILL_FILE"
|
|
57
|
-
[ "$status" -ne 0 ]
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
@test "SKILL.md Step 4b Stage 2 is silent agent action per ADR-044 (no AskUserQuestion)" {
|
|
61
|
-
# P135 Phase 2 / ADR-044: Stage 2 is no longer an AskUserQuestion per ticket;
|
|
62
|
-
# the agent picks the obvious-fit shape from the catalog. The legacy
|
|
63
|
-
# 'Proposed fix' AskUserQuestion header is GONE; the new contract is
|
|
64
|
-
# silent-agent-picks-from-catalog with user-edits-ticket-if-wrong correction.
|
|
65
|
-
run awk '/^#### Stage 2:/,/^#### Stub templates by Option/ {print}' "$SKILL_FILE"
|
|
66
|
-
[ "$status" -eq 0 ]
|
|
67
|
-
[[ "$output" == *"ADR-044"* ]]
|
|
68
|
-
[[ "$output" == *"silent"* ]]
|
|
69
|
-
# Negative: header line must NOT contain Proposed fix as an AskUserQuestion header
|
|
70
|
-
[[ "$output" != *"header: \"Proposed fix\""* ]]
|
|
71
|
-
[[ "$output" != *"header: 'Proposed fix'"* ]]
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
@test "SKILL.md Step 4b Stage 2 retains the four shape choices in the catalog (architect-pinned shapes preserved)" {
|
|
75
|
-
# Phase 2 removed the AskUserQuestion but preserved the four shape choices
|
|
76
|
-
# in the catalog narrative — agent now picks among them silently. The four
|
|
77
|
-
# shape labels must still be enumerated so the agent has a deterministic
|
|
78
|
-
# catalog to pick from.
|
|
79
|
-
run grep -cE "^[[:space:]]*[0-9]+\.[[:space:]]+\*\*(Skill — create stub|Skill — improvement stub|Other codification shape|Self-contained work)" "$SKILL_FILE"
|
|
80
|
-
[ "$status" -eq 0 ]
|
|
81
|
-
[ "$output" -ge 4 ]
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
@test "SKILL.md Step 4b Stage 2 option 4 is 'Self-contained work — no codification stub' (P075 + architect Q2)" {
|
|
85
|
-
# Architect Q2: the "no codification" option must not re-create the P044
|
|
86
|
-
# escape hatch. Required rename to "Self-contained work — no codification
|
|
87
|
-
# stub" with a Rule 6 audit note clarifying the valid scope.
|
|
88
|
-
run grep -inE "Self-contained work[[:space:]]*—[[:space:]]*no codification stub" "$SKILL_FILE"
|
|
89
|
-
[ "$status" -eq 0 ]
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
@test "SKILL.md Step 4b Stage 2 option 4 carries a Rule 6 audit note (P075 + architect Q2)" {
|
|
93
|
-
# Architect-required audit note: Option 4 valid only when the problem is a
|
|
94
|
-
# bounded one-shot edit with no recurring-pattern signal. Protects P044's
|
|
95
|
-
# recommend-skills intent from leaking.
|
|
96
|
-
run grep -inE "bounded one-shot|no recurring[- ]pattern signal|not a recurring pattern|one-shot edit" "$SKILL_FILE"
|
|
97
|
-
[ "$status" -eq 0 ]
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
@test "SKILL.md Step 4b Stage 2 option 3 captures 'Other codification shape' via free-text (P075 + architect Q4)" {
|
|
101
|
-
# Architect Q4 lean (b): free-text Fix Strategy capture, not cascading
|
|
102
|
-
# AskUserQuestion batches. The option must name the free-text capture
|
|
103
|
-
# path so downstream readers can tell cascading was rejected.
|
|
104
|
-
run grep -inE "Other codification shape.*free[- ]text|free[- ]text.*Fix Strategy|free[- ]text capture" "$SKILL_FILE"
|
|
105
|
-
[ "$status" -eq 0 ]
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
@test "SKILL.md Step 4b records proposed fix on the ticket's '## Fix Strategy' section (P075)" {
|
|
109
|
-
# Fix strategy lives on the ticket, not in the retro summary. This is the
|
|
110
|
-
# structural invariant that decouples ticketing (Stage 1) from codification
|
|
111
|
-
# (Stage 2).
|
|
112
|
-
run grep -inE "## Fix Strategy|Fix Strategy section" "$SKILL_FILE"
|
|
113
|
-
[ "$status" -eq 0 ]
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
@test "SKILL.md Step 4b cites ADR-032 for Stage 1 foreground-spawns-N-background fanout (architect Q1)" {
|
|
117
|
-
# Architect Q1: Stage 1 is a legitimate foreground-spawns-N-background case
|
|
118
|
-
# that ADR-032 does not currently contemplate. The SKILL.md must cite
|
|
119
|
-
# ADR-032 explicitly so the cross-plugin ownership boundary is legible.
|
|
120
|
-
run grep -inE "ADR-032|032-governance-skill-invocation-patterns" "$SKILL_FILE"
|
|
121
|
-
[ "$status" -eq 0 ]
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
@test "SKILL.md Step 4b Stage 2 AFK fallback defers via deferred-question contract (P075 + architect Q3)" {
|
|
125
|
-
# Architect Q3: ADR-032 lines 90-110 define the deferred-question artefact
|
|
126
|
-
# shape (pending-questions + resumption context, FIFO). Stage 2 AFK branch
|
|
127
|
-
# must cite that contract, not re-invent a new artefact.
|
|
128
|
-
run grep -inE "deferred[- ]question|deferred question|pending[- ]question" "$SKILL_FILE"
|
|
129
|
-
[ "$status" -eq 0 ]
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
@test "SKILL.md Step 4b Stage 1 preserves P016 concern-boundary split (P075)" {
|
|
133
|
-
# Stage 1's mechanical ticketing must still apply the concern-boundary rule
|
|
134
|
-
# so multi-concern observations split into separate tickets, not land as one
|
|
135
|
-
# conflated ticket.
|
|
136
|
-
run grep -inE "P016|concern[- ]boundary" "$SKILL_FILE"
|
|
137
|
-
[ "$status" -eq 0 ]
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
@test "SKILL.md Step 4b retains ADR-013 Rule 6 non-interactive fallback (P075)" {
|
|
141
|
-
# Rule 6 must still apply: when AskUserQuestion is unavailable, Stage 2
|
|
142
|
-
# defers; Stage 1 fires regardless because it is mechanical.
|
|
143
|
-
run grep -inE "Rule 6|non-interactive" "$SKILL_FILE"
|
|
144
|
-
[ "$status" -eq 0 ]
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
@test "SKILL.md Step 4b drops the legacy 19-option flat list (P075 regression guard)" {
|
|
148
|
-
# The legacy flat list had option rows like "Settings — propose entry",
|
|
149
|
-
# "CI — propose step", "Test fixture — create stub", "Memory — propose
|
|
150
|
-
# note". Those rows are replaced by Stage 2 Option 3's free-text capture.
|
|
151
|
-
# This test is the regression guard — the legacy rows must not survive
|
|
152
|
-
# the rewrite.
|
|
153
|
-
run grep -inE "^[[:space:]]+[0-9]+\.[[:space:]]+\`?Settings[[:space:]]*—[[:space:]]*propose entry" "$SKILL_FILE"
|
|
154
|
-
[ "$status" -ne 0 ]
|
|
155
|
-
run grep -inE "^[[:space:]]+[0-9]+\.[[:space:]]+\`?CI[[:space:]]*—[[:space:]]*propose step" "$SKILL_FILE"
|
|
156
|
-
[ "$status" -ne 0 ]
|
|
157
|
-
run grep -inE "^[[:space:]]+[0-9]+\.[[:space:]]+\`?Test fixture[[:space:]]*—[[:space:]]*create stub" "$SKILL_FILE"
|
|
158
|
-
[ "$status" -ne 0 ]
|
|
159
|
-
run grep -inE "^[[:space:]]+[0-9]+\.[[:space:]]+\`?Memory[[:space:]]*—[[:space:]]*propose note" "$SKILL_FILE"
|
|
160
|
-
[ "$status" -ne 0 ]
|
|
161
|
-
}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bats
|
|
2
|
-
|
|
3
|
-
# P068: run-retro SKILL.md documents the Verification-close housekeeping
|
|
4
|
-
# step (Step 4a) that surfaces in-session evidence for `.verifying.md`
|
|
5
|
-
# tickets and delegates the close transition to /wr-itil:manage-problem.
|
|
6
|
-
#
|
|
7
|
-
# Doc-lint structural test (Permitted Exception per ADR-005). Asserts
|
|
8
|
-
# SKILL.md wording for: the glob, the evidence-scan grounding (ADR-026),
|
|
9
|
-
# the three categorisation buckets, the AskUserQuestion prompt contract
|
|
10
|
-
# (ADR-013 Rule 1), the AFK fallback (ADR-013 Rule 6), the delegation
|
|
11
|
-
# boundary to manage-problem Step 7 (ADR-022 + ADR-014 ownership), and
|
|
12
|
-
# the ADR-027 auto-delegation compatibility note.
|
|
13
|
-
|
|
14
|
-
setup() {
|
|
15
|
-
REPO_ROOT="$(cd "$(dirname "$BATS_TEST_FILENAME")/../../../../.." && pwd)"
|
|
16
|
-
SKILL_MD="$REPO_ROOT/packages/retrospective/skills/run-retro/SKILL.md"
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
@test "run-retro: SKILL.md contains Step 4a Verification-close housekeeping (P068)" {
|
|
20
|
-
run grep -F '### 4a. Verification-close housekeeping (P068)' "$SKILL_MD"
|
|
21
|
-
[ "$status" -eq 0 ]
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
@test "run-retro: Step 4a globs docs/problems/*.verifying.md per ADR-022" {
|
|
25
|
-
run grep -F 'docs/problems/*.verifying.md' "$SKILL_MD"
|
|
26
|
-
[ "$status" -eq 0 ]
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
@test "run-retro: Step 4a delegates the close transition to /wr-itil:manage-problem Step 7" {
|
|
30
|
-
run grep -F '/wr-itil:manage-problem' "$SKILL_MD"
|
|
31
|
-
[ "$status" -eq 0 ]
|
|
32
|
-
run grep -F 'run-retro does **not** rename, edit the Status field, or commit' "$SKILL_MD"
|
|
33
|
-
[ "$status" -eq 0 ]
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
@test "run-retro: Step 4a documents all three evidence-category buckets" {
|
|
37
|
-
run grep -F 'Exercised successfully in-session' "$SKILL_MD"
|
|
38
|
-
[ "$status" -eq 0 ]
|
|
39
|
-
run grep -F 'Not exercised in-session' "$SKILL_MD"
|
|
40
|
-
[ "$status" -eq 0 ]
|
|
41
|
-
run grep -F 'Exercised with regression' "$SKILL_MD"
|
|
42
|
-
[ "$status" -eq 0 ]
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
@test "run-retro: Step 4a requires specific-citation grounding (ADR-026)" {
|
|
46
|
-
run grep -F 'ADR-026 grounding' "$SKILL_MD"
|
|
47
|
-
[ "$status" -eq 0 ]
|
|
48
|
-
run grep -F 'not bare counts' "$SKILL_MD"
|
|
49
|
-
[ "$status" -eq 0 ]
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
@test "run-retro: Step 4a close-on-evidence dispatches to /wr-itil:transition-problem (P135 Phase 2 / ADR-044)" {
|
|
53
|
-
# Phase 2 superseded the per-candidate AskUserQuestion (Close/Leave/Flag) with
|
|
54
|
-
# close-on-evidence delegation per ADR-044. The bats now assert the new
|
|
55
|
-
# contract: Step 4a delegates to /wr-itil:transition-problem WITHOUT asking,
|
|
56
|
-
# and ADR-044 framework-resolution boundary is the rationale.
|
|
57
|
-
run grep -F '/wr-itil:transition-problem' "$SKILL_MD"
|
|
58
|
-
[ "$status" -eq 0 ]
|
|
59
|
-
run grep -F 'ADR-044' "$SKILL_MD"
|
|
60
|
-
[ "$status" -eq 0 ]
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
@test "run-retro: Step 4a close-on-evidence requires concrete in-session citation (ADR-026 grounding)" {
|
|
64
|
-
# Phase 2 preserves the evidence requirement (ADR-026); without concrete
|
|
65
|
-
# citation, the ticket stays Verification Pending (ambiguous-evidence path).
|
|
66
|
-
run grep -F 'ADR-026' "$SKILL_MD"
|
|
67
|
-
[ "$status" -eq 0 ]
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
@test "run-retro: Step 4a documents recovery path inline (P135 R5 — closes are reversible)" {
|
|
71
|
-
# Phase 2's close-on-evidence is reversible via /wr-itil:transition-problem
|
|
72
|
-
# known-error flip-back (the 2026-04-27 P124 precedent). Recovery path is
|
|
73
|
-
# documented inline alongside each close action in the Step 5 retro summary.
|
|
74
|
-
run awk '/^### 4a\./,/^### 4b\./ {print}' "$SKILL_MD"
|
|
75
|
-
[ "$status" -eq 0 ]
|
|
76
|
-
[[ "$output" == *"Recovery"* ]] || [[ "$output" == *"reversible"* ]]
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
@test "run-retro: Step 4a AFK and interactive modes use identical close-on-evidence behaviour (ADR-044)" {
|
|
80
|
-
# Phase 2 collapsed the legacy AskUserQuestion-with-AFK-fallback into a
|
|
81
|
-
# single silent-close-on-evidence path. Per ADR-044 framework-resolution
|
|
82
|
-
# boundary: when the framework resolves the decision (concrete evidence
|
|
83
|
-
# per ADR-022 + ADR-026), the agent acts; per-candidate ask is lazy
|
|
84
|
-
# deferral. AFK and interactive paths are identical for this surface.
|
|
85
|
-
# Asserting the legacy "Non-interactive / AFK fallback (per ADR-013 Rule 6)"
|
|
86
|
-
# AskUserQuestion-vs-fallback split is GONE from Step 4a.
|
|
87
|
-
run awk '/^### 4a\./,/^### 4b\./ {print}' "$SKILL_MD"
|
|
88
|
-
[ "$status" -eq 0 ]
|
|
89
|
-
[[ "$output" != *"do NOT auto-close"* ]]
|
|
90
|
-
[[ "$output" != *"Close P<NNN>\` — description"* ]]
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
@test "run-retro: Step 4a ADR-032 supersession note documents post-supersession context handling" {
|
|
94
|
-
# ADR-027 was superseded by ADR-032 (2026-04-21). The former
|
|
95
|
-
# "ADR-027 compatibility note" was rewritten to an ADR-032 supersession
|
|
96
|
-
# note that records the obviation of any Step-0 subagent migration.
|
|
97
|
-
# Structural grep retained for now (P081 anti-pattern; convert to
|
|
98
|
-
# behavioural fixture in a follow-up — tracked separately).
|
|
99
|
-
run grep -F 'ADR-032 supersession note' "$SKILL_MD"
|
|
100
|
-
[ "$status" -eq 0 ]
|
|
101
|
-
run grep -F 'No Step-0 subagent migration applies' "$SKILL_MD"
|
|
102
|
-
[ "$status" -eq 0 ]
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
@test "run-retro: Step 4a cites feedback_verify_from_own_observation memory for the deferred-close rationale" {
|
|
106
|
-
run grep -F 'feedback_verify_from_own_observation.md' "$SKILL_MD"
|
|
107
|
-
[ "$status" -eq 0 ]
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
@test "run-retro: Step 4a documents interaction with manage-problem Step 9d and same-session verifyings are skipped" {
|
|
111
|
-
run grep -F 'manage-problem Step 9d' "$SKILL_MD"
|
|
112
|
-
[ "$status" -eq 0 ]
|
|
113
|
-
run grep -F 'same-session verifyings' "$SKILL_MD"
|
|
114
|
-
[ "$status" -eq 0 ]
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
@test "run-retro: Step 5 summary adds a Verification Candidates section" {
|
|
118
|
-
run grep -F '### Verification Candidates' "$SKILL_MD"
|
|
119
|
-
[ "$status" -eq 0 ]
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
@test "run-retro: Verification Candidates table columns match the Step 4a output semantics" {
|
|
123
|
-
run grep -F '| Ticket | Fix summary | In-session citations | Decision |' "$SKILL_MD"
|
|
124
|
-
[ "$status" -eq 0 ]
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
@test "run-retro: Step 4a does not miscite ADR-018 as the retrospective contract (P068 architect review)" {
|
|
128
|
-
# The SKILL.md change must not claim ADR-018 governs the run-retro contract.
|
|
129
|
-
# ADR-018 is about AFK inter-iteration release cadence, not retrospective.
|
|
130
|
-
run grep -iE 'ADR-018.*retrospective (contract|ADR)|retrospective (contract|ADR).*ADR-018' "$SKILL_MD"
|
|
131
|
-
[ "$status" -ne 0 ]
|
|
132
|
-
}
|