xdrs-core 0.41.1 → 0.43.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.
- package/.xdrs/_core/adrs/index.md +2 -1
- package/.xdrs/_core/adrs/principles/{001-xdrs-core.md → 001-xdrs-standards.md} +4 -4
- package/.xdrs/_core/adrs/principles/002-policy-standards.md +2 -2
- package/.xdrs/_core/adrs/principles/003-skill-standards.md +1 -1
- package/.xdrs/_core/adrs/principles/004-article-standards.md +1 -1
- package/.xdrs/_core/adrs/principles/006-research-standards.md +1 -1
- package/.xdrs/_core/adrs/principles/007-plan-standards.md +1 -1
- package/.xdrs/_core/adrs/principles/008-policy-structured-standards.md +1 -1
- package/.xdrs/_core/adrs/principles/009-presentation-standards.md +1 -1
- package/.xdrs/_core/adrs/principles/010-scope-governance.md +76 -27
- package/.xdrs/_core/adrs/principles/011-core-scope-type.md +3 -3
- package/.xdrs/_core/adrs/principles/012-reference-scope-type.md +1 -1
- package/.xdrs/_core/adrs/principles/013-platform-scope-type.md +1 -1
- package/.xdrs/_core/adrs/principles/014-standard-scope-type.md +1 -1
- package/.xdrs/_core/adrs/principles/015-local-scope-type.md +1 -1
- package/.xdrs/_core/adrs/principles/016-policy-subjects.md +1 -1
- package/.xdrs/_core/adrs/principles/017-policy-numbering-ranges.md +1 -1
- package/.xdrs/_core/adrs/principles/018-external-path-symlinks.md +49 -0
- package/.xdrs/_core/adrs/principles/articles/.assets/001-xdrs-overview-slides.md +1 -1
- package/.xdrs/_core/adrs/principles/articles/001-xdrs-overview.md +3 -3
- package/.xdrs/_core/adrs/principles/skills/.assets/conflict-detection.md +76 -0
- package/.xdrs/_core/adrs/principles/skills/001-review/001-review.test.int.js +2 -2
- package/.xdrs/_core/adrs/principles/skills/001-review/001-review.test.int.report +2 -2
- package/.xdrs/_core/adrs/principles/skills/001-review/SKILL.md +5 -4
- package/.xdrs/_core/adrs/principles/skills/002-write-policy/SKILL.md +12 -9
- package/.xdrs/_core/adrs/principles/skills/003-write-skill/SKILL.md +9 -6
- package/.xdrs/_core/adrs/principles/skills/004-write-article/004-write-article.test.int.js +1 -1
- package/.xdrs/_core/adrs/principles/skills/004-write-article/004-write-article.test.int.report +1 -1
- package/.xdrs/_core/adrs/principles/skills/004-write-article/SKILL.md +9 -6
- package/.xdrs/_core/adrs/principles/skills/005-write-research/005-write-research.test.int.report +1 -1
- package/.xdrs/_core/adrs/principles/skills/005-write-research/SKILL.md +9 -6
- package/.xdrs/_core/adrs/principles/skills/006-write-plan/SKILL.md +9 -6
- package/.xdrs/_core/adrs/principles/skills/007-write-presentation/SKILL.md +7 -4
- package/.xdrs/_core/adrs/principles/skills/008-write-xdrs-doc/SKILL.md +5 -2
- package/.xdrs/_core/index.md +5 -3
- package/README.md +32 -2
- package/lib/lint.js +207 -47
- package/lib/lint.test.js +694 -25
- package/package.json +1 -1
|
@@ -32,11 +32,12 @@ Performs a structured review of code changes or files against the Policies in th
|
|
|
32
32
|
- Check the decision text itself last for additional boundaries or exceptions that metadata does not encode.
|
|
33
33
|
2. **Prerequisites gate — MUST complete before any review work:** For each scope containing files under review, read its `index.md` frontmatter and check for a `follows` field. `_core` Policies always apply to all scopes. Perform ALL of the following checks before proceeding; if ANY check fails, output a FAIL result immediately and do not continue the review:
|
|
34
34
|
- **Follows scopes:** If the scope declares `follows:` entries (e.g., `follows: myarea-core, shared-standards`), verify that each listed scope directory exists in the workspace AND contains an accessible `index.md` (e.g., `.xdrs/[scope-name]/index.md`). If any listed scope is missing or its index is unreadable, output: `FAIL — Review cannot proceed: scope \`[scope-name]\` is listed in \`follows\` but its policies are not present in the workspace. Install it before reviewing, as compliance with its governance cannot be verified.`
|
|
35
|
-
- **
|
|
35
|
+
- **Local meta-policies:** Scan the scope's `[type]/principles/` directories for all files whose filename title starts with `core` (i.e., `NNN-core.md` or `NNN-core-{qualifier}.md`), excluding scope-type definition files. If any are found but cannot be read, output: `FAIL — Review cannot proceed: local meta-policy \`[filename]\` exists in scope \`[scope-name]\` but could not be read. Without it, full compliance cannot be verified.` Zero matches is valid — absence of local meta-policies is not an error.
|
|
36
36
|
- **Rationale:** A review that silently omits mandatory governance layers produces false PASS results. Every governance layer declared by the scope MUST be loaded and applied; if any layer is inaccessible, the review result is unreliable and MUST be rejected.
|
|
37
|
+
- **Scope-type:** Read the scope's `scope-type` from its `index.md`. Normalise the value to a list: split on commas and trim whitespace (`scope-type: typeA, typeB` becomes `[typeA, typeB]`). For **each** type in the list, search the `[type]/principles/` directories of all `core`-type scopes in the workspace for a file whose name ends with `{scope-type}-scope-type.md`. If the scope declares any `scope-type` elements but no matching file is found for ANY of them, output: `FAIL — Review cannot proceed: scope \`[scope-name]\` declares \`scope-type: [scope-type]\` but no \`[scope-type]-scope-type.md\` policy exists in any \`core\`-type scope in the workspace. The scope is READ-ONLY; install the scope-type governance before reviewing.`
|
|
37
38
|
- Once all prerequisites pass, load the `follows` scopes' Policies and apply them as mandatory governance. Last-listed scope in `follows` takes precedence when the same topic is addressed by multiple scopes.
|
|
38
|
-
- **Scope-type standards:**
|
|
39
|
-
- **
|
|
39
|
+
- **Scope-type standards (application):** For each declared scope-type (single or comma-separated list), resolve its full ancestor chain (see `_core-adr-policy-010` rule 15): load the primary `{scope-type}-scope-type.md`, load all companion files (`{scope-type}-scope-type-{qualifier}.md`) alphabetically, then follow `NN-parent-scope-type` rules transitively until no more parents are declared. Stop on cycles. Concatenate all resolved chains in declaration order and deduplicate keeping first occurrence. Apply all policies from the deduplicated list as mandatory conventions. Then run conflict detection using the shared module at `.xdrs/_core/adrs/principles/skills/.assets/conflict-detection.md` across all loaded governance layers. See `_core-adr-policy-010` rules 15, 17, and 19 for the full application model.
|
|
40
|
+
- **Local meta-policies (policy documents only):** Apply all found local meta-policy files as mandatory conventions when reviewing policy documents in the scope. Local meta-policies take highest precedence in the chain. See `_core-adr-policy-010` rules 16, 17, and 19.
|
|
40
41
|
3. Filter relevance based on file types, domains, and architectural patterns in scope.
|
|
41
42
|
|
|
42
43
|
### Phase 3: Policy Review
|
|
@@ -97,7 +98,7 @@ Scope: [scope identifier]
|
|
|
97
98
|
|
|
98
99
|
## References
|
|
99
100
|
|
|
100
|
-
- [_core-adr-policy-001 -
|
|
101
|
+
- [_core-adr-policy-001 - XDRS standards](../../001-xdrs-standards.md)
|
|
101
102
|
- [_core-adr-policy-002 - Policy standards](../../002-policy-standards.md)
|
|
102
103
|
- [_core-adr-policy-003 - Skill standards](../../003-skill-standards.md)
|
|
103
104
|
|
|
@@ -19,15 +19,18 @@ Guides the creation of a well-structured Policy by following the standards in `_
|
|
|
19
19
|
Identify the target scope from the user's request; use `_local` if none is specified. Read the scope's `index.md` frontmatter and perform ALL of the following checks. If ANY check fails, output a FAIL result immediately and do not proceed:
|
|
20
20
|
|
|
21
21
|
- **Follows scopes:** If the scope declares `follows:` entries (e.g., `follows: myarea-core, shared-standards`), verify that each listed scope directory exists in the workspace AND contains an accessible `index.md` (e.g., `.xdrs/[scope-name]/index.md`). If any listed scope is missing or unreadable, output: `FAIL — Cannot proceed: scope \`[scope-name]\` is listed in \`follows\` but its policies are not present in the workspace. Install it before authoring documents in this scope, as the governance constraints cannot be verified.`
|
|
22
|
-
- **
|
|
23
|
-
- **
|
|
22
|
+
- **Local meta-policies:** Scan the target scope's `[type]/principles/` directories for all files whose filename title starts with `core` (i.e., `NNN-core.md` or `NNN-core-{qualifier}.md`), excluding scope-type definition files. If any are found but cannot be read, output: `FAIL — Cannot proceed: local meta-policy \`[filename]\` exists in scope \`[scope-name]\` but could not be read. Without it, the policy cannot be authored in full compliance with the scope's governance.` Zero matches is valid.
|
|
23
|
+
- **Scope-type:** Read the scope's `scope-type` from its `index.md`. Normalise the value to a list: split on commas and trim whitespace (`scope-type: typeA, typeB` becomes `[typeA, typeB]`). For **each** type in the list, search the `[type]/principles/` directories of all `core`-type scopes in the workspace for a file whose name ends with `{scope-type}-scope-type.md`. If the scope declares any `scope-type` elements but no matching file is found for ANY of them, output: `FAIL — Cannot proceed: scope \`[scope-name]\` declares \`scope-type: [scope-type]\` but no \`[scope-type]-scope-type.md\` policy exists in any \`core\`-type scope in the workspace. The scope is READ-ONLY; install the scope-type governance before authoring documents in this scope.`
|
|
24
|
+
- **Rationale:** Authoring a document without all mandatory governance layers loaded risks producing content that silently violates scope policies. Every governance layer MUST be present before writing begins.
|
|
25
|
+
|
|
26
|
+
Once all prerequisites pass, load ALL scope-type governance (see `_core-adr-policy-010` rule 15): for each declared type, resolve its full ancestor chain (primary, companions alphabetically, parent chain). Deduplicate keeping first occurrence. Then run conflict detection using the shared module at `.xdrs/_core/adrs/principles/skills/.assets/conflict-detection.md` across all loaded governance layers. Halt if undeclared structural conflicts are found (see `_core-adr-policy-010` rules 17 and 19).
|
|
24
27
|
|
|
25
28
|
### Phase 1: Understand the Decision
|
|
26
29
|
|
|
27
30
|
1. Read the XDRS root `index.md` (default: `.xdrs/index.md`) to discover all active scopes and their canonical indexes.
|
|
28
|
-
2. Read `.xdrs/_core/adrs/principles/001-xdrs-
|
|
31
|
+
2. Read `.xdrs/_core/adrs/principles/001-xdrs-standards.md` in full to internalize structure rules, mandatory language, and the XDRS framework elements.
|
|
29
32
|
3. Read `.xdrs/_core/adrs/principles/002-policy-standards.md` in full to internalize the Policy template and document writing rules.
|
|
30
|
-
4. Treat `001-xdrs-
|
|
33
|
+
4. Treat `001-xdrs-standards` as the canonical source for all core XDRS element definitions (type, scope, subject, numbering, placement). Treat `002-policy-standards` as the canonical source for how to write and structure the document itself.
|
|
31
34
|
5. Ask the user (or infer from context) the topic of the decision. Do NOT proceed to Phase 2 without a clear topic.
|
|
32
35
|
- Ask one focused clarifying question at a time. Wait for the answer before asking the next question.
|
|
33
36
|
- Each answer may reveal new ambiguities; ask follow-up questions as needed until the topic, intent, and scope are unambiguous.
|
|
@@ -35,7 +38,7 @@ Identify the target scope from the user's request; use `_local` if none is speci
|
|
|
35
38
|
|
|
36
39
|
### Phase 2: Select Type, Scope, and Subject
|
|
37
40
|
|
|
38
|
-
Consult `001-xdrs-
|
|
41
|
+
Consult `001-xdrs-standards` while making each choice in this phase. The summaries below are orientation only; when any detail matters, the standard decides.
|
|
39
42
|
|
|
40
43
|
**Type** — choose exactly one based on the nature of the decision:
|
|
41
44
|
- **BDR**: business process, product policy, strategic rule, operational procedure
|
|
@@ -167,8 +170,8 @@ Check every item before finalizing:
|
|
|
167
170
|
6. **Conflicts section**: Is it present and filled if Phase 3 found any conflicts?
|
|
168
171
|
7. **Index entries**: Will the new Policy be added to `[scope]/[type]/index.md` and the Policy root `index.md`?
|
|
169
172
|
8. **Meta-policy compliance**: Check the target scope's `index.md` for a `follows` frontmatter field. `_core` Policies always apply to all scopes. If `follows` lists additional core scope names (e.g., `follows: [myarea-core]`), verify that each listed scope directory exists in the workspace (e.g., `.xdrs/[scope-name]/index.md`). If any listed scope is missing, STOP immediately and tell the user: "Scope `[scope-name]` is listed in `follows` but not found in the workspace. Install it before proceeding." Once all `follows` scopes are confirmed present, verify the document satisfies all requirements from those Policies. Scopes are applied in order; last-listed scope in `follows` takes precedence when the same topic is covered by multiple scopes.
|
|
170
|
-
- **Scope-type standards:** Read the target scope's `scope-type`.
|
|
171
|
-
- **Scope-local standards:**
|
|
173
|
+
- **Scope-type standards:** Read the target scope's `scope-type`. Normalise the value to a list: split on commas and trim whitespace (`scope-type: typeA, typeB` becomes `[typeA, typeB]`). For **each** type in the list, search the `[type]/principles/` directories of all `core`-type scopes for a file ending in `{scope-type}-scope-type.md`. If found, also load all companion files (`{scope-type}-scope-type-{qualifier}.md`) from the **same directory** and apply their rules as additional requirements. Resolve any `NN-parent-scope-type` rule transitively from the primary file. See `_core-adr-policy-010` rules 15 and 17.
|
|
174
|
+
- **Scope-local standards:** Scan the target scope's own `[type]/principles/` directories for all files whose filename title starts with `core` (i.e., `NNN-core.md` or `NNN-core-{qualifier}.md`), excluding scope-type definition files (whose title ends with `-scope-type`). If any are found, apply ALL of them as mandatory requirements; they override scope-type standards on conflict. See `_core-adr-policy-010` rules 16 and 17.
|
|
172
175
|
|
|
173
176
|
If any check fails, revise and re-run this phase before proceeding.
|
|
174
177
|
|
|
@@ -193,7 +196,7 @@ If any check fails, revise and re-run this phase before proceeding.
|
|
|
193
196
|
### Constraints
|
|
194
197
|
|
|
195
198
|
- MUST follow the Policy template from `002-policy-standards` exactly.
|
|
196
|
-
- MUST consult `001-xdrs-
|
|
199
|
+
- MUST consult `001-xdrs-standards` as the canonical source for element definitions (type, scope, subject, ID, numbering, naming, placement) and `002-policy-standards` for document writing rules and template.
|
|
197
200
|
- MUST NOT add personal opinions or general best-practice content not tied to a decision.
|
|
198
201
|
- MUST NOT create a Policy that duplicates a decision already captured in another Policy — extend or reference instead.
|
|
199
202
|
- MUST prefer links and short references over repeating the same decision content across related documents.
|
|
@@ -202,6 +205,6 @@ If any check fails, revise and re-run this phase before proceeding.
|
|
|
202
205
|
|
|
203
206
|
## References
|
|
204
207
|
|
|
205
|
-
- [_core-adr-policy-001 - XDRS
|
|
208
|
+
- [_core-adr-policy-001 - XDRS standards](../../001-xdrs-standards.md)
|
|
206
209
|
- [_core-adr-policy-002 - Policy standards](../../002-policy-standards.md)
|
|
207
210
|
- [_core-adr-policy-003 - Skill standards](../../003-skill-standards.md)
|
|
@@ -20,18 +20,21 @@ Guides the creation of a well-structured skill package by following `_core-adr-p
|
|
|
20
20
|
Identify the target scope from the user's request; use `_local` if none is specified. Read the scope's `index.md` frontmatter and perform ALL of the following checks. If ANY check fails, output a FAIL result immediately and do not proceed:
|
|
21
21
|
|
|
22
22
|
- **Follows scopes:** If the scope declares `follows:` entries (e.g., `follows: myarea-core, shared-standards`), verify that each listed scope directory exists in the workspace AND contains an accessible `index.md` (e.g., `.xdrs/[scope-name]/index.md`). If any listed scope is missing or unreadable, output: `FAIL — Cannot proceed: scope \`[scope-name]\` is listed in \`follows\` but its policies are not present in the workspace. Install it before authoring documents in this scope, as the governance constraints cannot be verified.`
|
|
23
|
-
- **
|
|
24
|
-
- **
|
|
23
|
+
- **Local meta-policies:** Scan the target scope's `[type]/principles/` directories for all files whose filename title starts with `core` (i.e., `NNN-core.md` or `NNN-core-{qualifier}.md`), excluding scope-type definition files. If any are found but cannot be read, output: `FAIL — Cannot proceed: local meta-policy \`[filename]\` exists in scope \`[scope-name]\` but could not be read. Without it, the document cannot be authored in full compliance with the scope's governance.` Zero matches is valid.
|
|
24
|
+
- **Scope-type:** Read the scope's `scope-type` from its `index.md`. Normalise the value to a list: split on commas and trim whitespace (`scope-type: typeA, typeB` becomes `[typeA, typeB]`). For **each** type in the list, search the `[type]/principles/` directories of all `core`-type scopes in the workspace for a file whose name ends with `{scope-type}-scope-type.md`. If the scope declares any `scope-type` elements but no matching file is found for ANY of them, output: `FAIL — Cannot proceed: scope \`[scope-name]\` declares \`scope-type: [scope-type]\` but no \`[scope-type]-scope-type.md\` policy exists in any \`core\`-type scope in the workspace. The scope is READ-ONLY; install the scope-type governance before authoring documents in this scope.`
|
|
25
|
+
- **Rationale:** Authoring a document without all mandatory governance layers loaded risks producing content that silently violates scope policies. Every governance layer MUST be present before writing begins.
|
|
26
|
+
|
|
27
|
+
Once all prerequisites pass, load ALL scope-type governance (see `_core-adr-policy-010` rule 15): for each declared type, resolve its full ancestor chain (primary, companions alphabetically, parent chain). Deduplicate keeping first occurrence. Then run conflict detection using the shared module at `.xdrs/_core/adrs/principles/skills/.assets/conflict-detection.md` across all loaded governance layers. Halt if undeclared structural conflicts are found (see `_core-adr-policy-010` rules 17 and 19).
|
|
25
28
|
|
|
26
29
|
### Phase 1: Understand the Skill Goal
|
|
27
30
|
|
|
28
31
|
1. Read `.xdrs/_core/adrs/principles/003-skill-standards.md` in full to internalize the SKILL.md format, folder layout, and numbering rules.
|
|
29
|
-
2. Read `.xdrs/_core/adrs/principles/001-xdrs-
|
|
32
|
+
2. Read `.xdrs/_core/adrs/principles/001-xdrs-standards.md` in full before defining any core element for the skill package. Treat it as the canonical source for type, scope, subject, numbering expectations, naming constraints, and folder placement rules.
|
|
30
33
|
3. Identify what the skill must do, the concrete outcome it should produce, and the exact conditions under which an agent should activate it. Do NOT proceed without a clear goal, outcome, and activation trigger.
|
|
31
34
|
|
|
32
35
|
### Phase 2: Select Type, Scope, Subject, and Number
|
|
33
36
|
|
|
34
|
-
Consult `001-xdrs-
|
|
37
|
+
Consult `001-xdrs-standards` while making each choice in this phase. The summaries below are orientation only; when there is any ambiguity or edge case, the standard decides.
|
|
35
38
|
|
|
36
39
|
**Type** — choose one based on the skill's activity:
|
|
37
40
|
- **EDR skill**: engineering workflows, tool usage, coding procedures, implementation how-tos
|
|
@@ -142,7 +145,7 @@ If any check fails, revise before continuing.
|
|
|
142
145
|
### Constraints
|
|
143
146
|
|
|
144
147
|
- MUST follow the agentskills SKILL.md format from `003-skill-standards` exactly.
|
|
145
|
-
- MUST consult `001-xdrs-
|
|
148
|
+
- MUST consult `001-xdrs-standards` as the canonical source for every core element definition, especially type, scope, subject, numbering, naming, and placement.
|
|
146
149
|
- MUST NOT create a skill that duplicates an existing one — extend or reference it instead.
|
|
147
150
|
- MUST keep scope `_local` unless the user explicitly states otherwise.
|
|
148
151
|
- MUST NOT create documents in external scopes (scopes whose files appear in the workspace root `.filedist.lock`).
|
|
@@ -171,5 +174,5 @@ If any check fails, revise before continuing.
|
|
|
171
174
|
## References
|
|
172
175
|
|
|
173
176
|
- [_core-adr-policy-003 - Skill standards](../../003-skill-standards.md)
|
|
174
|
-
- [_core-adr-policy-001 -
|
|
177
|
+
- [_core-adr-policy-001 - XDRS standards](../../001-xdrs-standards.md)
|
|
175
178
|
- [002-write-policy skill](../002-write-policy/SKILL.md)
|
|
@@ -15,7 +15,7 @@ test('004-write-article creates a local principles article', async () => {
|
|
|
15
15
|
...copilotCmd(REPO_ROOT),
|
|
16
16
|
},
|
|
17
17
|
'Create a short article for new users explaining the overall principles of xdrs, element types and the role of each document in adrs',
|
|
18
|
-
'Verify that an article markdown file was created under .xdrs/_local/adrs/principles/articles/ and that it has references to 001-xdrs-
|
|
18
|
+
'Verify that an article markdown file was created under .xdrs/_local/adrs/principles/articles/ and that it has references to 001-xdrs-standards.md',
|
|
19
19
|
null,
|
|
20
20
|
true
|
|
21
21
|
);
|
package/.xdrs/_core/adrs/principles/skills/004-write-article/004-write-article.test.int.report
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"result": "success",
|
|
4
4
|
"contextFiles": [
|
|
5
5
|
".xdrs/_core/adrs/index.md",
|
|
6
|
-
".xdrs/_core/adrs/principles/001-xdrs-
|
|
6
|
+
".xdrs/_core/adrs/principles/001-xdrs-standards.md",
|
|
7
7
|
".xdrs/_core/adrs/principles/002-xdr-standards.md",
|
|
8
8
|
".xdrs/_core/adrs/principles/003-skill-standards.md",
|
|
9
9
|
".xdrs/_core/adrs/principles/004-article-standards.md",
|
|
@@ -29,8 +29,11 @@ Optional questions (ask only when genuinely unclear):
|
|
|
29
29
|
**Prerequisites gate** — once the scope is confirmed from the answers above, perform ALL of the following checks before proceeding. If ANY check fails, output a FAIL result immediately and do not continue:
|
|
30
30
|
|
|
31
31
|
- **Follows scopes:** If the scope declares `follows:` entries (e.g., `follows: myarea-core, shared-standards`), verify that each listed scope directory exists in the workspace AND contains an accessible `index.md` (e.g., `.xdrs/[scope-name]/index.md`). If any listed scope is missing or unreadable, output: `FAIL — Cannot proceed: scope \`[scope-name]\` is listed in \`follows\` but its policies are not present in the workspace. Install it before authoring documents in this scope, as the governance constraints cannot be verified.`
|
|
32
|
-
- **
|
|
33
|
-
- **
|
|
32
|
+
- **Local meta-policies:** Scan the target scope's `[type]/principles/` directories for all files whose filename title starts with `core` (i.e., `NNN-core.md` or `NNN-core-{qualifier}.md`), excluding scope-type definition files. If any are found but cannot be read, output: `FAIL — Cannot proceed: local meta-policy \`[filename]\` exists in scope \`[scope-name]\` but could not be read. Without it, the document cannot be authored in full compliance with the scope's governance.` Zero matches is valid.
|
|
33
|
+
- **Scope-type:** Read the scope's `scope-type` from its `index.md`. Normalise the value to a list: split on commas and trim whitespace (`scope-type: typeA, typeB` becomes `[typeA, typeB]`). For **each** type in the list, search the `[type]/principles/` directories of all `core`-type scopes in the workspace for a file whose name ends with `{scope-type}-scope-type.md`. If the scope declares any `scope-type` elements but no matching file is found for ANY of them, output: `FAIL — Cannot proceed: scope \`[scope-name]\` declares \`scope-type: [scope-type]\` but no \`[scope-type]-scope-type.md\` policy exists in any \`core\`-type scope in the workspace. The scope is READ-ONLY; install the scope-type governance before authoring documents in this scope.`
|
|
34
|
+
- **Rationale:** Authoring a document without all mandatory governance layers loaded risks producing content that silently violates scope policies. Every governance layer MUST be present before writing begins.
|
|
35
|
+
|
|
36
|
+
Once all prerequisites pass, load ALL scope-type governance (see `_core-adr-policy-010` rule 15): for each declared type, resolve its full ancestor chain (primary, companions alphabetically, parent chain). Deduplicate keeping first occurrence. Then run conflict detection using the shared module at `.xdrs/_core/adrs/principles/skills/.assets/conflict-detection.md` across all loaded governance layers. Halt if undeclared structural conflicts are found (see `_core-adr-policy-010` rules 17 and 19).
|
|
34
37
|
|
|
35
38
|
Do NOT proceed to Phase 1 until you have at minimum a clear **topic** and **audience**.
|
|
36
39
|
|
|
@@ -38,13 +41,13 @@ Do NOT proceed to Phase 1 until you have at minimum a clear **topic** and **audi
|
|
|
38
41
|
|
|
39
42
|
1. Read `.xdrs/_core/adrs/principles/004-article-standards.md` in full to internalize the template,
|
|
40
43
|
placement rules, numbering rules, and the constraint that articles are views, not decisions.
|
|
41
|
-
2. Read `.xdrs/_core/adrs/principles/001-xdrs-
|
|
44
|
+
2. Read `.xdrs/_core/adrs/principles/001-xdrs-standards.md` in full before defining the article's core elements. Treat it as the canonical source for how to choose and write type, scope, subject, numbering, naming, and folder placement.
|
|
42
45
|
3. Confirm the topic and intended audience gathered in Phase 0. Do NOT proceed without a clear
|
|
43
46
|
topic.
|
|
44
47
|
|
|
45
48
|
### Phase 2: Select Scope, Type, and Subject
|
|
46
49
|
|
|
47
|
-
Consult `001-xdrs-
|
|
50
|
+
Consult `001-xdrs-standards` while making each choice in this phase. The summaries below are orientation only; when any detail is unclear, the standard decides.
|
|
48
51
|
|
|
49
52
|
**Scope** — use `_local` unless the user explicitly names another scope.
|
|
50
53
|
- If the user names a scope other than `_local`, check the workspace root `.filedist.lock` file. If any file under `.xdrs/[scope]/` appears in `.filedist.lock`, the scope is external and new documents MUST NOT be created there. Inform the user and ask them to choose a non-external scope.
|
|
@@ -152,7 +155,7 @@ Rules to apply while drafting:
|
|
|
152
155
|
|
|
153
156
|
## Constraints
|
|
154
157
|
|
|
155
|
-
- MUST consult `001-xdrs-
|
|
158
|
+
- MUST consult `001-xdrs-standards` as the canonical source for every core element definition, especially type, scope, subject, numbering, naming, and placement.
|
|
156
159
|
- MUST follow the article template and placement rules from `004-article-standards`.
|
|
157
160
|
- MUST keep scope `_local` unless the user explicitly states otherwise.
|
|
158
161
|
- MUST NOT create documents in external scopes (scopes whose files appear in the workspace root `.filedist.lock`).
|
|
@@ -160,4 +163,4 @@ Rules to apply while drafting:
|
|
|
160
163
|
|
|
161
164
|
- [_core-adr-policy-004 - Article standards](../../004-article-standards.md)
|
|
162
165
|
- [_core-adr-policy-006 - Research standards](../../006-research-standards.md)
|
|
163
|
-
- [_core-adr-policy-001 - XDRS
|
|
166
|
+
- [_core-adr-policy-001 - XDRS standards](../../001-xdrs-standards.md)
|
package/.xdrs/_core/adrs/principles/skills/005-write-research/005-write-research.test.int.report
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"contextFiles": [
|
|
5
5
|
".github/skills/005-write-research/005-write-research.test.int.js",
|
|
6
6
|
".xdrs/_core/adrs/index.md",
|
|
7
|
-
".xdrs/_core/adrs/principles/001-xdrs-
|
|
7
|
+
".xdrs/_core/adrs/principles/001-xdrs-standards.md",
|
|
8
8
|
".xdrs/_core/adrs/principles/006-research-standards.md",
|
|
9
9
|
".xdrs/_local/edrs/languages/researches/001-java-vs-python-for-datascience.md",
|
|
10
10
|
".xdrs/index.md",
|
|
@@ -22,13 +22,16 @@ This skill is interactive by design. Ask clarifying questions to the user at eac
|
|
|
22
22
|
Identify the target scope from the user's request; use `_local` if none is specified. Read the scope's `index.md` frontmatter and perform ALL of the following checks. If ANY check fails, output a FAIL result immediately and do not proceed:
|
|
23
23
|
|
|
24
24
|
- **Follows scopes:** If the scope declares `follows:` entries (e.g., `follows: myarea-core, shared-standards`), verify that each listed scope directory exists in the workspace AND contains an accessible `index.md` (e.g., `.xdrs/[scope-name]/index.md`). If any listed scope is missing or unreadable, output: `FAIL — Cannot proceed: scope \`[scope-name]\` is listed in \`follows\` but its policies are not present in the workspace. Install it before authoring documents in this scope, as the governance constraints cannot be verified.`
|
|
25
|
-
- **
|
|
26
|
-
- **
|
|
25
|
+
- **Local meta-policies:** Scan the target scope's `[type]/principles/` directories for all files whose filename title starts with `core` (i.e., `NNN-core.md` or `NNN-core-{qualifier}.md`), excluding scope-type definition files. If any are found but cannot be read, output: `FAIL — Cannot proceed: local meta-policy \`[filename]\` exists in scope \`[scope-name]\` but could not be read. Without it, the document cannot be authored in full compliance with the scope's governance.` Zero matches is valid.
|
|
26
|
+
- **Scope-type:** Read the scope's `scope-type` from its `index.md`. Normalise the value to a list: split on commas and trim whitespace (`scope-type: typeA, typeB` becomes `[typeA, typeB]`). For **each** type in the list, search the `[type]/principles/` directories of all `core`-type scopes in the workspace for a file whose name ends with `{scope-type}-scope-type.md`. If the scope declares any `scope-type` elements but no matching file is found for ANY of them, output: `FAIL — Cannot proceed: scope \`[scope-name]\` declares \`scope-type: [scope-type]\` but no \`[scope-type]-scope-type.md\` policy exists in any \`core\`-type scope in the workspace. The scope is READ-ONLY; install the scope-type governance before authoring documents in this scope.`
|
|
27
|
+
- **Rationale:** Authoring a document without all mandatory governance layers loaded risks producing content that silently violates scope policies. Every governance layer MUST be present before writing begins.
|
|
28
|
+
|
|
29
|
+
Once all prerequisites pass, load ALL scope-type governance (see `_core-adr-policy-010` rule 15): for each declared type, resolve its full ancestor chain (primary, companions alphabetically, parent chain). Deduplicate keeping first occurrence. Then run conflict detection using the shared module at `.xdrs/_core/adrs/principles/skills/.assets/conflict-detection.md` across all loaded governance layers. Halt if undeclared structural conflicts are found (see `_core-adr-policy-010` rules 17 and 19).
|
|
27
30
|
|
|
28
31
|
### Phase 1: Understand the Research Goal
|
|
29
32
|
|
|
30
33
|
1. Read `.xdrs/_core/adrs/principles/006-research-standards.md` in full to internalize the folder layout, numbering rules, and mandatory template.
|
|
31
|
-
2. Read `.xdrs/_core/adrs/principles/001-xdrs-
|
|
34
|
+
2. Read `.xdrs/_core/adrs/principles/001-xdrs-standards.md` in full before defining the research document's core elements. Treat it as the canonical source for how to choose and write type, scope, subject, numbering expectations, naming constraints, and folder placement.
|
|
32
35
|
3. Ask the user to confirm the intended direction of the research before planning the document: what decision, question, or option space the study should support, what boundaries or exclusions apply, and what kind of outcome they expect. Wait for the answers before proceeding.
|
|
33
36
|
4. Ask the user what evidence already exists and what evidence-gathering methods are acceptable if the current evidence is incomplete. Do not invent facts, sources, or confidence that the user did not provide. Wait for the answers before proceeding.
|
|
34
37
|
5. Ask the user what the proposed next step is after the research, such as writing/updating an existing Policy, informing a discussion, or documenting trade-offs for later. Use that answer to shape the framing without turning the research into the final decision. Wait for the answers before proceeding.
|
|
@@ -41,7 +44,7 @@ Identify the target scope from the user's request; use `_local` if none is speci
|
|
|
41
44
|
|
|
42
45
|
If the answers from Phase 1 leave scope, type, or subject ambiguous, use `vscode_askQuestions` to present the candidate options with a brief rationale for each and ask the user to confirm the selection before proceeding. If the user's answer raises a related uncertainty, ask a follow-up question to resolve it before locking the selection.
|
|
43
46
|
|
|
44
|
-
Consult `001-xdrs-
|
|
47
|
+
Consult `001-xdrs-standards` while making each choice in this phase. The summaries below are orientation only; when any detail matters, the standard decides.
|
|
45
48
|
|
|
46
49
|
**Scope** — use `_local` unless the user explicitly names another scope.
|
|
47
50
|
- If the user names a scope other than `_local`, check the workspace root `.filedist.lock` file. If any file under `.xdrs/[scope]/` appears in `.filedist.lock`, the scope is external and new documents MUST NOT be created there. Inform the user and ask them to choose a non-external scope.
|
|
@@ -287,12 +290,12 @@ If any check fails, revise before continuing.
|
|
|
287
290
|
## References
|
|
288
291
|
|
|
289
292
|
- [_core-adr-policy-006 - Research standards](../../006-research-standards.md)
|
|
290
|
-
- [_core-adr-policy-001 - XDRS
|
|
293
|
+
- [_core-adr-policy-001 - XDRS standards](../../001-xdrs-standards.md)
|
|
291
294
|
- [002-write-policy skill](../002-write-policy/SKILL.md)
|
|
292
295
|
|
|
293
296
|
## Constraints
|
|
294
297
|
|
|
295
|
-
- MUST consult `001-xdrs-
|
|
298
|
+
- MUST consult `001-xdrs-standards` as the canonical source for every core element definition, especially type, scope, subject, numbering, naming, and placement.
|
|
296
299
|
- MUST follow the research template and section-goal rules from `006-research-standards`.
|
|
297
300
|
- MUST keep scope `_local` unless the user explicitly states otherwise.
|
|
298
301
|
- MUST NOT create documents in external scopes (scopes whose files appear in the workspace root `.filedist.lock`).
|
|
@@ -20,13 +20,16 @@ Guides the creation of a well-structured plan document by following `_core-adr-p
|
|
|
20
20
|
Identify the target scope from the user's request; use `_local` if none is specified. Read the scope's `index.md` frontmatter and perform ALL of the following checks. If ANY check fails, output a FAIL result immediately and do not proceed:
|
|
21
21
|
|
|
22
22
|
- **Follows scopes:** If the scope declares `follows:` entries (e.g., `follows: myarea-core, shared-standards`), verify that each listed scope directory exists in the workspace AND contains an accessible `index.md` (e.g., `.xdrs/[scope-name]/index.md`). If any listed scope is missing or unreadable, output: `FAIL — Cannot proceed: scope \`[scope-name]\` is listed in \`follows\` but its policies are not present in the workspace. Install it before authoring documents in this scope, as the governance constraints cannot be verified.`
|
|
23
|
-
- **
|
|
24
|
-
- **
|
|
23
|
+
- **Local meta-policies:** Scan the target scope's `[type]/principles/` directories for all files whose filename title starts with `core` (i.e., `NNN-core.md` or `NNN-core-{qualifier}.md`), excluding scope-type definition files. If any are found but cannot be read, output: `FAIL — Cannot proceed: local meta-policy \`[filename]\` exists in scope \`[scope-name]\` but could not be read. Without it, the document cannot be authored in full compliance with the scope's governance.` Zero matches is valid.
|
|
24
|
+
- **Scope-type:** Read the scope's `scope-type` from its `index.md`. Normalise the value to a list: split on commas and trim whitespace (`scope-type: typeA, typeB` becomes `[typeA, typeB]`). For **each** type in the list, search the `[type]/principles/` directories of all `core`-type scopes in the workspace for a file whose name ends with `{scope-type}-scope-type.md`. If the scope declares any `scope-type` elements but no matching file is found for ANY of them, output: `FAIL — Cannot proceed: scope \`[scope-name]\` declares \`scope-type: [scope-type]\` but no \`[scope-type]-scope-type.md\` policy exists in any \`core\`-type scope in the workspace. The scope is READ-ONLY; install the scope-type governance before authoring documents in this scope.`
|
|
25
|
+
- **Rationale:** Authoring a document without all mandatory governance layers loaded risks producing content that silently violates scope policies. Every governance layer MUST be present before writing begins.
|
|
26
|
+
|
|
27
|
+
Once all prerequisites pass, load ALL scope-type governance (see `_core-adr-policy-010` rule 15): for each declared type, resolve its full ancestor chain (primary, companions alphabetically, parent chain). Deduplicate keeping first occurrence. Then run conflict detection using the shared module at `.xdrs/_core/adrs/principles/skills/.assets/conflict-detection.md` across all loaded governance layers. Halt if undeclared structural conflicts are found (see `_core-adr-policy-010` rules 17 and 19).
|
|
25
28
|
|
|
26
29
|
### Phase 1: Understand the Plan Goal
|
|
27
30
|
|
|
28
31
|
1. Read `.xdrs/_core/adrs/principles/007-plan-standards.md` in full to internalize the template, placement rules, numbering rules, and the constraint that plans are ephemeral and must be deleted after implementation.
|
|
29
|
-
2. Read `.xdrs/_core/adrs/principles/001-xdrs-
|
|
32
|
+
2. Read `.xdrs/_core/adrs/principles/001-xdrs-standards.md` in full before defining the plan's core elements. Treat it as the canonical source for how to choose and write type, scope, subject, numbering, naming, and folder placement.
|
|
30
33
|
3. Identify the problem being solved, the proposed solution, and the expected timeline from user input or context. Do NOT proceed without a clear problem statement and proposed solution.
|
|
31
34
|
4. Ask the user clarifying questions to fill any gaps before writing the plan. Use the following rules:
|
|
32
35
|
- Ask all initial questions in a single batch so the user can answer them together.
|
|
@@ -38,7 +41,7 @@ Identify the target scope from the user's request; use `_local` if none is speci
|
|
|
38
41
|
|
|
39
42
|
### Phase 2: Select Scope, Type, and Subject
|
|
40
43
|
|
|
41
|
-
Consult `001-xdrs-
|
|
44
|
+
Consult `001-xdrs-standards` while making each choice in this phase. The summaries below are orientation only; when any detail is unclear, the standard decides.
|
|
42
45
|
|
|
43
46
|
**Scope** — use `_local` unless the user explicitly names another scope.
|
|
44
47
|
- If the user names a scope other than `_local`, check the workspace root `.filedist.lock` file. If any file under `.xdrs/[scope]/` appears in `.filedist.lock`, the scope is external and new documents MUST NOT be created there. Inform the user and ask them to choose a non-external scope.
|
|
@@ -164,13 +167,13 @@ Rules to apply while drafting:
|
|
|
164
167
|
|
|
165
168
|
## References
|
|
166
169
|
|
|
167
|
-
- [_core-adr-policy-001 - XDRS
|
|
170
|
+
- [_core-adr-policy-001 - XDRS standards](../../001-xdrs-standards.md)
|
|
168
171
|
- [_core-adr-policy-007 - Plan standards](../../007-plan-standards.md)
|
|
169
172
|
- [_core-adr-policy-002 - Policy standards](../../002-policy-standards.md)
|
|
170
173
|
|
|
171
174
|
## Constraints
|
|
172
175
|
|
|
173
176
|
- MUST follow the plan template and section-goal rules from `007-plan-standards`.
|
|
174
|
-
- MUST consult `001-xdrs-
|
|
177
|
+
- MUST consult `001-xdrs-standards` as the canonical source for every core element definition, especially type, scope, subject, numbering, naming, and placement.
|
|
175
178
|
- MUST keep scope `_local` unless the user explicitly states otherwise.
|
|
176
179
|
- MUST NOT create documents in external scopes (scopes whose files appear in the workspace root `.filedist.lock`).
|
|
@@ -19,13 +19,16 @@ Guides the creation of a Marp Markdown slide presentation that supports an exist
|
|
|
19
19
|
Identify the target scope from the parent document's path or the user's request; use `_local` if none is specified. Read the scope's `index.md` frontmatter and perform ALL of the following checks. If ANY check fails, output a FAIL result immediately and do not proceed:
|
|
20
20
|
|
|
21
21
|
- **Follows scopes:** If the scope declares `follows:` entries (e.g., `follows: myarea-core, shared-standards`), verify that each listed scope directory exists in the workspace AND contains an accessible `index.md` (e.g., `.xdrs/[scope-name]/index.md`). If any listed scope is missing or unreadable, output: `FAIL — Cannot proceed: scope \`[scope-name]\` is listed in \`follows\` but its policies are not present in the workspace. Install it before authoring documents in this scope, as the governance constraints cannot be verified.`
|
|
22
|
-
- **
|
|
23
|
-
- **
|
|
22
|
+
- **Local meta-policies:** Scan the target scope's `[type]/principles/` directories for all files whose filename title starts with `core` (i.e., `NNN-core.md` or `NNN-core-{qualifier}.md`), excluding scope-type definition files. If any are found but cannot be read, output: `FAIL — Cannot proceed: local meta-policy \`[filename]\` exists in scope \`[scope-name]\` but could not be read. Without it, the document cannot be authored in full compliance with the scope's governance.` Zero matches is valid.
|
|
23
|
+
- **Scope-type:** Read the scope's `scope-type` from its `index.md`. Normalise the value to a list: split on commas and trim whitespace (`scope-type: typeA, typeB` becomes `[typeA, typeB]`). For **each** type in the list, search the `[type]/principles/` directories of all `core`-type scopes in the workspace for a file whose name ends with `{scope-type}-scope-type.md`. If the scope declares any `scope-type` elements but no matching file is found for ANY of them, output: `FAIL — Cannot proceed: scope \`[scope-name]\` declares \`scope-type: [scope-type]\` but no \`[scope-type]-scope-type.md\` policy exists in any \`core\`-type scope in the workspace. The scope is READ-ONLY; install the scope-type governance before authoring documents in this scope.`
|
|
24
|
+
- **Rationale:** Authoring a document without all mandatory governance layers loaded risks producing content that silently violates scope policies. Every governance layer MUST be present before writing begins.
|
|
25
|
+
|
|
26
|
+
Once all prerequisites pass, load ALL scope-type governance (see `_core-adr-policy-010` rule 15): for each declared type, resolve its full ancestor chain (primary, companions alphabetically, parent chain). Deduplicate keeping first occurrence. Then run conflict detection using the shared module at `.xdrs/_core/adrs/principles/skills/.assets/conflict-detection.md` across all loaded governance layers. Halt if undeclared structural conflicts are found (see `_core-adr-policy-010` rules 17 and 19).
|
|
24
27
|
|
|
25
28
|
### Phase 1: Identify the Parent Document
|
|
26
29
|
|
|
27
30
|
1. Read `.xdrs/_core/adrs/principles/009-presentation-standards.md` in full to internalize all presentation rules.
|
|
28
|
-
2. Read `.xdrs/_core/adrs/principles/001-xdrs-
|
|
31
|
+
2. Read `.xdrs/_core/adrs/principles/001-xdrs-standards.md` for `.assets/` placement rules and general framework structure.
|
|
29
32
|
3. Identify the parent document (policy, research, article, or plan) that the slides will support. The parent document must already exist. If no parent document exists, inform the user that slides cannot be standalone and suggest creating the parent document first.
|
|
30
33
|
4. If the user wants slides covering content from multiple documents, check whether an article already exists that synthesizes those documents. If not, suggest creating an article first (using the 004-write-article skill) and then creating slides for that article.
|
|
31
34
|
|
|
@@ -172,6 +175,6 @@ Rules:
|
|
|
172
175
|
## References
|
|
173
176
|
|
|
174
177
|
- [_core-adr-policy-009 - Presentation standards](../../009-presentation-standards.md)
|
|
175
|
-
- [_core-adr-policy-001 - XDRS
|
|
178
|
+
- [_core-adr-policy-001 - XDRS standards](../../001-xdrs-standards.md)
|
|
176
179
|
- [_core-adr-policy-004 - Article standards](../../004-article-standards.md)
|
|
177
180
|
- [_core-adr-policy-003 - Skill standards](../../003-skill-standards.md)
|
|
@@ -31,8 +31,11 @@ Routes the request to the appropriate XDRS authoring skill based on the type of
|
|
|
31
31
|
For the target scope where the document will be created, read its `index.md` frontmatter and perform ALL of the following checks. If ANY check fails, output a FAIL result immediately and do not proceed:
|
|
32
32
|
|
|
33
33
|
- **Follows scopes:** If the scope declares `follows:` entries (e.g., `follows: myarea-core, shared-standards`), verify that each listed scope directory exists in the workspace AND contains an accessible `index.md` (e.g., `.xdrs/[scope-name]/index.md`). If any listed scope is missing or unreadable, output: `FAIL — Cannot proceed: scope \`[scope-name]\` is listed in \`follows\` but its policies are not present in the workspace. Install it before authoring documents in this scope, as the governance constraints cannot be verified.`
|
|
34
|
-
- **
|
|
35
|
-
- **
|
|
34
|
+
- **Local meta-policies:** Scan the target scope's `[type]/principles/` directories for all files whose filename title starts with `core` (i.e., `NNN-core.md` or `NNN-core-{qualifier}.md`), excluding scope-type definition files. If any are found but cannot be read, output: `FAIL — Cannot proceed: local meta-policy \`[filename]\` exists in scope \`[scope-name]\` but could not be read. Without it, the document cannot be authored in full compliance with the scope's governance.` Zero matches is valid. When routing to the policy skill, apply all found local meta-policies as mandatory conventions.
|
|
35
|
+
- **Scope-type:** Read the scope's `scope-type` from its `index.md`. Normalise the value to a list: split on commas and trim whitespace (`scope-type: typeA, typeB` becomes `[typeA, typeB]`). For **each** type in the list, search the `[type]/principles/` directories of all `core`-type scopes in the workspace for a file whose name ends with `{scope-type}-scope-type.md`. If the scope declares any `scope-type` elements but no matching file is found for ANY of them, output: `FAIL — Cannot proceed: scope \`[scope-name]\` declares \`scope-type: [scope-type]\` but no \`[scope-type]-scope-type.md\` policy exists in any \`core\`-type scope in the workspace. The scope is READ-ONLY; install the scope-type governance before authoring documents in this scope.`
|
|
36
|
+
- **Rationale:** Authoring a document without all mandatory governance layers loaded risks producing content that silently violates scope policies. Every governance layer MUST be present before writing begins.
|
|
37
|
+
|
|
38
|
+
Once all prerequisites pass, load ALL scope-type governance (see `_core-adr-policy-010` rule 15): for each declared type, resolve its full ancestor chain (primary, companions alphabetically, parent chain). Deduplicate keeping first occurrence. Then run conflict detection using the shared module at `.xdrs/_core/adrs/principles/skills/.assets/conflict-detection.md` across all loaded governance layers. Halt if undeclared structural conflicts are found (see `_core-adr-policy-010` rules 17 and 19).
|
|
36
39
|
|
|
37
40
|
### Phase 2: Load and Follow Target Skill
|
|
38
41
|
|
package/.xdrs/_core/index.md
CHANGED
|
@@ -22,7 +22,9 @@ If you are evaluating whether to adopt XDRS, setting up a new XDRS project, or e
|
|
|
22
22
|
|
|
23
23
|
### Framework structure and organization
|
|
24
24
|
|
|
25
|
-
The core architectural decision [_core-adr-policy-001](adrs/principles/001-xdrs-
|
|
25
|
+
The core architectural decision [_core-adr-policy-001](adrs/principles/001-xdrs-standards.md) defines the fundamental building blocks: three decision types (ADR for architecture, BDR for business, EDR for engineering), scopes as grouping boundaries, subjects as topic categories within each type, and a folder layout that keeps everything discoverable. It also defines the index system (canonical type indexes, scope indexes, and the root index) that ties the collection together.
|
|
26
|
+
|
|
27
|
+
When external tools or conventions require XDRS files to be accessible from paths outside the `.xdrs/` root (for example, AI agent runtimes that expect skills in `.agents/skills/`), [_core-adr-policy-018](adrs/principles/018-external-path-symlinks.md) governs how to do this safely using symlinks.
|
|
26
28
|
|
|
27
29
|
### Document writing standards
|
|
28
30
|
|
|
@@ -45,13 +47,13 @@ Slide presentations that support XDRS documents follow [_core-adr-policy-009](ad
|
|
|
45
47
|
|
|
46
48
|
### Standard scope meta governance
|
|
47
49
|
|
|
48
|
-
[_core-adr-policy-010](adrs/principles/010-scope-governance.md) defines the full scope governance model: how to define a custom scope type using `{scope-type}-scope-type` policies, how to define scope-local content standards using
|
|
50
|
+
[_core-adr-policy-010](adrs/principles/010-scope-governance.md) defines the full scope governance model: how to define a custom scope type using `{scope-type}-scope-type` policies, how to define scope-local content standards using local meta-policies (`NNN-core.md` or `NNN-core-{qualifier}.md` in `principles/`), and how all governance mechanisms (`follows:`, scope-type standards, local meta-policies) apply with their precedence chain.
|
|
49
51
|
|
|
50
52
|
[_core-adr-policy-011](adrs/principles/011-core-scope-type.md) defines the `core` scope type — meta-governance scopes named with the `-core` suffix (e.g., `security-core`) that hold writing standards, templates, ownership, and process guidance for a group of related scopes. They must not contain consumable policies, and all contributors to governed scopes must follow their standards via an explicit `follows:` declaration.
|
|
51
53
|
|
|
52
54
|
### Scope types
|
|
53
55
|
|
|
54
|
-
Every XDRS scope declares a `scope-type` in its `index.md` YAML frontmatter. A `scope-type` value is valid when a `{scope-type}-scope-type` policy exists in the `principles` subject of any `core`-type scope in the workspace. The five built-in scope types are defined by [_core-adr-policy-011](adrs/principles/011-core-scope-type.md) (`core`), [_core-adr-policy-012](adrs/principles/012-reference-scope-type.md) (`reference`), [_core-adr-policy-013](adrs/principles/013-platform-scope-type.md) (`platform`), [_core-adr-policy-014](adrs/principles/014-standard-scope-type.md) (`standard`), and [_core-adr-policy-015](adrs/principles/015-local-scope-type.md) (`_local`). Custom scope types can be defined following [_core-adr-policy-010](adrs/principles/010-scope-governance.md). The recommended root index ordering is `core → reference → platform → standard → _local`.
|
|
56
|
+
Every XDRS scope declares a `scope-type` in its `index.md` YAML frontmatter. A `scope-type` value is valid when a `{scope-type}-scope-type` policy exists in the `principles` subject of any `core`-type scope in the workspace. Multiple types MAY be declared using a comma-separated list (e.g., `scope-type: compiled, internal-docs`); each element is validated independently — see [_core-adr-policy-010](adrs/principles/010-scope-governance.md) rules 05 and 05b. The five built-in scope types are defined by [_core-adr-policy-011](adrs/principles/011-core-scope-type.md) (`core`), [_core-adr-policy-012](adrs/principles/012-reference-scope-type.md) (`reference`), [_core-adr-policy-013](adrs/principles/013-platform-scope-type.md) (`platform`), [_core-adr-policy-014](adrs/principles/014-standard-scope-type.md) (`standard`), and [_core-adr-policy-015](adrs/principles/015-local-scope-type.md) (`_local`). Custom scope types can be defined following [_core-adr-policy-010](adrs/principles/010-scope-governance.md). The recommended root index ordering is `core → reference → platform → standard → _local`.
|
|
55
57
|
|
|
56
58
|
### Available skills
|
|
57
59
|
|
package/README.md
CHANGED
|
@@ -64,9 +64,39 @@ Different teams at different organizational levels make decisions that apply to
|
|
|
64
64
|
|
|
65
65
|
Every scope declares a `scope-type` in its `index.md` frontmatter. The five built-in types are `core`, `reference`, `platform`, `standard`, and `_local`, each with different governance rules. Custom types (e.g. `business-area`) can be introduced by adding a `{type}-scope-type` policy to any `core`-type scope.
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
| Type | Purpose | Naming pattern | Root index order |
|
|
68
|
+
|---|---|---|---|
|
|
69
|
+
| `core` | Meta-governance: authoring standards, scope-type definitions, process guidance. No consumable policies. | `{name}-core` (e.g. `myorg-core`) | 1st |
|
|
70
|
+
| `reference` | Standards, regulations, or reference models to be adopted or adapted (e.g. PCI-DSS, ISO 27001, reference architectures). Not a live service. | `{domain}-ref-{name}` (e.g. `security-ref-baseline`) | 2nd |
|
|
71
|
+
| `platform` | Existing live services or infrastructure teams can consume directly (e.g. cloud platform, shared data service). | `{domain}-plat-{name}` (e.g. `cloud-plat-infra`) | 3rd |
|
|
72
|
+
| `standard` | Business areas, products, teams, or any general-purpose scope. Default type when nothing else fits. | Any valid scope name (e.g. `checkout`, `mobile-app`) | 4th |
|
|
73
|
+
| `_local` | Workspace-local overrides. Reserved exclusively for the `_local` scope. Never distributed. | `_local` (reserved) | last |
|
|
68
74
|
|
|
69
|
-
|
|
75
|
+
**`core` scopes** carry meta-policies — authoring standards, scope-type definitions, and governance conventions. `_core` is the built-in foundation; teams add their own `core` scope (e.g. `myorg-core`) to extend it with organisation-level standards. A `core`-type scope MUST NOT contain consumable policies intended for other teams to follow.
|
|
76
|
+
|
|
77
|
+
**`reference` scopes** hold read-only material to adopt or map against: industry frameworks, regulatory requirements, vendor best-practice patterns, business procedure standards. Content describes how something should be done — not what is currently running.
|
|
78
|
+
|
|
79
|
+
**`platform` scopes** document what already exists and is ready to use. A scope is of type `platform` when its content describes a live operational capability — what is available, how to access it, and what constraints apply.
|
|
80
|
+
|
|
81
|
+
**`standard` scopes** are the default. Use them for team, product, or business-area scopes that do not fit the other types.
|
|
82
|
+
|
|
83
|
+
**`_local` scopes** hold workspace-specific content such as local tooling decisions, transition overrides, or temporary decisions. This content is never packaged or distributed.
|
|
84
|
+
|
|
85
|
+
The `follows` field in a scope's `index.md` links it to one or more `core` scopes whose standards it must respect (beyond `_core`). This models organisational hierarchies: a team scope can follow a business-area `core` scope, which in turn follows `_core`.
|
|
86
|
+
|
|
87
|
+
```yaml
|
|
88
|
+
# .xdrs/checkout/index.md
|
|
89
|
+
---
|
|
90
|
+
scope-type: standard
|
|
91
|
+
name: checkout
|
|
92
|
+
follows: ecomm-core # must comply with ecomm-core authoring standards
|
|
93
|
+
description: Checkout team decisions
|
|
94
|
+
---
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
The recommended ordering in `.xdrs/index.md` is: `core → reference → platform → standard → _local`. Scopes listed later override earlier ones on the same topic.
|
|
98
|
+
|
|
99
|
+
Custom scope types can be introduced by adding a `{type}-scope-type` policy to any `core`-type scope. The `checkout` scope in [examples/typed-scope](examples/typed-scope) uses a custom `business-area` type defined in `ecomm-core`.
|
|
70
100
|
|
|
71
101
|
See [examples/typed-scope](examples/typed-scope) for a full working example covering all five scope types and a custom `business-area` type.
|
|
72
102
|
|