@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.
- package/README.md +156 -0
- package/assets/init/.agents/skills/earos-artifact-gen/SKILL.md +106 -0
- package/assets/init/.agents/skills/earos-artifact-gen/references/interview-guide.md +313 -0
- package/assets/init/.agents/skills/earos-artifact-gen/references/output-guide.md +367 -0
- package/assets/init/.agents/skills/earos-assess/SKILL.md +212 -0
- package/assets/init/.agents/skills/earos-assess/references/calibration-benchmarks.md +160 -0
- package/assets/init/.agents/skills/earos-assess/references/output-templates.md +311 -0
- package/assets/init/.agents/skills/earos-assess/references/scoring-protocol.md +281 -0
- package/assets/init/.agents/skills/earos-calibrate/SKILL.md +153 -0
- package/assets/init/.agents/skills/earos-calibrate/references/agreement-metrics.md +188 -0
- package/assets/init/.agents/skills/earos-calibrate/references/calibration-protocol.md +263 -0
- package/assets/init/.agents/skills/earos-create/SKILL.md +257 -0
- package/assets/init/.agents/skills/earos-create/references/criterion-writing-guide.md +268 -0
- package/assets/init/.agents/skills/earos-create/references/dependency-rules.md +193 -0
- package/assets/init/.agents/skills/earos-create/references/rubric-interview-guide.md +123 -0
- package/assets/init/.agents/skills/earos-create/references/validation-checklist.md +238 -0
- package/assets/init/.agents/skills/earos-profile-author/SKILL.md +251 -0
- package/assets/init/.agents/skills/earos-profile-author/references/criterion-writing-guide.md +280 -0
- package/assets/init/.agents/skills/earos-profile-author/references/design-methods.md +158 -0
- package/assets/init/.agents/skills/earos-profile-author/references/profile-checklist.md +173 -0
- package/assets/init/.agents/skills/earos-remediate/SKILL.md +118 -0
- package/assets/init/.agents/skills/earos-remediate/references/output-template.md +199 -0
- package/assets/init/.agents/skills/earos-remediate/references/remediation-patterns.md +330 -0
- package/assets/init/.agents/skills/earos-report/SKILL.md +85 -0
- package/assets/init/.agents/skills/earos-report/references/portfolio-template.md +181 -0
- package/assets/init/.agents/skills/earos-report/references/single-artifact-template.md +168 -0
- package/assets/init/.agents/skills/earos-review/SKILL.md +130 -0
- package/assets/init/.agents/skills/earos-review/references/challenge-patterns.md +163 -0
- package/assets/init/.agents/skills/earos-review/references/output-template.md +180 -0
- package/assets/init/.agents/skills/earos-template-fill/SKILL.md +177 -0
- package/assets/init/.agents/skills/earos-template-fill/references/evidence-writing-guide.md +186 -0
- package/assets/init/.agents/skills/earos-template-fill/references/section-rubric-mapping.md +200 -0
- package/assets/init/.agents/skills/earos-validate/SKILL.md +113 -0
- package/assets/init/.agents/skills/earos-validate/references/fix-patterns.md +281 -0
- package/assets/init/.agents/skills/earos-validate/references/validation-checks.md +287 -0
- package/assets/init/.claude/CLAUDE.md +4 -0
- package/assets/init/AGENTS.md +293 -0
- package/assets/init/CLAUDE.md +635 -0
- package/assets/init/README.md +507 -0
- package/assets/init/calibration/gold-set/.gitkeep +0 -0
- package/assets/init/calibration/results/.gitkeep +0 -0
- package/assets/init/core/core-meta-rubric.yaml +643 -0
- package/assets/init/docs/consistency-report.md +325 -0
- package/assets/init/docs/getting-started.md +194 -0
- package/assets/init/docs/profile-authoring-guide.md +51 -0
- package/assets/init/docs/terminology.md +126 -0
- package/assets/init/earos.manifest.yaml +104 -0
- package/assets/init/evaluations/.gitkeep +0 -0
- package/assets/init/examples/aws-event-driven-order-processing/artifact.yaml +2056 -0
- package/assets/init/examples/aws-event-driven-order-processing/evaluation.yaml +973 -0
- package/assets/init/examples/aws-event-driven-order-processing/report.md +244 -0
- package/assets/init/examples/example-solution-architecture.evaluation.yaml +136 -0
- package/assets/init/examples/multi-cloud-data-analytics/artifact.yaml +715 -0
- package/assets/init/overlays/data-governance.yaml +94 -0
- package/assets/init/overlays/regulatory.yaml +154 -0
- package/assets/init/overlays/security.yaml +92 -0
- package/assets/init/profiles/adr.yaml +225 -0
- package/assets/init/profiles/capability-map.yaml +223 -0
- package/assets/init/profiles/reference-architecture.yaml +426 -0
- package/assets/init/profiles/roadmap.yaml +205 -0
- package/assets/init/profiles/solution-architecture.yaml +227 -0
- package/assets/init/research/architecture-assessment-rubrics-research.docx +0 -0
- package/assets/init/research/architecture-assessment-rubrics-research.md +566 -0
- package/assets/init/research/reference-architecture-research.md +751 -0
- package/assets/init/standard/EAROS.md +1426 -0
- package/assets/init/standard/schemas/artifact.schema.json +1295 -0
- package/assets/init/standard/schemas/artifact.uischema.json +65 -0
- package/assets/init/standard/schemas/evaluation.schema.json +284 -0
- package/assets/init/standard/schemas/rubric.schema.json +383 -0
- package/assets/init/templates/evaluation-record.template.yaml +58 -0
- package/assets/init/templates/new-profile.template.yaml +65 -0
- package/bin.js +188 -0
- package/dist/assets/_basePickBy-BVu6YmSW.js +1 -0
- package/dist/assets/_baseUniq-CWRzQDz_.js +1 -0
- package/dist/assets/arc-CyDBhtDM.js +1 -0
- package/dist/assets/architectureDiagram-2XIMDMQ5-BH6O4dvN.js +36 -0
- package/dist/assets/blockDiagram-WCTKOSBZ-2xmwdjpg.js +132 -0
- package/dist/assets/c4Diagram-IC4MRINW-BNmPRFJF.js +10 -0
- package/dist/assets/channel-CiySTNoJ.js +1 -0
- package/dist/assets/chunk-4BX2VUAB-DGQTvirp.js +1 -0
- package/dist/assets/chunk-55IACEB6-DNMAQAC_.js +1 -0
- package/dist/assets/chunk-FMBD7UC4-BJbVTQ5o.js +15 -0
- package/dist/assets/chunk-JSJVCQXG-BCxUL74A.js +1 -0
- package/dist/assets/chunk-KX2RTZJC-H7wWZOfz.js +1 -0
- package/dist/assets/chunk-NQ4KR5QH-BK4RlTQF.js +220 -0
- package/dist/assets/chunk-QZHKN3VN-0chxDV5g.js +1 -0
- package/dist/assets/chunk-WL4C6EOR-DexfQ-AV.js +189 -0
- package/dist/assets/classDiagram-VBA2DB6C-D7luWJQn.js +1 -0
- package/dist/assets/classDiagram-v2-RAHNMMFH-D7luWJQn.js +1 -0
- package/dist/assets/clone-ylgRbd3D.js +1 -0
- package/dist/assets/cose-bilkent-S5V4N54A-DS2IOCfZ.js +1 -0
- package/dist/assets/cytoscape.esm-CyJtwmzi.js +331 -0
- package/dist/assets/dagre-KLK3FWXG-BbSoTTa3.js +4 -0
- package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/assets/diagram-E7M64L7V-C9TvYgv0.js +24 -0
- package/dist/assets/diagram-IFDJBPK2-DowUMWrg.js +43 -0
- package/dist/assets/diagram-P4PSJMXO-BL6nrnQF.js +24 -0
- package/dist/assets/erDiagram-INFDFZHY-rXPRl8VM.js +70 -0
- package/dist/assets/flowDiagram-PKNHOUZH-DBRM99-W.js +162 -0
- package/dist/assets/ganttDiagram-A5KZAMGK-INcWFsBT.js +292 -0
- package/dist/assets/gitGraphDiagram-K3NZZRJ6-DMwpfE91.js +65 -0
- package/dist/assets/graph-DLQn37b-.js +1 -0
- package/dist/assets/index-BFFITMT8.js +650 -0
- package/dist/assets/index-H7f6VTz1.css +1 -0
- package/dist/assets/infoDiagram-LFFYTUFH-B0f4TWRM.js +2 -0
- package/dist/assets/init-Gi6I4Gst.js +1 -0
- package/dist/assets/ishikawaDiagram-PHBUUO56-CsU6XimZ.js +70 -0
- package/dist/assets/journeyDiagram-4ABVD52K-CQ7ibNib.js +139 -0
- package/dist/assets/kanban-definition-K7BYSVSG-DzEN7THt.js +89 -0
- package/dist/assets/katex-B1X10hvy.js +261 -0
- package/dist/assets/layout-C0dvb42R.js +1 -0
- package/dist/assets/linear-j4a8mGj7.js +1 -0
- package/dist/assets/mindmap-definition-YRQLILUH-DP8iEuCf.js +68 -0
- package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/assets/pieDiagram-SKSYHLDU-BpIAXgAm.js +30 -0
- package/dist/assets/quadrantDiagram-337W2JSQ-DrpXn5Eg.js +7 -0
- package/dist/assets/requirementDiagram-Z7DCOOCP-Bg7EwHlG.js +73 -0
- package/dist/assets/sankeyDiagram-WA2Y5GQK-BWagRs1F.js +10 -0
- package/dist/assets/sequenceDiagram-2WXFIKYE-q5jwhivG.js +145 -0
- package/dist/assets/stateDiagram-RAJIS63D-B_J9pE-2.js +1 -0
- package/dist/assets/stateDiagram-v2-FVOUBMTO-Q_1GcybB.js +1 -0
- package/dist/assets/timeline-definition-YZTLITO2-dv0jgQ0z.js +61 -0
- package/dist/assets/treemap-KZPCXAKY-Dt1dkIE7.js +162 -0
- package/dist/assets/vennDiagram-LZ73GAT5-BdO5RgRZ.js +34 -0
- package/dist/assets/xychartDiagram-JWTSCODW-CpDVe-8v.js +7 -0
- package/dist/index.html +23 -0
- package/export-docx.js +1583 -0
- package/init.js +353 -0
- package/manifest-cli.mjs +207 -0
- package/package.json +83 -0
- package/schemas/artifact.schema.json +1295 -0
- package/schemas/artifact.uischema.json +65 -0
- package/schemas/evaluation.schema.json +284 -0
- package/schemas/rubric.schema.json +383 -0
- package/serve.js +238 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
# Criterion Writing Guide
|
|
2
|
+
|
|
3
|
+
This guide covers how to write well-calibrated EAROS criteria with all 13 v2 required fields. Use it during Step 4 (draft) and whenever a criterion feels ambiguous or hard to score.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## The 13 Required Fields
|
|
8
|
+
|
|
9
|
+
Every criterion in a v2 rubric must have all of these fields. An incomplete criterion cannot be reliably calibrated.
|
|
10
|
+
|
|
11
|
+
```yaml
|
|
12
|
+
- id: [ARTIFACT-TOPIC-NN]
|
|
13
|
+
question: "[The scoring question]"
|
|
14
|
+
description: "[Why this matters — what goes wrong when it's absent]"
|
|
15
|
+
metric_type: ordinal
|
|
16
|
+
scale: [0, 1, 2, 3, 4, "N/A"]
|
|
17
|
+
gate: false # or gate: { enabled: true, severity: major, failure_effect: "..." }
|
|
18
|
+
required_evidence:
|
|
19
|
+
- "[observable item 1]"
|
|
20
|
+
- "[observable item 2]"
|
|
21
|
+
scoring_guide:
|
|
22
|
+
"0": "[Absent — what 0 looks like]"
|
|
23
|
+
"1": "[Weak — what 1 looks like]"
|
|
24
|
+
"2": "[Partial — what 2 looks like]"
|
|
25
|
+
"3": "[Good — what 3 looks like]"
|
|
26
|
+
"4": "[Strong — what 4 looks like]"
|
|
27
|
+
anti_patterns:
|
|
28
|
+
- "[common wrong pattern]"
|
|
29
|
+
examples:
|
|
30
|
+
good:
|
|
31
|
+
- "[Direct quote or close paraphrase of a strong version]"
|
|
32
|
+
bad:
|
|
33
|
+
- "[Direct quote or close paraphrase of a weak version]"
|
|
34
|
+
decision_tree: >
|
|
35
|
+
IF [observable condition] THEN score [N].
|
|
36
|
+
IF [observable condition] THEN score [N].
|
|
37
|
+
remediation_hints:
|
|
38
|
+
- "[Specific action to improve the score]"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Field-by-Field Guide
|
|
44
|
+
|
|
45
|
+
### `id`
|
|
46
|
+
- Pattern: `[ARTIFACT-ABBREV]-[TOPIC]-[NN]` — e.g., `PM-ROOT-01`, `DC-SCHEMA-02`
|
|
47
|
+
- Must be unique across **all** files in `core/`, `profiles/`, and `overlays/`
|
|
48
|
+
- Kebab-case topics: `ROOT`, `OWNER`, `VIEW`, `TRACE`, `SCHEMA`, `SLO`, `DEPR`
|
|
49
|
+
|
|
50
|
+
### `question`
|
|
51
|
+
- Must be a yes/no or does-the-artifact question, not an open-ended one
|
|
52
|
+
- Bad: "How well does the artifact describe the solution?"
|
|
53
|
+
- Good: "Does the artifact include a numbered data flow walkthrough covering all integration points?"
|
|
54
|
+
- The question should be answerable from observable evidence in the artifact
|
|
55
|
+
|
|
56
|
+
### `description`
|
|
57
|
+
- Explain **why this criterion matters** — what goes wrong when it's absent
|
|
58
|
+
- Two sentences minimum: (1) what it checks, (2) what the failure consequence is
|
|
59
|
+
- Avoid restating the question. Add depth: what's the downstream impact on reviewers, delivery teams, or governance?
|
|
60
|
+
|
|
61
|
+
### `metric_type`
|
|
62
|
+
- Always `ordinal` for EAROS rubric criteria
|
|
63
|
+
|
|
64
|
+
### `scale`
|
|
65
|
+
- Always `[0, 1, 2, 3, 4, "N/A"]`
|
|
66
|
+
|
|
67
|
+
### `gate`
|
|
68
|
+
- See the [Gate Guidance](#gate-guidance) section below
|
|
69
|
+
- Either `gate: false` or `gate: { enabled: true, severity: [type], failure_effect: "[text]" }`
|
|
70
|
+
- Valid severities: `none`, `advisory`, `major`, `critical`
|
|
71
|
+
|
|
72
|
+
### `required_evidence`
|
|
73
|
+
- List observable, concrete items — not abstract properties
|
|
74
|
+
- Bad: `- quality evidence` or `- relevant content`
|
|
75
|
+
- Good: `- named data retention policy with owner and review date`
|
|
76
|
+
- Good: `- deployment diagram showing network zone boundaries`
|
|
77
|
+
- Good: `- exception log with approver and expiry for each non-compliant item`
|
|
78
|
+
|
|
79
|
+
### `scoring_guide`
|
|
80
|
+
The most critical field for calibration. All five levels must be distinct and observable.
|
|
81
|
+
|
|
82
|
+
**The cardinal rule:** each level descriptor must be distinguishable from adjacent levels by observable features — not by degree words like "somewhat" or "mostly".
|
|
83
|
+
|
|
84
|
+
Level patterns that work:
|
|
85
|
+
- Level 0: "Absent or directly contradicted"
|
|
86
|
+
- Level 1: "Present but [specific limitation]"
|
|
87
|
+
- Level 2: "Present with [specific limitation] — [what's still missing]"
|
|
88
|
+
- Level 3: "Addressed for most [X], with [specific remaining gap]"
|
|
89
|
+
- Level 4: "Complete, consistent, and [specific discriminating feature that 3 lacks]"
|
|
90
|
+
|
|
91
|
+
**Level 2–3 is where calibration breaks down most often.** Make these descriptions as specific as possible. The difference between 2 and 3 should be observable, not a matter of opinion.
|
|
92
|
+
|
|
93
|
+
### `anti_patterns`
|
|
94
|
+
- List 2–4 common failures you've actually seen for this criterion
|
|
95
|
+
- These are the most valuable field for AI disambiguation — they provide negative examples that help agents avoid false positives
|
|
96
|
+
- Be specific: not "incomplete diagram" but "deployment diagram that shows application tier only, with no network zone boundaries or external dependencies"
|
|
97
|
+
|
|
98
|
+
### `examples`
|
|
99
|
+
- Both `good` and `bad` are required
|
|
100
|
+
- Use direct quotes or close paraphrases from real artifacts (anonymised if needed)
|
|
101
|
+
- Good examples should demonstrate level 3–4 evidence
|
|
102
|
+
- Bad examples should demonstrate level 0–1 evidence
|
|
103
|
+
- Do not use placeholder text like "[Strong evidence example]"
|
|
104
|
+
|
|
105
|
+
### `decision_tree`
|
|
106
|
+
A series of IF/THEN conditions that operationalise the scoring_guide for AI agents.
|
|
107
|
+
|
|
108
|
+
Structure:
|
|
109
|
+
```
|
|
110
|
+
IF [observable condition A] THEN score 0.
|
|
111
|
+
IF [observable condition B] THEN score 1.
|
|
112
|
+
IF [observable condition C] AND [observable condition D] THEN score 2.
|
|
113
|
+
IF [observable condition E] THEN score 3.
|
|
114
|
+
IF [observable condition E] AND [observable condition F] THEN score 4.
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Rules:
|
|
118
|
+
- Conditions must be **observable from the artifact** — not judgment-dependent
|
|
119
|
+
- Cover all five score levels
|
|
120
|
+
- Use count-based conditions where possible: "IF less than 2 [X]", "IF 3+ [X]"
|
|
121
|
+
- Avoid "adequate", "sufficient", "thorough" — replace with observable counts or presence/absence
|
|
122
|
+
|
|
123
|
+
### `remediation_hints`
|
|
124
|
+
- 2–4 specific actions the author can take to improve the score
|
|
125
|
+
- Each hint should be actionable within a week, not aspirational
|
|
126
|
+
- Bad: "Improve the quality of the traceability"
|
|
127
|
+
- Good: "Add a traceability matrix linking each business driver to the specific design section that addresses it"
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Gate Guidance {#gate-guidance}
|
|
132
|
+
|
|
133
|
+
Gates prevent weak scores on important criteria from being hidden by weighted averages. The key design principle: **gate deliberately, not reflexively**.
|
|
134
|
+
|
|
135
|
+
### Gate Types and Effects
|
|
136
|
+
|
|
137
|
+
| Severity | Effect | When to use |
|
|
138
|
+
|----------|--------|-------------|
|
|
139
|
+
| `none` | Contributes to score only | No governance consequence for weakness |
|
|
140
|
+
| `advisory` | Weakness triggers a recommendation | Important but not blocking |
|
|
141
|
+
| `major` | Caps status at `conditional_pass` | Important enough that weakness prevents full approval |
|
|
142
|
+
| `critical` | Forces `reject` status regardless of average | Compliance-level failures; no-go conditions |
|
|
143
|
+
|
|
144
|
+
### Gate Quotas per Profile
|
|
145
|
+
|
|
146
|
+
| Gate type | Target count | Absolute max |
|
|
147
|
+
|-----------|-------------|--------------|
|
|
148
|
+
| `critical` | 0–1 | 1 |
|
|
149
|
+
| `major` | 1–2 | 3 |
|
|
150
|
+
| `advisory` | 0–3 | — |
|
|
151
|
+
|
|
152
|
+
If you're assigning more than 3 major gates, you're over-gating. Ask: "Would I really reject an otherwise excellent artifact because this one criterion is weak?"
|
|
153
|
+
|
|
154
|
+
### Gate Failure Effects — Wording Patterns
|
|
155
|
+
|
|
156
|
+
```yaml
|
|
157
|
+
# Critical gate
|
|
158
|
+
gate:
|
|
159
|
+
enabled: true
|
|
160
|
+
severity: critical
|
|
161
|
+
failure_effect: reject when [the specific condition that cannot be ignored]
|
|
162
|
+
|
|
163
|
+
# Major gate
|
|
164
|
+
gate:
|
|
165
|
+
enabled: true
|
|
166
|
+
severity: major
|
|
167
|
+
failure_effect: Cannot pass above conditional_pass if score < 2
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Gate Decision Heuristics
|
|
171
|
+
|
|
172
|
+
**Use critical when:**
|
|
173
|
+
- The artifact is completely un-reviewable without this (scope/boundary is an example)
|
|
174
|
+
- A mandatory regulatory or compliance control is at stake
|
|
175
|
+
- The failure mode is "we're approving something we literally cannot evaluate"
|
|
176
|
+
|
|
177
|
+
**Use major when:**
|
|
178
|
+
- The concern is important enough to cap approval even if the rest is strong
|
|
179
|
+
- Weakness here creates concrete delivery or governance risk
|
|
180
|
+
- The concern is the core quality signal for this artifact type
|
|
181
|
+
|
|
182
|
+
**Use advisory or none when:**
|
|
183
|
+
- Weakness is annoying but survivable
|
|
184
|
+
- The criterion is secondary or supplementary to the main quality signal
|
|
185
|
+
- You're adding it because it's sometimes relevant, not because it's always critical
|
|
186
|
+
|
|
187
|
+
### Common Over-Gating Patterns to Avoid
|
|
188
|
+
|
|
189
|
+
- Gating every criterion in a profile (dilutes the gate signal)
|
|
190
|
+
- Critical-gating criteria that are actually style preferences
|
|
191
|
+
- Gating criteria that duplicate core meta-rubric gates
|
|
192
|
+
- Gating criteria where "absent" is not actually a blocking failure
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Worked Example: Complete v2 Criterion
|
|
197
|
+
|
|
198
|
+
This is a full criterion from a hypothetical post-mortem profile, demonstrating all 13 fields at the expected quality level.
|
|
199
|
+
|
|
200
|
+
```yaml
|
|
201
|
+
- id: PM-ROOT-01
|
|
202
|
+
question: Does the post-mortem identify the root cause(s) of the incident, distinguished from contributing factors and symptoms?
|
|
203
|
+
description: >
|
|
204
|
+
A post-mortem that describes only symptoms or contributing factors without identifying
|
|
205
|
+
the root cause provides no basis for systemic remediation. Teams will implement surface
|
|
206
|
+
fixes that leave the underlying cause in place, and the incident will recur. Root cause
|
|
207
|
+
analysis must distinguish between what triggered the incident (symptom), what enabled
|
|
208
|
+
it to occur (contributing factors), and what must change to prevent recurrence (root cause).
|
|
209
|
+
Without this distinction, remediation actions are likely to be ineffective.
|
|
210
|
+
metric_type: ordinal
|
|
211
|
+
scale: [0, 1, 2, 3, 4, "N/A"]
|
|
212
|
+
gate:
|
|
213
|
+
enabled: true
|
|
214
|
+
severity: major
|
|
215
|
+
failure_effect: Cannot pass above conditional_pass — post-mortems without root cause analysis cannot drive systemic improvement
|
|
216
|
+
required_evidence:
|
|
217
|
+
- root cause statement (explicitly labelled, not implied)
|
|
218
|
+
- distinction between root cause, contributing factors, and trigger/symptoms
|
|
219
|
+
- causal chain or 5-whys analysis
|
|
220
|
+
scoring_guide:
|
|
221
|
+
"0": No root cause analysis — incident described as a sequence of events only
|
|
222
|
+
"1": Root cause mentioned but not distinguished from symptoms or contributing factors
|
|
223
|
+
"2": Root cause identified but causal chain is missing or assumed — why the root cause exists is not explained
|
|
224
|
+
"3": Root cause identified with causal chain — contributing factors distinguished — remediation plausibly addresses root cause
|
|
225
|
+
"4": Root cause identified with validated causal chain, distinguished from all contributing factors and symptoms, and remediation actions directly address root cause with acceptance criteria
|
|
226
|
+
anti_patterns:
|
|
227
|
+
- "Root cause: human error — no further analysis" (symptom, not root cause)
|
|
228
|
+
- Listing 8 root causes (usually means contributing factors were not separated)
|
|
229
|
+
- Root cause section absent; narrative describes "what happened" only
|
|
230
|
+
- Remediation actions that address symptoms rather than the root cause
|
|
231
|
+
examples:
|
|
232
|
+
good:
|
|
233
|
+
- >
|
|
234
|
+
"Root cause: Database connection pool was not configurable at runtime; configuration
|
|
235
|
+
was compiled into the service image. Contributing factors: (1) No alerting on
|
|
236
|
+
connection exhaustion — only on query failure. (2) Load test did not simulate
|
|
237
|
+
connection-heavy bursts. Trigger: Black Friday traffic spike. [Causal chain, 5 sections,
|
|
238
|
+
remediation: add runtime configurability with separate alerting threshold.]"
|
|
239
|
+
bad:
|
|
240
|
+
- >
|
|
241
|
+
"Root cause: The database ran out of connections during the sale event.
|
|
242
|
+
[This is a symptom. No causal chain. No contributing factor separation.
|
|
243
|
+
Remediation: increase connection pool size — addresses the trigger, not the cause.]"
|
|
244
|
+
decision_tree: >
|
|
245
|
+
IF no root cause section or root cause not labelled THEN score 0.
|
|
246
|
+
IF root cause labelled but indistinguishable from symptom or contributing factor THEN score 1.
|
|
247
|
+
IF root cause identified but no causal chain explaining why it exists THEN score 2.
|
|
248
|
+
IF root cause with causal chain AND contributing factors distinguished THEN score 3.
|
|
249
|
+
IF root cause validated, causal chain complete, all factors distinguished, AND remediation directly addresses root cause with acceptance criteria THEN score 4.
|
|
250
|
+
remediation_hints:
|
|
251
|
+
- Apply 5-whys or fishbone analysis to find the systemic cause behind the immediate trigger
|
|
252
|
+
- Explicitly label and separate: trigger (what set it off), contributing factors (what enabled it), root cause (what must change)
|
|
253
|
+
- Verify that each remediation action addresses the root cause, not just the trigger
|
|
254
|
+
- Add acceptance criteria to remediation actions so you can verify the root cause has been addressed
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Common Criterion Writing Mistakes
|
|
260
|
+
|
|
261
|
+
| Mistake | Problem | Fix |
|
|
262
|
+
|---------|---------|-----|
|
|
263
|
+
| Scoring guide uses "somewhat", "mostly", "adequately" | Not observable; different reviewers interpret differently | Replace with observable features: counts, presence/absence, named sections |
|
|
264
|
+
| Decision tree mirrors scoring guide word-for-word | Provides no additional disambiguation | Add IF/THEN logic with countable conditions the scoring guide doesn't have |
|
|
265
|
+
| Required evidence is abstract ("relevant content") | Evaluators can't know what to look for | List specific observable items: "named owner", "diagram with X", "table with Y columns" |
|
|
266
|
+
| Examples are placeholder text | Evaluator has no real reference | Use real quotes (anonymised if needed) — even invented but realistic examples are better than placeholders |
|
|
267
|
+
| anti_patterns are too generic ("missing information") | Doesn't help AI agents avoid false positives | Be specific about what the wrong version looks like |
|
|
268
|
+
| All criteria have critical gates | Dilutes gate signal; too many false rejects | Reserve critical for compliance-level no-gos; use major for quality caps |
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# Dependency Rules
|
|
2
|
+
|
|
3
|
+
This file documents what depends on what in the EAROS three-layer model, how to check for conflicts before creating a new rubric, and the profile-vs-overlay decision framework.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## The Three-Layer Dependency Model
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
┌──────────────────────────────────────────────────┐
|
|
11
|
+
│ OVERLAYS (cross-cutting) │
|
|
12
|
+
│ security · data-governance · regulatory │
|
|
13
|
+
│ Applied by context, not artifact type │
|
|
14
|
+
├──────────────────────────────────────────────────┤
|
|
15
|
+
│ PROFILES (artifact-specific) │
|
|
16
|
+
│ solution-architecture · reference-architecture │
|
|
17
|
+
│ adr · capability-map · roadmap │
|
|
18
|
+
│ Each inherits: [EAROS-CORE-002] │
|
|
19
|
+
├──────────────────────────────────────────────────┤
|
|
20
|
+
│ CORE (universal foundation) │
|
|
21
|
+
│ core-meta-rubric.yaml (EAROS-CORE-002) │
|
|
22
|
+
│ 9 dimensions · 10 criteria · gate model │
|
|
23
|
+
└──────────────────────────────────────────────────┘
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Dependency direction:**
|
|
27
|
+
- Profiles depend on Core: if Core changes, profiles may need updating
|
|
28
|
+
- Overlays depend on nothing: they append to whatever base rubric is in use
|
|
29
|
+
- Core has no dependencies
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Checks Before Creating Each Type
|
|
34
|
+
|
|
35
|
+
### Before creating a Profile
|
|
36
|
+
|
|
37
|
+
1. **Does the core exist?**
|
|
38
|
+
- Read `core/core-meta-rubric.yaml`
|
|
39
|
+
- If absent: ask "Do you want to create a core rubric first, or proceed with a standalone profile (without inheriting from core)?"
|
|
40
|
+
|
|
41
|
+
2. **Does a profile already exist for this artifact type?**
|
|
42
|
+
- List `profiles/` directory
|
|
43
|
+
- If a profile exists: "A profile for [artifact-type] already exists (`profiles/[name].yaml`). Do you want to revise it (bump version) or create a supplementary profile for a specific sub-type?"
|
|
44
|
+
|
|
45
|
+
3. **What does Core already cover?**
|
|
46
|
+
- Core's 10 criteria cover: stakeholder fit, concern-view mapping, scope & boundaries, viewpoint appropriateness, traceability, internal consistency, risks/assumptions/tradeoffs, compliance, actionability, stewardship
|
|
47
|
+
- **Do not add profile criteria that duplicate these.** Every criterion must add something that Core cannot measure.
|
|
48
|
+
|
|
49
|
+
4. **Is the artifact type genuinely distinct from existing profiles?**
|
|
50
|
+
- "Platform handover doc" and "solution architecture" might overlap — verify they need different criteria
|
|
51
|
+
- If 70%+ of the criteria you'd write already exist in an existing profile, consider whether a revision is better than a new profile
|
|
52
|
+
|
|
53
|
+
### Before creating an Overlay
|
|
54
|
+
|
|
55
|
+
1. **Does a similar overlay already exist?**
|
|
56
|
+
- List `overlays/` directory
|
|
57
|
+
- Check scope: could the new concern be added to an existing overlay as additional criteria?
|
|
58
|
+
- If yes: "The [existing-overlay] already covers [X]. Should we add your concern there, or is it distinct enough to warrant a separate overlay?"
|
|
59
|
+
|
|
60
|
+
2. **Which profiles will this overlay apply to?**
|
|
61
|
+
- List existing profiles
|
|
62
|
+
- For each profile, confirm: "Does this overlay make sense for a [profile-type]?" — e.g., a "cost transparency" overlay applies to reference architectures and solution architectures but probably not to ADRs
|
|
63
|
+
- Document the intended applicability scope in the overlay's purpose field
|
|
64
|
+
|
|
65
|
+
3. **Is the concern truly cross-cutting, or artifact-specific?**
|
|
66
|
+
- If the concern only applies to one artifact type, it should be a profile addition, not an overlay
|
|
67
|
+
- Test: "Would you apply this concern when reviewing a capability map? A roadmap? An ADR?" — if the answer is "no" for most types, it's a profile concern
|
|
68
|
+
|
|
69
|
+
4. **Does the overlay have at least one critical or major gate?**
|
|
70
|
+
- Overlays exist because the concern matters enough to inject into any rubric
|
|
71
|
+
- An overlay with no gates is likely just a checklist — consider whether it's needed at all
|
|
72
|
+
|
|
73
|
+
### Before creating a Core Rubric
|
|
74
|
+
|
|
75
|
+
1. **Is modifying EAROS-CORE-002 truly necessary?**
|
|
76
|
+
- Core changes affect every profile and every assessment. This is a governance decision.
|
|
77
|
+
- Ask: "What specific capability does the existing core lack for your use case?"
|
|
78
|
+
- If the answer is artifact-specific, it's a profile, not a core change
|
|
79
|
+
|
|
80
|
+
2. **Are you replacing or creating a domain-specific core?**
|
|
81
|
+
- Replacing `EAROS-CORE-002`: requires version bump and governance approval
|
|
82
|
+
- Domain-specific core (e.g., `EAROS-CORE-DATAPLATFORM-001`): a parallel core for a specific domain; profiles in that domain would inherit it instead of `EAROS-CORE-002`
|
|
83
|
+
|
|
84
|
+
3. **ID assignment for a new core:**
|
|
85
|
+
- Pattern: `EAROS-CORE-[DOMAIN]-[NNN]` for domain-specific cores
|
|
86
|
+
- Or bump `EAROS-CORE-002` → `EAROS-CORE-003` for a full replacement
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Profile vs. Overlay Decision Framework {#profile-vs-overlay}
|
|
91
|
+
|
|
92
|
+
Use this when the user is unsure which to create.
|
|
93
|
+
|
|
94
|
+
### Ask these three questions:
|
|
95
|
+
|
|
96
|
+
**1. Does it apply to only one artifact type, or many?**
|
|
97
|
+
- Only one → profile addition
|
|
98
|
+
- Many → overlay candidate
|
|
99
|
+
|
|
100
|
+
**2. Is it driven by the artifact's purpose, or by external context?**
|
|
101
|
+
- Purpose-driven ("capability maps need heat-map coverage") → profile
|
|
102
|
+
- Context-driven ("this artifact involves PII data") → overlay
|
|
103
|
+
|
|
104
|
+
**3. Would a reviewer need it for every artifact of type X, or only sometimes?**
|
|
105
|
+
- Always for type X → profile
|
|
106
|
+
- Sometimes (when the context warrants it) → overlay
|
|
107
|
+
|
|
108
|
+
### Decision Matrix
|
|
109
|
+
|
|
110
|
+
| Criterion applies to... | Driven by... | When needed... | Use |
|
|
111
|
+
|------------------------|-------------|----------------|-----|
|
|
112
|
+
| One artifact type | Artifact's purpose | Always | Profile |
|
|
113
|
+
| Multiple artifact types | External context | Sometimes | Overlay |
|
|
114
|
+
| One artifact type | External context | Sometimes | Profile addition OR overlay |
|
|
115
|
+
| Multiple types | Artifact purpose | Always | Consider merging into Core |
|
|
116
|
+
|
|
117
|
+
### Edge Cases
|
|
118
|
+
|
|
119
|
+
**"Security concerns for solution architectures only":**
|
|
120
|
+
- If your security criteria are specific to how solution architectures describe security (e.g., threat model views, security zone diagrams) → add to the solution-architecture profile
|
|
121
|
+
- If the concern applies regardless of artifact type (e.g., "any artifact describing authentication must show the control mapping") → overlay
|
|
122
|
+
|
|
123
|
+
**"Data governance for capability maps specifically":**
|
|
124
|
+
- If it's about how capability maps represent data ownership → profile addition
|
|
125
|
+
- If it's triggered by "this capability map describes a data platform (context)" → overlay
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## ID Uniqueness Rules
|
|
130
|
+
|
|
131
|
+
All criterion IDs must be unique across the entire EAROS repository — not just within the file.
|
|
132
|
+
|
|
133
|
+
### ID Namespace Check
|
|
134
|
+
|
|
135
|
+
Before assigning any criterion ID, scan:
|
|
136
|
+
1. `core/core-meta-rubric.yaml` — existing IDs: `STK-01`, `STK-02`, `SCP-01`, `CVP-01`, `TRC-01`, `CON-01`, `RAT-01`, `CMP-01`, `ACT-01`, `MNT-01`
|
|
137
|
+
2. All files in `profiles/` — check criterion IDs in each
|
|
138
|
+
3. All files in `overlays/` — check criterion IDs in each
|
|
139
|
+
|
|
140
|
+
### ID Patterns by Type
|
|
141
|
+
|
|
142
|
+
| File type | Rubric ID pattern | Criterion ID pattern |
|
|
143
|
+
|-----------|------------------|---------------------|
|
|
144
|
+
| Core rubric | `EAROS-CORE-[DOMAIN?]-[NNN]` | `[ABBREV]-[NN]` e.g. `STK-01` |
|
|
145
|
+
| Profile | `EAROS-[ARTIFACT]-[NNN]` | `[ARTIFACT-ABBREV]-[TOPIC]-[NN]` |
|
|
146
|
+
| Overlay | `EAROS-OVR-[CONCERN]-[NNN]` | `[OVR-ABBREV]-[TOPIC]-[NN]` |
|
|
147
|
+
|
|
148
|
+
### Examples of Good vs. Conflicting IDs
|
|
149
|
+
|
|
150
|
+
| Proposed ID | Problem | Fix |
|
|
151
|
+
|-------------|---------|-----|
|
|
152
|
+
| `STK-01` | Conflicts with core | Use `PM-STK-01` or `PM-OWNER-01` |
|
|
153
|
+
| `RA-VIEW-01` | Conflicts with reference-architecture profile | Use `SA-VIEW-01` for solution architecture |
|
|
154
|
+
| `REG-ID-01` | Conflicts with regulatory overlay | Use `AI-TRANS-01` for AI transparency overlay |
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## How Core Changes Ripple to Profiles
|
|
159
|
+
|
|
160
|
+
If `EAROS-CORE-002` changes (new criteria, revised gates, changed scoring thresholds):
|
|
161
|
+
|
|
162
|
+
1. **All profiles that `inherits: [EAROS-CORE-002]` are affected** — they will now include the new/changed core criteria automatically
|
|
163
|
+
2. **Overlays are unaffected** — they append to the base rubric at runtime
|
|
164
|
+
3. **Calibration packs are potentially invalidated** — if scoring thresholds or gate models change, previous calibration results may no longer apply
|
|
165
|
+
4. **Worked examples need review** — existing evaluation records in `examples/` may score differently under the new core
|
|
166
|
+
|
|
167
|
+
This is why core changes require a governance decision. A profile addition is always safer than a core change.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Versioning Rules
|
|
172
|
+
|
|
173
|
+
### When to bump versions
|
|
174
|
+
|
|
175
|
+
| Change | Version bump |
|
|
176
|
+
|--------|-------------|
|
|
177
|
+
| New criterion added | MINOR (e.g. 1.0.0 → 1.1.0) |
|
|
178
|
+
| Existing criterion scoring guide revised | MINOR |
|
|
179
|
+
| Gate severity changed | MAJOR (e.g. 1.1.0 → 2.0.0) |
|
|
180
|
+
| Status threshold changed | MAJOR |
|
|
181
|
+
| Criterion removed | MAJOR |
|
|
182
|
+
| Typo fix, documentation improvement | PATCH (e.g. 1.1.0 → 1.1.1) |
|
|
183
|
+
|
|
184
|
+
### Status transitions
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
draft → candidate → approved → deprecated
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
- `draft`: Not calibrated. Must not be used in live governance.
|
|
191
|
+
- `candidate`: Calibrated against at least 3 artifacts with 2+ reviewers. Safe for pilot use.
|
|
192
|
+
- `approved`: Fully validated and ratified by governance owner.
|
|
193
|
+
- `deprecated`: Superseded by a newer version. Existing evaluation records retain the version reference.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Rubric Interview Guide
|
|
2
|
+
|
|
3
|
+
This guide deepens the Step 3 interview in SKILL.md. Use it when initial answers are thin, when the user seems uncertain about what they're trying to create, or when you need richer material to generate good scoring guide descriptors.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Why the Interview Matters More Than the Template
|
|
8
|
+
|
|
9
|
+
A rubric written from a template but without understanding the artifact type produces criteria that:
|
|
10
|
+
- Are too abstract to calibrate reliably (different reviewers interpret them differently)
|
|
11
|
+
- Duplicate what the core already measures (wasted criteria budget)
|
|
12
|
+
- Miss the actual failure modes that make this artifact type problematic
|
|
13
|
+
|
|
14
|
+
The interview is where you learn the specific quality signals for this artifact type. You cannot invent them — they come from people who have reviewed many examples.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Deepening Question Bank
|
|
19
|
+
|
|
20
|
+
Use these follow-up questions when initial answers are surface-level. You don't need all of them — pick the ones relevant to what's missing.
|
|
21
|
+
|
|
22
|
+
### On Artifact Identity
|
|
23
|
+
|
|
24
|
+
**If the user can't describe the decision it supports:**
|
|
25
|
+
- "Imagine someone reads this artifact and then has to do something. What do they do — and for whom?"
|
|
26
|
+
- "What would be different in the world if this artifact didn't exist or was absent?"
|
|
27
|
+
- "Who would be upset if this artifact was missing from a review pack? What would they be unable to decide?"
|
|
28
|
+
|
|
29
|
+
**If the artifact type seems too broad:**
|
|
30
|
+
- "Is there a sub-type that behaves very differently? For example, a 'design document' could be a solution architecture, a data model, or an API contract — each needs different criteria."
|
|
31
|
+
- "Would you review a 10-page version and a 50-page version the same way? If not, they might be different types."
|
|
32
|
+
|
|
33
|
+
**If the frequency or stakes are unclear:**
|
|
34
|
+
- "Does this artifact go through a formal governance gate, or is it reviewed informally?"
|
|
35
|
+
- "What happens if a bad version gets approved — what's the worst-case consequence?"
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
### On Quality Markers
|
|
40
|
+
|
|
41
|
+
**If the user can't describe what a good example looks like:**
|
|
42
|
+
- "Think of the best piece of work you've ever reviewed of this type. What stood out? What did it have that others didn't?"
|
|
43
|
+
- "If you were teaching someone to write this artifact type, what's the first thing you'd tell them?"
|
|
44
|
+
- "What question does a good version answer that a weak version leaves hanging?"
|
|
45
|
+
|
|
46
|
+
**If the user can only list obvious failures:**
|
|
47
|
+
- "Beyond 'it's incomplete' or 'it's unclear' — what specifically is always missing from a weak version of this artifact type?"
|
|
48
|
+
- "What does the author always get wrong on the first draft? Not whether they tried — but what does the output miss?"
|
|
49
|
+
- "Have you ever had an artifact rejected or sent back? What triggered that? What was the specific problem?"
|
|
50
|
+
|
|
51
|
+
**If the mid-range (level 2–3) is unclear:**
|
|
52
|
+
- "If an artifact addresses this thing partially — some of it there, some missing — what does 'partial' look like specifically?"
|
|
53
|
+
- "What's the minimum version that would still be useful to a reviewer, even if imperfect?"
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
### On Structure and Criteria
|
|
58
|
+
|
|
59
|
+
**If the user proposes too many criteria (> 12):**
|
|
60
|
+
- "If you had to cut this list in half, which 5-6 things are most important? What would you still be willing to fail an artifact on?"
|
|
61
|
+
- "Are any of these criteria really different aspects of the same underlying thing? If so, they might merge into one criterion with a richer scoring guide."
|
|
62
|
+
- "Which of these does the core meta-rubric already cover? Remember: stakeholders, scope, traceability, consistency, compliance, and actionability are already in every assessment."
|
|
63
|
+
|
|
64
|
+
**If the criteria feel abstract:**
|
|
65
|
+
- "For this criterion, what's the specific observable evidence you'd look for — a table, a diagram, a named section, a decision statement?"
|
|
66
|
+
- "If you were writing a checklist for a junior reviewer, what would the first item say?"
|
|
67
|
+
- "How would you know, in 30 seconds of skimming, whether an artifact passes this criterion?"
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
### On Gates and Stakes
|
|
72
|
+
|
|
73
|
+
**If the user wants everything to be a critical gate:**
|
|
74
|
+
- "If every criterion were a critical gate, any weakness anywhere would cause a reject. Is that what you intend?"
|
|
75
|
+
- "What's the minimum viable artifact of this type — the version you'd conditionally approve with named conditions? What must be present for that to be possible?"
|
|
76
|
+
- "Reserve critical gates for: (1) things that make the artifact completely un-reviewable, (2) mandatory compliance requirements. Everything else should be major or advisory."
|
|
77
|
+
|
|
78
|
+
**If the user can't identify any gates:**
|
|
79
|
+
- "Is there anything so important that its absence should immediately cap or block approval — regardless of how good the rest of the artifact is?"
|
|
80
|
+
- "What would you tell an Architecture Board member if they asked 'why did this pass?' — if there's something you'd be embarrassed to have absent, that's a gate candidate."
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Profile-Specific Interview Patterns
|
|
85
|
+
|
|
86
|
+
### For ADR-like artifacts (decision records)
|
|
87
|
+
- "What makes a good decision record vs. a good argument document? The difference matters for criteria."
|
|
88
|
+
- "Does the artifact need to be reversible — can the decision be revisited? If so, criteria for time-bounding decisions matter."
|
|
89
|
+
- "Who needs to be able to reconstruct the reasoning 2 years from now with no context? That drives the evidence requirements."
|
|
90
|
+
|
|
91
|
+
### For Capability Maps
|
|
92
|
+
- "What level of abstraction is expected — business capability, product capability, or technical capability?"
|
|
93
|
+
- "Is this a current state, target state, or transition map? Each has different criteria."
|
|
94
|
+
- "What makes a capability 'well-defined' in your context — is it a name, a description, a set of processes, a heat map?"
|
|
95
|
+
|
|
96
|
+
### For Roadmaps
|
|
97
|
+
- "What's the planning horizon — 3 months, 12 months, 3 years? This changes what 'specificity' means."
|
|
98
|
+
- "Who owns delivery of the roadmap items? Named owners or just teams?"
|
|
99
|
+
- "Is this a commitment roadmap (things we will do) or a strategy roadmap (things we aim to do)? They have different evidence requirements."
|
|
100
|
+
|
|
101
|
+
### For Platform/Operational Handover Docs
|
|
102
|
+
- "Who's the recipient — someone taking over operational ownership, a new team adopting the platform, or an integration partner?"
|
|
103
|
+
- "What must they be able to do after reading this that they couldn't do before?"
|
|
104
|
+
- "What's the runbook equivalent for this artifact type?"
|
|
105
|
+
|
|
106
|
+
### For Overlays (Cross-cutting concerns)
|
|
107
|
+
- "Does this overlay apply to all artifact types equally, or are some more important than others?"
|
|
108
|
+
- "For which artifact types is this concern most critical? (Those are your gate candidates.)"
|
|
109
|
+
- "What's the minimum evidence that would satisfy this concern — even for a simple, low-risk artifact?"
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## When to Stop the Interview
|
|
114
|
+
|
|
115
|
+
Stop when you can answer these five questions from the interview responses:
|
|
116
|
+
|
|
117
|
+
1. **Artifact identity**: What is this thing and what decision does it support?
|
|
118
|
+
2. **Quality levels**: What does a level 0, 2, and 4 artifact look like for the 3–5 key criteria?
|
|
119
|
+
3. **Common failures**: What are the 3 most reliable signs of a weak artifact of this type?
|
|
120
|
+
4. **Critical/major gates**: What would cause an outright reject vs. a conditional pass?
|
|
121
|
+
5. **Design method**: Which of the 5 methods (A–E) best fits the dimensional structure?
|
|
122
|
+
|
|
123
|
+
If you can answer all five, you have enough to generate good YAML. If you cannot, ask one more question before drafting.
|