@cleocode/skills 2026.4.161 → 2026.5.1

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.
Files changed (29) hide show
  1. package/package.json +1 -1
  2. package/skills/ct-council/SKILL.md +377 -0
  3. package/skills/ct-council/optimization/HARDENING-PLAYBOOK.md +107 -0
  4. package/skills/ct-council/optimization/README.md +74 -0
  5. package/skills/ct-council/optimization/scenarios.yaml +121 -0
  6. package/skills/ct-council/optimization/scripts/campaign.py +543 -0
  7. package/skills/ct-council/optimization/scripts/test_campaign.py +143 -0
  8. package/skills/ct-council/references/chairman.md +119 -0
  9. package/skills/ct-council/references/contrarian.md +70 -0
  10. package/skills/ct-council/references/evidence-pack.md +145 -0
  11. package/skills/ct-council/references/examples.md +235 -0
  12. package/skills/ct-council/references/executor.md +83 -0
  13. package/skills/ct-council/references/expansionist.md +68 -0
  14. package/skills/ct-council/references/first-principles.md +73 -0
  15. package/skills/ct-council/references/outsider.md +73 -0
  16. package/skills/ct-council/references/peer-review.md +125 -0
  17. package/skills/ct-council/scripts/analyze_runs.py +293 -0
  18. package/skills/ct-council/scripts/fixtures/executor_multi.md +198 -0
  19. package/skills/ct-council/scripts/fixtures/missing_advisor.md +117 -0
  20. package/skills/ct-council/scripts/fixtures/missing_convergence.md +190 -0
  21. package/skills/ct-council/scripts/fixtures/thin_evidence.md +193 -0
  22. package/skills/ct-council/scripts/fixtures/valid.md +226 -0
  23. package/skills/ct-council/scripts/fixtures/valid_with_llmtxt.md +226 -0
  24. package/skills/ct-council/scripts/llmtxt_ref.py +223 -0
  25. package/skills/ct-council/scripts/run_council.py +578 -0
  26. package/skills/ct-council/scripts/telemetry.py +624 -0
  27. package/skills/ct-council/scripts/test_telemetry.py +509 -0
  28. package/skills/ct-council/scripts/test_validate.py +452 -0
  29. package/skills/ct-council/scripts/validate.py +396 -0
@@ -0,0 +1,117 @@
1
+ # The Council — Should we add a retry-on-timeout wrapper to outbound HTTP calls?
2
+
3
+ ## Evidence pack
4
+
5
+ 1. `packages/core/src/http.ts:L12-L58` — current httpGet/httpPost; no retry logic.
6
+ 2. `packages/core/src/circuit-breaker.ts` — exists with zero callers.
7
+ 3. commit `a1b2c3d "drop retries from http client"` — retries removed 18 months ago.
8
+
9
+ ## Phase 1 — Advisor analyses
10
+
11
+ ### Advisor: Contrarian
12
+
13
+ **Frame:** Assume the plan is wrong.
14
+
15
+ **Evidence anchored:**
16
+ - commit `a1b2c3d` — retries were pulled for a documented reason.
17
+ - `packages/core/src/http.ts` — zero per-caller rate limits.
18
+
19
+ **Findings:**
20
+ 1. Retry storm risk.
21
+
22
+ **Verdict from this lens:** Plan re-introduces known incident class.
23
+
24
+ **Single sharpest point:** Retry wrapper without breaker reproduces old bug.
25
+
26
+ ### Advisor: First Principles
27
+
28
+ **Frame:** Ignore everything that was said.
29
+
30
+ **Evidence anchored:**
31
+ - RFC 7231 — HTTP POST semantics.
32
+ - `packages/core/src/http.ts:L12-L58`.
33
+
34
+ **Verdict from this lens:** Plan is incomplete.
35
+
36
+ **Single sharpest point:** Non-idempotent requests cannot be blindly retried.
37
+
38
+ ### Advisor: Expansionist
39
+
40
+ **Frame:** Forget the constraints.
41
+
42
+ **Evidence anchored:**
43
+ - `packages/core/src/circuit-breaker.ts`.
44
+ - `MEMORY.md`.
45
+
46
+ **Verdict from this lens:** Owner thinking too small.
47
+
48
+ **Single sharpest point:** Wire the circuit breaker for asymmetric upside.
49
+
50
+ ### Advisor: Executor
51
+
52
+ **Frame:** Don't analyze.
53
+
54
+ **Evidence anchored:**
55
+ - `packages/core/test/http.test.ts`.
56
+ - `packages/core/src/circuit-breaker.ts`.
57
+
58
+ **The action (one):**
59
+ Write a failing test.
60
+
61
+ **Expected outcome (60 minutes from now):**
62
+ New test file.
63
+
64
+ **What this unblocks:**
65
+ Test-first implementation.
66
+
67
+ **Verdict from this lens:** Pin design before prose.
68
+
69
+ **Single sharpest point:** Write the test.
70
+
71
+ ## Phase 2 — Shuffled peer reviews
72
+
73
+ ### Contrarian reviewing First Principles
74
+
75
+ **Gate results:**
76
+ - G1 Rigor: PASS — finding is specific.
77
+ - G2 Evidence grounding: PASS — cites sources.
78
+ - G3 Frame integrity: PASS — stayed in lane.
79
+ - G4 Actionability: PASS — decidable.
80
+
81
+ **Strongest finding (from reviewee):** Idempotency atom.
82
+
83
+ **Gap from Contrarian's frame:** No incident class named.
84
+
85
+ **What I would add:** Data-integrity hazard.
86
+
87
+ **Disposition:** Accept — holds up.
88
+
89
+ ## Phase 2.5 — Convergence check
90
+
91
+ No convergence.
92
+
93
+ ## Phase 3 — Chairman's verdict
94
+
95
+ ### Gate summary
96
+
97
+ | Advisor | G1 | G2 | G3 | G4 | Weight |
98
+ |---|---|---|---|---|---|
99
+ | Contrarian | PASS | PASS | PASS | PASS | full |
100
+
101
+ ### Recommendation
102
+ Do not ship.
103
+
104
+ ### Why this, not the alternatives
105
+ Incomplete run.
106
+
107
+ ### What each advisor got right
108
+ Incomplete.
109
+
110
+ ### Conditions on the recommendation
111
+ Unconditional.
112
+
113
+ ### Next 60-minute action
114
+ Rerun the council with the Outsider included.
115
+
116
+ ### Confidence
117
+ Low — incomplete advisor coverage.
@@ -0,0 +1,190 @@
1
+ # The Council — Should we add a retry-on-timeout wrapper to outbound HTTP calls?
2
+
3
+ ## Evidence pack
4
+
5
+ 1. `packages/core/src/http.ts:L12-L58` — current httpGet/httpPost.
6
+ 2. `packages/core/src/circuit-breaker.ts` — exists with zero callers.
7
+ 3. commit `a1b2c3d` — retries removed 18 months ago.
8
+
9
+ ## Phase 1 — Advisor analyses
10
+
11
+ ### Advisor: Contrarian
12
+
13
+ **Frame:** Assume the plan is wrong.
14
+
15
+ **Evidence anchored:**
16
+ - commit `a1b2c3d`.
17
+ - `packages/core/src/http.ts`.
18
+
19
+ **Verdict from this lens:** Risk.
20
+
21
+ **Single sharpest point:** Retry wrapper reproduces old bug.
22
+
23
+ ### Advisor: First Principles
24
+
25
+ **Frame:** Atoms.
26
+
27
+ **Evidence anchored:**
28
+ - RFC 7231.
29
+ - `http.ts`.
30
+
31
+ **Verdict from this lens:** Incomplete.
32
+
33
+ **Single sharpest point:** Idempotency required.
34
+
35
+ ### Advisor: Expansionist
36
+
37
+ **Frame:** Upside.
38
+
39
+ **Evidence anchored:**
40
+ - `circuit-breaker.ts`.
41
+ - `MEMORY.md`.
42
+
43
+ **Verdict from this lens:** Upside missed.
44
+
45
+ **Single sharpest point:** Wire the breaker.
46
+
47
+ ### Advisor: Outsider
48
+
49
+ **Frame:** Stranger.
50
+
51
+ **Evidence anchored:**
52
+ - `circuit-breaker.ts`.
53
+ - `ADR-021`.
54
+
55
+ **Verdict from this lens:** Preparation unfinished.
56
+
57
+ **Single sharpest point:** ADR precondition met.
58
+
59
+ ### Advisor: Executor
60
+
61
+ **Frame:** Action.
62
+
63
+ **Evidence anchored:**
64
+ - `http.test.ts`.
65
+ - `circuit-breaker.ts`.
66
+
67
+ **The action (one):**
68
+ Write failing test.
69
+
70
+ **Expected outcome (60 minutes from now):**
71
+ Test exists.
72
+
73
+ **What this unblocks:**
74
+ Implementation.
75
+
76
+ **Verdict from this lens:** Pin first.
77
+
78
+ **Single sharpest point:** Write the test.
79
+
80
+ ## Phase 2 — Shuffled peer reviews
81
+
82
+ ### Contrarian reviewing First Principles
83
+
84
+ **Gate results:**
85
+ - G1 Rigor: PASS — specific.
86
+ - G2 Evidence grounding: PASS — cited.
87
+ - G3 Frame integrity: PASS — in lane.
88
+ - G4 Actionability: PASS — decidable.
89
+
90
+ **Strongest finding (from reviewee):** Idempotency.
91
+
92
+ **Gap from Contrarian's frame:** None.
93
+
94
+ **What I would add:** Nothing.
95
+
96
+ **Disposition:** Accept — holds.
97
+
98
+ ### First Principles reviewing Expansionist
99
+
100
+ **Gate results:**
101
+ - G1 Rigor: PASS — specific.
102
+ - G2 Evidence grounding: PASS — cited.
103
+ - G3 Frame integrity: PASS — in lane.
104
+ - G4 Actionability: PASS — decidable.
105
+
106
+ **Strongest finding (from reviewee):** Asset.
107
+
108
+ **Gap from First Principles' frame:** None.
109
+
110
+ **What I would add:** Nothing.
111
+
112
+ **Disposition:** Accept — holds.
113
+
114
+ ### Expansionist reviewing Outsider
115
+
116
+ **Gate results:**
117
+ - G1 Rigor: PASS — specific.
118
+ - G2 Evidence grounding: PASS — cited.
119
+ - G3 Frame integrity: PASS — in lane.
120
+ - G4 Actionability: PASS — decidable.
121
+
122
+ **Strongest finding (from reviewee):** ADR gap.
123
+
124
+ **Gap from Expansionist's frame:** None.
125
+
126
+ **What I would add:** Nothing.
127
+
128
+ **Disposition:** Accept — holds.
129
+
130
+ ### Outsider reviewing Executor
131
+
132
+ **Gate results:**
133
+ - G1 Rigor: PASS — specific.
134
+ - G2 Evidence grounding: PASS — cited.
135
+ - G3 Frame integrity: PASS — in lane.
136
+ - G4 Actionability: PASS — decidable.
137
+
138
+ **Strongest finding (from reviewee):** Test.
139
+
140
+ **Gap from Outsider's frame:** None.
141
+
142
+ **What I would add:** Nothing.
143
+
144
+ **Disposition:** Accept — holds.
145
+
146
+ ### Executor reviewing Contrarian
147
+
148
+ **Gate results:**
149
+ - G1 Rigor: PASS — specific.
150
+ - G2 Evidence grounding: PASS — cited.
151
+ - G3 Frame integrity: PASS — in lane.
152
+ - G4 Actionability: PASS — decidable.
153
+
154
+ **Strongest finding (from reviewee):** Retry storm.
155
+
156
+ **Gap from Executor's frame:** No mitigation.
157
+
158
+ **What I would add:** Wire breaker first.
159
+
160
+ **Disposition:** Accept — real.
161
+
162
+ ## Phase 3 — Chairman's verdict
163
+
164
+ ### Gate summary
165
+
166
+ | Advisor | G1 | G2 | G3 | G4 | Weight |
167
+ |---|---|---|---|---|---|
168
+ | Contrarian | PASS | PASS | PASS | PASS | full |
169
+ | First Principles | PASS | PASS | PASS | PASS | full |
170
+ | Expansionist | PASS | PASS | PASS | PASS | full |
171
+ | Outsider | PASS | PASS | PASS | PASS | full |
172
+ | Executor | PASS | PASS | PASS | PASS | full |
173
+
174
+ ### Recommendation
175
+ Ship conditionally.
176
+
177
+ ### Why this, not the alternatives
178
+ Convergence check was skipped.
179
+
180
+ ### What each advisor got right
181
+ Various.
182
+
183
+ ### Conditions on the recommendation
184
+ Run convergence detector before accepting verdict.
185
+
186
+ ### Next 60-minute action
187
+ Add Phase 2.5 section with convergence analysis.
188
+
189
+ ### Confidence
190
+ Low — convergence check missing.
@@ -0,0 +1,193 @@
1
+ # The Council — Should we add a retry-on-timeout wrapper to outbound HTTP calls?
2
+
3
+ ## Evidence pack
4
+
5
+ 1. `packages/core/src/http.ts:L12-L58` — current httpGet/httpPost.
6
+ 2. `packages/core/src/circuit-breaker.ts` — exists with zero callers.
7
+
8
+ ## Phase 1 — Advisor analyses
9
+
10
+ ### Advisor: Contrarian
11
+
12
+ **Frame:** Assume the plan is wrong.
13
+
14
+ **Evidence anchored:**
15
+ - commit `a1b2c3d`.
16
+ - `packages/core/src/http.ts`.
17
+
18
+ **Verdict from this lens:** Risk.
19
+
20
+ **Single sharpest point:** Retry wrapper reproduces old bug.
21
+
22
+ ### Advisor: First Principles
23
+
24
+ **Frame:** Atoms.
25
+
26
+ **Evidence anchored:**
27
+ - RFC 7231.
28
+ - `http.ts`.
29
+
30
+ **Verdict from this lens:** Incomplete.
31
+
32
+ **Single sharpest point:** Idempotency required.
33
+
34
+ ### Advisor: Expansionist
35
+
36
+ **Frame:** Upside.
37
+
38
+ **Evidence anchored:**
39
+ - `circuit-breaker.ts`.
40
+ - `MEMORY.md`.
41
+
42
+ **Verdict from this lens:** Upside missed.
43
+
44
+ **Single sharpest point:** Wire the breaker.
45
+
46
+ ### Advisor: Outsider
47
+
48
+ **Frame:** Stranger.
49
+
50
+ **Evidence anchored:**
51
+ - `circuit-breaker.ts`.
52
+ - `ADR-021`.
53
+
54
+ **Verdict from this lens:** Preparation unfinished.
55
+
56
+ **Single sharpest point:** ADR precondition already met.
57
+
58
+ ### Advisor: Executor
59
+
60
+ **Frame:** Action.
61
+
62
+ **Evidence anchored:**
63
+ - `http.test.ts`.
64
+ - `circuit-breaker.ts`.
65
+
66
+ **The action (one):**
67
+ Write failing test.
68
+
69
+ **Expected outcome (60 minutes from now):**
70
+ Test exists.
71
+
72
+ **What this unblocks:**
73
+ Implementation.
74
+
75
+ **Verdict from this lens:** Pin first.
76
+
77
+ **Single sharpest point:** Write the test.
78
+
79
+ ## Phase 2 — Shuffled peer reviews
80
+
81
+ ### Contrarian reviewing First Principles
82
+
83
+ **Gate results:**
84
+ - G1 Rigor: PASS — specific.
85
+ - G2 Evidence grounding: PASS — cited.
86
+ - G3 Frame integrity: PASS — in lane.
87
+ - G4 Actionability: PASS — decidable.
88
+
89
+ **Strongest finding (from reviewee):** Idempotency.
90
+
91
+ **Gap from Contrarian's frame:** None.
92
+
93
+ **What I would add:** Nothing.
94
+
95
+ **Disposition:** Accept — holds.
96
+
97
+ ### First Principles reviewing Expansionist
98
+
99
+ **Gate results:**
100
+ - G1 Rigor: PASS — specific.
101
+ - G2 Evidence grounding: PASS — cited.
102
+ - G3 Frame integrity: PASS — in lane.
103
+ - G4 Actionability: PASS — decidable.
104
+
105
+ **Strongest finding (from reviewee):** Asset.
106
+
107
+ **Gap from First Principles' frame:** None.
108
+
109
+ **What I would add:** Nothing.
110
+
111
+ **Disposition:** Accept — holds.
112
+
113
+ ### Expansionist reviewing Outsider
114
+
115
+ **Gate results:**
116
+ - G1 Rigor: PASS — specific.
117
+ - G2 Evidence grounding: PASS — cited.
118
+ - G3 Frame integrity: PASS — in lane.
119
+ - G4 Actionability: PASS — decidable.
120
+
121
+ **Strongest finding (from reviewee):** ADR gap.
122
+
123
+ **Gap from Expansionist's frame:** None.
124
+
125
+ **What I would add:** Nothing.
126
+
127
+ **Disposition:** Accept — holds.
128
+
129
+ ### Outsider reviewing Executor
130
+
131
+ **Gate results:**
132
+ - G1 Rigor: PASS — specific.
133
+ - G2 Evidence grounding: PASS — cited.
134
+ - G3 Frame integrity: PASS — in lane.
135
+ - G4 Actionability: PASS — decidable.
136
+
137
+ **Strongest finding (from reviewee):** Test.
138
+
139
+ **Gap from Outsider's frame:** None.
140
+
141
+ **What I would add:** Nothing.
142
+
143
+ **Disposition:** Accept — holds.
144
+
145
+ ### Executor reviewing Contrarian
146
+
147
+ **Gate results:**
148
+ - G1 Rigor: PASS — specific.
149
+ - G2 Evidence grounding: PASS — cited.
150
+ - G3 Frame integrity: PASS — in lane.
151
+ - G4 Actionability: PASS — decidable.
152
+
153
+ **Strongest finding (from reviewee):** Retry storm.
154
+
155
+ **Gap from Executor's frame:** No mitigation.
156
+
157
+ **What I would add:** Wire breaker first.
158
+
159
+ **Disposition:** Accept — real.
160
+
161
+ ## Phase 2.5 — Convergence check
162
+
163
+ No convergence.
164
+
165
+ ## Phase 3 — Chairman's verdict
166
+
167
+ ### Gate summary
168
+
169
+ | Advisor | G1 | G2 | G3 | G4 | Weight |
170
+ |---|---|---|---|---|---|
171
+ | Contrarian | PASS | PASS | PASS | PASS | full |
172
+ | First Principles | PASS | PASS | PASS | PASS | full |
173
+ | Expansionist | PASS | PASS | PASS | PASS | full |
174
+ | Outsider | PASS | PASS | PASS | PASS | full |
175
+ | Executor | PASS | PASS | PASS | PASS | full |
176
+
177
+ ### Recommendation
178
+ Ship with conditions.
179
+
180
+ ### Why this, not the alternatives
181
+ Thin evidence pack limits confidence.
182
+
183
+ ### What each advisor got right
184
+ Various.
185
+
186
+ ### Conditions on the recommendation
187
+ Expand the evidence pack.
188
+
189
+ ### Next 60-minute action
190
+ Run git log -20 in packages/core/ to expand the evidence pack before re-running.
191
+
192
+ ### Confidence
193
+ Low — evidence pack underspecified.