convoke-agents 3.0.4 → 3.1.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 CHANGED
@@ -7,6 +7,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ---
9
9
 
10
+ ## [3.1.0] - 2026-04-06
11
+
12
+ ### Added
13
+
14
+ - **Artifact Governance Migration** (`convoke-migrate-artifacts`) — Full transactional migration pipeline that renames artifacts to `{initiative}-{type}[-qualifier][-date].md` convention, injects frontmatter metadata, updates internal links, and generates a governance ADR. Supports dry-run (default), `--apply` with interactive confirmation, `--force` for automation, `--include` for scope control, and `--verbose` for cross-references.
15
+ - **Portfolio Intelligence** (`convoke-portfolio`) — Read-only initiative portfolio showing phase, status, next action, and context for every initiative. Features 4 inference rules (frontmatter, artifact-chain, git-recency, conflict-resolver), degraded mode for ungoverned artifacts, governance health score, WIP overload radar, `--filter` prefix filtering, `--sort last-activity`, `--verbose` inference trace, and terminal + markdown output formats.
16
+ - **Taxonomy Configuration** (`_bmad/_config/taxonomy.yaml`) — Single source of truth for initiative IDs, artifact types, and historical name aliases. Created automatically by `convoke-update` (migration 2.0.x/3.0.x-to-3.1.0) or `convoke-migrate-artifacts`.
17
+ - **convoke-doctor taxonomy validation** — 6 new health checks: file exists, valid YAML, structure, ID format, no duplicates, no initiative/type collisions.
18
+ - **convoke-update taxonomy merger** — Automatic taxonomy creation on upgrade from pre-3.1.0. Merges platform entries without overwriting user additions. Promotes user initiative IDs to platform when they become official (FR42).
19
+ - **convoke-check** (`npm run check`) — Local CI mirror that runs lint + unit + integration + Jest lib tests before push. Prevents CI failures from reaching GitHub Actions.
20
+ - **Workflow frontmatter adoption** — `bmad-create-prd` and `bmad-create-epics-and-stories` templates now include governance frontmatter fields (initiative, artifact_type, status, created, schema_version). Graceful degradation when taxonomy absent.
21
+ - **BMAD portfolio skill** (`.claude/skills/bmad-portfolio-status/`) — Thin wrapper invoking `convoke-portfolio --markdown` for chat/skill context.
22
+ - **Artifact rename map** — `artifact-rename-map.md` generated during migration with old-to-new filename mapping.
23
+ - **Governance ADR** — Migration generates `adr-artifact-governance-convention-{date}.md` documenting the naming convention and supersedes the previous repo organization ADR.
24
+
25
+ ### Changed
26
+
27
+ - **Frontmatter schema v1** — All governed artifacts include: `initiative`, `artifact_type`, `created` (ISO date), `schema_version: 1`. Optional: `status` (draft/validated/superseded/active).
28
+ - **Shell injection prevention** — All `execSync` calls migrated to `execFileSync` with argument arrays across `artifact-utils.js` and `ensureCleanTree`.
29
+ - **convoke-doctor** — Now exports `checkTaxonomy` for testability; uses `require.main === module` guard.
30
+
31
+ ### Infrastructure
32
+
33
+ - **320+ tests** across unit (Node built-in), integration, and Jest lib suites
34
+ - **50 FRs and 22 NFRs** addressed across 18 stories in 5 epics
35
+ - **5 retrospectives** with compounding process improvements
36
+
37
+ ---
38
+
10
39
  ## [3.0.0] - 2026-03-25
11
40
 
12
41
  ### Added
package/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
  Agent teams for complex systems
11
11
  ```
12
12
 
13
- [![Version](https://img.shields.io/badge/version-3.0.0-blue)](https://github.com/amalik/convoke-agents)
13
+ [![Version](https://img.shields.io/badge/version-3.0.4-blue)](https://github.com/amalik/convoke-agents)
14
14
  [![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
15
15
 
16
16
  </div>
@@ -260,22 +260,25 @@ The [Enhance Guide](_bmad/bme/_enhance/guides/ENHANCE-GUIDE.md) documents the co
260
260
  **Everything (Vortex + Gyre):**
261
261
 
262
262
  ```bash
263
- npm install convoke-agents && npx -p convoke-agents convoke-install
263
+ npm install convoke-agents@latest
264
+ npx convoke-install
264
265
  ```
265
266
 
266
267
  **Vortex only:**
267
268
 
268
269
  ```bash
269
- npm install convoke-agents && npx -p convoke-agents convoke-install-vortex
270
+ npm install convoke-agents@latest
271
+ npx convoke-install-vortex
270
272
  ```
271
273
 
272
274
  **Gyre only:**
273
275
 
274
276
  ```bash
275
- npm install convoke-agents && npx -p convoke-agents convoke-install-gyre
277
+ npm install convoke-agents@latest
278
+ npx convoke-install-gyre
276
279
  ```
277
280
 
278
- Something not working? Run `npx -p convoke-agents convoke-doctor` or check the [FAQ](docs/faq.md).
281
+ Something not working? Run `npx convoke-doctor` or check the [FAQ](docs/faq.md).
279
282
 
280
283
  ### Personalize
281
284
 
@@ -382,18 +385,16 @@ Teams and Skills are peer module types — both installable, both independent. C
382
385
  ## Updating
383
386
 
384
387
  ```bash
385
- npx -p convoke-agents convoke-version # Check current version
386
- npx -p convoke-agents convoke-update --dry-run # Preview changes
387
- npx -p convoke-agents convoke-update # Apply update (auto-backup)
388
- npx -p convoke-agents convoke-doctor # Diagnose issues
388
+ npm install convoke-agents@latest # Get the latest package
389
+ npx convoke-version # Check current version
390
+ npx convoke-update --dry-run # Preview changes
391
+ npx convoke-update # Apply update (auto-backup)
392
+ npx convoke-doctor # Diagnose issues
389
393
  ```
390
394
 
391
395
  Your data in `_bmad-output/` and `.gyre/` is never touched. Automatic backups are created before every update.
392
396
 
393
- > **Tip:** If `npx convoke-update` reports "Already up to date" but you know a newer version exists, npx may be serving a cached copy. Force the latest with:
394
- > ```bash
395
- > npx -p convoke-agents@latest convoke-update --yes
396
- > ```
397
+ > **Important:** `npm install convoke-agents` (without `@latest`) won't cross major version boundaries. If you're on v2.x, you must use `npm install convoke-agents@latest` to get v3.x.
397
398
 
398
399
  See [UPDATE-GUIDE.md](UPDATE-GUIDE.md) for migration paths and troubleshooting.
399
400
 
@@ -0,0 +1,506 @@
1
+ # The Gyre Deep Dive — Production Readiness Discovery
2
+
3
+ **Team:** Gyre Pattern (4 Agents, 7 Workflows, 4 Handoff Contracts)
4
+ **Module:** Convoke (bme)
5
+ **Version:** 1.0.0
6
+ **Last Updated:** 2026-04-05
7
+
8
+ ---
9
+
10
+ ## What This Guide Covers
11
+
12
+ The per-agent user guides tell you *how to use Scout, Atlas, Lens, and Coach individually*. This guide tells you *how the team works together* — the pipeline logic, what flows between agents, what good artifacts look like, how modes change the experience, and where teams get stuck.
13
+
14
+ If you've read the individual user guides, you're ready for this.
15
+
16
+ ---
17
+
18
+ ## The Gyre at a Glance
19
+
20
+ Gyre is a production readiness discovery system. It analyzes your codebase to find **what's missing before you ship** — not bugs, not code quality, but absence. Missing health checks. Missing rollback strategies. Missing observability that would have caught last week's outage.
21
+
22
+ ```
23
+ Scout 🔎 Atlas 📐 Lens 🔬 Coach 🏋️
24
+ Detect → Model → Analyze → Review
25
+ (stack) (capabilities) (absences) (feedback)
26
+ ▲ │
27
+ └──────── GC4 feedback ────────┘
28
+ ```
29
+
30
+ **The big idea:** You can't find what's missing unless you first know what *should* exist. Scout identifies your stack. Atlas generates a capabilities model tailored to that stack. Lens compares the model against your codebase and reports absences. Coach helps you review, customize, and improve the model over time.
31
+
32
+ ---
33
+
34
+ ## How to Read This Guide
35
+
36
+ This guide is organized around five layers:
37
+
38
+ 1. **The Pipeline** — How artifacts flow from one agent to the next
39
+ 2. **Walkthrough: A Complete Gyre Analysis** — Step-by-step through a realistic scenario
40
+ 3. **Artifact Examples** — What good output looks like at each stage
41
+ 4. **Scenarios & Entry Points** — Where to start depending on your situation
42
+ 5. **Anti-Patterns** — Where teams go wrong and how to avoid it
43
+
44
+ ---
45
+
46
+ ## Part 1: The Pipeline
47
+
48
+ ### Forward Flow (GC1-GC3)
49
+
50
+ The core pipeline moves artifacts forward through three handoff contracts:
51
+
52
+ | Contract | From | To | What Flows | In Plain English |
53
+ |----------|------|-----|-----------|------------------|
54
+ | **GC1** | Scout 🔎 | Atlas 📐, Lens 🔬 | Stack Profile — technology categories, archetype, confidence | "Here's what your project is built with" |
55
+ | **GC2** | Atlas 📐 | Lens 🔬, Coach 🏋️ | Capabilities Manifest — 20+ capabilities relevant to this stack | "Here's what a project like yours should have" |
56
+ | **GC3** | Lens 🔬 | Coach 🏋️ | Findings Report — absences with severity, confidence, evidence | "Here's what's missing, ranked by how much it matters" |
57
+
58
+ ### Feedback Loop (GC4)
59
+
60
+ | Contract | From | To | What Flows | In Plain English |
61
+ |----------|------|-----|-----------|------------------|
62
+ | **GC4** | Coach 🏋️ | Atlas 📐 | Amendment flags + missed-gap feedback | "The user corrected the model — respect these changes next time" |
63
+
64
+ ### The Privacy Boundary
65
+
66
+ A critical design principle: **artifacts contain categories, not contents.**
67
+
68
+ - GC1 (Stack Profile) records "Node.js, Express, Kubernetes" — never file paths, version numbers, or dependency names
69
+ - GC2 (Capabilities Manifest) records what *should* exist — never what *does* exist
70
+ - GC3 (Findings Report) records what's *absent* with evidence summaries — never source code
71
+
72
+ This means `.gyre/` artifacts are safe to commit to your repo. The model is shareable.
73
+
74
+ ---
75
+
76
+ ## Part 2: Walkthrough — A Complete Gyre Analysis
77
+
78
+ Let's walk through analyzing a Node.js Express API deployed on AWS EKS via GitHub Actions. Your team is preparing for the first production launch and wants to know what you're missing.
79
+
80
+ ### Stage 1: Scout — Detect the Stack
81
+
82
+ **What you do:** Invoke Scout and run **[FA] Full Analysis** (recommended for first time) or **[DS] Detect Stack** (standalone detection).
83
+
84
+ Scout scans your project filesystem looking for technology indicators:
85
+
86
+ | What Scout Looks For | Files Examined |
87
+ |---------------------|---------------|
88
+ | Primary language/framework | `package.json`, `go.mod`, `requirements.txt`, `Cargo.toml`, `pom.xml` |
89
+ | Container orchestration | `Dockerfile`, `docker-compose.yaml`, Kubernetes manifests, ECS task definitions |
90
+ | CI/CD platform | `.github/workflows/`, `.gitlab-ci.yml`, `Jenkinsfile` |
91
+ | Observability tooling | OpenTelemetry configs, Prometheus configs, Datadog agent configs |
92
+ | Cloud provider | Terraform files, CloudFormation templates, Pulumi programs |
93
+ | Communication protocols | gRPC protos, REST controllers, message queue configs |
94
+
95
+ **Guard questions:** After detection, Scout asks up to 3 targeted questions to resolve ambiguities. These aren't a generic questionnaire — they're derived from what Scout *couldn't* determine from the filesystem alone.
96
+
97
+ Example guard questions for our scenario:
98
+ - "I found both a Dockerfile and Kubernetes manifests. Is this container-based deployment or do you also use serverless?" → *container-based*
99
+ - "I see Express routes but no gRPC protos. Is HTTP/REST your primary communication protocol?" → *yes*
100
+
101
+ **Monorepo handling:** If Scout detects multiple service boundaries (e.g., `/api/`, `/worker/`, `/frontend/`), it asks you to select which service to analyze. Each service gets its own `.gyre/` directory.
102
+
103
+ **What you get (GC1):**
104
+
105
+ ```yaml
106
+ stack_profile:
107
+ primary_language: "Node.js"
108
+ primary_framework: "Express"
109
+ secondary_stacks: []
110
+ container_orchestration: "Kubernetes"
111
+ ci_cd_platform: "GitHub Actions"
112
+ observability_tooling: ["OpenTelemetry", "Prometheus"]
113
+ cloud_provider: "AWS"
114
+ communication_protocol: "HTTP/REST"
115
+ guard_answers:
116
+ deployment_model: "container-based"
117
+ detection_confidence: "high"
118
+ detection_summary: "Node.js Express web service deployed on AWS EKS
119
+ via GitHub Actions. Instrumented with OpenTelemetry and Prometheus.
120
+ REST API."
121
+ ```
122
+
123
+ ### Stage 2: Atlas — Generate the Capabilities Model
124
+
125
+ **What you do:** In Full Analysis mode, Atlas runs automatically after Scout. Standalone: invoke Atlas and run **[GM] Generate Model**.
126
+
127
+ Atlas loads the GC1 Stack Profile and generates a capabilities manifest — a list of everything a production-grade project *like yours* should have. Atlas draws from:
128
+
129
+ - **Industry standards:** DORA metrics, OpenTelemetry, Google PRR checklist
130
+ - **Web search:** Current best practices for your specific stack combination
131
+ - **Contextual reasoning:** Inferences from your stack profile (e.g., "gRPC + Kubernetes = gRPC health checking protocol is relevant")
132
+
133
+ **What matters here:** Atlas generates capabilities across four domains:
134
+
135
+ | Domain | What It Covers | Typical Count |
136
+ |--------|---------------|:------------:|
137
+ | **Observability** | Logging, tracing, metrics, health checks, alerting | 6-10 |
138
+ | **Deployment** | CI/CD, containers, orchestration, rollback, IaC | 5-8 |
139
+ | **Reliability** | Graceful shutdown, circuit breakers, rate limiting, fault tolerance | 4-6 |
140
+ | **Security** | Secrets management, vulnerability scanning, network policies, auth | 3-5 |
141
+
142
+ Each capability has a `source` tag explaining where it came from:
143
+
144
+ | Source | Meaning | Example |
145
+ |--------|---------|---------|
146
+ | `standard` | From a named industry framework | "Kubernetes liveness probe" from Google PRR |
147
+ | `practice` | Common industry practice | "Multi-stage Docker builds" |
148
+ | `reasoning` | Atlas inferred this from your stack | "gRPC health checking protocol" inferred from gRPC + Kubernetes |
149
+
150
+ **The 20-capability threshold:** Atlas aims for 20+ capabilities. If it generates fewer, it sets `limited_coverage: true` in the manifest and warns you. This typically happens with unusual or niche stacks where fewer established practices exist.
151
+
152
+ **What you get (GC2):** A capabilities manifest at `.gyre/capabilities.yaml` with 20-30 capabilities, each explaining what it is, why it matters for *your specific stack*, and where the recommendation came from.
153
+
154
+ ### Stage 3: Lens — Find What's Missing
155
+
156
+ **What you do:** In Full Analysis, Lens runs automatically. Standalone: invoke Lens and run **[AG] Analyze Gaps**.
157
+
158
+ Lens loads the GC2 Capabilities Manifest and systematically checks each capability against your actual codebase. For each capability, Lens:
159
+
160
+ 1. **Searches for evidence** using Glob (file patterns), Grep (content patterns), and Read (config inspection)
161
+ 2. **Classifies the result:** present (evidence found), absent (no evidence), or partial (config exists but incomplete)
162
+ 3. **Tags each finding** with source, confidence, and severity
163
+
164
+ **The two finding sources:**
165
+
166
+ | Source | Meaning | Example |
167
+ |--------|---------|---------|
168
+ | `static-analysis` | File-level evidence (found or absent) | "Grep for 'healthz', 'liveness': no matches" |
169
+ | `contextual-model` | Inferred from the capabilities manifest | "No explicit rollback strategy detected" |
170
+
171
+ **Severity levels:**
172
+
173
+ | Severity | Meaning | Example |
174
+ |----------|---------|---------|
175
+ | `blocker` | Must fix before production | No Kubernetes liveness probe on EKS |
176
+ | `recommended` | Should fix, significant risk reduction | No rollback mechanism in deployment config |
177
+ | `nice-to-have` | Good practice, low risk if absent | Custom Prometheus metrics dashboard |
178
+
179
+ **Cross-domain correlation — the compound findings:**
180
+
181
+ This is where Gyre gets interesting. After analyzing each domain independently, Lens looks for *compound patterns* — two absences from different domains that amplify each other's risk.
182
+
183
+ Example: "No health checks" (observability) + "No rollback strategy" (deployment) = **unrecoverable deployment failure risk**. Neither finding alone is catastrophic, but together they mean a bad deployment goes undetected AND can't be reversed.
184
+
185
+ **Sanity check:** Lens runs a sanity check on its own findings. If more than 80% of capabilities are flagged as absent, something is probably wrong with the model (not the project). Lens warns you and suggests reviewing the capabilities manifest with Coach.
186
+
187
+ **What you get (GC3):** A findings report at `.gyre/findings.yaml` with:
188
+ - Individual findings sorted by severity (blockers first)
189
+ - Compound findings that reveal cross-domain risk amplification
190
+ - Evidence summaries explaining what was searched and what was found/absent
191
+ - A summary with counts: X blockers, Y recommended, Z nice-to-have
192
+
193
+ ### Stage 4: Coach — Review and Customize
194
+
195
+ **What you do:** In Full Analysis, Coach runs as the final stage. Standalone: invoke Coach and run **[RF] Review Findings** or **[RM] Review Model**.
196
+
197
+ Coach walks you through two review activities:
198
+
199
+ **Findings Review:** Coach presents each finding severity-first (blockers, then recommended, then nice-to-have) and asks for your assessment. You know your stack better than any model — a "blocker" might be handled by a system Coach can't see, or a "nice-to-have" might be critical for your compliance requirements.
200
+
201
+ **Model Review:** Coach walks you through each capability and asks: keep, remove, edit, or skip? Your amendments are written directly to `capabilities.yaml` with flags:
202
+
203
+ | Action | What Happens | Persistence |
204
+ |--------|-------------|-------------|
205
+ | **Keep** | Capability stays as-is | Default state |
206
+ | **Remove** | `removed: true` flag added | Persists across regeneration — Atlas will never re-add it |
207
+ | **Edit** | `amended: true` flag + original values preserved | Persists across regeneration — Atlas preserves your edits |
208
+ | **Add** | New capability with `source: "user-added"` | Persists across regeneration |
209
+
210
+ **Missed-gap feedback:** After review, Coach asks: "Did Gyre miss anything you know about?" Your answers go into `.gyre/feedback.yaml` and inform Atlas on the next regeneration.
211
+
212
+ **The commit workflow:** Coach explains that committing `.gyre/` artifacts shares the model with your team. Amendments and feedback improve the model for everyone — it's a collaborative knowledge base.
213
+
214
+ ---
215
+
216
+ ## Part 3: Artifact Examples
217
+
218
+ ### Stack Profile (Scout's GC1 Output)
219
+
220
+ ```yaml
221
+ ---
222
+ contract: GC1
223
+ type: artifact
224
+ source_agent: scout
225
+ source_workflow: stack-detection
226
+ target_agents: [atlas, lens]
227
+ input_artifacts: []
228
+ created: 2026-04-05
229
+ ---
230
+
231
+ stack_profile:
232
+ primary_language: "Node.js"
233
+ primary_framework: "Express"
234
+ secondary_stacks: []
235
+ container_orchestration: "Kubernetes"
236
+ ci_cd_platform: "GitHub Actions"
237
+ observability_tooling: ["OpenTelemetry", "Prometheus"]
238
+ cloud_provider: "AWS"
239
+ communication_protocol: "HTTP/REST"
240
+ guard_answers:
241
+ deployment_model: "container-based"
242
+ detection_confidence: "high"
243
+ detection_summary: "Node.js Express web service deployed on AWS EKS
244
+ via GitHub Actions. Instrumented with OpenTelemetry and Prometheus.
245
+ REST API."
246
+ ```
247
+
248
+ Notice what's NOT here: no file paths, no version numbers, no dependency names. Just technology categories.
249
+
250
+ ### Capabilities Manifest (Atlas's GC2 Output — Excerpt)
251
+
252
+ ```yaml
253
+ gyre_manifest:
254
+ version: "1.0"
255
+ generated_at: "2026-04-05T14:30:00Z"
256
+ stack_summary: "Node.js Express web service on AWS EKS via GitHub Actions"
257
+ capability_count: 24
258
+ limited_coverage: false
259
+ capabilities:
260
+ - id: "structured-logging"
261
+ category: "observability"
262
+ name: "Structured JSON Logging"
263
+ description: "Application logs in structured JSON format with
264
+ correlation IDs for request tracing. Essential for EKS workloads
265
+ where CloudWatch Logs Insights is used for analysis."
266
+ source: "standard"
267
+ relevance: "Node.js services on EKS need structured logs for
268
+ CloudWatch Logs Insights queries and cross-service correlation."
269
+ amended: false
270
+ removed: false
271
+
272
+ - id: "health-check-liveness"
273
+ category: "observability"
274
+ name: "Kubernetes Liveness Probe"
275
+ description: "HTTP endpoint (typically /healthz) that Kubernetes
276
+ uses to detect stuck containers and restart them."
277
+ source: "standard"
278
+ relevance: "EKS requires liveness probes to auto-heal unresponsive
279
+ pods. Express apps need a lightweight /healthz endpoint."
280
+ amended: false
281
+ removed: false
282
+
283
+ - id: "graceful-shutdown"
284
+ category: "reliability"
285
+ name: "Graceful Shutdown Handler"
286
+ description: "Process handles SIGTERM by draining connections,
287
+ completing in-flight requests, and closing DB pools before exit."
288
+ source: "practice"
289
+ relevance: "Kubernetes sends SIGTERM before killing pods. Without
290
+ graceful shutdown, active requests are dropped mid-response."
291
+ amended: false
292
+ removed: false
293
+ provenance:
294
+ standards_referenced: ["DORA", "OpenTelemetry", "Google PRR"]
295
+ web_search_performed: true
296
+ web_search_date: "2026-04-05"
297
+ ```
298
+
299
+ Each capability explains *why it matters for your specific stack* — not just what it is in general.
300
+
301
+ ### Findings Report (Lens's GC3 Output — Excerpt)
302
+
303
+ ```yaml
304
+ gyre_findings:
305
+ version: "1.0"
306
+ analyzed_at: "2026-04-05T15:00:00Z"
307
+ mode: "crisis"
308
+ stack_summary: "Node.js Express web service on AWS EKS via GitHub Actions"
309
+ summary:
310
+ blockers: 2
311
+ recommended: 5
312
+ nice_to_have: 3
313
+ total: 10
314
+ novelty_ratio: "7 of 10 contextual"
315
+ findings:
316
+ - id: "OBS-001"
317
+ domain: "observability"
318
+ severity: "blocker"
319
+ source: "static-analysis"
320
+ confidence: "high"
321
+ capability_ref: "health-check-liveness"
322
+ description: "No Kubernetes liveness probe detected. EKS pods will
323
+ not be auto-healed when unresponsive."
324
+ evidence_summary: "Glob for **/health*, **/liveness*: no files found.
325
+ Grep for 'healthz', 'liveness': no matches in source files. No
326
+ HEALTHCHECK in Dockerfile."
327
+ severity_rationale: "EKS requires liveness probes for auto-healing.
328
+ Without them, stuck pods persist until manual intervention."
329
+ - id: "DEP-003"
330
+ domain: "deployment"
331
+ severity: "recommended"
332
+ source: "static-analysis"
333
+ confidence: "medium"
334
+ capability_ref: "rollback-strategy"
335
+ description: "No rollback mechanism detected in deployment config."
336
+ evidence_summary: "Grep for 'rollback', 'revision', 'undo' in k8s/
337
+ and .github/workflows/: no matches."
338
+ severity_rationale: "Rolling updates without explicit rollback
339
+ increase recovery time from failed deployments."
340
+ compound_findings:
341
+ - id: "COMPOUND-001"
342
+ domain: "cross-domain"
343
+ severity: "blocker"
344
+ source: "contextual-model"
345
+ confidence: "high"
346
+ capability_ref: ["health-check-liveness", "rollback-strategy"]
347
+ description: "No health checks combined with no rollback creates
348
+ unrecoverable deployment failure risk."
349
+ evidence_summary: "Combines OBS-001 (no liveness probe) with DEP-003
350
+ (no rollback). Failed deployments cannot be detected by K8s and
351
+ cannot be reversed."
352
+ related_findings: ["OBS-001", "DEP-003"]
353
+ combined_impact: "Without liveness probes, K8s cannot detect that a
354
+ new deployment is unhealthy. Without rollback, the failed deployment
355
+ persists. Together: a bad deploy goes undetected and unrecoverable
356
+ until manual intervention."
357
+ sanity_check:
358
+ passed: true
359
+ warnings: []
360
+ ```
361
+
362
+ The `novelty_ratio` ("7 of 10 contextual") tells you how many findings come from the contextual model vs. generic static analysis. A high contextual ratio means Gyre is earning its keep — it's not just running a linter.
363
+
364
+ ---
365
+
366
+ ## Part 4: Scenarios & Entry Points
367
+
368
+ ### "First time running Gyre on this project"
369
+
370
+ **Start with:** Scout 🔎 → **[FA] Full Analysis**
371
+ **What happens:** The full pipeline runs end-to-end (Scout → Atlas → Lens → Coach). Gyre detects *Crisis mode* (no `.gyre/` directory exists) and runs everything from scratch.
372
+
373
+ This is the recommended starting point. You get a complete picture in one session.
374
+
375
+ ### "I ran Gyre before and want to check progress"
376
+
377
+ **Start with:** Scout 🔎 → **[FA] Full Analysis** or Lens 🔬 → **[AG] Analyze Gaps**
378
+ **What happens:** Gyre detects *Anticipation mode* (`.gyre/` exists). Model generation is skipped (the capabilities manifest serves as cache). Only gap analysis and review run — faster and focused on what changed.
379
+
380
+ ### "I want to regenerate the model from scratch"
381
+
382
+ **Start with:** Atlas 📐 → **[GM] Generate Model** in *Regeneration mode*
383
+ **What happens:** Fresh model generation replaces the cached manifest. Atlas still respects your GC4 amendments — removed capabilities stay removed, edited capabilities persist.
384
+
385
+ ### "I changed my stack significantly"
386
+
387
+ **Start with:** Scout 🔎 → **[DS] Detect Stack**
388
+ **What happens:** Scout re-scans and produces a new GC1 Stack Profile. Then run Atlas → Lens → Coach to get updated findings.
389
+
390
+ Use this after adding Kubernetes, switching CI providers, adopting a new observability stack, or any major infrastructure change.
391
+
392
+ ### "I just want to review and customize the model"
393
+
394
+ **Start with:** Coach 🏋️ → **[RM] Review Model**
395
+ **What happens:** Coach loads the existing capabilities manifest and walks you through it. Keep, remove, edit, or add capabilities. Your changes persist across future Gyre runs.
396
+
397
+ ### "I want to see what changed since last analysis"
398
+
399
+ **Start with:** Lens 🔬 → **[DR] Delta Report**
400
+ **What happens:** Lens compares the current findings against `.gyre/findings.previous.yaml` and shows you what's new, what's resolved, and what changed severity.
401
+
402
+ ---
403
+
404
+ ## Part 5: Anti-Patterns
405
+
406
+ ### 1. "Running Gyre Without Reading the Findings"
407
+
408
+ **The mistake:** Running Full Analysis, seeing "2 blockers, 5 recommended, 3 nice-to-have," and moving on without reviewing with Coach.
409
+
410
+ **Why it fails:** Gyre's model is a hypothesis about what your stack needs. Without Coach's review, you're trusting the model blindly. The model might flag something your team intentionally omitted, or miss something only you know about.
411
+
412
+ **The fix:** Always run Coach's review after analysis. It takes 10-15 minutes and dramatically improves model accuracy for future runs. Your amendments persist — this is an investment, not a chore.
413
+
414
+ ### 2. "Treating Severity as Absolute"
415
+
416
+ **The mistake:** Treating every "blocker" as a launch-blocking issue and every "nice-to-have" as ignorable.
417
+
418
+ **Why it fails:** Severity is contextual. A "blocker" finding about missing Kubernetes liveness probes is irrelevant if you're deploying to Lambda. A "nice-to-have" finding about structured logging becomes critical if you're under a compliance audit.
419
+
420
+ **The fix:** Use Coach's review to adjust severity based on your context. Lens assigns severity based on general best practices; you assign severity based on your reality.
421
+
422
+ ### 3. "Ignoring Compound Findings"
423
+
424
+ **The mistake:** Reading individual findings one by one and missing the compound patterns.
425
+
426
+ **Why it fails:** Individual findings tell you what's absent. Compound findings tell you what's *dangerous* — they surface risk amplification that single-domain analysis can't see. "No health checks" is a problem. "No health checks AND no rollback" is a crisis.
427
+
428
+ **The fix:** Read compound findings first. They're the highest-signal items in the report because they represent the intersection of two weaknesses.
429
+
430
+ ### 4. "Deleting `.gyre/` to Start Over"
431
+
432
+ **The mistake:** Deleting the `.gyre/` directory every time you want a fresh analysis.
433
+
434
+ **Why it fails:** `.gyre/` contains your amendments (GC4). Deleting it throws away every keep/remove/edit decision you made during Coach review. Gyre has to start from zero.
435
+
436
+ **The fix:** If you want a fresh model, use Atlas's Regeneration mode. It rebuilds the model while respecting your amendments. If you truly need to start from scratch (e.g., wrong project), then deletion is appropriate — but know what you're losing.
437
+
438
+ ### 5. "Using Gyre as a Linter"
439
+
440
+ **The mistake:** Expecting Gyre to find code quality issues, bugs, or style violations.
441
+
442
+ **Why it fails:** Gyre does *absence detection*, not code analysis. It finds what's missing (no health check endpoint), not what's wrong (health check endpoint returns 200 when database is down). These are complementary but different tools.
443
+
444
+ **The fix:** Use Gyre for production readiness gaps. Use linters, SAST tools, and code review for code quality. Gyre answers "are we ready to ship?" not "is our code good?"
445
+
446
+ ### 6. "Not Committing `.gyre/` Artifacts"
447
+
448
+ **The mistake:** Adding `.gyre/` to `.gitignore` or never committing the artifacts.
449
+
450
+ **Why it fails:** Gyre artifacts are designed to be shared. When one team member reviews and customizes the model (amendments + feedback), those improvements benefit everyone. Without committing, each team member starts from scratch.
451
+
452
+ **The fix:** Commit `.gyre/` to your repo. The privacy boundary ensures no sensitive data is included. Model amendments and feedback become shared team knowledge.
453
+
454
+ ### 7. "Skipping Guard Questions"
455
+
456
+ **The mistake:** Rushing through Scout's guard questions with default answers.
457
+
458
+ **Why it fails:** Guard answers flow downstream to Atlas and Lens. If you tell Scout your deployment model is "container-based" when it's actually serverless, Atlas generates irrelevant capabilities (Kubernetes probes for a Lambda function) and Lens searches for things that don't apply.
459
+
460
+ **The fix:** Answer guard questions accurately. They're asked because Scout genuinely couldn't determine the answer from the filesystem. Your 30 seconds of accuracy save 30 minutes of irrelevant findings.
461
+
462
+ ---
463
+
464
+ ## Gyre + Vortex: Inter-Module Routing
465
+
466
+ Gyre findings can feed into Vortex product discovery when readiness gaps have strategic implications:
467
+
468
+ | If Gyre Finds... | Consider in Vortex... | Agent | Why |
469
+ |---|---|---|---|
470
+ | Critical readiness gaps blocking launch | Product Vision or Contextualize Scope | Emma 🎯 | Readiness gaps may redefine product scope |
471
+ | Findings that challenge assumptions | Hypothesis Engineering | Liam 💡 | Readiness findings are testable hypotheses |
472
+ | Feedback suggesting missing capabilities | User Interview | Isla 🔍 | Validate missed gaps with real users |
473
+
474
+ This routing is advisory — you decide whether a Gyre finding warrants Vortex action.
475
+
476
+ ---
477
+
478
+ ## Quick Reference: Agent Cheat Sheet
479
+
480
+ | Agent | Stream | Core Question | Primary Workflows | Key Output |
481
+ |-------|--------|--------------|-------------------|------------|
482
+ | Scout 🔎 | Detect | What's this project built with? | Stack Detection, Full Analysis | GC1 Stack Profile |
483
+ | Atlas 📐 | Model | What should a project like this have? | Model Generation, Accuracy Validation | GC2 Capabilities Manifest |
484
+ | Lens 🔬 | Analyze | What's missing? | Gap Analysis, Delta Report | GC3 Findings Report |
485
+ | Coach 🏋️ | Review | Is the model right for *our* stack? | Model Review (findings + capabilities) | GC4 Amendments + Feedback |
486
+
487
+ ## Three Modes of Operation
488
+
489
+ | Mode | Trigger | What Runs | When to Use |
490
+ |------|---------|-----------|-------------|
491
+ | **Crisis** | No `.gyre/` directory | Full pipeline from scratch | First run on a project |
492
+ | **Anticipation** | `.gyre/` exists | Gap analysis + review only (model cached) | Routine check-ins |
493
+ | **Regeneration** | Explicit user request | Fresh model generation + full pipeline | After stack changes or when model feels stale |
494
+
495
+ ---
496
+
497
+ ## Further Reading
498
+
499
+ - **Per-agent guides:** See `SCOUT-USER-GUIDE.md` through `COACH-USER-GUIDE.md` in this directory for invocation details, menu options, and troubleshooting
500
+ - **Compass Routing Reference:** `_bmad/bme/_gyre/compass-routing-reference.md` — the authoritative routing table
501
+ - **Handoff Contract Schemas:** `_bmad/bme/_gyre/contracts/` — the exact artifact formats
502
+ - **`.gyre/` directory:** Your project's artifacts — safe to commit, designed to be shared
503
+
504
+ ---
505
+
506
+ *Gyre doesn't tell you what's wrong with your code. It tells you what's missing from your operations — and gives you the model to track it.*
@@ -33,7 +33,7 @@ workflows:
33
33
  - learning-card
34
34
  - pivot-patch-persevere
35
35
  - vortex-navigation
36
- version: 3.0.4
36
+ version: 3.1.0
37
37
  user_name: '{user}'
38
38
  communication_language: en
39
39
  party_mode_enabled: true