@maggit/claude-workspace 0.1.1

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.
Files changed (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +228 -0
  3. package/assets/claude-md/default.md +34 -0
  4. package/assets/claude-md/engineering-exec.md +34 -0
  5. package/assets/claude-md/indie-maker.md +33 -0
  6. package/assets/claude-md/marketing.md +33 -0
  7. package/assets/profiles/default.json +46 -0
  8. package/assets/profiles/engineering-exec.json +42 -0
  9. package/assets/profiles/indie-maker.json +32 -0
  10. package/assets/profiles/marketing.json +27 -0
  11. package/assets/skills/adr/SKILL.md +66 -0
  12. package/assets/skills/apidoc/SKILL.md +78 -0
  13. package/assets/skills/changelog/SKILL.md +54 -0
  14. package/assets/skills/commit/SKILL.md +18 -0
  15. package/assets/skills/completetodo/SKILL.md +75 -0
  16. package/assets/skills/createtodo/SKILL.md +79 -0
  17. package/assets/skills/deadcode/SKILL.md +56 -0
  18. package/assets/skills/debug/SKILL.md +62 -0
  19. package/assets/skills/deps/SKILL.md +66 -0
  20. package/assets/skills/e2e/SKILL.md +68 -0
  21. package/assets/skills/eng-spec/SKILL.md +93 -0
  22. package/assets/skills/envcheck/SKILL.md +65 -0
  23. package/assets/skills/explain/SKILL.md +52 -0
  24. package/assets/skills/landing-page-copy/SKILL.md +95 -0
  25. package/assets/skills/meeting-notes/SKILL.md +90 -0
  26. package/assets/skills/migration/SKILL.md +61 -0
  27. package/assets/skills/openpr/SKILL.md +143 -0
  28. package/assets/skills/opentodos/SKILL.md +79 -0
  29. package/assets/skills/perf/SKILL.md +58 -0
  30. package/assets/skills/prd/SKILL.md +71 -0
  31. package/assets/skills/readme/SKILL.md +55 -0
  32. package/assets/skills/rebase/SKILL.md +59 -0
  33. package/assets/skills/release/SKILL.md +64 -0
  34. package/assets/skills/release-plan/SKILL.md +107 -0
  35. package/assets/skills/requirements/SKILL.md +77 -0
  36. package/assets/skills/seo-brief/SKILL.md +88 -0
  37. package/assets/skills/standup/SKILL.md +48 -0
  38. package/assets/skills/storecontext/SKILL.md +76 -0
  39. package/assets/skills/summary/SKILL.md +72 -0
  40. package/assets/skills/test/SKILL.md +55 -0
  41. package/assets/skills/testcoverage/SKILL.md +57 -0
  42. package/assets/skills/todo/SKILL.md +84 -0
  43. package/assets/templates/DECISION_RECORD_TEMPLATE.md +59 -0
  44. package/assets/templates/ENG_SPEC_TEMPLATE.md +84 -0
  45. package/assets/templates/PRD_TEMPLATE.md +72 -0
  46. package/assets/templates/PROJECT_INDEX_TEMPLATE.md +65 -0
  47. package/assets/templates/WEEKLY_REVIEW_TEMPLATE.md +57 -0
  48. package/assets/vault/README.md +34 -0
  49. package/assets/vault/_index.md +27 -0
  50. package/dist/bin.js +888 -0
  51. package/dist/bin.js.map +1 -0
  52. package/package.json +60 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Raquel Hernandez
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,228 @@
1
+ # Claude Workspace
2
+
3
+ **Dotfiles for Claude** — scaffold a structured AI workspace into any project with one command.
4
+
5
+ Claude Workspace sets up everything you need to work effectively with Claude: a Markdown knowledge vault, curated skills (promptable playbooks), document templates, and a ready-to-use `CLAUDE.example.md`. It's idempotent, profile-based, and designed for teams and solo builders alike.
6
+
7
+ ---
8
+
9
+ ## Quick Start
10
+
11
+ ```bash
12
+ npx @maggit/claude-workspace init
13
+ ```
14
+
15
+ That's it. You'll be prompted to pick a profile and vault name, and your workspace is ready.
16
+
17
+ For non-interactive setup:
18
+
19
+ ```bash
20
+ npx @maggit/claude-workspace init --profile engineering-exec --yes
21
+ ```
22
+
23
+ ## What You Get
24
+
25
+ ```
26
+ your-project/
27
+ ├── CLAUDE.example.md # Workspace instructions for Claude (rename to CLAUDE.md)
28
+ ├── .claude/
29
+ │ ├── config.json # Workspace configuration
30
+ │ ├── skills/ # Promptable mini-playbooks
31
+ │ │ ├── prd/SKILL.md
32
+ │ │ ├── eng-spec/SKILL.md
33
+ │ │ └── ...
34
+ │ ├── templates/ # Document templates
35
+ │ │ ├── PRD_TEMPLATE.md
36
+ │ │ ├── ENG_SPEC_TEMPLATE.md
37
+ │ │ └── ...
38
+ │ ├── snippets/ # Your snippets (empty)
39
+ │ ├── logs/ # Your logs (empty)
40
+ │ └── profiles/
41
+ │ └── active.json # Tracks installed files for idempotency
42
+ └── ContextDB/ # Markdown knowledge vault
43
+ ├── README.md
44
+ ├── _index.md
45
+ ├── 00_inbox/
46
+ ├── 01_specs/
47
+ ├── 02_architecture/
48
+ ├── 03_decisions/
49
+ ├── 04_knowledge/
50
+ ├── 05_prompts/
51
+ ├── 06_agents/
52
+ ├── 07_diagrams/
53
+ └── 08_todos/
54
+ ```
55
+
56
+ ## Setting Up CLAUDE.md
57
+
58
+ Claude Workspace never touches your `CLAUDE.md`. It writes `CLAUDE.example.md` so you stay in control.
59
+
60
+ **New project** — rename it:
61
+
62
+ ```bash
63
+ mv CLAUDE.example.md CLAUDE.md
64
+ ```
65
+
66
+ **Existing project with a CLAUDE.md** — open `CLAUDE.example.md` and merge the parts you want (vault references, skill instructions, conventions) into your existing file.
67
+
68
+ ## Profiles
69
+
70
+ Profiles determine which skills and templates get installed:
71
+
72
+ | Profile | Skills | Best for |
73
+ |---------|--------|----------|
74
+ | **default** | All 9 skills, all 5 templates | Full workspace — everything included |
75
+ | **engineering-exec** | PRD, eng-spec, requirements, todo, release-plan | Engineering leads and architects |
76
+ | **indie-maker** | PRD, todo, summary, release-plan | Solo builders shipping fast |
77
+ | **marketing** | PRD, SEO brief, landing page copy, summary, meeting notes | Content and growth teams |
78
+
79
+ ```bash
80
+ # Use a specific profile
81
+ cws init --profile marketing
82
+ ```
83
+
84
+ ## Skills
85
+
86
+ Skills are Markdown playbooks that teach Claude how to produce specific document types. They live in `.claude/skills/` and are referenced by name:
87
+
88
+ | Skill | Produces |
89
+ |-------|----------|
90
+ | `prd.md` | Product Requirements Documents |
91
+ | `eng-spec.md` | Engineering Specifications |
92
+ | `requirements.md` | Structured Requirements |
93
+ | `todo.md` | Task Breakdowns |
94
+ | `summary.md` | Summaries and Recaps |
95
+ | `meeting-notes.md` | Meeting Notes |
96
+ | `release-plan.md` | Release Plans |
97
+ | `seo-brief.md` | SEO Content Briefs |
98
+ | `landing-page-copy.md` | Landing Page Copy |
99
+
100
+ ## Commands
101
+
102
+ ### `init`
103
+
104
+ Scaffold a workspace. Safe to run multiple times — existing files are preserved, unchanged managed files are skipped.
105
+
106
+ ```bash
107
+ cws init [options]
108
+ ```
109
+
110
+ | Option | Description | Default |
111
+ |--------|-------------|---------|
112
+ | `-d, --dir <path>` | Target directory | `.` |
113
+ | `-p, --profile <name>` | Profile | `default` |
114
+ | `--vault <name>` | Vault folder name | `ContextDB` |
115
+ | `--force` | Overwrite user-modified managed files (backs up first) | `false` |
116
+ | `--dry-run` | Preview what would happen | `false` |
117
+ | `-y, --yes` | Skip prompts, use defaults | `false` |
118
+
119
+ ### `doctor`
120
+
121
+ Check that your workspace is healthy:
122
+
123
+ ```bash
124
+ cws doctor
125
+ ```
126
+
127
+ ```
128
+ PASS .claude/ directory exists
129
+ PASS config.json valid (profile: default)
130
+ PASS All 9 skill files present
131
+ PASS All 5 template files present
132
+ PASS Vault directory exists: ContextDB/
133
+ PASS All 9 vault subfolders present
134
+ PASS CLAUDE.md present
135
+ ```
136
+
137
+ ### `add-skill`
138
+
139
+ Install a single skill without running a full `init`:
140
+
141
+ ```bash
142
+ cws add-skill prd
143
+ cws add-skill --list
144
+ ```
145
+
146
+ | Option | Description | Default |
147
+ |--------|-------------|---------|
148
+ | `-d, --dir <path>` | Target directory | `.` |
149
+ | `--force` | Overwrite existing skill (backs up first) | `false` |
150
+ | `--dry-run` | Preview what would happen | `false` |
151
+ | `-l, --list` | List all available skills | `false` |
152
+
153
+ ### `print-claude-md`
154
+
155
+ Preview the CLAUDE.md content for a profile without writing any files:
156
+
157
+ ```bash
158
+ cws print-claude-md --profile indie-maker
159
+ ```
160
+
161
+ ## Installation
162
+
163
+ ### npx (recommended)
164
+
165
+ ```bash
166
+ npx @maggit/claude-workspace init
167
+ ```
168
+
169
+ ### Global install
170
+
171
+ ```bash
172
+ npm install -g @maggit/claude-workspace
173
+ cws init
174
+ ```
175
+
176
+ ### Clone and run
177
+
178
+ ```bash
179
+ git clone https://github.com/raquelhernandez/claude-workstation.git
180
+ cd claude-workstation
181
+ pnpm install && pnpm build
182
+ node packages/cli/dist/bin.js init --dir ~/my-project
183
+ ```
184
+
185
+ ## Idempotency
186
+
187
+ Running `init` again is always safe:
188
+
189
+ - **Managed files** (skills, templates) are tracked by SHA-256 hash. If the file hasn't changed, it's skipped.
190
+ - **User-modified files** are detected and preserved. Use `--force` to overwrite (a `.bak` backup is created first).
191
+ - **Unmanaged files** (existing skills not tracked by the CLI) are skipped with a warning. Use `--force` to overwrite, or delete them and re-run.
192
+ - **CLAUDE.example.md** is regenerated on each run — it's the reference file, not your working file.
193
+ - **Vault folders** are created if missing, never deleted.
194
+
195
+ ## Customization
196
+
197
+ See [docs/customization.md](docs/customization.md) for:
198
+
199
+ - Creating custom profiles
200
+ - Writing new skills
201
+ - Adding templates
202
+ - Changing vault structure
203
+ - Custom CLAUDE.md templates
204
+
205
+ ## ContextLoom
206
+
207
+ Claude Workspace is designed to work with [ContextLoom](https://contextloom.app), a Markdown editor for managing project context. The vault taxonomy and file conventions are fully compatible. See [docs/contextloom.md](docs/contextloom.md) for details.
208
+
209
+ ## Contributing
210
+
211
+ Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on:
212
+
213
+ - Setting up the development environment
214
+ - Adding skills, templates, and profiles
215
+ - Code style and testing expectations
216
+ - Pull request process
217
+
218
+ ## Development
219
+
220
+ ```bash
221
+ pnpm install # Install dependencies
222
+ pnpm build # Build (copies assets + compiles TypeScript)
223
+ pnpm test # Run all tests
224
+ ```
225
+
226
+ ## License
227
+
228
+ [MIT](LICENSE)
@@ -0,0 +1,34 @@
1
+ # Project Workspace
2
+
3
+ This workspace is managed by [claude-workstation](https://github.com/raquelhernandez/claude-workstation).
4
+
5
+ ## Vault
6
+
7
+ All project context lives in `{{vaultPath}}/`. This is a structured Markdown vault designed for both humans and AI tools.
8
+
9
+ ### Folder Taxonomy
10
+
11
+ {{folderList}}
12
+
13
+ ### Naming Conventions
14
+
15
+ {{namingConvention}}
16
+
17
+ ## Skills
18
+
19
+ Skills are promptable mini-playbooks installed in `.claude/skills/`. Use them by referencing the skill name when asking Claude to produce a specific document type.
20
+
21
+ {{skillInstructions}}
22
+
23
+ ## Templates
24
+
25
+ Document templates are available in `.claude/templates/`. Copy a template to start a new document with the right structure.
26
+
27
+ ## Working Agreements
28
+
29
+ - Always read relevant context from the vault before starting work
30
+ - Write new context documents back to the appropriate vault folder
31
+ - Use the installed skills when producing standard document types
32
+ - Follow the naming conventions above for new files
33
+ - Keep documents small and composable — one topic per file
34
+ - Use relative Markdown links between documents
@@ -0,0 +1,34 @@
1
+ # Engineering Workspace
2
+
3
+ This workspace is managed by [claude-workstation](https://github.com/raquelhernandez/claude-workstation) with the **engineering-exec** profile.
4
+
5
+ ## Vault
6
+
7
+ All project context lives in `{{vaultPath}}/`. This is a structured Markdown vault for specs, decisions, and engineering planning.
8
+
9
+ ### Folder Taxonomy
10
+
11
+ {{folderList}}
12
+
13
+ ### Naming Conventions
14
+
15
+ {{namingConvention}}
16
+
17
+ ## Skills
18
+
19
+ Skills are promptable mini-playbooks installed in `.claude/skills/`. Use them for producing engineering documents.
20
+
21
+ {{skillInstructions}}
22
+
23
+ ## Templates
24
+
25
+ Document templates are available in `.claude/templates/`. Use these for consistent spec and decision formatting.
26
+
27
+ ## Working Agreements
28
+
29
+ - Start with requirements and specs before implementation
30
+ - Record architectural decisions in the decisions folder
31
+ - Break work into tasks with clear acceptance criteria
32
+ - Write release plans before shipping
33
+ - Keep specs and requirements up to date as decisions evolve
34
+ - Review the project index weekly
@@ -0,0 +1,33 @@
1
+ # Maker Workspace
2
+
3
+ This workspace is managed by [claude-workstation](https://github.com/raquelhernandez/claude-workstation) with the **indie-maker** profile.
4
+
5
+ ## Vault
6
+
7
+ All project context lives in `{{vaultPath}}/`. A lightweight vault for fast-moving solo projects.
8
+
9
+ ### Folder Taxonomy
10
+
11
+ {{folderList}}
12
+
13
+ ### Naming Conventions
14
+
15
+ {{namingConvention}}
16
+
17
+ ## Skills
18
+
19
+ Skills are promptable mini-playbooks installed in `.claude/skills/`.
20
+
21
+ {{skillInstructions}}
22
+
23
+ ## Templates
24
+
25
+ Document templates are available in `.claude/templates/`. Use these to quickly scaffold new documents.
26
+
27
+ ## Working Agreements
28
+
29
+ - Keep planning lightweight — just enough structure to stay on track
30
+ - Write a quick PRD before building anything significant
31
+ - Maintain a running todo list for the current iteration
32
+ - Summarize what you shipped after each work session
33
+ - Plan releases even for solo projects — it clarifies scope
@@ -0,0 +1,33 @@
1
+ # Marketing Workspace
2
+
3
+ This workspace is managed by [claude-workstation](https://github.com/raquelhernandez/claude-workstation) with the **marketing** profile.
4
+
5
+ ## Vault
6
+
7
+ All project context lives in `{{vaultPath}}/`. A structured vault for content planning and marketing materials.
8
+
9
+ ### Folder Taxonomy
10
+
11
+ {{folderList}}
12
+
13
+ ### Naming Conventions
14
+
15
+ {{namingConvention}}
16
+
17
+ ## Skills
18
+
19
+ Skills are promptable mini-playbooks installed in `.claude/skills/`.
20
+
21
+ {{skillInstructions}}
22
+
23
+ ## Templates
24
+
25
+ Document templates are available in `.claude/templates/`. Use these for consistent content planning.
26
+
27
+ ## Working Agreements
28
+
29
+ - Research SEO keywords before writing content
30
+ - Create briefs before drafting landing pages or articles
31
+ - Document meeting outcomes and action items
32
+ - Summarize campaign results and learnings
33
+ - Keep the project index current with all active initiatives
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "default",
3
+ "description": "Full workspace with all skills and templates",
4
+ "skills": [
5
+ "prd",
6
+ "eng-spec",
7
+ "requirements",
8
+ "todo",
9
+ "summary",
10
+ "meeting-notes",
11
+ "release-plan",
12
+ "seo-brief",
13
+ "landing-page-copy",
14
+ "adr",
15
+ "apidoc",
16
+ "changelog",
17
+ "commit",
18
+ "completetodo",
19
+ "createtodo",
20
+ "deadcode",
21
+ "debug",
22
+ "deps",
23
+ "e2e",
24
+ "envcheck",
25
+ "explain",
26
+ "migration",
27
+ "openpr",
28
+ "opentodos",
29
+ "perf",
30
+ "readme",
31
+ "rebase",
32
+ "release",
33
+ "standup",
34
+ "storecontext",
35
+ "test",
36
+ "testcoverage"
37
+ ],
38
+ "templates": [
39
+ "PRD_TEMPLATE.md",
40
+ "ENG_SPEC_TEMPLATE.md",
41
+ "DECISION_RECORD_TEMPLATE.md",
42
+ "WEEKLY_REVIEW_TEMPLATE.md",
43
+ "PROJECT_INDEX_TEMPLATE.md"
44
+ ],
45
+ "claudeMdTemplate": "default.md"
46
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "engineering-exec",
3
+ "description": "Engineering leadership — specs, planning, and requirements",
4
+ "skills": [
5
+ "prd",
6
+ "eng-spec",
7
+ "requirements",
8
+ "todo",
9
+ "release-plan",
10
+ "adr",
11
+ "apidoc",
12
+ "changelog",
13
+ "commit",
14
+ "completetodo",
15
+ "createtodo",
16
+ "deadcode",
17
+ "debug",
18
+ "deps",
19
+ "e2e",
20
+ "envcheck",
21
+ "explain",
22
+ "migration",
23
+ "openpr",
24
+ "opentodos",
25
+ "perf",
26
+ "readme",
27
+ "rebase",
28
+ "release",
29
+ "standup",
30
+ "storecontext",
31
+ "test",
32
+ "testcoverage"
33
+ ],
34
+ "templates": [
35
+ "PRD_TEMPLATE.md",
36
+ "ENG_SPEC_TEMPLATE.md",
37
+ "DECISION_RECORD_TEMPLATE.md",
38
+ "WEEKLY_REVIEW_TEMPLATE.md",
39
+ "PROJECT_INDEX_TEMPLATE.md"
40
+ ],
41
+ "claudeMdTemplate": "engineering-exec.md"
42
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "indie-maker",
3
+ "description": "Solo builders — lean planning, shipping, and iteration",
4
+ "skills": [
5
+ "prd",
6
+ "todo",
7
+ "summary",
8
+ "release-plan",
9
+ "changelog",
10
+ "commit",
11
+ "completetodo",
12
+ "createtodo",
13
+ "debug",
14
+ "deps",
15
+ "e2e",
16
+ "envcheck",
17
+ "explain",
18
+ "openpr",
19
+ "opentodos",
20
+ "readme",
21
+ "release",
22
+ "standup",
23
+ "storecontext",
24
+ "test"
25
+ ],
26
+ "templates": [
27
+ "PRD_TEMPLATE.md",
28
+ "DECISION_RECORD_TEMPLATE.md",
29
+ "PROJECT_INDEX_TEMPLATE.md"
30
+ ],
31
+ "claudeMdTemplate": "indie-maker.md"
32
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "marketing",
3
+ "description": "Content and marketing — copy, SEO, and communication",
4
+ "skills": [
5
+ "prd",
6
+ "summary",
7
+ "meeting-notes",
8
+ "seo-brief",
9
+ "landing-page-copy",
10
+ "commit",
11
+ "completetodo",
12
+ "createtodo",
13
+ "envcheck",
14
+ "explain",
15
+ "openpr",
16
+ "opentodos",
17
+ "readme",
18
+ "standup",
19
+ "storecontext"
20
+ ],
21
+ "templates": [
22
+ "PRD_TEMPLATE.md",
23
+ "WEEKLY_REVIEW_TEMPLATE.md",
24
+ "PROJECT_INDEX_TEMPLATE.md"
25
+ ],
26
+ "claudeMdTemplate": "marketing.md"
27
+ }
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: adr
3
+ description: "Create Architecture Decision Records (ADRs). Use when the user says /adr, asks to document an architecture decision, record a technical decision, or wants to create an ADR. Triggers: adr, architecture decision, decision record, technical decision, design decision, why did we choose."
4
+ ---
5
+
6
+ # ADR (Architecture Decision Record) Generator
7
+
8
+ Create well-structured Architecture Decision Records.
9
+
10
+ ## Workflow
11
+
12
+ 1. **Determine ADR location and numbering:**
13
+ - Check for existing ADR directory: `docs/adr/`, `docs/decisions/`, `adr/`, `doc/architecture/decisions/`.
14
+ - If none exists, create `docs/adr/`.
15
+ - Find the next sequence number from existing ADR files.
16
+ - File naming: `NNNN-<kebab-case-title>.md` (e.g., `0005-use-postgresql-for-persistence.md`).
17
+
18
+ 2. **Gather the decision context:**
19
+ - What problem or question prompted this decision?
20
+ - What constraints exist (technical, business, team)?
21
+ - What options were considered?
22
+
23
+ 3. **Generate the ADR using this template:**
24
+
25
+ ```markdown
26
+ # <NUMBER>. <Title>
27
+
28
+ Date: YYYY-MM-DD
29
+
30
+ ## Status
31
+
32
+ <Proposed | Accepted | Deprecated | Superseded by [ADR-NNNN](NNNN-title.md)>
33
+
34
+ ## Context
35
+
36
+ <What is the issue that we're seeing that is motivating this decision or change?>
37
+
38
+ ## Decision
39
+
40
+ <What is the change that we're proposing and/or doing?>
41
+
42
+ ## Consequences
43
+
44
+ ### Positive
45
+ - <benefit>
46
+
47
+ ### Negative
48
+ - <trade-off>
49
+
50
+ ### Neutral
51
+ - <side effect>
52
+ ```
53
+
54
+ 4. **Link related ADRs:**
55
+ - If this supersedes a previous decision, update the old ADR's status.
56
+ - Cross-reference related decisions.
57
+
58
+ ## Guidelines
59
+
60
+ - Use the format from [Michael Nygard's ADR template](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions) as the default.
61
+ - Keep the context section factual and objective.
62
+ - List all options considered, not just the chosen one.
63
+ - Be explicit about trade-offs in consequences.
64
+ - Write for a future team member who needs to understand *why* this decision was made.
65
+ - Status should be "Proposed" unless the user specifies it's already accepted.
66
+ - If the user describes a decision conversationally, extract the structured ADR from their description.
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: apidoc
3
+ description: "Generate API documentation from code. Use when the user says /apidoc, asks to document an API, generate API docs, create endpoint documentation, or produce an OpenAPI/Swagger spec. Triggers: api doc, api documentation, endpoint docs, swagger, openapi, REST docs, API reference, document routes."
4
+ ---
5
+
6
+ # API Documentation Generator
7
+
8
+ Generate comprehensive API documentation from code.
9
+
10
+ ## Workflow
11
+
12
+ 1. **Identify the API framework:**
13
+ - Express, Fastify, Koa, Hono (Node.js)
14
+ - Flask, FastAPI, Django REST Framework (Python)
15
+ - Gin, Echo, Chi (Go)
16
+ - Actix, Axum (Rust)
17
+ - Spring Boot (Java)
18
+ - Or a raw OpenAPI/Swagger spec.
19
+
20
+ 2. **Discover endpoints:**
21
+ - Scan route definitions, controllers, and handler files.
22
+ - For each endpoint, extract: method, path, parameters, request body, response, middleware/guards.
23
+
24
+ 3. **For each endpoint, document:**
25
+
26
+ ```markdown
27
+ ### <METHOD> <path>
28
+
29
+ <Brief description>
30
+
31
+ **Authentication:** <Required/Optional/None>
32
+
33
+ **Parameters:**
34
+ | Name | In | Type | Required | Description |
35
+ |------|-----|------|----------|-------------|
36
+ | id | path | string | yes | Resource ID |
37
+
38
+ **Request Body:**
39
+ ```json
40
+ {
41
+ "field": "type — description"
42
+ }
43
+ ```
44
+
45
+ **Responses:**
46
+ | Status | Description |
47
+ |--------|-------------|
48
+ | 200 | Success — returns <shape> |
49
+ | 400 | Validation error |
50
+ | 401 | Unauthorized |
51
+ | 404 | Not found |
52
+
53
+ **Example:**
54
+ ```bash
55
+ curl -X GET https://api.example.com/resource/123 \
56
+ -H "Authorization: Bearer <token>"
57
+ ```
58
+ ```
59
+
60
+ 4. **Choose output format based on user preference:**
61
+ - **Markdown** — readable docs for a README or docs site.
62
+ - **OpenAPI 3.x YAML/JSON** — machine-readable spec for Swagger UI, Redoc, Postman.
63
+ - **Both** — generate both formats.
64
+
65
+ 5. **If generating OpenAPI spec:**
66
+ - Include `info`, `servers`, `paths`, `components/schemas`.
67
+ - Derive schemas from TypeScript types, Pydantic models, or Go structs.
68
+ - Validate the spec with a linter if available.
69
+
70
+ ## Guidelines
71
+
72
+ - Derive documentation from actual code, not guesses.
73
+ - Include realistic example values in request/response samples.
74
+ - Document error responses, not just happy paths.
75
+ - Group endpoints by resource or domain (e.g., Users, Products, Orders).
76
+ - Note rate limits, pagination, and versioning if present in the code.
77
+ - If auth middleware exists, document the auth mechanism.
78
+ - For GraphQL APIs, document queries, mutations, and subscriptions instead.