convoke-agents 3.0.4 β†’ 3.2.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 (92) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/README.md +14 -13
  3. package/_bmad/bme/_artifacts/config.yaml +15 -0
  4. package/_bmad/bme/_artifacts/workflows/bmad-migrate-artifacts/SKILL.md +6 -0
  5. package/_bmad/bme/_artifacts/workflows/bmad-migrate-artifacts/steps/step-01-scope.md +138 -0
  6. package/_bmad/bme/_artifacts/workflows/bmad-migrate-artifacts/steps/step-02-dryrun.md +199 -0
  7. package/_bmad/bme/_artifacts/workflows/bmad-migrate-artifacts/steps/step-03-resolve.md +174 -0
  8. package/_bmad/bme/_artifacts/workflows/bmad-migrate-artifacts/steps/step-04-execute.md +213 -0
  9. package/_bmad/bme/_artifacts/workflows/bmad-migrate-artifacts/workflow.md +85 -0
  10. package/_bmad/bme/_artifacts/workflows/bmad-portfolio-status/SKILL.md +6 -0
  11. package/_bmad/bme/_artifacts/workflows/bmad-portfolio-status/steps/step-01-scan.md +131 -0
  12. package/_bmad/bme/_artifacts/workflows/bmad-portfolio-status/steps/step-02-explore.md +131 -0
  13. package/_bmad/bme/_artifacts/workflows/bmad-portfolio-status/steps/step-03-recommend.md +149 -0
  14. package/_bmad/bme/_artifacts/workflows/bmad-portfolio-status/workflow.md +78 -0
  15. package/_bmad/bme/_gyre/guides/GYRE-TEAM-GUIDE.md +506 -0
  16. package/_bmad/bme/_portability/skills/bmad-export-skill/SKILL.md +6 -0
  17. package/_bmad/bme/_portability/skills/bmad-export-skill/workflow.md +74 -0
  18. package/_bmad/bme/_portability/skills/bmad-generate-catalog/SKILL.md +6 -0
  19. package/_bmad/bme/_portability/skills/bmad-generate-catalog/workflow.md +42 -0
  20. package/_bmad/bme/_portability/skills/bmad-seed-catalog/SKILL.md +6 -0
  21. package/_bmad/bme/_portability/skills/bmad-seed-catalog/workflow.md +61 -0
  22. package/_bmad/bme/_portability/skills/bmad-validate-exports/SKILL.md +6 -0
  23. package/_bmad/bme/_portability/skills/bmad-validate-exports/workflow.md +43 -0
  24. package/_bmad/bme/_team-factory/agents/team-factory.md +128 -0
  25. package/_bmad/bme/_team-factory/config.yaml +13 -0
  26. package/_bmad/bme/_team-factory/lib/cascade-logic.js +184 -0
  27. package/_bmad/bme/_team-factory/lib/collision-detector.js +228 -0
  28. package/_bmad/bme/_team-factory/lib/manifest-tracker.js +214 -0
  29. package/_bmad/bme/_team-factory/lib/spec-differ.js +176 -0
  30. package/_bmad/bme/_team-factory/lib/spec-parser.js +201 -0
  31. package/_bmad/bme/_team-factory/lib/spec-writer.js +128 -0
  32. package/_bmad/bme/_team-factory/lib/types/factory-types.js +193 -0
  33. package/_bmad/bme/_team-factory/lib/utils/csv-utils.js +62 -0
  34. package/_bmad/bme/_team-factory/lib/utils/naming-utils.js +45 -0
  35. package/_bmad/bme/_team-factory/lib/validators/end-to-end-validator.js +898 -0
  36. package/_bmad/bme/_team-factory/lib/writers/activation-validator.js +175 -0
  37. package/_bmad/bme/_team-factory/lib/writers/config-appender.js +192 -0
  38. package/_bmad/bme/_team-factory/lib/writers/config-creator.js +215 -0
  39. package/_bmad/bme/_team-factory/lib/writers/csv-appender.js +118 -0
  40. package/_bmad/bme/_team-factory/lib/writers/csv-creator.js +190 -0
  41. package/_bmad/bme/_team-factory/lib/writers/registry-appender.js +372 -0
  42. package/_bmad/bme/_team-factory/lib/writers/registry-writer.js +409 -0
  43. package/_bmad/bme/_team-factory/module-help.csv +3 -0
  44. package/_bmad/bme/_team-factory/schemas/schema-independent.json +147 -0
  45. package/_bmad/bme/_team-factory/schemas/schema-sequential.json +242 -0
  46. package/_bmad/bme/_team-factory/templates/team-spec-template.yaml +86 -0
  47. package/_bmad/bme/_team-factory/workflows/add-team/step-01-scope.md +105 -0
  48. package/_bmad/bme/_team-factory/workflows/add-team/step-02-connect.md +110 -0
  49. package/_bmad/bme/_team-factory/workflows/add-team/step-03-review.md +116 -0
  50. package/_bmad/bme/_team-factory/workflows/add-team/step-04-generate.md +160 -0
  51. package/_bmad/bme/_team-factory/workflows/add-team/step-05-validate.md +146 -0
  52. package/_bmad/bme/_team-factory/workflows/step-00-route.md +76 -0
  53. package/_bmad/bme/_vortex/config.yaml +4 -4
  54. package/_bmad/bme/_vortex/guides/VORTEX-TEAM-GUIDE.md +441 -0
  55. package/package.json +17 -8
  56. package/scripts/archive.js +26 -45
  57. package/scripts/convoke-check.js +88 -0
  58. package/scripts/convoke-doctor.js +303 -4
  59. package/scripts/install-gyre-agents.js +0 -0
  60. package/scripts/lib/artifact-utils.js +2182 -0
  61. package/scripts/lib/portfolio/formatters/markdown-formatter.js +40 -0
  62. package/scripts/lib/portfolio/formatters/terminal-formatter.js +56 -0
  63. package/scripts/lib/portfolio/portfolio-engine.js +572 -0
  64. package/scripts/lib/portfolio/rules/artifact-chain-rule.js +156 -0
  65. package/scripts/lib/portfolio/rules/conflict-resolver.js +99 -0
  66. package/scripts/lib/portfolio/rules/frontmatter-rule.js +42 -0
  67. package/scripts/lib/portfolio/rules/git-recency-rule.js +69 -0
  68. package/scripts/lib/types.js +122 -0
  69. package/scripts/migrate-artifacts.js +439 -0
  70. package/scripts/portability/catalog-generator.js +353 -0
  71. package/scripts/portability/classify-skills.js +646 -0
  72. package/scripts/portability/convoke-export.js +522 -0
  73. package/scripts/portability/export-engine.js +1133 -0
  74. package/scripts/portability/generate-adapters.js +79 -0
  75. package/scripts/portability/manifest-csv.js +147 -0
  76. package/scripts/portability/seed-catalog-repo.js +427 -0
  77. package/scripts/portability/templates/canonical-example.md +102 -0
  78. package/scripts/portability/templates/canonical-format.md +218 -0
  79. package/scripts/portability/templates/readme-template.md +72 -0
  80. package/scripts/portability/test-constants.js +42 -0
  81. package/scripts/portability/validate-classification.js +529 -0
  82. package/scripts/portability/validate-exports.js +348 -0
  83. package/scripts/update/lib/agent-registry.js +35 -0
  84. package/scripts/update/lib/config-merger.js +140 -10
  85. package/scripts/update/lib/migration-runner.js +1 -1
  86. package/scripts/update/lib/refresh-installation.js +293 -8
  87. package/scripts/update/lib/taxonomy-merger.js +138 -0
  88. package/scripts/update/lib/utils.js +27 -1
  89. package/scripts/update/lib/validator.js +114 -4
  90. package/scripts/update/migrations/2.0.x-to-3.1.0.js +50 -0
  91. package/scripts/update/migrations/3.0.x-to-3.1.0.js +41 -0
  92. package/scripts/update/migrations/registry.js +14 -0
@@ -0,0 +1,149 @@
1
+ # Step 3: Recommend
2
+
3
+ ## STEP GOAL:
4
+
5
+ To analyze the original `{{scanOutput}}` from Step 1 and produce 1–3 actionable recommendations based on what the engine found. End with a one-line reminder that the operator can re-run the skill anytime.
6
+
7
+ ## MANDATORY EXECUTION RULES (READ FIRST):
8
+
9
+ ### Universal Rules:
10
+
11
+ - πŸ›‘ NEVER recommend more than 3 items in one round
12
+ - πŸ“– CRITICAL: Read the complete step file before taking any action
13
+ - πŸ“‹ YOU ARE A FACILITATOR producing actionable guidance, not a content generator
14
+ - βœ… YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
15
+
16
+ ### Role Reinforcement:
17
+
18
+ - βœ… Recommendations are based on the ORIGINAL `{{scanOutput}}` from Step 1, NOT any filtered re-runs from Step 2
19
+ - βœ… Each recommendation must be concrete and actionable (a command to run, a decision to make)
20
+ - βœ… If the portfolio is healthy, say so honestly β€” don't manufacture recommendations
21
+
22
+ ### Step-Specific Rules:
23
+
24
+ - 🎯 Focus ONLY on producing recommendations and the closing reminder
25
+ - 🚫 FORBIDDEN to use Step 2's filtered re-runs as the recommendation source
26
+ - 🚫 FORBIDDEN to recommend more than 3 items
27
+ - πŸ’¬ Rank by impact: empty-repo short-circuit (Rule 0) β†’ WIP radar (Rule 1) β†’ governance under 50% (Rule 2) β†’ attributable-but-ungoverned (Rule 3) β†’ unknown phase (Rule 4) β†’ all-clear (Rule 5)
28
+
29
+ ## EXECUTION PROTOCOLS:
30
+
31
+ - 🎯 Apply the 5 recommendation rules in priority order, capping at 3
32
+ - πŸ’Ύ Use simple substring matching against `{{scanOutput}}`, not regex parsing
33
+ - 🚫 FORBIDDEN to load any other step β€” this is the final step
34
+
35
+ ## CONTEXT BOUNDARIES:
36
+
37
+ - Available context: `{{scanOutput}}` from Step 1 (the original markdown output, NOT any filtered re-runs)
38
+ - Focus: produce 1–3 recommendations + reminder
39
+ - Limits: this is the final step; the workflow ends after this
40
+ - Dependencies: Steps 1 and 2 must have run
41
+
42
+ ## Sequence of Instructions (Do not deviate, skip, or optimize)
43
+
44
+ ### 1. Apply the recommendation rules
45
+
46
+ Walk `{{scanOutput}}` and apply these rules in priority order. Stop after 3 recommendations are collected.
47
+
48
+ **Rule 0 β€” Empty repo short-circuit (highest priority, ALWAYS check first)**
49
+
50
+ Look for a line matching: `Total: N artifacts | Governed: G | Ungoverned: U | Unattributed: X` and extract `N`.
51
+
52
+ If `N === 0` (the project has zero artifacts):
53
+ - Skip ALL other rules. Recommend ONLY: `"Your portfolio is empty β€” no artifacts found in scope. Run a discovery workflow (e.g. lets create a product requirements document) or scaffold your first artifact to populate it."`
54
+ - Return immediately. Do NOT evaluate Rules 1–5.
55
+
56
+ This guard prevents the false positive where Rule 2 ("governance < 50%") would otherwise trigger on an empty repo (0/0 = 0%) and recommend running migration on a project with nothing to migrate.
57
+
58
+ **Rule 1 β€” WIP radar (highest priority for non-empty repos)**
59
+
60
+ Look for a line matching: `WIP: N active (threshold: M) -- sorted by last activity`.
61
+
62
+ If found:
63
+ - The presence of this line means `N > M` already (the engine only emits the line when the cap is exceeded).
64
+ - Extract the active count `N`, threshold `M`, and the next line listing the active initiatives. The list is comma-separated.
65
+ - **The engine sorts this list newest activity FIRST**, so the LAST initiative in the comma-separated list is the STALEST (oldest activity).
66
+ - Recommend: `"Consider retiring or pausing the stalest initiative ({last_in_list}). You have {N} active (WIP threshold: {M})."`
67
+
68
+ **Rule 2 β€” Governance health < 50%**
69
+
70
+ Look for a line matching: `Governance: G/T artifacts governed (P%)`.
71
+
72
+ If found AND `P < 50`:
73
+ - Recommend: `"Run 'bmad-migrate-artifacts' to govern your artifacts. Current governance is {P}% β€” running migration would bring it close to 100%."`
74
+
75
+ **Rule 3 β€” Attributable but ungoverned**
76
+
77
+ Look for a line matching: `N files attributable to existing initiatives but ungoverned β€” run convoke-migrate-artifacts to govern them`.
78
+
79
+ If found AND Rule 2 was NOT triggered:
80
+ - Recommend: `"{N} files are attributable to existing initiatives but not yet governed. Run 'bmad-migrate-artifacts' to give them proper frontmatter."`
81
+
82
+ **Dedup rule:** Both Rule 2 and Rule 3 ultimately recommend running `bmad-migrate-artifacts`. To avoid telling the operator the same thing twice, **Rule 3 is suppressed entirely if Rule 2 already fired in this round**, regardless of whether you're at the recommendation cap. If Rule 2 was NOT triggered (e.g., governance is at 80% but there are still some attributable-but-ungoverned files), Rule 3 stands on its own.
83
+
84
+ **Rule 4 β€” Unknown phase initiatives**
85
+
86
+ Find every line in `{{scanOutput}}` containing the substring `| Unknown phase:` (note the leading pipe-and-space β€” that ensures we match the column boundary in the markdown table, not an inline mention elsewhere).
87
+
88
+ For each matching line, extract the initiative name from column 1 of that table row (the first `|`-delimited cell, trimmed). Collect all matches into a list.
89
+
90
+ If the list is non-empty:
91
+ - Recommend: `"These initiatives have unknown phase: {comma-separated list}. Review them to either set explicit phase in frontmatter or close them out."`
92
+
93
+ (Substring-anchor reasoning: `Unknown phase:` is generated by `conflict-resolver.js` as the `nextAction.value` for initiatives that have artifacts but no detectable phase. The markdown formatter places it in column 4 of the table, so the leading `| ` is unique to that column position and acts as a structural marker without requiring a regex.)
94
+
95
+ **Rule 5 β€” All clear**
96
+
97
+ If NO recommendations were collected by the previous rules:
98
+ - Recommend: `"Portfolio looks healthy. No action needed right now."`
99
+
100
+ ### 2. Display the recommendations
101
+
102
+ Display:
103
+
104
+ > ### 🎯 Recommendations
105
+ >
106
+ > Based on the portfolio scan, here's what I'd suggest:
107
+ >
108
+ > 1. {first recommendation}
109
+ > 2. {second recommendation} ← only if applicable
110
+ > 3. {third recommendation} ← only if applicable
111
+
112
+ Cap at 3 recommendations. If only 1 or 2 are applicable, show only those.
113
+
114
+ ### 3. Closing reminder
115
+
116
+ Display:
117
+
118
+ > πŸ’‘ Run `bmad-portfolio-status` anytime to refresh this view.
119
+
120
+ ### 4. End the workflow
121
+
122
+ This is the final step. There is no next step to load. The workflow ends here in all paths.
123
+
124
+ ## CRITICAL STEP COMPLETION NOTE
125
+
126
+ This is the final step. Do NOT auto-load any other file. Do NOT prompt for further input.
127
+
128
+ ---
129
+
130
+ ## 🚨 SYSTEM SUCCESS/FAILURE METRICS
131
+
132
+ ### βœ… SUCCESS:
133
+
134
+ - Recommendations generated from `{{scanOutput}}` (the ORIGINAL Step 1 output, not Step 2 filtered re-runs)
135
+ - Capped at 3
136
+ - Ranked by priority (Rule 0 empty-repo short-circuit β†’ WIP β†’ governance% β†’ attributable β†’ unknown phase β†’ all-clear)
137
+ - Each recommendation is concrete and actionable
138
+ - Closing reminder shown
139
+ - Workflow ends here
140
+
141
+ ### ❌ SYSTEM FAILURE:
142
+
143
+ - Using Step 2's filtered re-runs as the recommendation source
144
+ - Showing more than 3 recommendations
145
+ - Manufacturing recommendations when the portfolio is healthy (use Rule 5 instead)
146
+ - Auto-loading another step file
147
+ - Recommending vague things like "review your portfolio" without a concrete action
148
+
149
+ **Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,78 @@
1
+ ---
2
+ main_config: '{project-root}/_bmad/bmm/config.yaml'
3
+ ---
4
+
5
+ # Portfolio Status (Guided)
6
+
7
+ **Goal:** Show the operator a portfolio view of all initiatives through a guided 3-step conversation: scan & present β†’ interactive exploration β†’ actionable recommendations. The skill wraps `scripts/lib/portfolio/portfolio-engine.js` so the operator gets context, drill-down options, and recommendations instead of a static markdown dump.
8
+
9
+ **Your Role:** In addition to your name, communication_style, and persona, you are a portfolio status assistant for the Convoke artifact governance system. You orchestrate a conversation around the read-only portfolio engine β€” the engine produces the data, you frame it and offer drill-down paths. You never mutate the repo. When the operator picks an exploration option, you re-invoke the engine with different flags and present the new output verbatim. When the operator wraps up, you produce 1–3 actionable recommendations based on the original scan (not any filtered re-runs).
10
+
11
+ ---
12
+
13
+ ## WORKFLOW ARCHITECTURE
14
+
15
+ This uses **step-file architecture** for disciplined execution:
16
+
17
+ ### Core Principles
18
+
19
+ - **Micro-file Design**: Each step of the overall goal is a self-contained instruction file that you will adhere to one file at a time as directed
20
+ - **Just-In-Time Loading**: Only one current step file will be loaded and followed to completion β€” never load future step files until told to do so
21
+ - **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed
22
+ - **Working-Memory State**: Like its sibling `bmad-migrate-artifacts`, this skill produces NO output artifact (it's a viewer + recommender, not a builder). State (`{{scanOutput}}`) is held in the agent's working memory across step boundaries, NOT persisted to a file. See "No Output Artifact" below.
23
+ - **Read-Only**: This skill never mutates the repo. The engine reads files, parses metadata, and prints. There are no commits, no file writes, no destructive operations.
24
+
25
+ ### Step Processing Rules
26
+
27
+ 1. **READ COMPLETELY**: Always read the entire step file before taking any action
28
+ 2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
29
+ 3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
30
+ 4. **CHECK CONTINUATION**: Step 2 is an exploration LOOP β€” it only exits when the operator picks `[5] Done`
31
+ 5. **HOLD STATE IN MEMORY**: Capture `{{scanOutput}}` from Step 1 in working memory and preserve it across the Step 2 loop and into Step 3
32
+ 6. **LOAD NEXT**: When directed, read fully and follow the next step file
33
+
34
+ ### Critical Rules (NO EXCEPTIONS)
35
+
36
+ - πŸ›‘ **NEVER** load multiple step files simultaneously
37
+ - πŸ“– **ALWAYS** read entire step file before execution
38
+ - 🚫 **NEVER** skip steps or optimize the sequence
39
+ - 🎯 **ALWAYS** follow the exact instructions in the step file
40
+ - ⏸️ **ALWAYS** halt at menus and wait for user input
41
+ - πŸ“‹ **NEVER** create mental todo lists from future steps
42
+ - πŸ‘€ **NEVER** filter, reformat, or "improve" the engine's output β€” present it verbatim
43
+ - 🎯 **ALWAYS** base Step 3 recommendations on the ORIGINAL `{{scanOutput}}` from Step 1, NOT any filtered re-runs from Step 2
44
+
45
+ ### No Output Artifact
46
+
47
+ This skill is structurally identical to its sibling `bmad-migrate-artifacts` in this regard: no `outputFile:` frontmatter field, no `templates/` directory, no `stepsCompleted[]` persistence. State is in working memory only. The skill is purely a read-only viewer + recommender β€” there's nothing to "build up" across steps.
48
+
49
+ **Resumability:** if the workflow is interrupted between Step 1 and Step 3, the operator just re-runs the skill. The Step 1 scan is fast (< 5 seconds per NFR1), so restarting is cheap.
50
+
51
+ ---
52
+
53
+ ## INITIALIZATION SEQUENCE
54
+
55
+ ### 1. Configuration Loading
56
+
57
+ Load and read full config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
58
+
59
+ - `project_name`, `output_folder`, `user_name`, `communication_language`, `document_output_language`
60
+ - βœ… YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
61
+
62
+ ### 2. Pre-flight Check
63
+
64
+ Verify that `_bmad/_config/taxonomy.yaml` exists. If it does NOT exist, display:
65
+
66
+ > 🚨 **Taxonomy missing**
67
+ >
68
+ > The artifact governance taxonomy file is not yet bootstrapped. The portfolio engine requires it to attribute artifacts to initiatives. Run `bmad-migrate-artifacts` (or `convoke-update`) to create it.
69
+ >
70
+ > Once the taxonomy exists, run this skill again.
71
+
72
+ Then HALT permanently β€” do NOT proceed to Step 1.
73
+
74
+ (This pre-flight wording matches the engine's own error message in step-01-scan.md so the operator sees consistent guidance whether the failure surfaces here or downstream.)
75
+
76
+ ### 3. First Step EXECUTION
77
+
78
+ Read fully and follow: `./steps/step-01-scan.md` to begin the workflow.