@geraldmaron/construct 1.2.2 → 1.3.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 (497) hide show
  1. package/README.md +7 -10
  2. package/bin/construct +286 -220
  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 +56 -57
  28. package/lib/comment-lint.mjs +1 -5
  29. package/lib/completions.mjs +20 -2
  30. package/lib/config/legacy-config-migration.mjs +125 -0
  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/source-checkout.mjs +3 -4
  44. package/lib/doctor/watchers/consistency.mjs +90 -22
  45. package/lib/doctor/watchers/credential-parity.mjs +97 -0
  46. package/lib/doctor/watchers/mcp-protocol.mjs +1 -1
  47. package/lib/doctor/watchers/service-health.mjs +4 -32
  48. package/lib/document-export.mjs +73 -9
  49. package/lib/document-extract.mjs +10 -198
  50. package/lib/embed/artifact.mjs +2 -3
  51. package/lib/embed/cli.mjs +1 -1
  52. package/lib/embed/config.mjs +1 -2
  53. package/lib/embed/customer-profiles.mjs +1 -1
  54. package/lib/embed/daemon.mjs +5 -6
  55. package/lib/embed/demand-fetch.mjs +114 -2
  56. package/lib/embed/docs-lifecycle.mjs +9 -5
  57. package/lib/embed/intake-metrics.mjs +2 -2
  58. package/lib/embed/notifications.mjs +2 -3
  59. package/lib/embed/recommendation-store.mjs +25 -22
  60. package/lib/embed/role-framing.mjs +4 -9
  61. package/lib/embedded-contract/capability.mjs +4 -2
  62. package/lib/embedded-contract/contract-version.mjs +1 -1
  63. package/lib/env-config.mjs +2 -2
  64. package/lib/flavors/loader.mjs +21 -19
  65. package/lib/graph/build-from-registry.mjs +31 -7
  66. package/lib/graph/staleness.mjs +1 -1
  67. package/lib/headhunt.mjs +82 -35
  68. package/lib/hooks/agent-tracker.mjs +2 -2
  69. package/lib/hooks/config-protection.mjs +1 -1
  70. package/lib/hooks/registry-sync.mjs +3 -3
  71. package/lib/host-capabilities.mjs +5 -5
  72. package/lib/improvement/controller.mjs +2 -2
  73. package/lib/init-unified.mjs +19 -21
  74. package/lib/intake/classify.mjs +26 -0
  75. package/lib/intake/daemon.mjs +2 -3
  76. package/lib/intake/prepare.mjs +10 -3
  77. package/lib/intake/session-prelude.mjs +1 -1
  78. package/lib/intake/tables/creative.mjs +9 -9
  79. package/lib/intake/tables/operations.mjs +4 -4
  80. package/lib/intake/tables/research.mjs +2 -2
  81. package/lib/integrations/intake-integrations.mjs +9 -10
  82. package/lib/knowledge/research-store.mjs +2 -2
  83. package/lib/mcp/server.mjs +104 -61
  84. package/lib/mcp/tool-budget.mjs +1 -46
  85. package/lib/mcp/tool-recovery.mjs +44 -0
  86. package/lib/mcp/tools/artifact-author.mjs +36 -0
  87. package/lib/mcp/tools/find-tool.mjs +86 -0
  88. package/lib/mcp/tools/orchestration-run.mjs +107 -69
  89. package/lib/mcp/tools/project.mjs +4 -3
  90. package/lib/mcp/tools/{profile.mjs → scope.mjs} +54 -52
  91. package/lib/mcp/tools/skills.mjs +39 -22
  92. package/lib/mcp/tools/telemetry.mjs +2 -1
  93. package/lib/mcp/tools/workflow.mjs +1 -1
  94. package/lib/mcp-platform-config.mjs +7 -5
  95. package/lib/migrations/index.mjs +4 -2
  96. package/lib/migrations/v2-unified-registry.mjs +35 -0
  97. package/lib/model-router.mjs +203 -36
  98. package/lib/models/catalog.mjs +25 -9
  99. package/lib/models/execution-capability-profile.mjs +3 -3
  100. package/lib/models/execution-policy.mjs +7 -6
  101. package/lib/models/provider-poll.mjs +18 -4
  102. package/lib/opencode-config.mjs +56 -1
  103. package/lib/opencode-runtime-plugin.mjs +13 -10
  104. package/lib/oracle/artifact-gate.mjs +14 -4
  105. package/lib/oracle/cli.mjs +2 -0
  106. package/lib/oracle/dispatch.mjs +18 -1
  107. package/lib/oracle/execute.mjs +39 -7
  108. package/lib/oracle/index.mjs +1 -1
  109. package/lib/oracle/org-graph.mjs +10 -5
  110. package/lib/oracle/policy.mjs +6 -0
  111. package/lib/oracle/read-model.mjs +103 -6
  112. package/lib/oracle/reconcile.mjs +31 -4
  113. package/lib/oracle/remediation-dispatch.mjs +53 -0
  114. package/lib/oracle/routing.mjs +5 -0
  115. package/lib/oracle/synthesize.mjs +80 -3
  116. package/lib/orchestration/routing-tables.mjs +44 -10
  117. package/lib/orchestration/runtime.mjs +2 -0
  118. package/lib/orchestration/worker.mjs +1 -1
  119. package/lib/orchestration-policy.mjs +351 -62
  120. package/lib/overrides/resolver.mjs +1 -12
  121. package/lib/parity.mjs +37 -11
  122. package/lib/policy/engine.mjs +80 -15
  123. package/lib/prompt-composer.js +51 -15
  124. package/lib/prompt-metadata.mjs +3 -2
  125. package/lib/providers/connection-probe.mjs +58 -0
  126. package/lib/providers/copilot-auth.mjs +1 -1
  127. package/lib/providers/credential-bootstrap.mjs +1 -1
  128. package/lib/providers/op-run.mjs +3 -4
  129. package/lib/providers/secret-resolver.mjs +31 -0
  130. package/lib/publish-tooling.mjs +3 -11
  131. package/lib/publish.mjs +12 -29
  132. package/lib/reconcile/mcp-entry-reconcile.mjs +14 -9
  133. package/lib/reflect.mjs +2 -2
  134. package/lib/registry/agent-manifest.mjs +190 -0
  135. package/lib/registry/assemble.mjs +133 -0
  136. package/lib/registry/catalog.mjs +171 -0
  137. package/lib/registry/cli.mjs +590 -6
  138. package/lib/registry/consolidation.mjs +5 -4
  139. package/lib/registry/docs-sync.mjs +67 -0
  140. package/lib/registry/loader.mjs +147 -0
  141. package/lib/registry/org-io.mjs +76 -0
  142. package/lib/registry/retired-paths.mjs +71 -0
  143. package/lib/registry/surface-map.mjs +5 -7
  144. package/lib/registry/validator.mjs +438 -0
  145. package/lib/research-execution-policy.mjs +173 -0
  146. package/lib/roles/catalog.mjs +4 -9
  147. package/lib/roles/fence.mjs +107 -1
  148. package/lib/roles/flavor-bindings.mjs +68 -0
  149. package/lib/roles/gateway.mjs +140 -29
  150. package/lib/roles/manifest.mjs +22 -13
  151. package/lib/roles/router.mjs +1 -1
  152. package/lib/runtime-env.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 +17 -28
  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 -7
  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 +260 -49
  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/lib/boundary.mjs +0 -127
  433. package/lib/certification/dashboard-api.mjs +0 -71
  434. package/lib/chat/cli.mjs +0 -333
  435. package/lib/chat/command-suggest.mjs +0 -161
  436. package/lib/chat/commands.mjs +0 -215
  437. package/lib/chat/config.mjs +0 -142
  438. package/lib/chat/context-compactor.mjs +0 -250
  439. package/lib/chat/context-continuation.mjs +0 -253
  440. package/lib/chat/continuation-source.mjs +0 -58
  441. package/lib/chat/demo-guide.mjs +0 -61
  442. package/lib/chat/design-tokens.mjs +0 -91
  443. package/lib/chat/desktop-binary.mjs +0 -81
  444. package/lib/chat/desktop-build.mjs +0 -130
  445. package/lib/chat/desktop-launcher.mjs +0 -133
  446. package/lib/chat/evidence.mjs +0 -145
  447. package/lib/chat/export.mjs +0 -74
  448. package/lib/chat/harness/driver.mjs +0 -91
  449. package/lib/chat/list-picker.mjs +0 -112
  450. package/lib/chat/model-picker.mjs +0 -356
  451. package/lib/chat/openrouter-fallback.mjs +0 -151
  452. package/lib/chat/permission-prompt.mjs +0 -33
  453. package/lib/chat/picker-catalog.mjs +0 -45
  454. package/lib/chat/policy-telemetry.mjs +0 -34
  455. package/lib/chat/present.mjs +0 -246
  456. package/lib/chat/session-context.mjs +0 -39
  457. package/lib/chat/session-persist.mjs +0 -73
  458. package/lib/chat/session-restore.mjs +0 -71
  459. package/lib/chat/session-settings.mjs +0 -53
  460. package/lib/chat/system-prompt.mjs +0 -52
  461. package/lib/chat/transparency.mjs +0 -93
  462. package/lib/chat/tui/color-scheme.mjs +0 -42
  463. package/lib/chat/tui/markdown.mjs +0 -123
  464. package/lib/chat/tui/presentation.mjs +0 -100
  465. package/lib/chat/tui/render.mjs +0 -500
  466. package/lib/chat/tui/turn-block.mjs +0 -284
  467. package/lib/chat/tui/turn-present.mjs +0 -18
  468. package/lib/chat/tui/turn-state.mjs +0 -88
  469. package/lib/chat/tui/usage.mjs +0 -122
  470. package/lib/chat/web-commands.mjs +0 -146
  471. package/lib/chat/web-launcher.mjs +0 -63
  472. package/lib/chat/web-picker-keys.mjs +0 -46
  473. package/lib/chat/web-session.mjs +0 -159
  474. package/lib/config/alias.mjs +0 -57
  475. package/lib/dashboard-demo.mjs +0 -71
  476. package/lib/dashboard-static.mjs +0 -175
  477. package/lib/install/desktop-binary-download.mjs +0 -88
  478. package/lib/profiles/loader.mjs +0 -123
  479. package/lib/profiles/rebrand.mjs +0 -46
  480. package/lib/server/auth.mjs +0 -169
  481. package/lib/server/chat-loop.mjs +0 -622
  482. package/lib/server/chat.mjs +0 -336
  483. package/lib/server/cors.mjs +0 -77
  484. package/lib/server/csrf.mjs +0 -103
  485. package/lib/server/demo-preview.mjs +0 -63
  486. package/lib/server/index.mjs +0 -2641
  487. package/lib/server/insights.mjs +0 -780
  488. package/lib/server/langfuse-login.mjs +0 -58
  489. package/lib/server/rate-limit.mjs +0 -93
  490. package/lib/server/telemetry-login.mjs +0 -100
  491. package/lib/server/webhook.mjs +0 -512
  492. package/specialists/contracts.json +0 -1032
  493. package/specialists/contracts.schema.json +0 -83
  494. package/specialists/policy-inventory.json +0 -188
  495. package/specialists/registry.json +0 -1412
  496. package/specialists/role-manifests.json +0 -217
  497. package/specialists/teams.json +0 -94
@@ -3,15 +3,12 @@ name: roles-operator
3
3
  description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Operator role. Use when reviewing or generating work by cx-sre, cx-operations, cx-release-manager, cx-docs-keeper, or when an agent is acting in the Operator role.
4
4
  inputs: [runbook, deployment-plan]
5
5
  artifactType: role-guidance
6
- role: operator
6
+ role: operations
7
7
  applies_to:
8
- - cx-sre
9
8
  - cx-operations
10
- - cx-release-manager
11
- - cx-docs-keeper
12
9
  inherits: null
13
10
  version: 2
14
- profiles:
11
+ scopes:
15
12
  - rnd
16
13
  cap: 1
17
14
  ---
@@ -8,7 +8,7 @@ applies_to:
8
8
  - cx-orchestrator
9
9
  inherits: null
10
10
  version: 2
11
- profiles:
11
+ scopes:
12
12
  - rnd
13
13
  cap: 1
14
14
  ---
@@ -3,12 +3,12 @@ name: roles-engineer-platform
3
3
  description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Engineer — Platform role. Use when reviewing or generating work by cx-platform-engineer, or when an agent is acting in the Engineer — Platform role.
4
4
  inputs: [code-diff, internal-tooling]
5
5
  artifactType: role-guidance
6
- role: engineer.platform
6
+ role: platform-engineer
7
7
  applies_to:
8
8
  - cx-platform-engineer
9
9
  inherits: engineer
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-product-manager
9
9
  inherits: product-manager
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-product-manager
9
9
  inherits: product-manager
10
10
  version: 2
11
- profiles:
11
+ scopes:
12
12
  - rnd
13
13
  cap: 1
14
14
  ---
@@ -6,10 +6,9 @@ artifactType: guidance
6
6
  role: product-manager.growth
7
7
  applies_to:
8
8
  - cx-product-manager
9
- - cx-business-strategist
10
9
  inherits: product-manager
11
10
  version: 2
12
- profiles:
11
+ scopes:
13
12
  - rnd
14
13
  cap: 1
15
14
  ---
@@ -6,10 +6,9 @@ artifactType: guidance
6
6
  role: product-manager
7
7
  applies_to:
8
8
  - cx-product-manager
9
- - cx-business-strategist
10
9
  inherits: null
11
10
  version: 2
12
- profiles:
11
+ scopes:
13
12
  - rnd
14
13
  cap: 1
15
14
  ---
@@ -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
  ---
@@ -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
+ }