convoke-agents 2.3.1 → 3.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 (89) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/INSTALLATION.md +109 -86
  3. package/README.md +236 -104
  4. package/UPDATE-GUIDE.md +63 -23
  5. package/_bmad/bme/_enhance/config.yaml +8 -0
  6. package/_bmad/bme/_enhance/extensions/bmm-pm.yaml +9 -0
  7. package/_bmad/bme/_enhance/guides/.gitkeep +0 -0
  8. package/_bmad/bme/_enhance/guides/ENHANCE-GUIDE.md +252 -0
  9. package/_bmad/bme/_enhance/workflows/initiatives-backlog/SKILL.md +6 -0
  10. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/.gitkeep +0 -0
  11. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-01-init.md +106 -0
  12. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-02-gather.md +136 -0
  13. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-03-score.md +146 -0
  14. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-04-prioritize.md +181 -0
  15. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-r/.gitkeep +0 -0
  16. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-r/step-r-01-load.md +120 -0
  17. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-r/step-r-02-rescore.md +141 -0
  18. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-r/step-r-03-update.md +154 -0
  19. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/.gitkeep +0 -0
  20. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-01-ingest.md +86 -0
  21. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-02-extract.md +169 -0
  22. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-03-score.md +147 -0
  23. package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-04-update.md +155 -0
  24. package/_bmad/bme/_enhance/workflows/initiatives-backlog/templates/backlog-format-spec.md +219 -0
  25. package/_bmad/bme/_enhance/workflows/initiatives-backlog/templates/rice-scoring-guide.md +154 -0
  26. package/_bmad/bme/_enhance/workflows/initiatives-backlog/workflow.md +88 -0
  27. package/_bmad/bme/_gyre/README.md +100 -0
  28. package/_bmad/bme/_gyre/agents/.gitkeep +0 -0
  29. package/_bmad/bme/_gyre/agents/model-curator.md +128 -0
  30. package/_bmad/bme/_gyre/agents/readiness-analyst.md +127 -0
  31. package/_bmad/bme/_gyre/agents/review-coach.md +130 -0
  32. package/_bmad/bme/_gyre/agents/stack-detective.md +125 -0
  33. package/_bmad/bme/_gyre/compass-routing-reference.md +168 -0
  34. package/_bmad/bme/_gyre/config.yaml +22 -0
  35. package/_bmad/bme/_gyre/contracts/.gitkeep +0 -0
  36. package/_bmad/bme/_gyre/contracts/gc1-stack-profile.md +152 -0
  37. package/_bmad/bme/_gyre/contracts/gc2-capabilities-manifest.md +189 -0
  38. package/_bmad/bme/_gyre/contracts/gc3-findings-report.md +197 -0
  39. package/_bmad/bme/_gyre/contracts/gc4-feedback-loop.md +209 -0
  40. package/_bmad/bme/_gyre/guides/ATLAS-USER-GUIDE.md +177 -0
  41. package/_bmad/bme/_gyre/guides/COACH-USER-GUIDE.md +172 -0
  42. package/_bmad/bme/_gyre/guides/LENS-USER-GUIDE.md +181 -0
  43. package/_bmad/bme/_gyre/guides/SCOUT-USER-GUIDE.md +158 -0
  44. package/_bmad/bme/_gyre/workflows/.gitkeep +0 -0
  45. package/_bmad/bme/_gyre/workflows/accuracy-validation/steps/step-01-select-repos.md +55 -0
  46. package/_bmad/bme/_gyre/workflows/accuracy-validation/steps/step-02-run-validation.md +78 -0
  47. package/_bmad/bme/_gyre/workflows/accuracy-validation/steps/step-03-score-results.md +143 -0
  48. package/_bmad/bme/_gyre/workflows/accuracy-validation/workflow.md +41 -0
  49. package/_bmad/bme/_gyre/workflows/delta-report/steps/step-01-load-history.md +63 -0
  50. package/_bmad/bme/_gyre/workflows/delta-report/steps/step-02-compute-delta.md +72 -0
  51. package/_bmad/bme/_gyre/workflows/delta-report/steps/step-03-present-delta.md +143 -0
  52. package/_bmad/bme/_gyre/workflows/delta-report/workflow.md +34 -0
  53. package/_bmad/bme/_gyre/workflows/full-analysis/steps/step-01-initialize.md +68 -0
  54. package/_bmad/bme/_gyre/workflows/full-analysis/steps/step-02-detect-stack.md +49 -0
  55. package/_bmad/bme/_gyre/workflows/full-analysis/steps/step-03-generate-model.md +52 -0
  56. package/_bmad/bme/_gyre/workflows/full-analysis/steps/step-04-analyze-gaps.md +42 -0
  57. package/_bmad/bme/_gyre/workflows/full-analysis/steps/step-05-review-findings.md +128 -0
  58. package/_bmad/bme/_gyre/workflows/full-analysis/workflow.md +39 -0
  59. package/_bmad/bme/_gyre/workflows/gap-analysis/steps/step-01-load-manifest.md +70 -0
  60. package/_bmad/bme/_gyre/workflows/gap-analysis/steps/step-02-observability-analysis.md +110 -0
  61. package/_bmad/bme/_gyre/workflows/gap-analysis/steps/step-03-deployment-analysis.md +87 -0
  62. package/_bmad/bme/_gyre/workflows/gap-analysis/steps/step-04-cross-domain-correlation.md +105 -0
  63. package/_bmad/bme/_gyre/workflows/gap-analysis/steps/step-05-present-findings.md +172 -0
  64. package/_bmad/bme/_gyre/workflows/gap-analysis/workflow.md +38 -0
  65. package/_bmad/bme/_gyre/workflows/model-generation/steps/step-01-load-profile.md +74 -0
  66. package/_bmad/bme/_gyre/workflows/model-generation/steps/step-02-generate-capabilities.md +116 -0
  67. package/_bmad/bme/_gyre/workflows/model-generation/steps/step-03-web-enrichment.md +89 -0
  68. package/_bmad/bme/_gyre/workflows/model-generation/steps/step-04-write-manifest.md +122 -0
  69. package/_bmad/bme/_gyre/workflows/model-generation/workflow.md +40 -0
  70. package/_bmad/bme/_gyre/workflows/model-review/steps/step-01-load-context.md +86 -0
  71. package/_bmad/bme/_gyre/workflows/model-review/steps/step-02-walkthrough.md +116 -0
  72. package/_bmad/bme/_gyre/workflows/model-review/steps/step-03-apply-amendments.md +92 -0
  73. package/_bmad/bme/_gyre/workflows/model-review/steps/step-04-capture-feedback.md +107 -0
  74. package/_bmad/bme/_gyre/workflows/model-review/steps/step-05-summary.md +60 -0
  75. package/_bmad/bme/_gyre/workflows/model-review/workflow.md +41 -0
  76. package/_bmad/bme/_gyre/workflows/stack-detection/steps/step-01-scan-filesystem.md +176 -0
  77. package/_bmad/bme/_gyre/workflows/stack-detection/steps/step-02-classify-stack.md +111 -0
  78. package/_bmad/bme/_gyre/workflows/stack-detection/steps/step-03-guard-questions.md +117 -0
  79. package/_bmad/bme/_gyre/workflows/stack-detection/workflow.md +42 -0
  80. package/_bmad/bme/_vortex/config.yaml +1 -1
  81. package/package.json +7 -2
  82. package/scripts/archive.js +304 -0
  83. package/scripts/convoke-doctor.js +146 -132
  84. package/scripts/docs-audit.js +21 -5
  85. package/scripts/install-gyre-agents.js +140 -0
  86. package/scripts/install-vortex-agents.js +0 -0
  87. package/scripts/update/lib/agent-registry.js +70 -0
  88. package/scripts/update/lib/refresh-installation.js +290 -29
  89. package/scripts/update/lib/validator.js +281 -1
@@ -0,0 +1,197 @@
1
+ # GC3: Findings Report — Schema Definition
2
+
3
+ > **Contract:** GC3 | **Type:** Artifact | **Flow:** Lens → Coach
4
+ >
5
+ > This schema defines the structure for the Findings Report produced by the gap-analysis workflow. Contains absence-based findings with severity, confidence, evidence summaries, and cross-domain compounds.
6
+
7
+ ## Frontmatter Schema
8
+
9
+ ```yaml
10
+ ---
11
+ contract: GC3
12
+ type: artifact
13
+ source_agent: lens
14
+ source_workflow: gap-analysis
15
+ target_agents: [coach]
16
+ input_artifacts: [GC2]
17
+ created: YYYY-MM-DD
18
+ ---
19
+ ```
20
+
21
+ ### Frontmatter Field Reference
22
+
23
+ | Field | Required | Type | Description |
24
+ |-------|----------|------|-------------|
25
+ | `contract` | Yes | string | Always `GC3` |
26
+ | `type` | Yes | string | Always `artifact` |
27
+ | `source_agent` | Yes | string | Always `lens` |
28
+ | `source_workflow` | Yes | string | Always `gap-analysis` |
29
+ | `target_agents` | Yes | array | Agent IDs that consume this artifact: `[coach]` |
30
+ | `input_artifacts` | Yes | array | `[GC2]` — requires Capabilities Manifest |
31
+ | `created` | Yes | date | ISO date when artifact was created |
32
+
33
+ ---
34
+
35
+ ## Body Schema
36
+
37
+ The Findings Report is written to `.gyre/findings.yaml` with the following structure:
38
+
39
+ ```yaml
40
+ gyre_findings:
41
+ version: string # schema version, e.g., "1.0"
42
+ analyzed_at: ISO-8601 # analysis timestamp
43
+ mode: string # "crisis" | "anticipation"
44
+ stack_summary: string # from GC2
45
+ summary:
46
+ blockers: integer
47
+ recommended: integer
48
+ nice_to_have: integer
49
+ total: integer
50
+ novelty_ratio: string # e.g., "8 of 12 contextual"
51
+ findings:
52
+ - id: string # e.g., "OBS-001" or "DEP-003"
53
+ domain: string # "observability" | "deployment"
54
+ severity: string # "blocker" | "recommended" | "nice-to-have"
55
+ source: string # "static-analysis" | "contextual-model"
56
+ confidence: string # "high" | "medium" | "low"
57
+ capability_ref: string # references GC2 capability ID
58
+ description: string # what's missing and why it matters
59
+ evidence_summary: string # what was searched and what was/wasn't found
60
+ severity_rationale: string # why this severity level
61
+ compound_findings:
62
+ - id: string # e.g., "COMPOUND-001"
63
+ domain: "cross-domain"
64
+ severity: string # "blocker" | "recommended" | "nice-to-have"
65
+ source: "contextual-model"
66
+ confidence: string # lower of the two component confidences
67
+ capability_ref: string[] # references 2 GC2 capability IDs
68
+ description: string
69
+ evidence_summary: string
70
+ related_findings: string[] # references 2 finding IDs from different domains
71
+ combined_impact: string # reasoning chain: why these together are worse
72
+ sanity_check:
73
+ passed: boolean
74
+ warnings: string[] # e.g., ">80% capabilities flagged missing"
75
+ ```
76
+
77
+ ### Field Reference — Findings
78
+
79
+ | Field | Required | Type | Description |
80
+ |-------|----------|------|-------------|
81
+ | `id` | Yes | string | Unique finding ID: OBS-NNN or DEP-NNN |
82
+ | `domain` | Yes | string | "observability" or "deployment" |
83
+ | `severity` | Yes | string | "blocker", "recommended", or "nice-to-have" |
84
+ | `source` | Yes | string | "static-analysis" (file evidence) or "contextual-model" (inferred) |
85
+ | `confidence` | Yes | string | "high", "medium", or "low" |
86
+ | `capability_ref` | Yes | string | Must reference a valid GC2 capability ID |
87
+ | `description` | Yes | string | What's missing and why it matters |
88
+ | `evidence_summary` | Yes | string | What was searched and what was/wasn't found |
89
+ | `severity_rationale` | Yes | string | Why this severity level was assigned |
90
+
91
+ ### Field Reference — Compound Findings
92
+
93
+ | Field | Required | Type | Description |
94
+ |-------|----------|------|-------------|
95
+ | `id` | Yes | string | Unique compound ID: COMPOUND-NNN |
96
+ | `domain` | Yes | string | Always "cross-domain" |
97
+ | `severity` | Yes | string | May be higher than either component |
98
+ | `source` | Yes | string | Always "contextual-model" |
99
+ | `confidence` | Yes | string | Lower of the two component confidences |
100
+ | `capability_ref` | Yes | array | Exactly 2 GC2 capability IDs |
101
+ | `related_findings` | Yes | array | Exactly 2 finding IDs from different domains |
102
+ | `combined_impact` | Yes | string | Reasoning chain explaining amplification |
103
+
104
+ ---
105
+
106
+ ## Artifact Location
107
+
108
+ - **Path:** `.gyre/findings.yaml` (relative to project root, or service root in monorepo)
109
+ - **Overwritten:** Each analysis run produces a fresh findings report
110
+ - **Previous report:** Backed up to `.gyre/findings.previous.yaml` for delta-report comparison
111
+
112
+ ---
113
+
114
+ ## Downstream Consumption
115
+
116
+ | Consumer | Purpose |
117
+ |----------|---------|
118
+ | **Coach** (review-coach) | Presents findings for user review, captures feedback on accuracy, guides severity adjustments |
119
+
120
+ ---
121
+
122
+ ## Example
123
+
124
+ ```yaml
125
+ ---
126
+ contract: GC3
127
+ type: artifact
128
+ source_agent: lens
129
+ source_workflow: gap-analysis
130
+ target_agents: [coach]
131
+ input_artifacts: [GC2]
132
+ created: 2026-03-22
133
+ ---
134
+
135
+ gyre_findings:
136
+ version: "1.0"
137
+ analyzed_at: "2026-03-22T15:00:00Z"
138
+ mode: "crisis"
139
+ stack_summary: "Node.js Express web service on AWS EKS via GitHub Actions"
140
+ summary:
141
+ blockers: 2
142
+ recommended: 5
143
+ nice_to_have: 3
144
+ total: 10
145
+ novelty_ratio: "7 of 10 contextual"
146
+ findings:
147
+ - id: "OBS-001"
148
+ domain: "observability"
149
+ severity: "blocker"
150
+ source: "static-analysis"
151
+ confidence: "high"
152
+ capability_ref: "health-check-liveness"
153
+ description: "No Kubernetes liveness probe detected. EKS pods will not be auto-healed when unresponsive."
154
+ evidence_summary: "Glob for **/health*, **/liveness*: no files found. Grep for 'healthz', 'liveness': no matches in source files. No HEALTHCHECK in Dockerfile."
155
+ severity_rationale: "EKS requires liveness probes for auto-healing. Without them, stuck pods persist until manual intervention."
156
+ - id: "DEP-003"
157
+ domain: "deployment"
158
+ severity: "recommended"
159
+ source: "static-analysis"
160
+ confidence: "medium"
161
+ capability_ref: "rollback-strategy"
162
+ description: "No rollback mechanism detected in deployment configuration."
163
+ evidence_summary: "Grep for 'rollback', 'revision', 'undo' in k8s/ and .github/workflows/: no matches. K8s deployments use default rolling update without explicit rollback steps."
164
+ severity_rationale: "Rolling updates without explicit rollback increase recovery time from failed deployments."
165
+ compound_findings:
166
+ - id: "COMPOUND-001"
167
+ domain: "cross-domain"
168
+ severity: "blocker"
169
+ source: "contextual-model"
170
+ confidence: "high"
171
+ capability_ref: ["health-check-liveness", "rollback-strategy"]
172
+ description: "No health checks combined with no rollback creates unrecoverable deployment failure risk."
173
+ evidence_summary: "Combines OBS-001 (no liveness probe) with DEP-003 (no rollback). Failed deployments cannot be detected by K8s and cannot be reversed."
174
+ related_findings: ["OBS-001", "DEP-003"]
175
+ combined_impact: "Without liveness probes, K8s cannot detect that a new deployment is unhealthy. Without rollback, the failed deployment persists. Together: a bad deploy goes undetected and unrecoverable until manual SSH intervention."
176
+ sanity_check:
177
+ passed: true
178
+ warnings: []
179
+ ```
180
+
181
+ ---
182
+
183
+ ## Validation Rules
184
+
185
+ A valid GC3 artifact must:
186
+
187
+ 1. Have all required frontmatter fields present and correctly typed
188
+ 2. Have all required body fields present and non-empty
189
+ 3. Have every finding reference a valid `capability_ref` from GC2
190
+ 4. Have every compound reference exactly 2 findings from different domains
191
+ 5. Have compound `confidence` equal to the lower of component confidences
192
+ 6. Have no compounds where either component has confidence "low"
193
+ 7. Have finding IDs unique within the report
194
+ 8. Have `severity` as one of: "blocker", "recommended", "nice-to-have"
195
+ 9. Have `source` as one of: "static-analysis", "contextual-model"
196
+ 10. Have `confidence` as one of: "high", "medium", "low"
197
+ 11. Have summary counts matching actual finding counts
@@ -0,0 +1,209 @@
1
+ # GC4: Feedback Loop — Schema Definition
2
+
3
+ > **Contract:** GC4 | **Type:** Artifact | **Flow:** Coach → Atlas
4
+ >
5
+ > This schema defines the structure for the Feedback Loop produced by the model-review workflow. Contains two mechanisms: (1) amendment flags on capabilities in GC2, and (2) a standalone feedback file for missed-gap reports.
6
+
7
+ ## Overview
8
+
9
+ GC4 is a dual-mechanism contract:
10
+
11
+ 1. **Amendment Flags** — stored directly on capabilities in `.gyre/capabilities.yaml` (GC2). Capabilities marked `removed: true` or `amended: true` persist across regeneration. Atlas reads these flags and respects them.
12
+
13
+ 2. **Feedback File** — stored in `.gyre/feedback.yaml`. Contains user-reported missed capabilities, missed gaps, and severity adjustments. Atlas uses these to inform future model generation.
14
+
15
+ ## Mechanism 1: Amendment Flags (in GC2)
16
+
17
+ Amendments are stored as additional fields on capability entries in `.gyre/capabilities.yaml`:
18
+
19
+ ```yaml
20
+ # Removed capability — excluded from future analysis
21
+ - id: "obs-custom-metrics"
22
+ name: "Custom metrics collection"
23
+ category: "observability"
24
+ # ... standard fields ...
25
+ removed: true
26
+ removed_at: "2026-03-22"
27
+
28
+ # Edited capability — persists across regeneration
29
+ - id: "dep-rollback"
30
+ name: "Automated rollback" # updated by user
31
+ category: "deployment"
32
+ description: "Canary-based rollback" # updated by user
33
+ # ... standard fields ...
34
+ amended: true
35
+ amended_at: "2026-03-22"
36
+ original_name: "Rollback strategy"
37
+ original_description: "Mechanism to revert failed deployments"
38
+
39
+ # User-added capability
40
+ - id: "obs-custom-001"
41
+ name: "SLO dashboard"
42
+ category: "observability"
43
+ description: "Service Level Objective tracking dashboard with burn rate alerts"
44
+ source: "user-added"
45
+ amended: true
46
+ amended_at: "2026-03-22"
47
+ ```
48
+
49
+ ### Amendment Flag Reference
50
+
51
+ | Field | Type | When Present | Description |
52
+ |-------|------|-------------|-------------|
53
+ | `removed` | boolean | Capability removed by user | Always `true` when present |
54
+ | `removed_at` | date | With `removed` | ISO date of removal |
55
+ | `amended` | boolean | Capability edited or added by user | Always `true` when present |
56
+ | `amended_at` | date | With `amended` | ISO date of amendment |
57
+ | `original_name` | string | Name was changed | Previous name value |
58
+ | `original_description` | string | Description was changed | Previous description value |
59
+ | `original_category` | string | Category was changed | Previous category value |
60
+ | `source` | string | User-added capability | Set to `"user-added"` for new entries |
61
+
62
+ ### Amendment Frontmatter Fields (in GC2)
63
+
64
+ When amendments are applied, the GC2 frontmatter is updated:
65
+
66
+ ```yaml
67
+ ---
68
+ contract: GC2
69
+ # ... standard GC2 fields ...
70
+ last_reviewed: "2026-03-22" # date of most recent review
71
+ review_deferred: false # true if user chose "later"
72
+ amendment_count: 3 # total amendments applied
73
+ ---
74
+ ```
75
+
76
+ ---
77
+
78
+ ## Mechanism 2: Feedback File
79
+
80
+ Feedback is stored in a standalone file at `.gyre/feedback.yaml`.
81
+
82
+ ### Frontmatter Schema
83
+
84
+ ```yaml
85
+ ---
86
+ contract: GC4
87
+ type: artifact
88
+ source_agent: coach
89
+ target_agents: [atlas]
90
+ created: YYYY-MM-DD
91
+ updated: YYYY-MM-DD
92
+ ---
93
+ ```
94
+
95
+ ### Frontmatter Field Reference
96
+
97
+ | Field | Required | Type | Description |
98
+ |-------|----------|------|-------------|
99
+ | `contract` | Yes | string | Always `GC4` |
100
+ | `type` | Yes | string | Always `artifact` |
101
+ | `source_agent` | Yes | string | Always `coach` |
102
+ | `target_agents` | Yes | array | Agent IDs that consume this artifact: `[atlas]` |
103
+ | `created` | Yes | date | ISO date when first feedback entry was written |
104
+ | `updated` | Yes | date | ISO date of most recent feedback entry |
105
+
106
+ ### Body Schema
107
+
108
+ ```yaml
109
+ feedback:
110
+ - timestamp: ISO-8601 # when the feedback was provided
111
+ reporter: string # user name from config
112
+ type: string # "missed-capability" | "missed-gap" | "severity-adjustment" | "other"
113
+ description: string # user's feedback in their own words
114
+ domain: string # "observability" | "deployment" | "reliability" | "security" | "general"
115
+ ```
116
+
117
+ ### Feedback Entry Field Reference
118
+
119
+ | Field | Required | Type | Description |
120
+ |-------|----------|------|-------------|
121
+ | `timestamp` | Yes | string | ISO-8601 timestamp of when feedback was captured |
122
+ | `reporter` | Yes | string | User name (from config.yaml `user_name`) |
123
+ | `type` | Yes | string | One of: `missed-capability`, `missed-gap`, `severity-adjustment`, `other` |
124
+ | `description` | Yes | string | User's feedback in their own words |
125
+ | `domain` | Yes | string | One of: `observability`, `deployment`, `reliability`, `security`, `general` |
126
+
127
+ ---
128
+
129
+ ## Artifact Locations
130
+
131
+ | File | Purpose | Updated By |
132
+ |------|---------|------------|
133
+ | `.gyre/capabilities.yaml` | Amendment flags on capabilities | Coach (step-03-apply-amendments) |
134
+ | `.gyre/feedback.yaml` | Missed-gap reports and feedback | Coach (step-04-capture-feedback) |
135
+
136
+ ---
137
+
138
+ ## Downstream Consumption
139
+
140
+ | Consumer | Mechanism | Purpose |
141
+ |----------|-----------|---------|
142
+ | **Atlas** (model-curator) | Amendment flags in GC2 | Respect `removed`/`amended` flags on regeneration — never re-add removed capabilities, preserve edits |
143
+ | **Atlas** (model-curator) | Feedback file | Incorporate missed-capability and missed-gap feedback into future model generation |
144
+
145
+ ### Atlas Regeneration Rules
146
+
147
+ When Atlas regenerates the model (model-generation workflow):
148
+
149
+ 1. Load existing `.gyre/capabilities.yaml` if present
150
+ 2. For each capability with `removed: true` — do NOT regenerate, preserve the removal entry
151
+ 3. For each capability with `amended: true` — preserve user's edits, do not overwrite
152
+ 4. For each `missed-capability` feedback entry — consider generating a matching capability
153
+ 5. For each `missed-gap` feedback entry — consider adding a relevant capability
154
+ 6. New capabilities from regeneration are added alongside preserved amendments
155
+
156
+ ---
157
+
158
+ ## Example
159
+
160
+ ### Feedback File Example
161
+
162
+ ```yaml
163
+ ---
164
+ contract: GC4
165
+ type: artifact
166
+ source_agent: coach
167
+ target_agents: [atlas]
168
+ created: 2026-03-22
169
+ updated: 2026-03-22
170
+ ---
171
+
172
+ feedback:
173
+ - timestamp: "2026-03-22T15:30:00Z"
174
+ reporter: "Alice"
175
+ type: "missed-capability"
176
+ description: "We use SLO-based alerting with burn rate windows — the model should include SLO tracking as a capability"
177
+ domain: "observability"
178
+ - timestamp: "2026-03-22T15:32:00Z"
179
+ reporter: "Alice"
180
+ type: "severity-adjustment"
181
+ description: "OBS-003 (structured logging) should be a blocker, not recommended — we've had incidents from unstructured logs"
182
+ domain: "observability"
183
+ - timestamp: "2026-03-22T15:35:00Z"
184
+ reporter: "Alice"
185
+ type: "missed-gap"
186
+ description: "No finding about database connection pooling — we don't have it and it's causing issues under load"
187
+ domain: "reliability"
188
+ ```
189
+
190
+ ---
191
+
192
+ ## Validation Rules
193
+
194
+ A valid GC4 feedback file must:
195
+
196
+ 1. Have all required frontmatter fields present and correctly typed
197
+ 2. Have every feedback entry with all required fields present and non-empty
198
+ 3. Have `type` as one of: `missed-capability`, `missed-gap`, `severity-adjustment`, `other`
199
+ 4. Have `domain` as one of: `observability`, `deployment`, `reliability`, `security`, `general`
200
+ 5. Have `timestamp` in ISO-8601 format
201
+ 6. Have `updated` date >= `created` date
202
+ 7. Not contain source code, file contents, or secrets (NFR9)
203
+
204
+ Amendment flags in GC2 must:
205
+
206
+ 1. Have `removed_at` present when `removed: true`
207
+ 2. Have `amended_at` present when `amended: true`
208
+ 3. Have at least one `original_*` field when `amended: true` (unless `source: "user-added"`)
209
+ 4. Have unique capability IDs (user-added capabilities use `[category]-custom-NNN` pattern)
@@ -0,0 +1,177 @@
1
+ # Atlas 📐 User Guide
2
+
3
+ **(model-curator.md)**
4
+
5
+ - **Version:** 1.0.0
6
+ - **Module:** Gyre Pattern (Production Readiness)
7
+ - **Last Updated:** 2026-03-24
8
+
9
+ ---
10
+
11
+ ## Quick Start
12
+
13
+ **Who is Atlas?** Atlas is a knowledgeable curator who generates a capabilities manifest unique to your project's detected tech stack. Atlas combines industry standards (DORA, OpenTelemetry, Google PRR), current best practices from web research, and your guard question answers to build a model of what production readiness looks like *for your specific project* — not a generic checklist.
14
+
15
+ **When to use Atlas:**
16
+
17
+ - Scout has produced a Stack Profile and you need a capabilities model
18
+ - You want to regenerate the model after amending it through Coach
19
+ - You need to validate model accuracy against a known stack
20
+
21
+ **Atlas vs Other Gyre Agents:**
22
+
23
+ | If you want to... | Use... |
24
+ |---|---|
25
+ | Know what tech stack a project uses | **Scout** 🔎 |
26
+ | Generate a capabilities model for that stack | **Atlas** 📐 |
27
+ | Find what's missing from the project | **Lens** 🔬 |
28
+ | Review and refine the findings | **Coach** 🏋️ |
29
+
30
+ **What you'll get:** A Capabilities Manifest (`.gyre/capabilities.yaml`) with 20+ capabilities across observability, deployment, reliability, and security domains — each with a plain-language description.
31
+
32
+ ---
33
+
34
+ ## How to Invoke
35
+
36
+ **Claude Code (skills) — recommended:**
37
+
38
+ ```
39
+ /bmad-agent-bme-model-curator
40
+ ```
41
+
42
+ **Claude Code (terminal) / Other AI assistants:**
43
+
44
+ ```bash
45
+ cat _bmad/bme/_gyre/agents/model-curator.md
46
+ ```
47
+
48
+ **Claude.ai:**
49
+
50
+ Open `_bmad/bme/_gyre/agents/model-curator.md` and paste its contents into your conversation.
51
+
52
+ ---
53
+
54
+ ## Menu Options
55
+
56
+ | # | Code | Description |
57
+ |---|------|-------------|
58
+ | 1 | **MH** | Redisplay Menu Help |
59
+ | 2 | **CH** | Chat with Atlas about capabilities and models |
60
+ | 3 | **GM** | Generate Model — build a capabilities manifest from the Stack Profile |
61
+ | 4 | **AV** | Accuracy Validation — validate model quality against test repos |
62
+ | 5 | **FA** | Full Analysis — run the complete Gyre pipeline |
63
+ | 6 | **PM** | Start Party Mode |
64
+ | 7 | **DA** | Dismiss Agent |
65
+
66
+ Select by number, code, or fuzzy text match.
67
+
68
+ ---
69
+
70
+ ## Workflows
71
+
72
+ ### [GM] Generate Model
73
+
74
+ Loads the Stack Profile (GC1) and generates a contextual capabilities manifest tailored to your project's tech stack.
75
+
76
+ - **Prerequisite:** `.gyre/stack-profile.yaml` must exist (run Scout first)
77
+ - **Output:** `.gyre/capabilities.yaml` (GC2 contract)
78
+ - **When to use:** After stack detection, or when regenerating the model
79
+
80
+ **How Atlas generates capabilities:**
81
+
82
+ 1. **Load profile** — reads Stack Profile and checks for existing amendments from Coach (GC4)
83
+ 2. **Generate capabilities** — uses stack context + industry standards (DORA metrics, OpenTelemetry, Google PRR) to produce domain-specific capabilities
84
+ 3. **Web enrichment** — searches for current best practices relevant to your stack
85
+ 4. **Write manifest** — produces the final capabilities.yaml
86
+
87
+ **Capability domains:** observability (6-10 capabilities), deployment (5-8), reliability (4-6), security (3-5).
88
+
89
+ **Capability sources:**
90
+
91
+ - **standard** — derived from industry standards (DORA, OTel, PRR)
92
+ - **practice** — discovered via web search for current best practices
93
+ - **reasoning** — inferred from stack context by Atlas
94
+
95
+ **Limited coverage warning:** If fewer than 20 capabilities are generated, Atlas surfaces a warning and offers you the choice to continue or abort.
96
+
97
+ **Amendment respect:** When regenerating, Atlas preserves your previous Coach amendments — removed capabilities stay removed, edited descriptions stay edited.
98
+
99
+ ### [AV] Accuracy Validation
100
+
101
+ Validates model quality by scoring capabilities against synthetic ground truth across multiple stack archetypes.
102
+
103
+ - **Output:** Accuracy report with per-archetype scores
104
+ - **When to use:** Quality gate before trusting the model for gap analysis
105
+
106
+ **Scoring:**
107
+
108
+ - 1.0 = Relevant (appropriate for this stack)
109
+ - 0.5 = Partially relevant (tangential or poorly described)
110
+ - 0.0 = Irrelevant (no relation to stack)
111
+
112
+ **Gate:** Must achieve ≥70% accuracy across ≥3 stack archetypes. If any archetype falls below 70%, Atlas iterates.
113
+
114
+ ### [FA] Full Analysis
115
+
116
+ Same as Scout's Full Analysis — runs the complete pipeline. Atlas handles step 3 (model generation).
117
+
118
+ ---
119
+
120
+ ## Philosophy
121
+
122
+ - **Context over generic** — Every capability is relevant to *this* stack. Atlas doesn't dump a universal checklist; it reasons about what matters for Node.js on Kubernetes differently than Python on ECS.
123
+ - **Standards inform, they don't dictate** — DORA and OpenTelemetry are starting points, not requirements. Atlas adapts to your project's actual architecture.
124
+ - **Transparency** — Each capability shows its source (standard, practice, or reasoning) so you know where it came from and can judge accordingly.
125
+ - **Team ownership** — The capabilities manifest belongs to your team. Amendments persist. The model improves with use.
126
+
127
+ ---
128
+
129
+ ## Chat with Atlas
130
+
131
+ Use **[CH]** to discuss model generation topics:
132
+
133
+ - "Why did you include distributed tracing for my project?"
134
+ - "What DORA metrics are relevant to my stack?"
135
+ - "Can you explain the difference between standard and practice sources?"
136
+ - "My project is a CLI tool, not a web service — should I regenerate?"
137
+
138
+ ---
139
+
140
+ ## Troubleshooting
141
+
142
+ **"GC1 not found" error**
143
+
144
+ Atlas requires a Stack Profile to generate the model. Run Scout's **[DS]** workflow first, then return to Atlas.
145
+
146
+ **Model seems too generic**
147
+
148
+ Check that Scout's guard answers are accurate — Atlas uses them to tune the model. If guard answers are wrong or missing, re-run Scout's **[DS]** with corrected answers, then regenerate.
149
+
150
+ **Fewer than 20 capabilities generated**
151
+
152
+ Atlas surfaces a limited-coverage warning. This can happen with unusual or very simple stacks. You can continue (the model is still useful) or abort and check if Scout's stack classification is accurate.
153
+
154
+ **Amendments disappeared after regeneration**
155
+
156
+ Atlas reads GC4 (Coach amendments) before regenerating. If amendments are missing, check that `.gyre/capabilities.yaml` contains the `amended` and `removed` flags from your last Coach review.
157
+
158
+ ---
159
+
160
+ ## Tips
161
+
162
+ - **Don't skip Scout.** Atlas needs the Stack Profile as input. Running Atlas without it produces an error, not a generic model.
163
+ - **Web search results are fresh.** Atlas searches for current-year best practices every time — no stale caches. This means models improve naturally over time.
164
+ - **Regeneration preserves your work.** Coach amendments survive regeneration. You don't lose your customizations when the model updates.
165
+ - **Capabilities.yaml IS the cache.** In anticipation mode, Atlas's model is reused rather than regenerated. This is by design — the model is stable until you explicitly regenerate.
166
+
167
+ ---
168
+
169
+ ## Credits
170
+
171
+ - **Agent:** Atlas (Model Curator)
172
+ - **Module:** Gyre Pattern v1.0.0
173
+ - **Pattern:** Convoke Agent Architecture
174
+
175
+ ---
176
+
177
+ *Scout finds the facts. Atlas builds the model. Lens finds the gaps. Coach helps you act on them.*