@event4u/agent-config 1.31.0 → 1.33.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/.agent-src/commands/research/deep.md +149 -0
- package/.agent-src/commands/research/report.md +134 -0
- package/.agent-src/commands/research.md +43 -13
- package/.agent-src/skills/feature-planning/SKILL.md +43 -7
- package/.agent-src/skills/judge-test-coverage/SKILL.md +4 -0
- package/.agent-src/skills/pest-testing/SKILL.md +13 -6
- package/.agent-src/skills/quality-tools/SKILL.md +4 -0
- package/.agent-src/skills/refine-prompt/SKILL.md +10 -0
- package/.agent-src/skills/refine-ticket/SKILL.md +12 -0
- package/.agent-src/skills/subagent-orchestration/SKILL.md +77 -12
- package/.agent-src/skills/subagent-orchestration/prompts/README.md +29 -0
- package/.agent-src/skills/subagent-orchestration/prompts/do-and-judge-two-stage.md +121 -0
- package/.agent-src/skills/subagent-orchestration/prompts/do-and-judge.md +60 -0
- package/.agent-src/skills/subagent-orchestration/prompts/do-competitively.md +65 -0
- package/.agent-src/skills/subagent-orchestration/prompts/do-in-parallel.md +62 -0
- package/.agent-src/skills/subagent-orchestration/prompts/do-in-steps.md +62 -0
- package/.agent-src/skills/subagent-orchestration/prompts/do-in-worktrees.md +70 -0
- package/.agent-src/skills/subagent-orchestration/prompts/judge-with-debate.md +63 -0
- package/.agent-src/skills/subagent-orchestration/schemas/subagent-status.json +63 -0
- package/.agent-src/skills/test-driven-development/SKILL.md +25 -13
- package/.agent-src/skills/testing-anti-patterns/SKILL.md +7 -0
- package/.agent-src/skills/testing-anti-patterns/process-anti-patterns.md +67 -0
- package/.claude-plugin/marketplace.json +3 -1
- package/CHANGELOG.md +51 -0
- package/README.md +3 -3
- package/docs/architecture.md +2 -2
- package/docs/catalog.md +11 -4
- package/docs/contracts/command-clusters.md +1 -1
- package/docs/contracts/file-ownership-matrix.json +395 -0
- package/docs/getting-started.md +1 -1
- package/docs/guidelines/agent-infra/5w2h-analysis.md +260 -0
- package/docs/guidelines/agent-infra/critical-thinking.md +156 -0
- package/docs/guidelines/agent-infra/first-principles.md +192 -0
- package/docs/guidelines/agent-infra/six-hats.md +353 -0
- package/docs/guidelines/agent-infra/systems-thinking.md +220 -0
- package/package.json +1 -1
- package/scripts/check_bite_sized_granularity.py +99 -0
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
# Six Thinking Hats
|
|
2
|
+
|
|
3
|
+
Reference guideline for Wing-1 deep-thinking work — Edward de Bono's
|
|
4
|
+
six-perspective method for examining ideas through Facts · Feelings ·
|
|
5
|
+
Cautions · Benefits · Creativity · Process — one hat at a time, to
|
|
6
|
+
separate thinking modes and avoid the cross-talk that derails group
|
|
7
|
+
decisions. Adopted under the **Reference-Guideline Sunset Policy** and
|
|
8
|
+
cross-referenced from:
|
|
9
|
+
|
|
10
|
+
- [`deep-reading-analyst`](../../../.agent-src.uncompressed/skills/deep-reading-analyst/SKILL.md)
|
|
11
|
+
— L2 Standard analysis depth (multi-perspective sweep).
|
|
12
|
+
- [`ai-council`](../../../.agent-src.uncompressed/skills/ai-council/SKILL.md)
|
|
13
|
+
— multi-model consultation pattern; Six Hats is the per-perspective
|
|
14
|
+
decomposition the council voices use when adjudicating a decision.
|
|
15
|
+
- [`/council`](../../../.agent-src.uncompressed/commands/council.md)
|
|
16
|
+
— internal council orchestrator routing to per-hat persona prompts.
|
|
17
|
+
|
|
18
|
+
> **Core principle:** "Wear one hat at a time." — separating thinking
|
|
19
|
+
> modes reduces conflict and ensures comprehensive coverage of facts,
|
|
20
|
+
> emotions, risks, value, alternatives, and meta-process.
|
|
21
|
+
|
|
22
|
+
## When to Use
|
|
23
|
+
|
|
24
|
+
Ideal for:
|
|
25
|
+
|
|
26
|
+
- Multi-perspective decision review without role-locking
|
|
27
|
+
- Group sessions where parallel thinking is needed
|
|
28
|
+
- Avoiding the "this is good but risky" mode-mixing trap
|
|
29
|
+
- Pre-mortem on a plan when [`inversion-thinking`](inversion-thinking.md)
|
|
30
|
+
is too narrow (Black hat alone) and you want all six lenses
|
|
31
|
+
|
|
32
|
+
Do **not** use when the user wants depth on a single dimension (use
|
|
33
|
+
[`mental-models`](mental-models.md)) or a structured decision artifact
|
|
34
|
+
(use [`scqa-framework`](scqa-framework.md)).
|
|
35
|
+
|
|
36
|
+
## The Six Hats
|
|
37
|
+
|
|
38
|
+
### White Hat — Facts & Data
|
|
39
|
+
|
|
40
|
+
**Focus:** objective information only.
|
|
41
|
+
|
|
42
|
+
**Questions:**
|
|
43
|
+
|
|
44
|
+
- What facts do we have?
|
|
45
|
+
- What data is available?
|
|
46
|
+
- What information is missing?
|
|
47
|
+
- What are the numbers?
|
|
48
|
+
- How do we verify this?
|
|
49
|
+
|
|
50
|
+
**Language:** "According to…", "The data shows…", "We know that…",
|
|
51
|
+
"We don't know…".
|
|
52
|
+
|
|
53
|
+
**In content analysis:** extract factual claims · note cited sources ·
|
|
54
|
+
identify missing data · separate facts from interpretations.
|
|
55
|
+
|
|
56
|
+
**Template:**
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
## Known Facts
|
|
60
|
+
- [Verifiable fact 1]
|
|
61
|
+
- [Verifiable fact 2]
|
|
62
|
+
|
|
63
|
+
## Missing Information
|
|
64
|
+
- [ ] [Gap 1]
|
|
65
|
+
- [ ] [Gap 2]
|
|
66
|
+
|
|
67
|
+
## Data Sources
|
|
68
|
+
- [Citation 1]: [Quality rating]
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Red Hat — Emotions & Intuition
|
|
72
|
+
|
|
73
|
+
**Focus:** gut feelings, hunches, intuitive responses.
|
|
74
|
+
|
|
75
|
+
**Questions:**
|
|
76
|
+
|
|
77
|
+
- What's my immediate reaction?
|
|
78
|
+
- What does my gut say?
|
|
79
|
+
- What emotions does this evoke?
|
|
80
|
+
- What's my intuition telling me?
|
|
81
|
+
|
|
82
|
+
**Language:** "I feel that…", "My gut says…", "This makes me
|
|
83
|
+
uncomfortable because…", "I'm excited about…".
|
|
84
|
+
|
|
85
|
+
**In content analysis:** note emotional response while reading ·
|
|
86
|
+
identify what triggers strong feelings · trust instincts about
|
|
87
|
+
credibility · recognize persuasive emotional appeals in text.
|
|
88
|
+
|
|
89
|
+
**Template:**
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
## Immediate Reactions
|
|
93
|
+
- [Emotion] at [specific part]
|
|
94
|
+
|
|
95
|
+
## Gut Feelings
|
|
96
|
+
- Something feels off about: [intuition]
|
|
97
|
+
- Exciting / Compelling: [what resonates]
|
|
98
|
+
|
|
99
|
+
## Emotional Triggers in Text
|
|
100
|
+
- Author uses [emotion] to persuade
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Important:** no justification needed. Pure feeling.
|
|
104
|
+
|
|
105
|
+
### Black Hat — Caution & Risks
|
|
106
|
+
|
|
107
|
+
**Focus:** critical judgment, potential problems.
|
|
108
|
+
|
|
109
|
+
**Questions:**
|
|
110
|
+
|
|
111
|
+
- What could go wrong?
|
|
112
|
+
- What are the risks?
|
|
113
|
+
- What's unrealistic?
|
|
114
|
+
- Where's the weakness?
|
|
115
|
+
- What are the downsides?
|
|
116
|
+
|
|
117
|
+
**Language:** "A problem is…", "This won't work because…", "The risk
|
|
118
|
+
here is…", "We're overlooking…".
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
**In content analysis:** identify logical flaws · note unsupported
|
|
122
|
+
claims · point out potential failures · question feasibility ·
|
|
123
|
+
consider unintended consequences.
|
|
124
|
+
|
|
125
|
+
**Template:**
|
|
126
|
+
|
|
127
|
+
```markdown
|
|
128
|
+
## Logical Weaknesses
|
|
129
|
+
- [Flaw 1] in reasoning
|
|
130
|
+
|
|
131
|
+
## Risks If Applied
|
|
132
|
+
- Risk: [consequence]
|
|
133
|
+
- When it fails: [scenario]
|
|
134
|
+
|
|
135
|
+
## Missing Considerations
|
|
136
|
+
- Doesn't account for: [factor]
|
|
137
|
+
|
|
138
|
+
## Overly Optimistic Claims
|
|
139
|
+
- [Claim] seems unrealistic because [reason]
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Important:** critical, not cynical. Necessary for risk assessment.
|
|
143
|
+
|
|
144
|
+
### Yellow Hat — Benefits & Optimism
|
|
145
|
+
|
|
146
|
+
**Focus:** positive aspects, value, opportunities.
|
|
147
|
+
|
|
148
|
+
**Questions:**
|
|
149
|
+
|
|
150
|
+
- What's the value here?
|
|
151
|
+
- What are the benefits?
|
|
152
|
+
- Why would this work?
|
|
153
|
+
- What's the best-case scenario?
|
|
154
|
+
- What opportunities does this create?
|
|
155
|
+
|
|
156
|
+
**Language:** "The benefit is…", "This could work because…", "The
|
|
157
|
+
value here is…", "An opportunity is…".
|
|
158
|
+
|
|
159
|
+
**In content analysis:** extract valuable insights · identify strong
|
|
160
|
+
arguments · note practical applications · find novel perspectives ·
|
|
161
|
+
recognize what advances the field.
|
|
162
|
+
|
|
163
|
+
**Template:**
|
|
164
|
+
|
|
165
|
+
```markdown
|
|
166
|
+
## Key Value Propositions
|
|
167
|
+
- Valuable insight: [what's useful]
|
|
168
|
+
|
|
169
|
+
## Strong Points
|
|
170
|
+
- Well-supported: [argument]
|
|
171
|
+
|
|
172
|
+
## Potential Applications
|
|
173
|
+
- Could be used for: [use case]
|
|
174
|
+
|
|
175
|
+
## Novel Contributions
|
|
176
|
+
- New perspective on: [topic]
|
|
177
|
+
|
|
178
|
+
## Best-Case Outcome
|
|
179
|
+
If fully applied: [positive scenario]
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
**Important:** be realistic but generous. Find genuine value.
|
|
183
|
+
|
|
184
|
+
### Green Hat — Creativity & Alternatives
|
|
185
|
+
|
|
186
|
+
**Focus:** new ideas, possibilities, innovations.
|
|
187
|
+
|
|
188
|
+
**Questions:**
|
|
189
|
+
|
|
190
|
+
- What else is possible?
|
|
191
|
+
- How else could we think about this?
|
|
192
|
+
- What's a creative alternative?
|
|
193
|
+
- What if we combined X with Y?
|
|
194
|
+
- What's unconventional?
|
|
195
|
+
|
|
196
|
+
**Language:** "What if…", "Another way to look at it…", "We could
|
|
197
|
+
also…", "An alternative is…".
|
|
198
|
+
|
|
199
|
+
**In content analysis:** extend the author's ideas further · generate
|
|
200
|
+
alternatives to proposed solutions · combine with other frameworks ·
|
|
201
|
+
apply to new domains · challenge assumptions creatively.
|
|
202
|
+
|
|
203
|
+
**Template:**
|
|
204
|
+
|
|
205
|
+
```markdown
|
|
206
|
+
## Extensions of Ideas
|
|
207
|
+
- Taking [concept] further: [new application]
|
|
208
|
+
|
|
209
|
+
## Alternative Approaches
|
|
210
|
+
Instead of [author's method], what if: [alternative]
|
|
211
|
+
|
|
212
|
+
## Creative Combinations
|
|
213
|
+
- [Idea from text] + [other framework] = [new insight]
|
|
214
|
+
|
|
215
|
+
## Unconventional Applications
|
|
216
|
+
- Apply this to [unexpected domain]
|
|
217
|
+
|
|
218
|
+
## "What If" Scenarios
|
|
219
|
+
- What if [assumption] were reversed?
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**Important:** no criticism in green-hat mode. All ideas welcome.
|
|
223
|
+
|
|
224
|
+
### Blue Hat — Process & Meta-Thinking
|
|
225
|
+
|
|
226
|
+
**Focus:** managing thinking, overview, conclusions.
|
|
227
|
+
|
|
228
|
+
**Questions:**
|
|
229
|
+
|
|
230
|
+
- What have we covered?
|
|
231
|
+
- What thinking mode do we need now?
|
|
232
|
+
- What's the summary?
|
|
233
|
+
- What's next?
|
|
234
|
+
- How should we think about this?
|
|
235
|
+
|
|
236
|
+
**Language:** "We've covered…", "The next step is…", "In summary…",
|
|
237
|
+
"We need to focus on…".
|
|
238
|
+
|
|
239
|
+
**In content analysis:** decide which hats to use when · synthesize
|
|
240
|
+
findings from all hats · determine next steps · plan learning
|
|
241
|
+
strategy · monitor the analysis process.
|
|
242
|
+
|
|
243
|
+
**Template:**
|
|
244
|
+
|
|
245
|
+
```markdown
|
|
246
|
+
## Analysis Process
|
|
247
|
+
1. White: Gathered facts
|
|
248
|
+
2. Red: Noted reactions
|
|
249
|
+
3. Black: Identified risks
|
|
250
|
+
4. Yellow: Found value
|
|
251
|
+
5. Green: Generated alternatives
|
|
252
|
+
|
|
253
|
+
## Synthesis
|
|
254
|
+
Combining all perspectives:
|
|
255
|
+
- [Integrated insight]
|
|
256
|
+
|
|
257
|
+
## Next Steps
|
|
258
|
+
- [ ] Further research: [area]
|
|
259
|
+
- [ ] Practical test: [action]
|
|
260
|
+
- [ ] Deep dive: [topic]
|
|
261
|
+
|
|
262
|
+
## Time Investment
|
|
263
|
+
Worth [X] time because [reason]
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
**Important:** Blue hat organizes the other hats. It's the conductor.
|
|
267
|
+
|
|
268
|
+
## Usage Patterns
|
|
269
|
+
|
|
270
|
+
| Pattern | Sequence |
|
|
271
|
+
|---|---|
|
|
272
|
+
| **Quick evaluation (15 min)** | White → Red → Yellow → Black → Blue |
|
|
273
|
+
| **Deep analysis (60 min)** | White → Red → Black → Yellow → Green → Blue → revisit any → Blue |
|
|
274
|
+
| **Problem-solving** | White → Red → Green → Yellow → Black → Green → Blue |
|
|
275
|
+
| **Decision-making** | White → Yellow → Black → Red → Blue |
|
|
276
|
+
|
|
277
|
+
## Rules of Engagement
|
|
278
|
+
|
|
279
|
+
1. **One hat at a time** — don't mix modes.
|
|
280
|
+
2. **Everyone wears the same hat** — parallel thinking (if group).
|
|
281
|
+
3. **Separate person from hat** — you're not "the critical person",
|
|
282
|
+
you're wearing the Black hat.
|
|
283
|
+
4. **Time-box** — set limits per hat.
|
|
284
|
+
5. **Blue hat controls** — decides sequence and timing.
|
|
285
|
+
|
|
286
|
+
## Common Mistakes
|
|
287
|
+
|
|
288
|
+
- ❌ **Mixing hats** — *"This is good (yellow) but risky (black)."*
|
|
289
|
+
✅ **Separate:** Yellow session: *"This is good because X."* Then
|
|
290
|
+
Black session: *"The risk is Y."*
|
|
291
|
+
- ❌ **Judging feelings** — *"That's irrational"* during Red hat.
|
|
292
|
+
✅ **Accept feelings:** all emotions noted without judgment.
|
|
293
|
+
- ❌ **Weak yellow** — *"I guess there's some value…"*.
|
|
294
|
+
✅ **Genuine optimism:** really find the good.
|
|
295
|
+
- ❌ **Staying too long** — 30 min per hat.
|
|
296
|
+
✅ **Move on:** 5–10 min per hat is usually sufficient.
|
|
297
|
+
|
|
298
|
+
## Application to Reading
|
|
299
|
+
|
|
300
|
+
**When to use which hat:**
|
|
301
|
+
|
|
302
|
+
- **Understanding stage:** White (facts), Red (reactions).
|
|
303
|
+
- **Evaluation stage:** Black (critique), Yellow (value).
|
|
304
|
+
- **Application stage:** Green (ideas), Blue (synthesis).
|
|
305
|
+
|
|
306
|
+
**Full cycle:**
|
|
307
|
+
|
|
308
|
+
1. White: what does the text actually say?
|
|
309
|
+
2. Red: how do I feel about it?
|
|
310
|
+
3. Black: what's wrong with it?
|
|
311
|
+
4. Yellow: what's right with it?
|
|
312
|
+
5. Green: what else could we do with this?
|
|
313
|
+
6. Blue: so what? Now what?
|
|
314
|
+
|
|
315
|
+
## Integration with Other Frameworks
|
|
316
|
+
|
|
317
|
+
- **After [`first-principles`](first-principles.md):** use hats to
|
|
318
|
+
evaluate the rebuilt argument.
|
|
319
|
+
- **After [`systems-thinking`](systems-thinking.md):** use Yellow /
|
|
320
|
+
Black on leverage points.
|
|
321
|
+
- **Before [`critical-thinking`](critical-thinking.md):** use Red to
|
|
322
|
+
surface biases.
|
|
323
|
+
- **During synthesis:** use Blue to organize findings.
|
|
324
|
+
|
|
325
|
+
## Output Format
|
|
326
|
+
|
|
327
|
+
```markdown
|
|
328
|
+
# Six Hats Analysis: [Content Title]
|
|
329
|
+
|
|
330
|
+
## White: Facts
|
|
331
|
+
[Objective data]
|
|
332
|
+
|
|
333
|
+
## Red: Feelings
|
|
334
|
+
[Emotional response]
|
|
335
|
+
|
|
336
|
+
## Black: Cautions
|
|
337
|
+
[Risks and weaknesses]
|
|
338
|
+
|
|
339
|
+
## Yellow: Benefits
|
|
340
|
+
[Value and opportunities]
|
|
341
|
+
|
|
342
|
+
## Green: Possibilities
|
|
343
|
+
[Creative extensions]
|
|
344
|
+
|
|
345
|
+
## Blue: Conclusions
|
|
346
|
+
[Synthesis and next steps]
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
## ADOPT citation
|
|
352
|
+
|
|
353
|
+
Adopted from [`ginobefun/deep-reading-analyst-skill`](https://github.com/ginobefun/deep-reading-analyst-skill) @ commit `26cd7dc9` · `src/deep-reading-analyst/references/six_hats.md` · MIT License.
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# Systems Thinking
|
|
2
|
+
|
|
3
|
+
Reference guideline for Wing-1 deep-thinking work — Donella Meadows'
|
|
4
|
+
parts-and-relationships lens. Understand a system by mapping
|
|
5
|
+
components, interconnections, purpose, and boundaries; then trace
|
|
6
|
+
feedback loops, leverage points, and cross-domain archetypes that
|
|
7
|
+
reveal where intervention has the highest impact. Adopted under the
|
|
8
|
+
**Reference-Guideline Sunset Policy** and cross-referenced from:
|
|
9
|
+
|
|
10
|
+
- [`deep-reading-analyst`](../../../.agent-src.uncompressed/skills/deep-reading-analyst/SKILL.md)
|
|
11
|
+
— L3 Deep analysis depth.
|
|
12
|
+
- [`mental-models`](mental-models.md) — Munger's lattice; systems
|
|
13
|
+
thinking is one of the strongest engineering / biology lenses.
|
|
14
|
+
- [`first-principles`](first-principles.md) — pairs with system
|
|
15
|
+
rebuild after assumption strip.
|
|
16
|
+
- [`six-hats`](six-hats.md) — apply Yellow / Black on identified
|
|
17
|
+
leverage points.
|
|
18
|
+
|
|
19
|
+
> **Core principle:** "The system is more than the sum of parts."
|
|
20
|
+
> — Donella Meadows. Behavior emerges from interactions, not
|
|
21
|
+
> components.
|
|
22
|
+
|
|
23
|
+
## Key System Elements
|
|
24
|
+
|
|
25
|
+
1. **Components (elements)** — the individual parts of the system.
|
|
26
|
+
2. **Relationships (interconnections)** — how components influence
|
|
27
|
+
each other.
|
|
28
|
+
3. **Purpose (function)** — what the system is designed to achieve.
|
|
29
|
+
4. **Boundaries** — what's inside vs. outside the system.
|
|
30
|
+
|
|
31
|
+
## Causal Loop Analysis
|
|
32
|
+
|
|
33
|
+
### Reinforcing loop (positive feedback)
|
|
34
|
+
|
|
35
|
+
Creates exponential growth or collapse.
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
A increases → B increases → A increases further → ...
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Examples:**
|
|
42
|
+
|
|
43
|
+
- Network effects: more users → more value → more users.
|
|
44
|
+
- Panic: fear → selling → price drop → more fear.
|
|
45
|
+
- Expertise: skill → opportunities → more practice → more skill.
|
|
46
|
+
|
|
47
|
+
**Symbol:** R (Reinforcing).
|
|
48
|
+
|
|
49
|
+
### Balancing loop (negative feedback)
|
|
50
|
+
|
|
51
|
+
Creates stability and resistance to change.
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
A increases → B increases → A decreases → B decreases → ...
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Examples:**
|
|
58
|
+
|
|
59
|
+
- Thermostat: temp up → heating off → temp down → heating on.
|
|
60
|
+
- Supply / demand: price up → demand down → price down.
|
|
61
|
+
- Homeostasis: blood sugar up → insulin up → blood sugar down.
|
|
62
|
+
|
|
63
|
+
**Symbol:** B (Balancing).
|
|
64
|
+
|
|
65
|
+
## Mapping Template
|
|
66
|
+
|
|
67
|
+
```markdown
|
|
68
|
+
## System Components
|
|
69
|
+
- Component A: [Role / function]
|
|
70
|
+
- Component B: [Role / function]
|
|
71
|
+
- Component C: [Role / function]
|
|
72
|
+
|
|
73
|
+
## Key Relationships
|
|
74
|
+
|
|
75
|
+
[A] ──+──> [B] (A increases B)
|
|
76
|
+
|
|
|
77
|
+
└──-──> [C] (A decreases C)
|
|
78
|
+
|
|
79
|
+
## Feedback Loops
|
|
80
|
+
|
|
81
|
+
### Loop 1: [Name] (R / B)
|
|
82
|
+
A → B → C → A
|
|
83
|
+
Effect: [Exponential growth / Stabilization]
|
|
84
|
+
|
|
85
|
+
## System Behavior Over Time
|
|
86
|
+
|
|
87
|
+
Current state: [X]
|
|
88
|
+
If X increases: [Trace effects through system]
|
|
89
|
+
If X decreases: [Trace effects through system]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Leverage Points
|
|
93
|
+
|
|
94
|
+
Donella Meadows' hierarchy, strongest to weakest:
|
|
95
|
+
|
|
96
|
+
1. **Paradigms** — mental models underlying the system.
|
|
97
|
+
2. **Goals** — purpose of the system.
|
|
98
|
+
3. **System structure** — feedback loop architecture.
|
|
99
|
+
4. **Delays** — response time between cause and effect.
|
|
100
|
+
5. **Balancing loops** — strength of stabilizing forces.
|
|
101
|
+
6. **Reinforcing loops** — strength of amplifying forces.
|
|
102
|
+
7. **Information flows** — who knows what, when.
|
|
103
|
+
8. **Rules** — incentives, constraints.
|
|
104
|
+
9. **Buffers** — stabilizing stocks.
|
|
105
|
+
10. **Stock-flow structures** — physical components.
|
|
106
|
+
11. **Parameters** — numbers (least effective).
|
|
107
|
+
|
|
108
|
+
**Insight:** most people tweak parameters (#11), but changing
|
|
109
|
+
paradigms (#1) is far more powerful.
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
## Cross-Domain Pattern Recognition
|
|
113
|
+
|
|
114
|
+
### Tragedy of the Commons
|
|
115
|
+
|
|
116
|
+
- Environment: overfishing.
|
|
117
|
+
- Digital: bandwidth congestion.
|
|
118
|
+
- Social: public resource depletion.
|
|
119
|
+
- Organizational: shared resource competition.
|
|
120
|
+
|
|
121
|
+
### Network Effects
|
|
122
|
+
|
|
123
|
+
- Technology: social media platforms.
|
|
124
|
+
- Economics: currency adoption.
|
|
125
|
+
- Language: English as lingua franca.
|
|
126
|
+
- Standards: USB-C adoption.
|
|
127
|
+
|
|
128
|
+
### Limits to Growth
|
|
129
|
+
|
|
130
|
+
- Biology: population dynamics.
|
|
131
|
+
- Business: market saturation.
|
|
132
|
+
- Personal: skill plateaus.
|
|
133
|
+
- Resources: oil production peak.
|
|
134
|
+
|
|
135
|
+
## Analysis Questions
|
|
136
|
+
|
|
137
|
+
### Structure
|
|
138
|
+
|
|
139
|
+
- What are the key components?
|
|
140
|
+
- What connects them?
|
|
141
|
+
- Where are the feedback loops?
|
|
142
|
+
|
|
143
|
+
### Behavior
|
|
144
|
+
|
|
145
|
+
- What patterns emerge over time?
|
|
146
|
+
- What's amplifying? (reinforcing loops)
|
|
147
|
+
- What's stabilizing? (balancing loops)
|
|
148
|
+
|
|
149
|
+
### Dynamics
|
|
150
|
+
|
|
151
|
+
- What happens if X increases 10x?
|
|
152
|
+
- Where are delays causing problems?
|
|
153
|
+
- What's the bottleneck?
|
|
154
|
+
|
|
155
|
+
### Boundaries
|
|
156
|
+
|
|
157
|
+
- What's outside this system but affects it?
|
|
158
|
+
- Where do we draw the line?
|
|
159
|
+
- What external factors matter?
|
|
160
|
+
|
|
161
|
+
## Systems Archetypes
|
|
162
|
+
|
|
163
|
+
| Archetype | Pattern | Example |
|
|
164
|
+
|---|---|---|
|
|
165
|
+
| **Shifting the burden** | Short-term fix undermines long-term solution | Painkillers (symptom) vs. fixing posture (cause) |
|
|
166
|
+
| **Escalation** | Both sides respond to each other, spiraling up | Arms race · price wars · social-media arguments |
|
|
167
|
+
| **Success to the successful** | Winner gets compounding advantages | Bestseller lists · platform dominance |
|
|
168
|
+
| **Fixes that fail** | Initial solution creates worse problem | Antibiotic resistance · induced traffic demand |
|
|
169
|
+
| **Growth and underinvestment** | Growth stalls because capacity wasn't built | Startup success → can't scale → service degrades |
|
|
170
|
+
|
|
171
|
+
## Application to Content Analysis
|
|
172
|
+
|
|
173
|
+
When reading about any topic:
|
|
174
|
+
|
|
175
|
+
1. **Map the system** — list elements mentioned, draw connections.
|
|
176
|
+
2. **Identify loops** — what reinforces growth / decline? what
|
|
177
|
+
creates balance / limits?
|
|
178
|
+
3. **Predict dynamics** — if X changes, what cascades follow? where
|
|
179
|
+
in 1 year? 5 years?
|
|
180
|
+
4. **Find leverage** — where is the author intervening? are there
|
|
181
|
+
better leverage points?
|
|
182
|
+
5. **Connect to other domains** — what similar patterns exist
|
|
183
|
+
elsewhere? can solutions from other fields apply?
|
|
184
|
+
|
|
185
|
+
## Cross-Domain Analysis Template
|
|
186
|
+
|
|
187
|
+
```markdown
|
|
188
|
+
## Concept in Article
|
|
189
|
+
[Core idea from content]
|
|
190
|
+
|
|
191
|
+
## Similar Patterns In:
|
|
192
|
+
|
|
193
|
+
**Economics:** [How this shows up]
|
|
194
|
+
**Biology:** [How this shows up]
|
|
195
|
+
**Psychology:** [How this shows up]
|
|
196
|
+
**Technology:** [How this shows up]
|
|
197
|
+
**History:** [How this shows up]
|
|
198
|
+
|
|
199
|
+
## Transferable Insights
|
|
200
|
+
If this pattern exists across domains, then:
|
|
201
|
+
- [Universal principle 1]
|
|
202
|
+
- [Universal principle 2]
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Pitfalls
|
|
206
|
+
|
|
207
|
+
- **Over-complicating** — not everything needs a full system map.
|
|
208
|
+
- **Analysis paralysis** — perfect map vs. good-enough understanding.
|
|
209
|
+
- **Ignoring human agency** — people can change system rules.
|
|
210
|
+
- **Determinism** — systems have probability, not certainty.
|
|
211
|
+
- **Closed thinking** — real systems have open boundaries.
|
|
212
|
+
|
|
213
|
+
**Balance:** use systems thinking to understand dynamics, not to
|
|
214
|
+
predict perfectly.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## ADOPT citation
|
|
219
|
+
|
|
220
|
+
Adopted from [`ginobefun/deep-reading-analyst-skill`](https://github.com/ginobefun/deep-reading-analyst-skill) @ commit `26cd7dc9` · `src/deep-reading-analyst/references/systems_thinking.md` · MIT License.
|
package/package.json
CHANGED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Bite-sized task granularity gate for structural roadmaps (P1.5).
|
|
3
|
+
|
|
4
|
+
Adopted from `obra/superpowers` `writing-plans/SKILL.md` § Task Structure +
|
|
5
|
+
§ No Placeholders (v5.1.0). Complexity-gating is our addition (Council
|
|
6
|
+
Round 1, Q4) — only roadmaps tagged `complexity: structural` in frontmatter
|
|
7
|
+
are subject to the granularity rules; `complexity: lightweight` skips.
|
|
8
|
+
|
|
9
|
+
Public API (stdlib-only):
|
|
10
|
+
|
|
11
|
+
read_complexity(text) -> 'structural' | 'lightweight' | None
|
|
12
|
+
scan_placeholders(text) -> list[Placeholder]
|
|
13
|
+
check_granularity(text) -> Result(complexity, gated, violations)
|
|
14
|
+
|
|
15
|
+
`gated` is True only when `complexity == 'structural'`. Violations are
|
|
16
|
+
empty when the gate is not active, regardless of placeholder presence.
|
|
17
|
+
|
|
18
|
+
The CI contract for P1.5 is the pytest harness in
|
|
19
|
+
`tests/test_bite_sized_granularity.py`; this module is the test surface.
|
|
20
|
+
"""
|
|
21
|
+
from __future__ import annotations
|
|
22
|
+
|
|
23
|
+
import re
|
|
24
|
+
from dataclasses import dataclass, field
|
|
25
|
+
|
|
26
|
+
PLACEHOLDER_PATTERNS: tuple[tuple[str, re.Pattern[str]], ...] = (
|
|
27
|
+
("angle-placeholder", re.compile(r"<[a-z][a-z0-9 _\-/]*>", re.IGNORECASE)),
|
|
28
|
+
("todo", re.compile(r"\bTODO\b")),
|
|
29
|
+
("fixme", re.compile(r"\bFIXME\b")),
|
|
30
|
+
("xxx", re.compile(r"\bXXX\b")),
|
|
31
|
+
("tbd", re.compile(r"\btbd\b", re.IGNORECASE)),
|
|
32
|
+
("triple-question", re.compile(r"\?\?\?")),
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
COMPLEXITY_PAT = re.compile(
|
|
36
|
+
r"^complexity:\s*(lightweight|structural)\s*$", re.MULTILINE
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@dataclass(frozen=True)
|
|
41
|
+
class Placeholder:
|
|
42
|
+
kind: str
|
|
43
|
+
line: int
|
|
44
|
+
text: str
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
@dataclass
|
|
48
|
+
class Result:
|
|
49
|
+
complexity: str | None
|
|
50
|
+
gated: bool
|
|
51
|
+
violations: list[Placeholder] = field(default_factory=list)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def _frontmatter(text: str) -> str:
|
|
55
|
+
if not text.startswith("---\n"):
|
|
56
|
+
return ""
|
|
57
|
+
end = text.find("\n---\n", 4)
|
|
58
|
+
return text[4:end] if end != -1 else ""
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def read_complexity(text: str) -> str | None:
|
|
62
|
+
"""Return the `complexity:` value from the roadmap frontmatter, or None."""
|
|
63
|
+
fm = _frontmatter(text)
|
|
64
|
+
if not fm:
|
|
65
|
+
return None
|
|
66
|
+
m = COMPLEXITY_PAT.search(fm)
|
|
67
|
+
return m.group(1) if m else None
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def scan_placeholders(text: str) -> list[Placeholder]:
|
|
71
|
+
"""Return every placeholder hit in task-bullet lines (`- [ ]` / `- [x]`)."""
|
|
72
|
+
hits: list[Placeholder] = []
|
|
73
|
+
for line_no, line in enumerate(text.splitlines(), start=1):
|
|
74
|
+
stripped = line.lstrip()
|
|
75
|
+
if not stripped.startswith(("- [ ]", "- [x]", "- [/]", "- [-]")):
|
|
76
|
+
continue
|
|
77
|
+
for kind, pat in PLACEHOLDER_PATTERNS:
|
|
78
|
+
if pat.search(line):
|
|
79
|
+
hits.append(Placeholder(kind=kind, line=line_no, text=line.rstrip()))
|
|
80
|
+
break
|
|
81
|
+
return hits
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
def check_granularity(text: str) -> Result:
|
|
85
|
+
"""Run the granularity gate.
|
|
86
|
+
|
|
87
|
+
Structural roadmaps fail on any placeholder hit in task bullets.
|
|
88
|
+
Lightweight or untagged roadmaps skip the gate (gated=False) and
|
|
89
|
+
return an empty violation list even when placeholders are present.
|
|
90
|
+
"""
|
|
91
|
+
complexity = read_complexity(text)
|
|
92
|
+
gated = complexity == "structural"
|
|
93
|
+
if not gated:
|
|
94
|
+
return Result(complexity=complexity, gated=False, violations=[])
|
|
95
|
+
return Result(
|
|
96
|
+
complexity=complexity,
|
|
97
|
+
gated=True,
|
|
98
|
+
violations=scan_placeholders(text),
|
|
99
|
+
)
|