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.
- package/CHANGELOG.md +35 -0
- package/INSTALLATION.md +109 -86
- package/README.md +236 -104
- package/UPDATE-GUIDE.md +63 -23
- package/_bmad/bme/_enhance/config.yaml +8 -0
- package/_bmad/bme/_enhance/extensions/bmm-pm.yaml +9 -0
- package/_bmad/bme/_enhance/guides/.gitkeep +0 -0
- package/_bmad/bme/_enhance/guides/ENHANCE-GUIDE.md +252 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/SKILL.md +6 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/.gitkeep +0 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-01-init.md +106 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-02-gather.md +136 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-03-score.md +146 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-c/step-c-04-prioritize.md +181 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-r/.gitkeep +0 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-r/step-r-01-load.md +120 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-r/step-r-02-rescore.md +141 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-r/step-r-03-update.md +154 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/.gitkeep +0 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-01-ingest.md +86 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-02-extract.md +169 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-03-score.md +147 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/steps-t/step-t-04-update.md +155 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/templates/backlog-format-spec.md +219 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/templates/rice-scoring-guide.md +154 -0
- package/_bmad/bme/_enhance/workflows/initiatives-backlog/workflow.md +88 -0
- package/_bmad/bme/_gyre/README.md +100 -0
- package/_bmad/bme/_gyre/agents/.gitkeep +0 -0
- package/_bmad/bme/_gyre/agents/model-curator.md +128 -0
- package/_bmad/bme/_gyre/agents/readiness-analyst.md +127 -0
- package/_bmad/bme/_gyre/agents/review-coach.md +130 -0
- package/_bmad/bme/_gyre/agents/stack-detective.md +125 -0
- package/_bmad/bme/_gyre/compass-routing-reference.md +168 -0
- package/_bmad/bme/_gyre/config.yaml +22 -0
- package/_bmad/bme/_gyre/contracts/.gitkeep +0 -0
- package/_bmad/bme/_gyre/contracts/gc1-stack-profile.md +152 -0
- package/_bmad/bme/_gyre/contracts/gc2-capabilities-manifest.md +189 -0
- package/_bmad/bme/_gyre/contracts/gc3-findings-report.md +197 -0
- package/_bmad/bme/_gyre/contracts/gc4-feedback-loop.md +209 -0
- package/_bmad/bme/_gyre/guides/ATLAS-USER-GUIDE.md +177 -0
- package/_bmad/bme/_gyre/guides/COACH-USER-GUIDE.md +172 -0
- package/_bmad/bme/_gyre/guides/LENS-USER-GUIDE.md +181 -0
- package/_bmad/bme/_gyre/guides/SCOUT-USER-GUIDE.md +158 -0
- package/_bmad/bme/_gyre/workflows/.gitkeep +0 -0
- package/_bmad/bme/_gyre/workflows/accuracy-validation/steps/step-01-select-repos.md +55 -0
- package/_bmad/bme/_gyre/workflows/accuracy-validation/steps/step-02-run-validation.md +78 -0
- package/_bmad/bme/_gyre/workflows/accuracy-validation/steps/step-03-score-results.md +143 -0
- package/_bmad/bme/_gyre/workflows/accuracy-validation/workflow.md +41 -0
- package/_bmad/bme/_gyre/workflows/delta-report/steps/step-01-load-history.md +63 -0
- package/_bmad/bme/_gyre/workflows/delta-report/steps/step-02-compute-delta.md +72 -0
- package/_bmad/bme/_gyre/workflows/delta-report/steps/step-03-present-delta.md +143 -0
- package/_bmad/bme/_gyre/workflows/delta-report/workflow.md +34 -0
- package/_bmad/bme/_gyre/workflows/full-analysis/steps/step-01-initialize.md +68 -0
- package/_bmad/bme/_gyre/workflows/full-analysis/steps/step-02-detect-stack.md +49 -0
- package/_bmad/bme/_gyre/workflows/full-analysis/steps/step-03-generate-model.md +52 -0
- package/_bmad/bme/_gyre/workflows/full-analysis/steps/step-04-analyze-gaps.md +42 -0
- package/_bmad/bme/_gyre/workflows/full-analysis/steps/step-05-review-findings.md +128 -0
- package/_bmad/bme/_gyre/workflows/full-analysis/workflow.md +39 -0
- package/_bmad/bme/_gyre/workflows/gap-analysis/steps/step-01-load-manifest.md +70 -0
- package/_bmad/bme/_gyre/workflows/gap-analysis/steps/step-02-observability-analysis.md +110 -0
- package/_bmad/bme/_gyre/workflows/gap-analysis/steps/step-03-deployment-analysis.md +87 -0
- package/_bmad/bme/_gyre/workflows/gap-analysis/steps/step-04-cross-domain-correlation.md +105 -0
- package/_bmad/bme/_gyre/workflows/gap-analysis/steps/step-05-present-findings.md +172 -0
- package/_bmad/bme/_gyre/workflows/gap-analysis/workflow.md +38 -0
- package/_bmad/bme/_gyre/workflows/model-generation/steps/step-01-load-profile.md +74 -0
- package/_bmad/bme/_gyre/workflows/model-generation/steps/step-02-generate-capabilities.md +116 -0
- package/_bmad/bme/_gyre/workflows/model-generation/steps/step-03-web-enrichment.md +89 -0
- package/_bmad/bme/_gyre/workflows/model-generation/steps/step-04-write-manifest.md +122 -0
- package/_bmad/bme/_gyre/workflows/model-generation/workflow.md +40 -0
- package/_bmad/bme/_gyre/workflows/model-review/steps/step-01-load-context.md +86 -0
- package/_bmad/bme/_gyre/workflows/model-review/steps/step-02-walkthrough.md +116 -0
- package/_bmad/bme/_gyre/workflows/model-review/steps/step-03-apply-amendments.md +92 -0
- package/_bmad/bme/_gyre/workflows/model-review/steps/step-04-capture-feedback.md +107 -0
- package/_bmad/bme/_gyre/workflows/model-review/steps/step-05-summary.md +60 -0
- package/_bmad/bme/_gyre/workflows/model-review/workflow.md +41 -0
- package/_bmad/bme/_gyre/workflows/stack-detection/steps/step-01-scan-filesystem.md +176 -0
- package/_bmad/bme/_gyre/workflows/stack-detection/steps/step-02-classify-stack.md +111 -0
- package/_bmad/bme/_gyre/workflows/stack-detection/steps/step-03-guard-questions.md +117 -0
- package/_bmad/bme/_gyre/workflows/stack-detection/workflow.md +42 -0
- package/_bmad/bme/_vortex/config.yaml +1 -1
- package/package.json +7 -2
- package/scripts/archive.js +304 -0
- package/scripts/convoke-doctor.js +146 -132
- package/scripts/docs-audit.js +21 -5
- package/scripts/install-gyre-agents.js +140 -0
- package/scripts/install-vortex-agents.js +0 -0
- package/scripts/update/lib/agent-registry.js +70 -0
- package/scripts/update/lib/refresh-installation.js +290 -29
- package/scripts/update/lib/validator.js +281 -1
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# Compass Routing Reference — Gyre Pattern
|
|
2
|
+
|
|
3
|
+
> **Status:** Authoritative | **Version:** 1.0 | **Created:** 2026-03-21
|
|
4
|
+
>
|
|
5
|
+
> This is the **authoritative** routing reference for the Gyre Pattern. All step-file Compass sections MUST reference this document for routing decisions.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Gyre Overview
|
|
10
|
+
|
|
11
|
+
The Gyre Pattern has 4 agents across 4 streams, connected by 4 handoff contracts:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
┌─────────────────────────────────────────────┐
|
|
15
|
+
│ GYRE PATTERN │
|
|
16
|
+
│ 4 Streams · 4 Agents │
|
|
17
|
+
└─────────────────────────────────────────────┘
|
|
18
|
+
|
|
19
|
+
┌──────────┐ GC1 ┌──────────┐ GC2 ┌──────────┐ GC3 ┌──────────┐
|
|
20
|
+
│ Scout 🔎 │─────────▶│ Atlas 📐 │─────────▶│ Lens 🔬 │─────────▶│ Coach 🏋️ │
|
|
21
|
+
│ Detect │ artifact │ Model │ artifact │ Analyze │ artifact │ Review │
|
|
22
|
+
└──────────┘ └──────────┘ └──────────┘ └──────────┘
|
|
23
|
+
▲ │
|
|
24
|
+
│ GC4 │
|
|
25
|
+
└──────────────────────────────────────────┘
|
|
26
|
+
feedback
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Contract Types:**
|
|
30
|
+
- **GC1–GC3** (forward flow): Artifact contracts — agent produces a schema-compliant artifact file
|
|
31
|
+
- **GC4** (feedback loop): Coach amends the capabilities model; Atlas respects amendments on regeneration
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Routing Mechanisms
|
|
36
|
+
|
|
37
|
+
Gyre uses a simpler routing model than Vortex — it's a linear pipeline with one feedback loop. Routing is primarily **action-driven** (what the user wants to do next) rather than **evidence-driven** (what evidence suggests).
|
|
38
|
+
|
|
39
|
+
| Mechanism | Description | Contracts | Compass Row Pattern |
|
|
40
|
+
|-----------|-------------|-----------|-------------------|
|
|
41
|
+
| **Schema-driven** | Artifact produced, schema declares target | GC1–GC3 | "Your [artifact] is ready for [Agent]" |
|
|
42
|
+
| **Feedback-driven** | Coach amendments feed back to Atlas | GC4 | "Model updated — regenerate to apply amendments" |
|
|
43
|
+
| **Action-driven** | User chooses next workflow by intent | All | "If you want to [action], run [workflow]" |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Handoff Contract Reference
|
|
48
|
+
|
|
49
|
+
### Artifact Contracts (GC1–GC3)
|
|
50
|
+
|
|
51
|
+
These contracts have schema definitions in `_bmad/bme/_gyre/contracts/`. Each artifact produced by the source agent must conform to the schema.
|
|
52
|
+
|
|
53
|
+
| Contract | Flow | Schema File | Expected Artifact | Trigger Condition |
|
|
54
|
+
|----------|------|-------------|-------------------|-------------------|
|
|
55
|
+
| **GC1** | Scout 🔎 → Atlas 📐 | `contracts/gc1-stack-profile.md` | Stack Profile — technology categories, archetype, guard answers, confidence level | Stack detection complete; classification confirmed by user |
|
|
56
|
+
| **GC2** | Atlas 📐 → Lens 🔬 | `contracts/gc2-capabilities-manifest.md` | Capabilities Manifest — ≥20 capabilities relevant to detected stack, each with domain, description, why-it-matters | Model generation complete; capabilities curated for the stack |
|
|
57
|
+
| **GC3** | Lens 🔬 → Coach 🏋️ | `contracts/gc3-findings-report.md` | Findings Report — absence-based findings with severity, confidence, evidence, capability refs; cross-domain compounds | Gap analysis complete; all domains analyzed and correlated |
|
|
58
|
+
|
|
59
|
+
### Feedback Contract (GC4)
|
|
60
|
+
|
|
61
|
+
| Contract | Flow | Routing Type | Trigger Condition | What the Target Agent Receives |
|
|
62
|
+
|----------|------|-------------|-------------------|-------------------------------|
|
|
63
|
+
| **GC4** | Coach 🏋️ → Atlas 📐 | Feedback-driven | Coach captures model amendments (keep/remove/edit) and missed-gap feedback during review | Atlas receives: amendment list (capabilities to remove, edit, or add) + user feedback on missed gaps. Respected on next model regeneration. |
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Complete Routing Decision Matrix
|
|
68
|
+
|
|
69
|
+
### Scout 🔎 — Detect (Stream 1)
|
|
70
|
+
|
|
71
|
+
| Workflow | Route 1 | Route 2 | Route 3 |
|
|
72
|
+
|----------|---------|---------|---------|
|
|
73
|
+
| `stack-detection` | → Atlas 📐 `model-generation` — Stack Profile (GC1) ready for model generation | → Scout 🔎 `stack-detection` — Re-detect after project changes | → Coach 🏋️ `model-review` — Review existing model with new stack context |
|
|
74
|
+
|
|
75
|
+
### Atlas 📐 — Model (Stream 2)
|
|
76
|
+
|
|
77
|
+
| Workflow | Route 1 | Route 2 | Route 3 |
|
|
78
|
+
|----------|---------|---------|---------|
|
|
79
|
+
| `model-generation` | → Lens 🔬 `gap-analysis` — Capabilities Manifest (GC2) ready for analysis | → Coach 🏋️ `model-review` — Review and customize model before analysis | → Atlas 📐 `accuracy-validation` — Validate model quality before proceeding |
|
|
80
|
+
| `accuracy-validation` | → Atlas 📐 `model-generation` — Iterate prompts if accuracy < 70% | → Lens 🔬 `gap-analysis` — Accuracy validated, proceed to analysis | |
|
|
81
|
+
|
|
82
|
+
### Lens 🔬 — Analyze (Stream 3)
|
|
83
|
+
|
|
84
|
+
| Workflow | Route 1 | Route 2 | Route 3 |
|
|
85
|
+
|----------|---------|---------|---------|
|
|
86
|
+
| `gap-analysis` | → Coach 🏋️ `model-review` — Findings Report (GC3) ready for review | → Lens 🔬 `delta-report` — Compare with previous run | → Atlas 📐 `model-generation` — Model seems wrong, regenerate |
|
|
87
|
+
| `delta-report` | → Coach 🏋️ `model-review` — Review changes since last analysis | → Scout 🔎 `stack-detection` — Stack may have changed, re-detect | |
|
|
88
|
+
|
|
89
|
+
### Coach 🏋️ — Review (Stream 4)
|
|
90
|
+
|
|
91
|
+
| Workflow | Route 1 | Route 2 | Route 3 |
|
|
92
|
+
|----------|---------|---------|---------|
|
|
93
|
+
| `model-review` | → Atlas 📐 `model-generation` — Amendments captured (GC4), regenerate model | → Lens 🔬 `gap-analysis` — Model reviewed, proceed to analysis | → Scout 🔎 `full-analysis` — Run complete pipeline from scratch |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Inter-Module Routing (Gyre → Vortex)
|
|
98
|
+
|
|
99
|
+
Gyre findings can feed into Vortex product discovery:
|
|
100
|
+
|
|
101
|
+
| If Gyre finds... | Consider in Vortex... | Agent | Why |
|
|
102
|
+
|---|---|---|---|
|
|
103
|
+
| Critical readiness gaps blocking launch | `product-vision` or `contextualize-scope` | Emma 🎯 | Readiness gaps may redefine product scope |
|
|
104
|
+
| Findings that challenge assumptions | `hypothesis-engineering` | Liam 💡 | Readiness findings are testable hypotheses |
|
|
105
|
+
| Feedback suggesting missing capabilities | `user-interview` | Isla 🔍 | Validate missed gaps with users |
|
|
106
|
+
|
|
107
|
+
> **Note:** Inter-module routing is advisory. The user decides whether a Gyre finding warrants Vortex action.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Compass Table Format
|
|
112
|
+
|
|
113
|
+
All step-file Compass sections MUST use this uniform format:
|
|
114
|
+
|
|
115
|
+
```markdown
|
|
116
|
+
## Gyre Compass
|
|
117
|
+
|
|
118
|
+
Based on what you just completed, here are your options:
|
|
119
|
+
|
|
120
|
+
| If you want to... | Consider next... | Agent | Why |
|
|
121
|
+
|---|---|---|---|
|
|
122
|
+
| [action/intent] | [workflow-name] | [Agent Icon] | [rationale] |
|
|
123
|
+
| [action/intent] | [workflow-name] | [Agent Icon] | [rationale] |
|
|
124
|
+
| [action/intent] | [workflow-name] | [Agent Icon] | [rationale] |
|
|
125
|
+
|
|
126
|
+
> **Note:** These are recommendations. You can run any Gyre workflow at any time.
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Rules:**
|
|
130
|
+
- **2–3 rows** per Compass table
|
|
131
|
+
- Agent display format: `AgentName Icon` (e.g., `Scout 🔎`, `Atlas 📐`)
|
|
132
|
+
- Include inter-module routing rows only in Coach's final step (findings review complete)
|
|
133
|
+
- `full-analysis` compass appears in step-05-review-findings only
|
|
134
|
+
|
|
135
|
+
### Agent Display Reference
|
|
136
|
+
|
|
137
|
+
| Agent | Display Format |
|
|
138
|
+
|-------|---------------|
|
|
139
|
+
| Scout | `Scout 🔎` |
|
|
140
|
+
| Atlas | `Atlas 📐` |
|
|
141
|
+
| Lens | `Lens 🔬` |
|
|
142
|
+
| Coach | `Coach 🏋️` |
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Full Compass Table (used in step-05-review-findings of full-analysis)
|
|
147
|
+
|
|
148
|
+
This comprehensive table appears only at the end of the full pipeline:
|
|
149
|
+
|
|
150
|
+
| If you want to... | Consider next... | Agent | Why |
|
|
151
|
+
|---|---|---|---|
|
|
152
|
+
| Detect or re-detect your stack | stack-detection | Scout 🔎 | New project or stack has changed |
|
|
153
|
+
| Generate or regenerate the model | model-generation | Atlas 📐 | First run or want fresh model |
|
|
154
|
+
| Review your capabilities manifest | model-review | Coach 🏋️ | Customize the model to your stack |
|
|
155
|
+
| Run gap analysis | gap-analysis | Lens 🔬 | Find what's missing |
|
|
156
|
+
| See what changed since last run | delta-report | Lens 🔬 | Track progress over time |
|
|
157
|
+
| Run the full pipeline | full-analysis | Scout 🔎 | Complete end-to-end analysis |
|
|
158
|
+
| Validate model accuracy | accuracy-validation | Atlas 📐 | Pre-pilot quality gate |
|
|
159
|
+
|
|
160
|
+
> **Note:** These are recommendations. You can run any Gyre workflow at any time.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Version History
|
|
165
|
+
|
|
166
|
+
| Version | Date | Changes |
|
|
167
|
+
|---------|------|---------|
|
|
168
|
+
| 1.0 | 2026-03-21 | Initial creation — 4 contracts, 7 workflows, 4 agents, inter-module routing |
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
submodule_name: _gyre
|
|
2
|
+
description: Gyre Pattern - Production readiness discovery through stack analysis, contextual model generation, and absence detection
|
|
3
|
+
module: bme
|
|
4
|
+
output_folder: '{project-root}/_bmad-output/gyre-artifacts'
|
|
5
|
+
agents:
|
|
6
|
+
- stack-detective
|
|
7
|
+
- model-curator
|
|
8
|
+
- readiness-analyst
|
|
9
|
+
- review-coach
|
|
10
|
+
workflows:
|
|
11
|
+
- full-analysis
|
|
12
|
+
- stack-detection
|
|
13
|
+
- model-generation
|
|
14
|
+
- model-review
|
|
15
|
+
- gap-analysis
|
|
16
|
+
- delta-report
|
|
17
|
+
- accuracy-validation
|
|
18
|
+
version: 1.0.0
|
|
19
|
+
user_name: '{user}'
|
|
20
|
+
communication_language: en
|
|
21
|
+
party_mode_enabled: true
|
|
22
|
+
core_module: bme
|
|
File without changes
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# GC1: Stack Profile — Schema Definition
|
|
2
|
+
|
|
3
|
+
> **Contract:** GC1 | **Type:** Artifact | **Flow:** Scout → Atlas, Lens
|
|
4
|
+
>
|
|
5
|
+
> This schema defines the structure for the Stack Profile produced by the stack-detection workflow. The Stack Profile captures technology classifications — NOT file contents, paths, or secrets.
|
|
6
|
+
|
|
7
|
+
## Frontmatter Schema
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
---
|
|
11
|
+
contract: GC1
|
|
12
|
+
type: artifact
|
|
13
|
+
source_agent: scout
|
|
14
|
+
source_workflow: stack-detection
|
|
15
|
+
target_agents: [atlas, lens]
|
|
16
|
+
input_artifacts: []
|
|
17
|
+
created: YYYY-MM-DD
|
|
18
|
+
---
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Frontmatter Field Reference
|
|
22
|
+
|
|
23
|
+
| Field | Required | Type | Description |
|
|
24
|
+
|-------|----------|------|-------------|
|
|
25
|
+
| `contract` | Yes | string | Always `GC1` |
|
|
26
|
+
| `type` | Yes | string | Always `artifact` |
|
|
27
|
+
| `source_agent` | Yes | string | Always `scout` |
|
|
28
|
+
| `source_workflow` | Yes | string | Always `stack-detection` |
|
|
29
|
+
| `target_agents` | Yes | array | Agent IDs that consume this artifact: `[atlas, lens]` |
|
|
30
|
+
| `input_artifacts` | Yes | array | Empty array `[]` — GC1 is the first contract in the Gyre chain |
|
|
31
|
+
| `created` | Yes | date | ISO date when artifact was created |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Privacy Rule
|
|
36
|
+
|
|
37
|
+
**GC1 must contain technology categories and classifications only.**
|
|
38
|
+
|
|
39
|
+
It must NOT contain:
|
|
40
|
+
- File contents
|
|
41
|
+
- File paths
|
|
42
|
+
- Version numbers
|
|
43
|
+
- Dependency counts
|
|
44
|
+
- Dependency names
|
|
45
|
+
- Secrets, tokens, or credentials
|
|
46
|
+
|
|
47
|
+
This is the privacy boundary. Agents can read any file during detection, but the committed artifact carries only category-level metadata. Everything downstream of GC1 works with this metadata.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Body Schema
|
|
52
|
+
|
|
53
|
+
The Stack Profile is written to `.gyre/stack-profile.yaml` with the following structure:
|
|
54
|
+
|
|
55
|
+
```yaml
|
|
56
|
+
stack_profile:
|
|
57
|
+
primary_language: string # e.g., "Go", "Node.js", "Python"
|
|
58
|
+
primary_framework: string # e.g., "Express", "Gin", "FastAPI"
|
|
59
|
+
secondary_stacks: string[] # e.g., ["Python sidecar"] — empty if single stack
|
|
60
|
+
container_orchestration: string # e.g., "Kubernetes", "ECS", "Docker Compose", "none"
|
|
61
|
+
ci_cd_platform: string # e.g., "GitHub Actions", "GitLab CI", "Jenkins"
|
|
62
|
+
observability_tooling: string[] # e.g., ["OpenTelemetry", "Prometheus"]
|
|
63
|
+
cloud_provider: string # e.g., "AWS", "GCP", "Azure", "multi-cloud"
|
|
64
|
+
communication_protocol: string # e.g., "HTTP/REST", "gRPC", "message-queue"
|
|
65
|
+
guard_answers: # only populated if guard questions were asked
|
|
66
|
+
deployment_model: string # "container-based" | "serverless" | "bare-metal"
|
|
67
|
+
protocol: string # confirmed communication protocol
|
|
68
|
+
custom: object # any additional guard answers
|
|
69
|
+
detection_confidence: string # "high" | "medium" | "low"
|
|
70
|
+
detection_summary: string # human-readable summary of what was found
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Field Reference
|
|
74
|
+
|
|
75
|
+
| Field | Required | Type | Description |
|
|
76
|
+
|-------|----------|------|-------------|
|
|
77
|
+
| `primary_language` | Yes | string | Primary programming language detected |
|
|
78
|
+
| `primary_framework` | Yes | string | Primary framework detected (or "none" if bare language) |
|
|
79
|
+
| `secondary_stacks` | Yes | array | Secondary stacks in monorepo. Empty array if single-stack project |
|
|
80
|
+
| `container_orchestration` | Yes | string | Container platform. "none" if no container usage detected |
|
|
81
|
+
| `ci_cd_platform` | Yes | string | CI/CD platform. "none" if no CI config detected |
|
|
82
|
+
| `observability_tooling` | Yes | array | Observability tools found. Empty array if none detected |
|
|
83
|
+
| `cloud_provider` | Yes | string | Cloud provider. "none" if no cloud indicators found |
|
|
84
|
+
| `communication_protocol` | Yes | string | Primary communication pattern |
|
|
85
|
+
| `guard_answers` | No | object | Present only if guard questions were asked. Contains confirmed answers |
|
|
86
|
+
| `guard_answers.deployment_model` | No | string | Confirmed deployment model from guard question |
|
|
87
|
+
| `guard_answers.protocol` | No | string | Confirmed communication protocol from guard question |
|
|
88
|
+
| `guard_answers.custom` | No | object | Additional guard answers not covered by standard fields |
|
|
89
|
+
| `detection_confidence` | Yes | string | Overall confidence: "high", "medium", or "low" |
|
|
90
|
+
| `detection_summary` | Yes | string | Human-readable 1-3 sentence summary of the detected stack |
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Artifact Location
|
|
95
|
+
|
|
96
|
+
- **Path:** `.gyre/stack-profile.yaml` (relative to project root, or service root in monorepo)
|
|
97
|
+
- **Directory creation:** `.gyre/` is created on first run if it doesn't exist (FR42)
|
|
98
|
+
- **Concurrency:** `.gyre/.lock` file prevents concurrent analysis (NFR13)
|
|
99
|
+
- **Atomicity:** Write to temp file first, then rename to final path
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Downstream Consumption
|
|
104
|
+
|
|
105
|
+
| Consumer | Purpose |
|
|
106
|
+
|----------|---------|
|
|
107
|
+
| **Atlas** (model-curator) | Uses stack classification to generate contextually relevant capabilities for model generation |
|
|
108
|
+
| **Lens** (readiness-analyst) | Uses stack classification for domain-specific analysis targeting — which directories to search, what patterns to match |
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Example
|
|
113
|
+
|
|
114
|
+
```yaml
|
|
115
|
+
---
|
|
116
|
+
contract: GC1
|
|
117
|
+
type: artifact
|
|
118
|
+
source_agent: scout
|
|
119
|
+
source_workflow: stack-detection
|
|
120
|
+
target_agents: [atlas, lens]
|
|
121
|
+
input_artifacts: []
|
|
122
|
+
created: 2026-03-22
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
stack_profile:
|
|
126
|
+
primary_language: "Node.js"
|
|
127
|
+
primary_framework: "Express"
|
|
128
|
+
secondary_stacks: []
|
|
129
|
+
container_orchestration: "Kubernetes"
|
|
130
|
+
ci_cd_platform: "GitHub Actions"
|
|
131
|
+
observability_tooling: ["OpenTelemetry", "Prometheus"]
|
|
132
|
+
cloud_provider: "AWS"
|
|
133
|
+
communication_protocol: "HTTP/REST"
|
|
134
|
+
guard_answers:
|
|
135
|
+
deployment_model: "container-based"
|
|
136
|
+
detection_confidence: "high"
|
|
137
|
+
detection_summary: "Node.js Express web service deployed on AWS EKS via GitHub Actions. Instrumented with OpenTelemetry and Prometheus. REST API."
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Validation Rules
|
|
143
|
+
|
|
144
|
+
A valid GC1 artifact must:
|
|
145
|
+
|
|
146
|
+
1. Have all required frontmatter fields present and correctly typed
|
|
147
|
+
2. Have all required body fields present and non-empty
|
|
148
|
+
3. Contain NO file paths, file contents, version numbers, dependency names, or secrets
|
|
149
|
+
4. Have `detection_confidence` as one of: "high", "medium", "low"
|
|
150
|
+
5. Have `guard_answers` present only if guard questions were actually asked
|
|
151
|
+
6. Have `secondary_stacks` as an array (empty if single-stack)
|
|
152
|
+
7. Have `observability_tooling` as an array (empty if none detected)
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
# GC2: Capabilities Manifest — Schema Definition
|
|
2
|
+
|
|
3
|
+
> **Contract:** GC2 | **Type:** Artifact | **Flow:** Atlas → Lens, Coach
|
|
4
|
+
>
|
|
5
|
+
> This schema defines the structure for the Capabilities Manifest produced by the model-generation workflow. The manifest contains contextual capabilities relevant to the detected stack — NOT source code, file contents, or secrets.
|
|
6
|
+
|
|
7
|
+
## Frontmatter Schema
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
---
|
|
11
|
+
contract: GC2
|
|
12
|
+
type: artifact
|
|
13
|
+
source_agent: atlas
|
|
14
|
+
source_workflow: model-generation
|
|
15
|
+
target_agents: [lens, coach]
|
|
16
|
+
input_artifacts: [GC1]
|
|
17
|
+
created: YYYY-MM-DD
|
|
18
|
+
---
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Frontmatter Field Reference
|
|
22
|
+
|
|
23
|
+
| Field | Required | Type | Description |
|
|
24
|
+
|-------|----------|------|-------------|
|
|
25
|
+
| `contract` | Yes | string | Always `GC2` |
|
|
26
|
+
| `type` | Yes | string | Always `artifact` |
|
|
27
|
+
| `source_agent` | Yes | string | Always `atlas` |
|
|
28
|
+
| `source_workflow` | Yes | string | Always `model-generation` |
|
|
29
|
+
| `target_agents` | Yes | array | Agent IDs that consume this artifact: `[lens, coach]` |
|
|
30
|
+
| `input_artifacts` | Yes | array | `[GC1]` — requires Stack Profile |
|
|
31
|
+
| `created` | Yes | date | ISO date when artifact was created |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Artifact Safety Rule
|
|
36
|
+
|
|
37
|
+
**GC2 must not contain source code, file contents, or secrets (NFR9).**
|
|
38
|
+
|
|
39
|
+
Capabilities describe WHAT should exist (categories, practices, standards) — not WHAT currently exists in the codebase. Evidence comparison is Lens's job (GC3), not Atlas's.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Body Schema
|
|
44
|
+
|
|
45
|
+
The Capabilities Manifest is written to `.gyre/capabilities.yaml` with the following structure:
|
|
46
|
+
|
|
47
|
+
```yaml
|
|
48
|
+
gyre_manifest:
|
|
49
|
+
version: string # manifest schema version, e.g., "1.0"
|
|
50
|
+
generated_at: ISO-8601 # generation timestamp
|
|
51
|
+
stack_summary: string # one-line stack description from GC1
|
|
52
|
+
capability_count: integer # total number of capabilities (excluding removed)
|
|
53
|
+
limited_coverage: boolean # true if <20 capabilities generated
|
|
54
|
+
capabilities:
|
|
55
|
+
- id: string # kebab-case identifier, e.g., "health-check-liveness"
|
|
56
|
+
category: string # "observability" | "deployment" | "reliability" | "security"
|
|
57
|
+
name: string # human-readable name
|
|
58
|
+
description: string # 1-3 sentences: what it is + why it matters for THIS stack
|
|
59
|
+
source: string # "standard" | "practice" | "reasoning"
|
|
60
|
+
relevance: string # why this matters for THIS stack specifically
|
|
61
|
+
amended: boolean # true if user-modified via Coach review (GC4)
|
|
62
|
+
removed: boolean # true if user removed via Coach review (GC4)
|
|
63
|
+
provenance:
|
|
64
|
+
standards_referenced: string[] # e.g., ["DORA", "OpenTelemetry", "Google PRR"]
|
|
65
|
+
web_search_performed: boolean
|
|
66
|
+
web_search_date: ISO-8601 # null if web search not performed
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Field Reference
|
|
70
|
+
|
|
71
|
+
| Field | Required | Type | Description |
|
|
72
|
+
|-------|----------|------|-------------|
|
|
73
|
+
| `version` | Yes | string | Schema version for future breaking changes (NFR17) |
|
|
74
|
+
| `generated_at` | Yes | string | ISO-8601 timestamp of generation |
|
|
75
|
+
| `stack_summary` | Yes | string | One-line description of detected stack |
|
|
76
|
+
| `capability_count` | Yes | integer | Total active capabilities (excluding removed) |
|
|
77
|
+
| `limited_coverage` | Yes | boolean | True if fewer than 20 capabilities generated |
|
|
78
|
+
| `capabilities` | Yes | array | List of capability objects |
|
|
79
|
+
| `capabilities[].id` | Yes | string | Unique kebab-case identifier |
|
|
80
|
+
| `capabilities[].category` | Yes | string | Domain category |
|
|
81
|
+
| `capabilities[].name` | Yes | string | Human-readable capability name |
|
|
82
|
+
| `capabilities[].description` | Yes | string | 1-3 sentence description with stack-specific context |
|
|
83
|
+
| `capabilities[].source` | Yes | string | Origin: "standard", "practice", or "reasoning" |
|
|
84
|
+
| `capabilities[].relevance` | Yes | string | Why this capability matters for this specific stack |
|
|
85
|
+
| `capabilities[].amended` | Yes | boolean | True if modified by user during Coach review |
|
|
86
|
+
| `capabilities[].removed` | Yes | boolean | True if removed by user during Coach review |
|
|
87
|
+
| `provenance` | Yes | object | Generation metadata |
|
|
88
|
+
| `provenance.standards_referenced` | Yes | array | Industry standards used |
|
|
89
|
+
| `provenance.web_search_performed` | Yes | boolean | Whether web search enrichment was done |
|
|
90
|
+
| `provenance.web_search_date` | No | string | ISO-8601 date of web search, null if not performed |
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Capability Categories
|
|
95
|
+
|
|
96
|
+
| Category | Description | Typical Count |
|
|
97
|
+
|----------|-------------|:------------:|
|
|
98
|
+
| `observability` | Logging, tracing, metrics, health checks, alerting | 6-10 |
|
|
99
|
+
| `deployment` | CI/CD, containers, orchestration, rollback, IaC | 5-8 |
|
|
100
|
+
| `reliability` | Graceful shutdown, circuit breakers, rate limiting, fault tolerance | 4-6 |
|
|
101
|
+
| `security` | Secrets management, vulnerability scanning, network policies, auth | 3-5 |
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Capability Sources
|
|
106
|
+
|
|
107
|
+
| Source | Meaning | Examples |
|
|
108
|
+
|--------|---------|---------|
|
|
109
|
+
| `standard` | Derived from a named industry framework | DORA metrics, OpenTelemetry SDK, Google PRR checklist |
|
|
110
|
+
| `practice` | Common industry practice found via web search or domain expertise | Structured logging with correlation IDs, multi-stage Docker builds |
|
|
111
|
+
| `reasoning` | Derived from stack analysis — Atlas inferred this is relevant | "gRPC health checking protocol" inferred from gRPC + Kubernetes stack |
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Artifact Location
|
|
116
|
+
|
|
117
|
+
- **Path:** `.gyre/capabilities.yaml` (relative to project root, or service root in monorepo)
|
|
118
|
+
- **Caching:** The manifest file IS the cache — re-runs load it, no regeneration unless explicit (NFR10)
|
|
119
|
+
- **Amendment persistence:** Coach writes amendments directly to this file via GC4
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Downstream Consumption
|
|
124
|
+
|
|
125
|
+
| Consumer | Purpose |
|
|
126
|
+
|----------|---------|
|
|
127
|
+
| **Lens** (readiness-analyst) | Compares each capability against filesystem evidence to identify absences — what's missing, not just what's misconfigured |
|
|
128
|
+
| **Coach** (review-coach) | Presents capabilities for user review — keep/remove/edit. Captures amendments written back via GC4 |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Example
|
|
133
|
+
|
|
134
|
+
```yaml
|
|
135
|
+
---
|
|
136
|
+
contract: GC2
|
|
137
|
+
type: artifact
|
|
138
|
+
source_agent: atlas
|
|
139
|
+
source_workflow: model-generation
|
|
140
|
+
target_agents: [lens, coach]
|
|
141
|
+
input_artifacts: [GC1]
|
|
142
|
+
created: 2026-03-22
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
gyre_manifest:
|
|
146
|
+
version: "1.0"
|
|
147
|
+
generated_at: "2026-03-22T14:30:00Z"
|
|
148
|
+
stack_summary: "Node.js Express web service on AWS EKS via GitHub Actions"
|
|
149
|
+
capability_count: 24
|
|
150
|
+
limited_coverage: false
|
|
151
|
+
capabilities:
|
|
152
|
+
- id: "structured-logging"
|
|
153
|
+
category: "observability"
|
|
154
|
+
name: "Structured JSON Logging"
|
|
155
|
+
description: "Application logs in structured JSON format with correlation IDs for request tracing. Essential for EKS workloads where CloudWatch Logs Insights or Elasticsearch are used for log analysis."
|
|
156
|
+
source: "standard"
|
|
157
|
+
relevance: "Node.js services on EKS need structured logs for CloudWatch Logs Insights queries and cross-service correlation."
|
|
158
|
+
amended: false
|
|
159
|
+
removed: false
|
|
160
|
+
- id: "health-check-liveness"
|
|
161
|
+
category: "observability"
|
|
162
|
+
name: "Kubernetes Liveness Probe"
|
|
163
|
+
description: "HTTP endpoint (typically /healthz) that Kubernetes uses to detect stuck containers and restart them. Must check application responsiveness, not downstream dependencies."
|
|
164
|
+
source: "standard"
|
|
165
|
+
relevance: "EKS requires liveness probes to auto-heal unresponsive pods. Express apps need a lightweight /healthz endpoint."
|
|
166
|
+
amended: false
|
|
167
|
+
removed: false
|
|
168
|
+
provenance:
|
|
169
|
+
standards_referenced: ["DORA", "OpenTelemetry", "Google PRR"]
|
|
170
|
+
web_search_performed: true
|
|
171
|
+
web_search_date: "2026-03-22"
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Validation Rules
|
|
177
|
+
|
|
178
|
+
A valid GC2 artifact must:
|
|
179
|
+
|
|
180
|
+
1. Have all required frontmatter fields present and correctly typed
|
|
181
|
+
2. Have all required body fields present and non-empty
|
|
182
|
+
3. Contain NO source code, file contents, or secrets
|
|
183
|
+
4. Have `version` as a string (semantic version format)
|
|
184
|
+
5. Have each capability with all required fields present
|
|
185
|
+
6. Have `category` as one of: "observability", "deployment", "reliability", "security"
|
|
186
|
+
7. Have `source` as one of: "standard", "practice", "reasoning"
|
|
187
|
+
8. Have unique `id` values across all capabilities
|
|
188
|
+
9. Have `capability_count` matching the actual count of non-removed capabilities
|
|
189
|
+
10. Have `limited_coverage` set to true if capability_count < 20
|