arsenals 1.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.
@@ -0,0 +1,312 @@
1
+ ---
2
+ name: skill-seekers
3
+ description: >
4
+ Use this skill whenever the user wants Claude to learn, master, or absorb an unfamiliar framework, library,
5
+ internal tool, API, or large codebase from documentation, PDFs, or source code. Triggers when the user says
6
+ "learn this framework", "ingest these docs", "read this documentation", "master our internal library",
7
+ "study this codebase", "absorb this PDF", "understand our custom framework before implementing", or provides
8
+ a docs URL, a folder of PDFs, or a large repo and asks Claude to become fluent in it. Also triggers when another
9
+ skill or agent (e.g. Raphael / jira-to-code) needs domain knowledge it doesn't have before it can proceed.
10
+ The output is a distilled, reusable knowledge artifact that turns scattered source material into something
11
+ Claude can immediately apply.
12
+ ---
13
+
14
+ # Skill Seekers
15
+
16
+ Dynamically ingest documentation, PDFs, or large codebases and distill them into a reusable knowledge artifact, so Claude can immediately operate inside an unfamiliar framework, internal tool, or proprietary stack.
17
+
18
+ This skill turns "I don't know your custom framework" into "I've read it, here's how it works, let's go" — in one pass.
19
+
20
+ ---
21
+
22
+ ## What this skill produces
23
+
24
+ The output adapts to the source, but always lands in one of these forms (often a combination):
25
+
26
+ ```
27
+ 1. KNOWLEDGE PACK (.md) → A structured, searchable reference Claude reads to operate fluently.
28
+ Default output. Lives at ./knowledge/[name]-knowledge.md
29
+ 2. CHEATSHEET (.md) → A condensed quick-reference for fast recall (APIs, patterns, gotchas).
30
+ 3. GENERATED SKILL (.skill or SKILL.md) → When the material is stable and reusable across sessions,
31
+ package the knowledge as its own installable skill.
32
+ ```
33
+
34
+ Decision rule:
35
+ - **One-off task** (learn it for this ticket) → Knowledge Pack + Cheatsheet
36
+ - **Will be reused often** (your team's core internal framework) → also generate an installable Skill
37
+ - Always ask the user at the end: "Want me to package this as a permanent skill?"
38
+
39
+ ---
40
+
41
+ ## Phase Overview
42
+
43
+ ```
44
+ Phase 1: SCOPE → Identify sources, set boundaries, estimate size
45
+ Phase 2: INGEST → Pull in docs / PDFs / code systematically
46
+ Phase 3: DISTILL → Extract concepts, APIs, patterns, conventions, gotchas
47
+ Phase 4: STRUCTURE → Organize into the Knowledge Pack
48
+ Phase 5: VERIFY → Self-test comprehension, fill gaps, flag uncertainty
49
+ Phase 6: DELIVER → Output artifact(s) + offer to package as a skill
50
+ ```
51
+
52
+ ---
53
+
54
+ ## Phase 1: SCOPE — Define what to ingest
55
+
56
+ **Goal:** Know the boundaries before pulling anything in, so the ingest is targeted, not a firehose.
57
+
58
+ ### Determine sources
59
+
60
+ | Source type | How to access |
61
+ |---|---|
62
+ | Hosted docs (URL) | Fetch the entry page, map the nav/sitemap, list the sections to read |
63
+ | PDFs / local files | List files, get page counts / sizes, identify which are relevant |
64
+ | Code repository | Map the directory tree, identify entry points, public API surface, and docs folders |
65
+
66
+ ### Set boundaries (ask if unclear)
67
+ - What specifically does the user need to master? (the whole framework, or just the auth module?)
68
+ - Is there a version that matters? (v2 docs vs v3)
69
+ - Depth: API-level fluency, or deep internals?
70
+
71
+ ### Size estimate & strategy
72
+ ```
73
+ INGEST PLAN
74
+ ───────────
75
+ Sources : [list — URLs, file paths, repo path]
76
+ Estimated size: [page count / file count / LOC]
77
+ Scope : [full | scoped to: ...]
78
+ Strategy : [exhaustive read | breadth-first map then deep-dive relevant parts]
79
+ Version : [if relevant]
80
+ ```
81
+
82
+ > **Large-source rule:** If the source is huge (a 500-page PDF, a 10k-file repo, an entire docs site), do NOT read everything linearly. Map the structure first, then read the high-value parts (core concepts, public API, patterns) and skim the rest. State this strategy upfront.
83
+
84
+ ---
85
+
86
+ ## Phase 2: INGEST — Pull in the material
87
+
88
+ **Goal:** Get the source content into context systematically, prioritizing signal over completeness.
89
+
90
+ ### For hosted docs (URLs)
91
+ 1. Fetch the landing/overview page
92
+ 2. Extract the navigation structure (sitemap, sidebar, table of contents)
93
+ 3. Prioritize reading order: **Concepts → Getting Started → Core API → Guides → Advanced → Reference**
94
+ 4. Fetch pages in priority order; for reference-heavy pages, extract the API signatures and skip prose
95
+
96
+ ```bash
97
+ # If in Claude Code with a local docs mirror
98
+ find . -name "*.md" -o -name "*.mdx" | grep -i "doc" | head -50
99
+ ```
100
+
101
+ ### For PDFs / local files
102
+ ```bash
103
+ # Inventory first
104
+ ls -la *.pdf
105
+ # Use the pdf-reading approach: get a content inventory before extracting everything
106
+ ```
107
+ - Read the table of contents / outline first
108
+ - Extract text section by section, prioritizing concept and API chapters
109
+ - For scanned PDFs, note if OCR is needed
110
+ - Pull out diagrams/tables descriptions — they often encode the architecture
111
+
112
+ ### For code repositories
113
+ ```bash
114
+ # 1. Map the structure
115
+ find . -maxdepth 3 -type d -not -path "*/node_modules/*" -not -path "*/vendor/*" \
116
+ -not -path "*/.git/*" 2>/dev/null
117
+
118
+ # 2. Read the manifest & README first
119
+ cat README.md package.json composer.json pyproject.toml go.mod 2>/dev/null | head -100
120
+
121
+ # 3. Find the public API surface / entry points
122
+ find . -name "index.*" -o -name "main.*" -o -name "*.d.ts" 2>/dev/null | grep -v node_modules | head -20
123
+
124
+ # 4. Find the docs and examples folders
125
+ find . -type d \( -iname "docs" -o -iname "examples" -o -iname "samples" \) 2>/dev/null | head -10
126
+ ```
127
+ - Read entry points and public exports first — that's the contract
128
+ - Read 3–5 representative implementations to learn the internal style
129
+ - Read the tests — they document intended behavior better than comments
130
+
131
+ ### Ingest discipline
132
+ - Track what you've read so you don't re-read or miss sections
133
+ - If context fills up, distill-as-you-go (Phase 3) rather than holding everything raw
134
+ - Note anything you couldn't access (paywalled, auth-required, broken link) — don't silently skip
135
+
136
+ ---
137
+
138
+ ## Phase 3: DISTILL — Extract what matters
139
+
140
+ **Goal:** Convert raw material into structured knowledge. This is where ingestion becomes understanding.
141
+
142
+ For everything ingested, extract:
143
+
144
+ ```
145
+ CONCEPTS
146
+ - The mental model: what is this framework/tool, what problem does it solve, core abstractions
147
+ - Key terminology and what each term means in THIS framework's vocabulary
148
+
149
+ PUBLIC API / INTERFACE
150
+ - Main entry points, classes, functions, hooks, endpoints
151
+ - Signatures with parameter meanings and return types
152
+ - The "you'll use these 20% of things 80% of the time" core set
153
+
154
+ PATTERNS & CONVENTIONS
155
+ - The idiomatic way to do common tasks ("the framework wants you to...")
156
+ - Naming conventions, file organization, configuration style
157
+ - How errors are handled, how things are tested, how things are extended
158
+
159
+ INTEGRATION POINTS
160
+ - How it connects to other systems (DB, auth, HTTP, events)
161
+ - Required setup / config / environment
162
+
163
+ GOTCHAS & FOOTGUNS
164
+ - Common mistakes, anti-patterns, deprecated approaches
165
+ - Version-specific quirks
166
+ - Things that look like they should work but don't
167
+
168
+ EXAMPLES
169
+ - 2–4 canonical, copy-adaptable code examples of the most common operations
170
+ ```
171
+
172
+ > **Vocabulary rule:** Internal/custom frameworks often reuse common words with special meaning ("Resource", "Module", "Action" may mean something specific here). Capture the framework's own definitions, not the generic ones.
173
+
174
+ ---
175
+
176
+ ## Phase 4: STRUCTURE — Build the Knowledge Pack
177
+
178
+ **Goal:** Organize the distilled knowledge into a clean, navigable artifact.
179
+
180
+ ### Knowledge Pack template
181
+ ```markdown
182
+ # [Framework/Tool Name] — Knowledge Pack
183
+ > Source: [URLs/files/repo] · Version: [x] · Ingested: [date] · Scope: [full/partial]
184
+
185
+ ## 1. Mental Model
186
+ [2–4 paragraphs: what it is, what problem it solves, core abstractions]
187
+
188
+ ## 2. Vocabulary
189
+ [Term → meaning in this framework]
190
+
191
+ ## 3. Core API (the 80/20)
192
+ [The most-used entry points with signatures and one-line purpose each]
193
+
194
+ ## 4. Idiomatic Patterns
195
+ [How the framework wants common things done, with short examples]
196
+
197
+ ## 5. Setup & Configuration
198
+ [What's needed to use it — env, config, dependencies]
199
+
200
+ ## 6. Integration Points
201
+ [How it talks to DB / auth / HTTP / other systems]
202
+
203
+ ## 7. Gotchas & Footguns
204
+ [Mistakes to avoid, version quirks, deprecated things]
205
+
206
+ ## 8. Canonical Examples
207
+ [2–4 copy-adaptable examples of the most common operations]
208
+
209
+ ## 9. Open Questions / Not Covered
210
+ [What wasn't accessible or remains uncertain — be honest]
211
+
212
+ ## 10. Source Map
213
+ [Where each piece of knowledge came from, for deeper lookup later]
214
+ ```
215
+
216
+ Keep it dense but scannable. This file is meant to be **read by Claude (or Raphael) at the start of a task** to gain instant fluency, and by a human as a reference.
217
+
218
+ ### Optional Cheatsheet
219
+ A 1-page condensed version: just the API table, the top patterns, and the top gotchas. For fast recall.
220
+
221
+ ---
222
+
223
+ ## Phase 5: VERIFY — Test comprehension & flag gaps
224
+
225
+ **Goal:** Don't claim mastery you don't have. Pressure-test the knowledge.
226
+
227
+ ### Self-test
228
+ Pose and answer (internally) the questions a developer would actually hit:
229
+ - "How do I do [the most common task] in this framework?"
230
+ - "How do I handle errors / validation / auth the way this framework expects?"
231
+ - "What's the idiomatic way to extend or configure it?"
232
+ - "What would break if I did it the naive/generic way?"
233
+
234
+ If any answer is shaky, go back to Phase 2 and read more on that area.
235
+
236
+ ### Honesty about gaps
237
+ Explicitly list:
238
+ - Sections that weren't accessible
239
+ - Areas where the docs were ambiguous or contradictory
240
+ - Version uncertainty
241
+ - Anything inferred vs directly stated
242
+
243
+ > **No false confidence rule:** It's far better to say "the docs didn't cover X clearly" than to invent how X works. A flagged gap is useful; a confident hallucination is dangerous.
244
+
245
+ ---
246
+
247
+ ## Phase 6: DELIVER — Output & optionally package
248
+
249
+ **Goal:** Hand over the artifact and decide whether it becomes permanent.
250
+
251
+ 1. Write the Knowledge Pack to `./knowledge/[name]-knowledge.md` (Claude Code) or present it inline / as a downloadable file (Claude.ai)
252
+ 2. Optionally write the Cheatsheet
253
+ 3. Give a short summary: what was ingested, what the user can now ask Claude to do with it, and what the known gaps are
254
+ 4. Offer packaging:
255
+ > "This knowledge is reusable. Want me to package it as a permanent installable skill so you don't have to re-ingest it next time?"
256
+ If yes, generate a `SKILL.md` whose description triggers on the framework's name and whose body is the Knowledge Pack.
257
+
258
+ ### Handoff to Raphael / other agents
259
+ If this ingestion was requested so another agent (like Raphael) can implement against the framework, end with:
260
+ ```
261
+ KNOWLEDGE READY → [agent]
262
+ ─────────────────────────
263
+ Framework : [name]
264
+ Knowledge at: ./knowledge/[name]-knowledge.md
265
+ Use this to : [what the agent can now do — e.g. "implement tickets using our internal Resource framework idiomatically"]
266
+ Known gaps : [list]
267
+ ```
268
+
269
+ ---
270
+
271
+ ## Running Modes
272
+
273
+ | Mode | Behavior |
274
+ |---|---|
275
+ | **Full ingest** | All 6 phases. Use for a framework you'll work in repeatedly. |
276
+ | **Quick brief** | Phases 1–3 only, output a Cheatsheet. Use when you just need fast orientation. |
277
+ | **Just-in-time** | Triggered mid-task by another agent. Scope to exactly what's needed, produce a focused Knowledge Pack section, hand back. |
278
+ | **Refresh** | Re-ingest only changed/new sections of a previously ingested source; update the existing Knowledge Pack. |
279
+
280
+ ---
281
+
282
+ ## Environment Notes
283
+
284
+ - **Claude Code:** Can read local files/repos directly, write the Knowledge Pack to `./knowledge/`, and persist it across sessions. Preferred for large codebases and PDF folders.
285
+ - **Claude.ai:** Fetch URLs via web tools, accept uploaded PDFs/files, output the Knowledge Pack as a downloadable artifact. For huge sources, ingest in scoped batches across messages.
286
+
287
+ ---
288
+
289
+ ## Error Handling
290
+
291
+ | Situation | Action |
292
+ |---|---|
293
+ | Docs require login/paywall | Flag it, ask user to paste the relevant pages or provide access |
294
+ | PDF is scanned (no text layer) | Note OCR is needed; use OCR before extracting |
295
+ | Source is enormous (>500pg / >10k files) | Switch to breadth-first map + targeted deep-dive; state the strategy |
296
+ | Docs contradict the code | Trust the code for behavior, note the doc discrepancy |
297
+ | Version ambiguity | Ask which version, or ingest the one in the repo and label it |
298
+ | Context fills mid-ingest | Distill-as-you-go; write partial Knowledge Pack, continue in next pass |
299
+ | Conflicting info across sources | Present both, mark which source said what, flag for user |
300
+
301
+ ---
302
+
303
+ ## Quick Reference Cheatsheet
304
+
305
+ ```
306
+ Phase 1 → Scope → sources, boundaries, size, strategy
307
+ Phase 2 → Ingest → docs/PDFs/code, signal over completeness
308
+ Phase 3 → Distill → concepts, API, patterns, gotchas, vocabulary
309
+ Phase 4 → Structure→ Knowledge Pack (mental model → examples → gaps)
310
+ Phase 5 → Verify → self-test, flag gaps honestly, no false confidence
311
+ Phase 6 → Deliver → output artifact + offer to package as permanent skill
312
+ ```
@@ -0,0 +1,144 @@
1
+ ---
2
+ name: ticket-writer
3
+ description: >
4
+ Use this skill ONLY on explicit invocation via "/ticket" or "write a ticket for [X]" /
5
+ "draft a ticket for [X]". Given just a ticket title, scans the current repo/codebase to
6
+ ground the ticket in what actually exists, then produces a ready-to-paste Jira-style
7
+ ticket with Description, Acceptance Criteria, and Technical Implementation sections.
8
+ This is the inverse of the jira-to-code skill (which goes ticket → code); this one goes
9
+ title → ticket. Do not trigger on generic phrasing like "explain this feature" or
10
+ "what's the plan for X" — only on explicit ticket-writing requests.
11
+ ---
12
+
13
+ # Ticket Writer Skill
14
+
15
+ Takes a bare ticket title and turns it into a fully-formed ticket by reading the codebase
16
+ for context — so the ticket reflects what's actually there, not just a guess from the title
17
+ alone. Output is chat-only markdown, ready to paste straight into Jira. No files are created.
18
+
19
+ ---
20
+
21
+ ## Workflow
22
+
23
+ ```
24
+ 1. PARSE TITLE → Infer ticket type (Bug/Feature/Task) and likely scope from the title
25
+ 2. SCAN REPO → Find relevant files, existing patterns, current behavior
26
+ 3. DRAFT TICKET → Description, Acceptance Criteria, Technical Implementation
27
+ 4. OUTPUT → Clean markdown block in chat, nothing else
28
+ ```
29
+
30
+ No checkpoints, no file output — this is meant to be fast. Only pause and ask the user if
31
+ the title is genuinely too ambiguous to scope (see Error Handling).
32
+
33
+ ---
34
+
35
+ ## Step 1 — Parse the Title
36
+
37
+ From the title alone, infer:
38
+ - **Type**: Bug (title implies broken/incorrect behavior) / Feature (new capability) /
39
+ Task (refactor, chore, infra)
40
+ - **Likely domain**: which part of the system this touches (auth, billing, a specific
41
+ admin panel/site, an integration, etc.) — use whatever domain vocabulary appears in the
42
+ title to guide the repo scan in Step 2
43
+
44
+ If the user provides more than a title (extra context, a pasted Slack thread, a rough
45
+ description), fold that in — treat the title as the anchor but use all provided context.
46
+
47
+ ---
48
+
49
+ ## Step 2 — Scan the Repo
50
+
51
+ **Goal:** ground the ticket in what's actually in the codebase, the same way `jira-to-code`
52
+ grounds implementation in the codebase — just run in reverse.
53
+
54
+ ```bash
55
+ # Stack + structure (skip if already known from this conversation)
56
+ find . -maxdepth 2 -not -path '*/vendor/*' -not -path '*/node_modules/*' -not -path '*/.git/*'
57
+
58
+ # Search for anything matching the title's domain keywords
59
+ grep -rn "[keyword]" --include="*.php" -l | head -20
60
+ ```
61
+
62
+ Use the title's keywords to find:
63
+ - **Existing related code**: models, Actions, DTOs, Filament resources, controllers, routes
64
+ already touching this area
65
+ - **Current behavior**: if it's a bug, what does the code currently do (trace the actual
66
+ logic, don't guess)
67
+ - **Existing patterns to follow**: how similar features/fixes were structured elsewhere in
68
+ this codebase (Actions pattern, DDD boundaries, spatie/laravel-data DTOs, Filament
69
+ resource conventions — match what this project already does)
70
+ - **What's missing**: for a Feature ticket, confirm the capability genuinely doesn't exist
71
+ yet (avoid writing a ticket for something already built)
72
+
73
+ If nothing relevant turns up, say so plainly in the draft rather than inventing context.
74
+
75
+ ---
76
+
77
+ ## Step 3 — Draft the Ticket
78
+
79
+ ### Description
80
+ 2–4 sentences, plain language. What is being asked for and why, written from what the
81
+ title + repo scan actually support — not padded with generic filler. For a bug, describe
82
+ the current (wrong) behavior found in the code. For a feature, describe the gap and the
83
+ proposed capability.
84
+
85
+ ### Acceptance Criteria
86
+ - Numbered, each one independently testable
87
+ - Written as observable outcomes ("Given X, when Y, then Z" or plain checklist form —
88
+ match whichever style fits the ticket, checklist is the default)
89
+ - Cover the happy path, at least one edge case, and any explicit non-functional requirement
90
+ implied by the title (e.g. performance, permissions)
91
+ - If the repo scan revealed an existing partial implementation, one AC should cover
92
+ completing/fixing that specific gap rather than restating the obvious
93
+
94
+ ### Technical Implementation
95
+ - Grounded in what Step 2 actually found — name real files/classes/patterns, not generic
96
+ advice
97
+ - Structure as: **Affected areas** (files/modules likely touched), **Approach** (2–4
98
+ sentences on how this fits existing patterns — Actions/DTOs/Filament conventions as
99
+ relevant), **Open questions** (anything the repo scan couldn't resolve — flag rather
100
+ than guess)
101
+ - This section is a starting point for whoever implements it (including `jira-to-code`
102
+ downstream) — not a full implementation plan. Keep it tight.
103
+
104
+ ---
105
+
106
+ ## Step 4 — Output Format
107
+
108
+ Output only this block, nothing before or after except a one-line intro:
109
+
110
+ ```markdown
111
+ ## [Title as given]
112
+
113
+ **Type**: [Bug | Feature | Task]
114
+
115
+ ### Description
116
+ [2-4 sentences]
117
+
118
+ ### Acceptance Criteria
119
+ - [ ] AC 1
120
+ - [ ] AC 2
121
+ - [ ] AC 3
122
+
123
+ ### Technical Implementation
124
+ **Affected areas**
125
+ - `[path/file]` — [why]
126
+ - `[path/file]` — [why]
127
+
128
+ **Approach**
129
+ [2-4 sentences, grounded in repo patterns found]
130
+
131
+ **Open questions**
132
+ - [question, if any — omit section if none]
133
+ ```
134
+
135
+ ---
136
+
137
+ ## Error Handling
138
+
139
+ | Situation | Action |
140
+ |---|---|
141
+ | Title is too vague to scope (e.g. "Fix bug") | Ask one clarifying question: *"Which part of the app — can you point me to a file, feature, or error?"* Don't guess a domain. |
142
+ | No relevant code found for the domain | Say so in Description ("no existing code found touching X — this appears to be net-new") rather than inventing file paths |
143
+ | Title implies something already fully implemented | Flag it before drafting: *"This looks like it may already be built — [file/path] appears to handle this. Still want a ticket, or is this about extending it?"* |
144
+ | Repo not available / no code context in this session | Draft the ticket from the title alone, clearly note "⚠️ No repo scan — grounded in title only" at the top of the Technical Implementation section |