xdrs-core 0.17.1 → 0.19.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.
@@ -48,12 +48,12 @@ Collectively, these are referred to as XDRs.
48
48
  - `_core-adr-004` defines article standards
49
49
  - `_core-adr-006` defines research standards
50
50
  - `_core-adr-007` defines plan standards
51
- - For simple structure, flow, layout, or relationship indications, documents SHOULD prefer plain Markdown, tables, or ASCII art instead of external assets.
52
- - Images and other supporting files SHOULD be used only when they are materially necessary to preserve clarity, fidelity, or evidence. When used, they SHOULD live in a sibling `assets/` folder next to the document.
53
- - XDRs in the subject root use `.xdrs/[scope]/[type]/[subject]/assets/`
54
- - Articles use `.xdrs/[scope]/[type]/[subject]/articles/assets/`
55
- - Research uses `.xdrs/[scope]/[type]/[subject]/researches/assets/`
56
- - Skills use `.xdrs/[scope]/[type]/[subject]/skills/[number]-[skill-name]/assets/`
51
+ - For simple structures, flows, layout, or relationship indications, documents SHOULD prefer plain Markdown, tables, Mermaid.js (sequence, state, activity, entity diagrams) or ASCII art instead of external assets.
52
+ - Images and other supporting files SHOULD be used only when they are materially necessary to preserve clarity, fidelity, or evidence. When used, they MUST live in a sibling `.assets/` folder next to the document.
53
+ - XDRs in the subject root use `.xdrs/[scope]/[type]/[subject]/.assets/`
54
+ - Articles use `.xdrs/[scope]/[type]/[subject]/articles/.assets/`
55
+ - Research uses `.xdrs/[scope]/[type]/[subject]/researches/.assets/`
56
+ - Skills use `.xdrs/[scope]/[type]/[subject]/skills/[number]-[skill-name]/.assets/`
57
57
  - **Scopes:**
58
58
  - Short name that defines a group or a package of xdrs
59
59
  - examples: `business-x`, `business-y`, `team-43`, `_core`
@@ -107,6 +107,7 @@ Collectively, these are referred to as XDRs.
107
107
  - `governance`: Engineering governance, risk controls, and compliance mechanics.
108
108
  - Examples: dependency governance, approval policies, mandatory quality checks.
109
109
  - Never use emojis
110
+ - **Links:** Links that reference a parent folder MUST use absolute paths from the repository root with a leading `/` (e.g., `/.xdrs/_core/adrs/principles/001-xdrs-core.md`). Sibling files and child folder references SHOULD use relative paths (e.g., `002-other-doc.md`, `.assets/image.png`, `subdir/file.md`). Never use relative paths that traverse up the directory tree (e.g., `../../.assets/test.png`, `../other.md`); they break when files are moved and are harder to read.
110
111
  - **Indexes**
111
112
  - Keep a canonical index with all XDRs of a certain type+scope in `.xdrs/[scope]/[type]/index.md`
112
113
  - Canonical index requirements:
@@ -125,27 +126,27 @@ Collectively, these are referred to as XDRs.
125
126
  ```text
126
127
  subject/
127
128
  |-- 001-xdr.md
128
- |-- assets/
129
+ |-- .assets/
129
130
  |-- articles/
130
131
  | |-- 001-article.md
131
- | `-- assets/
132
+ | `-- .assets/
132
133
  |-- plans/
133
134
  | |-- 001-plan.md
134
- | `-- assets/
135
+ | `-- .assets/
135
136
  |-- researches/
136
137
  | |-- 001-study.md
137
- | `-- assets/
138
+ | `-- .assets/
138
139
  `-- skills/
139
140
  `-- 001-task/
140
141
  |-- SKILL.md
141
- `-- assets/
142
+ `-- .assets/
142
143
  ```
143
144
 
144
145
  ## References
145
146
 
146
147
  - [_core-adr-002 - XDR standards](002-xdr-standards.md) - Standards for writing individual XDR decision documents
147
- - [001-lint skill](skills/001-lint/SKILL.md) - Skill for reviewing code changes against XDRs
148
- - [002-write-xdr skill](skills/002-write-xdr/SKILL.md) - Skill for creating a new XDR following this standard
148
+ - [001-lint skill](/.xdrs/_core/adrs/principles/skills/001-lint/SKILL.md) - Skill for reviewing code changes against XDRs
149
+ - [002-write-xdr skill](/.xdrs/_core/adrs/principles/skills/002-write-xdr/SKILL.md) - Skill for creating a new XDR following this standard
149
150
  - [_core-adr-003 - Skill standards](003-skill-standards.md)
150
151
  - [_core-adr-004 - Article standards](004-article-standards.md)
151
152
  - [_core-adr-006 - Research standards](006-research-standards.md)
@@ -109,7 +109,7 @@ Question: In the end, state explicitly the question that needs to be answered. E
109
109
  [Optional section with implementation specifics, applicability boundaries, rules, concise examples, or do/don't guidance. This is the answer to the question in the "Context and Problem Statement". (<1300 words)]
110
110
 
111
111
  ## Considered Options
112
- [this section is present ONLY if there was more than one option to choose from]
112
+ [this section is present ONLY if the user explicitely indicated that there were multiple options to choose from while making this decision.]
113
113
 
114
114
  * (CHOSEN) **Option 2** - Brief description of option 2
115
115
  * Reason: Brief description of why this option was accepted, containing the strengths, strategical motivations and it's differential over the other options.
@@ -148,8 +148,8 @@ Question: In the end, state explicitly the question that needs to be answered. E
148
148
  ## References
149
149
 
150
150
  - [_core-adr-001 - XDRs core](001-xdrs-core.md) - Framework elements: types, scopes, subjects, folder structure
151
- - [001-lint skill](skills/001-lint/SKILL.md) - Skill for reviewing code changes against XDRs
152
- - [002-write-xdr skill](skills/002-write-xdr/SKILL.md) - Skill for creating a new XDR following this standard
151
+ - [001-lint skill](/.xdrs/_core/adrs/principles/skills/001-lint/SKILL.md) - Skill for reviewing code changes against XDRs
152
+ - [002-write-xdr skill](/.xdrs/_core/adrs/principles/skills/002-write-xdr/SKILL.md) - Skill for creating a new XDR following this standard
153
153
  - [_core-adr-003 - Skill standards](003-skill-standards.md)
154
154
  - [_core-adr-004 - Article standards](004-article-standards.md)
155
155
  - [_core-adr-006 - Research standards](006-research-standards.md)
@@ -63,7 +63,7 @@ Quick test:
63
63
  SKILL.md # required
64
64
  scripts/ # optional: executable scripts the agent may run
65
65
  references/ # optional: detailed reference material
66
- assets/ # optional: images, templates, data files, and other local resources
66
+ .assets/ # optional: images, templates, data files, and other local resources
67
67
  ```
68
68
 
69
69
  Examples:
@@ -114,9 +114,9 @@ Rules:
114
114
  - `## Overview` SHOULD state the task objective, expected outcome, and relevant prerequisites or tools when they matter.
115
115
  - `## Instructions` SHOULD include verification steps or acceptance criteria at the end of the task, or at the end of major phases when partial validation matters.
116
116
  - For simple structure, flow, layout, or relationship indications, `SKILL.md` SHOULD prefer plain Markdown, tables, or ASCII art instead of external assets.
117
- - Images and other local resource files referenced from `SKILL.md` SHOULD be used only when they are materially necessary and SHOULD live in `assets/` inside the same skill package.
117
+ - Images and other local resource files referenced from `SKILL.md` SHOULD be used only when they are materially necessary and MUST live in `.assets/` inside the same skill package.
118
118
  - Keep `SKILL.md` under 6500 words. Move lengthy reference material to `references/`.
119
- - Reference other files with relative paths from the skill root.
119
+ - Links that reference a parent folder MUST use absolute paths from the repository root with a leading `/`. Sibling files and child folder references SHOULD use relative paths (e.g., `.assets/image.png`, `subdir/file.md`). Never use relative paths that traverse up the directory tree (e.g., `../other.md`).
120
120
  - Always use lowercase file names.
121
121
  - Never use emojis in skill content.
122
122
 
@@ -28,7 +28,7 @@ Articles are Markdown documents placed inside a subject folder alongside decisio
28
28
  - Articles must remain consistent with the XDRs, Research documents, and Skills they reference. When a referenced artifact changes, the article must be reviewed and updated.
29
29
  - Place an article in the subject folder that best matches its topic using the required list of subjects per type defined in `_core-adr-001`. If an article spans more than one subject, place it in `principles`.
30
30
  - For simple structure, flow, layout, or relationship indications, articles SHOULD prefer plain Markdown, tables, or ASCII art instead of external assets.
31
- - Images and other local resource files referenced by an article SHOULD be used only when they are materially necessary and SHOULD live in `articles/assets/` next to the article files.
31
+ - Images and other local resource files referenced by an article SHOULD be used only when they are materially necessary and MUST live in `articles/.assets/` next to the article files.
32
32
  - Always use lowercase file names.
33
33
  - Never use emojis in article content.
34
34
  - Articles should be kept under 1950 words. Move detailed content to referenced XDRs or Skills.
@@ -42,7 +42,7 @@ Articles are Markdown documents placed inside a subject folder alongside decisio
42
42
  [subject]/
43
43
  articles/
44
44
  [number]-[short-title].md
45
- assets/
45
+ .assets/
46
46
  ```
47
47
 
48
48
  Examples:
@@ -89,4 +89,4 @@ when referencing an information from those documents.]
89
89
  - [_core-adr-001 - XDRs core](001-xdrs-core.md)
90
90
  - [_core-adr-003 - Skill standards](003-skill-standards.md)
91
91
  - [_core-adr-006 - Research standards](006-research-standards.md)
92
- - [004-write-article skill](skills/004-write-article/SKILL.md) - Step-by-step instructions for creating a new article
92
+ - [004-write-article skill](/.xdrs/_core/adrs/principles/skills/004-write-article/SKILL.md) - Step-by-step instructions for creating a new article
@@ -48,7 +48,7 @@ Research documents are Markdown files placed inside a subject folder alongside d
48
48
  - Research documents SHOULD link in `## References` to the XDRs, skills, articles, discussions, and external references relevant to the subject or that later cite the work.
49
49
  - A 1:1 relationship between one research document and one decision will likely be common in practice, but it is not required.
50
50
  - One research document MAY also be referenced by multiple XDRs, including a mix of ADRs, BDRs, and EDRs, when the same investigation remains relevant across several decisions.
51
- - Images and other local resource files referenced by a research document SHOULD be used only when they are materially necessary and SHOULD live in `researches/assets/` next to the research files.
51
+ - Images and other local resource files referenced by a research document SHOULD be used only when they are materially necessary and MUST live in `researches/.assets/` next to the research files.
52
52
  - Research file names MUST be lowercase. Never use emojis.
53
53
  - A research document MAY exist before the related XDR is written, or remain after the XDR changes, as long as its status and references stay clear.
54
54
 
@@ -61,7 +61,7 @@ Research documents are Markdown files placed inside a subject folder alongside d
61
61
  [subject]/
62
62
  researches/
63
63
  [number]-[short-title].md
64
- assets/
64
+ .assets/
65
65
  ```
66
66
 
67
67
  Examples:
@@ -133,4 +133,4 @@ Prefer tables, bullets, or ASCII art for simple comparisons. Use external figure
133
133
  - [_core-adr-001 - XDRs core](001-xdrs-core.md)
134
134
  - [_core-adr-003 - Skill standards](003-skill-standards.md)
135
135
  - [_core-adr-004 - Article standards](004-article-standards.md)
136
- - [005-write-research skill](skills/005-write-research/SKILL.md) - Step-by-step instructions for creating a research document
136
+ - [005-write-research skill](/.xdrs/_core/adrs/principles/skills/005-write-research/SKILL.md) - Step-by-step instructions for creating a research document
@@ -31,7 +31,7 @@ Plans are Markdown documents placed inside a subject folder alongside decision r
31
31
  - Plans MUST include an `Expected end date:` field in ISO format (YYYY-MM-DD) inside the `## Proposed Solution` section.
32
32
  - Always use lowercase file names.
33
33
  - Never use emojis in plan content.
34
- - Images and other local resource files referenced by a plan SHOULD live in `plans/assets/` next to the plan files.
34
+ - Images and other local resource files referenced by a plan MUST live in `plans/.assets/` next to the plan files.
35
35
 
36
36
  **Folder layout**
37
37
 
@@ -42,7 +42,7 @@ Plans are Markdown documents placed inside a subject folder alongside decision r
42
42
  [subject]/
43
43
  plans/
44
44
  [number]-[short-title].md
45
- assets/
45
+ .assets/
46
46
  ```
47
47
 
48
48
  Examples:
@@ -135,4 +135,4 @@ Due date: YYYY-MM-DD
135
135
  - [_core-adr-001 - XDRs core](001-xdrs-core.md) - Framework elements: types, scopes, subjects, folder structure
136
136
  - [_core-adr-004 - Article standards](004-article-standards.md) - Companion artifact type for synthetic views
137
137
  - [_core-adr-006 - Research standards](006-research-standards.md) - Companion artifact type for exploratory evidence
138
- - [006-write-plan skill](skills/006-write-plan/SKILL.md) - Step-by-step instructions for creating a new plan
138
+ - [006-write-plan skill](/.xdrs/_core/adrs/principles/skills/006-write-plan/SKILL.md) - Step-by-step instructions for creating a new plan
@@ -17,23 +17,23 @@ same decision system.
17
17
  record the adopted direction. They are the central policy artifact of the framework for the
18
18
  scope and topic they cover. Three decision record types exist: **ADR** for architectural and
19
19
  technical decisions, **BDR** for business and operational decisions, and **EDR** for engineering
20
- implementation decisions. See [_core-adr-001](../001-xdrs-core.md).
20
+ implementation decisions. See [_core-adr-001](/.xdrs/_core/adrs/principles/001-xdrs-core.md).
21
21
  - **Research** captures exploration before or around a decision: constraints, findings, options,
22
22
  pros, and cons. Research supports elaboration, discussion, and updates,
23
23
  but it is not the final rule. A single Research document may inform multiple downstream ADRs,
24
24
  BDRs, or EDRs. If Research and an XDR disagree, the XDR wins. See
25
- [_core-adr-006](../006-research-standards.md).
25
+ [_core-adr-006](/.xdrs/_core/adrs/principles/006-research-standards.md).
26
26
  - **Skills** describe how to execute work under the constraints of the decisions. They add the
27
27
  procedural detail that XDRs intentionally avoid. A Skill may be used by a human, an AI agent, or
28
28
  both. Skills are task-based, should end in a verifiable outcome, and are only mandatory when a
29
- policy such as an XDR makes them mandatory. See [_core-adr-003](../003-skill-standards.md).
29
+ policy such as an XDR makes them mandatory. See [_core-adr-003](/.xdrs/_core/adrs/principles/003-skill-standards.md).
30
30
  - **Articles** are synthetic views, like this one. They explain a topic across multiple XDRs,
31
31
  Research documents, and Skills, helping readers understand the system without making new
32
- decisions. See [_core-adr-004](../004-article-standards.md).
32
+ decisions. See [_core-adr-004](/.xdrs/_core/adrs/principles/004-article-standards.md).
33
33
  - **Plans** describe a problem, a proposed solution, and the approach and activities needed to
34
34
  solve it. They have a clear start and end and a well-defined scope. Plans are ephemeral: they
35
35
  must be deleted after full implementation, with lasting outputs captured as Decisions, Skills,
36
- Articles, or other artifacts. See [_core-adr-007](../007-plan-standards.md).
36
+ Articles, or other artifacts. See [_core-adr-007](/.xdrs/_core/adrs/principles/007-plan-standards.md).
37
37
  - **Indexes and folder structure** are the discovery layer. They do not make decisions by
38
38
  themselves, but they determine how people and agents find the right artifacts, how scopes
39
39
  override one another, and how a large set of decisions remains navigable.
@@ -139,7 +139,7 @@ guidance, and the explanatory overview close together without collapsing them in
139
139
 
140
140
  ### Guidelines
141
141
 
142
- Follow [_core-adr-001](../001-xdrs-core.md) and [_core-adr-002](../002-xdr-standards.md) strictly. Key rules:
142
+ Follow [_core-adr-001](/.xdrs/_core/adrs/principles/001-xdrs-core.md) and [_core-adr-002](/.xdrs/_core/adrs/principles/002-xdr-standards.md) strictly. Key rules:
143
143
 
144
144
  - Use **mandatory language** (`must`, `never`, `required`) for non-negotiable rules and
145
145
  **advisory language** (`should`, `recommended`) for guidance.
@@ -157,13 +157,13 @@ Follow [_core-adr-001](../001-xdrs-core.md) and [_core-adr-002](../002-xdr-stand
157
157
  - **New subject** — create the subject folder under the existing scope+type path. Add an
158
158
  allowed subject or use `principles` if none fits (propose a new subject via a `_core` ADR).
159
159
  - **New research** — add a `researches/[number]-[short-title].md` inside the relevant subject
160
- folder, following [_core-adr-006](../006-research-standards.md).
160
+ folder, following [_core-adr-006](/.xdrs/_core/adrs/principles/006-research-standards.md).
161
161
  - **New skill** — add a `skills/[number]-[skill-name]/SKILL.md` inside the relevant subject
162
- folder, following [_core-adr-003](../003-skill-standards.md).
162
+ folder, following [_core-adr-003](/.xdrs/_core/adrs/principles/003-skill-standards.md).
163
163
  - **New article** — add an `articles/[number]-[short-title].md` inside the relevant subject
164
- folder, following [_core-adr-004](../004-article-standards.md).
164
+ folder, following [_core-adr-004](/.xdrs/_core/adrs/principles/004-article-standards.md).
165
165
  - **New plan** — add a `plans/[number]-[short-title].md` inside the relevant subject
166
- folder, following [_core-adr-007](../007-plan-standards.md).
166
+ folder, following [_core-adr-007](/.xdrs/_core/adrs/principles/007-plan-standards.md).
167
167
 
168
168
  ### Using XDRs in your own project
169
169
 
@@ -181,15 +181,15 @@ Follow [_core-adr-001](../001-xdrs-core.md) and [_core-adr-002](../002-xdr-stand
181
181
 
182
182
  ## References
183
183
 
184
- - [_core-adr-001](../001-xdrs-core.md) - XDR elements: types, scopes, subjects, folder structure
185
- - [_core-adr-002](../002-xdr-standards.md) - XDR document standards and mandatory template
186
- - [_core-adr-003](../003-skill-standards.md) - Skill standards and co-location rules
187
- - [_core-adr-004](../004-article-standards.md) - Article standards
188
- - [_core-adr-006](../006-research-standards.md) - Research standards
189
- - [_core-adr-007](../007-plan-standards.md) - Plan standards
190
- - [001-lint skill](../skills/001-lint/SKILL.md) - Linting code against XDRs
191
- - [002-write-xdr skill](../skills/002-write-xdr/SKILL.md) - Writing a new XDR
192
- - [003-write-skill skill](../skills/003-write-skill/SKILL.md) - Writing a new skill
193
- - [004-write-article skill](../skills/004-write-article/SKILL.md) - Writing a new article
194
- - [005-write-research skill](../skills/005-write-research/SKILL.md) - Writing a new research document
195
- - [_core-adr-005](../005-semantic-versioning-for-xdr-packages.md) - Semantic versioning rules for XDR packages
184
+ - [_core-adr-001](/.xdrs/_core/adrs/principles/001-xdrs-core.md) - XDR elements: types, scopes, subjects, folder structure
185
+ - [_core-adr-002](/.xdrs/_core/adrs/principles/002-xdr-standards.md) - XDR document standards and mandatory template
186
+ - [_core-adr-003](/.xdrs/_core/adrs/principles/003-skill-standards.md) - Skill standards and co-location rules
187
+ - [_core-adr-004](/.xdrs/_core/adrs/principles/004-article-standards.md) - Article standards
188
+ - [_core-adr-006](/.xdrs/_core/adrs/principles/006-research-standards.md) - Research standards
189
+ - [_core-adr-007](/.xdrs/_core/adrs/principles/007-plan-standards.md) - Plan standards
190
+ - [001-lint skill](/.xdrs/_core/adrs/principles/skills/001-lint/SKILL.md) - Linting code against XDRs
191
+ - [002-write-xdr skill](/.xdrs/_core/adrs/principles/skills/002-write-xdr/SKILL.md) - Writing a new XDR
192
+ - [003-write-skill skill](/.xdrs/_core/adrs/principles/skills/003-write-skill/SKILL.md) - Writing a new skill
193
+ - [004-write-article skill](/.xdrs/_core/adrs/principles/skills/004-write-article/SKILL.md) - Writing a new article
194
+ - [005-write-research skill](/.xdrs/_core/adrs/principles/skills/005-write-research/SKILL.md) - Writing a new research document
195
+ - [_core-adr-005](/.xdrs/_core/adrs/principles/005-semantic-versioning-for-xdr-packages.md) - Semantic versioning rules for XDR packages
@@ -88,7 +88,7 @@ Scope: [scope identifier]
88
88
 
89
89
  ## References
90
90
 
91
- - [_core-adr-001 - XDRs core](../../001-xdrs-core.md)
92
- - [_core-adr-002 - XDR standards](../../002-xdr-standards.md)
93
- - [_core-adr-003 - Skill standards](../../003-skill-standards.md)
91
+ - [_core-adr-001 - XDRs core](/.xdrs/_core/adrs/principles/001-xdrs-core.md)
92
+ - [_core-adr-002 - XDR standards](/.xdrs/_core/adrs/principles/002-xdr-standards.md)
93
+ - [_core-adr-003 - Skill standards](/.xdrs/_core/adrs/principles/003-skill-standards.md)
94
94
 
@@ -123,7 +123,7 @@ valid-from: [Optional. ISO date YYYY-MM-DD from when enforcement begins]
123
123
  ### Implementation Details
124
124
  [Rules, applicability boundaries, concise examples, and optional do/don't guidance — under 1300 words]
125
125
 
126
- ## Considered Options (if meaningful options exist)
126
+ ## Considered Options (only if the user explicitly indicated multiple options)
127
127
 
128
128
  ## Conflicts (mandatory if conflicts found in Phase 3)
129
129
 
@@ -140,8 +140,9 @@ Mandatory rules to apply while drafting:
140
140
  - Keep the decision itself authoritative in the XDR. Supporting artifacts may elaborate, but they should not restate the full decision when a short reference is enough.
141
141
  - Make clear when the decision applies and any important exception boundaries.
142
142
  - Keep exploratory option analysis in a related Research document when it would distract from the final decision text.
143
- - Prefer plain Markdown, tables, or ASCII art for simple structure, flow, layout, or relationship indications.
144
- - If the XDR genuinely needs local images or supporting files, store them in `.xdrs/[scope]/[type]/[subject]/assets/` and link with a relative path.
143
+ - Prefer plain Markdown, tables, Mermaid.js (sequence, state, activity, entity diagrams), or ASCII art for simple structure, flow, layout, or relationship indications.
144
+ - If the XDR genuinely needs local images or supporting files, store them in `.xdrs/[scope]/[type]/[subject]/.assets/` and link them using a same-folder relative path (e.g., `.assets/image.png`).
145
+ - Links that reference a parent folder MUST use absolute paths from the repository root with a leading `/` (e.g., `/.xdrs/_core/adrs/principles/001-xdrs-core.md`). Sibling files and child folder references SHOULD use relative paths (e.g., `002-other-doc.md`, `.assets/image.png`, `subdir/file.md`). Never use relative paths that traverse up the directory tree (e.g., `../../.assets/test.png`, `../other.md`).
145
146
  - No emojis. Lowercase filenames.
146
147
  - Target under 1300 words total; under 2600 words for complex decisions.
147
148
 
@@ -187,6 +188,6 @@ If any check fails, revise and re-run this phase before proceeding.
187
188
 
188
189
  ## References
189
190
 
190
- - [_core-adr-001 - XDRs core](../../001-xdrs-core.md)
191
- - [_core-adr-002 - XDR standards](../../002-xdr-standards.md)
192
- - [_core-adr-003 - Skill standards](../../003-skill-standards.md)
191
+ - [_core-adr-001 - XDRs core](/.xdrs/_core/adrs/principles/001-xdrs-core.md)
192
+ - [_core-adr-002 - XDR standards](/.xdrs/_core/adrs/principles/002-xdr-standards.md)
193
+ - [_core-adr-003 - Skill standards](/.xdrs/_core/adrs/principles/003-skill-standards.md)
@@ -97,8 +97,9 @@ Rules:
97
97
  - Do not duplicate content from referenced XDRs — link instead.
98
98
  - Do not present the skill itself as policy; mandatory behavior must come from referenced XDRs or other policy artifacts.
99
99
  - When the skill depends on XDRs, make the activation logic and instructions consistent with the XDR metadata so the skill does not operationalize inactive or out-of-scope decisions.
100
- - Prefer plain Markdown, tables, or ASCII art for simple structure, flow, layout, or relationship indications.
101
- - If `SKILL.md` genuinely needs local images or supporting files, store them in `.xdrs/[scope]/[type]/[subject]/skills/[number]-[skill-name]/assets/` and link with a relative path.
100
+ - Prefer plain Markdown, tables, Mermaid.js (sequence, state, activity, entity diagrams), or ASCII art for simple structure, flow, layout, or relationship indications.
101
+ - If `SKILL.md` genuinely needs local images or supporting files, store them in `.xdrs/[scope]/[type]/[subject]/skills/[number]-[skill-name]/.assets/` and link them using a same-folder relative path (e.g., `.assets/image.png`).
102
+ - Links that reference a parent folder MUST use absolute paths from the repository root with a leading `/` (e.g., `/.xdrs/_core/adrs/principles/001-xdrs-core.md`). Sibling files and child folder references SHOULD use relative paths (e.g., `002-other-doc.md`, `.assets/image.png`, `subdir/file.md`). Never use relative paths that traverse up the directory tree (e.g., `../../.assets/test.png`, `../other.md`).
102
103
  - No emojis. Lowercase filenames. Target under 6500 words.
103
104
 
104
105
  ### Phase 5: Review the Draft
@@ -154,6 +155,6 @@ If any check fails, revise before continuing.
154
155
 
155
156
  ## References
156
157
 
157
- - [_core-adr-003 - Skill standards](../../003-skill-standards.md)
158
- - [_core-adr-001 - XDRs core](../../001-xdrs-core.md)
159
- - [002-write-xdr skill](../002-write-xdr/SKILL.md)
158
+ - [_core-adr-003 - Skill standards](/.xdrs/_core/adrs/principles/003-skill-standards.md)
159
+ - [_core-adr-001 - XDRs core](/.xdrs/_core/adrs/principles/001-xdrs-core.md)
160
+ - [002-write-xdr skill](/.github/skills/002-write-xdr/SKILL.md)
@@ -84,7 +84,7 @@ when referencing information from those documents. Keep under 1950 words total.]
84
84
 
85
85
  ## References
86
86
 
87
- - [XDR id or Skill name](relative/path/to/file.md) - Brief description of relevance
87
+ - [XDR id or Skill name](/.xdrs/[scope]/[type]/[subject]/[number]-[short-title].md) - Brief description of relevance
88
88
  ```
89
89
 
90
90
  Rules to apply while drafting:
@@ -93,8 +93,9 @@ Rules to apply while drafting:
93
93
  - Every factual claim must link back to the authoritative XDR or Skill.
94
94
  - If the article advises readers what to do, clearly separate active/applicable XDRs from background, historical, or out-of-scope ones.
95
95
  - Never reproduce decision text verbatim; summarize and link.
96
- - Prefer plain Markdown, tables, or ASCII art for simple structure, flow, layout, or relationship indications.
97
- - If the article genuinely needs local images or supporting files, store them in `.xdrs/[scope]/[type]/[subject]/articles/assets/` and link with a relative path.
96
+ - Prefer plain Markdown, tables, Mermaid.js (sequence, state, activity, entity diagrams), or ASCII art for simple structure, flow, layout, or relationship indications.
97
+ - If the article genuinely needs local images or supporting files, store them in `.xdrs/[scope]/[type]/[subject]/articles/.assets/` and link them using a same-folder relative path (e.g., `.assets/image.png`).
98
+ - Links that reference a parent folder MUST use absolute paths from the repository root with a leading `/` (e.g., `/.xdrs/_core/adrs/principles/001-xdrs-core.md`). Sibling files and child folder references SHOULD use relative paths (e.g., `002-other-doc.md`, `.assets/image.png`, `subdir/file.md`). Never use relative paths that traverse up the directory tree (e.g., `../../.assets/test.png`, `../other.md`).
98
99
  - Keep the article under 1950 words; move detailed content to XDRs or Skills.
99
100
  - Use lowercase file names. Never use emojis.
100
101
  - If a conflict exists between the article and a Decision Record, note it and defer to the XDR.
@@ -139,6 +140,6 @@ Rules to apply while drafting:
139
140
 
140
141
  ## References
141
142
 
142
- - [_core-adr-004 - Article standards](../../004-article-standards.md)
143
- - [_core-adr-006 - Research standards](../../006-research-standards.md)
144
- - [_core-adr-001 - XDRs core](../../001-xdrs-core.md)
143
+ - [_core-adr-004 - Article standards](/.xdrs/_core/adrs/principles/004-article-standards.md)
144
+ - [_core-adr-006 - Research standards](/.xdrs/_core/adrs/principles/006-research-standards.md)
145
+ - [_core-adr-001 - XDRs core](/.xdrs/_core/adrs/principles/001-xdrs-core.md)
@@ -134,8 +134,9 @@ Rules:
134
134
  - Keep traceability to related XDRs, skills, articles, discussions, and external sources primarily in `## References`.
135
135
  - Use good-enough evidence. Experienced professional judgment is allowed, but the conclusions still need support that other colleagues can inspect and learn from.
136
136
  - Ensure the methods and test conditions are reproducible enough for an experienced professional to rerun or evolve the critical parts later.
137
- - Prefer plain Markdown, bullet points, tables, or ASCII art for simple explanations and comparisons, especially in the introduction and results.
138
- - If the research genuinely needs local images or supporting files, store them in `.xdrs/[scope]/[type]/[subject]/researches/assets/` and link with a relative path.
137
+ - Prefer plain Markdown, tables, Mermaid.js (sequence, state, activity, entity diagrams), bullet points, or ASCII art for simple explanations and comparisons, especially in the introduction and results.
138
+ - If the research genuinely needs local images or supporting files, store them in `.xdrs/[scope]/[type]/[subject]/researches/.assets/` and link them using a same-folder relative path (e.g., `.assets/image.png`).
139
+ - Links that reference a parent folder MUST use absolute paths from the repository root with a leading `/` (e.g., `/.xdrs/_core/adrs/principles/001-xdrs-core.md`). Sibling files and child folder references SHOULD use relative paths (e.g., `002-other-doc.md`, `.assets/image.png`, `subdir/file.md`). Never use relative paths that traverse up the directory tree (e.g., `../../.assets/test.png`, `../other.md`).
139
140
  - Keep section word limits within the standard and keep the document under 5000 words total unless the introduction explicitly states that a very detailed analysis is required.
140
141
 
141
142
  ### Phase 8: Check Section Goals
@@ -266,9 +267,9 @@ If any check fails, revise before continuing.
266
267
 
267
268
  ## References
268
269
 
269
- - [_core-adr-006 - Research standards](../../006-research-standards.md)
270
- - [_core-adr-001 - XDRs core](../../001-xdrs-core.md)
271
- - [002-write-xdr skill](../002-write-xdr/SKILL.md)
270
+ - [_core-adr-006 - Research standards](/.xdrs/_core/adrs/principles/006-research-standards.md)
271
+ - [_core-adr-001 - XDRs core](/.xdrs/_core/adrs/principles/001-xdrs-core.md)
272
+ - [002-write-xdr skill](/.github/skills/002-write-xdr/SKILL.md)
272
273
 
273
274
  ## Constraints
274
275
 
@@ -114,7 +114,8 @@ Rules to apply while drafting:
114
114
  - If the plan scope is too large for 2 years, break it into multiple plans.
115
115
  - Remember that this plan must be deleted after full implementation. Write it with that ephemeral nature in mind.
116
116
  - Prefer plain Markdown, tables, or ASCII art for structure and flow.
117
- - If the plan genuinely needs local images or supporting files, store them in `.xdrs/[scope]/[type]/[subject]/plans/assets/` and link with a relative path.
117
+ - If the plan genuinely needs local images or supporting files, store them in `.xdrs/[scope]/[type]/[subject]/plans/.assets/` and link them using a same-folder relative path (e.g., `.assets/image.png`).
118
+ - Links that reference a parent folder MUST use absolute paths from the repository root with a leading `/` (e.g., `/.xdrs/_core/adrs/principles/001-xdrs-core.md`). Sibling files and child folder references SHOULD use relative paths (e.g., `002-other-doc.md`, `.assets/image.png`, `subdir/file.md`). Never use relative paths that traverse up the directory tree (e.g., `../../.assets/test.png`, `../other.md`).
118
119
  - Use lowercase file names. Never use emojis.
119
120
 
120
121
  ### Phase 6: Place and Register
@@ -152,6 +153,6 @@ Rules to apply while drafting:
152
153
 
153
154
  ## References
154
155
 
155
- - [_core-adr-001 - XDRs core](../../001-xdrs-core.md)
156
- - [_core-adr-007 - Plan standards](../../007-plan-standards.md)
157
- - [_core-adr-002 - XDR standards](../../002-xdr-standards.md)
156
+ - [_core-adr-001 - XDRs core](/.xdrs/_core/adrs/principles/001-xdrs-core.md)
157
+ - [_core-adr-007 - Plan standards](/.xdrs/_core/adrs/principles/007-plan-standards.md)
158
+ - [_core-adr-002 - XDR standards](/.xdrs/_core/adrs/principles/002-xdr-standards.md)
@@ -47,6 +47,6 @@ Disallowed:
47
47
 
48
48
  ## References
49
49
 
50
- - [_core-adr-001](../../adrs/principles/001-xdrs-core.md)
51
- - [_core-adr-002](../../adrs/principles/002-xdr-standards.md)
52
- - [_core-adr-003](../../adrs/principles/003-skill-standards.md)
50
+ - [_core-adr-001](/.xdrs/_core/adrs/principles/001-xdrs-core.md)
51
+ - [_core-adr-002](/.xdrs/_core/adrs/principles/002-xdr-standards.md)
52
+ - [_core-adr-003](/.xdrs/_core/adrs/principles/003-skill-standards.md)
package/README.md CHANGED
@@ -86,20 +86,20 @@ This is especially important for BDRs: because business rules govern decisions t
86
86
  index.md # canonical index for this scope+type
87
87
  [subject]/
88
88
  [number]-[short-title].md # individual decision record
89
- assets/ # optional local resources for subject-level XDR files
89
+ .assets/ # optional local resources for subject-level XDR files
90
90
  researches/ # optional decision-backing research documents
91
91
  [number]-[short-title].md
92
- assets/
92
+ .assets/
93
93
  skills/ # optional skill packages for humans and AI agents
94
94
  [number]-[skill-name]/
95
95
  SKILL.md
96
- assets/
96
+ .assets/
97
97
  articles/ # optional synthetic views over XDRs, Research, and Skills
98
98
  [number]-[short-title].md
99
- assets/
99
+ .assets/
100
100
  plans/ # optional ephemeral execution plans
101
101
  [number]-[short-title].md
102
- assets/
102
+ .assets/
103
103
  ```
104
104
 
105
105
  Document types:
@@ -129,7 +129,7 @@ Each scope manages its own set of XDR artifacts independently. Scope owners disc
129
129
 
130
130
  Once a set of decisions is ready to share, scope owners pack the relevant `.xdrs/[scope]/` folder into a versioned npm package using a tool such as [filedist](https://github.com/flaviostutz/filedist) and publish it to an npm registry, either public or a company-internal one. Versioning gives consumers explicit control over which revision of a scope's decisions they adopt, avoiding situations where a single breaking policy change is forced on all consumers at once.
131
131
 
132
- The same applies to Research documents, skills, articles, and any sibling `assets/` folders: because they live alongside XDRs inside the scope folder, they are included in the same package and published together.
132
+ The same applies to Research documents, skills, articles, and any sibling `.assets/` folders: because they live alongside XDRs inside the scope folder, they are included in the same package and published together.
133
133
 
134
134
  ### Usage
135
135
 
@@ -168,7 +168,7 @@ The `lint` command reads `./.xdrs/**` from the given workspace path and checks c
168
168
  - root index coverage for all discovered canonical indexes
169
169
  - XDR metadata section placement and `valid-from` / `applied-to` field format
170
170
  - local markdown links between XDR documents, skills, articles, researches, and plans (excluding fenced code blocks)
171
- - local image and `assets/` links resolving inside the sibling `assets/` folder for each document
171
+ - local image and `.assets/` links resolving inside the sibling `.assets/` folder for each document
172
172
 
173
173
  Examples:
174
174
 
package/lib/lint.js CHANGED
@@ -22,7 +22,7 @@ const NUMBERED_FILE_RE = /^(\d{3,})-([a-z0-9-]+)\.md$/;
22
22
  const NUMBERED_DIR_RE = /^(\d{3,})-([a-z0-9-]+)$/;
23
23
  const REQUIRED_ROOT_INDEX_TEXT = 'XDRs in scopes listed last override the ones listed first';
24
24
  const SUBJECT_ARTIFACT_DIRS = new Set(['skills', 'articles', 'researches', 'plans']);
25
- const RESOURCE_DIR_NAME = 'assets';
25
+ const RESOURCE_DIR_NAME = '.assets';
26
26
  const IMAGE_EXTENSIONS = new Set(['.png', '.jpg', '.jpeg', '.gif', '.svg', '.webp', '.bmp']);
27
27
 
28
28
  function runLintCli(args) {
@@ -96,12 +96,13 @@ function lintWorkspace(targetPath, options = {}) {
96
96
 
97
97
  function lintRootIndex(rootIndexPath, xdrsRoot, actualTypeIndexes, errors) {
98
98
  const content = fs.readFileSync(rootIndexPath, 'utf8');
99
+ const repoRoot = path.dirname(xdrsRoot);
99
100
 
100
101
  if (!content.includes(REQUIRED_ROOT_INDEX_TEXT)) {
101
102
  errors.push(`Root index is missing required override text: ${toDisplayPath(rootIndexPath)}`);
102
103
  }
103
104
 
104
- const links = parseLocalLinks(content, path.dirname(rootIndexPath));
105
+ const links = parseLocalLinks(content, path.dirname(rootIndexPath), repoRoot);
105
106
  for (const linkPath of links) {
106
107
  if (!fs.existsSync(linkPath)) {
107
108
  errors.push(`Broken link in root index: ${displayPath(rootIndexPath, linkPath)}`);
@@ -572,7 +573,8 @@ function lintPlanExpectedEndDate(content, filePath, errors) {
572
573
 
573
574
  function lintTypeIndex(indexPath, xdrsRoot, artifacts, errors) {
574
575
  const content = fs.readFileSync(indexPath, 'utf8');
575
- const localLinks = parseLocalLinks(content, path.dirname(indexPath));
576
+ const repoRoot = path.dirname(xdrsRoot);
577
+ const localLinks = parseLocalLinks(content, path.dirname(indexPath), repoRoot);
576
578
  const linkedSet = new Set();
577
579
  const scopeName = path.relative(xdrsRoot, indexPath).split(path.sep)[0];
578
580
  const localScopePath = normalizePath(path.join(xdrsRoot, '_local'));
@@ -603,15 +605,24 @@ function lintDocumentLinks(documentPath, xdrsRoot, scopeName, errors) {
603
605
  const documentDir = path.dirname(documentPath);
604
606
  const resourceDir = path.join(documentDir, RESOURCE_DIR_NAME);
605
607
  const localScopePath = normalizePath(path.join(xdrsRoot, '_local'));
608
+ const repoRoot = path.dirname(xdrsRoot);
606
609
 
607
610
  for (let index = 0; index < lines.length; index += 1) {
608
611
  if (ignoredLines[index]) {
609
612
  continue;
610
613
  }
611
614
 
612
- for (const link of parseLocalLinkTargets(lines[index], documentDir)) {
615
+ for (const link of parseLocalLinkTargets(lines[index], documentDir, repoRoot)) {
613
616
  const isResourceLink = shouldValidateResourceLink(link.rawTarget);
614
617
 
618
+ if (!isResourceLink && !link.isAbsolutePath) {
619
+ const relativeToDoc = path.relative(documentDir, link.resolvedPath);
620
+ const goesUpToParent = relativeToDoc.startsWith('..');
621
+ if (goesUpToParent) {
622
+ errors.push(`Relative links to parent directories must use absolute paths starting with / in ${toDisplayPath(documentPath)}:${index + 1}: ${link.rawTarget}`);
623
+ }
624
+ }
625
+
615
626
  if (!fs.existsSync(link.resolvedPath)) {
616
627
  if (isResourceLink) {
617
628
  errors.push(`Broken asset link in ${toDisplayPath(documentPath)}: ${link.rawTarget}`);
@@ -632,11 +643,11 @@ function lintDocumentLinks(documentPath, xdrsRoot, scopeName, errors) {
632
643
  }
633
644
  }
634
645
 
635
- function parseLocalLinks(markdown, baseDir) {
636
- return parseLocalLinkTargets(markdown, baseDir).map((link) => link.resolvedPath);
646
+ function parseLocalLinks(markdown, baseDir, repoRoot) {
647
+ return parseLocalLinkTargets(markdown, baseDir, repoRoot).map((link) => link.resolvedPath);
637
648
  }
638
649
 
639
- function parseLocalLinkTargets(markdown, baseDir) {
650
+ function parseLocalLinkTargets(markdown, baseDir, repoRoot) {
640
651
  const links = [];
641
652
  const linkRe = /!?\[[^\]]+\]\(([^)]+)\)/g;
642
653
  let match = linkRe.exec(markdown);
@@ -644,9 +655,13 @@ function parseLocalLinkTargets(markdown, baseDir) {
644
655
  const rawTarget = match[1].trim();
645
656
  const normalizedTarget = normalizeLocalLinkTarget(rawTarget);
646
657
  if (normalizedTarget) {
658
+ const isAbsolutePath = normalizedTarget.startsWith('/');
647
659
  links.push({
648
660
  rawTarget,
649
- resolvedPath: path.resolve(baseDir, normalizedTarget)
661
+ resolvedPath: isAbsolutePath && repoRoot
662
+ ? path.join(repoRoot, normalizedTarget)
663
+ : path.resolve(baseDir, normalizedTarget),
664
+ isAbsolutePath
650
665
  });
651
666
  }
652
667
  match = linkRe.exec(markdown);
package/lib/lint.test.js CHANGED
@@ -145,7 +145,7 @@ test('allows _local XDR linking to another _local scope document', () => {
145
145
  '',
146
146
  '## Context and Problem Statement',
147
147
  '',
148
- 'See [second](002-second.md).',
148
+ 'See [second](/.xdrs/_local/adrs/principles/002-second.md).',
149
149
  ''
150
150
  ].join('\n'),
151
151
  '.xdrs/_local/adrs/principles/002-second.md': [
@@ -187,6 +187,110 @@ test('reports non-_local canonical index linking to _local scope document', () =
187
187
  expect(result.errors.join('\n')).toContain('Non-_local document must not link into _local scope');
188
188
  });
189
189
 
190
+ test('reports relative non-asset links to parent directories in XDR documents', () => {
191
+ const workspaceRoot = createWorkspace('parent-dir-relative-link-in-xdr', {
192
+ '.xdrs/index.md': rootIndex(),
193
+ '.xdrs/_local/adrs/index.md': localAdrIndex([
194
+ '- [001-main](principles/001-main.md) - Main decision'
195
+ ]),
196
+ '.xdrs/_local/adrs/principles/001-main.md': xdrDocument('See [other](../other.md).'),
197
+ });
198
+
199
+ const result = lintWorkspace(workspaceRoot);
200
+
201
+ expect(result.errors.join('\n')).toContain('Relative links to parent directories must use absolute paths');
202
+ expect(result.errors.join('\n')).toContain('../other.md');
203
+ });
204
+
205
+ test('allows child directory relative non-asset links in XDR documents', () => {
206
+ const workspaceRoot = createWorkspace('child-dir-relative-link-in-xdr', {
207
+ '.xdrs/index.md': rootIndex(),
208
+ '.xdrs/_local/adrs/index.md': localAdrIndex([
209
+ '- [001-main](principles/001-main.md) - Main decision'
210
+ ]),
211
+ '.xdrs/_local/adrs/principles/001-main.md': xdrDocument('See [skill](skills/001-lint/SKILL.md).'),
212
+ });
213
+ const skillDir = path.join(workspaceRoot, '.xdrs/_local/adrs/principles/skills/001-lint');
214
+ fs.mkdirSync(skillDir, { recursive: true });
215
+ fs.writeFileSync(path.join(skillDir, 'SKILL.md'), '---\nname: 001-lint\ndescription: test skill\n---\n# Skill');
216
+
217
+ const result = lintWorkspace(workspaceRoot);
218
+
219
+ expect(result.errors.join('\n')).not.toContain('Relative links to parent directories');
220
+ expect(result.errors.join('\n')).not.toContain('Broken local link');
221
+ });
222
+
223
+ test('allows same-directory relative non-asset links in XDR documents', () => {
224
+ const workspaceRoot = createWorkspace('same-dir-relative-link-in-xdr', {
225
+ '.xdrs/index.md': rootIndex(),
226
+ '.xdrs/_local/adrs/index.md': localAdrIndex([
227
+ '- [001-main](principles/001-main.md) - Main decision',
228
+ '- [002-other](principles/002-other.md) - Other decision'
229
+ ]),
230
+ '.xdrs/_local/adrs/principles/001-main.md': xdrDocument('See [other](002-other.md).'),
231
+ '.xdrs/_local/adrs/principles/002-other.md': xdrDocument('Other body.').replace('_local-adr-001-main', '_local-adr-002-other').replace('# _local-adr-001: Main decision', '# _local-adr-002: Other decision'),
232
+ });
233
+
234
+ const result = lintWorkspace(workspaceRoot);
235
+
236
+ expect(result.errors.join('\n')).not.toContain('absolute paths');
237
+ expect(result.errors.join('\n')).not.toContain('Broken local link');
238
+ });
239
+
240
+ test('allows relative asset links in XDR documents', () => {
241
+ const workspaceRoot = createWorkspace('relative-asset-link', {
242
+ '.xdrs/index.md': rootIndex(),
243
+ '.xdrs/_local/adrs/index.md': localAdrIndex([
244
+ '- [001-main](principles/001-main.md) - Main decision'
245
+ ]),
246
+ '.xdrs/_local/adrs/principles/001-main.md': xdrDocument('See ![diagram](.assets/diagram.png).'),
247
+ });
248
+ const assetsDir = path.join(workspaceRoot, '.xdrs/_local/adrs/principles/.assets');
249
+ fs.mkdirSync(assetsDir, { recursive: true });
250
+ fs.writeFileSync(path.join(assetsDir, 'diagram.png'), Buffer.alloc(0));
251
+
252
+ const result = lintWorkspace(workspaceRoot);
253
+
254
+ expect(result.errors.join('\n')).not.toContain('Non-asset links must use absolute paths');
255
+ expect(result.errors.join('\n')).not.toContain('Broken asset link');
256
+ });
257
+
258
+ test('reports absolute path link that is broken', () => {
259
+ const workspaceRoot = createWorkspace('broken-absolute-link', {
260
+ '.xdrs/index.md': rootIndex(),
261
+ '.xdrs/_local/adrs/index.md': localAdrIndex([
262
+ '- [001-main](principles/001-main.md) - Main decision'
263
+ ]),
264
+ '.xdrs/_local/adrs/principles/001-main.md': xdrDocument('See [missing](/.xdrs/_local/adrs/principles/999-nonexistent.md).'),
265
+ });
266
+
267
+ const result = lintWorkspace(workspaceRoot);
268
+
269
+ expect(result.errors.join('\n')).toContain('Broken local link');
270
+ expect(result.errors.join('\n')).toContain('999-nonexistent.md');
271
+ expect(result.errors.join('\n')).not.toContain('Non-asset links must use absolute paths');
272
+ });
273
+
274
+ test('reports non-_local XDR linking to _local scope via absolute path', () => {
275
+ const workspaceRoot = createWorkspace('abs-non-local-links-to-local', {
276
+ '.xdrs/index.md': rootIndex(),
277
+ '.xdrs/_local/adrs/index.md': localAdrIndex([
278
+ '- [001-main](principles/001-main.md) - Main decision'
279
+ ]),
280
+ '.xdrs/_local/adrs/principles/001-main.md': xdrDocument('Local decision.'),
281
+ '.xdrs/myteam/adrs/index.md': teamAdrIndex([
282
+ '- [001-team](principles/001-team.md) - Team decision'
283
+ ]),
284
+ '.xdrs/myteam/adrs/principles/001-team.md': teamXdrDocument(
285
+ 'See [local doc](/.xdrs/_local/adrs/principles/001-main.md).'
286
+ ),
287
+ });
288
+
289
+ const result = lintWorkspace(workspaceRoot, { ignoreReadOnly: false });
290
+
291
+ expect(result.errors.join('\n')).toContain('Non-_local document must not link into _local scope');
292
+ });
293
+
190
294
  function teamAdrIndex(entries) {
191
295
  return [
192
296
  '# myteam ADR Index',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xdrs-core",
3
- "version": "0.17.1",
3
+ "version": "0.19.0",
4
4
  "description": "A standard way to organize Decision Records (XDRs) across scopes, subjects, and teams so that AI agents can reliably query and follow them.",
5
5
  "repository": {
6
6
  "type": "git",