@trohde/earos 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/README.md +156 -0
  2. package/assets/init/.agents/skills/earos-artifact-gen/SKILL.md +106 -0
  3. package/assets/init/.agents/skills/earos-artifact-gen/references/interview-guide.md +313 -0
  4. package/assets/init/.agents/skills/earos-artifact-gen/references/output-guide.md +367 -0
  5. package/assets/init/.agents/skills/earos-assess/SKILL.md +212 -0
  6. package/assets/init/.agents/skills/earos-assess/references/calibration-benchmarks.md +160 -0
  7. package/assets/init/.agents/skills/earos-assess/references/output-templates.md +311 -0
  8. package/assets/init/.agents/skills/earos-assess/references/scoring-protocol.md +281 -0
  9. package/assets/init/.agents/skills/earos-calibrate/SKILL.md +153 -0
  10. package/assets/init/.agents/skills/earos-calibrate/references/agreement-metrics.md +188 -0
  11. package/assets/init/.agents/skills/earos-calibrate/references/calibration-protocol.md +263 -0
  12. package/assets/init/.agents/skills/earos-create/SKILL.md +257 -0
  13. package/assets/init/.agents/skills/earos-create/references/criterion-writing-guide.md +268 -0
  14. package/assets/init/.agents/skills/earos-create/references/dependency-rules.md +193 -0
  15. package/assets/init/.agents/skills/earos-create/references/rubric-interview-guide.md +123 -0
  16. package/assets/init/.agents/skills/earos-create/references/validation-checklist.md +238 -0
  17. package/assets/init/.agents/skills/earos-profile-author/SKILL.md +251 -0
  18. package/assets/init/.agents/skills/earos-profile-author/references/criterion-writing-guide.md +280 -0
  19. package/assets/init/.agents/skills/earos-profile-author/references/design-methods.md +158 -0
  20. package/assets/init/.agents/skills/earos-profile-author/references/profile-checklist.md +173 -0
  21. package/assets/init/.agents/skills/earos-remediate/SKILL.md +118 -0
  22. package/assets/init/.agents/skills/earos-remediate/references/output-template.md +199 -0
  23. package/assets/init/.agents/skills/earos-remediate/references/remediation-patterns.md +330 -0
  24. package/assets/init/.agents/skills/earos-report/SKILL.md +85 -0
  25. package/assets/init/.agents/skills/earos-report/references/portfolio-template.md +181 -0
  26. package/assets/init/.agents/skills/earos-report/references/single-artifact-template.md +168 -0
  27. package/assets/init/.agents/skills/earos-review/SKILL.md +130 -0
  28. package/assets/init/.agents/skills/earos-review/references/challenge-patterns.md +163 -0
  29. package/assets/init/.agents/skills/earos-review/references/output-template.md +180 -0
  30. package/assets/init/.agents/skills/earos-template-fill/SKILL.md +177 -0
  31. package/assets/init/.agents/skills/earos-template-fill/references/evidence-writing-guide.md +186 -0
  32. package/assets/init/.agents/skills/earos-template-fill/references/section-rubric-mapping.md +200 -0
  33. package/assets/init/.agents/skills/earos-validate/SKILL.md +113 -0
  34. package/assets/init/.agents/skills/earos-validate/references/fix-patterns.md +281 -0
  35. package/assets/init/.agents/skills/earos-validate/references/validation-checks.md +287 -0
  36. package/assets/init/.claude/CLAUDE.md +4 -0
  37. package/assets/init/AGENTS.md +293 -0
  38. package/assets/init/CLAUDE.md +635 -0
  39. package/assets/init/README.md +507 -0
  40. package/assets/init/calibration/gold-set/.gitkeep +0 -0
  41. package/assets/init/calibration/results/.gitkeep +0 -0
  42. package/assets/init/core/core-meta-rubric.yaml +643 -0
  43. package/assets/init/docs/consistency-report.md +325 -0
  44. package/assets/init/docs/getting-started.md +194 -0
  45. package/assets/init/docs/profile-authoring-guide.md +51 -0
  46. package/assets/init/docs/terminology.md +126 -0
  47. package/assets/init/earos.manifest.yaml +104 -0
  48. package/assets/init/evaluations/.gitkeep +0 -0
  49. package/assets/init/examples/aws-event-driven-order-processing/artifact.yaml +2056 -0
  50. package/assets/init/examples/aws-event-driven-order-processing/evaluation.yaml +973 -0
  51. package/assets/init/examples/aws-event-driven-order-processing/report.md +244 -0
  52. package/assets/init/examples/example-solution-architecture.evaluation.yaml +136 -0
  53. package/assets/init/examples/multi-cloud-data-analytics/artifact.yaml +715 -0
  54. package/assets/init/overlays/data-governance.yaml +94 -0
  55. package/assets/init/overlays/regulatory.yaml +154 -0
  56. package/assets/init/overlays/security.yaml +92 -0
  57. package/assets/init/profiles/adr.yaml +225 -0
  58. package/assets/init/profiles/capability-map.yaml +223 -0
  59. package/assets/init/profiles/reference-architecture.yaml +426 -0
  60. package/assets/init/profiles/roadmap.yaml +205 -0
  61. package/assets/init/profiles/solution-architecture.yaml +227 -0
  62. package/assets/init/research/architecture-assessment-rubrics-research.docx +0 -0
  63. package/assets/init/research/architecture-assessment-rubrics-research.md +566 -0
  64. package/assets/init/research/reference-architecture-research.md +751 -0
  65. package/assets/init/standard/EAROS.md +1426 -0
  66. package/assets/init/standard/schemas/artifact.schema.json +1295 -0
  67. package/assets/init/standard/schemas/artifact.uischema.json +65 -0
  68. package/assets/init/standard/schemas/evaluation.schema.json +284 -0
  69. package/assets/init/standard/schemas/rubric.schema.json +383 -0
  70. package/assets/init/templates/evaluation-record.template.yaml +58 -0
  71. package/assets/init/templates/new-profile.template.yaml +65 -0
  72. package/bin.js +188 -0
  73. package/dist/assets/_basePickBy-BVu6YmSW.js +1 -0
  74. package/dist/assets/_baseUniq-CWRzQDz_.js +1 -0
  75. package/dist/assets/arc-CyDBhtDM.js +1 -0
  76. package/dist/assets/architectureDiagram-2XIMDMQ5-BH6O4dvN.js +36 -0
  77. package/dist/assets/blockDiagram-WCTKOSBZ-2xmwdjpg.js +132 -0
  78. package/dist/assets/c4Diagram-IC4MRINW-BNmPRFJF.js +10 -0
  79. package/dist/assets/channel-CiySTNoJ.js +1 -0
  80. package/dist/assets/chunk-4BX2VUAB-DGQTvirp.js +1 -0
  81. package/dist/assets/chunk-55IACEB6-DNMAQAC_.js +1 -0
  82. package/dist/assets/chunk-FMBD7UC4-BJbVTQ5o.js +15 -0
  83. package/dist/assets/chunk-JSJVCQXG-BCxUL74A.js +1 -0
  84. package/dist/assets/chunk-KX2RTZJC-H7wWZOfz.js +1 -0
  85. package/dist/assets/chunk-NQ4KR5QH-BK4RlTQF.js +220 -0
  86. package/dist/assets/chunk-QZHKN3VN-0chxDV5g.js +1 -0
  87. package/dist/assets/chunk-WL4C6EOR-DexfQ-AV.js +189 -0
  88. package/dist/assets/classDiagram-VBA2DB6C-D7luWJQn.js +1 -0
  89. package/dist/assets/classDiagram-v2-RAHNMMFH-D7luWJQn.js +1 -0
  90. package/dist/assets/clone-ylgRbd3D.js +1 -0
  91. package/dist/assets/cose-bilkent-S5V4N54A-DS2IOCfZ.js +1 -0
  92. package/dist/assets/cytoscape.esm-CyJtwmzi.js +331 -0
  93. package/dist/assets/dagre-KLK3FWXG-BbSoTTa3.js +4 -0
  94. package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  95. package/dist/assets/diagram-E7M64L7V-C9TvYgv0.js +24 -0
  96. package/dist/assets/diagram-IFDJBPK2-DowUMWrg.js +43 -0
  97. package/dist/assets/diagram-P4PSJMXO-BL6nrnQF.js +24 -0
  98. package/dist/assets/erDiagram-INFDFZHY-rXPRl8VM.js +70 -0
  99. package/dist/assets/flowDiagram-PKNHOUZH-DBRM99-W.js +162 -0
  100. package/dist/assets/ganttDiagram-A5KZAMGK-INcWFsBT.js +292 -0
  101. package/dist/assets/gitGraphDiagram-K3NZZRJ6-DMwpfE91.js +65 -0
  102. package/dist/assets/graph-DLQn37b-.js +1 -0
  103. package/dist/assets/index-BFFITMT8.js +650 -0
  104. package/dist/assets/index-H7f6VTz1.css +1 -0
  105. package/dist/assets/infoDiagram-LFFYTUFH-B0f4TWRM.js +2 -0
  106. package/dist/assets/init-Gi6I4Gst.js +1 -0
  107. package/dist/assets/ishikawaDiagram-PHBUUO56-CsU6XimZ.js +70 -0
  108. package/dist/assets/journeyDiagram-4ABVD52K-CQ7ibNib.js +139 -0
  109. package/dist/assets/kanban-definition-K7BYSVSG-DzEN7THt.js +89 -0
  110. package/dist/assets/katex-B1X10hvy.js +261 -0
  111. package/dist/assets/layout-C0dvb42R.js +1 -0
  112. package/dist/assets/linear-j4a8mGj7.js +1 -0
  113. package/dist/assets/mindmap-definition-YRQLILUH-DP8iEuCf.js +68 -0
  114. package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
  115. package/dist/assets/pieDiagram-SKSYHLDU-BpIAXgAm.js +30 -0
  116. package/dist/assets/quadrantDiagram-337W2JSQ-DrpXn5Eg.js +7 -0
  117. package/dist/assets/requirementDiagram-Z7DCOOCP-Bg7EwHlG.js +73 -0
  118. package/dist/assets/sankeyDiagram-WA2Y5GQK-BWagRs1F.js +10 -0
  119. package/dist/assets/sequenceDiagram-2WXFIKYE-q5jwhivG.js +145 -0
  120. package/dist/assets/stateDiagram-RAJIS63D-B_J9pE-2.js +1 -0
  121. package/dist/assets/stateDiagram-v2-FVOUBMTO-Q_1GcybB.js +1 -0
  122. package/dist/assets/timeline-definition-YZTLITO2-dv0jgQ0z.js +61 -0
  123. package/dist/assets/treemap-KZPCXAKY-Dt1dkIE7.js +162 -0
  124. package/dist/assets/vennDiagram-LZ73GAT5-BdO5RgRZ.js +34 -0
  125. package/dist/assets/xychartDiagram-JWTSCODW-CpDVe-8v.js +7 -0
  126. package/dist/index.html +23 -0
  127. package/export-docx.js +1583 -0
  128. package/init.js +353 -0
  129. package/manifest-cli.mjs +207 -0
  130. package/package.json +83 -0
  131. package/schemas/artifact.schema.json +1295 -0
  132. package/schemas/artifact.uischema.json +65 -0
  133. package/schemas/evaluation.schema.json +284 -0
  134. package/schemas/rubric.schema.json +383 -0
  135. package/serve.js +238 -0
@@ -0,0 +1,238 @@
1
+ # Validation Checklist
2
+
3
+ This checklist covers all pre-publication quality checks for a new EAROS rubric file. Run through it before presenting the final YAML to the user and before placing the file in the repository.
4
+
5
+ ---
6
+
7
+ ## Quick Reference — What "Valid" Means
8
+
9
+ A valid EAROS v2 rubric file:
10
+ 1. Passes schema validation against `standard/schemas/rubric.schema.json`
11
+ 2. Has a unique rubric ID and unique criterion IDs (no conflicts across the entire repo)
12
+ 3. Has the correct YAML structure for its kind (profile, overlay, or core rubric)
13
+ 4. Has all 13 v2 required fields on every criterion
14
+ 5. Has a calibrated gate model (not over- or under-gated)
15
+ 6. Does not duplicate what `EAROS-CORE-002` already covers
16
+
17
+ ---
18
+
19
+ ## Section 1 — Schema and Structure
20
+
21
+ ### Top-level required fields
22
+
23
+ | Field | Profiles | Overlays | Core rubrics |
24
+ |-------|----------|----------|-------------|
25
+ | `rubric_id` | ✓ | ✓ | ✓ |
26
+ | `version` | ✓ | ✓ | ✓ |
27
+ | `kind` | `profile` | `overlay` | `core_rubric` |
28
+ | `title` | ✓ | ✓ | ✓ |
29
+ | `status` | ✓ | ✓ | ✓ |
30
+ | `effective_date` | ✓ | ✓ | ✓ |
31
+ | `artifact_type` | specific type | `any` | ✓ |
32
+ | `inherits` | `[EAROS-CORE-002]` | **absent** | **absent** |
33
+ | `design_method` | ✓ | optional | optional |
34
+ | `dimensions` | ✓ | ✓ | ✓ |
35
+ | `scoring` | ✓ | ✓ | ✓ |
36
+ | `outputs` | ✓ | ✓ | ✓ |
37
+
38
+ ### Scoring section required fields
39
+
40
+ ```yaml
41
+ scoring:
42
+ scale: 0-4 ordinal plus N/A
43
+ method: gates_first_then_weighted_average # profiles and core
44
+ # OR
45
+ method: append_to_base_rubric # overlays only
46
+ thresholds:
47
+ pass: ...
48
+ conditional_pass: ...
49
+ rework_required: ...
50
+ reject: ...
51
+ not_reviewable: ...
52
+ na_policy: ...
53
+ confidence_policy: ...
54
+ ```
55
+
56
+ ### Outputs section required fields
57
+
58
+ ```yaml
59
+ outputs:
60
+ require_evidence_refs: true
61
+ require_confidence: true
62
+ require_actions: true
63
+ require_evidence_class: true
64
+ require_evidence_anchors: true
65
+ ```
66
+
67
+ ---
68
+
69
+ ## Section 2 — Criterion Completeness
70
+
71
+ For **every** criterion in the file, check:
72
+
73
+ | Field | Present? | Notes |
74
+ |-------|----------|-------|
75
+ | `id` | | Unique across entire repo |
76
+ | `question` | | Observable yes/no or does-the-artifact question |
77
+ | `description` | | Why it matters + failure consequence |
78
+ | `metric_type: ordinal` | | Must be exactly `ordinal` |
79
+ | `scale: [0, 1, 2, 3, 4, "N/A"]` | | Must be exactly this |
80
+ | `gate` | | Either `gate: false` or full gate block |
81
+ | `required_evidence` | | Concrete observable items, minimum 2 |
82
+ | `scoring_guide["0"]` | | Distinct from level 1 |
83
+ | `scoring_guide["1"]` | | Distinct from levels 0 and 2 |
84
+ | `scoring_guide["2"]` | | Distinct from levels 1 and 3 |
85
+ | `scoring_guide["3"]` | | Distinct from levels 2 and 4 |
86
+ | `scoring_guide["4"]` | | Distinct from level 3 |
87
+ | `anti_patterns` | | Minimum 2 specific patterns |
88
+ | `examples.good` | | At least 1 concrete example |
89
+ | `examples.bad` | | At least 1 concrete example |
90
+ | `decision_tree` | | Covers all five score levels |
91
+ | `remediation_hints` | | At least 2 specific actions |
92
+
93
+ **Scoring guide quality check:**
94
+ - No level uses "somewhat", "mostly", "adequate", "sufficient" without defining what sufficient means observably
95
+ - Level 2 and level 3 are distinguishable by observable features, not degree words
96
+ - Level 4 has a discriminating feature that level 3 lacks (the "excellent but not perfect" problem)
97
+
98
+ **Decision tree quality check:**
99
+ - Every IF condition is observable from the artifact
100
+ - Conditions are countable or presence/absence based where possible
101
+ - All five score levels are covered
102
+
103
+ ---
104
+
105
+ ## Section 3 — ID Uniqueness
106
+
107
+ Check before committing. These IDs must be globally unique:
108
+
109
+ ### Rubric-level IDs
110
+
111
+ - [ ] `rubric_id` does not exist in any other file in `core/`, `profiles/`, or `overlays/`
112
+ - [ ] ID follows naming convention:
113
+ - Profile: `EAROS-[ARTIFACT]-[NNN]`
114
+ - Overlay: `EAROS-OVR-[CONCERN]-[NNN]`
115
+ - Core: `EAROS-CORE-[DOMAIN?]-[NNN]`
116
+
117
+ ### Criterion-level IDs
118
+
119
+ - [ ] Scan all criterion IDs in `core/core-meta-rubric.yaml` — no conflicts
120
+ - [ ] Scan all criterion IDs in every file in `profiles/` — no conflicts
121
+ - [ ] Scan all criterion IDs in every file in `overlays/` — no conflicts
122
+
123
+ Known existing criterion IDs (as of v2 baseline):
124
+ - Core: `STK-01`, `STK-02`, `SCP-01`, `CVP-01`, `TRC-01`, `CON-01`, `RAT-01`, `CMP-01`, `ACT-01`, `MNT-01`
125
+ - Regulatory overlay: `REG-ID-01`, `REG-EV-01`
126
+ - Reference architecture profile: `RA-VIEW-01`, `RA-PATT-01`, `RA-REUSE-01`, `RA-IMPL-01`, `RA-OPS-01`, `RA-SLO-01`, `RA-DATA-01`, `RA-SEC-01`, `RA-EVOL-01`
127
+
128
+ ---
129
+
130
+ ## Section 4 — Gate Model Validation
131
+
132
+ | Check | Target | Max |
133
+ |-------|--------|-----|
134
+ | `critical` gates | 0–1 | 1 |
135
+ | `major` gates | 1–2 | 3 |
136
+ | Criteria with `gate: false` | majority | — |
137
+
138
+ **Red flags:**
139
+ - Every criterion has a gate → over-gating; dilutes the signal
140
+ - No criteria have any gate → weak governance model; nothing prevents weak artifacts from passing on average
141
+ - critical gate without a specific `failure_effect` → will confuse evaluators
142
+ - Major gate with `failure_effect` that says "reject" → use critical severity instead
143
+
144
+ **Gate balance test:**
145
+ Imagine an otherwise excellent artifact (scoring 3.5 average) that scores 1 on a gated criterion. Is the gate outcome appropriate?
146
+ - If the criterion has `critical` → entire artifact is rejected. Is that right?
147
+ - If the criterion has `major` → artifact is capped at `conditional_pass`. Is that right?
148
+
149
+ ---
150
+
151
+ ## Section 5 — Core Overlap Check
152
+
153
+ The core meta-rubric (`EAROS-CORE-002`) already covers these concerns. **Do not add profile criteria that duplicate them:**
154
+
155
+ | Core criterion | What it covers |
156
+ |----------------|---------------|
157
+ | `STK-01` | Stakeholder identification, purpose, decision context |
158
+ | `STK-02` | Concern-to-view mapping |
159
+ | `SCP-01` | Scope, boundary, assumptions, exclusions |
160
+ | `CVP-01` | View fitness for purpose / stakeholder concerns |
161
+ | `TRC-01` | Traceability to drivers, requirements, principles |
162
+ | `CON-01` | Internal consistency (terminology, interfaces, diagrams) |
163
+ | `RAT-01` | Risks, assumptions, constraints, trade-offs |
164
+ | `CMP-01` | Standards and policy compliance |
165
+ | `ACT-01` | Actionability and implementation readiness |
166
+ | `MNT-01` | Ownership, version control, change history |
167
+
168
+ **Test for each proposed criterion:** "Does the core meta-rubric already ask this question or a very similar one?" If yes, the new criterion is likely redundant.
169
+
170
+ Acceptable extensions of core criteria (not duplicates):
171
+ - A profile criterion that asks about a specific type of view that core doesn't name (e.g., "does the reference architecture include an operational runbook?")
172
+ - A criterion that asks about a concern specific to this artifact type that the generic core criterion wouldn't catch
173
+
174
+ ---
175
+
176
+ ## Section 6 — Criteria Count and Dimension Structure
177
+
178
+ | Type | Min criteria | Max criteria | Min dimensions | Max dimensions |
179
+ |------|-------------|-------------|----------------|----------------|
180
+ | Profile | 5 | 12 | 2 | 6 |
181
+ | Overlay | 2 | 6 | 1 | 3 |
182
+ | Core rubric | 8 | 12 | 6 | 10 |
183
+
184
+ **If criteria count exceeds the max:**
185
+ - "Can any criteria be merged? If two criteria are often scored identically, they may be measuring the same thing."
186
+ - "Are any criteria measuring something the core already covers?"
187
+ - "If the scope is genuinely too large for 12 criteria, should this be two profiles for two distinct artifact sub-types?"
188
+
189
+ **Dimension weight check:**
190
+ - Default weight: `1.0`
191
+ - Higher weight (`1.2`–`1.5`): use for dimensions that are the primary quality signal for this artifact type
192
+ - Lower weight (`0.7`–`0.9`): use for supplementary dimensions
193
+ - At most 2 dimensions should be weighted above `1.0`
194
+
195
+ ---
196
+
197
+ ## Section 7 — Calibration Readiness
198
+
199
+ Before the file can move from `status: draft` to `status: candidate`:
200
+
201
+ | Check | Requirement |
202
+ |-------|-------------|
203
+ | Real artifacts available | Minimum 3: 1 strong, 1 weak, 1 ambiguous |
204
+ | Reviewers assigned | Minimum 2 (at least 1 domain expert) |
205
+ | Independent scoring planned | Each reviewer scores without seeing others' scores |
206
+ | Kappa target set | > 0.70 for well-defined criteria, > 0.50 for subjective |
207
+
208
+ **Common calibration blockers:**
209
+ - Level descriptors too abstract → reviewers can't agree on what level 2 vs. 3 means
210
+ - Decision tree missing → agents and reviewers use different logic to reach the same score
211
+ - Required evidence too vague → reviewers look for different things in the artifact
212
+
213
+ ---
214
+
215
+ ## Section 8 — File Placement and Naming
216
+
217
+ | Type | Location | Filename pattern |
218
+ |------|----------|-----------------|
219
+ | Profile | `profiles/` | `<artifact-type>.yaml` |
220
+ | Overlay | `overlays/` | `<concern>.yaml` |
221
+ | Core rubric | `core/` | `<name>.yaml` |
222
+
223
+ Rules:
224
+ - Kebab-case filenames (no spaces, no uppercase)
225
+ - No version number in the filename — version is tracked inside the file only (`version: 2.0.0`)
226
+ - The `kind` field is the type discriminator (`profile`, `overlay`, `core_rubric`)
227
+
228
+ ---
229
+
230
+ ## Post-Creation Checklist
231
+
232
+ After the file is placed:
233
+
234
+ - [ ] Run `earos-validate` to confirm schema conformance and catch any remaining errors
235
+ - [ ] Add the new rubric ID to the skills table in `CLAUDE.md` if it changes the "when to use which skill" guidance
236
+ - [ ] Create a calibration pack (3+ artifacts) before promoting to `candidate`
237
+ - [ ] Add worked evaluation example to `examples/` after first calibration run
238
+ - [ ] Update `CHANGELOG.md` with the new rubric entry
@@ -0,0 +1,251 @@
1
+ ---
2
+ name: earos-profile-author
3
+ description: "Technical YAML authoring guide for EAROS profiles and overlays. Use this skill when someone has already completed rubric design (criteria defined, design method chosen) and needs help with the YAML structure, v2 field requirements, or schema compliance. Also triggers when someone asks \"what are the 5 design methods\", \"how do I write a criterion\", \"what fields does a v2 criterion need\", or \"how do I structure overlay YAML\". NOTE: For creating new rubrics from scratch — where the criteria are not yet defined — use earos-create instead. This skill focuses on the technical details of profile YAML authoring after rubric design is complete."
4
+ ---
5
+
6
+ # EAROS Profile Author Skill
7
+
8
+ You are guiding the creation of a new EAROS profile or overlay. This is a governed authoring process — the result must be valid YAML that passes schema validation and can be calibrated against real artifacts before production use.
9
+
10
+ **Why this matters:** A profile that is ambiguous, over-gated, or missing level descriptors will produce unreliable assessments — different reviewers will score the same artifact differently, governance decisions will be arbitrary, and the framework loses credibility. The process below exists to prevent this. Every field, every example, every decision tree entry is there to increase scoring reproducibility.
11
+
12
+ **Before drafting criteria:** Read `references/design-methods.md` to understand which method fits this artifact type. Read `references/criterion-writing-guide.md` before writing any criteria.
13
+
14
+ ---
15
+
16
+ ## Step 0 — Load Reference Files
17
+
18
+ Before writing any YAML, read:
19
+ 1. `templates/new-profile.template.yaml` — scaffold to start from
20
+ 2. `core/core-meta-rubric.yaml` — understand what core covers (don't duplicate it)
21
+ 3. `profiles/reference-architecture.yaml` — the model profile; use as reference implementation
22
+ 4. `standard/schemas/rubric.schema.json` — schema all YAML files must conform to
23
+
24
+ Ask: **Are you creating a profile (artifact-specific) or an overlay (cross-cutting concern)?**
25
+
26
+ - **Profile**: inherits from `EAROS-CORE-002`; for a distinct, recurring artifact type
27
+ - **Overlay**: does not inherit; applies to any artifact type; uses `scoring.method: append_to_base_rubric`
28
+
29
+ ---
30
+
31
+ ## Step 1 — Qualify the Need
32
+
33
+ Before writing any YAML, ask these qualification questions. A profile that skips qualification produces criteria that duplicate the core or don't fit the artifact type.
34
+
35
+ 1. What artifact type is this for?
36
+ 2. Why is the core meta-rubric alone insufficient — what concerns does it miss that genuinely matter for this type?
37
+ 3. Do 3–5 real examples exist? (Required for calibration. If not, proceed with `status: draft` and a caveat.)
38
+ 4. Who are the primary reviewers?
39
+ 5. What is the key quality failure mode — what does a bad version of this artifact typically lack?
40
+
41
+ Document the answers — they drive `purpose`, `stakeholders`, and criterion content.
42
+
43
+ ---
44
+
45
+ ## Step 2 — Choose a Design Method
46
+
47
+ > **Read `references/design-methods.md`** for detailed guidance on each method, including when to use it, what the resulting profile structure looks like, and examples from existing profiles.
48
+
49
+ | Method | Label | Best For |
50
+ |--------|-------|----------|
51
+ | A | Decision-Centred | ADRs, investment reviews, exception requests |
52
+ | B | Viewpoint-Centred | Capability maps, reference architectures, solution architectures |
53
+ | C | Lifecycle-Centred | Transition designs, roadmaps, handover docs |
54
+ | D | Risk-Centred | Security, regulatory, resilience architecture |
55
+ | E | Pattern-Library | Recurring reference patterns, platform services |
56
+
57
+ ---
58
+
59
+ ## Step 3 — Assign a Rubric ID
60
+
61
+ Check existing IDs in `core/`, `profiles/`, and `overlays/` to avoid conflicts:
62
+ - Profiles: `EAROS-<ARTIFACT>-<NNN>` (e.g., `EAROS-POSTMORTEM-001`)
63
+ - Overlays: `EAROS-OVR-<CONCERN>-<NNN>` (e.g., `EAROS-OVR-RESILIENCE-001`)
64
+
65
+ ---
66
+
67
+ ## Step 4 — Define Dimensions and Criteria
68
+
69
+ **Hard constraints:**
70
+ - Core already covers 10 criteria across 9 dimensions — do NOT duplicate these
71
+ - Add **5–12 new criteria only** — fewer criteria = more reliable calibration
72
+ - Group into **2–6 new dimensions** specific to this artifact type
73
+
74
+ > **Read `references/criterion-writing-guide.md`** before interviewing the user on criteria. It contains the criterion definition interview, gate guidance with examples, and complete/incomplete criterion examples.
75
+
76
+ For each criterion, run the criterion definition interview:
77
+ 1. What is the specific quality question? (→ `question`)
78
+ 2. Why does this matter — what goes wrong when it's absent? (→ `description`)
79
+ 3. What observable evidence at each level 0–4? (→ `scoring_guide`)
80
+ 4. What direct evidence would you look for in the artifact? (→ `required_evidence`)
81
+ 5. Good example? (→ `examples.good`)
82
+ 6. Bad example / common failure? (→ `examples.bad`, `anti_patterns`)
83
+ 7. Decision tree for scoring? (→ `decision_tree`)
84
+ 8. Is this a gate? If yes, severity and effect? (→ `gate`)
85
+
86
+ Gate guidance (full detail in `references/criterion-writing-guide.md#gate-guidance`):
87
+ - Not every criterion needs a gate — over-gating creates false rejects
88
+ - Reserve `critical` for compliance-level failures only
89
+ - Use `major` for the most important quality dimension
90
+ - Target: at most 1–2 `major` gates; 0–1 `critical` gates per profile
91
+
92
+ ---
93
+
94
+ ## Step 5 — Generate the YAML
95
+
96
+ Generate the full profile YAML. Start from `templates/new-profile.template.yaml`:
97
+
98
+ ```yaml
99
+ rubric_id: EAROS-[ARTIFACT]-001
100
+ version: 1.0.0
101
+ kind: profile
102
+ title: "[Artifact Type] Profile"
103
+ status: draft
104
+ effective_date: "[today's date]"
105
+ next_review_date: "[6 months from today]"
106
+ owner: enterprise-architecture
107
+ artifact_type: [artifact_type_snake_case]
108
+ inherits:
109
+ - EAROS-CORE-002
110
+ design_method: [method_id]
111
+
112
+ purpose:
113
+ - [purpose statement]
114
+
115
+ stakeholders:
116
+ - [stakeholder]
117
+
118
+ dimensions:
119
+ - id: [ARTIFACT-D1]
120
+ name: [Dimension Name]
121
+ description: "[description]"
122
+ weight: 1.0
123
+ criteria:
124
+ - id: [ARTIFACT-CRT-01]
125
+ question: "[scoring question]"
126
+ description: >
127
+ [detailed description and why it matters]
128
+ metric_type: ordinal
129
+ scale: [0, 1, 2, 3, 4, "N/A"]
130
+ gate:
131
+ enabled: true
132
+ severity: major
133
+ failure_effect: "[effect]"
134
+ required_evidence:
135
+ - [evidence item]
136
+ scoring_guide:
137
+ "0": "[Absent]"
138
+ "1": "[Weak]"
139
+ "2": "[Partial]"
140
+ "3": "[Good]"
141
+ "4": "[Strong]"
142
+ anti_patterns:
143
+ - [bad pattern]
144
+ examples:
145
+ good:
146
+ - "[Strong evidence example]"
147
+ bad:
148
+ - "[Absent/weak evidence example]"
149
+ decision_tree: >
150
+ IF [condition] THEN score [N].
151
+ remediation_hints:
152
+ - [specific improvement action]
153
+
154
+ scoring:
155
+ scale: 0-4 ordinal plus N/A
156
+ method: gates_first_then_weighted_average
157
+ thresholds:
158
+ pass: No critical gate failure, overall >= 3.2, no dimension < 2.0
159
+ conditional_pass: No critical gate failure, overall 2.4-3.19
160
+ rework_required: Overall < 2.4 or repeated weak dimensions
161
+ reject: Critical gate failure or mandatory control breach
162
+ not_reviewable: Evidence insufficient for core gate criteria
163
+ na_policy: Exclude N/A criteria from denominator; evaluator must justify N/A
164
+ confidence_policy: Confidence reported separately, must not modify score
165
+
166
+ outputs:
167
+ require_evidence_refs: true
168
+ require_confidence: true
169
+ require_actions: true
170
+ require_evidence_class: true
171
+ require_evidence_anchors: true
172
+
173
+ calibration:
174
+ required_before_production: true
175
+ minimum_examples: 3
176
+
177
+ change_log:
178
+ - version: "1.0.0"
179
+ date: "[today]"
180
+ author: "[author]"
181
+ changes:
182
+ - Initial profile for EAROS v2.0
183
+ ```
184
+
185
+ ---
186
+
187
+ ## Step 6 — Pre-Publication Checks
188
+
189
+ > **Read `references/profile-checklist.md`** for the complete validation checklist before saving the file.
190
+
191
+ Quick summary:
192
+ - Every criterion has all 13 v2 required fields
193
+ - No criterion IDs duplicate existing IDs across `core/`, `profiles/`, `overlays/`
194
+ - Gate assignments are deliberate (1–2 major, 0–1 critical maximum)
195
+ - Profile YAML validates against `standard/schemas/rubric.schema.json`
196
+
197
+ ---
198
+
199
+ ## Step 7 — Calibration Checklist
200
+
201
+ Give the user this checklist:
202
+
203
+ ```
204
+ Pre-Calibration
205
+ [ ] 3+ real artifacts collected (1 strong >= 3.2, 1 weak < 2.4, 1 ambiguous borderline)
206
+ [ ] 2+ reviewers identified
207
+ [ ] YAML complete and schema-valid
208
+
209
+ Calibration
210
+ [ ] Each reviewer scores each artifact independently
211
+ [ ] Cohen's kappa computed per criterion (target > 0.70 well-defined, > 0.50 subjective)
212
+ [ ] Disagreements of >= 2 points identified and resolved against level descriptors
213
+ [ ] If kappa < 0.50 for any criterion: revise or split the criterion
214
+
215
+ Post-Calibration
216
+ [ ] Profile status changed: draft -> candidate
217
+ [ ] Worked evaluation example added to examples/
218
+ [ ] CHANGELOG.md updated
219
+ ```
220
+
221
+ ---
222
+
223
+ ## Step 8 — File Placement
224
+
225
+ - Profiles: `profiles/<artifact-type>.yaml` (kebab-case, lowercase)
226
+ - Overlays: `overlays/<concern>.yaml`
227
+ - Examples: `examples/example-<artifact-type>.evaluation.yaml`
228
+
229
+ Remind the user: "Validate the YAML against `standard/schemas/rubric.schema.json` before committing. Use `earos-validate` to run the full repo health check after adding the profile."
230
+
231
+ ---
232
+
233
+ ## Non-Negotiable Rules
234
+
235
+ 1. **Never add more than 12 criteria.** If you think you need more, split into two profiles.
236
+ 2. **Every criterion must have all 13 v2 fields.** Incomplete criteria are harder to calibrate.
237
+ 3. **Calibrate before production.** `status: draft` must not be used in a live governance process.
238
+ 4. **Overlays do not inherit.** They use `scoring.method: append_to_base_rubric` and have no `inherits` field.
239
+ 5. **Be opinionated on gates.** Under-gating lets bad designs pass; over-gating rejects good ones on technicalities.
240
+
241
+ ---
242
+
243
+ ## When to Read Which Reference File
244
+
245
+ | When | Read |
246
+ |------|------|
247
+ | Choosing a design method | `references/design-methods.md` |
248
+ | Drafting criteria (any stage) | `references/criterion-writing-guide.md` |
249
+ | Setting gate types and weights | `references/criterion-writing-guide.md#gate-guidance` |
250
+ | Before publishing | `references/profile-checklist.md` |
251
+ | Unsure if criteria overlap with core | Check `core/core-meta-rubric.yaml` |