@iceinvein/agent-skills 0.1.19 → 0.1.21
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/README.md +20 -0
- package/package.json +2 -1
- package/skills/cover-letter/SKILL.md +161 -0
- package/skills/cover-letter/evals/evals.json +38 -0
- package/skills/cover-letter/evals/inputs/jd-linear-senior-backend.md +43 -0
- package/skills/cover-letter/evals/inputs/jd-pathway-junior-fullstack.md +44 -0
- package/skills/cover-letter/evals/inputs/jd-ramp-senior-go-platform.md +39 -0
- package/skills/cover-letter/evals/inputs/resume-jordan-martinez.md +39 -0
- package/skills/cover-letter/evals/inputs/resume-priya-iyer.md +38 -0
- package/skills/cover-letter/evals/inputs/resume-sam-wu.md +48 -0
- package/skills/cover-letter-audit/SKILL.md +314 -0
- package/skills/cover-letter-persona/SKILL.md +231 -0
- package/skills/cover-letter-rewrite/SKILL.md +298 -0
- package/skills/cover-letter-write/SKILL.md +267 -0
- package/skills/improve-my-codebase/CATALOGUE-FIELDS.md +26 -0
- package/skills/improve-my-codebase/SKILL.md +516 -0
- package/skills/index.json +114 -26
- package/skills/terse/SKILL.md +55 -26
- package/skills/terse/skill.json +6 -3
package/skills/index.json
CHANGED
|
@@ -3,13 +3,17 @@
|
|
|
3
3
|
"name": "design-review",
|
|
4
4
|
"description": "Brooks-inspired design integrity review — tests conceptual integrity, constraint exploitation, removal discipline, and scope control",
|
|
5
5
|
"type": "prompt",
|
|
6
|
-
"version": "1.0.0"
|
|
6
|
+
"version": "1.0.0",
|
|
7
|
+
"applies": ["any"],
|
|
8
|
+
"quick": false
|
|
7
9
|
},
|
|
8
10
|
{
|
|
9
11
|
"name": "codebase-architecture",
|
|
10
12
|
"description": "Architecture review for existing codebases or structured design for new projects, with patterns reference",
|
|
11
13
|
"type": "prompt",
|
|
12
|
-
"version": "1.0.0"
|
|
14
|
+
"version": "1.0.0",
|
|
15
|
+
"applies": ["any", "architecture"],
|
|
16
|
+
"quick": false
|
|
13
17
|
},
|
|
14
18
|
{
|
|
15
19
|
"name": "code-intelligence",
|
|
@@ -21,150 +25,234 @@
|
|
|
21
25
|
"name": "contract-enforcer",
|
|
22
26
|
"description": "Meyer-inspired Design by Contract — preconditions, postconditions, invariants, and failure contracts for non-trivial functions",
|
|
23
27
|
"type": "prompt",
|
|
24
|
-
"version": "1.0.0"
|
|
28
|
+
"version": "1.0.0",
|
|
29
|
+
"applies": ["any"],
|
|
30
|
+
"quick": false
|
|
25
31
|
},
|
|
26
32
|
{
|
|
27
33
|
"name": "complexity-accountant",
|
|
28
34
|
"description": "Ousterhout-inspired complexity analysis — deep vs shallow modules, complexity budget, justified abstractions",
|
|
29
35
|
"type": "prompt",
|
|
30
|
-
"version": "1.0.0"
|
|
36
|
+
"version": "1.0.0",
|
|
37
|
+
"applies": ["any"],
|
|
38
|
+
"quick": false
|
|
31
39
|
},
|
|
32
40
|
{
|
|
33
41
|
"name": "module-secret-auditor",
|
|
34
42
|
"description": "Parnas-inspired information hiding analysis — module boundaries drawn by change-reason, not by noun or technical layer",
|
|
35
43
|
"type": "prompt",
|
|
36
|
-
"version": "1.0.0"
|
|
44
|
+
"version": "1.0.0",
|
|
45
|
+
"applies": ["architecture"],
|
|
46
|
+
"quick": true
|
|
37
47
|
},
|
|
38
48
|
{
|
|
39
49
|
"name": "seam-finder",
|
|
40
50
|
"description": "Feathers-inspired legacy code modification — find seams, make minimal incisions, preserve existing behavior",
|
|
41
51
|
"type": "prompt",
|
|
42
|
-
"version": "1.0.0"
|
|
52
|
+
"version": "1.0.0",
|
|
53
|
+
"applies": ["legacy"],
|
|
54
|
+
"quick": true
|
|
43
55
|
},
|
|
44
56
|
{
|
|
45
57
|
"name": "simplicity-razor",
|
|
46
58
|
"description": "Hickey-inspired simplicity analysis — simple vs easy, complecting detection, strand decomposition",
|
|
47
59
|
"type": "prompt",
|
|
48
|
-
"version": "1.0.0"
|
|
60
|
+
"version": "1.0.0",
|
|
61
|
+
"applies": ["any"],
|
|
62
|
+
"quick": false
|
|
49
63
|
},
|
|
50
64
|
{
|
|
51
65
|
"name": "coupling-auditor",
|
|
52
66
|
"description": "Constantine & Yourdon-inspired coupling analysis — classify, measure, and reduce interdependence between modules",
|
|
53
67
|
"type": "prompt",
|
|
54
|
-
"version": "1.0.0"
|
|
68
|
+
"version": "1.0.0",
|
|
69
|
+
"applies": ["architecture"],
|
|
70
|
+
"quick": true
|
|
55
71
|
},
|
|
56
72
|
{
|
|
57
73
|
"name": "evolution-analyzer",
|
|
58
74
|
"description": "Lehman-inspired software evolution analysis — trajectory assessment, debt visibility, and change impact on system health",
|
|
59
75
|
"type": "prompt",
|
|
60
|
-
"version": "1.0.0"
|
|
76
|
+
"version": "1.0.0",
|
|
77
|
+
"applies": ["any"],
|
|
78
|
+
"quick": false
|
|
61
79
|
},
|
|
62
80
|
{
|
|
63
81
|
"name": "error-strategist",
|
|
64
82
|
"description": "Duffy & Abrahams-inspired error handling — classify errors (bug/recoverable/fatal), assign safety guarantees, design recovery boundaries",
|
|
65
83
|
"type": "prompt",
|
|
66
|
-
"version": "1.0.0"
|
|
84
|
+
"version": "1.0.0",
|
|
85
|
+
"applies": ["errors"],
|
|
86
|
+
"quick": false
|
|
67
87
|
},
|
|
68
88
|
{
|
|
69
89
|
"name": "rams-design-audit",
|
|
70
90
|
"description": "Dieter Rams-inspired design audit — every visual element must earn its presence, less but better, clarity through restraint",
|
|
71
91
|
"type": "prompt",
|
|
72
|
-
"version": "1.0.0"
|
|
92
|
+
"version": "1.0.0",
|
|
93
|
+
"applies": ["ui"],
|
|
94
|
+
"quick": true
|
|
73
95
|
},
|
|
74
96
|
{
|
|
75
97
|
"name": "cognitive-load-auditor",
|
|
76
98
|
"description": "Jeff Johnson-inspired cognitive load analysis — evaluate UI against Miller's Law, Hick's Law, Fitts's Law, and working memory limits",
|
|
77
99
|
"type": "prompt",
|
|
78
|
-
"version": "1.0.0"
|
|
100
|
+
"version": "1.0.0",
|
|
101
|
+
"applies": ["ui"],
|
|
102
|
+
"quick": false
|
|
79
103
|
},
|
|
80
104
|
{
|
|
81
105
|
"name": "gestalt-reviewer",
|
|
82
106
|
"description": "Gestalt-inspired visual perception audit — proximity, similarity, closure, continuity, and figure-ground analysis for UI layouts",
|
|
83
107
|
"type": "prompt",
|
|
84
|
-
"version": "1.0.0"
|
|
108
|
+
"version": "1.0.0",
|
|
109
|
+
"applies": ["ui"],
|
|
110
|
+
"quick": true
|
|
85
111
|
},
|
|
86
112
|
{
|
|
87
113
|
"name": "integration-pattern-auditor",
|
|
88
114
|
"description": "Hohpe & Woolf-inspired messaging analysis — name the integration pattern, verify delivery guarantees, identify missing infrastructure",
|
|
89
115
|
"type": "prompt",
|
|
90
|
-
"version": "1.0.0"
|
|
116
|
+
"version": "1.0.0",
|
|
117
|
+
"applies": ["integration"],
|
|
118
|
+
"quick": false
|
|
91
119
|
},
|
|
92
120
|
{
|
|
93
121
|
"name": "unidirectional-flow-enforcer",
|
|
94
122
|
"description": "Elm Architecture-inspired data flow analysis — enforce unidirectional state flow, detect bidirectional mutations, trace state lifecycle in UI applications",
|
|
95
123
|
"type": "prompt",
|
|
96
|
-
"version": "1.0.0"
|
|
124
|
+
"version": "1.0.0",
|
|
125
|
+
"applies": ["ui"],
|
|
126
|
+
"quick": false
|
|
97
127
|
},
|
|
98
128
|
{
|
|
99
129
|
"name": "event-design-reviewer",
|
|
100
130
|
"description": "Evans/Vernon/Dahan-inspired event design — domain-meaningful naming, fat payloads, schema evolution, and the domain expert test",
|
|
101
131
|
"type": "prompt",
|
|
102
|
-
"version": "1.0.0"
|
|
132
|
+
"version": "1.0.0",
|
|
133
|
+
"applies": ["integration", "domain"],
|
|
134
|
+
"quick": false
|
|
103
135
|
},
|
|
104
136
|
{
|
|
105
137
|
"name": "dependency-direction-auditor",
|
|
106
138
|
"description": "Martin-inspired dependency direction analysis — trace imports across layers, classify violations by severity, recommend inversion",
|
|
107
139
|
"type": "prompt",
|
|
108
|
-
"version": "1.0.0"
|
|
140
|
+
"version": "1.0.0",
|
|
141
|
+
"applies": ["architecture"],
|
|
142
|
+
"quick": true
|
|
109
143
|
},
|
|
110
144
|
{
|
|
111
145
|
"name": "cohesion-analyzer",
|
|
112
146
|
"description": "Constantine & Yourdon-inspired cohesion analysis — classify module focus on the 7-level spectrum, find split lines, reduce mixed responsibilities",
|
|
113
147
|
"type": "prompt",
|
|
114
|
-
"version": "1.0.0"
|
|
148
|
+
"version": "1.0.0",
|
|
149
|
+
"applies": ["architecture"],
|
|
150
|
+
"quick": true
|
|
115
151
|
},
|
|
116
152
|
{
|
|
117
153
|
"name": "demeter-enforcer",
|
|
118
154
|
"description": "Lieberherr-inspired Law of Demeter analysis — detect chain violations, parameter drilling, and hidden traversal; fix with tell-don't-ask or parameter narrowing",
|
|
119
155
|
"type": "prompt",
|
|
120
|
-
"version": "1.0.0"
|
|
156
|
+
"version": "1.0.0",
|
|
157
|
+
"applies": ["architecture"],
|
|
158
|
+
"quick": true
|
|
121
159
|
},
|
|
122
160
|
{
|
|
123
161
|
"name": "bounded-context-auditor",
|
|
124
162
|
"description": "Evans-inspired bounded context analysis — detect linguistic fractures, draw context maps, identify leaking language and shared model pollution",
|
|
125
163
|
"type": "prompt",
|
|
126
|
-
"version": "1.0.0"
|
|
164
|
+
"version": "1.0.0",
|
|
165
|
+
"applies": ["domain"],
|
|
166
|
+
"quick": false
|
|
127
167
|
},
|
|
128
168
|
{
|
|
129
169
|
"name": "port-adapter-auditor",
|
|
130
170
|
"description": "Cockburn-inspired hexagonal architecture analysis — identify ports and adapters, classify boundary health, ensure core testability and swappability",
|
|
131
171
|
"type": "prompt",
|
|
132
|
-
"version": "1.0.0"
|
|
172
|
+
"version": "1.0.0",
|
|
173
|
+
"applies": ["architecture"],
|
|
174
|
+
"quick": false
|
|
133
175
|
},
|
|
134
176
|
{
|
|
135
177
|
"name": "idempotency-guardian",
|
|
136
178
|
"description": "Helland-inspired idempotency analysis — classify mutation points, check protection mechanisms, evaluate side effect safety for retry-safe systems",
|
|
137
179
|
"type": "prompt",
|
|
138
|
-
"version": "1.0.0"
|
|
180
|
+
"version": "1.0.0",
|
|
181
|
+
"applies": ["integration"],
|
|
182
|
+
"quick": false
|
|
139
183
|
},
|
|
140
184
|
{
|
|
141
185
|
"name": "type-driven-designer",
|
|
142
186
|
"description": "Wlaschin & Minsky-inspired type design — make illegal states unrepresentable through branded types, discriminated unions, and domain-encoded constraints",
|
|
143
187
|
"type": "prompt",
|
|
144
|
-
"version": "1.0.0"
|
|
188
|
+
"version": "1.0.0",
|
|
189
|
+
"applies": ["any"],
|
|
190
|
+
"quick": false
|
|
145
191
|
},
|
|
146
192
|
{
|
|
147
193
|
"name": "cqs-auditor",
|
|
148
194
|
"description": "Meyer-inspired Command-Query Separation — classify functions as commands or queries, detect mixed violations, separate side effects from return values",
|
|
149
195
|
"type": "prompt",
|
|
150
|
-
"version": "1.0.0"
|
|
196
|
+
"version": "1.0.0",
|
|
197
|
+
"applies": ["architecture"],
|
|
198
|
+
"quick": true
|
|
151
199
|
},
|
|
152
200
|
{
|
|
153
201
|
"name": "composability-auditor",
|
|
154
202
|
"description": "Unix Philosophy-inspired composability analysis — identify reuse blockers, decompose self-sufficient units into composable pieces with standard interfaces",
|
|
155
203
|
"type": "prompt",
|
|
156
|
-
"version": "1.0.0"
|
|
204
|
+
"version": "1.0.0",
|
|
205
|
+
"applies": ["any"],
|
|
206
|
+
"quick": false
|
|
157
207
|
},
|
|
158
208
|
{
|
|
159
209
|
"name": "temporal-coupling-detector",
|
|
160
210
|
"description": "Hidden ordering dependency analysis — detect two-phase init, method order dependencies, invisible preconditions, and resource lifecycle violations; fix with types, parameters, and factory patterns",
|
|
161
211
|
"type": "prompt",
|
|
162
|
-
"version": "1.0.0"
|
|
212
|
+
"version": "1.0.0",
|
|
213
|
+
"applies": ["any"],
|
|
214
|
+
"quick": true
|
|
163
215
|
},
|
|
164
216
|
{
|
|
165
217
|
"name": "terse",
|
|
166
218
|
"description": "Professional output compression — proper grammar, no fluff, ~50-60% fewer tokens. Three levels: clean, tight, sharp.",
|
|
167
219
|
"type": "prompt",
|
|
168
220
|
"version": "1.1.0"
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"name": "cover-letter",
|
|
224
|
+
"description": "Cover letter suite router. Routes to write, audit, rewrite, or persona subcommands; shares conventions for file I/O, output formats, and writing principles.",
|
|
225
|
+
"type": "prompt",
|
|
226
|
+
"version": "1.0.0"
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"name": "cover-letter-write",
|
|
230
|
+
"description": "Generate a cover letter from resume + job description (PDF, DOCX, markdown, URL). Outputs markdown, DOCX, and PDF. Enforces human prose, evidence alignment, and JD coverage without keyword stuffing.",
|
|
231
|
+
"type": "prompt",
|
|
232
|
+
"version": "1.0.0"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"name": "cover-letter-audit",
|
|
236
|
+
"description": "Score a cover letter on 100 points across content, structure, voice, and correctness. Detects AI-generated-content signals (burstiness, AI phrases, TTR, em-dashes) and produces prioritized fixes.",
|
|
237
|
+
"type": "prompt",
|
|
238
|
+
"version": "1.0.0"
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"name": "cover-letter-rewrite",
|
|
242
|
+
"description": "Revise an existing cover letter with audit-driven targeted fixes. Focus modes: humanize, align, tighten, structure, tone. Preserves voice where it already works.",
|
|
243
|
+
"type": "prompt",
|
|
244
|
+
"version": "1.0.0"
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"name": "cover-letter-persona",
|
|
248
|
+
"description": "Manage reusable writing personas for cover letters using the NNGroup 4-dimension tone framework. Locks in tone, sentence style, and vocabulary across applications.",
|
|
249
|
+
"type": "prompt",
|
|
250
|
+
"version": "1.0.0"
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"name": "improve-my-codebase",
|
|
254
|
+
"description": "Orchestrator skill that runs every applicable audit skill in parallel and produces a prioritized, convergence-ranked improvement report",
|
|
255
|
+
"type": "prompt",
|
|
256
|
+
"version": "1.0.0"
|
|
169
257
|
}
|
|
170
258
|
]
|
package/skills/terse/SKILL.md
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: terse
|
|
3
3
|
description: >
|
|
4
|
-
Professional output compression
|
|
5
|
-
and
|
|
4
|
+
Professional output compression. Cuts ~20-30% of output tokens while keeping proper grammar,
|
|
5
|
+
readable prose, and semantic accuracy. Three intensity levels: clean, tight (default), sharp.
|
|
6
6
|
Always-on from session start. Switch with /terse clean|tight|sharp.
|
|
7
7
|
Off with "stop terse" or "normal mode".
|
|
8
8
|
argument-hint: "[clean|tight|sharp]"
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
First, answer correctly. Then edit: cut filler, hedging, and waste. Conclusions, recommendations, and technical substance must survive compression unchanged. Grammar stays. Only waste dies.
|
|
12
|
+
|
|
13
|
+
## Semantic Preservation
|
|
14
|
+
|
|
15
|
+
Terse compresses HOW the answer is delivered. It must never change WHAT the answer says.
|
|
16
|
+
|
|
17
|
+
- If the uncompressed answer would recommend X, the terse answer must also recommend X. Compression must not shift conclusions, flip recommendations, or reorder priorities.
|
|
18
|
+
- For opinion/tradeoff questions ("Should I use X or Y?", or any prompt containing "should I", "would you recommend", "which is better", "X vs Y", "pros and cons", "which should"): use your thinking to reason through the recommendation at full depth WITHOUT compression. Decide your answer in thinking. Then write the compressed visible response, ensuring the recommendation matches your thinking. If they diverge, your thinking is correct; fix the visible output.
|
|
19
|
+
- State your recommendation in the FIRST sentence of the visible response. This locks it in before compression pressure accumulates on the supporting reasoning.
|
|
20
|
+
- If a caveat is load-bearing (changes what the reader would do), keep it. Only drop caveats that are generic hedging ("your mileage may vary", "it depends on your use case") with no specific content.
|
|
12
21
|
|
|
13
22
|
## Persistence
|
|
14
23
|
|
|
@@ -20,32 +29,32 @@ Active level: **$ARGUMENTS[0]** (default to **tight** if no argument provided).
|
|
|
20
29
|
|
|
21
30
|
Every response, cut these patterns:
|
|
22
31
|
|
|
23
|
-
**Preambles
|
|
32
|
+
**Preambles**: never open with pleasantries or throat-clearing.
|
|
24
33
|
- Kill: "Sure! I'd be happy to help you with that. The issue is..."
|
|
25
34
|
- Write: "The issue is..."
|
|
26
35
|
|
|
27
|
-
**Question restating
|
|
36
|
+
**Question restating**: never echo what the user just said.
|
|
28
37
|
- Kill: "You're asking about why your database connection is timing out. This is a common issue that..."
|
|
29
38
|
- Write: "The connection times out because..."
|
|
30
39
|
|
|
31
|
-
**Hedge stacking
|
|
40
|
+
**Hedge stacking**: state things directly. Qualify only when genuinely uncertain.
|
|
32
41
|
- Kill: "It's likely that you might want to possibly consider using a connection pool, which could potentially help..."
|
|
33
42
|
- Write: "Use a connection pool."
|
|
34
43
|
|
|
35
|
-
**Trailing summaries
|
|
44
|
+
**Trailing summaries**: the explanation is the explanation. Don't summarize it again at the end.
|
|
36
45
|
- Kill: [explanation] "So in summary, what we did was update the middleware to validate tokens correctly, which should fix the authentication issue."
|
|
37
46
|
- Write: [explanation ends]
|
|
38
47
|
|
|
39
|
-
**Narrating actions
|
|
48
|
+
**Narrating actions**: don't announce what you're about to do. Just do it. The tool call is the communication. Never preface a tool call with text explaining that you're about to make it.
|
|
40
49
|
- Kill: "Let me take a look at the file for you. I'll read it now and analyze what's going on."
|
|
41
50
|
- Kill: "Now let me fix that issue."
|
|
42
51
|
- Kill: "Let me check the tests."
|
|
43
52
|
- Kill: "I'll update the config next."
|
|
44
53
|
- Kill: "We need to update the schema first."
|
|
45
54
|
- Kill: "First, I'll read the file to understand the structure."
|
|
46
|
-
- Write: [tool call
|
|
55
|
+
- Write: [tool call, no preamble]
|
|
47
56
|
|
|
48
|
-
**Banned action-narration openers
|
|
57
|
+
**Banned action-narration openers**: these phrases before a tool call are always filler. Cut them 100% of the time:
|
|
49
58
|
- "Let me..." / "Now let me..." / "Now I'll..."
|
|
50
59
|
- "I'll..." / "I need to..." / "We need to..."
|
|
51
60
|
- "First, let me..." / "Next, I'll..."
|
|
@@ -58,15 +67,19 @@ If context is needed between tool calls, state the *finding* or *decision*, not
|
|
|
58
67
|
- Kill: "Let me run the tests to verify."
|
|
59
68
|
- Write: [runs tests]
|
|
60
69
|
|
|
61
|
-
**Over-explaining the obvious
|
|
70
|
+
**Over-explaining the obvious**: don't describe trivial operations.
|
|
62
71
|
- Kill: "I'll create a new file called `utils.ts`. This file will contain utility functions that we can reuse across the project."
|
|
63
72
|
- Write: [creates the file]
|
|
64
73
|
|
|
65
|
-
**
|
|
74
|
+
**Inflating short answers**: if the correct answer is one sentence, deliver one sentence. Terse must never make a response longer than it would be without terse. Do not add examples, elaboration, or context that the uncompressed response would not have included.
|
|
75
|
+
- Kill: "O(log n). This is because each comparison halves the remaining search space. To illustrate, consider a sorted array of 1 million elements..."
|
|
76
|
+
- Write: "O(log n). Each step halves the search space."
|
|
77
|
+
|
|
78
|
+
**Excessive caveats**: if there's a real trade-off, name it specifically. Don't hedge generically.
|
|
66
79
|
- Kill: "This approach has some trade-offs. Depending on your use case, you might want to consider other options. That said, for most situations, this should work well, though your mileage may vary."
|
|
67
80
|
- Write: "Trade-off: [specific thing]. For most cases this works."
|
|
68
81
|
|
|
69
|
-
## Filler Words
|
|
82
|
+
## Filler Words: Always Drop
|
|
70
83
|
|
|
71
84
|
These add no information. Remove on sight regardless of level:
|
|
72
85
|
|
|
@@ -85,47 +98,63 @@ Drop filler, hedging, and pleasantries. Keep full sentences with natural flow.
|
|
|
85
98
|
|
|
86
99
|
### `tight` (default)
|
|
87
100
|
|
|
88
|
-
Everything in `clean`, plus shorter synonyms and
|
|
101
|
+
Everything in `clean`, plus shorter synonyms, shorter sentences, and targeted cuts.
|
|
89
102
|
|
|
103
|
+
Word cuts:
|
|
90
104
|
- Shorter synonyms: big not extensive, fix not implement, use not utilize, show not demonstrate, check not investigate, need not requirement, start not initialize, end not terminate, send not transmit
|
|
91
|
-
-
|
|
105
|
+
- Strip transition phrases on sight: "however", "additionally", "furthermore", "moreover", "that said", "in other words", "it's also worth mentioning", "on the other hand", "as a result", "with that in mind". Just start the next sentence.
|
|
106
|
+
- Replace "this means that" with a dash or colon. Replace "the reason is that" with "because".
|
|
107
|
+
- One idea per sentence. Split compound sentences.
|
|
108
|
+
|
|
109
|
+
Content cuts:
|
|
92
110
|
- Direct answer first, then explanation if needed.
|
|
111
|
+
- One example per point. Two examples illustrating the same concept: keep the clearer one, drop the other.
|
|
112
|
+
- If the answer would work without the last paragraph, drop the last paragraph.
|
|
113
|
+
- Do not restructure or add formatting that wasn't in the uncompressed answer. Only cut.
|
|
93
114
|
|
|
94
115
|
### `sharp`
|
|
95
116
|
|
|
96
|
-
Everything in `tight`, plus abbreviations and
|
|
117
|
+
Everything in `tight`, plus abbreviations, telegraphic structure, and structural compression.
|
|
97
118
|
|
|
119
|
+
Word-level:
|
|
98
120
|
- Abbreviations where widely recognized: DB, auth, config, req, res, fn, impl, env, deps, repo, dir, and any the audience would recognize without thinking
|
|
99
121
|
- Arrows for causality (X → Y)
|
|
100
122
|
- Sentences as short as grammatically correct allows
|
|
101
123
|
|
|
124
|
+
Structure-level (only apply if the response is longer than ~100 tokens; never restructure short answers or content that is already a list):
|
|
125
|
+
- Prose paragraphs become dash-lists where the content is a set of independent points. If the content is already a list or table, leave the structure alone.
|
|
126
|
+
- Drop "For example" / "For instance" asides. State the rule or fact directly.
|
|
127
|
+
- If a response has intro + body + recap, keep only the body.
|
|
128
|
+
- If two paragraphs make the same point from different angles, merge into one.
|
|
129
|
+
- Limit long lists to the 3-5 most important items. If the list is already 5 or fewer items, keep all of them.
|
|
130
|
+
|
|
102
131
|
## Examples
|
|
103
132
|
|
|
104
133
|
**"Why is my React component re-rendering?"**
|
|
105
134
|
|
|
106
135
|
- clean: "You're creating a new object reference on each render. When you pass an inline object as a prop, React's shallow comparison sees a different object every time, triggering a re-render. Wrap it in `useMemo`."
|
|
107
|
-
- tight: "Inline object props create a new reference each render. React
|
|
136
|
+
- tight: "Inline object props create a new reference each render. React sees a new object, triggers re-render. Use `useMemo`."
|
|
108
137
|
- sharp: "Inline obj prop → new ref each render → re-render. `useMemo` to memoize."
|
|
109
138
|
|
|
110
139
|
**"Explain database connection pooling"**
|
|
111
140
|
|
|
112
|
-
- clean: "Connection pooling reuses open database connections instead of creating new ones per request. This avoids the overhead of repeated TCP handshakes and authentication. Most frameworks have a pool built in
|
|
113
|
-
- tight: "
|
|
114
|
-
- sharp: "Pool reuses DB
|
|
141
|
+
- clean: "Connection pooling reuses open database connections instead of creating new ones per request. This avoids the overhead of repeated TCP handshakes and authentication. Most frameworks have a pool built in; configure the pool size and idle timeout."
|
|
142
|
+
- tight: "Pooling reuses open connections instead of creating new ones per request. Skips handshake overhead. Configure pool size and idle timeout."
|
|
143
|
+
- sharp: "Pool reuses DB conns instead of new conn per req → no handshake overhead. Set pool size + idle timeout."
|
|
115
144
|
|
|
116
|
-
**"
|
|
145
|
+
**"Should I use X or Y?" (tradeoff question)**
|
|
117
146
|
|
|
118
|
-
- clean:
|
|
119
|
-
- tight:
|
|
120
|
-
- sharp:
|
|
147
|
+
- clean: [Full recommendation with reasoning. Same conclusion as without terse. Generic hedges removed, specific tradeoffs kept.]
|
|
148
|
+
- tight: [Same conclusion. Answer first, reasoning below. One example per point. Transition phrases stripped.]
|
|
149
|
+
- sharp: [Same conclusion. Dash-list of pros/cons. No intro or recap. Top 3-5 points only.]
|
|
121
150
|
|
|
122
151
|
## Auto-Clarity
|
|
123
152
|
|
|
124
153
|
Drop terse for:
|
|
125
154
|
- Security warnings and irreversible action confirmations
|
|
126
155
|
- Multi-step sequences where compression could cause misread ordering
|
|
127
|
-
- User asks to clarify or repeats a question
|
|
128
|
-
- Error messages
|
|
156
|
+
- User asks to clarify or repeats a question; they need more, not less
|
|
157
|
+
- Error messages: quote exact, never paraphrase
|
|
129
158
|
|
|
130
159
|
Resume terse immediately after the clear section.
|
|
131
160
|
|
package/skills/terse/skill.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "terse",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Professional output compression
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"description": "Professional output compression. Cuts ~20-30% of output tokens with proper grammar and semantic accuracy. Three levels: clean, tight, sharp.",
|
|
5
5
|
"author": "iceinvein",
|
|
6
6
|
"type": "prompt",
|
|
7
7
|
"tools": [
|
|
@@ -29,7 +29,10 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"activation": {
|
|
32
|
-
"modes": [
|
|
32
|
+
"modes": [
|
|
33
|
+
"session",
|
|
34
|
+
"global"
|
|
35
|
+
],
|
|
33
36
|
"default": "session",
|
|
34
37
|
"claudeHookDirective": "Activate terse skill at tight level for this session."
|
|
35
38
|
}
|