@mohammadhprp/system-prompt 0.11.1 → 0.12.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.
Files changed (121) hide show
  1. package/framework/agents/backend-architect.md +1 -1
  2. package/framework/agents/researcher.md +1 -1
  3. package/framework/mcps/figma-mcp-go/README.md +0 -1
  4. package/framework/mcps/github-mcp/README.md +1 -1
  5. package/framework/mcps/github-mcp/configs/.env.example +1 -1
  6. package/framework/mcps/gitlab-mcp/README.md +0 -1
  7. package/framework/mcps/jira-mcp/README.md +0 -1
  8. package/framework/mcps/laravel-boost/README.md +0 -1
  9. package/framework/mcps/notion-mcp/README.md +0 -1
  10. package/framework/mcps/supabase-mcp/README.md +0 -1
  11. package/framework/plugins/opencode-goal-plugin/README.md +0 -1
  12. package/framework/plugins/ponytail/README.md +1 -1
  13. package/framework/plugins/ponytail/capabilities.md +1 -1
  14. package/framework/references/standards/api.md +0 -1
  15. package/framework/references/standards/architecture.md +0 -1
  16. package/framework/references/standards/database.md +0 -1
  17. package/framework/references/standards/debugging.md +0 -1
  18. package/framework/references/standards/documentation.md +0 -2
  19. package/framework/references/standards/logging.md +0 -1
  20. package/framework/references/standards/naming.md +0 -1
  21. package/framework/references/standards/observability.md +0 -1
  22. package/framework/references/standards/performance.md +0 -1
  23. package/framework/references/standards/pull-requests.md +1 -2
  24. package/framework/references/standards/security.md +0 -1
  25. package/framework/references/standards/testing.md +0 -1
  26. package/framework/skills/README.md +16 -4
  27. package/framework/skills/codenavi/SKILL.md +306 -0
  28. package/framework/skills/codenavi/examples.md +33 -0
  29. package/framework/skills/codenavi/references/coding-principles.md +143 -0
  30. package/framework/skills/codenavi/references/notebook-spec.md +171 -0
  31. package/framework/skills/create-adr/SKILL.md +429 -0
  32. package/framework/skills/create-adr/examples.md +35 -0
  33. package/framework/skills/diagram-design/SKILL.md +1 -1
  34. package/framework/skills/docs-writer/SKILL.md +39 -0
  35. package/framework/skills/docs-writer/examples.md +34 -0
  36. package/framework/skills/docs-writer/references/style-guide.md +72 -0
  37. package/framework/skills/frontend-design/SKILL.md +55 -0
  38. package/framework/skills/frontend-design/examples.md +45 -0
  39. package/framework/skills/humanizer/SKILL.md +412 -0
  40. package/framework/skills/humanizer/examples.md +46 -0
  41. package/framework/skills/learning-opportunities/SKILL.md +140 -0
  42. package/framework/skills/learning-opportunities/examples.md +34 -0
  43. package/framework/skills/learning-opportunities/references/PRINCIPLES.md +42 -0
  44. package/framework/skills/perf-web-optimization/SKILL.md +163 -0
  45. package/framework/skills/perf-web-optimization/examples.md +35 -0
  46. package/framework/skills/perf-web-optimization/references/bundle-optimization.md +180 -0
  47. package/framework/skills/perf-web-optimization/references/core-web-vitals.md +154 -0
  48. package/framework/skills/perf-web-optimization/references/image-optimization.md +170 -0
  49. package/framework/skills/security-best-practices/LICENSE.txt +201 -0
  50. package/framework/skills/security-best-practices/SKILL.md +89 -0
  51. package/framework/skills/security-best-practices/examples.md +35 -0
  52. package/framework/skills/security-best-practices/references/golang-general-backend-security.md +988 -0
  53. package/framework/skills/security-best-practices/references/javascript-express-web-server-security.md +1151 -0
  54. package/framework/skills/security-best-practices/references/javascript-general-web-frontend-security.md +725 -0
  55. package/framework/skills/security-best-practices/references/javascript-jquery-web-frontend-security.md +672 -0
  56. package/framework/skills/security-best-practices/references/javascript-typescript-nextjs-web-server-security.md +1138 -0
  57. package/framework/skills/security-best-practices/references/javascript-typescript-react-web-frontend-security.md +975 -0
  58. package/framework/skills/security-best-practices/references/javascript-typescript-vue-web-frontend-security.md +789 -0
  59. package/framework/skills/security-best-practices/references/python-django-web-server-security.md +880 -0
  60. package/framework/skills/security-best-practices/references/python-fastapi-web-server-security.md +1030 -0
  61. package/framework/skills/security-best-practices/references/python-flask-web-server-security.md +835 -0
  62. package/framework/skills/sentry/SKILL.md +127 -0
  63. package/framework/skills/sentry/examples.md +34 -0
  64. package/framework/skills/sentry/scripts/sentry_api.py +238 -0
  65. package/framework/skills/show-me/SKILL.md +127 -0
  66. package/framework/skills/show-me/examples.md +78 -0
  67. package/framework/skills/spec-driven-eval/SKILL.md +341 -0
  68. package/framework/skills/spec-driven-eval/examples.md +35 -0
  69. package/framework/skills/spec-driven-eval/references/quickstart.md +118 -0
  70. package/framework/skills/spec-driven-eval/references/reference.md +295 -0
  71. package/framework/skills/taste/SKILL.md +47 -0
  72. package/framework/skills/taste/examples.md +73 -0
  73. package/framework/skills/taste/references/brandkit.md +793 -0
  74. package/framework/skills/taste/references/design-taste-frontend-v1.md +221 -0
  75. package/framework/skills/taste/references/design-taste-frontend.md +1201 -0
  76. package/framework/skills/taste/references/full-output-enforcement.md +44 -0
  77. package/framework/skills/taste/references/gpt-taste.md +69 -0
  78. package/framework/skills/taste/references/high-end-visual-design.md +93 -0
  79. package/framework/skills/taste/references/image-to-code.md +1223 -0
  80. package/framework/skills/taste/references/imagegen-frontend-mobile.md +1460 -0
  81. package/framework/skills/taste/references/imagegen-frontend-web.md +982 -0
  82. package/framework/skills/taste/references/industrial-brutalist-ui.md +87 -0
  83. package/framework/skills/taste/references/minimalist-ui.md +80 -0
  84. package/framework/skills/taste/references/redesign-existing-projects.md +173 -0
  85. package/framework/skills/taste/references/stitch-design-taste-design.md +121 -0
  86. package/framework/skills/taste/references/stitch-design-taste.md +179 -0
  87. package/framework/skills/technical-design-doc-creator/README.md +411 -0
  88. package/framework/skills/technical-design-doc-creator/SKILL.md +1484 -0
  89. package/framework/skills/technical-design-doc-creator/examples.md +35 -0
  90. package/framework/skills/tlc-spec-driven/SKILL.md +184 -0
  91. package/framework/skills/tlc-spec-driven/examples.md +34 -0
  92. package/framework/skills/tlc-spec-driven/references/code-analysis.md +98 -0
  93. package/framework/skills/tlc-spec-driven/references/coding-principles.md +72 -0
  94. package/framework/skills/tlc-spec-driven/references/context-limits.md +31 -0
  95. package/framework/skills/tlc-spec-driven/references/design.md +199 -0
  96. package/framework/skills/tlc-spec-driven/references/discuss.md +159 -0
  97. package/framework/skills/tlc-spec-driven/references/implement.md +436 -0
  98. package/framework/skills/tlc-spec-driven/references/lessons.md +115 -0
  99. package/framework/skills/tlc-spec-driven/references/memory.md +144 -0
  100. package/framework/skills/tlc-spec-driven/references/specify.md +228 -0
  101. package/framework/skills/tlc-spec-driven/references/sub-agents.md +147 -0
  102. package/framework/skills/tlc-spec-driven/references/tasks.md +451 -0
  103. package/framework/skills/tlc-spec-driven/references/validate.md +355 -0
  104. package/framework/skills/tlc-spec-driven/scripts/check_commit.py +115 -0
  105. package/framework/skills/tlc-spec-driven/scripts/lessons.py +412 -0
  106. package/framework/skills/tlc-spec-driven/scripts/validate_spec.py +260 -0
  107. package/framework/skills/tlc-spec-driven/scripts/validate_state.py +162 -0
  108. package/framework/skills/tlc-spec-driven/scripts/validate_tasks.py +251 -0
  109. package/framework/skills/web-design-guidelines/SKILL.md +65 -0
  110. package/framework/skills/web-design-guidelines/examples.md +32 -0
  111. package/framework/skills/web-design-guidelines/references/guideline.md +174 -0
  112. package/package.json +1 -1
  113. package/src/agent-configs.js +6 -2
  114. package/src/catalog.js +16 -3
  115. package/src/cli.js +82 -2
  116. package/src/doctor.js +84 -0
  117. package/src/installer.js +337 -154
  118. package/framework/skills/backend-engineer/SKILL.md +0 -76
  119. package/framework/skills/backend-engineer/examples.md +0 -31
  120. package/framework/skills/documentation/SKILL.md +0 -74
  121. package/framework/skills/documentation/examples.md +0 -31
@@ -0,0 +1,429 @@
1
+ ---
2
+ name: create-adr
3
+ description: Creates Architecture Decision Records (ADRs) to document significant architectural choices and their rationale for future team members. Use when the user says "write an ADR", "document this decision", "record why we chose X", "add an architecture decision record", "create an ADR for", or wants to capture the reasoning behind a technical choice so the team understands it later. Do NOT use when the decision hasn't been made yet (use create-rfc instead), for implementation planning (use technical-design-doc-creator), or for general documentation.
4
+ license: CC-BY-4.0
5
+ metadata:
6
+ author: Tech Leads Club - github.com/tech-leads-club
7
+ version: '1.0.0'
8
+ ---
9
+
10
+ # ADR Creator
11
+
12
+ You are an expert in creating Architecture Decision Records (ADRs) — concise, durable documents that capture the context, decision, and consequences of significant architectural choices so future team members understand *why* things are the way they are.
13
+
14
+ ## When to Use This Skill
15
+
16
+ Use this skill when:
17
+
18
+ - User asks to "write an ADR", "create an ADR", "add an architecture decision record"
19
+ - User wants to "document why we chose X", "record this decision", "capture this architectural choice"
20
+ - A significant technical decision has been made (or is being finalized) and needs to be recorded
21
+ - The team wants to preserve the reasoning behind a choice for future engineers
22
+ - User asks "why did we choose X" and the answer should be written down permanently
23
+
24
+ Do NOT use for:
25
+
26
+ - Decisions not yet made — use `create-rfc` to drive the decision process first
27
+ - Implementation planning after the decision — use `technical-design-doc-creator`
28
+ - Simple configuration choices or trivial code decisions
29
+ - Meeting notes or general documentation
30
+
31
+ ## ADR vs RFC — Critical Distinction
32
+
33
+ | Aspect | ADR | RFC |
34
+ |--------|-----|-----|
35
+ | **Timing** | Decision already made (or being finalized) | Before the decision (seeking input) |
36
+ | **Purpose** | Record for future team members | Proposal seeking approval |
37
+ | **Audience** | Engineers joining months or years later | Current stakeholders |
38
+ | **Length** | Short — 200–500 words | Long — thorough comparison |
39
+ | **Mutability** | Immutable — superseded, never edited | Iterative — evolves during review |
40
+ | **Tone** | Historical record | Deliberative proposal |
41
+
42
+ If the user says "I need to decide whether to do X" → use `create-rfc`.
43
+ If the user says "We decided to do X, let me document it" → use this skill.
44
+
45
+ ## Language Adaptation
46
+
47
+ **CRITICAL**: Always generate the ADR in the **same language as the user's request**. Detect the language automatically.
48
+
49
+ - Keep technical terms in English when appropriate (e.g., "ADR", "API", "microservices")
50
+ - All section headers and content should be in the user's language
51
+ - Company/product names remain in original form
52
+
53
+ ## ADR Format Selection
54
+
55
+ Three formats are widely used. Detect the right one from context, or ask:
56
+
57
+ | Format | Best For | Length |
58
+ |--------|----------|--------|
59
+ | **MADR** (Markdown ADR) | Teams that want structured options comparison | Medium |
60
+ | **Nygard** (original) | Minimal, fast recording; obvious decisions | Short |
61
+ | **Y-Statement** | Inline documentation, very compact contexts | One paragraph |
62
+
63
+ Default to **MADR** unless the user specifies otherwise or the decision is very simple.
64
+
65
+ ---
66
+
67
+ ## Interactive Workflow
68
+
69
+ ### Step 1: Gather Context (if not provided)
70
+
71
+ If the user provides minimal context, use **AskQuestion** to collect essential information:
72
+
73
+ ```json
74
+ {
75
+ "title": "ADR Information",
76
+ "questions": [
77
+ {
78
+ "id": "adr_decision",
79
+ "prompt": "What was the decision made? (e.g., 'Use PostgreSQL for primary storage')",
80
+ "options": [
81
+ { "id": "free_text", "label": "I'll describe it in my next message" }
82
+ ]
83
+ },
84
+ {
85
+ "id": "adr_format",
86
+ "prompt": "Which ADR format would you like to use?",
87
+ "options": [
88
+ { "id": "madr", "label": "MADR — structured, with options comparison (recommended)" },
89
+ { "id": "nygard", "label": "Nygard — minimal: Context / Decision / Consequences" },
90
+ { "id": "y_statement", "label": "Y-Statement — single paragraph, very compact" }
91
+ ]
92
+ },
93
+ {
94
+ "id": "adr_status",
95
+ "prompt": "What is the current status of this decision?",
96
+ "options": [
97
+ { "id": "accepted", "label": "Accepted — decision is final" },
98
+ { "id": "proposed", "label": "Proposed — decision is being finalized" },
99
+ { "id": "deprecated", "label": "Deprecated — this approach is no longer recommended" },
100
+ { "id": "superseded", "label": "Superseded — replaced by a newer decision" }
101
+ ]
102
+ },
103
+ {
104
+ "id": "adr_supersedes",
105
+ "prompt": "Does this ADR supersede a previous decision?",
106
+ "options": [
107
+ { "id": "yes", "label": "Yes — I'll provide the ADR number/title" },
108
+ { "id": "no", "label": "No — this is a new decision" }
109
+ ]
110
+ }
111
+ ]
112
+ }
113
+ ```
114
+
115
+ ### Step 2: Validate Mandatory Fields
116
+
117
+ **MANDATORY fields — ask if missing**:
118
+
119
+ - **Decision title** (noun phrase, not a question — e.g., "Use Redis for session storage")
120
+ - **Date** of the decision (or today's date)
121
+ - **Status** (Accepted / Proposed / Deprecated / Superseded)
122
+ - **Context** — the forces, constraints, and situation that made this decision necessary
123
+ - **The decision itself** — what was chosen and why
124
+ - **Consequences** — what becomes easier, harder, or different as a result
125
+
126
+ **RECOMMENDED fields**:
127
+ - **Decision drivers** — the key criteria or constraints
128
+ - **Options considered** — what alternatives were evaluated
129
+ - **Pros/cons per option** — honest trade-off assessment
130
+ - **Decision outcome rationale** — why this option over the others
131
+ - **Links** — related ADRs, RFCs, tickets, or documentation
132
+
133
+ If any mandatory fields are missing, ask IN THE USER'S LANGUAGE before generating the document.
134
+
135
+ ### Step 3: Assign ADR Number
136
+
137
+ Scan the existing ADR directory for the next sequential number:
138
+
139
+ 1. Check if an ADR directory exists (`docs/adr/`, `docs/decisions/`, `.adr/`, or `adr/`)
140
+ 2. Find the highest existing number
141
+ 3. Assign the next number (e.g., if ADR-007 exists, this becomes ADR-008)
142
+ 4. If no directory exists, start at ADR-001 and suggest creating the directory
143
+
144
+ ### Step 4: Generate the ADR
145
+
146
+ Generate the ADR following the format selected in Step 1.
147
+
148
+ ### Step 5: Offer File Placement
149
+
150
+ After generating, ask where to save it:
151
+
152
+ ```
153
+ ADR Created: "ADR-{NNN}: {Title}"
154
+
155
+ Suggested file path: docs/adr/{NNN}-{kebab-case-title}.md
156
+
157
+ Would you like me to:
158
+ 1. Save it to docs/adr/ (recommended convention)
159
+ 2. Save it to a different location
160
+ 3. Just show the content (I'll place it manually)
161
+ ```
162
+
163
+ ---
164
+
165
+ ## Document Templates
166
+
167
+ ### MADR Format (Default)
168
+
169
+ ```markdown
170
+ # ADR-{NNN}: {Title}
171
+
172
+ - **Date**: YYYY-MM-DD
173
+ - **Status**: Accepted | Proposed | Deprecated | Superseded by [ADR-NNN]({link})
174
+ - **Deciders**: {who was involved in the decision}
175
+ - **Tags**: {optional: architecture, security, performance, database, etc.}
176
+
177
+ ## Context and Problem Statement
178
+
179
+ {Describe the context and the problem or question that led to this decision.
180
+ 2–4 sentences. What situation forced this choice?}
181
+
182
+ ## Decision Drivers
183
+
184
+ - {Driver 1 — e.g., "Must support 10k concurrent users"}
185
+ - {Driver 2 — e.g., "Team has no Go experience"}
186
+ - {Driver 3 — e.g., "Must be deployable on-premise"}
187
+
188
+ ## Considered Options
189
+
190
+ - {Option A}
191
+ - {Option B}
192
+ - {Option C — "Do nothing / status quo" when relevant}
193
+
194
+ ## Decision Outcome
195
+
196
+ Chosen option: **"{Option A}"**, because {concise rationale tied to decision drivers}.
197
+
198
+ ### Positive Consequences
199
+
200
+ - {Benefit 1}
201
+ - {Benefit 2}
202
+
203
+ ### Negative Consequences
204
+
205
+ - {Trade-off 1 — be honest}
206
+ - {Trade-off 2}
207
+
208
+ ## Pros and Cons of the Options
209
+
210
+ ### {Option A} ✅ Chosen
211
+
212
+ - ✅ {Pro 1}
213
+ - ✅ {Pro 2}
214
+ - ❌ {Con 1}
215
+
216
+ ### {Option B}
217
+
218
+ - ✅ {Pro 1}
219
+ - ❌ {Con 1}
220
+ - ❌ {Con 2}
221
+
222
+ ### {Option C}
223
+
224
+ - ✅ {Pro 1}
225
+ - ❌ {Con 1}
226
+
227
+ ## Links
228
+
229
+ - {Related ADR, RFC, ticket, or documentation}
230
+ - Supersedes: [ADR-{NNN}: {Title}]({link}) (if applicable)
231
+ - Superseded by: [ADR-{NNN}: {Title}]({link}) (if applicable)
232
+ ```
233
+
234
+ ---
235
+
236
+ ### Nygard Format (Minimal)
237
+
238
+ ```markdown
239
+ # ADR-{NNN}: {Title}
240
+
241
+ ## Status
242
+
243
+ Accepted | Proposed | Deprecated | Superseded by ADR-{NNN}
244
+
245
+ ## Context
246
+
247
+ {What is the situation that led to this decision?
248
+ What forces are at play — technical, business, organizational?
249
+ What constraints exist? 2–5 sentences.}
250
+
251
+ ## Decision
252
+
253
+ {What did we decide to do?
254
+ State it directly, in active voice: "We will use X" or "We decided to adopt Y."
255
+ Include a brief rationale — why this option over the alternatives.}
256
+
257
+ ## Consequences
258
+
259
+ {What becomes easier or better as a result?}
260
+ {What becomes harder or worse? Be honest about trade-offs.}
261
+ {What new concerns or constraints does this introduce?}
262
+ ```
263
+
264
+ ---
265
+
266
+ ### Y-Statement Format (Compact)
267
+
268
+ ```markdown
269
+ # ADR-{NNN}: {Title}
270
+
271
+ **Date**: YYYY-MM-DD | **Status**: Accepted
272
+
273
+ In the context of **{situation/use case}**,
274
+ facing **{concern or constraint}**,
275
+ we decided **{the option chosen}**,
276
+ to achieve **{quality attribute or goal}**,
277
+ accepting **{the downside or trade-off}**.
278
+
279
+ **Deciders**: {names or roles}
280
+ **Links**: {related ADRs, tickets}
281
+ ```
282
+
283
+ ---
284
+
285
+ ## ADR Quality Checklist
286
+
287
+ Before finalizing, verify:
288
+
289
+ - [ ] **Title** is a noun phrase describing the decision (not a question, not a vague label)
290
+ - [ ] **Date** is included (decisions without dates lose context quickly)
291
+ - [ ] **Status** is set correctly — Accepted, Proposed, Deprecated, or Superseded
292
+ - [ ] **Context** explains the *forces* that made this decision necessary, not just what was done
293
+ - [ ] **Decision** is stated directly and tied to the context
294
+ - [ ] **Consequences** include honest trade-offs — not just positives
295
+ - [ ] **Options** (MADR format) include at least 2 alternatives actually considered
296
+ - [ ] **Supersedes / superseded by** links are included when applicable
297
+ - [ ] **File** follows naming convention: `NNN-kebab-case-title.md`
298
+ - [ ] **Number** is sequential in the ADR directory
299
+
300
+ ---
301
+
302
+ ## ADR File Naming Convention
303
+
304
+ ```
305
+ docs/adr/
306
+ ├── 001-use-postgresql-for-primary-storage.md
307
+ ├── 002-adopt-event-driven-architecture.md
308
+ ├── 003-replace-jenkins-with-github-actions.md ← supersedes ADR-001 if relevant
309
+ └── README.md ← optional index
310
+ ```
311
+
312
+ - Zero-padded numbers: `001`, `002`, ... `099`, `100`
313
+ - Kebab-case title
314
+ - `.md` extension
315
+ - Common directories: `docs/adr/`, `docs/decisions/`, `adr/`, `.adr/`
316
+
317
+ ---
318
+
319
+ ## Common Anti-Patterns to Avoid
320
+
321
+ ### Title as a Question
322
+
323
+ **BAD**: `# ADR-001: Should we use PostgreSQL?`
324
+
325
+ **GOOD**: `# ADR-001: Use PostgreSQL for Primary Storage`
326
+
327
+ Titles should record the decision, not the question. Future readers need to know *what was decided*, not what was considered.
328
+
329
+ ---
330
+
331
+ ### Vague Context
332
+
333
+ **BAD**:
334
+ ```
335
+ We needed a database and chose PostgreSQL.
336
+ ```
337
+
338
+ **GOOD**:
339
+ ```
340
+ Our application requires a relational database with strong ACID guarantees.
341
+ The team has deep PostgreSQL experience. MySQL was evaluated but lacks
342
+ native support for JSONB columns, which our schema design requires.
343
+ Our cloud provider (AWS) offers managed PostgreSQL via RDS at acceptable cost.
344
+ ```
345
+
346
+ Context should explain the *forces* — why wasn't the alternative obviously better?
347
+
348
+ ---
349
+
350
+ ### Consequences Without Trade-offs
351
+
352
+ **BAD**:
353
+ ```
354
+ ## Consequences
355
+ PostgreSQL is fast and reliable.
356
+ ```
357
+
358
+ **GOOD**:
359
+ ```
360
+ ## Consequences
361
+ - Enables JSONB columns and advanced indexing for our query patterns
362
+ - Team expertise means fast onboarding and fewer operational surprises
363
+ - Adds operational burden compared to a managed NoSQL service
364
+ - Schema migrations require careful planning in a relational model
365
+ ```
366
+
367
+ Honest trade-offs are what make ADRs valuable years later.
368
+
369
+ ---
370
+
371
+ ### Editing Instead of Superseding
372
+
373
+ **BAD**: Editing an old ADR to change the decision after the fact.
374
+
375
+ **GOOD**: Creating a new ADR with `Status: Superseded by ADR-{NNN}` on the old one and linking back.
376
+
377
+ ADRs are historical records. The old decision was correct *given what was known at the time*. Superseding preserves that context.
378
+
379
+ ---
380
+
381
+ ### Missing the "Why Not" Rationale
382
+
383
+ **BAD**:
384
+ ```
385
+ ## Decision
386
+ We will use Redis for session storage.
387
+ ```
388
+
389
+ **GOOD**:
390
+ ```
391
+ ## Decision
392
+ We will use Redis for session storage. We considered storing sessions in PostgreSQL
393
+ (already in our stack) but Redis's built-in TTL support and in-memory performance
394
+ make it significantly better suited for high-frequency session reads. The operational
395
+ cost of an additional service is justified by the simplified session expiry logic.
396
+ ```
397
+
398
+ The rationale is *why this option and not the others* — not just what was chosen.
399
+
400
+ ---
401
+
402
+ ## Important Notes
403
+
404
+ - **ADRs are immutable** — never edit the decision. Supersede with a new ADR.
405
+ - **Short is better** — 200–500 words is ideal. If it needs to be longer, move detail to a linked TDD or RFC.
406
+ - **Context ages** — always date the ADR; what seems obvious now won't be in 3 years.
407
+ - **Honest consequences** — a one-sided ADR loses credibility. Future engineers will hit the downsides regardless.
408
+ - **Link everything** — related ADRs, the RFC that drove the decision, tickets, PR references.
409
+ - **Language adaptation** — always write in the user's language.
410
+ - **Number sequentially** — check the directory before assigning a number.
411
+
412
+ ## Example Prompts that Trigger This Skill
413
+
414
+ ### English
415
+ - "Write an ADR for using PostgreSQL as our primary database"
416
+ - "Document our decision to adopt GraphQL"
417
+ - "Create an ADR for moving our frontend to Next.js"
418
+ - "I need to record why we chose Kafka over RabbitMQ"
419
+ - "Add an architecture decision record for our authentication approach"
420
+
421
+ ### Portuguese
422
+ - "Escreva um ADR sobre a decisão de usar PostgreSQL"
423
+ - "Documente a decisão de adotar GraphQL no projeto"
424
+ - "Crie um ADR explicando por que escolhemos Kafka"
425
+
426
+ ### Spanish
427
+ - "Escribe un ADR sobre la decisión de usar PostgreSQL"
428
+ - "Documenta la decisión de adoptar microservicios"
429
+ - "Crea un ADR explicando por qué elegimos Next.js"
@@ -0,0 +1,35 @@
1
+ # Create ADR Examples
2
+
3
+ ## Record a finalized database decision
4
+
5
+ User: "Write an ADR for using PostgreSQL as our primary database."
6
+
7
+ Good agent behavior:
8
+
9
+ - Detect the user's language and generate the ADR in it, keeping technical terms like "ADR" and "API" in English.
10
+ - Gather the mandatory fields: decision title, date, status, context, decision, and consequences.
11
+ - Scan the ADR directory for the next sequential number before assigning one.
12
+ - Default to the MADR format with a structured comparison of the options considered.
13
+ - Include honest trade-offs in the consequences, not just positives.
14
+
15
+ ## Capture a decision that supersedes an old one
16
+
17
+ User: "We're replacing Jenkins with GitHub Actions. Document why."
18
+
19
+ Good agent behavior:
20
+
21
+ - Create a new ADR with status "Accepted" rather than editing the old one.
22
+ - Link it as superseding the Jenkins decision, and note that the old ADR should be marked "Superseded by ADR-{NNN}".
23
+ - Explain the forces behind the change and why the new choice wins given the current constraints.
24
+ - Follow the file naming convention with a zero-padded sequential number.
25
+
26
+ ## The decision hasn't been made yet
27
+
28
+ User: "I'm trying to decide whether to adopt GraphQL."
29
+
30
+ Good agent behavior:
31
+
32
+ - Recognize this is an RFC situation, not an ADR: the decision is not yet made.
33
+ - Point the user to `create-rfc` to drive the decision process first.
34
+ - Explain that ADRs record decisions that are finalized, while RFCs are proposals seeking input.
35
+ - Offer to create the RFC instead of forcing an ADR before the decision exists.
@@ -192,7 +192,7 @@ Universal building blocks. Type-specialized primitives (lifeline, activation bar
192
192
 
193
193
  - Editorial callouts → [primitive-annotation.md](references/primitive-annotation.md)
194
194
  - Hand-drawn variant → [primitive-sketchy.md](references/primitive-sketchy.md)
195
- - Icon set (laptop, server, DB, K8s, Docker, AWS, …) → [primitive-icons.md](references/primitive-icons.md). Browse the gallery at [`assets/icons.html`](../assets/icons.html).
195
+ - Icon set (laptop, server, DB, K8s, Docker, AWS, …) → [primitive-icons.md](references/primitive-icons.md). Browse the gallery at [`assets/icons.html`](assets/icons.html).
196
196
  - Terminal / CLI-window variant → [primitive-terminal.md](references/primitive-terminal.md)
197
197
 
198
198
  ### Background
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: docs-writer
3
+ description: Write, review, and edit documentation files with consistent structure, tone, and technical accuracy. Use when creating docs, reviewing markdown files, writing READMEs, updating `/docs` directories, or when user says "write documentation", "review this doc", "improve this README", "create a guide", or "edit markdown". Do NOT use for code comments, inline JSDoc, or API reference generation.
4
+ ---
5
+
6
+ # `docs-writer` skill instructions
7
+
8
+ As an expert technical writer and editor, your goal is to produce and refine documentation that is accurate, clear, consistent, and easy for users to understand. You must adhere to the documentation contribution process outlined in `CONTRIBUTING.md`.
9
+
10
+ ## Step 1: Understand the goal and create a plan
11
+
12
+ 1. **Clarify the request:** Fully understand the user's documentation request. Identify the core feature, command, or concept that needs work.
13
+ 2. **Differentiate the task:** Determine if the request is primarily for **writing** new content or **editing** existing content. If the request is ambiguous (e.g., "fix the docs"), ask the user for clarification.
14
+ 3. **Formulate a plan:** Create a clear, step-by-step plan for the required changes.
15
+
16
+ ## Step 2: Investigate and gather information
17
+
18
+ 1. **Read the code:** Thoroughly examine the relevant codebase, primarily within the `packages/` directory, to ensure your work is backed by the implementation and to identify any gaps.
19
+ 2. **Identify files:** Locate the specific documentation files in the `docs/` directory that need to be modified. Always read the latest version of a file before you begin work.
20
+ 3. **Check for connections:** Consider related documentation. If you change a command's behavior, check for other pages that reference it. If you add a new page, check if `docs/sidebar.json` needs to be updated. Make sure all links are up to date.
21
+
22
+ ## Step 3: Write or edit the documentation
23
+
24
+ 1. **Follow the style guide:** Adhere to the rules in `references/style-guide.md`. Read this file to understand the project's documentation standards.
25
+ 2. Ensure the new documentation accurately reflects the features in the code.
26
+ 3. **Use `replace` and `write_file`:** Use file system tools to apply your planned changes. For small edits, `replace` is preferred. For new files or large rewrites, `write_file` is more appropriate.
27
+
28
+ ### Sub-step: Editing existing documentation (as clarified in Step 1)
29
+
30
+ - **Gaps:** Identify areas where the documentation is incomplete or no longer reflects existing code.
31
+ - **Tone:** Ensure the tone is active and engaging, not passive.
32
+ - **Clarity:** Correct awkward wording, spelling, and grammar. Rephrase sentences to make them easier for users to understand.
33
+ - **Consistency:** Check for consistent terminology and style across all edited documents.
34
+
35
+ ## Step 4: Verify and finalize
36
+
37
+ 1. **Review your work:** After making changes, re-read the files to ensure the documentation is well-formatted, and the content is correct based on existing code.
38
+ 2. **Link verification:** Verify the validity of all links in the new content. Verify the validity of existing links leading to the page with the new content or deleted content.
39
+ 3. **Offer to run npm format:** Once all changes are complete, offer to run the project's formatting script to ensure consistency by proposing the command: `npm run format`
@@ -0,0 +1,34 @@
1
+ # Docs Writer Examples
2
+
3
+ ## Write a README from scratch
4
+
5
+ User: "Create a README for the CLI package."
6
+
7
+ Good agent behavior:
8
+
9
+ - Read the relevant code to ensure the README is backed by the actual implementation.
10
+ - Follow the project's style guide for structure and tone.
11
+ - Cover install, usage, and configuration with accurate command examples.
12
+ - Verify every link in the new content points at a real target.
13
+
14
+ ## Review and improve existing docs
15
+
16
+ User: "Improve this markdown file, it reads awkwardly."
17
+
18
+ Good agent behavior:
19
+
20
+ - Read the latest version of the file before starting.
21
+ - Fix unclear phrasing, grammar, and passive voice while preserving the technical meaning.
22
+ - Check for consistent terminology across the edited document and related pages.
23
+ - Verify that links leading to the page still resolve after the edits.
24
+
25
+ ## Update docs for a behavior change
26
+
27
+ User: "We renamed `build` to `compile`. Update the docs."
28
+
29
+ Good agent behavior:
30
+
31
+ - Search for every page referencing the command, not just the obvious one.
32
+ - Update the command docs and any tutorial, reference, or sidebar entries that mention it.
33
+ - Keep terminology consistent across all edited pages.
34
+ - Offer to run the project's formatting script to keep things consistent.
@@ -0,0 +1,72 @@
1
+ # Documentation style guide
2
+
3
+ ## I. Core principles
4
+
5
+ 1. **Clarity:** Write for easy understanding. Prioritize clear, direct, and simple language.
6
+ 2. **Consistency:** Use consistent terminology, formatting, and style throughout the documentation.
7
+ 3. **Accuracy:** Ensure all information is technically correct and up-to-date.
8
+ 4. **Accessibility:** Design documentation to be usable by everyone. Focus on semantic structure, clear link text, and image alternatives.
9
+ 5. **Global audience:** Write in standard US English. Avoid slang, idioms, and cultural references.
10
+ 6. **Prescriptive:** Guide the reader by recommending specific actions and paths, especially for complex tasks.
11
+
12
+ ## II. Voice and tone
13
+
14
+ - **Professional yet friendly:** Maintain a helpful, knowledgeable, and conversational tone without being frivolous.
15
+ - **Direct:** Get straight to the point. Keep paragraphs short and focused.
16
+ - **Second person:** Address the reader as "you."
17
+ - **Present tense:** Use the present tense to describe functionality (e.g., "The API returns a JSON object.").
18
+ - **Avoid:** Jargon, slang, marketing hype, and overly casual language.
19
+
20
+ ## III. Language and grammar
21
+
22
+ - **Active voice:** Prefer active voice over passive voice.
23
+ - _Example:_ "The system sends a notification." (Not: "A notification is sent by the system.")
24
+ - **Contractions:** Use common contractions (e.g., "don't," "it's") to maintain a natural tone.
25
+ - **Simple vocabulary:** Use common words. Define technical terms when necessary.
26
+ - **Conciseness:** Keep sentences short and focused, but don't omit helpful information.
27
+ - **"Please":** Avoid using the word "please."
28
+
29
+ ## IV. Procedures and steps
30
+
31
+ - Start each step with an imperative verb (e.g., "Connect to the database").
32
+ - Number steps sequentially.
33
+ - Introduce lists of steps with a complete sentence.
34
+ - Put conditions before instructions, not after.
35
+ - Provide clear context for where the action takes place (e.g., "In the administration console...").
36
+ - Indicate optional steps clearly (e.g., "Optional: ...").
37
+
38
+ ## V. Formatting and punctuation
39
+
40
+ - **Text wrap:** Wrap all text at 80 characters, with exceptions for long links or tables.
41
+ - **Headings, titles, and bold text:** Use sentence case. Structure headings hierarchically.
42
+ - **Lists:** Use numbered lists for sequential steps and bulleted lists for all other lists. Keep list items parallel in structure.
43
+ - **Serial comma:** Use the serial comma (e.g., "one, two, and three").
44
+ - **Punctuation:** Use standard American punctuation. Place periods inside quotation marks.
45
+ - **Dates:** Use unambiguous date formatting (e.g., "January 22, 2026").
46
+
47
+ ## VI. UI, code, and links
48
+
49
+ - **UI elements:** Put UI elements in **bold**. Focus on the task when discussing interaction.
50
+ - **Code:** Use `code font` for filenames, code snippets, commands, and API elements. Use code blocks for multi-line samples.
51
+ - **Links:** Use descriptive link text that indicates what the link leads to. Avoid "click here."
52
+
53
+ ## VII. Word choice and terminology
54
+
55
+ - **Consistent naming:** Use product and feature names consistently.
56
+ - **Specific verbs:** Use precise verbs.
57
+ - **Avoid:**
58
+ - Latin abbreviations (e.g., use "for example" instead of "e.g.").
59
+ - Placeholder names like "foo" and "bar" in examples; use meaningful names instead.
60
+ - Anthropomorphism (e.g., "The server thinks...").
61
+ - "Should": Be clear about requirements ("must") vs. recommendations ("we recommend").
62
+
63
+ ## VIII. Files and media
64
+
65
+ - **Filenames:** Use lowercase letters, separate words with hyphens (-), and use standard ASCII characters.
66
+ - **Images:** Provide descriptive alt text for all images. Provide high-resolution or vector images when practical.
67
+
68
+ ## IX. Accessibility quick check
69
+
70
+ - Provide descriptive alt text for images.
71
+ - Ensure link text makes sense out of context.
72
+ - Use semantic HTML elements correctly (headings, lists, tables).