@complexthings/superpowers-agent 9.2.0 → 10.0.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/.agents/skills/claude-handoff/SKILL.md +18 -0
- package/.agents/skills/code-review/SKILL.md +89 -0
- package/.agents/skills/{improve-codebase-architecture → codebase-design}/DEEPENING.md +1 -1
- package/.agents/skills/{improve-codebase-architecture/INTERFACE-DESIGN.md → codebase-design/DESIGN-IT-TWICE.md} +3 -3
- package/.agents/skills/codebase-design/SKILL.md +114 -0
- package/.agents/skills/design-an-interface/SKILL.md +94 -0
- package/.agents/skills/{diagnose → diagnosing-bugs}/SKILL.md +29 -12
- package/.agents/skills/{grill-with-docs → domain-modeling}/CONTEXT-FORMAT.md +1 -4
- package/.agents/skills/domain-modeling/SKILL.md +74 -0
- package/.agents/skills/fable-mode/SKILL.md +95 -0
- package/.agents/skills/git-guardrails-claude-code/SKILL.md +95 -0
- package/.agents/skills/git-guardrails-claude-code/scripts/block-dangerous-git.sh +25 -0
- package/.agents/skills/grill-me/SKILL.md +7 -0
- package/.agents/skills/grill-with-docs/SKILL.md +3 -86
- package/.agents/skills/grilling/SKILL.md +14 -0
- package/.agents/skills/handoff/SKILL.md +2 -1
- package/.agents/skills/i-have-adhd/SKILL.md +120 -0
- package/.agents/skills/implement/SKILL.md +11 -0
- package/.agents/skills/improve-codebase-architecture/HTML-REPORT.md +3 -3
- package/.agents/skills/improve-codebase-architecture/SKILL.md +13 -28
- package/.agents/skills/loop-me/SKILL.md +32 -0
- package/.agents/skills/prototype/SKILL.md +1 -1
- package/.agents/skills/qa/SKILL.md +130 -0
- package/.agents/skills/request-refactor-plan/SKILL.md +68 -0
- package/.agents/skills/research/SKILL.md +12 -0
- package/.agents/skills/resolving-merge-conflicts/SKILL.md +14 -0
- package/.agents/skills/scaffold-exercises/SKILL.md +106 -0
- package/.agents/skills/setup-matt-pocock-skills/SKILL.md +11 -9
- package/.agents/skills/setup-matt-pocock-skills/domain.md +2 -2
- package/.agents/skills/setup-matt-pocock-skills/issue-tracker-github.md +23 -0
- package/.agents/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +23 -0
- package/.agents/skills/setup-matt-pocock-skills/issue-tracker-local.md +11 -0
- package/.agents/skills/skill-creator/LICENSE.txt +202 -0
- package/.agents/skills/skill-creator/SKILL.md +485 -0
- package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
- package/.agents/skills/skill-creator/agents/comparator.md +202 -0
- package/.agents/skills/skill-creator/agents/grader.md +223 -0
- package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
- package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/.agents/skills/skill-creator/references/schemas.md +430 -0
- package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
- package/.agents/skills/skill-creator/scripts/__pycache__/__init__.cpython-314.pyc +0 -0
- package/.agents/skills/skill-creator/scripts/__pycache__/run_eval.cpython-314.pyc +0 -0
- package/.agents/skills/skill-creator/scripts/__pycache__/utils.cpython-314.pyc +0 -0
- package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
- package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
- package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
- package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
- package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
- package/.agents/skills/skill-creator/scripts/utils.py +47 -0
- package/.agents/skills/tdd/SKILL.md +17 -90
- package/.agents/skills/tdd/tests.md +16 -0
- package/.agents/skills/teach/GLOSSARY-FORMAT.md +35 -0
- package/.agents/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
- package/.agents/skills/teach/MISSION-FORMAT.md +31 -0
- package/.agents/skills/teach/RESOURCES-FORMAT.md +32 -0
- package/.agents/skills/teach/SKILL.md +140 -0
- package/.agents/skills/{to-prd → to-spec}/SKILL.md +11 -12
- package/.agents/skills/to-tickets/SKILL.md +114 -0
- package/.agents/skills/triage/AGENT-BRIEF.md +40 -1
- package/.agents/skills/triage/OUT-OF-SCOPE.md +5 -1
- package/.agents/skills/triage/SKILL.md +20 -11
- package/.agents/skills/wayfinder/SKILL.md +127 -0
- package/.agents/skills/writing-great-skills/GLOSSARY.md +201 -0
- package/.agents/skills/writing-great-skills/SKILL.md +83 -0
- package/.agents/superpowers-agent +99 -218
- package/.agents/superpowers-bootstrap.md +3 -3
- package/.agents/templates/AGENTS.md.template +11 -34
- package/.agents/templates/SUPERPOWERS.md.template +4 -4
- package/.github/copilot-instructions.md +33 -1
- package/.github/hooks/rtk-rewrite.json +22 -0
- package/AGENTS.md +32 -36
- package/README.md +63 -198
- package/package.json +1 -1
- package/skills/collaboration/brainstorming/SKILL.md +39 -139
- package/skills/collaboration/brainstorming/skill.json +2 -2
- package/skills/collaboration/leveraging-cli-tools/SKILL.md +70 -71
- package/skills/collaboration/leveraging-cli-tools/references/copilot-instructions.md +30 -0
- package/skills/collaboration/leveraging-cli-tools/scripts/setup-ponytail.sh +185 -0
- package/skills/collaboration/leveraging-cli-tools/scripts/setup-rtk.sh +217 -0
- package/skills/collaboration/leveraging-cli-tools/skill.json +1 -1
- package/skills/meta/create-skill-json/SKILL.md +4 -4
- package/skills/meta/create-skill-json/skill.json +1 -1
- package/skills/meta/create-skill-json/test-scenarios.md +1 -1
- package/skills/setup-skills/SKILL.md +18 -11
- package/skills/setup-skills/skill.json +8 -0
- package/.agents/skills/caveman/SKILL.md +0 -49
- package/.agents/skills/improve-codebase-architecture/LANGUAGE.md +0 -53
- package/.agents/skills/karpathy-guidelines/SKILL.md +0 -75
- package/.agents/skills/review/SKILL.md +0 -78
- package/.agents/skills/tdd/deep-modules.md +0 -33
- package/.agents/skills/tdd/interface-design.md +0 -31
- package/.agents/skills/tdd/refactoring.md +0 -10
- package/.agents/skills/to-issues/SKILL.md +0 -83
- package/.agents/skills/zoom-out/SKILL.md +0 -7
- package/skills/architecture/ABOUT.md +0 -20
- package/skills/architecture/preserving-productive-tensions/SKILL.md +0 -146
- package/skills/architecture/preserving-productive-tensions/skill.json +0 -9
- package/skills/collaboration/brainstorming/spec-document-reviewer-prompt.md +0 -50
- package/skills/collaboration/brainstorming/visual-companion.md +0 -277
- package/skills/collaboration/dispatching-parallel-agents/SKILL.md +0 -174
- package/skills/collaboration/dispatching-parallel-agents/skill.json +0 -9
- package/skills/collaboration/executing-plans/SKILL.md +0 -130
- package/skills/collaboration/executing-plans/skill.json +0 -9
- package/skills/collaboration/finishing-a-development-branch/SKILL.md +0 -261
- package/skills/collaboration/finishing-a-development-branch/skill.json +0 -9
- package/skills/collaboration/leveraging-cli-tools/scripts/slim.py +0 -167
- package/skills/collaboration/receiving-code-review/SKILL.md +0 -233
- package/skills/collaboration/receiving-code-review/skill.json +0 -9
- package/skills/collaboration/requesting-code-review/SKILL.md +0 -110
- package/skills/collaboration/requesting-code-review/code-reviewer.md +0 -146
- package/skills/collaboration/requesting-code-review/skill.json +0 -12
- package/skills/collaboration/subagent-driven-development/SKILL.md +0 -255
- package/skills/collaboration/subagent-driven-development/code-quality-reviewer-prompt.md +0 -26
- package/skills/collaboration/subagent-driven-development/implementer-prompt.md +0 -113
- package/skills/collaboration/subagent-driven-development/skill.json +0 -15
- package/skills/collaboration/subagent-driven-development/spec-reviewer-prompt.md +0 -61
- package/skills/collaboration/using-git-worktrees/SKILL.md +0 -366
- package/skills/collaboration/using-git-worktrees/skill.json +0 -9
- package/skills/collaboration/writing-plans/SKILL.md +0 -121
- package/skills/collaboration/writing-plans/plan-document-reviewer-prompt.md +0 -52
- package/skills/collaboration/writing-plans/skill.json +0 -9
- package/skills/debugging/defense-in-depth/SKILL.md +0 -380
- package/skills/debugging/defense-in-depth/skill.json +0 -9
- package/skills/debugging/root-cause-tracing/SKILL.md +0 -361
- package/skills/debugging/root-cause-tracing/find-polluter.sh +0 -63
- package/skills/debugging/root-cause-tracing/skill.json +0 -12
- package/skills/debugging/systematic-debugging/SKILL.md +0 -299
- package/skills/debugging/systematic-debugging/condition-based-waiting-example.ts +0 -158
- package/skills/debugging/systematic-debugging/condition-based-waiting.md +0 -115
- package/skills/debugging/systematic-debugging/defense-in-depth.md +0 -122
- package/skills/debugging/systematic-debugging/find-polluter.sh +0 -63
- package/skills/debugging/systematic-debugging/root-cause-tracing.md +0 -169
- package/skills/debugging/systematic-debugging/skill.json +0 -9
- package/skills/debugging/systematic-debugging/test-academic.md +0 -14
- package/skills/debugging/systematic-debugging/test-pressure-1.md +0 -58
- package/skills/debugging/systematic-debugging/test-pressure-2.md +0 -68
- package/skills/debugging/systematic-debugging/test-pressure-3.md +0 -69
- package/skills/debugging/verification-before-completion/SKILL.md +0 -143
- package/skills/debugging/verification-before-completion/skill.json +0 -9
- package/skills/finding-skills/SKILL.md +0 -101
- package/skills/finding-skills/skill.json +0 -8
- package/skills/meta/create-agents-md/SKILL.md +0 -182
- package/skills/meta/create-agents-md/skill.json +0 -9
- package/skills/meta/creating-prompts/SKILL.md +0 -349
- package/skills/meta/creating-prompts/examples/do-example.md +0 -65
- package/skills/meta/creating-prompts/examples/plan-example.md +0 -75
- package/skills/meta/creating-prompts/examples/refine-example.md +0 -65
- package/skills/meta/creating-prompts/examples/research-example.md +0 -63
- package/skills/meta/creating-prompts/scripts/get-next-number.sh +0 -27
- package/skills/meta/creating-prompts/skill.json +0 -20
- package/skills/meta/creating-prompts/templates/do-template.md +0 -59
- package/skills/meta/creating-prompts/templates/plan-template.md +0 -58
- package/skills/meta/creating-prompts/templates/refine-template.md +0 -54
- package/skills/meta/creating-prompts/templates/research-template.md +0 -56
- package/skills/meta/using-superpowers/SKILL.md +0 -108
- package/skills/meta/using-superpowers/skill.json +0 -5
- package/skills/meta/writing-prompts/SKILL.md +0 -122
- package/skills/meta/writing-prompts/references/platforms.md +0 -114
- package/skills/meta/writing-prompts/skill.json +0 -9
- package/skills/problem-solving/ABOUT.md +0 -40
- package/skills/problem-solving/collision-zone-thinking/SKILL.md +0 -188
- package/skills/problem-solving/collision-zone-thinking/references/historical-examples.md +0 -393
- package/skills/problem-solving/collision-zone-thinking/skill.json +0 -9
- package/skills/problem-solving/inversion-exercise/SKILL.md +0 -174
- package/skills/problem-solving/inversion-exercise/skill.json +0 -9
- package/skills/problem-solving/meta-pattern-recognition/SKILL.md +0 -116
- package/skills/problem-solving/meta-pattern-recognition/skill.json +0 -9
- package/skills/problem-solving/scale-game/SKILL.md +0 -222
- package/skills/problem-solving/scale-game/skill.json +0 -9
- package/skills/problem-solving/simplification-cascades/SKILL.md +0 -113
- package/skills/problem-solving/simplification-cascades/skill.json +0 -9
- package/skills/problem-solving/when-stuck/SKILL.md +0 -69
- package/skills/problem-solving/when-stuck/skill.json +0 -9
- package/skills/research/ABOUT.md +0 -20
- package/skills/research/tracing-knowledge-lineages/SKILL.md +0 -241
- package/skills/research/tracing-knowledge-lineages/skill.json +0 -9
- package/skills/testing/condition-based-waiting/SKILL.md +0 -359
- package/skills/testing/condition-based-waiting/example.ts +0 -158
- package/skills/testing/condition-based-waiting/skill.json +0 -12
- package/skills/testing/test-driven-development/SKILL.md +0 -434
- package/skills/testing/test-driven-development/skill.json +0 -9
- package/skills/testing/testing-anti-patterns/SKILL.md +0 -298
- package/skills/testing/testing-anti-patterns/skill.json +0 -9
- package/skills/testing/verification-before-completion/SKILL.md +0 -246
- package/skills/testing/verification-before-completion/skill.json +0 -10
- package/skills/using-a-skill/SKILL.md +0 -101
- package/skills/using-a-skill/skill.json +0 -8
- /package/.agents/skills/{diagnose → diagnosing-bugs}/scripts/hitl-loop.template.sh +0 -0
- /package/.agents/skills/{grill-with-docs → domain-modeling}/ADR-FORMAT.md +0 -0
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: writing-prompts
|
|
3
|
-
description: Use when creating a reusable AI command, slash command, prompt file, or skill for Claude Code, GitHub Copilot, or Cursor, when you catch yourself repeating the same instructions 2+ times, or when a prompt keeps producing unreliable results. Guides prompt-engineering craft — leading with the goal, defining verifiable success criteria, keeping the prompt minimal — plus current platform formats (all three platforms now converge on SKILL.md). Use even when the user just says "make this reusable," "save this as a command," or "why does this prompt keep failing."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Writing Prompts
|
|
7
|
-
|
|
8
|
-
A reusable command is a prompt you've decided to keep. Its quality is the quality of the prompt inside it — so most of this skill is about writing a prompt that works, and a smaller part is about where each platform wants the file to live.
|
|
9
|
-
|
|
10
|
-
**Core principle:** A good prompt reads like a brief to a sharp new colleague who lacks your context. State the goal, give the context they're missing, and define how they'll know they're done. If a teammate would be confused by it, the model will be too.
|
|
11
|
-
|
|
12
|
-
## When to turn a prompt into a command
|
|
13
|
-
|
|
14
|
-
Create a reusable command when you've run the same instructions 2+ times, when you want a workflow to be consistent across a team, or when a multi-step process keeps drifting. The second time you paste the same prompt is the signal — capture it then, while you still remember the edge cases, rather than "later."
|
|
15
|
-
|
|
16
|
-
Skip it for genuine one-offs and for trivial queries that don't benefit from a saved template. A command that's too broad ("help with testing") is worse than none — it can't give the model enough to act on.
|
|
17
|
-
|
|
18
|
-
## How to write the prompt
|
|
19
|
-
|
|
20
|
-
This is the part that determines whether the command is worth keeping. The ordering below roughly tracks impact.
|
|
21
|
-
|
|
22
|
-
### 1. Lead with the goal
|
|
23
|
-
|
|
24
|
-
Open with one sentence stating what success looks like. The model orients everything else around it. "Generate a React component with typed props and a passing test" beats a prompt that buries the objective under setup.
|
|
25
|
-
|
|
26
|
-
### 2. Give the context the model is missing
|
|
27
|
-
|
|
28
|
-
The model is capable but has no memory of your situation. Supply the specifics it can't infer — file paths, the framework in use, conventions, constraints — and say *why* when the reason isn't obvious. Explaining motivation ("we exclude test accounts because they skew the metrics") lets the model generalize to cases your instructions didn't anticipate, instead of following a rule blindly.
|
|
29
|
-
|
|
30
|
-
Reason from facts you actually have. Don't invent paths, ticket IDs, or constraints to fill a gap — name the gap instead.
|
|
31
|
-
|
|
32
|
-
When the command will run repeatedly, wire in the inputs it needs rather than expecting them pasted each time — have it read the file, run the diff, or fetch the data itself (platforms.md covers the per-platform syntax for this). A command that gathers its own context is the difference between a saved note and a tool.
|
|
33
|
-
|
|
34
|
-
### 3. Define verifiable success criteria
|
|
35
|
-
|
|
36
|
-
This is the highest-leverage habit. Translate vague asks into outcomes the model can check itself:
|
|
37
|
-
|
|
38
|
-
- "Add validation" → "Write tests for the invalid inputs, then make them pass"
|
|
39
|
-
- "Fix the bug" → "Write a failing test that reproduces it, then make it pass"
|
|
40
|
-
- "Refactor X" → "Tests pass before and after; behavior unchanged"
|
|
41
|
-
|
|
42
|
-
For multi-step work, attach a check to each step and state an explicit stop condition, so the command can loop on its own instead of pausing for clarification:
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
1. <step> → verify: <check>
|
|
46
|
-
2. <step> → verify: <check>
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Weak criteria ("make it work") force the model to come back and ask. Strong, checkable criteria let it run to completion. Default to strong.
|
|
50
|
-
|
|
51
|
-
### 4. Keep it minimal
|
|
52
|
-
|
|
53
|
-
Write the shortest prompt that gets the job done. Every extra instruction competes for attention and invites the model to overbuild. Cut speculative sections, preemptive caveats for failures that can't happen, and "flexibility" nobody asked for. If a draft is 30 lines and could be 10, rewrite it. The senior-engineer test: "Is this overcomplicated?" If yes, cut.
|
|
54
|
-
|
|
55
|
-
Trust the model with what it already knows. You don't need to explain what a PDF is or how a for-loop works — only what's specific to your task.
|
|
56
|
-
|
|
57
|
-
### 5. Show an example when format matters
|
|
58
|
-
|
|
59
|
-
When output shape, tone, or structure matters, one or two concrete input→output examples steer the result more reliably than describing it in prose. Make examples relevant and varied; if you wrap them in clear delimiters the model won't mistake them for instructions to follow literally.
|
|
60
|
-
|
|
61
|
-
### 6. Structure for the model to parse
|
|
62
|
-
|
|
63
|
-
- Put long reference material (documents, data, logs) near the **top**, and the actual instruction or question near the **bottom**. Trailing instructions measurably improve responses on long inputs.
|
|
64
|
-
- Separate distinct kinds of content with delimiters or tags (e.g. `<context>`, `<task>`, `<example>`) so the model can tell the brief from the data. Use the same tag names consistently.
|
|
65
|
-
- Reach for explicit sections (context / task / constraints / success criteria) only when the prompt is big enough to need them. On a short prompt, sections are padding — prose is fine.
|
|
66
|
-
|
|
67
|
-
### 7. Write direct, positive instructions
|
|
68
|
-
|
|
69
|
-
Tell the model what to do, not what to avoid: "Respond in flowing prose paragraphs" works better than "Don't use bullet points." Be explicit about scope, because current models read prompts literally and won't widen scope on their own — "apply this to every section, not just the first" leaves nothing to guess.
|
|
70
|
-
|
|
71
|
-
Resist the urge to shout. Modern models over-react to `CRITICAL:` / `YOU MUST` / `NEVER` and aggressive capitals — it makes them rigid and anxious, not more careful. "Use this tool when handling PDFs" lands better than "CRITICAL: You MUST ALWAYS use this tool." Save emphasis for the rare instruction that genuinely overrides a strong default, and explain *why* it matters rather than how loudly.
|
|
72
|
-
|
|
73
|
-
### 8. Keep edits surgical
|
|
74
|
-
|
|
75
|
-
When refining an existing prompt, change only what isn't working. Don't reword lines that already do their job or reorder sections for the sake of it. Match the author's voice — if they'd phrase something differently than you would, theirs wins. Every change should trace to a concrete gain in clarity, completeness, or executability; if it doesn't, revert it.
|
|
76
|
-
|
|
77
|
-
## Worked example
|
|
78
|
-
|
|
79
|
-
A raw, repeated instruction:
|
|
80
|
-
|
|
81
|
-
> "make me a command that reviews code for security stuff"
|
|
82
|
-
|
|
83
|
-
Refined into a prompt worth saving:
|
|
84
|
-
|
|
85
|
-
```markdown
|
|
86
|
-
Review the staged diff for security vulnerabilities.
|
|
87
|
-
|
|
88
|
-
Focus on the OWASP categories most relevant to this stack: injection,
|
|
89
|
-
broken access control, secrets in code, and unsafe deserialization.
|
|
90
|
-
|
|
91
|
-
For each finding, report: file:line, the risk, and a concrete fix.
|
|
92
|
-
End with a one-line verdict: SAFE TO MERGE or CHANGES REQUESTED.
|
|
93
|
-
|
|
94
|
-
If there are no findings, say so explicitly — don't invent issues to seem thorough.
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
What changed: a single clear goal, the missing context (which risks to weight), an explicit output shape, and a stop condition that prevents the model from padding the report. No CAPS, no nagging — just a brief a colleague could act on.
|
|
98
|
-
|
|
99
|
-
## Platform formats
|
|
100
|
-
|
|
101
|
-
The three major platforms have converged: **a reusable command is increasingly just a `SKILL.md` file.** Claude Code merged custom commands into skills; Cursor (2.4+) promotes Skills as the successor to commands; GitHub Copilot uses prompt files alongside `AGENTS.md`. Older formats still work, but new work should prefer skills where the platform supports them.
|
|
102
|
-
|
|
103
|
-
Pick the file location and frontmatter for your target platform from **[references/platforms.md](references/platforms.md)** — it has the exact directories, extensions, frontmatter fields, and argument syntax for Claude Code, GitHub Copilot, and Cursor, with the legacy formats noted. Read it when you're ready to save the file; using the wrong directory or argument token is the one mistake the model can't reason its way out of after the fact.
|
|
104
|
-
|
|
105
|
-
## Before you ship it
|
|
106
|
-
|
|
107
|
-
Read the draft once more as if you didn't write it, through three quick lenses:
|
|
108
|
-
|
|
109
|
-
- **What's sloppy?** Redundant lines, assumptions stated as fact, speculative sections.
|
|
110
|
-
- **What's missing?** Anything that would make it fail on the first run — an undefined success criterion, missing context, an ambiguous scope.
|
|
111
|
-
- **What am I hiding behind structure?** Headings and ceremony that dress up a thin prompt. Cut to the prompt that actually does the work.
|
|
112
|
-
|
|
113
|
-
Then confirm the goal is in the first sentence, success is checkable, and the file is in the right place for its platform.
|
|
114
|
-
|
|
115
|
-
## Common pitfalls
|
|
116
|
-
|
|
117
|
-
- **Vague scope** — "review the code" gives the model nothing to optimize. Name what to look for and what "done" means.
|
|
118
|
-
- **No success criterion** — without a checkable outcome the command can't finish on its own; it stalls and asks.
|
|
119
|
-
- **Over-prompting** — CAPS, `MUST`, and stacked caveats make models rigid. Explain why instead of shouting.
|
|
120
|
-
- **Padding** — speculative sections and impossible-failure handling. Ship the minimum that works.
|
|
121
|
-
- **Wrong platform format** — frontmatter or argument tokens from the wrong tool silently break the command. Verify against references/platforms.md.
|
|
122
|
-
- **Deferring** — "I'll make it reusable later" after the 2nd repeat. Capture it now, while the edge cases are fresh.
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
# Platform formats
|
|
2
|
-
|
|
3
|
-
Exact locations, file formats, frontmatter, and argument syntax for reusable commands on each platform. Read the section for your target platform when saving the file.
|
|
4
|
-
|
|
5
|
-
## Contents
|
|
6
|
-
- The convergence on SKILL.md
|
|
7
|
-
- Claude Code (skills + legacy commands)
|
|
8
|
-
- GitHub Copilot (prompt files + custom instructions)
|
|
9
|
-
- Cursor (commands + rules + skills)
|
|
10
|
-
- Quick pick
|
|
11
|
-
|
|
12
|
-
## The convergence on SKILL.md
|
|
13
|
-
|
|
14
|
-
All three platforms are moving the same direction: a reusable command is becoming a skill — a directory containing a `SKILL.md` file with YAML frontmatter. Claude Code states custom commands "have been merged into skills"; Cursor 2.4 promotes Skills as the successor to commands and ships a `/migrate-to-skills` flow; GitHub Copilot reads `AGENTS.md` and a skills-style layout. Legacy formats still work everywhere, but prefer skills for new work where the platform supports them.
|
|
15
|
-
|
|
16
|
-
A minimal skill, identical in shape across platforms:
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
my-command/
|
|
20
|
-
└── SKILL.md
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
```markdown
|
|
24
|
-
---
|
|
25
|
-
name: my-command
|
|
26
|
-
description: What it does and when to use it.
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
# My Command
|
|
30
|
-
|
|
31
|
-
<the prompt body>
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Claude Code
|
|
35
|
-
|
|
36
|
-
**Skills (recommended).**
|
|
37
|
-
- Project: `.claude/skills/<name>/SKILL.md` (commit to git to share)
|
|
38
|
-
- Personal: `~/.claude/skills/<name>/SKILL.md` (all your projects)
|
|
39
|
-
- The command name comes from the **directory name** → `/my-command`. Frontmatter `name` only sets the display label.
|
|
40
|
-
- Precedence: enterprise > personal > project. If a skill and a legacy command share a name, the skill wins.
|
|
41
|
-
|
|
42
|
-
**Legacy commands (still supported).**
|
|
43
|
-
- `.claude/commands/<name>.md` or `~/.claude/commands/<name>.md` → `/name` (from the file name).
|
|
44
|
-
- Support the same frontmatter as skills.
|
|
45
|
-
|
|
46
|
-
**Frontmatter (all optional; `description` is the one that matters for triggering):**
|
|
47
|
-
`name`, `description`, `when_to_use`, `argument-hint` (e.g. `[issue-number]`), `arguments` (named positional args), `disable-model-invocation` (default `false` — set `true` to make it manual-only, i.e. a pure slash command the model won't auto-run), `user-invocable` (default `true`), `allowed-tools` / `disallowed-tools`, `model` (or `inherit`), `effort` (`low`/`medium`/`high`/`xhigh`/`max`), `context` (`fork`), `agent`, `hooks`, `paths` (glob auto-activation), `shell` (`bash`/`powershell`).
|
|
48
|
-
|
|
49
|
-
**Arguments (0-based — note this differs from the old `$1`-is-first convention):**
|
|
50
|
-
- `$ARGUMENTS` — all arguments as one string. If the file contains none, the args are appended as `ARGUMENTS: <value>`.
|
|
51
|
-
- `$ARGUMENTS[0]` — first argument; `$ARGUMENTS[1]` second, etc.
|
|
52
|
-
- `$0`, `$1` — shorthand; **`$0` is the first argument.**
|
|
53
|
-
- `$name` — a named argument declared in `arguments:` frontmatter, bound by position.
|
|
54
|
-
- Also available: `${CLAUDE_SESSION_ID}`, `${CLAUDE_EFFORT}`, `${CLAUDE_SKILL_DIR}`.
|
|
55
|
-
|
|
56
|
-
**Bash injection in the body:**
|
|
57
|
-
- Inline: `` !`<command>` `` (only at line start or after whitespace).
|
|
58
|
-
- Block: a fenced ` ```! ` code block.
|
|
59
|
-
- Runs as preprocessing before the model sees the body; requires a matching `allowed-tools` grant such as `Bash(gh *)`.
|
|
60
|
-
|
|
61
|
-
**Skill vs command vs subagent:**
|
|
62
|
-
- Reference-style content (knowledge the model pulls in when relevant) → a normal skill.
|
|
63
|
-
- Action you invoke explicitly → a skill with `disable-model-invocation: true`, or a legacy command.
|
|
64
|
-
- Delegated, isolated-context work → a subagent in `.claude/agents/<name>.md` (frontmatter `name`, `description`, `tools`, `model`), or a skill run with `context: fork` + `agent:`.
|
|
65
|
-
|
|
66
|
-
## GitHub Copilot
|
|
67
|
-
|
|
68
|
-
**Prompt files** (VS Code, Visual Studio, JetBrains):
|
|
69
|
-
- Location: `.github/prompts/`
|
|
70
|
-
- Naming: `<name>.prompt.md` (e.g. `explain-code.prompt.md`)
|
|
71
|
-
- Frontmatter documented by GitHub: `agent:` (value `'agent'`) and `description:`. (`model` and `tools` exist in VS Code's own prompt-file format but are **not** part of GitHub's documented spec — don't rely on them for portability.)
|
|
72
|
-
- Invoke: type `/<name>` (no extension) in Copilot Chat → `/explain-code`.
|
|
73
|
-
|
|
74
|
-
```markdown
|
|
75
|
-
---
|
|
76
|
-
agent: 'agent'
|
|
77
|
-
description: 'Generate a clear code explanation with examples'
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
Explain the selected code. Cover what it does, the non-obvious parts, and one example call.
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
**Repository custom instructions** (always-on context, not invoked):
|
|
84
|
-
- Repo-wide: `.github/copilot-instructions.md` — plain Markdown, no frontmatter.
|
|
85
|
-
- Path-specific: `.github/instructions/<name>.instructions.md` — frontmatter `applyTo:` (glob, e.g. `applyTo: "app/models/**/*.rb"` or `applyTo: "**"`) and optional `excludeAgent:` (`"code-review"` / `"cloud-agent"`).
|
|
86
|
-
- Copilot code review reads only the first 4,000 characters of an instruction file (other features are unaffected). Keep them tight.
|
|
87
|
-
- `AGENTS.md`, `CLAUDE.md`, and `GEMINI.md` are also recognized.
|
|
88
|
-
|
|
89
|
-
**Variables documented by GitHub:** input variables only — `${input:name}` and `${input:name:placeholder}` (e.g. `${input:code:Paste your code here}`). The `${selection}`, `${file}`, and `${workspaceFolder}` tokens come from VS Code's editor, not GitHub's spec — fine in VS Code, not portable.
|
|
90
|
-
|
|
91
|
-
## Cursor
|
|
92
|
-
|
|
93
|
-
**Commands** (lightly documented; Cursor now steers users toward Skills):
|
|
94
|
-
- Location: `.cursor/commands/<name>.md` (project). A user-level form exists but Cursor doesn't publish the exact global path — don't quote one.
|
|
95
|
-
- No documented frontmatter; commands are described simply as reusable prompts.
|
|
96
|
-
- No documented argument/parameter passing.
|
|
97
|
-
- Invoke: type `/` in the Agent input and pick the command.
|
|
98
|
-
|
|
99
|
-
**Skills (preferred going forward):** `SKILL.md`-based, same shape as the convergence example above. Cursor ships `/migrate-to-skills` to convert commands.
|
|
100
|
-
|
|
101
|
-
**Rules** (passive context, auto-injected — not invoked like commands):
|
|
102
|
-
- Location: `.cursor/rules/` as `.md` or `.mdc`. Use `.mdc` for frontmatter.
|
|
103
|
-
- Frontmatter: `description` (string), `globs` (file pattern), `alwaysApply` (boolean).
|
|
104
|
-
- Types: **Always** (`alwaysApply: true`), **Agent Requested** (description, no globs — pulled in when relevant), **Auto Attached** (matches `globs`), **Manual** (only via `@`-mention).
|
|
105
|
-
|
|
106
|
-
## Quick pick
|
|
107
|
-
|
|
108
|
-
| You want… | Claude Code | GitHub Copilot | Cursor |
|
|
109
|
-
|---|---|---|---|
|
|
110
|
-
| Invoke a saved prompt by name | `.claude/skills/<name>/SKILL.md` → `/name` | `.github/prompts/<name>.prompt.md` → `/name` | `.cursor/commands/<name>.md` → `/name` |
|
|
111
|
-
| Always-on project context | `.claude/skills/` (auto-invoked) or `CLAUDE.md` | `.github/copilot-instructions.md` | `.cursor/rules/*.mdc` |
|
|
112
|
-
| Path-scoped context | `paths:` frontmatter | `.github/instructions/*.instructions.md` (`applyTo`) | `.cursor/rules/*.mdc` (`globs`) |
|
|
113
|
-
|
|
114
|
-
When in doubt, write a `SKILL.md` — it's the format all three are converging on.
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# Problem-Solving Skills - Attribution
|
|
2
|
-
|
|
3
|
-
These skills were derived from agent patterns in the [Amplifier](https://github.com/microsoft/amplifier) project.
|
|
4
|
-
|
|
5
|
-
**Source Repository:**
|
|
6
|
-
- Name: Amplifier
|
|
7
|
-
- URL: https://github.com/microsoft/amplifier
|
|
8
|
-
- Commit: 2adb63f858e7d760e188197c8e8d4c1ef721e2a6
|
|
9
|
-
- Date: 2025-10-10
|
|
10
|
-
|
|
11
|
-
## Skills Derived from Amplifier Agents
|
|
12
|
-
|
|
13
|
-
**From insight-synthesizer agent:**
|
|
14
|
-
- simplification-cascades - Finding insights that eliminate multiple components
|
|
15
|
-
- collision-zone-thinking - Forcing unrelated concepts together for breakthroughs
|
|
16
|
-
- meta-pattern-recognition - Spotting patterns across 3+ domains
|
|
17
|
-
- inversion-exercise - Flipping assumptions to reveal alternatives
|
|
18
|
-
- scale-game - Testing at extremes to expose fundamental truths
|
|
19
|
-
|
|
20
|
-
**From ambiguity-guardian agent:**
|
|
21
|
-
- (architecture) preserving-productive-tensions - Preserving multiple valid approaches
|
|
22
|
-
|
|
23
|
-
**From knowledge-archaeologist agent:**
|
|
24
|
-
- (research) tracing-knowledge-lineages - Understanding how ideas evolved
|
|
25
|
-
|
|
26
|
-
**Dispatch pattern:**
|
|
27
|
-
- when-stuck - Maps stuck-symptoms to appropriate technique
|
|
28
|
-
|
|
29
|
-
## What Was Adapted
|
|
30
|
-
|
|
31
|
-
The amplifier agents are specialized long-lived agents with structured JSON output. These skills extract the core problem-solving techniques and adapt them as:
|
|
32
|
-
|
|
33
|
-
- Scannable quick-reference guides (~60 lines each)
|
|
34
|
-
- Symptom-based discovery via when_to_use
|
|
35
|
-
- Immediate application without special tooling
|
|
36
|
-
- Composable through dispatch pattern
|
|
37
|
-
|
|
38
|
-
## Core Insight
|
|
39
|
-
|
|
40
|
-
Agent capabilities are domain-agnostic patterns. Whether packaged as "amplifier agent" or "superpowers skill", the underlying technique is the same. We extracted the techniques and made them portable.
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: collision-zone-thinking
|
|
3
|
-
description: Force unrelated concepts together to discover emergent properties — "What if we treated X like Y?" Use this skill whenever someone says they're stuck, need a breakthrough idea, want to think outside the box, feel like they've exhausted options in their domain, or need innovation rather than optimization. Also use it when a user asks how a well-known software pattern (circuit breakers, MapReduce, reactive programming, event sourcing) was originally invented — these are all cross-domain collisions. Trigger any time someone needs a novel angle on a hard problem.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Collision-Zone Thinking
|
|
7
|
-
|
|
8
|
-
## Overview
|
|
9
|
-
|
|
10
|
-
Revolutionary insights come from forcing unrelated concepts to collide. The cognitive science behind this is real: **bisociation** (Koestler), **conceptual blending** (Fauconnier & Turner), and TRIZ's cross-domain patent analysis all confirm the same mechanism — breakthrough thinking requires connecting two previously separate frames of thought, not finding better answers within a single frame.
|
|
11
|
-
|
|
12
|
-
**Core principle:** Import the *mechanism*, not the metaphor. You're not renaming things. You're borrowing how a different system solves the same structural problem.
|
|
13
|
-
|
|
14
|
-
> For historical evidence that this technique produces real results — Bloom filters, MapReduce, the Actor model, circuit breakers, consistent hashing, event sourcing — see `references/historical-examples.md`.
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Quick Reference: High-Yield Domain Pairs
|
|
19
|
-
|
|
20
|
-
| Problem Type | Source Domain | Key Mechanisms to Import |
|
|
21
|
-
|-------------|---------------|--------------------------|
|
|
22
|
-
| Distributed failures | Electrical circuits | Circuit breakers, grounding, load balancing |
|
|
23
|
-
| Service discovery | Ant colonies | Stigmergy, pheromone trails, positive feedback |
|
|
24
|
-
| Caching / memory | Immune system | Memory cells, tolerance, autoimmunity as bugs |
|
|
25
|
-
| Load shedding | Emergency triage | Priority queues, do-not-resuscitate patterns |
|
|
26
|
-
| Code evolution | Natural selection | Fitness landscape, punctuated equilibrium, drift |
|
|
27
|
-
| API design | Linguistics | Syntax vs. semantics, pragmatics, ambiguity |
|
|
28
|
-
| Security / access | Epidemiology | Vectors, quarantine, herd immunity, patient zero |
|
|
29
|
-
| Team structure | Ecology / niches | Keystone species, competitive exclusion, succession |
|
|
30
|
-
| Rate limiting | Fluid dynamics | Backpressure, throttle valves, laminar vs. turbulent |
|
|
31
|
-
| Technical debt | Financial debt | Compound interest, default, debt restructuring |
|
|
32
|
-
| Observability | Neuroscience | Proprioception, signal vs. noise, nociception |
|
|
33
|
-
| Consensus | Democracy / voting | Quorum, veto power, majority vs. supermajority |
|
|
34
|
-
| Data pipelines | Manufacturing | Bottlenecks, WIP limits, buffer overflow, just-in-time |
|
|
35
|
-
| Optimization | Evolution / genetics | Fitness function, mutation, selection pressure |
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## Process
|
|
40
|
-
|
|
41
|
-
### 1. Escape the Problem's Frame
|
|
42
|
-
- State the problem in plain language
|
|
43
|
-
- Identify its structural type: optimization? coordination? failure prevention? scaling? discovery?
|
|
44
|
-
- Strip domain-specific vocabulary — find the structural bones
|
|
45
|
-
- Ask: *"What is this problem really about?"*
|
|
46
|
-
|
|
47
|
-
### 2. Select and Enter the Source Domain
|
|
48
|
-
- Choose a domain that solves the same **structural problem type** (not the same surface domain)
|
|
49
|
-
- Go deep enough to articulate **at least 5 mechanisms** — don't just name the domain, explain how it works
|
|
50
|
-
- Ask: *"How does this system solve this type of problem?"*
|
|
51
|
-
|
|
52
|
-
**Good source domains:** biology, ecology, electrical engineering, fluid dynamics, economics, military strategy, immunology, linguistics, thermodynamics, accounting.
|
|
53
|
-
|
|
54
|
-
**Avoid:** adjacent tech domains (too similar), domains you barely understand (too shallow).
|
|
55
|
-
|
|
56
|
-
### 3. Collide
|
|
57
|
-
- Force the combination: *"What if we treated [A] like [B]?"*
|
|
58
|
-
- Run it as a simulation — elaborate it forward, don't just state it
|
|
59
|
-
- For each mechanism you listed, ask: *"What would the equivalent be in my domain?"*
|
|
60
|
-
- Note **emergent properties** — things the blend implies that weren't in either input
|
|
61
|
-
|
|
62
|
-
### 4. Test the Breakdown
|
|
63
|
-
- Find where the metaphor breaks — it always does
|
|
64
|
-
- Ask: *"What does the source domain have that my domain lacks?"* (potential to add)
|
|
65
|
-
- Ask: *"What does my domain have that the source domain lacks?"* (constraints to respect)
|
|
66
|
-
- **Treat the breakdown as signal, not failure.** Where the metaphor stops fitting reveals what's genuinely unique about your domain — and often points to the most important design decision.
|
|
67
|
-
|
|
68
|
-
### 5. Extract
|
|
69
|
-
- Name the concrete mechanisms you're borrowing
|
|
70
|
-
- Generate at least one testable hypothesis or design change
|
|
71
|
-
- Document breakdown points — they define the insight's scope
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
## Evaluating the Collision
|
|
76
|
-
|
|
77
|
-
| Question | What It Checks |
|
|
78
|
-
|----------|---------------|
|
|
79
|
-
| **Does the structural relationship map, or only the surface?** | Borrowing names is decoration; borrowing mechanisms is insight |
|
|
80
|
-
| **Does the source domain reveal *why*, not just *what*?** | Causal mechanisms are what you're actually importing |
|
|
81
|
-
| **Does the breakdown point reveal something useful?** | Productive breaks expose hidden constraints or design decisions |
|
|
82
|
-
|
|
83
|
-
**Signs a collision is productive:** Emergent properties appear. You discover constraints you hadn't named. The source suggests experiments you wouldn't have thought of. The breakdown reveals a gap worth engineering around.
|
|
84
|
-
|
|
85
|
-
**Signs a collision is superficial:** You're borrowing vocabulary, not mechanisms. You could have had the same insight without the analogy. No emergent structure appears — the blend is flat.
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## Worked Example 1: Circuit Breakers
|
|
90
|
-
|
|
91
|
-
**Problem:** Complex distributed system with cascading failures
|
|
92
|
-
|
|
93
|
-
**Escape:** This is a *failure propagation* problem — how to prevent one failing component from overloading others.
|
|
94
|
-
|
|
95
|
-
**Source domain activated:** Electrical circuits
|
|
96
|
-
- Mechanism 1: Circuit breakers disconnect on overload
|
|
97
|
-
- Mechanism 2: Fuses provide one-time, non-recoverable protection
|
|
98
|
-
- Mechanism 3: Grounding routes dangerous current safely away
|
|
99
|
-
- Mechanism 4: Load balancing distributes current across paths
|
|
100
|
-
- Mechanism 5: Isolation prevents short-circuit propagation between components
|
|
101
|
-
|
|
102
|
-
**Collision:** *"What if we treated services like electrical circuits?"*
|
|
103
|
-
|
|
104
|
-
**Emergent properties:**
|
|
105
|
-
- Circuit breakers → automatic service disconnection when error rates spike
|
|
106
|
-
- Grounding → dedicated error-sink services that absorb failures
|
|
107
|
-
- Load balancing → traffic redistribution under stress
|
|
108
|
-
- Series vs. parallel circuits → synchronous vs. async dependency graphs
|
|
109
|
-
|
|
110
|
-
**Where it breaks:** Circuits don't have retry logic, state, or dynamic reconfiguration.
|
|
111
|
-
|
|
112
|
-
**What the breakdown reveals:** Distributed systems have *memory* and *intent* that circuits lack — that's why retry logic, exponential backoff, and health checks exist. The breakdown is the specification for the Half-Open state that Michael Nygard invented — an entirely software-native concept with no electrical equivalent.
|
|
113
|
-
|
|
114
|
-
**Insight extracted:** Borrow the three-state model (closed/open/half-open); add retry and health-check logic exactly where the analogy breaks.
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
## Worked Example 2: Event Sourcing
|
|
119
|
-
|
|
120
|
-
**Problem:** Distributed write-heavy systems need audit trails, temporal queries, and consistency — but mutable state makes all three hard.
|
|
121
|
-
|
|
122
|
-
**Escape:** This is a *state history* problem — how to track what happened, when, and be able to reconstruct any past state.
|
|
123
|
-
|
|
124
|
-
**Source domain activated:** Double-entry bookkeeping (accounting, ~1494)
|
|
125
|
-
- Mechanism 1: Transactions are never modified, only appended to the ledger
|
|
126
|
-
- Mechanism 2: Account balance is *derived* from history, not stored directly
|
|
127
|
-
- Mechanism 3: Every change is recorded from two perspectives (debit and credit)
|
|
128
|
-
- Mechanism 4: The complete ledger is the source of truth — summaries are projections
|
|
129
|
-
- Mechanism 5: Audit trail is the data, not a separate system bolted on
|
|
130
|
-
|
|
131
|
-
**Collision:** *"What if we treated our database like a ledger?"*
|
|
132
|
-
|
|
133
|
-
**Emergent properties:**
|
|
134
|
-
- Event store → complete replay of any past state (time travel)
|
|
135
|
-
- Derived projections → different read models from the same event stream
|
|
136
|
-
- Immutable log → audit trail for free, debugging by replay
|
|
137
|
-
- Append-only writes → no write contention on past records
|
|
138
|
-
|
|
139
|
-
**Where it breaks:** Schema evolution is hard (old events must be readable with new schemas), and replaying years of events to reconstruct current state is slow.
|
|
140
|
-
|
|
141
|
-
**What the breakdown reveals:** Bookkeepers solved schema evolution via versioned document formats and transition rules — software systems need the same: event versioning and migration scripts. The "slow replay" breakdown is the specification for snapshot strategies. Both breakdowns have direct solutions.
|
|
142
|
-
|
|
143
|
-
**Insight extracted:** Immutable event logs as primary data; projections as derived views; snapshots for performance; versioned schemas for evolution. This is the event sourcing pattern that underlies Kafka, CQRS, and git.
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
## Common Pitfalls
|
|
148
|
-
|
|
149
|
-
**Surface analogy trap:** Borrowing vocabulary but not mechanisms. "Let's call modules 'genes'" is renaming, not insight. Insight is: *"What would selection pressure mean for code? What would mutation rate mean? What would epistasis mean?"*
|
|
150
|
-
|
|
151
|
-
**Stopping too early:** Generating the collision but not running it. Commit to 5–7 mechanisms before claiming the collision is complete.
|
|
152
|
-
|
|
153
|
-
**Adjacent-domain trap:** Choosing source domains that are too similar — produces incremental thinking, not breakthrough. Physics, biology, and economics produce more insight than other tech systems.
|
|
154
|
-
|
|
155
|
-
**Discarding breakdowns:** Treating metaphor failures as dead ends. Every breakdown is a signal about what's genuinely different in your domain — and that's where the deepest insight lives.
|
|
156
|
-
|
|
157
|
-
---
|
|
158
|
-
|
|
159
|
-
## When to Reach for This
|
|
160
|
-
|
|
161
|
-
- "I've tried everything in this domain"
|
|
162
|
-
- Solutions feel incremental, not breakthrough
|
|
163
|
-
- Need innovation, not optimization
|
|
164
|
-
- The problem feels structurally familiar but solutions in this domain have stalled
|
|
165
|
-
- You're asked how a well-known pattern (circuit breakers, MapReduce, event sourcing) was invented
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
## Source Domain Selection Rubric
|
|
170
|
-
|
|
171
|
-
Use this to assess if a domain is worth entering deeply:
|
|
172
|
-
|
|
173
|
-
1. **Structural richness:** Does it have well-developed causal mechanisms, or just patterns?
|
|
174
|
-
2. **Surface dissimilarity:** Is it genuinely alien to your problem domain? (More different = more novel)
|
|
175
|
-
3. **Your familiarity:** Can you articulate 5+ mechanisms, or are you guessing?
|
|
176
|
-
4. **Validated solutions:** Has this domain solved its problems under real pressure (evolution, markets, physics)?
|
|
177
|
-
|
|
178
|
-
If you can't articulate 5 mechanisms from the source domain, go deeper before colliding.
|
|
179
|
-
|
|
180
|
-
---
|
|
181
|
-
|
|
182
|
-
## Reference
|
|
183
|
-
|
|
184
|
-
For 11 historical examples of real cross-domain collisions that became software foundations — with full collision-zone analysis for each — see:
|
|
185
|
-
|
|
186
|
-
`references/historical-examples.md`
|
|
187
|
-
|
|
188
|
-
Use them as templates, as evidence this technique produces real results, or as a starting inventory when you're selecting source domains.
|