@geraldmaron/construct 1.2.3 → 1.3.1

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 (505) hide show
  1. package/README.md +7 -10
  2. package/bin/construct +235 -209
  3. package/bin/construct-postinstall.mjs +0 -21
  4. package/commands/work/optimize-prompts.md +1 -1
  5. package/examples/distribution/sources/adr.md +2 -2
  6. package/examples/seed-observations/decisions.md +1 -1
  7. package/lib/artifact-loop-core.mjs +412 -0
  8. package/lib/artifact-manifest.mjs +6 -0
  9. package/lib/artifact-release-gate.mjs +115 -49
  10. package/lib/audit-rules.mjs +2 -4
  11. package/lib/audit-skills.mjs +32 -20
  12. package/lib/audit-specialists.mjs +44 -26
  13. package/lib/auto-docs.mjs +6 -5
  14. package/lib/brand-prose.mjs +3 -3
  15. package/lib/brand-tokens.mjs +2 -2
  16. package/lib/certification/artifact-fixtures.mjs +4 -1
  17. package/lib/certification/demo-parity.mjs +6 -32
  18. package/lib/certification/real-llm-scenarios.mjs +58 -13
  19. package/lib/certification/role-cards.mjs +7 -6
  20. package/lib/certification/role-overlays.mjs +4 -4
  21. package/lib/certification/runner.mjs +9 -2
  22. package/lib/certification/skill-inventory.mjs +34 -22
  23. package/lib/certification/skill-scenarios.mjs +21 -8
  24. package/lib/certification/specialist-contracts.mjs +4 -3
  25. package/lib/certification/specialist-scenarios.mjs +7 -6
  26. package/lib/certification/status.mjs +5 -4
  27. package/lib/cli-commands.mjs +55 -54
  28. package/lib/comment-lint.mjs +1 -5
  29. package/lib/completions.mjs +20 -2
  30. package/lib/config/legacy-config-migration.mjs +90 -24
  31. package/lib/config/schema.mjs +5 -5
  32. package/lib/config/source-targets.mjs +80 -0
  33. package/lib/contracts/validate.mjs +119 -51
  34. package/lib/decisions/golden.mjs +3 -2
  35. package/lib/decisions/registry.mjs +11 -6
  36. package/lib/demo-project.mjs +188 -0
  37. package/lib/demo-recording.mjs +9 -34
  38. package/lib/demo-script.mjs +2 -2
  39. package/lib/demo-surface.mjs +13 -131
  40. package/lib/demo-tour-renderer.mjs +92 -0
  41. package/lib/demo.mjs +69 -54
  42. package/lib/diagram-export.mjs +63 -14
  43. package/lib/doctor/cli.mjs +12 -2
  44. package/lib/doctor/source-checkout.mjs +3 -4
  45. package/lib/doctor/watchers/consistency.mjs +148 -43
  46. package/lib/doctor/watchers/credential-parity.mjs +97 -0
  47. package/lib/doctor/watchers/mcp-protocol.mjs +1 -1
  48. package/lib/doctor/watchers/service-health.mjs +4 -32
  49. package/lib/document-export.mjs +73 -9
  50. package/lib/document-extract.mjs +10 -198
  51. package/lib/embed/artifact.mjs +2 -3
  52. package/lib/embed/cli.mjs +1 -1
  53. package/lib/embed/config.mjs +1 -2
  54. package/lib/embed/customer-profiles.mjs +1 -1
  55. package/lib/embed/daemon.mjs +5 -6
  56. package/lib/embed/demand-fetch.mjs +114 -2
  57. package/lib/embed/docs-lifecycle.mjs +9 -5
  58. package/lib/embed/intake-metrics.mjs +2 -2
  59. package/lib/embed/notifications.mjs +2 -3
  60. package/lib/embed/recommendation-store.mjs +25 -22
  61. package/lib/embed/role-framing.mjs +4 -9
  62. package/lib/embedded-contract/capability.mjs +4 -2
  63. package/lib/embedded-contract/contract-version.mjs +1 -1
  64. package/lib/env-config.mjs +2 -2
  65. package/lib/flavors/loader.mjs +21 -19
  66. package/lib/graph/build-from-registry.mjs +31 -7
  67. package/lib/graph/staleness.mjs +1 -1
  68. package/lib/headhunt.mjs +82 -35
  69. package/lib/hooks/agent-tracker.mjs +2 -2
  70. package/lib/hooks/config-protection.mjs +1 -1
  71. package/lib/hooks/registry-sync.mjs +3 -3
  72. package/lib/host-capabilities.mjs +5 -5
  73. package/lib/improvement/controller.mjs +2 -2
  74. package/lib/init-unified.mjs +19 -21
  75. package/lib/intake/classify.mjs +26 -0
  76. package/lib/intake/daemon.mjs +2 -3
  77. package/lib/intake/prepare.mjs +10 -3
  78. package/lib/intake/session-prelude.mjs +1 -1
  79. package/lib/intake/tables/creative.mjs +9 -9
  80. package/lib/intake/tables/operations.mjs +4 -4
  81. package/lib/intake/tables/research.mjs +2 -2
  82. package/lib/integrations/intake-integrations.mjs +9 -10
  83. package/lib/knowledge/research-store.mjs +2 -2
  84. package/lib/mcp/server.mjs +104 -61
  85. package/lib/mcp/tool-budget.mjs +1 -46
  86. package/lib/mcp/tool-recovery.mjs +44 -0
  87. package/lib/mcp/tools/artifact-author.mjs +36 -0
  88. package/lib/mcp/tools/find-tool.mjs +86 -0
  89. package/lib/mcp/tools/orchestration-run.mjs +107 -69
  90. package/lib/mcp/tools/project.mjs +4 -3
  91. package/lib/mcp/tools/{profile.mjs → scope.mjs} +54 -52
  92. package/lib/mcp/tools/skills.mjs +39 -22
  93. package/lib/mcp/tools/telemetry.mjs +2 -1
  94. package/lib/mcp/tools/workflow.mjs +1 -1
  95. package/lib/mcp-platform-config.mjs +7 -5
  96. package/lib/migrations/index.mjs +4 -2
  97. package/lib/migrations/v2-unified-registry.mjs +35 -0
  98. package/lib/model-router.mjs +203 -36
  99. package/lib/models/catalog.mjs +25 -9
  100. package/lib/models/execution-capability-profile.mjs +3 -3
  101. package/lib/models/execution-policy.mjs +7 -6
  102. package/lib/models/provider-poll.mjs +18 -4
  103. package/lib/opencode-config.mjs +56 -1
  104. package/lib/opencode-runtime-plugin.mjs +13 -10
  105. package/lib/oracle/artifact-gate.mjs +14 -4
  106. package/lib/oracle/cli.mjs +2 -0
  107. package/lib/oracle/dispatch.mjs +18 -1
  108. package/lib/oracle/execute.mjs +39 -7
  109. package/lib/oracle/index.mjs +1 -1
  110. package/lib/oracle/org-graph.mjs +10 -5
  111. package/lib/oracle/policy.mjs +6 -0
  112. package/lib/oracle/read-model.mjs +103 -6
  113. package/lib/oracle/reconcile.mjs +31 -4
  114. package/lib/oracle/remediation-dispatch.mjs +53 -0
  115. package/lib/oracle/routing.mjs +5 -0
  116. package/lib/oracle/synthesize.mjs +80 -3
  117. package/lib/orchestration/routing-tables.mjs +44 -10
  118. package/lib/orchestration/runtime.mjs +2 -0
  119. package/lib/orchestration/worker.mjs +1 -1
  120. package/lib/orchestration-policy.mjs +351 -62
  121. package/lib/overrides/resolver.mjs +1 -12
  122. package/lib/parity.mjs +37 -11
  123. package/lib/policy/engine.mjs +80 -15
  124. package/lib/prompt-composer.js +51 -15
  125. package/lib/prompt-metadata.mjs +3 -2
  126. package/lib/providers/connection-probe.mjs +58 -0
  127. package/lib/providers/copilot-auth.mjs +1 -1
  128. package/lib/providers/credential-bootstrap.mjs +1 -1
  129. package/lib/providers/op-run.mjs +3 -4
  130. package/lib/providers/secret-resolver.mjs +31 -0
  131. package/lib/publish-tooling.mjs +3 -11
  132. package/lib/publish.mjs +12 -29
  133. package/lib/reconcile/mcp-entry-reconcile.mjs +14 -9
  134. package/lib/reflect.mjs +2 -2
  135. package/lib/registry/agent-manifest.mjs +190 -0
  136. package/lib/registry/assemble.mjs +133 -0
  137. package/lib/registry/catalog.mjs +171 -0
  138. package/lib/registry/cli.mjs +590 -6
  139. package/lib/registry/consolidation.mjs +5 -4
  140. package/lib/registry/docs-sync.mjs +67 -0
  141. package/lib/registry/loader.mjs +147 -0
  142. package/lib/registry/org-io.mjs +76 -0
  143. package/lib/registry/retired-paths.mjs +71 -0
  144. package/lib/registry/surface-map.mjs +5 -7
  145. package/lib/registry/validator.mjs +438 -0
  146. package/lib/research-execution-policy.mjs +173 -0
  147. package/lib/roles/catalog.mjs +4 -9
  148. package/lib/roles/fence.mjs +107 -1
  149. package/lib/roles/flavor-bindings.mjs +68 -0
  150. package/lib/roles/gateway.mjs +140 -29
  151. package/lib/roles/manifest.mjs +22 -13
  152. package/lib/roles/router.mjs +1 -1
  153. package/lib/scopes/enrich.mjs +67 -0
  154. package/lib/scopes/hooks.mjs +12 -0
  155. package/lib/{profiles → scopes}/lifecycle.mjs +70 -70
  156. package/lib/scopes/loader.mjs +104 -0
  157. package/lib/scopes/rebrand.mjs +32 -0
  158. package/lib/scopes/research-profile.mjs +16 -0
  159. package/lib/scopes/teams.mjs +98 -0
  160. package/lib/service-manager.mjs +1 -117
  161. package/lib/setup-prompts.mjs +1 -1
  162. package/lib/setup.mjs +6 -26
  163. package/lib/skills/composition-graph.mjs +98 -0
  164. package/lib/skills/router.mjs +80 -0
  165. package/lib/specialist-contracts.mjs +17 -18
  166. package/lib/specialists/postconditions.mjs +2 -2
  167. package/lib/specialists/prompt-schema.mjs +6 -5
  168. package/lib/specialists/roster.mjs +7 -12
  169. package/lib/specialists/schema.mjs +9 -6
  170. package/lib/status.mjs +25 -90
  171. package/lib/storage/file-lock.mjs +6 -3
  172. package/lib/telemetry/skill-calls.mjs +1 -1
  173. package/lib/templates/doc-presentation.mjs +63 -0
  174. package/lib/templates/visual-requirements.mjs +35 -2
  175. package/lib/term-format.mjs +107 -2
  176. package/lib/test-env-setup.mjs +21 -0
  177. package/lib/ui/components.mjs +42 -0
  178. package/lib/ui/glyphs.mjs +58 -0
  179. package/lib/ui/links.mjs +115 -0
  180. package/lib/ui/theme.mjs +108 -0
  181. package/lib/uninstall/uninstall.mjs +2 -1
  182. package/lib/validator.mjs +45 -8
  183. package/lib/validators/skill-effectiveness.mjs +174 -0
  184. package/lib/validators/skills.mjs +1 -1
  185. package/package.json +12 -8
  186. package/personas/construct.md +12 -3
  187. package/platforms/claude/CLAUDE.md +1 -1
  188. package/rules/common/beads-hygiene.md +52 -0
  189. package/rules/common/neurodivergent-output.md +4 -7
  190. package/rules/common/research.md +2 -0
  191. package/scripts/sync-specialists.mjs +269 -51
  192. package/skills/ai/prompt-optimizer.md +3 -3
  193. package/skills/brand/output-vibe.md +48 -0
  194. package/skills/docs/adr-workflow.md +3 -0
  195. package/skills/docs/backlog-proposal-workflow.md +3 -0
  196. package/skills/docs/codebase-research-workflow.md +5 -2
  197. package/skills/docs/customer-profile-workflow.md +3 -0
  198. package/skills/docs/document-ingest-workflow.md +3 -0
  199. package/skills/docs/evidence-ingest-workflow.md +4 -1
  200. package/skills/docs/init-project.md +1 -1
  201. package/skills/docs/prd-workflow.md +1 -1
  202. package/skills/docs/prfaq-workflow.md +3 -0
  203. package/skills/docs/product-intelligence-workflow.md +4 -1
  204. package/skills/docs/product-signal-workflow.md +3 -0
  205. package/skills/docs/research-workflow.md +13 -6
  206. package/skills/docs/runbook-workflow.md +3 -0
  207. package/skills/docs/strategy-workflow.md +3 -0
  208. package/skills/docs/user-research-workflow.md +6 -3
  209. package/skills/operating/orchestration-reference.md +1 -1
  210. package/skills/roles/{engineer.ai.md → ai-engineer.md} +2 -2
  211. package/skills/roles/architect.ai-systems.md +1 -1
  212. package/skills/roles/architect.data.md +1 -1
  213. package/skills/roles/architect.enterprise.md +1 -1
  214. package/skills/roles/architect.integration.md +1 -1
  215. package/skills/roles/architect.md +1 -1
  216. package/skills/roles/architect.platform.md +1 -1
  217. package/skills/roles/{product-manager.business-strategy.md → business-strategist.md} +3 -3
  218. package/skills/roles/data-analyst.experiment.md +1 -1
  219. package/skills/roles/data-analyst.md +1 -1
  220. package/skills/roles/data-analyst.product-intelligence.md +1 -1
  221. package/skills/roles/data-analyst.product.md +1 -1
  222. package/skills/roles/data-analyst.telemetry.md +1 -1
  223. package/skills/roles/{engineer.data.md → data-engineer.md} +2 -2
  224. package/skills/roles/data-engineer.pipeline.md +2 -2
  225. package/skills/roles/data-engineer.vector-retrieval.md +2 -2
  226. package/skills/roles/data-engineer.warehouse.md +2 -2
  227. package/skills/roles/debugger.md +1 -1
  228. package/skills/roles/designer.accessibility.md +1 -1
  229. package/skills/roles/designer.md +1 -1
  230. package/skills/roles/{reviewer.devil-advocate.md → devil-advocate.md} +2 -2
  231. package/skills/roles/{operator.docs.md → docs-keeper.md} +3 -3
  232. package/skills/roles/engineer.md +3 -7
  233. package/skills/roles/{reviewer.evaluator.md → evaluator.md} +2 -2
  234. package/skills/roles/{researcher.explorer.md → explorer.md} +2 -2
  235. package/skills/roles/{operator.md → operations.md} +2 -5
  236. package/skills/roles/orchestrator.md +1 -1
  237. package/skills/roles/{engineer.platform.md → platform-engineer.md} +2 -2
  238. package/skills/roles/product-manager.ai-product.md +1 -1
  239. package/skills/roles/product-manager.enterprise.md +1 -1
  240. package/skills/roles/product-manager.growth.md +1 -2
  241. package/skills/roles/product-manager.md +1 -2
  242. package/skills/roles/product-manager.platform.md +1 -1
  243. package/skills/roles/product-manager.product.md +1 -1
  244. package/skills/roles/qa.ai-eval.md +1 -1
  245. package/skills/roles/qa.api-contract.md +1 -1
  246. package/skills/roles/qa.data-pipeline.md +1 -1
  247. package/skills/roles/qa.md +1 -1
  248. package/skills/roles/qa.web-ui.md +1 -1
  249. package/skills/roles/{operator.release.md → release-manager.md} +3 -3
  250. package/skills/roles/researcher.md +1 -1
  251. package/skills/roles/reviewer.md +1 -1
  252. package/skills/roles/security.ai.md +1 -1
  253. package/skills/roles/security.appsec.md +1 -1
  254. package/skills/roles/security.cloud.md +1 -1
  255. package/skills/roles/security.legal-compliance.md +1 -1
  256. package/skills/roles/security.md +1 -1
  257. package/skills/roles/security.privacy.md +1 -1
  258. package/skills/roles/security.supply-chain.md +1 -1
  259. package/skills/roles/{operator.sre.md → sre.md} +3 -3
  260. package/skills/roles/{qa.test-automation.md → test-automation.md} +2 -2
  261. package/skills/roles/{reviewer.trace.md → trace-reviewer.md} +2 -2
  262. package/skills/roles/{researcher.ux.md → ux-researcher.md} +2 -2
  263. package/skills/routing.json +18 -0
  264. package/skills/routing.md +1 -1
  265. package/specialists/artifact-manifest.json +2 -1
  266. package/specialists/audit-enrichments.json +14 -14
  267. package/specialists/org/contracts/accessibility-to-qa.json +37 -0
  268. package/specialists/org/contracts/any-to-business-strategist.json +57 -0
  269. package/specialists/org/contracts/any-to-debugger.json +38 -0
  270. package/specialists/org/contracts/any-to-designer.json +33 -0
  271. package/specialists/org/contracts/any-to-docs-keeper.json +34 -0
  272. package/specialists/org/contracts/any-to-explorer.json +39 -0
  273. package/specialists/org/contracts/any-to-sre-incident.json +33 -0
  274. package/specialists/org/contracts/any-to-trace-reviewer.json +32 -0
  275. package/specialists/org/contracts/architect-to-ai-engineer.json +32 -0
  276. package/specialists/org/contracts/architect-to-data-engineer.json +52 -0
  277. package/specialists/org/contracts/architect-to-devil-advocate.json +38 -0
  278. package/specialists/org/contracts/architect-to-engineer.json +34 -0
  279. package/specialists/org/contracts/architect-to-evaluator.json +59 -0
  280. package/specialists/org/contracts/architect-to-legal-compliance.json +55 -0
  281. package/specialists/org/contracts/architect-to-operations.json +45 -0
  282. package/specialists/org/contracts/architect-to-platform-engineer.json +42 -0
  283. package/specialists/org/contracts/business-strategist-to-product-manager.json +39 -0
  284. package/specialists/org/contracts/construct-to-orchestrator.json +36 -0
  285. package/specialists/org/contracts/construct-to-rd-lead.json +53 -0
  286. package/specialists/org/contracts/data-analyst-to-product-manager.json +43 -0
  287. package/specialists/org/contracts/data-engineer-to-platform-engineer.json +36 -0
  288. package/specialists/org/contracts/designer-to-accessibility.json +36 -0
  289. package/specialists/org/contracts/engineer-to-qa.json +34 -0
  290. package/specialists/org/contracts/engineer-to-reviewer.json +52 -0
  291. package/specialists/org/contracts/explorer-to-engineer.json +38 -0
  292. package/specialists/org/contracts/legal-compliance-to-release-manager.json +43 -0
  293. package/specialists/org/contracts/platform-engineer-to-engineer.json +31 -0
  294. package/specialists/org/contracts/product-manager-to-architect.json +71 -0
  295. package/specialists/org/contracts/product-manager-to-data-analyst.json +49 -0
  296. package/specialists/org/contracts/product-manager-to-ux-researcher.json +51 -0
  297. package/specialists/org/contracts/qa-to-release-manager.json +42 -0
  298. package/specialists/org/contracts/qa-to-test-automation.json +42 -0
  299. package/specialists/org/contracts/rd-lead-to-architect.json +38 -0
  300. package/specialists/org/contracts/researcher-to-architect.json +40 -0
  301. package/specialists/org/contracts/researcher-to-product-manager.json +57 -0
  302. package/specialists/org/contracts/reviewer-to-security.json +41 -0
  303. package/specialists/org/contracts/sre-to-release-manager.json +36 -0
  304. package/specialists/org/contracts/test-automation-to-engineer.json +34 -0
  305. package/specialists/org/contracts/trace-reviewer-to-sre.json +41 -0
  306. package/specialists/org/contracts/user-to-construct.json +30 -0
  307. package/specialists/org/groups/engineering-group.json +43 -0
  308. package/specialists/org/groups/governance-group.json +38 -0
  309. package/specialists/org/groups/operations-group.json +41 -0
  310. package/specialists/org/groups/product-group.json +46 -0
  311. package/specialists/org/groups/quality-group.json +42 -0
  312. package/specialists/org/groups/strategy-group.json +41 -0
  313. package/specialists/org/policies/action-approval.json +13 -0
  314. package/specialists/org/policies/agents-routing.json +13 -0
  315. package/specialists/org/policies/architecture.json +20 -0
  316. package/specialists/org/policies/bash-safety.json +13 -0
  317. package/specialists/org/policies/beads-hygiene.json +13 -0
  318. package/specialists/org/policies/bootstrap-state.json +13 -0
  319. package/specialists/org/policies/code-review.json +13 -0
  320. package/specialists/org/policies/coding-style.json +13 -0
  321. package/specialists/org/policies/comments.json +13 -0
  322. package/specialists/org/policies/commit-approval.json +13 -0
  323. package/specialists/org/policies/contract-preconditions.json +13 -0
  324. package/specialists/org/policies/deployment.json +20 -0
  325. package/specialists/org/policies/description.json +14 -0
  326. package/specialists/org/policies/design-approval.json +19 -0
  327. package/specialists/org/policies/doc-ownership.json +13 -0
  328. package/specialists/org/policies/file-path-fence.json +13 -0
  329. package/specialists/org/policies/framing.json +13 -0
  330. package/specialists/org/policies/git-workflow.json +13 -0
  331. package/specialists/org/policies/incident-response.json +15 -0
  332. package/specialists/org/policies/intake-triage.json +15 -0
  333. package/specialists/org/policies/neurodivergent-output.json +13 -0
  334. package/specialists/org/policies/no-fabrication.json +13 -0
  335. package/specialists/org/policies/patterns.json +13 -0
  336. package/specialists/org/policies/quality-gate-approval.json +17 -0
  337. package/specialists/org/policies/release-gates.json +13 -0
  338. package/specialists/org/policies/research-evidence.json +13 -0
  339. package/specialists/org/policies/review-before-change.json +13 -0
  340. package/specialists/org/policies/rollback.json +15 -0
  341. package/specialists/org/policies/scope-change.json +20 -0
  342. package/specialists/org/policies/secret-scan.json +13 -0
  343. package/specialists/org/policies/security-approval.json +17 -0
  344. package/specialists/org/policies/security.json +13 -0
  345. package/specialists/org/policies/session-efficiency.json +13 -0
  346. package/specialists/org/policies/skill-routing.json +13 -0
  347. package/specialists/org/policies/strategic-prioritization.json +17 -0
  348. package/specialists/org/policies/testing.json +13 -0
  349. package/specialists/org/policies/tool-invisibility.json +14 -0
  350. package/specialists/org/scopes/creative.json +54 -0
  351. package/specialists/org/scopes/operations.json +51 -0
  352. package/specialists/org/scopes/research.json +60 -0
  353. package/specialists/org/scopes/rnd.json +81 -0
  354. package/specialists/org/specialists/cx-accessibility.json +69 -0
  355. package/specialists/org/specialists/cx-ai-engineer.json +75 -0
  356. package/specialists/org/specialists/cx-architect.json +89 -0
  357. package/specialists/org/specialists/cx-business-strategist.json +72 -0
  358. package/specialists/org/specialists/cx-data-analyst.json +68 -0
  359. package/specialists/org/specialists/cx-data-engineer.json +71 -0
  360. package/specialists/org/specialists/cx-debugger.json +75 -0
  361. package/specialists/org/specialists/cx-designer.json +85 -0
  362. package/specialists/org/specialists/cx-devil-advocate.json +71 -0
  363. package/specialists/org/specialists/cx-docs-keeper.json +82 -0
  364. package/specialists/org/specialists/cx-engineer.json +106 -0
  365. package/specialists/org/specialists/cx-evaluator.json +69 -0
  366. package/specialists/org/specialists/cx-explorer.json +69 -0
  367. package/specialists/org/specialists/cx-legal-compliance.json +74 -0
  368. package/specialists/org/specialists/cx-operations.json +72 -0
  369. package/specialists/org/specialists/cx-oracle.json +46 -0
  370. package/specialists/org/specialists/cx-orchestrator.json +81 -0
  371. package/specialists/org/specialists/cx-platform-engineer.json +80 -0
  372. package/specialists/org/specialists/cx-product-manager.json +102 -0
  373. package/specialists/org/specialists/cx-qa.json +79 -0
  374. package/specialists/org/specialists/cx-rd-lead.json +73 -0
  375. package/specialists/org/specialists/cx-release-manager.json +77 -0
  376. package/specialists/org/specialists/cx-researcher.json +82 -0
  377. package/specialists/org/specialists/cx-reviewer.json +71 -0
  378. package/specialists/org/specialists/cx-security.json +91 -0
  379. package/specialists/org/specialists/cx-sre.json +94 -0
  380. package/specialists/org/specialists/cx-test-automation.json +69 -0
  381. package/specialists/org/specialists/cx-trace-reviewer.json +69 -0
  382. package/specialists/org/specialists/cx-ux-researcher.json +68 -0
  383. package/specialists/org/teams/accessibility-team.json +39 -0
  384. package/specialists/org/teams/design-team.json +40 -0
  385. package/specialists/org/teams/engineering-team.json +50 -0
  386. package/specialists/org/teams/governance-team.json +41 -0
  387. package/specialists/org/teams/operations-team.json +46 -0
  388. package/specialists/org/teams/product-management-team.json +45 -0
  389. package/specialists/org/teams/quality-team.json +49 -0
  390. package/specialists/org/teams/research-team.json +39 -0
  391. package/specialists/org/teams/strategy-team.json +48 -0
  392. package/specialists/org/teams/ux-research-team.json +39 -0
  393. package/specialists/prompts/_shared/validation-contract.md +1 -1
  394. package/specialists/prompts/_team-template.md +10 -0
  395. package/specialists/prompts/cx-accessibility.md +1 -0
  396. package/specialists/prompts/cx-ai-engineer.md +1 -1
  397. package/specialists/prompts/cx-business-strategist.md +1 -1
  398. package/specialists/prompts/cx-data-engineer.md +1 -1
  399. package/specialists/prompts/cx-designer.md +1 -0
  400. package/specialists/prompts/cx-devil-advocate.md +1 -1
  401. package/specialists/prompts/cx-docs-keeper.md +1 -1
  402. package/specialists/prompts/cx-evaluator.md +1 -1
  403. package/specialists/prompts/cx-explorer.md +1 -1
  404. package/specialists/prompts/cx-operations.md +1 -1
  405. package/specialists/prompts/cx-oracle.md +7 -3
  406. package/specialists/prompts/cx-orchestrator.md +17 -1
  407. package/specialists/prompts/cx-platform-engineer.md +1 -1
  408. package/specialists/prompts/cx-product-manager.md +2 -0
  409. package/specialists/prompts/cx-release-manager.md +1 -1
  410. package/specialists/prompts/cx-researcher.md +7 -4
  411. package/specialists/prompts/cx-sre.md +1 -1
  412. package/specialists/prompts/cx-test-automation.md +2 -2
  413. package/specialists/prompts/cx-trace-reviewer.md +3 -3
  414. package/specialists/prompts/cx-ux-researcher.md +2 -1
  415. package/templates/demos/scripts/architecture-review-adr.json +30 -0
  416. package/templates/demos/scripts/capability-contract.json +25 -0
  417. package/templates/demos/scripts/intake-triage.json +25 -0
  418. package/templates/demos/scripts/profile-doctor-health.json +25 -0
  419. package/templates/demos/tapes/agentic-platforms-prd.tape +2 -2
  420. package/templates/demos/tapes/architecture-review-adr.tape +44 -0
  421. package/templates/demos/tapes/capability-contract.tape +39 -0
  422. package/templates/demos/tapes/intake-triage.tape +39 -0
  423. package/templates/demos/tapes/profile-doctor-health.tape +39 -0
  424. package/templates/distribution/construct-brand.typ +23 -18
  425. package/templates/distribution/construct-decision.typ +1 -1
  426. package/templates/distribution/construct-pdf.typ +1 -1
  427. package/templates/distribution/construct-prd.typ +1 -1
  428. package/templates/distribution/construct-research.typ +1 -1
  429. package/templates/distribution/mermaid-puppeteer.json +8 -0
  430. package/templates/docs/persona-artifact.md +1 -1
  431. package/templates/docs/prd.md +6 -0
  432. package/apps/chat/engine/ai-sdk-agent.mjs +0 -183
  433. package/apps/chat/engine/loop-driver.mjs +0 -211
  434. package/apps/chat/engine/models.mjs +0 -122
  435. package/apps/chat/engine/provider-adapters.mjs +0 -171
  436. package/apps/chat/engine/tools/permission.mjs +0 -54
  437. package/apps/chat/engine/tools/primitives.mjs +0 -180
  438. package/apps/chat/engine/tools/registry.mjs +0 -122
  439. package/apps/chat/engine/turn-controls.mjs +0 -70
  440. package/lib/boundary.mjs +0 -127
  441. package/lib/certification/dashboard-api.mjs +0 -71
  442. package/lib/chat/cli.mjs +0 -333
  443. package/lib/chat/command-suggest.mjs +0 -161
  444. package/lib/chat/commands.mjs +0 -215
  445. package/lib/chat/config.mjs +0 -142
  446. package/lib/chat/context-compactor.mjs +0 -250
  447. package/lib/chat/context-continuation.mjs +0 -253
  448. package/lib/chat/continuation-source.mjs +0 -58
  449. package/lib/chat/demo-guide.mjs +0 -61
  450. package/lib/chat/design-tokens.mjs +0 -91
  451. package/lib/chat/desktop-binary.mjs +0 -81
  452. package/lib/chat/desktop-build.mjs +0 -130
  453. package/lib/chat/desktop-launcher.mjs +0 -133
  454. package/lib/chat/evidence.mjs +0 -145
  455. package/lib/chat/export.mjs +0 -74
  456. package/lib/chat/harness/driver.mjs +0 -91
  457. package/lib/chat/list-picker.mjs +0 -112
  458. package/lib/chat/model-picker.mjs +0 -356
  459. package/lib/chat/openrouter-fallback.mjs +0 -151
  460. package/lib/chat/permission-prompt.mjs +0 -33
  461. package/lib/chat/picker-catalog.mjs +0 -45
  462. package/lib/chat/policy-telemetry.mjs +0 -34
  463. package/lib/chat/present.mjs +0 -246
  464. package/lib/chat/session-context.mjs +0 -39
  465. package/lib/chat/session-persist.mjs +0 -73
  466. package/lib/chat/session-restore.mjs +0 -71
  467. package/lib/chat/session-settings.mjs +0 -53
  468. package/lib/chat/system-prompt.mjs +0 -52
  469. package/lib/chat/transparency.mjs +0 -93
  470. package/lib/chat/tui/color-scheme.mjs +0 -42
  471. package/lib/chat/tui/markdown.mjs +0 -123
  472. package/lib/chat/tui/presentation.mjs +0 -100
  473. package/lib/chat/tui/render.mjs +0 -500
  474. package/lib/chat/tui/turn-block.mjs +0 -284
  475. package/lib/chat/tui/turn-present.mjs +0 -18
  476. package/lib/chat/tui/turn-state.mjs +0 -88
  477. package/lib/chat/tui/usage.mjs +0 -122
  478. package/lib/chat/web-commands.mjs +0 -146
  479. package/lib/chat/web-launcher.mjs +0 -63
  480. package/lib/chat/web-picker-keys.mjs +0 -46
  481. package/lib/chat/web-session.mjs +0 -159
  482. package/lib/config/alias.mjs +0 -57
  483. package/lib/dashboard-demo.mjs +0 -71
  484. package/lib/dashboard-static.mjs +0 -175
  485. package/lib/install/desktop-binary-download.mjs +0 -88
  486. package/lib/profiles/loader.mjs +0 -123
  487. package/lib/profiles/rebrand.mjs +0 -46
  488. package/lib/server/auth.mjs +0 -169
  489. package/lib/server/chat-loop.mjs +0 -622
  490. package/lib/server/chat.mjs +0 -336
  491. package/lib/server/cors.mjs +0 -77
  492. package/lib/server/csrf.mjs +0 -103
  493. package/lib/server/demo-preview.mjs +0 -63
  494. package/lib/server/index.mjs +0 -2641
  495. package/lib/server/insights.mjs +0 -780
  496. package/lib/server/langfuse-login.mjs +0 -58
  497. package/lib/server/rate-limit.mjs +0 -93
  498. package/lib/server/telemetry-login.mjs +0 -100
  499. package/lib/server/webhook.mjs +0 -512
  500. package/specialists/contracts.json +0 -1032
  501. package/specialists/contracts.schema.json +0 -83
  502. package/specialists/policy-inventory.json +0 -188
  503. package/specialists/registry.json +0 -1412
  504. package/specialists/role-manifests.json +0 -217
  505. package/specialists/teams.json +0 -94
@@ -8,7 +8,7 @@ applies_to:
8
8
  - cx-product-manager
9
9
  inherits: product-manager
10
10
  version: 2
11
- profiles:
11
+ scopes:
12
12
  - rnd
13
13
  cap: 1
14
14
  ---
@@ -10,7 +10,7 @@ applies_to:
10
10
  - cx-evaluator
11
11
  inherits: qa
12
12
  version: 2
13
- profiles:
13
+ scopes:
14
14
  - rnd
15
15
  cap: 1
16
16
  ---
@@ -9,7 +9,7 @@ applies_to:
9
9
  - cx-test-automation
10
10
  inherits: qa
11
11
  version: 2
12
- profiles:
12
+ scopes:
13
13
  - rnd
14
14
  cap: 1
15
15
  ---
@@ -9,7 +9,7 @@ applies_to:
9
9
  - cx-test-automation
10
10
  inherits: qa
11
11
  version: 2
12
- profiles:
12
+ scopes:
13
13
  - rnd
14
14
  cap: 1
15
15
  ---
@@ -9,7 +9,7 @@ applies_to:
9
9
  - cx-test-automation
10
10
  inherits: null
11
11
  version: 2
12
- profiles:
12
+ scopes:
13
13
  - rnd
14
14
  cap: 1
15
15
  ---
@@ -9,7 +9,7 @@ applies_to:
9
9
  - cx-test-automation
10
10
  inherits: qa
11
11
  version: 2
12
- profiles:
12
+ scopes:
13
13
  - rnd
14
14
  cap: 1
15
15
  ---
@@ -3,12 +3,12 @@ name: roles-operator-release
3
3
  description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Operator — Release role. Use when reviewing or generating work by cx-release-manager, or when an agent is acting in the Operator — Release role.
4
4
  inputs: [release-plan, changelog]
5
5
  artifactType: role-guidance
6
- role: operator.release
6
+ role: release-manager
7
7
  applies_to:
8
8
  - cx-release-manager
9
- inherits: operator
9
+ inherits: operations
10
10
  version: 2
11
- profiles:
11
+ scopes:
12
12
  - rnd
13
13
  cap: 1
14
14
  ---
@@ -10,7 +10,7 @@ applies_to:
10
10
  - cx-explorer
11
11
  inherits: null
12
12
  version: 2
13
- profiles:
13
+ scopes:
14
14
  - rnd
15
15
  cap: 1
16
16
  ---
@@ -11,7 +11,7 @@ applies_to:
11
11
  - cx-trace-reviewer
12
12
  inherits: null
13
13
  version: 2
14
- profiles:
14
+ scopes:
15
15
  - rnd
16
16
  cap: 1
17
17
  ---
@@ -9,7 +9,7 @@ applies_to:
9
9
  - cx-ai-engineer
10
10
  inherits: security
11
11
  version: 2
12
- profiles:
12
+ scopes:
13
13
  - rnd
14
14
  cap: 1
15
15
  ---
@@ -8,7 +8,7 @@ applies_to:
8
8
  - cx-security
9
9
  inherits: security
10
10
  version: 2
11
- profiles:
11
+ scopes:
12
12
  - rnd
13
13
  cap: 1
14
14
  ---
@@ -8,7 +8,7 @@ applies_to:
8
8
  - cx-security
9
9
  inherits: security
10
10
  version: 2
11
- profiles:
11
+ scopes:
12
12
  - rnd
13
13
  cap: 1
14
14
  ---
@@ -8,7 +8,7 @@ applies_to:
8
8
  - cx-legal-compliance
9
9
  inherits: security
10
10
  version: 2
11
- profiles:
11
+ scopes:
12
12
  - rnd
13
13
  cap: 1
14
14
  ---
@@ -9,7 +9,7 @@ applies_to:
9
9
  - cx-legal-compliance
10
10
  inherits: null
11
11
  version: 2
12
- profiles:
12
+ scopes:
13
13
  - rnd
14
14
  cap: 1
15
15
  ---
@@ -9,7 +9,7 @@ applies_to:
9
9
  - cx-legal-compliance
10
10
  inherits: security
11
11
  version: 2
12
- profiles:
12
+ scopes:
13
13
  - rnd
14
14
  cap: 1
15
15
  ---
@@ -9,7 +9,7 @@ applies_to:
9
9
  - cx-platform-engineer
10
10
  inherits: security
11
11
  version: 2
12
- profiles:
12
+ scopes:
13
13
  - rnd
14
14
  cap: 1
15
15
  ---
@@ -3,12 +3,12 @@ name: roles-operator-sre
3
3
  description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Operator — SRE role. Use when reviewing or generating work by cx-sre, or when an agent is acting in the Operator — SRE role.
4
4
  inputs: [alert-config, slo]
5
5
  artifactType: role-guidance
6
- role: operator.sre
6
+ role: sre
7
7
  applies_to:
8
8
  - cx-sre
9
- inherits: operator
9
+ inherits: operations
10
10
  version: 2
11
- profiles:
11
+ scopes:
12
12
  - rnd
13
13
  cap: 1
14
14
  ---
@@ -3,12 +3,12 @@ name: roles-qa-test-automation
3
3
  description: Surfaces anti-patterns, failure modes, and counter-moves specific to the QA — Test Automation role. Use when reviewing or generating work by cx-test-automation, or when an agent is acting in the QA — Test Automation role.
4
4
  inputs: [test-suite, task-context]
5
5
  artifactType: guidance
6
- role: qa.test-automation
6
+ role: test-automation
7
7
  applies_to:
8
8
  - cx-test-automation
9
9
  inherits: qa
10
10
  version: 2
11
- profiles:
11
+ scopes:
12
12
  - rnd
13
13
  cap: 1
14
14
  ---
@@ -3,12 +3,12 @@ name: roles-reviewer-trace
3
3
  description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Reviewer — Trace role. Use when reviewing or generating work by cx-trace-reviewer, or when an agent is acting in the Reviewer — Trace role.
4
4
  inputs: [trace, task-context]
5
5
  artifactType: guidance
6
- role: reviewer.trace
6
+ role: trace-reviewer
7
7
  applies_to:
8
8
  - cx-trace-reviewer
9
9
  inherits: reviewer
10
10
  version: 2
11
- profiles:
11
+ scopes:
12
12
  - rnd
13
13
  cap: 1
14
14
  ---
@@ -3,12 +3,12 @@ name: roles-researcher-ux
3
3
  description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Researcher — UX role. Use when reviewing or generating work by cx-ux-researcher, or when an agent is acting in the Researcher — UX role.
4
4
  inputs: [user-research, interview-data]
5
5
  artifactType: guidance
6
- role: researcher.ux
6
+ role: ux-researcher
7
7
  applies_to:
8
8
  - cx-ux-researcher
9
9
  inherits: researcher
10
10
  version: 2
11
- profiles:
11
+ scopes:
12
12
  - rnd
13
13
  cap: 1
14
14
  ---
@@ -0,0 +1,18 @@
1
+ {
2
+ "version": 1,
3
+ "routes": [
4
+ { "domain": "exploration", "keywords": ["explore repo", "map codebase", "codebase map", "unfamiliar codebase", "how is this structured"], "path": "exploration/repo-map", "priority": 10 },
5
+ { "domain": "quality-gates", "keywords": ["security scan", "vulnerability", "secrets", "auth audit"], "path": "quality-gates/verify-security", "priority": 10 },
6
+ { "domain": "quality-gates", "keywords": ["code quality", "complexity", "code smell"], "path": "quality-gates/verify-quality", "priority": 10 },
7
+ { "domain": "quality-gates", "keywords": ["change impact", "regression", "what broke"], "path": "quality-gates/verify-change", "priority": 10 },
8
+ { "domain": "docs", "keywords": ["prd", "product requirements", "write a prd"], "path": "docs/prd-workflow", "priority": 20 },
9
+ { "domain": "docs", "keywords": ["adr", "architecture decision"], "path": "docs/adr-workflow", "priority": 20 },
10
+ { "domain": "docs", "keywords": ["research brief", "user research"], "path": "docs/research-workflow", "priority": 15 },
11
+ { "domain": "docs", "keywords": ["strategy", "bets", "non-bets"], "path": "docs/strategy-workflow", "priority": 15 },
12
+ { "domain": "ai", "keywords": ["rag", "retrieval", "vector database", "embedding"], "path": "ai/rag-system", "priority": 10 },
13
+ { "domain": "ai", "keywords": ["orchestration", "handoff contract", "workflow state"], "path": "ai/orchestration-workflow", "priority": 10 },
14
+ { "domain": "security", "keywords": ["pentest", "owasp", "sql injection", "xss"], "path": "security/pentest", "priority": 10 },
15
+ { "domain": "brand", "keywords": ["prd", "write a prd", "product requirements doc"], "path": "brand/output-vibe", "priority": 12 },
16
+ { "domain": "brand", "keywords": ["export", "deck", "pdf", "presentation", "artifact vibe"], "path": "brand/output-vibe", "priority": 5 }
17
+ ]
18
+ }
package/skills/routing.md CHANGED
@@ -145,4 +145,4 @@ Read the matching skill file before responding when the user's request matches t
145
145
 
146
146
  **cx-engineer vs cx-platform-engineer:** cx-engineer builds product features for end users. cx-platform-engineer builds the internal platform: CI/CD, deployment tooling, developer environments, internal APIs, and reliability infrastructure. They operate in distinct domains with different quality bars (user-facing UX vs. developer ergonomics and system reliability). Use cx-platform-engineer when the subject is a platform service, internal tool, build pipeline, or infrastructure component that engineers consume, not end users.
147
147
 
148
- **Platform domain overlays** (`roles/product-manager.platform`, `roles/architect.platform`, `roles/engineer.platform`) apply when the PRODUCT being designed or built is a platform: an API, SDK, or developer surface consumed by other developers. These are skill overlays on PM/architect/engineer roles, not routing to cx-platform-engineer. Route to cx-platform-engineer only when the work is infra/ops, not product.
148
+ **Platform domain overlays** (`roles/product-manager.platform`, `roles/architect.platform`) apply when the **product** being designed is a developer-facing platform (API, SDK, extensibility). **Platform engineering work** (CI/CD, internal tooling, IaC) routes to `cx-platform-engineer` and loads `roles/platform-engineer` per ADR-0047.
@@ -13,12 +13,13 @@
13
13
  },
14
14
  "artifacts": {
15
15
  "prd": {
16
+ "vibeProfile": "construct-modern",
16
17
  "template": "templates/docs/prd.md",
17
18
  "primaryOwners": ["cx-product-manager"],
18
19
  "workflowSkill": "docs/prd-workflow",
19
20
  "toneDefault": "decision-forcing-direct",
20
21
  "toneAllowed": ["decision-forcing-direct", "executive-concise"],
21
- "structureRequirements": ["Problem", "Goals", "Success metrics", "Risks and mitigations"],
22
+ "structureRequirements": ["Problem", "Goals", "Success metrics", "Phases", "Risks and mitigations"],
22
23
  "visualRequirements": [
23
24
  { "id": "prd-user-flow", "check": "artifact-has-mermaid", "diagram": "flowchart" },
24
25
  { "id": "prd-metrics-table", "check": "artifact-table-has-columns", "columns": ["Metric", "Baseline", "Target"] }
@@ -309,32 +309,32 @@
309
309
  "grade": "strong",
310
310
  "gap": "—"
311
311
  },
312
- "engineer.ai": {
312
+ "ai-engineer": {
313
313
  "grade": "strong",
314
314
  "gap": "—"
315
315
  },
316
- "engineer.data": {
316
+ "data-engineer": {
317
317
  "grade": "strong",
318
318
  "gap": "—"
319
319
  },
320
- "engineer.platform": {
320
+ "platform-engineer": {
321
321
  "grade": "strong",
322
322
  "gap": "—",
323
323
  "beadId": "construct-fb8s.7"
324
324
  },
325
- "operator": {
325
+ "operations": {
326
326
  "grade": "strong",
327
327
  "gap": "—"
328
328
  },
329
- "operator.docs": {
329
+ "docs-keeper": {
330
330
  "grade": "strong",
331
331
  "gap": "—"
332
332
  },
333
- "operator.release": {
333
+ "release-manager": {
334
334
  "grade": "strong",
335
335
  "gap": "—"
336
336
  },
337
- "operator.sre": {
337
+ "sre": {
338
338
  "grade": "strong",
339
339
  "gap": "—"
340
340
  },
@@ -350,7 +350,7 @@
350
350
  "grade": "strong",
351
351
  "gap": "—"
352
352
  },
353
- "product-manager.business-strategy": {
353
+ "business-strategist": {
354
354
  "grade": "strong",
355
355
  "gap": "—"
356
356
  },
@@ -386,7 +386,7 @@
386
386
  "grade": "strong",
387
387
  "gap": "—"
388
388
  },
389
- "qa.test-automation": {
389
+ "test-automation": {
390
390
  "grade": "strong",
391
391
  "gap": "—"
392
392
  },
@@ -398,11 +398,11 @@
398
398
  "grade": "strong",
399
399
  "gap": "—"
400
400
  },
401
- "researcher.explorer": {
401
+ "explorer": {
402
402
  "grade": "strong",
403
403
  "gap": "—"
404
404
  },
405
- "researcher.ux": {
405
+ "ux-researcher": {
406
406
  "grade": "strong",
407
407
  "gap": "—"
408
408
  },
@@ -410,15 +410,15 @@
410
410
  "grade": "strong",
411
411
  "gap": "—"
412
412
  },
413
- "reviewer.devil-advocate": {
413
+ "devil-advocate": {
414
414
  "grade": "strong",
415
415
  "gap": "—"
416
416
  },
417
- "reviewer.evaluator": {
417
+ "evaluator": {
418
418
  "grade": "strong",
419
419
  "gap": "—"
420
420
  },
421
- "reviewer.trace": {
421
+ "trace-reviewer": {
422
422
  "grade": "strong",
423
423
  "gap": "—"
424
424
  },
@@ -0,0 +1,37 @@
1
+ {
2
+ "id": "accessibility-to-qa",
3
+ "producer": "cx-accessibility",
4
+ "consumer": "cx-qa",
5
+ "trigger": {
6
+ "riskFlags": [
7
+ "ui",
8
+ "accessibility"
9
+ ]
10
+ },
11
+ "input": {
12
+ "shape": "a11y-findings",
13
+ "mustContain": [
14
+ "findings",
15
+ "wcagCriterion",
16
+ "userImpact"
17
+ ]
18
+ },
19
+ "output": {
20
+ "schema": "lib/contract-schemas/test-report.json",
21
+ "type": "test-report"
22
+ },
23
+ "preconditions": [
24
+ "A11y findings filed against specific elements (file:line) before QA verification"
25
+ ],
26
+ "postconditions": [
27
+ "QA test plan covers keyboard-only and screen-reader paths for each finding",
28
+ "Findings flagged 'unverified' by accessibility get a verified test in QA before close"
29
+ ],
30
+ "description": "",
31
+ "teamBoundary": {
32
+ "crosses": true,
33
+ "producerTeam": "product-group",
34
+ "consumerTeam": "quality-group",
35
+ "requiresApprovalFrom": []
36
+ }
37
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "id": "any-to-business-strategist",
3
+ "producer": "*",
4
+ "consumer": "cx-business-strategist",
5
+ "trigger": {
6
+ "strategy.required": true
7
+ },
8
+ "input": {
9
+ "shape": "strategy-request",
10
+ "mustContain": [
11
+ "goal",
12
+ "marketContext",
13
+ "decisionPending"
14
+ ]
15
+ },
16
+ "output": {
17
+ "shape": "strategic-memo",
18
+ "mustContain": [
19
+ "strategicContext",
20
+ "options",
21
+ "recommendation",
22
+ "evidence",
23
+ "decisionDeadline"
24
+ ]
25
+ },
26
+ "preconditions": [
27
+ "Strategy documents in `.cx/knowledge/decisions/strategy/` reviewed for declared Bets and Non-bets"
28
+ ],
29
+ "postconditions": [
30
+ "Options section contains 2-4 genuinely distinct strategic paths, not implementation variants",
31
+ "Any recommendation that contradicts a declared Non-bet is surfaced explicitly with a user-decision marker",
32
+ {
33
+ "id": "strategic-memo-has-market-context",
34
+ "description": "Strategic memo must contain a Market Context section",
35
+ "check": "artifact-has-section",
36
+ "section": "Market Context"
37
+ },
38
+ {
39
+ "id": "strategic-memo-options-nonempty",
40
+ "description": "Strategic memo Options section is present and non-empty",
41
+ "check": "artifact-section-nonempty",
42
+ "section": "Options"
43
+ },
44
+ {
45
+ "id": "strategic-memo-has-strategic-risks",
46
+ "description": "Strategic memo must contain a Strategic Risks section",
47
+ "check": "artifact-has-section",
48
+ "section": "Strategic Risks"
49
+ },
50
+ {
51
+ "id": "strategic-memo-claims-cited",
52
+ "description": "Every market/competitive numeric claim cites a primary source with a date",
53
+ "check": "artifact-claims-cited"
54
+ }
55
+ ],
56
+ "description": ""
57
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "any-to-debugger",
3
+ "producer": "*",
4
+ "consumer": "cx-debugger",
5
+ "trigger": {
6
+ "intent": "investigation",
7
+ "category": "bug"
8
+ },
9
+ "input": {
10
+ "shape": "bug-signal",
11
+ "mustContain": [
12
+ "symptoms",
13
+ "scope"
14
+ ]
15
+ },
16
+ "output": {
17
+ "shape": "root-cause-report",
18
+ "mustContain": [
19
+ "rootCause",
20
+ "rootCauseConfirmedVia",
21
+ "fix"
22
+ ],
23
+ "mustMatchEnum": {
24
+ "rootCauseConfirmedVia": [
25
+ "reproduction",
26
+ "trace",
27
+ "test"
28
+ ]
29
+ }
30
+ },
31
+ "preconditions": [
32
+ "Bug reproduced or trace captured before proposing a fix"
33
+ ],
34
+ "postconditions": [
35
+ "rootCauseConfirmedVia in {reproduction, trace, test} — prevents symptom-only fixes that don't address the actual cause"
36
+ ],
37
+ "description": ""
38
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "id": "any-to-designer",
3
+ "producer": "*",
4
+ "consumer": "cx-designer",
5
+ "trigger": {
6
+ "riskFlags": [
7
+ "ui",
8
+ "accessibility"
9
+ ]
10
+ },
11
+ "input": {
12
+ "shape": "design-brief",
13
+ "mustContain": [
14
+ "surface",
15
+ "users",
16
+ "context"
17
+ ]
18
+ },
19
+ "output": {
20
+ "shape": "design-deliverable",
21
+ "mustContain": [
22
+ "deliverable",
23
+ "accessibilityCheckRan"
24
+ ]
25
+ },
26
+ "preconditions": [
27
+ "Affected surface scoped"
28
+ ],
29
+ "postconditions": [
30
+ "accessibilityCheckRan=true — prevents post-hoc a11y fixes by forcing a pre-ship check on every design deliverable"
31
+ ],
32
+ "description": ""
33
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "id": "any-to-docs-keeper",
3
+ "producer": "*",
4
+ "consumer": "cx-docs-keeper",
5
+ "trigger": {
6
+ "postConsumer": true,
7
+ "changedCoreDocs": true
8
+ },
9
+ "input": {
10
+ "shape": "doc-delta",
11
+ "mustContain": [
12
+ "filesChanged",
13
+ "decision"
14
+ ]
15
+ },
16
+ "output": {
17
+ "shape": "doc-sync",
18
+ "mustContain": [
19
+ "updatedDocs",
20
+ "crossReferencesAdded",
21
+ "crossDocCoherenceCheckRan",
22
+ "coherenceDiff"
23
+ ]
24
+ },
25
+ "preconditions": [
26
+ "Implementation or decision is marked DONE"
27
+ ],
28
+ "postconditions": [
29
+ "Cross-doc coherence preserved (PRD ↔ ADR ↔ code)",
30
+ "AUTO-managed regions regenerated via construct sync",
31
+ "crossDocCoherenceCheckRan=true with a named coherenceDiff — prevents stale-doc PRs that claim 'docs updated' without a real diff"
32
+ ],
33
+ "description": ""
34
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "id": "any-to-explorer",
3
+ "producer": "*",
4
+ "consumer": "cx-explorer",
5
+ "trigger": {
6
+ "intent": "investigation",
7
+ "category": "exploration"
8
+ },
9
+ "input": {
10
+ "shape": "exploration-request",
11
+ "mustContain": [
12
+ "question",
13
+ "scope"
14
+ ]
15
+ },
16
+ "output": {
17
+ "shape": "exploration-findings",
18
+ "mustContain": [
19
+ "entryPoints",
20
+ "executionPath",
21
+ "keyFiles",
22
+ "dataFlow",
23
+ "gaps"
24
+ ]
25
+ },
26
+ "preconditions": [
27
+ "Scope tagged; investigation does not follow imports past two hops from named entry points"
28
+ ],
29
+ "postconditions": [
30
+ "Every claim about existing code cites file:line from a read actually performed",
31
+ "One match is not called a pattern; multi-callsite patterns cite each call site",
32
+ {
33
+ "id": "exploration-findings-claims-cited",
34
+ "description": "Every load-bearing claim cites file:line or a primary external reference",
35
+ "check": "artifact-claims-cited"
36
+ }
37
+ ],
38
+ "description": ""
39
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "id": "any-to-sre-incident",
3
+ "producer": "*",
4
+ "consumer": "cx-sre",
5
+ "trigger": {
6
+ "intent": "investigation",
7
+ "category": "incident"
8
+ },
9
+ "input": {
10
+ "shape": "incident-signal",
11
+ "mustContain": [
12
+ "symptoms",
13
+ "scope",
14
+ "firstObserved"
15
+ ]
16
+ },
17
+ "output": {
18
+ "shape": "incident-report",
19
+ "mustContain": [
20
+ "rootCause",
21
+ "timeline",
22
+ "remediation",
23
+ "preventions"
24
+ ]
25
+ },
26
+ "preconditions": [
27
+ "Blast radius assessed before remediation"
28
+ ],
29
+ "postconditions": [
30
+ "Blameless postmortem; no tickets in Problem statement"
31
+ ],
32
+ "description": ""
33
+ }