xdrs-core 0.49.0 → 0.50.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.
@@ -5,13 +5,46 @@ description: >
5
5
  Activate this skill when the user asks to create slides, a presentation, or a slide deck for an XDRS document.
6
6
  metadata:
7
7
  author: flaviostutz
8
- version: "1.0"
8
+ version: "1.0.0"
9
+ updated: 2026-09-19
9
10
  ---
10
11
 
11
12
  ## Overview
12
13
 
13
14
  Guides the creation of a Marp Markdown slide presentation that supports an existing XDRS document. The skill ensures the slides follow presentation standards (`_core-adr-policy-009`), are correctly placed in the `.assets/` folder, and maintain bidirectional links with the parent document.
14
15
 
16
+ ### Inputs
17
+
18
+ #### Required
19
+
20
+ - A parent XDRS document to present.
21
+
22
+ #### Optional
23
+
24
+ - Target audience for the slides.
25
+
26
+ ### Outputs
27
+
28
+ #### Contents
29
+
30
+ - A new Marp slide deck file.
31
+
32
+ #### Changes
33
+
34
+ - A bidirectional link added to the parent document.
35
+
36
+ ### Halt Conditions
37
+
38
+ - Parent document does not exist yet.
39
+
40
+ ### User Interaction
41
+
42
+ - Confirmation of audience when unclear.
43
+
44
+ ### Runtime Requirements
45
+
46
+ - Marp-compatible viewer for visual rendering (optional).
47
+
15
48
  ## Instructions
16
49
 
17
50
  ### Phase 0: Prerequisites Gate — MUST complete before writing
@@ -159,6 +192,20 @@ Follow the lint verification steps in `.xdrs/_core/adrs/principles/skills/.asset
159
192
  - If the content requires more than 30 slides, split into multiple slide sets with distinct audience or topic focus.
160
193
  - If the parent document changes after slides are created, the slides must be reviewed and updated.
161
194
 
195
+ ## Anti-Patterns
196
+
197
+ - **Mistake:** Creating standalone slides for multiple documents without first creating a synthesizing article.
198
+ **Why it happens:** Building slides directly from several source documents feels quicker than authoring an article first.
199
+ **Instead:** When slides must cover multiple documents, create (or point to) an article first and build slides for that article.
200
+
201
+ - **Mistake:** Packing dense paragraphs of text onto slides instead of short bullets and visuals.
202
+ **Why it happens:** Copying exact wording from the parent Policy feels safer than summarizing.
203
+ **Instead:** Minimize text per slide; use bullets, tables, and visuals, reserving longer text only for exact-wording cases like controls.
204
+
205
+ - **Mistake:** Forgetting to add a back-link from the parent document to the new slide file.
206
+ **Why it happens:** The slide file itself already links to the parent, so the reverse link feels redundant.
207
+ **Instead:** Bidirectional links are required; always update the parent document's `## References` (Phase 6).
208
+
162
209
  ## References
163
210
 
164
211
  - [_core-adr-policy-009 - Presentation standards](../../009-presentation-standards.md)
@@ -6,7 +6,8 @@ description: >
6
6
  Activate this skill when the user asks to create, add, or write a research document that backs a decision.
7
7
  metadata:
8
8
  author: flaviostutz
9
- version: "1.4"
9
+ version: "1.4.0"
10
+ updated: 2026-09-19
10
11
  ---
11
12
 
12
13
  ## Overview
@@ -15,6 +16,38 @@ Guides the creation of a well-structured research document by following `_core-a
15
16
 
16
17
  This skill is interactive by design. Ask clarifying questions to the user at each phase where direction, evidence, or scope is unclear. Ask sequentially — one focused set of questions at a time — and wait for the user's answers before advancing to the next phase. Never front-load all questions at once if not all are yet relevant.
17
18
 
19
+ ### Inputs
20
+
21
+ #### Required
22
+
23
+ - A research direction or question.
24
+
25
+ #### Optional
26
+
27
+ - Available evidence and the intended next step.
28
+
29
+ ### Outputs
30
+
31
+ #### Contents
32
+
33
+ - A standalone IMRAD research document.
34
+
35
+ #### Changes
36
+
37
+ - Index entry and back-references where relevant.
38
+
39
+ ### Halt Conditions
40
+
41
+ - Redirects to write-policy if a final decision is wanted.
42
+
43
+ ### User Interaction
44
+
45
+ - Interactive evidence-gathering, section by section.
46
+
47
+ ### Runtime Requirements
48
+
49
+ - Python 3 for the optional ratio-check script.
50
+
18
51
  ## Instructions
19
52
 
20
53
  ### Phase 0: Scope Placement and Prerequisites Gate — MUST complete before writing
@@ -188,7 +221,6 @@ for line in text.splitlines():
188
221
  if current is not None:
189
222
  sections[current].append(line)
190
223
 
191
-
192
224
  def count_words(markdown: str) -> int:
193
225
  cleaned = markdown
194
226
  cleaned = re.sub(r"^\|(?:\s*[-:]+\s*\|)+\s*$", " ", cleaned, flags=re.M)
@@ -202,7 +234,6 @@ def count_words(markdown: str) -> int:
202
234
  words = cleaned.strip().split()
203
235
  return len(words)
204
236
 
205
-
206
237
  targets = {
207
238
  "Introduction": 3,
208
239
  "Methods": 5,
@@ -276,12 +307,6 @@ Follow the lint verification steps in `.xdrs/_core/adrs/principles/skills/.asset
276
307
  - If the supported decision does not exist yet, reference the decision topic or planned Policy title in the introduction and conclusion.
277
308
  - If the user's direction, evidence base, or intended next step is vague, ask follow-up questions and wait for clarification instead of choosing a path yourself.
278
309
 
279
- ## References
280
-
281
- - [_core-adr-policy-006 - Research standards](../../006-research-standards.md)
282
- - [_core-adr-policy-001 - XDRS standards](../../001-xdrs-standards.md)
283
- - [write-policy skill](../write-policy/SKILL.md)
284
-
285
310
  ## Constraints
286
311
 
287
312
  - MUST consult `001-xdrs-standards` as the canonical source for every core element definition, especially type, scope, subject, numbering, naming, and placement.
@@ -289,3 +314,23 @@ Follow the lint verification steps in `.xdrs/_core/adrs/principles/skills/.asset
289
314
  - MUST keep scope `_local` unless the user explicitly states otherwise.
290
315
  - MUST NOT create documents in external scopes (scopes whose files appear in the workspace root `.filedist.lock`).
291
316
  - MUST keep the document as research rather than turning it into a final decision.
317
+
318
+ ## Anti-Patterns
319
+
320
+ - **Mistake:** Writing conclusions or a final decision inside the research document instead of keeping it exploratory.
321
+ **Why it happens:** The findings feel conclusive enough to just state the decision directly.
322
+ **Instead:** Keep the document as evidence and analysis; direct the user to `write-policy` for the actual decision.
323
+
324
+ - **Mistake:** Front-loading all clarifying questions at once instead of asking sequentially as each phase reveals new gaps.
325
+ **Why it happens:** Batching questions feels more efficient for the user.
326
+ **Instead:** This skill is interactive by design — ask one focused set of questions per phase and wait for answers before advancing.
327
+
328
+ - **Mistake:** Skipping the Phase 9 word-count/ratio check because the sections "look" balanced.
329
+ **Why it happens:** Running the Python script feels like unnecessary overhead once the draft reads well.
330
+ **Instead:** Always run the ratio check; imbalance is often invisible until measured (e.g., Results ballooning past Methods).
331
+
332
+ ## References
333
+
334
+ - [_core-adr-policy-006 - Research standards](../../006-research-standards.md)
335
+ - [_core-adr-policy-001 - XDRS standards](../../001-xdrs-standards.md)
336
+ - [write-policy skill](../write-policy/SKILL.md)
@@ -6,13 +6,46 @@ description: >
6
6
  Activate this skill when the user asks to create, add, or write a new skill, agent skill, or SKILL.md file.
7
7
  metadata:
8
8
  author: flaviostutz
9
- version: "1.0"
9
+ version: "1.0.0"
10
+ updated: 2026-09-19
10
11
  ---
11
12
 
12
13
  ## Overview
13
14
 
14
15
  Guides the creation of a well-structured skill package by following `_core-adr-policy-003` skill standards, consulting `xdrs-core` for every core element definition, checking existing skills to avoid duplication, and producing a complete SKILL.md ready to activate in VS Code.
15
16
 
17
+ ### Inputs
18
+
19
+ #### Required
20
+
21
+ - A description of the task the skill should perform
22
+
23
+ #### Optional
24
+
25
+ - None
26
+
27
+ ### Outputs
28
+
29
+ #### Contents
30
+
31
+ - A complete SKILL.md file
32
+
33
+ #### Changes
34
+
35
+ - A symlink under `.agents/skills/`
36
+
37
+ ### Halt Conditions
38
+
39
+ - No writable scope can be found or inferred
40
+
41
+ ### User Interaction
42
+
43
+ - A clarifying question when scope or type is ambiguous
44
+
45
+ ### Runtime Requirements
46
+
47
+ - Write access to the target scope.
48
+
16
49
  ## Instructions
17
50
 
18
51
  ### Phase 0: Scope Placement and Prerequisites Gate — MUST complete before writing
@@ -64,13 +97,46 @@ description: >
64
97
  [What the skill does AND exactly when an agent should activate it. Max 1024 chars.]
65
98
  metadata:
66
99
  author: [author]
67
- version: "1.0"
100
+ version: "1.0.0"
101
+ updated: [YYYY-MM-DD]
68
102
  ---
69
103
 
70
104
  ## Overview
71
105
 
72
106
  [1–3 sentence goal statement with the task objective, expected outcome, and relevant prerequisites or tools when they matter.]
73
107
 
108
+ ### Inputs
109
+
110
+ #### Required
111
+
112
+ [Bare-minimum bullets needed to invoke the skill, or a single "None" bullet. Each under 10 words.]
113
+
114
+ #### Optional
115
+
116
+ [Extra helpful-context bullets, or a single "None" bullet. Each under 10 words.]
117
+
118
+ ### Outputs
119
+
120
+ #### Contents
121
+
122
+ [End-objective files/chat text produced, or a single "None" bullet. Each under 10 words.]
123
+
124
+ #### Changes
125
+
126
+ [End-objective external system mutations, or a single "None" bullet. Each under 10 words.]
127
+
128
+ ### Halt Conditions
129
+
130
+ [This skill's specific stop-before-completing triggers, or a single "None" bullet. Each under 10 words.]
131
+
132
+ ### User Interaction
133
+
134
+ [Optional. Human-in-the-loop exchanges during execution: clarifying questions or approval gates, or a single "None" bullet. Each under 10 words. Omit the whole section if none apply.]
135
+
136
+ ### Runtime Requirements
137
+
138
+ [Optional. Tooling/network prerequisites as free-form bullets. Omit the whole section if none apply.]
139
+
74
140
  ## Instructions
75
141
 
76
142
  ### Phase 1: …
@@ -78,17 +144,23 @@ metadata:
78
144
 
79
145
  ## Examples
80
146
 
81
- [At least one concrete input/context → expected agent action pair.]
147
+ [At least one concrete input/context → expected agent action pair. Include 2-3 example prompts a user could type to trigger the skill.]
82
148
 
83
149
  ## Edge Cases
84
150
 
85
151
  [Situations where the skill must not activate or must behave differently.]
86
152
 
153
+ ## Anti-Patterns
154
+
155
+ [At least 3 entries. Each with **Mistake:**/**Why it happens:**/**Instead:** structure, grounded in this specific skill's domain.]
156
+
87
157
  ## References
88
158
 
89
159
  [Links to related Policies and skills.]
90
160
  ```
91
161
 
162
+ If the skill needs to be distributed as a standalone package outside the full `xdrs-core` package, it MAY also add a bundling `Makefile` following the optional mechanism in [`_core-adr-policy-021`](../../021-skill-bundling.md). This is not required for skills that are always consumed as part of the full package.
163
+
92
164
  Rules:
93
165
  - Use imperative language ("Read …", "Ask …", "Create …").
94
166
  - The `description` field must state both *what* the skill does and *when* to activate it.
@@ -100,7 +172,7 @@ Rules:
100
172
  - For diagrams and non-Markdown assets, follow `_core-adr-policy-020`: prefer plain Markdown tables/lists first, then ASCII art for very simple cases, then Mermaid.js (sequence, state, activity, entity diagrams) for complex ones, then draw.io when Mermaid is insufficient — save as Editable Vector (File → Save As → Editable Vector) and store as `.svg` in the sibling `.assets/` folder.
101
173
  - If `SKILL.md` genuinely needs local images or supporting files, store them in `.xdrs/[scope]/[type]/[subject]/skills/[skill-name]/.assets/` and link them using a same-folder relative path (e.g., `.assets/image.png`).
102
174
  - Use relative paths for all links; never use absolute paths starting with `/`.
103
- - No emojis. Lowercase filenames. Target under 6500 words.
175
+ - No emojis. Lowercase filenames. Target under 7000 words.
104
176
 
105
177
  ### Phase 5: Review the Draft
106
178
 
@@ -108,10 +180,12 @@ Before writing files, verify:
108
180
 
109
181
  1. **Activation criteria**: Is it unambiguous when this skill loads vs. when it should not?
110
182
  2. **Completeness**: Does every phase have actionable steps?
111
- 3. **Length**: Under 6500 words? Trim verbose explanations.
183
+ 3. **Length**: Under 7000 words? Trim verbose explanations.
112
184
  4. **Duplication**: Does this overlap an existing skill? If yes, revise.
113
185
  5. **References**: Are all related XDRs and skills linked, including the cases where the skill operationalizes multiple XDRs?
114
- 6. **Meta-policy compliance**: Run the shared module at `.xdrs/_core/adrs/principles/skills/.assets/meta-policy-compliance.md`. Substitute `[DOCUMENT]` with `skill`.
186
+ 6. **Anti-Patterns**: Does the skill include at least 3 genuine, domain-specific `## Anti-Patterns` entries (not generic filler)?
187
+ 7. **Required sections**: Does `## Overview` contain nested `### Inputs` (Required/Optional bullets), `### Outputs` (Contents/Changes bullets), and `### Halt Conditions` listing this skill's specific stop triggers — each bullet under 10 words or a single "None"?
188
+ 8. **Meta-policy compliance**: Run the shared module at `.xdrs/_core/adrs/principles/skills/.assets/meta-policy-compliance.md`. Substitute `[DOCUMENT]` with `skill`.
115
189
 
116
190
  If any check fails, revise before continuing.
117
191
 
@@ -137,6 +211,7 @@ Follow the lint verification steps in `.xdrs/_core/adrs/principles/skills/.asset
137
211
  - MUST keep scope `_local` unless the user explicitly states otherwise.
138
212
  - MUST NOT create documents in external scopes (scopes whose files appear in the workspace root `.filedist.lock`).
139
213
  - MUST include a References section linking to `003-skill-standards`.
214
+ - MUST include nested `### Inputs`, `### Outputs`, and `### Halt Conditions` subsections inside `## Overview` with skill-specific content.
140
215
 
141
216
  **Input**: "Create a skill to help debug CI pipelines"
142
217
  - Type: EDR (engineering workflow)
@@ -150,14 +225,32 @@ Follow the lint verification steps in `.xdrs/_core/adrs/principles/skills/.asset
150
225
  - Subject: `application`
151
226
  - Output: `.xdrs/_local/adrs/application/skills/review-api-design/SKILL.md`
152
227
 
228
+ **Input**: "Add a skill for our onboarding checklist"
229
+ - Asks a clarifying question if scope or type is ambiguous, then drafts the skill package.
230
+
153
231
  ## Edge Cases
154
232
 
155
233
  - If the user's goal is already covered by an existing skill, inform the user and offer to extend it instead of creating a new one.
156
234
  - If scope is ambiguous, default to `_local` and note the assumption.
157
235
  - If the goal spans multiple types (e.g., both EDR and ADR), favor the type that best matches the primary activity.
158
236
 
237
+ ## Anti-Patterns
238
+
239
+ - **Mistake:** Omitting the `metadata.author`/`metadata.version`/`metadata.updated` fields, or using a partial version like `1.0` instead of full semantic versioning.
240
+ **Why it happens:** These feel like optional bookkeeping details rather than required fields.
241
+ **Instead:** `author`, `version` (full `MAJOR.MINOR.PATCH`), and `updated` (ISO date) are all required per `_core-adr-policy-003`.
242
+
243
+ - **Mistake:** Writing a boilerplate `## Anti-Patterns` section that restates the Edge Cases content instead of describing real authoring mistakes.
244
+ **Why it happens:** Anti-Patterns and Edge Cases both describe "things that can go wrong", which invites duplication.
245
+ **Instead:** Edge Cases describe when the skill should behave differently; Anti-Patterns describe mistakes an agent following the skill is likely to make and how to avoid them.
246
+
247
+ - **Mistake:** Creating a new skill that duplicates an existing one instead of extending it, because the existing skill wasn't searched for first.
248
+ **Why it happens:** Writing fresh instructions feels faster than reading and understanding an existing skill.
249
+ **Instead:** Always list `.xdrs/[scope]/[type]/[subject]/skills/` first (Phase 3) and extend or reference an existing skill when one already covers the goal.
250
+
159
251
  ## References
160
252
 
161
253
  - [_core-adr-policy-003 - Skill standards](../../003-skill-standards.md)
162
254
  - [_core-adr-policy-001 - XDRS standards](../../001-xdrs-standards.md)
255
+ - [_core-adr-policy-021 - Skill bundling](../../021-skill-bundling.md)
163
256
  - [write-policy skill](../write-policy/SKILL.md)
@@ -5,13 +5,46 @@ description: >
5
5
  Activate this skill when the user asks to create or write any XDRS element.
6
6
  metadata:
7
7
  author: flaviostutz
8
- version: "1.0"
8
+ version: "1.0.0"
9
+ updated: 2026-09-19
9
10
  ---
10
11
 
11
12
  ## Overview
12
13
 
13
14
  Routes the request to the appropriate XDRS authoring skill based on the type of document the user wants to create. Reads the target skill at runtime and follows its instructions in full.
14
15
 
16
+ ### Inputs
17
+
18
+ #### Required
19
+
20
+ - A free-form request to write a document.
21
+
22
+ #### Optional
23
+
24
+ - None.
25
+
26
+ ### Outputs
27
+
28
+ #### Contents
29
+
30
+ - The delegated skill's fully written file.
31
+
32
+ #### Changes
33
+
34
+ - Whatever changes the delegated skill makes.
35
+
36
+ ### Halt Conditions
37
+
38
+ - No document type identifiable even after clarification.
39
+
40
+ ### User Interaction
41
+
42
+ - A single disambiguation question when type is unclear.
43
+
44
+ ### Runtime Requirements
45
+
46
+ - Same as the delegated skill's, if any.
47
+
15
48
  ## Instructions
16
49
 
17
50
  ### Phase 1: Infer Document Type
@@ -60,3 +93,17 @@ Read the full content of the skill file for the inferred type, then follow all i
60
93
  - MUST NOT create documents of a type not listed in the routing table above.
61
94
  - When routing to the Policy skill, MUST also read `_core-adr-policy-016` (`.xdrs/_core/adrs/principles/016-policy-subjects.md`) before choosing a subject — it contains the allowed subject list, descriptions, and disambiguation tiebreaker rules.
62
95
  - When routing to the Policy skill, MUST also read `_core-adr-policy-017` (`.xdrs/_core/adrs/principles/017-policy-numbering-ranges.md`) before choosing a policy number — it defines the subject-based block ranges that determine valid numbers for each subject.
96
+
97
+ ## Anti-Patterns
98
+
99
+ - **Mistake:** Authoring the document directly from general knowledge of the target type instead of reading the target skill file.
100
+ **Why it happens:** The router already knows roughly what a Policy or Skill looks like, so reading the full target skill feels redundant.
101
+ **Instead:** Always read the full target SKILL.md and follow it phase by phase; this skill is a router, not an author.
102
+
103
+ - **Mistake:** Guessing the document type without asking when the request is genuinely ambiguous (e.g., could be Research or Article).
104
+ **Why it happens:** Asking feels like it slows the user down.
105
+ **Instead:** Ask the single focused disambiguation question in Phase 1 rather than guessing wrong and producing the wrong document type.
106
+
107
+ - **Mistake:** Creating a document type not present in the routing table (e.g., a generic README) by improvising a new template.
108
+ **Why it happens:** The user's request doesn't map cleanly onto the six known types.
109
+ **Instead:** MUST NOT create documents of a type not listed in the routing table; clarify with the user instead.