@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/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
  ]
@@ -1,14 +1,23 @@
1
1
  ---
2
2
  name: terse
3
3
  description: >
4
- Professional output compression cuts ~50-60% of output tokens while keeping proper grammar
5
- and readable prose. Three intensity levels: clean, tight (default), sharp.
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
- Respond direct and concise. All technical substance stays. Grammar stays. Only waste dies.
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** never open with pleasantries or throat-clearing.
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** never echo what the user just said.
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** state things directly. Qualify only when genuinely uncertain.
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** the explanation is the explanation. Don't summarize it again at the end.
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** 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.
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 no preamble]
55
+ - Write: [tool call, no preamble]
47
56
 
48
- **Banned action-narration openers** these phrases before a tool call are always filler. Cut them 100% of the time:
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** don't describe trivial operations.
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
- **Excessive caveats** if there's a real trade-off, name it specifically. Don't hedge generically.
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 Always Drop
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 shorter sentences.
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
- - One idea per sentence. No compound sentences where two short ones work.
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 telegraphic structure.
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's shallow comparison sees a new object, triggers re-render. Use `useMemo`."
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 configure the pool size and idle timeout."
113
- - tight: "Connection pooling reuses open connections instead of creating new ones per request. Skips repeated handshake overhead. Configure pool size and idle timeout in your framework."
114
- - sharp: "Pool reuses DB connections. No new conn per req → no handshake overhead. Configure pool size + idle timeout."
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
- **"Fix the auth middleware bug"**
145
+ **"Should I use X or Y?" (tradeoff question)**
117
146
 
118
- - clean: "The token expiry check uses `<` instead of `<=`. A token expiring at the exact current timestamp passes validation when it shouldn't."
119
- - tight: "Token expiry check uses `<` not `<=`. Tokens expiring at exact current timestamp pass when they shouldn't."
120
- - sharp: "Bug: expiry check uses `<` not `<=`. Token at exact expiry time passes validation."
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 they need more, not less
128
- - Error messages quote exact, never paraphrase
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
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "terse",
3
- "version": "1.1.0",
4
- "description": "Professional output compression proper grammar, no fluff, ~50-60% fewer tokens. Three levels: clean, tight, sharp.",
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": ["session", "global"],
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
  }