xdrs-core 0.11.1 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,17 @@
1
- # general ADRs Index
1
+ # _core ADRs Index
2
2
 
3
- This index covers cross-business architectural and technical decisions that apply to all scopes. Owned by the platform team. Propose changes via pull request.
4
-
5
- This index lists all ADRs for the general scope, organized by subject.
3
+ Decisions about how the XDR framework itself works: structure, standards, document types, versioning, and supporting artifacts. Owned by the platform team. Propose changes via pull request.
6
4
 
7
5
  ## Principles
8
6
 
9
7
  Foundational standards, principles, and guidelines.
10
8
 
11
- - [_core-adr-001](principles/001-xdr-standards.md) - **XDR standards** (includes XDR template)
12
- - [_core-adr-003](principles/003-skill-standards.md) - **Skill standards**
13
- - [_core-adr-004](principles/004-article-standards.md) - **Article standards**
14
- - [_core-adr-005](principles/005-semantic-versioning-for-xdr-packages.md) - **Semantic versioning for XDR packages**
15
- - [_core-adr-006](principles/006-research-standards.md) - **Research standards**
9
+ - [_core-adr-001](principles/001-xdrs-core.md) - **XDRs core** Types, scopes, subjects, folder structure, and indexes for the XDR framework
10
+ - [_core-adr-002](principles/002-xdr-standards.md) - **XDR standards** — How to write individual XDR decision documents: template, metadata, ID, lifecycle rules
11
+ - [_core-adr-003](principles/003-skill-standards.md) - **Skill standards** — How to author and organize reusable skill packages within XDR projects
12
+ - [_core-adr-004](principles/004-article-standards.md) - **Article standards** How to write synthetic views combining XDRs, research, and skills
13
+ - [_core-adr-005](principles/005-semantic-versioning-for-xdr-packages.md) - **Semantic versioning for XDR packages** — How to version XDR packages to communicate upgrade impact
14
+ - [_core-adr-006](principles/006-research-standards.md) - **Research standards** — How to structure research documents backing XDR decisions
16
15
 
17
16
  ## Research
18
17
 
@@ -0,0 +1,138 @@
1
+ # _core-adr-001: XDRs core
2
+
3
+ ## Context and Problem Statement
4
+
5
+ We need a consistent way to capture decisions that scales across scopes and subjects, remains easy to navigate, and works well with AI agents.
6
+
7
+ How should XDRs be structured and organized across types, teams, and scopes?
8
+
9
+ ## Decision Outcome
10
+
11
+ **Scoped + typed + subject folders**
12
+
13
+ Provides clear ownership by scope, predictable navigation, and reusable decisions that work well with AI agents by keeping files small and focused.
14
+
15
+ ### Implementation Details
16
+
17
+ Decision Records can be of different kinds, depending on the nature of the decision:
18
+ - BDR (Business Decision Record): Captures business process, product features, procedures and strategic decisions. Examples: business rules, product policies, customer service, business workflow, control frameworks for regulators for finance, product procedures and manuals, KYC requirements, business requirements in general
19
+ - ADR (Architectural Decision Record): Wider architectural and technical decisions. Examples: how big topics relate to each other, system contexts, overview without realy deciding on details, integration patterns, overarching topics, corporate wide practices, corporate systems, external and internal partners etc
20
+ - EDR (Engineering Decision Record): captures engineering details about how to implement things. Examples: specific tools and libraries selection, framework usage, best practices on coding, testing, quality, project structure, pipelines etc
21
+
22
+ Collectively, these are referred to as XDRs.
23
+
24
+ #### General framework standards
25
+
26
+ - The main document type in the collection of XDRs is the XDR document, which contains a decision. Other documents are normally related to this decision and shouldn't go against its contents.
27
+ - Make it clear if an instruction is mandatory or advisory.
28
+ - Mandatory language: "must", "always", "never", "required", "mandatory"
29
+ - Advisory language: "should", "recommended", "advised", "preferably", "possibly", "optionally"
30
+ - Always use the following folder structure for XDR documents:
31
+ `.xdrs/[scope]/[type]/[subject]/[number]-[short-title].md`
32
+ - Optional supporting artifacts under the same subject:
33
+ - `.xdrs/[scope]/[type]/[subject]/researches/[number]-[short-title].md`
34
+ - `.xdrs/[scope]/[type]/[subject]/skills/[number]-[skill-name]/SKILL.md`
35
+ - `.xdrs/[scope]/[type]/[subject]/articles/[number]-[short-title].md`
36
+ - Research, skills, and articles are part of the framework, but each has its own concept-specific standards in dedicated XDRs. This XDR defines the shared framework baseline; `_core-adr-002` defines the XDR document writing standard.
37
+ - `_core-adr-002` defines XDR standards (document writing)
38
+ - `_core-adr-003` defines skill standards
39
+ - `_core-adr-004` defines article standards
40
+ - `_core-adr-006` defines research standards
41
+ - For simple structure, flow, layout, or relationship indications, documents SHOULD prefer plain Markdown, tables, or ASCII art instead of external assets.
42
+ - 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.
43
+ - XDRs in the subject root use `.xdrs/[scope]/[type]/[subject]/assets/`
44
+ - Articles use `.xdrs/[scope]/[type]/[subject]/articles/assets/`
45
+ - Research uses `.xdrs/[scope]/[type]/[subject]/researches/assets/`
46
+ - Skills use `.xdrs/[scope]/[type]/[subject]/skills/[number]-[skill-name]/assets/`
47
+ - **Scopes:**
48
+ - Short name that defines a group or a package of xdrs
49
+ - examples: `business-x`, `business-y`, `team-43`, `_core`
50
+ - `_local` is a reserved scope for XDRs created locally to a specific project or repository. XDRs in `_local` must not be shared with or propagated to other contexts. This scope must always be placed in the lowest position in `.xdrs/index.md` so that its decisions override or extend any decisions from all higher-positioned scopes. Shared `.xdrs/index.md` files MUST NOT link `_local` canonical type indexes because `_local` stays workspace-local and is not distributed with shared packages. Readers, tools, and agents SHOULD still try to discover existing workspace-local `_local` canonical indexes by default, even when the shared root index does not link them.
51
+ - **Types:** `adrs`, `bdrs`, `edrs`
52
+ - there can exist sufixes to the standard scope names (e.g: `business-x-mobileapp`, `business-y-servicedesk`)
53
+ - **Subjects:** MUST be one of the following depending on the type of the XDR. Use the subject to indicate the main concern of the decision.
54
+ - **ADR subjects**
55
+ - `principles`: Cross-cutting architecture and policy foundations.
56
+ - Examples: architecture style, interoperability rules, long-term technology direction.
57
+ - `application`: System and service design decisions at application level.
58
+ - Examples: modularization strategy, service decomposition, app-level security flows.
59
+ - `data`: Data architecture and information modeling choices.
60
+ - Examples: canonical schemas, data ownership boundaries, retention strategies.
61
+ - `integration`: Decisions about communication between internal/external systems.
62
+ - Examples: sync vs async patterns, contract strategy, partner integration approach.
63
+ - `platform`: Platform-level runtime and enabling capabilities.
64
+ - Examples: cloud/runtime baseline, foundational services, platform tenancy approach.
65
+ - `controls`: Architecture controls for risk, security, and compliance at a high level.
66
+ - Examples: encryption baseline, auditability requirements, policy enforcement points.
67
+ - `operations`: Operational architecture decisions.
68
+ - Examples: incident model, resilience objectives, operational ownership boundaries.
69
+ - **BDR subjects**
70
+ - `principles`: Business principles and decision criteria that guide all business areas.
71
+ - Examples: customer fairness rules, policy precedence, strategic guardrails.
72
+ - `marketing`: Go-to-market, communication, and campaign policy decisions.
73
+ - Examples: campaign approval rules, channel usage standards, positioning constraints.
74
+ - `product`: Product behavior, lifecycle, and offering decisions.
75
+ - Examples: feature rollout policy, packaging/tiers, product requirement governance.
76
+ - `controls`: Business control framework decisions.
77
+ - Examples: approval segregation, mandatory checks, exception handling policy.
78
+ - `operations`: Day-to-day business process and procedure decisions.
79
+ - Examples: support workflows, onboarding/offboarding procedures, SLA operations.
80
+ - `organization`: Structure, roles, and responsibility model decisions.
81
+ - Examples: decision rights, team topology, accountability boundaries.
82
+ - `finance`: Financial and cost-control business decisions.
83
+ - Examples: budgeting process, pricing governance, investment approval rules.
84
+ - `sustainability`: Environmental and social responsibility policy decisions.
85
+ - Examples: sustainability KPIs, reporting cadence, procurement sustainability criteria.
86
+ - **EDR subjects**
87
+ - `principles`: Engineering principles and non-functional quality defaults.
88
+ - Examples: coding standards baseline, testing philosophy, secure-by-default engineering rules.
89
+ - `application`: Code-level implementation patterns and application conventions.
90
+ - Examples: framework patterns, layer organization, API implementation conventions.
91
+ - `infra`: Infrastructure implementation and runtime operations details.
92
+ - Examples: IaC patterns, environment provisioning, network/runtime hardening details.
93
+ - `observability`: Telemetry, monitoring, alerting, and diagnostics implementation.
94
+ - Examples: log/metric/tracing standards, alert routing policy, SLO measurement approach.
95
+ - `devops`: Delivery pipeline, release automation, and developer workflow decisions.
96
+ - Examples: CI/CD stages, branch strategy, release promotion gates.
97
+ - `governance`: Engineering governance, risk controls, and compliance mechanics.
98
+ - Examples: dependency governance, approval policies, mandatory quality checks.
99
+ - Never use emojis
100
+ - **Indexes**
101
+ - Keep a canonical index with all XDRs of a certain type+scope in `.xdrs/[scope]/[type]/index.md`
102
+ - Canonical index requirements:
103
+ - Organize XDR documents by subject for easier navigation
104
+ - Add a short description of what this scope is about (responsibilities, general worries, teams involved, link to discussion process, etc)
105
+ - Add a list of other scope indexes that this scope might be related to (only add scopes that might be overridden). E.g: "business-x-mobileapp" scope could refer to "business-x" and "sensitive-data" scopes in its index list. XDRs in scopes listed last override XDRs in scopes listed first when addressing the same topic.
106
+ - Each XDR element entry in the index MUST include a short description of its content, preferably with an imperative statement or the question it answers, when possible (<15 words). Example: "Use this while planning a new feature", "What communication tone we use with our customers?", "PNPM vs Yarn comparison study"
107
+ - Outside the scopes, keep an index pointing to all canonical indexes in `.xdrs/index.md`. Add the text "XDRs in scopes listed last override the ones listed first"
108
+ - Always verify if indexes are up to date after making changes
109
+
110
+ **Folder structure examples:**
111
+ - `.xdrs/business-x/edrs/devops/003-required-development-workflow.md`
112
+ - `.xdrs/business-x/adrs/controls/010-security-and-secrets-management.md`
113
+ - `.xdrs/_core/edrs/devops/001-multi-repo.md`
114
+
115
+ ```text
116
+ subject/
117
+ |-- 001-xdr.md
118
+ |-- assets/
119
+ |-- articles/
120
+ | |-- 001-article.md
121
+ | `-- assets/
122
+ |-- researches/
123
+ | |-- 001-study.md
124
+ | `-- assets/
125
+ `-- skills/
126
+ `-- 001-task/
127
+ |-- SKILL.md
128
+ `-- assets/
129
+ ```
130
+
131
+ ## References
132
+
133
+ - [_core-adr-002 - XDR standards](002-xdr-standards.md) - Standards for writing individual XDR decision documents
134
+ - [001-lint skill](skills/001-lint/SKILL.md) - Skill for reviewing code changes against XDRs
135
+ - [002-write-xdr skill](skills/002-write-xdr/SKILL.md) - Skill for creating a new XDR following this standard
136
+ - [_core-adr-003 - Skill standards](003-skill-standards.md)
137
+ - [_core-adr-004 - Article standards](004-article-standards.md)
138
+ - [_core-adr-006 - Research standards](006-research-standards.md)
@@ -0,0 +1,117 @@
1
+ # _core-adr-002: XDR standards
2
+
3
+ ## Context and Problem Statement
4
+
5
+ XDR framework elements (types, scopes, subjects, folder structure) are defined in `_core-adr-001`. Once a decision record's structural placement is clear, how should the document itself be written to remain authoritative, concise, and consistently structured?
6
+
7
+ ## Decision Outcome
8
+
9
+ **Structured decision records with a mandatory template, lifecycle metadata, and clear conflict rules**
10
+
11
+ XDR documents are the authoritative policy for their scope, type, and subject. They must be concise, template-compliant, and lifecycle-aware so that humans and AI agents can reliably determine whether and how to apply any decision.
12
+
13
+ ### Implementation Details
14
+
15
+ - XDRs MUST contain a clear decision about a certain problem or situation. Avoid being too verbose and focus on explaining clearly the context and the decision. Avoid adding contents that are not original. If you have other references that are important to understand the document, add links and references. Always cite sources.
16
+ - XDRs are the central artifact of the framework and the authoritative policy for their scope, type, and subject. Supporting artifacts may explain, justify, or operationalize the decision (like articles, researches and skills), but they do not replace it.
17
+ - XDRs MAY include a `## Metadata` section, but only when at least one supported metadata field is present. When used, `## Metadata` MUST appear immediately before `## Context and Problem Statement`.
18
+ - Supported XDR metadata fields are:
19
+ - `Status:` Optional. Defines the lifecycle state of the decision. Allowed values are `Draft`, `Active`, and `Deprecated`. If omitted, the decision is treated as `Active`. Only `Active` decisions may be treated as current policy.
20
+ - `Valid:` Optional. Defines the time window in which an active decision may be treated as current. Use ISO dates only: `from YYYY-MM-DD`, `until YYYY-MM-DD`, or `from YYYY-MM-DD until YYYY-MM-DD`. If `from` is omitted, the decision takes effect immediately. If `until` is omitted, the decision remains valid indefinitely.
21
+ - `Applied to:` Optional. A short description of the contexts in which the decision is applicable. Keep it under 40 words. If omitted, the decision should be interpreted as applying to all logically applicable elements according to the decision text itself. Examples: `Only frontend code`, `JavaScript projects`, `Performance-sensitive codebases`
22
+ - Before using, enforcing, or citing an XDR as a current rule, humans and AI agents MUST decide whether the decision is applicable for the current case.
23
+ - Check `Status:` first to determine whether the XDR is eligible to be used now. If `Status:` is omitted, treat it as `Active`. `Draft` and `Deprecated` decisions are background or history, not current policy.
24
+ - Check `Valid:` next to determine whether the current moment falls inside the decision's active date window. Not-yet-active and expired windows are not current policy.
25
+ - Check `Applied to:` next to determine whether the active, currently valid decision fits the current codebase, system, workflow, or audience.
26
+ - Check the decision context and implementation details last to determine any additional boundaries, exceptions, or qualifiers that metadata alone cannot express.
27
+ - If any check fails, the XDR MAY still be read as background, history, or context, but it MUST NOT be treated as a current requirement for that case.
28
+ - Research documents MAY be added under the same subject to capture the exploration, findings, and proposals that backed a decision. Research is useful during elaboration, discussion, approval, retirement, and updates of xdrs, but the XDR document remains the source of truth.
29
+ - **XDR Id:** [scope]-[type]-[xdr number] (numbers are scoped per type+scope combination and must not be reused within that combination; always use lowercase)
30
+ - Types in IDs: `adr`, `bdr`, `edr`
31
+ - Define the next number of an XDR by checking what is the highest number present in the type+scope. Don't fill numbering gaps, as they might be old deleted XDRs and we should never reuse numbers of different documents/decisions. Numbering gaps are expected.
32
+ - Decisions MUST be concise and reference other XDRs to avoid duplication.
33
+ - The `### Implementation Details` section SHOULD state relevant boundaries or exceptions and what a reader should do or avoid in common cases. Use `## Metadata` as the first-pass filter for whether the decision should be used at all, then keep nuanced boundaries in the decision text.
34
+ - Use concise rules, examples, `Allowed` / `Disallowed` lists or checklists with required items to help the reader apply the decision correctly. Keep them short and decision-specific.
35
+ - Conflict handling applies to XDR documents:
36
+ - For cross-scope overrides, document the decision conflict in the XDR `## Conflicts` section of the XDR that overrides another scope.
37
+ - **Within-scope conflicts:** XDRs within the same type+scope must not conflict. If two XDRs appear to conflict, one should be updated, deprecated, or the conflict resolved through a new XDR.
38
+ - When research exists for a decision, the XDR SHOULD mention the related research documents after the `## Considered Options` list.
39
+ - Never use emojis in contents.
40
+ - Always use file names with lowercase.
41
+ - Avoid using lengthy instructions on the XDR. If there are long and detailed instructions related to the XDR, or instructions that are outside the decision, create another file with a guide. If the guide is small, keep it in the XDR itself.
42
+ - XDRs should be under 1300 words long as a rule of thumb.
43
+ - This is important to make them focused on a clear decision
44
+ - Exceptions can reach under 2600 words (templates, more elaborate decision implementations etc)
45
+ - ALWAYS use `_local` scope if the user doesn't explicitly indicate a specific scope while creating an xdr or skill.
46
+
47
+ **XDR template**
48
+
49
+ All XDRs MUST follow this template
50
+
51
+ ```markdown
52
+ # [scope]-[type]-[number]: [Short Title]
53
+
54
+ ## Metadata
55
+
56
+ [Optional section. Omit the entire section when none of `Status:`, `Valid:`, or `Applied to:` is defined. Readers decide whether to use the XDR by checking `Status:` first, treating omission as `Active`, then `Valid:`, then `Applied to:`, and finally the decision text itself.]
57
+ Status: [Optional. Use `Draft`, `Active`, or `Deprecated`. Defaults to `Active` when omitted]
58
+ Valid: [Optional. Use `from YYYY-MM-DD`, `until YYYY-MM-DD`, or `from YYYY-MM-DD until YYYY-MM-DD`]
59
+ Applied to: [Optional short applicability scope, under 40 words]
60
+
61
+ ## Context and Problem Statement
62
+
63
+ [Describe the context, background, or need that led to this decision.
64
+ What is the problem we are trying to solve? Who is being impacted? (<40 words)
65
+
66
+ Question: In the end, state explicitly the question that needs to be answered. E.g: "Which platform should I use when implementing an AI agent?"]
67
+
68
+ ## Decision Outcome
69
+
70
+ **[Chosen Option Title]**
71
+ [Very short description of what is the decision, aligned with the titles on the Considered Options section]
72
+
73
+ [Short description of implementation details for the chosen path]
74
+
75
+ ### Implementation Details
76
+
77
+ [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)]
78
+
79
+ [Related research, if any]
80
+ - [Research document title](researches/001-example.md) - Brief description of what it informed
81
+
82
+ ## Conflicts
83
+
84
+ [If this XDR has conflicts with other scopes, this section is MANDATORY and needs to have an explanation why the conflict is accepted]
85
+
86
+ * Conflict with [XDR id] (e.g.: adr-business-x-001)
87
+ * Summary: Brief description of the conflict
88
+ * Reason to accept: Brief description of why it was decided to accept this conflict, possibly overriding or diverging from the other decision/scopes
89
+
90
+ ## References
91
+
92
+ [optional section]
93
+ [useful links related to this implementation]
94
+ [links to the discussion (PRs, meetings etc)]
95
+ [links to related skills]
96
+ ```
97
+
98
+ **Examples:**
99
+ - Metadata examples:
100
+ - `Status: Draft`
101
+ - `Status: Active`
102
+ - `Valid: from 2026-03-01 until 2026-12-31`
103
+ - `Applied to: JavaScript projects`
104
+
105
+ **XDR ID Examples:**
106
+ - `business-x-adr-001` (not `ADR-business-x-001` or `business-x-adr-1`)
107
+ - `business-x-edr-042` (not `EDR-BUSINESS-X-042`)
108
+ - `business-x-bdr-007`
109
+
110
+ ## References
111
+
112
+ - [_core-adr-001 - XDRs core](001-xdrs-core.md) - Framework elements: types, scopes, subjects, folder structure
113
+ - [001-lint skill](skills/001-lint/SKILL.md) - Skill for reviewing code changes against XDRs
114
+ - [002-write-xdr skill](skills/002-write-xdr/SKILL.md) - Skill for creating a new XDR following this standard
115
+ - [_core-adr-003 - Skill standards](003-skill-standards.md)
116
+ - [_core-adr-004 - Article standards](004-article-standards.md)
117
+ - [_core-adr-006 - Research standards](006-research-standards.md)
@@ -47,11 +47,16 @@ Quick test:
47
47
  **Folder layout**
48
48
 
49
49
  ```
50
- .xdrs/[scope]/[type]/[subject]/skills/[number]-[skill-name]/
51
- SKILL.md # required
52
- scripts/ # optional: executable scripts the agent may run
53
- references/ # optional: detailed reference material
54
- assets/ # optional: images, templates, data files, and other local resources
50
+ .xdrs/
51
+ [scope]/
52
+ [type]/
53
+ [subject]/
54
+ skills/
55
+ [number]-[skill-name]/
56
+ SKILL.md # required
57
+ scripts/ # optional: executable scripts the agent may run
58
+ references/ # optional: detailed reference material
59
+ assets/ # optional: images, templates, data files, and other local resources
55
60
  ```
56
61
 
57
62
  Examples:
@@ -103,7 +108,7 @@ Rules:
103
108
  - `## 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.
104
109
  - For simple structure, flow, layout, or relationship indications, `SKILL.md` SHOULD prefer plain Markdown, tables, or ASCII art instead of external assets.
105
110
  - 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.
106
- - Keep `SKILL.md` under 500 lines. Move lengthy reference material to `references/`.
111
+ - Keep `SKILL.md` under 6500 words. Move lengthy reference material to `references/`.
107
112
  - Reference other files with relative paths from the skill root.
108
113
  - Always use lowercase file names.
109
114
  - Never use emojis in skill content.
@@ -128,6 +133,6 @@ skills-ref validate .xdrs/[scope]/[type]/[subject]/skills/[number]-[skill-name]
128
133
  - [agentskills specification](https://agentskills.io/specification)
129
134
  - [agentskills/agentskills repository](https://github.com/agentskills/agentskills)
130
135
  - [skills-ref validation library](https://github.com/agentskills/agentskills/tree/main/skills-ref)
131
- - [_core-adr-001 - XDR standards](001-xdr-standards.md)
136
+ - [_core-adr-001 - XDRs core](001-xdrs-core.md)
132
137
  - [_core-adr-004 - Article standards](004-article-standards.md)
133
138
  - [_core-adr-006 - Research standards](006-research-standards.md)
@@ -15,8 +15,10 @@ Articles are Markdown documents placed inside a subject folder alongside decisio
15
15
  ### Implementation Details
16
16
 
17
17
  - Articles are views, not decisions. They summarize and synthesize content from XDRs, Research, and Skills but are NOT the source of truth. When there is a conflict between an article and a Decision Record, the Decision Record takes precedence.
18
+ - Articles are not limited to synthesizing XDRs. They may also document application features, APIs, general project information, reference tables, diagrams, FAQs and other elements useful to their intended audience.
18
19
  - Articles must reference the XDRs, Research documents, and Skills they synthesize. Never duplicate decision content; link back to the authoritative sources.
19
20
  - Articles may serve as indexes, combining related artifacts on a specific topic into a single navigable document.
21
+ - In more complex cases, an article may be an index of links to other articles, grouping related documentation into a single entry point that guides readers across a set of related topics.
20
22
  - When an article tells readers which decisions to follow, it SHOULD distinguish currently usable XDRs from background-only ones by checking `Status:` first, treating omission as `Active`, `Valid:` second, `Applied to:` third, and the decision text itself last. Articles must not present Draft, Deprecated, inactive-date, out-of-window, or out-of-scope XDRs as current rules for the discussed context.
21
23
  - 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.
22
24
  - Place an article in the subject folder that best matches its topic. If an article spans more than one subject, place it in `principles`.
@@ -24,15 +26,18 @@ Articles are Markdown documents placed inside a subject folder alongside decisio
24
26
  - 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.
25
27
  - Always use lowercase file names.
26
28
  - Never use emojis in article content.
27
- - Articles should be kept under 150 lines. Move detailed content to referenced XDRs or Skills.
29
+ - Articles should be kept under 1950 words. Move detailed content to referenced XDRs or Skills.
28
30
 
29
31
  **Folder layout**
30
32
 
31
33
  ```
32
- .xdrs/[scope]/[type]/[subject]/
33
- articles/
34
- [number]-[short-title].md
35
- assets/
34
+ .xdrs/
35
+ [scope]/
36
+ [type]/
37
+ [subject]/
38
+ articles/
39
+ [number]-[short-title].md
40
+ assets/
36
41
  ```
37
42
 
38
43
  Examples:
@@ -55,7 +60,7 @@ All articles MUST follow this template:
55
60
 
56
61
  ## Overview
57
62
 
58
- [Brief description of what this article covers and its intended audience. (<3 lines)]
63
+ [Brief description of what this article covers and its intended audience. (<40 words)]
59
64
 
60
65
  ## Content
61
66
 
@@ -69,8 +74,6 @@ when referencing an information from those documents.]
69
74
 
70
75
  ## Considered Options
71
76
 
72
- * (REJECTED) **Inline summaries inside XDR index files** - Keeps everything in one place but clutters the navigation indexes.
73
- * Reason: Index files should remain lean navigation aids; mixing synthesis into them hurts readability and makes updates harder.
74
77
  * (REJECTED) **Separate documentation repository** - Removes drift risk but decouples docs from decisions.
75
78
  * Reason: Increases maintenance burden and makes it easy for articles to go stale relative to the XDRs they reference.
76
79
  * (CHOSEN) **Subject-level articles folder co-located with XDRs** - Keeps articles alongside the decision records and skills they reference, with `principles` as the fallback for cross-subject articles.
@@ -78,7 +81,7 @@ when referencing an information from those documents.]
78
81
 
79
82
  ## References
80
83
 
81
- - [_core-adr-001 - XDR standards](001-xdr-standards.md)
84
+ - [_core-adr-001 - XDRs core](001-xdrs-core.md)
82
85
  - [_core-adr-003 - Skill standards](003-skill-standards.md)
83
86
  - [_core-adr-006 - Research standards](006-research-standards.md)
84
87
  - [004-write-article skill](skills/004-write-article/SKILL.md) - Step-by-step instructions for creating a new article
@@ -49,10 +49,13 @@ Research documents are Markdown files placed inside a subject folder alongside d
49
49
  **Folder layout**
50
50
 
51
51
  ```
52
- .xdrs/[scope]/[type]/[subject]/
53
- researches/
54
- [number]-[short-title].md
55
- assets/
52
+ .xdrs/
53
+ [scope]/
54
+ [type]/
55
+ [subject]/
56
+ researches/
57
+ [number]-[short-title].md
58
+ assets/
56
59
  ```
57
60
 
58
61
  Examples:
@@ -121,7 +124,7 @@ Prefer tables, bullets, or ASCII art for simple comparisons. Use external figure
121
124
 
122
125
  ## References
123
126
 
124
- - [_core-adr-001 - XDR standards](001-xdr-standards.md)
127
+ - [_core-adr-001 - XDRs core](001-xdrs-core.md)
125
128
  - [_core-adr-003 - Skill standards](003-skill-standards.md)
126
129
  - [_core-adr-004 - Article standards](004-article-standards.md)
127
130
  - [005-write-research skill](skills/005-write-research/SKILL.md) - Step-by-step instructions for creating a research document
@@ -17,7 +17,7 @@ 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-xdr-standards.md).
20
+ implementation decisions. See [_core-adr-001](../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, approval, retirement, and updates,
23
23
  but it is not the final rule. A single Research document may inform multiple downstream ADRs,
@@ -51,7 +51,7 @@ harder to update, and harder for agents to apply correctly.
51
51
 
52
52
  Before treating an XDR as a rule for the current case, check its metadata first.
53
53
 
54
- - **Status first**: only `Active` decisions can be current policy, and omitted `Status` should be treated as `Active`. `Draft` and `Deprecated` are background or historical context.
54
+ - **Status first**: only `Active` decisions can be current policy, and omitted `Status` is treated as `Active`. `Draft` and `Deprecated` are background or historical context.
55
55
  - **Valid second**: if present, the current moment must fall inside the decision's date window.
56
56
  - **Applied to third**: if present, the current codebase, workflow, system, or audience must fit that scope.
57
57
  - **Decision text last**: the XDR's own context and implementation details still determine the final boundaries and exceptions.
@@ -84,18 +84,21 @@ This gives XDRs a timeline feel:
84
84
 
85
85
  ### How the structure supports the model
86
86
 
87
- Every decision record lives at a fixed path:
87
+ Every decision record and its supporting artifacts live at a fixed path:
88
88
 
89
89
  ```
90
- .xdrs/[scope]/[type]/[subject]/[number]-[short-title].md
91
- ```
92
-
93
- Supporting artifacts live beside it in the same subject:
94
-
95
- ```
96
- researches/[number]-[short-title].md
97
- skills/[number]-[skill-name]/SKILL.md
98
- articles/[number]-[short-title].md
90
+ .xdrs/
91
+ [scope]/
92
+ [type]/
93
+ [subject]/
94
+ [number]-[short-title].md
95
+ researches/
96
+ [number]-[short-title].md
97
+ skills/
98
+ [number]-[skill-name]/
99
+ SKILL.md
100
+ articles/
101
+ [number]-[short-title].md
99
102
  ```
100
103
 
101
104
  - **Scopes** represent ownership domains such as `_core`, `business-x`, or `team-43`.
@@ -128,12 +131,12 @@ guidance, and the explanatory overview close together without collapsing them in
128
131
 
129
132
  ### Guidelines
130
133
 
131
- Follow [_core-adr-001](../001-xdr-standards.md) strictly. Key rules:
134
+ Follow [_core-adr-001](../001-xdrs-core.md) and [_core-adr-002](../002-xdr-standards.md) strictly. Key rules:
132
135
 
133
136
  - Use **mandatory language** (`must`, `never`, `required`) for non-negotiable rules and
134
137
  **advisory language** (`should`, `recommended`) for guidance.
135
138
  - Before citing an XDR as a requirement, check `Status` first, treating omission as `Active`, then `Valid`, then `Applied to`, and finally the decision text to confirm the decision is active and in scope for the current case.
136
- - Keep XDRs under 100 lines. Move procedural detail to a co-located Skill.
139
+ - Keep XDRs under 1300 words as a rule of thumb (exceptions up to 2600 words for templates or more elaborate decisions). Move procedural detail to a co-located Skill.
137
140
  - Keep exploratory option analysis in a co-located Research document instead of bloating the XDR.
138
141
  - Always update the scope+type index and the root index after adding or changing an XDR.
139
142
  - Use `_local` scope when a decision is project-specific and must not be shared.
@@ -167,11 +170,14 @@ Follow [_core-adr-001](../001-xdr-standards.md) strictly. Key rules:
167
170
 
168
171
  ## References
169
172
 
170
- - [_core-adr-001](../001-xdr-standards.md) - XDR standards and mandatory template
173
+ - [_core-adr-001](../001-xdrs-core.md) - XDR elements: types, scopes, subjects, folder structure
174
+ - [_core-adr-002](../002-xdr-standards.md) - XDR document standards and mandatory template
171
175
  - [_core-adr-003](../003-skill-standards.md) - Skill standards and co-location rules
172
176
  - [_core-adr-004](../004-article-standards.md) - Article standards
173
177
  - [_core-adr-006](../006-research-standards.md) - Research standards
174
178
  - [001-lint skill](../skills/001-lint/SKILL.md) - Linting code against XDRs
175
179
  - [002-write-xdr skill](../skills/002-write-xdr/SKILL.md) - Writing a new XDR
176
180
  - [003-write-skill skill](../skills/003-write-skill/SKILL.md) - Writing a new skill
181
+ - [004-write-article skill](../skills/004-write-article/SKILL.md) - Writing a new article
177
182
  - [005-write-research skill](../skills/005-write-research/SKILL.md) - Writing a new research document
183
+ - [_core-adr-005](../005-semantic-versioning-for-xdr-packages.md) - Semantic versioning rules for XDR packages
@@ -1,26 +1,47 @@
1
1
  # _core-research-001: Research and decision lifecycle
2
2
 
3
- ## Overview
3
+ ## Abstract
4
4
 
5
- This research evaluates how Research should fit into the XDR model so maintainers can evolve it as a supporting artifact without weakening XDRs as the source of truth. It provides the context behind the decision captured in [_core-adr-006](../006-research-standards.md).
5
+ This study evaluates where research material should be positioned in the XDR framework so teams can preserve decision traceability and option analysis without weakening XDRs as the authoritative source. Three placement strategies were assessed against the framework's discoverability and conciseness constraints. Subject-level co-location in a dedicated `researches/` folder alongside `skills/` and `articles/` was found to best preserve context, keep XDRs concise, and stay consistent with the existing folder conventions. The study recommends treating Research as a first-class optional supporting artifact at the subject level.
6
+
7
+ ## Introduction
8
+
9
+ As the XDR framework grows, teams need space beyond a concise XDR to record the reasoned evaluation of options — constraints, findings, tradeoffs, and rejected paths — before or after a decision changes. Without a dedicated place for this material, long-form analysis migrates into pull request comments, shared documents, and chat threads, making it hard to discover and harder to review when facts or technology change.
10
+
11
+ Three structural concerns drive this study:
12
+
13
+ - XDRs must stay under roughly 1300 words so both humans and AI agents can parse them quickly.
14
+ - Supporting analysis must be discoverable without knowing where to look outside the XDR folder tree.
15
+ - The framework already has `skills/` and `articles/` co-located per subject; a research artifact needs to fit that model or justify a deviation.
16
+
17
+ Known constraints from the XDR model:
18
+
19
+ - XDRs are the authoritative source of truth; no other artifact may override them.
20
+ - Subject-level folder structure is the canonical navigation layer.
21
+ - The framework must remain simple enough to onboard with a short article.
6
22
 
7
23
  Question: How should a Research artifact fit into the XDR model so it supports the decision lifecycle without diluting the role of XDRs as the source of truth?
8
24
 
9
- ## Constraints
25
+ ## Methods
10
26
 
11
- - XDRs must stay concise and decision-focused.
12
- - Supporting analysis must be easy to discover from the same subject folder.
13
- - The new artifact must help during elaboration, discussion, approval, retirement, and updates.
14
- - The structure must remain simple enough for humans and AI agents to navigate.
27
+ This study used a structured option evaluation approach:
15
28
 
16
- ## Findings
29
+ 1. Catalogued the current XDR folder model and subject-level artifacts (`skills/`, `articles/`) from `_core-adr-001`.
30
+ 2. Identified the key discoverability and maintenance constraints documented in `_core-adr-001`.
31
+ 3. Defined three candidate placement strategies for research material based on common documentation pattern variants.
32
+ 4. Assessed each option against four criteria: proximity to the relevant XDR, impact on XDR conciseness, discoverability for subjects with multiple related XDRs, and overall framework simplicity.
17
33
 
18
- - Long-form option analysis does not fit well inside XDRs because it mixes evidence gathering with the adopted decision.
19
- - Articles are useful for synthesis, but they are optimized for understanding and navigation rather than preserving the full option tradeoff study.
20
- - Skills are procedures, not evidence. They explain how to do something, not why an option was evaluated or rejected.
21
- - Subject-level co-location is the strongest predictor of discoverability in the current XDR model.
34
+ No external benchmarks were used. Assessment is based on the existing XDR structural rules and professional judgment about folder-based discoverability in developer tooling ecosystems.
22
35
 
23
- ## Proposals
36
+ ## Results
37
+
38
+ Three placement strategies were evaluated:
39
+
40
+ | Option | Placement | Proximity to XDR | XDR Conciseness | Simplicity |
41
+ |--------|-----------|-----------------|-----------------|------------|
42
+ | 1 | Inside the XDR file | High (same file) | Low (bloat risk) | High |
43
+ | 2 | Global `researches/` tree | Low (detached from subjects) | High | Medium |
44
+ | 3 | Subject-level `researches/` | High (same subject) | High | Medium |
24
45
 
25
46
  ### Option 1: Keep research inside XDRs
26
47
 
@@ -28,42 +49,51 @@ Use larger XDRs and keep all exploratory analysis in the same file as the final
28
49
 
29
50
  **Pros**
30
51
  - One file per decision thread.
31
- - No new folder type to teach.
52
+ - No new folder type to learn or maintain.
32
53
 
33
54
  **Cons**
34
- - Bloats XDRs and makes the adopted rule set harder to scan.
35
- - Weakens the under-100-line guidance for decision records.
55
+ - Makes XDRs too long and hard to scan.
56
+ - Weakens the under-1300-word size constraint for decision records.
36
57
 
37
58
  ### Option 2: Create a top-level shared research area
38
59
 
39
60
  Store all research under a global `researches/` tree detached from subjects.
40
61
 
41
62
  **Pros**
42
- - Centralized catalog of studies.
43
- - Easy to browse all research at once.
63
+ - Centralized catalog of studies; easy to browse all research at once.
44
64
 
45
65
  **Cons**
46
66
  - Loses proximity to the decisions it informed.
47
67
  - Makes subject-scoped discovery and maintenance harder.
68
+ - Inconsistent with how `skills/` and `articles/` are organized.
48
69
 
49
70
  ### Option 3: Add `researches/` beside `skills/` and `articles/`
50
71
 
51
- Keep research documents under the same subject as the XDR they support.
72
+ Keep research documents under the same subject folder as the XDR they support.
52
73
 
53
74
  **Pros**
54
- - Preserves context and keeps evidence close to the decision.
55
- - Lets XDRs stay concise while retaining detailed tradeoff history.
75
+ - Preserves context: evidence lives beside the decision it informed.
76
+ - Keeps XDRs concise while retaining detailed tradeoff history.
77
+ - Consistent with the existing `skills/` and `articles/` co-location pattern.
56
78
 
57
79
  **Cons**
58
80
  - Adds one more artifact type to explain and maintain.
59
- - Requires linting and indexes to recognize another optional folder.
81
+ - Requires canonical indexes to cover one additional optional folder.
82
+
83
+ ## Discussion
84
+
85
+ Option 3 dominates the evaluation on the key criteria. Subject-level co-location is what makes `skills/` and `articles/` discoverable in practice; research benefits from the same property. A global research tree (Option 2) loses the proximity that makes it useful when revisiting a decision, and inline analysis (Option 1) conflicts directly with the under-1300-word XDR guideline.
86
+
87
+ The main cost of Option 3 is framework complexity: teams must learn a new artifact type and canonical indexes must cover one more folder. This cost is real but modest. The XDR framework already has four artifact types (XDR, Skill, Article, Index); adding Research brings it to five, adding only one new section to the index template and one new optional folder per subject.
88
+
89
+ A risk worth noting: teams may resist creating a separate research file for simple decisions. This is acceptable. Research documents are optional and are most valuable for decisions with non-trivial option tradeoffs, evolving constraints, or evidence worth preserving for future reviews. For simple decisions, brief inline rationale in the XDR itself remains appropriate as long as the total XDR length stays under 1300 words.
60
90
 
61
- ## Recommendation
91
+ ## Conclusion
62
92
 
63
- Option 3 is the best fit because it preserves the existing navigation model while separating evidence gathering from the adopted decision text.
93
+ Subject-level co-location in `researches/[number]-[short-title].md` alongside the XDR is the model that best preserves discoverability, keeps XDRs concise, and stays consistent with existing folder conventions. Option 1 (inline) conflicts with the XDR size constraint; Option 2 (global tree) breaks subject-level proximity. The framework overhead of an optional `researches/` folder is low relative to the lifecycle traceability it provides. Research is optional and most useful for non-trivial decisions; for simple decisions, inline rationale remains acceptable within the 1300-word XDR budget.
64
94
 
65
95
  ## References
66
96
 
67
97
  - [_core-adr-006](../006-research-standards.md) - Decision that adopts research as a first-class artifact
68
- - [_core-adr-001](../001-xdr-standards.md) - Base XDR structure and references
69
- - [_core-adr-004](../004-article-standards.md) - Distinction between research and synthesis
98
+ - [_core-adr-001](../001-xdrs-core.md) - Base XDR structure and folder conventions
99
+ - [_core-adr-004](../004-article-standards.md) - Distinction between research (evidence) and synthesis (articles)