@geraldmaron/construct 1.2.3 → 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 (504) 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/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/scopes/enrich.mjs +67 -0
  153. package/lib/scopes/hooks.mjs +12 -0
  154. package/lib/{profiles → scopes}/lifecycle.mjs +70 -70
  155. package/lib/scopes/loader.mjs +104 -0
  156. package/lib/scopes/rebrand.mjs +32 -0
  157. package/lib/scopes/research-profile.mjs +16 -0
  158. package/lib/scopes/teams.mjs +98 -0
  159. package/lib/service-manager.mjs +1 -117
  160. package/lib/setup-prompts.mjs +1 -1
  161. package/lib/setup.mjs +6 -26
  162. package/lib/skills/composition-graph.mjs +98 -0
  163. package/lib/skills/router.mjs +80 -0
  164. package/lib/specialist-contracts.mjs +17 -18
  165. package/lib/specialists/postconditions.mjs +2 -2
  166. package/lib/specialists/prompt-schema.mjs +6 -5
  167. package/lib/specialists/roster.mjs +7 -12
  168. package/lib/specialists/schema.mjs +9 -6
  169. package/lib/status.mjs +25 -90
  170. package/lib/storage/file-lock.mjs +6 -3
  171. package/lib/telemetry/skill-calls.mjs +1 -1
  172. package/lib/templates/doc-presentation.mjs +63 -0
  173. package/lib/templates/visual-requirements.mjs +35 -2
  174. package/lib/term-format.mjs +107 -2
  175. package/lib/test-env-setup.mjs +21 -0
  176. package/lib/ui/components.mjs +42 -0
  177. package/lib/ui/glyphs.mjs +58 -0
  178. package/lib/ui/links.mjs +115 -0
  179. package/lib/ui/theme.mjs +108 -0
  180. package/lib/uninstall/uninstall.mjs +2 -1
  181. package/lib/validator.mjs +45 -8
  182. package/lib/validators/skill-effectiveness.mjs +174 -0
  183. package/lib/validators/skills.mjs +1 -1
  184. package/package.json +12 -8
  185. package/personas/construct.md +12 -3
  186. package/platforms/claude/CLAUDE.md +1 -1
  187. package/rules/common/beads-hygiene.md +52 -0
  188. package/rules/common/neurodivergent-output.md +4 -7
  189. package/rules/common/research.md +2 -0
  190. package/scripts/sync-specialists.mjs +260 -49
  191. package/skills/ai/prompt-optimizer.md +3 -3
  192. package/skills/brand/output-vibe.md +48 -0
  193. package/skills/docs/adr-workflow.md +3 -0
  194. package/skills/docs/backlog-proposal-workflow.md +3 -0
  195. package/skills/docs/codebase-research-workflow.md +5 -2
  196. package/skills/docs/customer-profile-workflow.md +3 -0
  197. package/skills/docs/document-ingest-workflow.md +3 -0
  198. package/skills/docs/evidence-ingest-workflow.md +4 -1
  199. package/skills/docs/init-project.md +1 -1
  200. package/skills/docs/prd-workflow.md +1 -1
  201. package/skills/docs/prfaq-workflow.md +3 -0
  202. package/skills/docs/product-intelligence-workflow.md +4 -1
  203. package/skills/docs/product-signal-workflow.md +3 -0
  204. package/skills/docs/research-workflow.md +13 -6
  205. package/skills/docs/runbook-workflow.md +3 -0
  206. package/skills/docs/strategy-workflow.md +3 -0
  207. package/skills/docs/user-research-workflow.md +6 -3
  208. package/skills/operating/orchestration-reference.md +1 -1
  209. package/skills/roles/{engineer.ai.md → ai-engineer.md} +2 -2
  210. package/skills/roles/architect.ai-systems.md +1 -1
  211. package/skills/roles/architect.data.md +1 -1
  212. package/skills/roles/architect.enterprise.md +1 -1
  213. package/skills/roles/architect.integration.md +1 -1
  214. package/skills/roles/architect.md +1 -1
  215. package/skills/roles/architect.platform.md +1 -1
  216. package/skills/roles/{product-manager.business-strategy.md → business-strategist.md} +3 -3
  217. package/skills/roles/data-analyst.experiment.md +1 -1
  218. package/skills/roles/data-analyst.md +1 -1
  219. package/skills/roles/data-analyst.product-intelligence.md +1 -1
  220. package/skills/roles/data-analyst.product.md +1 -1
  221. package/skills/roles/data-analyst.telemetry.md +1 -1
  222. package/skills/roles/{engineer.data.md → data-engineer.md} +2 -2
  223. package/skills/roles/data-engineer.pipeline.md +2 -2
  224. package/skills/roles/data-engineer.vector-retrieval.md +2 -2
  225. package/skills/roles/data-engineer.warehouse.md +2 -2
  226. package/skills/roles/debugger.md +1 -1
  227. package/skills/roles/designer.accessibility.md +1 -1
  228. package/skills/roles/designer.md +1 -1
  229. package/skills/roles/{reviewer.devil-advocate.md → devil-advocate.md} +2 -2
  230. package/skills/roles/{operator.docs.md → docs-keeper.md} +3 -3
  231. package/skills/roles/engineer.md +3 -7
  232. package/skills/roles/{reviewer.evaluator.md → evaluator.md} +2 -2
  233. package/skills/roles/{researcher.explorer.md → explorer.md} +2 -2
  234. package/skills/roles/{operator.md → operations.md} +2 -5
  235. package/skills/roles/orchestrator.md +1 -1
  236. package/skills/roles/{engineer.platform.md → platform-engineer.md} +2 -2
  237. package/skills/roles/product-manager.ai-product.md +1 -1
  238. package/skills/roles/product-manager.enterprise.md +1 -1
  239. package/skills/roles/product-manager.growth.md +1 -2
  240. package/skills/roles/product-manager.md +1 -2
  241. package/skills/roles/product-manager.platform.md +1 -1
  242. package/skills/roles/product-manager.product.md +1 -1
  243. package/skills/roles/qa.ai-eval.md +1 -1
  244. package/skills/roles/qa.api-contract.md +1 -1
  245. package/skills/roles/qa.data-pipeline.md +1 -1
  246. package/skills/roles/qa.md +1 -1
  247. package/skills/roles/qa.web-ui.md +1 -1
  248. package/skills/roles/{operator.release.md → release-manager.md} +3 -3
  249. package/skills/roles/researcher.md +1 -1
  250. package/skills/roles/reviewer.md +1 -1
  251. package/skills/roles/security.ai.md +1 -1
  252. package/skills/roles/security.appsec.md +1 -1
  253. package/skills/roles/security.cloud.md +1 -1
  254. package/skills/roles/security.legal-compliance.md +1 -1
  255. package/skills/roles/security.md +1 -1
  256. package/skills/roles/security.privacy.md +1 -1
  257. package/skills/roles/security.supply-chain.md +1 -1
  258. package/skills/roles/{operator.sre.md → sre.md} +3 -3
  259. package/skills/roles/{qa.test-automation.md → test-automation.md} +2 -2
  260. package/skills/roles/{reviewer.trace.md → trace-reviewer.md} +2 -2
  261. package/skills/roles/{researcher.ux.md → ux-researcher.md} +2 -2
  262. package/skills/routing.json +18 -0
  263. package/skills/routing.md +1 -1
  264. package/specialists/artifact-manifest.json +2 -1
  265. package/specialists/audit-enrichments.json +14 -14
  266. package/specialists/org/contracts/accessibility-to-qa.json +37 -0
  267. package/specialists/org/contracts/any-to-business-strategist.json +57 -0
  268. package/specialists/org/contracts/any-to-debugger.json +38 -0
  269. package/specialists/org/contracts/any-to-designer.json +33 -0
  270. package/specialists/org/contracts/any-to-docs-keeper.json +34 -0
  271. package/specialists/org/contracts/any-to-explorer.json +39 -0
  272. package/specialists/org/contracts/any-to-sre-incident.json +33 -0
  273. package/specialists/org/contracts/any-to-trace-reviewer.json +32 -0
  274. package/specialists/org/contracts/architect-to-ai-engineer.json +32 -0
  275. package/specialists/org/contracts/architect-to-data-engineer.json +52 -0
  276. package/specialists/org/contracts/architect-to-devil-advocate.json +38 -0
  277. package/specialists/org/contracts/architect-to-engineer.json +34 -0
  278. package/specialists/org/contracts/architect-to-evaluator.json +59 -0
  279. package/specialists/org/contracts/architect-to-legal-compliance.json +55 -0
  280. package/specialists/org/contracts/architect-to-operations.json +45 -0
  281. package/specialists/org/contracts/architect-to-platform-engineer.json +42 -0
  282. package/specialists/org/contracts/business-strategist-to-product-manager.json +39 -0
  283. package/specialists/org/contracts/construct-to-orchestrator.json +36 -0
  284. package/specialists/org/contracts/construct-to-rd-lead.json +53 -0
  285. package/specialists/org/contracts/data-analyst-to-product-manager.json +43 -0
  286. package/specialists/org/contracts/data-engineer-to-platform-engineer.json +36 -0
  287. package/specialists/org/contracts/designer-to-accessibility.json +36 -0
  288. package/specialists/org/contracts/engineer-to-qa.json +34 -0
  289. package/specialists/org/contracts/engineer-to-reviewer.json +52 -0
  290. package/specialists/org/contracts/explorer-to-engineer.json +38 -0
  291. package/specialists/org/contracts/legal-compliance-to-release-manager.json +43 -0
  292. package/specialists/org/contracts/platform-engineer-to-engineer.json +31 -0
  293. package/specialists/org/contracts/product-manager-to-architect.json +71 -0
  294. package/specialists/org/contracts/product-manager-to-data-analyst.json +49 -0
  295. package/specialists/org/contracts/product-manager-to-ux-researcher.json +51 -0
  296. package/specialists/org/contracts/qa-to-release-manager.json +42 -0
  297. package/specialists/org/contracts/qa-to-test-automation.json +42 -0
  298. package/specialists/org/contracts/rd-lead-to-architect.json +38 -0
  299. package/specialists/org/contracts/researcher-to-architect.json +40 -0
  300. package/specialists/org/contracts/researcher-to-product-manager.json +57 -0
  301. package/specialists/org/contracts/reviewer-to-security.json +41 -0
  302. package/specialists/org/contracts/sre-to-release-manager.json +36 -0
  303. package/specialists/org/contracts/test-automation-to-engineer.json +34 -0
  304. package/specialists/org/contracts/trace-reviewer-to-sre.json +41 -0
  305. package/specialists/org/contracts/user-to-construct.json +30 -0
  306. package/specialists/org/groups/engineering-group.json +43 -0
  307. package/specialists/org/groups/governance-group.json +38 -0
  308. package/specialists/org/groups/operations-group.json +41 -0
  309. package/specialists/org/groups/product-group.json +46 -0
  310. package/specialists/org/groups/quality-group.json +42 -0
  311. package/specialists/org/groups/strategy-group.json +41 -0
  312. package/specialists/org/policies/action-approval.json +13 -0
  313. package/specialists/org/policies/agents-routing.json +13 -0
  314. package/specialists/org/policies/architecture.json +20 -0
  315. package/specialists/org/policies/bash-safety.json +13 -0
  316. package/specialists/org/policies/beads-hygiene.json +13 -0
  317. package/specialists/org/policies/bootstrap-state.json +13 -0
  318. package/specialists/org/policies/code-review.json +13 -0
  319. package/specialists/org/policies/coding-style.json +13 -0
  320. package/specialists/org/policies/comments.json +13 -0
  321. package/specialists/org/policies/commit-approval.json +13 -0
  322. package/specialists/org/policies/contract-preconditions.json +13 -0
  323. package/specialists/org/policies/deployment.json +20 -0
  324. package/specialists/org/policies/description.json +14 -0
  325. package/specialists/org/policies/design-approval.json +19 -0
  326. package/specialists/org/policies/doc-ownership.json +13 -0
  327. package/specialists/org/policies/file-path-fence.json +13 -0
  328. package/specialists/org/policies/framing.json +13 -0
  329. package/specialists/org/policies/git-workflow.json +13 -0
  330. package/specialists/org/policies/incident-response.json +15 -0
  331. package/specialists/org/policies/intake-triage.json +15 -0
  332. package/specialists/org/policies/neurodivergent-output.json +13 -0
  333. package/specialists/org/policies/no-fabrication.json +13 -0
  334. package/specialists/org/policies/patterns.json +13 -0
  335. package/specialists/org/policies/quality-gate-approval.json +17 -0
  336. package/specialists/org/policies/release-gates.json +13 -0
  337. package/specialists/org/policies/research-evidence.json +13 -0
  338. package/specialists/org/policies/review-before-change.json +13 -0
  339. package/specialists/org/policies/rollback.json +15 -0
  340. package/specialists/org/policies/scope-change.json +20 -0
  341. package/specialists/org/policies/secret-scan.json +13 -0
  342. package/specialists/org/policies/security-approval.json +17 -0
  343. package/specialists/org/policies/security.json +13 -0
  344. package/specialists/org/policies/session-efficiency.json +13 -0
  345. package/specialists/org/policies/skill-routing.json +13 -0
  346. package/specialists/org/policies/strategic-prioritization.json +17 -0
  347. package/specialists/org/policies/testing.json +13 -0
  348. package/specialists/org/policies/tool-invisibility.json +14 -0
  349. package/specialists/org/scopes/creative.json +54 -0
  350. package/specialists/org/scopes/operations.json +51 -0
  351. package/specialists/org/scopes/research.json +60 -0
  352. package/specialists/org/scopes/rnd.json +81 -0
  353. package/specialists/org/specialists/cx-accessibility.json +69 -0
  354. package/specialists/org/specialists/cx-ai-engineer.json +75 -0
  355. package/specialists/org/specialists/cx-architect.json +89 -0
  356. package/specialists/org/specialists/cx-business-strategist.json +72 -0
  357. package/specialists/org/specialists/cx-data-analyst.json +68 -0
  358. package/specialists/org/specialists/cx-data-engineer.json +71 -0
  359. package/specialists/org/specialists/cx-debugger.json +75 -0
  360. package/specialists/org/specialists/cx-designer.json +85 -0
  361. package/specialists/org/specialists/cx-devil-advocate.json +71 -0
  362. package/specialists/org/specialists/cx-docs-keeper.json +82 -0
  363. package/specialists/org/specialists/cx-engineer.json +106 -0
  364. package/specialists/org/specialists/cx-evaluator.json +69 -0
  365. package/specialists/org/specialists/cx-explorer.json +69 -0
  366. package/specialists/org/specialists/cx-legal-compliance.json +74 -0
  367. package/specialists/org/specialists/cx-operations.json +72 -0
  368. package/specialists/org/specialists/cx-oracle.json +46 -0
  369. package/specialists/org/specialists/cx-orchestrator.json +81 -0
  370. package/specialists/org/specialists/cx-platform-engineer.json +80 -0
  371. package/specialists/org/specialists/cx-product-manager.json +102 -0
  372. package/specialists/org/specialists/cx-qa.json +79 -0
  373. package/specialists/org/specialists/cx-rd-lead.json +73 -0
  374. package/specialists/org/specialists/cx-release-manager.json +77 -0
  375. package/specialists/org/specialists/cx-researcher.json +82 -0
  376. package/specialists/org/specialists/cx-reviewer.json +71 -0
  377. package/specialists/org/specialists/cx-security.json +91 -0
  378. package/specialists/org/specialists/cx-sre.json +94 -0
  379. package/specialists/org/specialists/cx-test-automation.json +69 -0
  380. package/specialists/org/specialists/cx-trace-reviewer.json +69 -0
  381. package/specialists/org/specialists/cx-ux-researcher.json +68 -0
  382. package/specialists/org/teams/accessibility-team.json +39 -0
  383. package/specialists/org/teams/design-team.json +40 -0
  384. package/specialists/org/teams/engineering-team.json +50 -0
  385. package/specialists/org/teams/governance-team.json +41 -0
  386. package/specialists/org/teams/operations-team.json +46 -0
  387. package/specialists/org/teams/product-management-team.json +45 -0
  388. package/specialists/org/teams/quality-team.json +49 -0
  389. package/specialists/org/teams/research-team.json +39 -0
  390. package/specialists/org/teams/strategy-team.json +48 -0
  391. package/specialists/org/teams/ux-research-team.json +39 -0
  392. package/specialists/prompts/_shared/validation-contract.md +1 -1
  393. package/specialists/prompts/_team-template.md +10 -0
  394. package/specialists/prompts/cx-accessibility.md +1 -0
  395. package/specialists/prompts/cx-ai-engineer.md +1 -1
  396. package/specialists/prompts/cx-business-strategist.md +1 -1
  397. package/specialists/prompts/cx-data-engineer.md +1 -1
  398. package/specialists/prompts/cx-designer.md +1 -0
  399. package/specialists/prompts/cx-devil-advocate.md +1 -1
  400. package/specialists/prompts/cx-docs-keeper.md +1 -1
  401. package/specialists/prompts/cx-evaluator.md +1 -1
  402. package/specialists/prompts/cx-explorer.md +1 -1
  403. package/specialists/prompts/cx-operations.md +1 -1
  404. package/specialists/prompts/cx-oracle.md +7 -3
  405. package/specialists/prompts/cx-orchestrator.md +17 -1
  406. package/specialists/prompts/cx-platform-engineer.md +1 -1
  407. package/specialists/prompts/cx-product-manager.md +2 -0
  408. package/specialists/prompts/cx-release-manager.md +1 -1
  409. package/specialists/prompts/cx-researcher.md +7 -4
  410. package/specialists/prompts/cx-sre.md +1 -1
  411. package/specialists/prompts/cx-test-automation.md +2 -2
  412. package/specialists/prompts/cx-trace-reviewer.md +3 -3
  413. package/specialists/prompts/cx-ux-researcher.md +2 -1
  414. package/templates/demos/scripts/architecture-review-adr.json +30 -0
  415. package/templates/demos/scripts/capability-contract.json +25 -0
  416. package/templates/demos/scripts/intake-triage.json +25 -0
  417. package/templates/demos/scripts/profile-doctor-health.json +25 -0
  418. package/templates/demos/tapes/agentic-platforms-prd.tape +2 -2
  419. package/templates/demos/tapes/architecture-review-adr.tape +44 -0
  420. package/templates/demos/tapes/capability-contract.tape +39 -0
  421. package/templates/demos/tapes/intake-triage.tape +39 -0
  422. package/templates/demos/tapes/profile-doctor-health.tape +39 -0
  423. package/templates/distribution/construct-brand.typ +23 -18
  424. package/templates/distribution/construct-decision.typ +1 -1
  425. package/templates/distribution/construct-pdf.typ +1 -1
  426. package/templates/distribution/construct-prd.typ +1 -1
  427. package/templates/distribution/construct-research.typ +1 -1
  428. package/templates/distribution/mermaid-puppeteer.json +8 -0
  429. package/templates/docs/persona-artifact.md +1 -1
  430. package/templates/docs/prd.md +6 -0
  431. package/apps/chat/engine/ai-sdk-agent.mjs +0 -183
  432. package/apps/chat/engine/loop-driver.mjs +0 -211
  433. package/apps/chat/engine/models.mjs +0 -122
  434. package/apps/chat/engine/provider-adapters.mjs +0 -171
  435. package/apps/chat/engine/tools/permission.mjs +0 -54
  436. package/apps/chat/engine/tools/primitives.mjs +0 -180
  437. package/apps/chat/engine/tools/registry.mjs +0 -122
  438. package/apps/chat/engine/turn-controls.mjs +0 -70
  439. package/lib/boundary.mjs +0 -127
  440. package/lib/certification/dashboard-api.mjs +0 -71
  441. package/lib/chat/cli.mjs +0 -333
  442. package/lib/chat/command-suggest.mjs +0 -161
  443. package/lib/chat/commands.mjs +0 -215
  444. package/lib/chat/config.mjs +0 -142
  445. package/lib/chat/context-compactor.mjs +0 -250
  446. package/lib/chat/context-continuation.mjs +0 -253
  447. package/lib/chat/continuation-source.mjs +0 -58
  448. package/lib/chat/demo-guide.mjs +0 -61
  449. package/lib/chat/design-tokens.mjs +0 -91
  450. package/lib/chat/desktop-binary.mjs +0 -81
  451. package/lib/chat/desktop-build.mjs +0 -130
  452. package/lib/chat/desktop-launcher.mjs +0 -133
  453. package/lib/chat/evidence.mjs +0 -145
  454. package/lib/chat/export.mjs +0 -74
  455. package/lib/chat/harness/driver.mjs +0 -91
  456. package/lib/chat/list-picker.mjs +0 -112
  457. package/lib/chat/model-picker.mjs +0 -356
  458. package/lib/chat/openrouter-fallback.mjs +0 -151
  459. package/lib/chat/permission-prompt.mjs +0 -33
  460. package/lib/chat/picker-catalog.mjs +0 -45
  461. package/lib/chat/policy-telemetry.mjs +0 -34
  462. package/lib/chat/present.mjs +0 -246
  463. package/lib/chat/session-context.mjs +0 -39
  464. package/lib/chat/session-persist.mjs +0 -73
  465. package/lib/chat/session-restore.mjs +0 -71
  466. package/lib/chat/session-settings.mjs +0 -53
  467. package/lib/chat/system-prompt.mjs +0 -52
  468. package/lib/chat/transparency.mjs +0 -93
  469. package/lib/chat/tui/color-scheme.mjs +0 -42
  470. package/lib/chat/tui/markdown.mjs +0 -123
  471. package/lib/chat/tui/presentation.mjs +0 -100
  472. package/lib/chat/tui/render.mjs +0 -500
  473. package/lib/chat/tui/turn-block.mjs +0 -284
  474. package/lib/chat/tui/turn-present.mjs +0 -18
  475. package/lib/chat/tui/turn-state.mjs +0 -88
  476. package/lib/chat/tui/usage.mjs +0 -122
  477. package/lib/chat/web-commands.mjs +0 -146
  478. package/lib/chat/web-launcher.mjs +0 -63
  479. package/lib/chat/web-picker-keys.mjs +0 -46
  480. package/lib/chat/web-session.mjs +0 -159
  481. package/lib/config/alias.mjs +0 -57
  482. package/lib/dashboard-demo.mjs +0 -71
  483. package/lib/dashboard-static.mjs +0 -175
  484. package/lib/install/desktop-binary-download.mjs +0 -88
  485. package/lib/profiles/loader.mjs +0 -123
  486. package/lib/profiles/rebrand.mjs +0 -46
  487. package/lib/server/auth.mjs +0 -169
  488. package/lib/server/chat-loop.mjs +0 -622
  489. package/lib/server/chat.mjs +0 -336
  490. package/lib/server/cors.mjs +0 -77
  491. package/lib/server/csrf.mjs +0 -103
  492. package/lib/server/demo-preview.mjs +0 -63
  493. package/lib/server/index.mjs +0 -2641
  494. package/lib/server/insights.mjs +0 -780
  495. package/lib/server/langfuse-login.mjs +0 -58
  496. package/lib/server/rate-limit.mjs +0 -93
  497. package/lib/server/telemetry-login.mjs +0 -100
  498. package/lib/server/webhook.mjs +0 -512
  499. package/specialists/contracts.json +0 -1032
  500. package/specialists/contracts.schema.json +0 -83
  501. package/specialists/policy-inventory.json +0 -188
  502. package/specialists/registry.json +0 -1412
  503. package/specialists/role-manifests.json +0 -217
  504. 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
+ }