@justinforfun/redo-skill 0.1.1 → 0.1.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/package.json +1 -1
- package/skills/redo/SKILL.md +100 -13
package/package.json
CHANGED
package/skills/redo/SKILL.md
CHANGED
|
@@ -43,7 +43,9 @@ For real technologies, do not rely only on memory when dates, versions, authorsh
|
|
|
43
43
|
- If web access is available and the user has not forbidden it, verify with primary or high-authority sources first: official documentation, release notes, RFCs, design docs, papers, project repositories, or authoritative engineering blogs.
|
|
44
44
|
- If web access is unavailable, blocked, or the user forbids browsing, state clearly that the analysis is not freshly verified from online sources.
|
|
45
45
|
- Distinguish sourced facts from inference. It is acceptable to infer engineering motivations, but label them as inference when the source does not explicitly say so.
|
|
46
|
-
- Prefer
|
|
46
|
+
- Prefer primary sources over secondary commentary. Good sources include official docs, release notes, KIPs/RFCs/PEPs/design proposals, original papers, maintainers' posts, and authoritative engineering retrospectives.
|
|
47
|
+
- Research relevant papers separately when the topic has an academic or foundational design lineage. Papers often explain why the original abstraction was plausible, what constraints the designers optimized for, and which trade-offs were known from the beginning. Do not only search release notes and blog posts.
|
|
48
|
+
- Avoid source dumping. Cite the key sources used, and when useful, say which stages they support.
|
|
47
49
|
|
|
48
50
|
## Output Contract
|
|
49
51
|
|
|
@@ -51,12 +53,25 @@ Start with a compact orientation:
|
|
|
51
53
|
|
|
52
54
|
- What the system is.
|
|
53
55
|
- The central pressure that shaped its evolution.
|
|
54
|
-
- The
|
|
56
|
+
- The one-sentence trade-off theme that appears repeatedly. Make this sharp and reusable, not academic.
|
|
55
57
|
|
|
56
58
|
Then produce the sections below.
|
|
57
59
|
|
|
58
60
|
### 1. Evolution Stages
|
|
59
61
|
|
|
62
|
+
Choose stages by engineering decision pressure, not by release chronology. For mature infrastructure, databases, runtimes, frameworks, languages, and major tools, a good answer usually has 7-9 stages. Do not compress a major "debt repayment" stage into the debt map if it changed how users operate the system.
|
|
63
|
+
|
|
64
|
+
For mature systems, check whether the stage list covers these arcs where relevant:
|
|
65
|
+
|
|
66
|
+
- Prototype or original abstraction.
|
|
67
|
+
- Reliability and replication/fault tolerance.
|
|
68
|
+
- Coordination, metadata, scheduling, ownership, or state management.
|
|
69
|
+
- Semantics/correctness guarantees.
|
|
70
|
+
- Ecosystem or higher-level abstraction.
|
|
71
|
+
- Scale, cloud-native, elasticity, or operations.
|
|
72
|
+
- Cost/storage/performance pressure.
|
|
73
|
+
- Current unresolved frontier.
|
|
74
|
+
|
|
60
75
|
For each stage, use this structure:
|
|
61
76
|
|
|
62
77
|
```markdown
|
|
@@ -72,42 +87,60 @@ For each stage, use this structure:
|
|
|
72
87
|
|
|
73
88
|
**Key trade-off:** <the most important exchange>
|
|
74
89
|
|
|
75
|
-
**Debt introduced:** <what this choice made harder later>
|
|
90
|
+
**Debt introduced:** D<N> - <what this choice made harder later>
|
|
76
91
|
```
|
|
77
92
|
|
|
78
93
|
Stage quality rules:
|
|
79
94
|
|
|
80
95
|
- Every stage must be driven by a concrete constraint, not by a release note.
|
|
81
96
|
- Every table must contain at least two rejected options and one chosen path.
|
|
82
|
-
-
|
|
97
|
+
- Keep table cells tight: one cost, one reason, one decision. Avoid long essay cells.
|
|
98
|
+
- The chosen option must say why it was rational under the constraints of that stage, even if it later caused problems.
|
|
99
|
+
- The rejected options must be plausible choices real engineers would have considered.
|
|
100
|
+
- The debt line must create a traceable debt ID such as D1, D2, D3. Reuse these IDs in the debt map.
|
|
83
101
|
- Avoid hindsight moralizing. The point is to recreate the decision pressure, not to mock past designs.
|
|
84
102
|
|
|
85
103
|
### 2. Throughline
|
|
86
104
|
|
|
87
|
-
Summarize the recurring design philosophy in one or two paragraphs. Make it specific to the topic, for example:
|
|
105
|
+
Summarize the recurring design philosophy in one or two paragraphs plus a compact table. Make it specific to the topic, for example:
|
|
88
106
|
|
|
89
107
|
- "Push complexity into the runtime to keep application code simple."
|
|
90
108
|
- "Preserve backward compatibility even when it complicates internals."
|
|
91
109
|
- "Use logs as the universal abstraction."
|
|
92
110
|
|
|
111
|
+
Then add:
|
|
112
|
+
|
|
113
|
+
```markdown
|
|
114
|
+
| Repeated choice | What it avoided | What it made harder | Outcome |
|
|
115
|
+
|---|---|---|---|
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
The throughline should produce a sentence the reader can repeat in a design review.
|
|
119
|
+
|
|
93
120
|
### 3. Debt Map
|
|
94
121
|
|
|
95
|
-
Create two tables.
|
|
122
|
+
Create two tables. Use the debt IDs introduced in the stages.
|
|
96
123
|
|
|
97
124
|
Resolved debt:
|
|
98
125
|
|
|
99
126
|
```markdown
|
|
100
|
-
| Debt | Introduced in | Resolved in | Resolution |
|
|
101
|
-
|
|
127
|
+
| Debt ID | Debt | Introduced in | Resolved in | Resolution |
|
|
128
|
+
|---|---|---|---|---|
|
|
102
129
|
```
|
|
103
130
|
|
|
104
131
|
Unresolved debt:
|
|
105
132
|
|
|
106
133
|
```markdown
|
|
107
|
-
| Pain point | Why it remains hard | Current manifestation |
|
|
108
|
-
|
|
134
|
+
| Debt ID | Pain point | Why it remains hard | Current manifestation |
|
|
135
|
+
|---|---|---|---|
|
|
109
136
|
```
|
|
110
137
|
|
|
138
|
+
Debt map quality rules:
|
|
139
|
+
|
|
140
|
+
- The map must explain "introduced in stage X, resolved in stage Y" where applicable.
|
|
141
|
+
- Do not list only abstract categories like "operational complexity". Name the concrete failure mode users feel.
|
|
142
|
+
- Include important unresolved operational pain even if it came from an omitted or secondary stage, but label it clearly.
|
|
143
|
+
|
|
111
144
|
### 4. Pain Point Ranking
|
|
112
145
|
|
|
113
146
|
Rank the top unresolved problems that users still feel today.
|
|
@@ -119,25 +152,79 @@ Rank the top unresolved problems that users still feel today.
|
|
|
119
152
|
|
|
120
153
|
Use the competitive attack angle only when there is a meaningful comparison. Otherwise write "N/A".
|
|
121
154
|
|
|
155
|
+
Ranking quality rules:
|
|
156
|
+
|
|
157
|
+
- Prefer production symptoms over abstract labels: "rebalance storms", "cold-read latency", "schema migration pain", "dependency hell", "slow compile times", "state restore time", "version skew".
|
|
158
|
+
- The one-line explanation should describe what users observe during failure or scale, not just why the architecture is complex.
|
|
159
|
+
- Competitive attack angles should be concrete. Name a class of alternative system or a known competitor only when the comparison is fair.
|
|
160
|
+
|
|
122
161
|
### 5. Causal Chain
|
|
123
162
|
|
|
124
|
-
End with a causal chain that makes the evolution memorable:
|
|
163
|
+
End with a causal chain that makes the evolution memorable. For complex systems, use an ASCII story map rather than a flat paragraph:
|
|
164
|
+
|
|
165
|
+
```text
|
|
166
|
+
early constraint -> chosen design -> solved problem, but introduced D<N>
|
|
167
|
+
|
|
|
168
|
+
v
|
|
169
|
+
next constraint -> next design -> repaid D<N>, but introduced D<M>
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Keep it concise and legible. The best chain should let the reader retell the system's history from memory.
|
|
173
|
+
|
|
174
|
+
Use arrows and vertical continuation when it improves readability:
|
|
125
175
|
|
|
126
176
|
```text
|
|
127
|
-
|
|
177
|
+
2011 original constraint -> 2012 design -> solved X, but introduced D1
|
|
178
|
+
|
|
|
179
|
+
v
|
|
180
|
+
2014 next constraint -> next design -> repaid D1, but introduced D2
|
|
128
181
|
```
|
|
129
182
|
|
|
130
|
-
|
|
183
|
+
After the chain, add a bold one-sentence version:
|
|
184
|
+
|
|
185
|
+
```markdown
|
|
186
|
+
**One-sentence version:** <the system's repeated pattern and unresolved tension today>
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
This sentence should be conversational, sharp, and technically accurate.
|
|
190
|
+
|
|
191
|
+
### 6. Sources
|
|
192
|
+
|
|
193
|
+
If online verification was used, end with a short source list. Prefer 6-10 high-signal sources over a long bibliography. When possible, group sources by what they support:
|
|
194
|
+
|
|
195
|
+
```markdown
|
|
196
|
+
- Foundational papers: <source>
|
|
197
|
+
- Stage 2 replication: <source>
|
|
198
|
+
- Stage 5 correctness semantics: <source>
|
|
199
|
+
- Current pain points: <source>
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Do not let sources replace reasoning. The main output should remain the decision tree and debt map.
|
|
131
203
|
|
|
132
204
|
## Style
|
|
133
205
|
|
|
134
206
|
- Write like a senior engineer explaining architecture history to another engineer.
|
|
207
|
+
- Keep the language conversational but precise: sound like a senior engineer explaining the decision in a design review, not like a paper abstract or a marketing article.
|
|
208
|
+
- Prefer memorable engineering phrasing over neutral summaries, but never sacrifice technical accuracy for punchlines.
|
|
135
209
|
- Prefer concrete mechanisms, failure modes, and operational consequences.
|
|
210
|
+
- Make the answer feel like a decision tree and a debt map, not a neutral research report.
|
|
136
211
|
- Use direct language. Avoid vague praise such as "powerful", "robust", or "revolutionary" unless immediately explained.
|
|
137
212
|
- Use Chinese if the user is writing Chinese, English if the user is writing English, unless `--lang` overrides.
|
|
138
213
|
- If the topic is too broad, choose the core system path and say what you intentionally left out.
|
|
139
214
|
- If the historical record is uncertain, say so and give the most likely interpretation.
|
|
140
215
|
|
|
216
|
+
## Quality Gate
|
|
217
|
+
|
|
218
|
+
Before finalizing, check the answer against these questions:
|
|
219
|
+
|
|
220
|
+
- Could a reader infer the system's evolution from stage 1 to today by following only the trade-offs?
|
|
221
|
+
- Did you include major debt repayment stages, not just feature releases?
|
|
222
|
+
- Does every stage have plausible rejected alternatives and a rational chosen path?
|
|
223
|
+
- Are the pain points concrete production symptoms rather than broad categories?
|
|
224
|
+
- Does every resolved or unresolved debt connect back to a stage or debt ID?
|
|
225
|
+
- Is the throughline sharp enough to quote in one sentence?
|
|
226
|
+
- Are sources high-signal and tied to the claims they support?
|
|
227
|
+
|
|
141
228
|
## Tool-Specific Invocation Notes
|
|
142
229
|
|
|
143
230
|
- Claude Code may expose this as `/redo <topic>` when installed with a command wrapper.
|