@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
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "test-automation",
3
+ "displayName": "Knows that bad automation is worse than no automation — flaky tests teach teams to ignore red builds.",
4
+ "description": "Knows that bad automation is worse than no automation — flaky tests teach teams to ignore red builds.",
5
+ "role": "test-automation",
6
+ "modelTier": "standard",
7
+ "reasoningEffort": "medium",
8
+ "skills": [
9
+ "devops/testing",
10
+ "quality-gates/verify-change",
11
+ "quality-gates/verify-module"
12
+ ],
13
+ "events": [],
14
+ "fence": {
15
+ "allowedPaths": [
16
+ "tests/**",
17
+ "docs/test-automation/**"
18
+ ],
19
+ "allowedBdLabels": [
20
+ "test-automation",
21
+ "ci",
22
+ "test-infra"
23
+ ],
24
+ "allowedCommands": [
25
+ "bd create",
26
+ "bd note",
27
+ "bd update"
28
+ ],
29
+ "approvalRequired": [
30
+ "commit",
31
+ "push",
32
+ "edit:lib/**",
33
+ "edit:bin/**"
34
+ ]
35
+ },
36
+ "docArtifacts": [],
37
+ "watchConditions": [],
38
+ "permissions": {},
39
+ "promptFile": "specialists/prompts/cx-test-automation.md",
40
+ "embedOrientation": {
41
+ "focusAreas": [
42
+ "test determinism",
43
+ "flakiness trends",
44
+ "automation ROI",
45
+ "behavioral coverage"
46
+ ],
47
+ "riskSignals": [
48
+ "flaky tests ignored",
49
+ "arbitrary sleeps",
50
+ "tests that never caught a bug",
51
+ "intermittent failures dismissed"
52
+ ],
53
+ "artifactBias": [
54
+ "notes"
55
+ ]
56
+ },
57
+ "canEdit": true,
58
+ "claudeTools": "Read,Grep,Glob,LS,Edit,Write,Bash,list_skills,get_skill,search_skills,memory_search,memory_add_observations,cx_trace,cx_score",
59
+ "internal": true,
60
+ "killSwitchEnv": "CONSTRUCT_ROLE_TEST_AUTOMATION",
61
+ "handoffCandidates": [
62
+ "qa",
63
+ "engineer",
64
+ "platform-engineer"
65
+ ],
66
+ "team": "quality-team",
67
+ "teamId": "quality-team",
68
+ "groupId": "quality-group"
69
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "trace-reviewer",
3
+ "displayName": "Tracks fleet-level performance patterns — stable median scores can hide high-variance agents that are failing silently.",
4
+ "description": "Tracks fleet-level performance patterns — stable median scores can hide high-variance agents that are failing silently.",
5
+ "role": "trace-reviewer",
6
+ "modelTier": "reasoning",
7
+ "reasoningEffort": "high",
8
+ "skills": [
9
+ "ai/prompt-optimizer",
10
+ "ai/trace-triage"
11
+ ],
12
+ "events": [
13
+ "trace.anomaly"
14
+ ],
15
+ "fence": {
16
+ "allowedPaths": [
17
+ "docs/traces/**",
18
+ ".cx/traces/**"
19
+ ],
20
+ "allowedBdLabels": [
21
+ "trace",
22
+ "observability"
23
+ ],
24
+ "allowedCommands": [
25
+ "bd create",
26
+ "bd note",
27
+ "bd update"
28
+ ],
29
+ "approvalRequired": [
30
+ "commit",
31
+ "push",
32
+ "edit:**"
33
+ ]
34
+ },
35
+ "docArtifacts": [],
36
+ "watchConditions": [],
37
+ "permissions": {},
38
+ "promptFile": "specialists/prompts/cx-trace-reviewer.md",
39
+ "embedOrientation": {
40
+ "focusAreas": [
41
+ "agent performance trends",
42
+ "variance detection",
43
+ "degradation signals",
44
+ "fleet health"
45
+ ],
46
+ "riskSignals": [
47
+ "stable median hiding variance",
48
+ "silent degradation",
49
+ "promotion on few traces",
50
+ "unreviewed failure clusters"
51
+ ],
52
+ "artifactBias": [
53
+ "notes",
54
+ "memos"
55
+ ]
56
+ },
57
+ "canEdit": true,
58
+ "claudeTools": "Read,Write,Bash,list_skills,get_skill,search_skills,memory_search,memory_add_observations,cx_trace,cx_score,get_template,list_templates",
59
+ "internal": true,
60
+ "killSwitchEnv": "CONSTRUCT_ROLE_TRACE_REVIEWER",
61
+ "handoffCandidates": [
62
+ "sre",
63
+ "ai-engineer",
64
+ "engineer"
65
+ ],
66
+ "team": "quality-team",
67
+ "teamId": "quality-team",
68
+ "groupId": "quality-group"
69
+ }
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "ux-researcher",
3
+ "displayName": "Brings user reality into the room — guards against assumptions built on internal intuition rather than observed behavior.",
4
+ "description": "Brings user reality into the room — guards against assumptions built on internal intuition rather than observed behavior.",
5
+ "role": "ux-researcher",
6
+ "modelTier": "standard",
7
+ "reasoningEffort": "medium",
8
+ "skills": [
9
+ "docs/user-research-workflow",
10
+ "docs/evidence-ingest-workflow",
11
+ "strategy/jobs-to-be-done"
12
+ ],
13
+ "events": [],
14
+ "fence": {
15
+ "allowedPaths": [
16
+ "docs/ux-research/**",
17
+ ".cx/ux-research/**"
18
+ ],
19
+ "allowedBdLabels": [
20
+ "ux-research",
21
+ "user-research"
22
+ ],
23
+ "allowedCommands": [
24
+ "bd create",
25
+ "bd note",
26
+ "bd update"
27
+ ],
28
+ "approvalRequired": [
29
+ "commit",
30
+ "push",
31
+ "edit:**"
32
+ ]
33
+ },
34
+ "docArtifacts": [],
35
+ "watchConditions": [],
36
+ "permissions": {},
37
+ "promptFile": "specialists/prompts/cx-ux-researcher.md",
38
+ "embedOrientation": {
39
+ "focusAreas": [
40
+ "user evidence freshness",
41
+ "friction points",
42
+ "persona coverage",
43
+ "research gaps"
44
+ ],
45
+ "riskSignals": [
46
+ "stale user data",
47
+ "untested assumptions about users",
48
+ "missing friction analysis",
49
+ "internal-only validation"
50
+ ],
51
+ "artifactBias": [
52
+ "notes",
53
+ "memos"
54
+ ]
55
+ },
56
+ "canEdit": false,
57
+ "claudeTools": "Read,Grep,Glob,LS,list_skills,get_skill,search_skills,memory_search,memory_add_observations",
58
+ "internal": true,
59
+ "killSwitchEnv": "CONSTRUCT_ROLE_UX_RESEARCHER",
60
+ "handoffCandidates": [
61
+ "product-manager",
62
+ "designer",
63
+ "researcher"
64
+ ],
65
+ "team": "ux-research-team",
66
+ "teamId": "ux-research-team",
67
+ "groupId": "product-group"
68
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "id": "accessibility-team",
3
+ "kind": "squad",
4
+ "groupId": "product-group",
5
+ "name": "Accessibility",
6
+ "owner": "accessibility",
7
+ "roles": [
8
+ "accessibility"
9
+ ],
10
+ "collaborators": [
11
+ "design-team",
12
+ "product-management-team"
13
+ ],
14
+ "specialists": [
15
+ "cx-accessibility"
16
+ ],
17
+ "decisionRights": [
18
+ "intake-triage",
19
+ "design-approval",
20
+ "scope-change",
21
+ "evidence-requirement"
22
+ ],
23
+ "forbiddenDecisions": [
24
+ "deployment",
25
+ "security-override",
26
+ "infra-change"
27
+ ],
28
+ "escalationPath": [
29
+ "product-manager",
30
+ "rd-lead",
31
+ "orchestrator"
32
+ ],
33
+ "charter": "Own accessibility standards, audits, and WCAG conformance for product surfaces. Can block ship when acceptance criteria violate accessibility policy.",
34
+ "contact": {
35
+ "slack": "#product",
36
+ "email": "product@example.com",
37
+ "owner": "product-manager"
38
+ }
39
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "id": "design-team",
3
+ "kind": "squad",
4
+ "groupId": "product-group",
5
+ "name": "Design",
6
+ "owner": "designer",
7
+ "roles": [
8
+ "designer"
9
+ ],
10
+ "collaborators": [
11
+ "product-management-team",
12
+ "ux-research-team",
13
+ "accessibility-team"
14
+ ],
15
+ "specialists": [
16
+ "cx-designer"
17
+ ],
18
+ "decisionRights": [
19
+ "intake-triage",
20
+ "design-approval",
21
+ "scope-change",
22
+ "evidence-requirement"
23
+ ],
24
+ "forbiddenDecisions": [
25
+ "deployment",
26
+ "security-override",
27
+ "infra-change"
28
+ ],
29
+ "escalationPath": [
30
+ "product-manager",
31
+ "rd-lead",
32
+ "orchestrator"
33
+ ],
34
+ "charter": "Own interaction and visual design decisions within product scope. Partners with Accessibility on inclusive patterns and with Product Management on acceptance criteria.",
35
+ "contact": {
36
+ "slack": "#product",
37
+ "email": "product@example.com",
38
+ "owner": "product-manager"
39
+ }
40
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "id": "engineering-team",
3
+ "kind": "squad",
4
+ "groupId": "engineering-group",
5
+ "name": "Engineering",
6
+ "owner": "architect",
7
+ "roles": [
8
+ "architect",
9
+ "engineer",
10
+ "debugger",
11
+ "ai-engineer",
12
+ "data-engineer",
13
+ "platform-engineer"
14
+ ],
15
+ "specialists": [
16
+ "cx-ai-engineer",
17
+ "cx-architect",
18
+ "cx-engineer",
19
+ "cx-debugger",
20
+ "cx-platform-engineer",
21
+ "cx-data-engineer"
22
+ ],
23
+ "collaborators": [],
24
+ "decisionRights": [
25
+ "architecture",
26
+ "technology-selection",
27
+ "implementation-approach",
28
+ "performance-optimization"
29
+ ],
30
+ "forbiddenDecisions": [
31
+ "product-scope",
32
+ "user-research",
33
+ "deployment-timing"
34
+ ],
35
+ "escalationPath": [
36
+ "architect",
37
+ "rd-lead",
38
+ "orchestrator"
39
+ ],
40
+ "charter": "Design, build, and harden the system. Owns architecture decisions, technology choices, code quality, debugging, AI integration, and the platform underneath. Does not own product framing, user research direction, or release timing. Escalates tech-debt conflicts to R&D leadership.",
41
+ "contact": {
42
+ "slack": "#engineering",
43
+ "email": "engineering@example.com",
44
+ "owner": "architect"
45
+ },
46
+ "evidence": [
47
+ "AGENTS.md (rnd profile departments section)",
48
+ "docs/guides/concepts/architecture.mdx"
49
+ ]
50
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "id": "governance-team",
3
+ "kind": "squad",
4
+ "groupId": "governance-group",
5
+ "name": "Governance",
6
+ "owner": "security",
7
+ "roles": [
8
+ "security",
9
+ "legal-compliance"
10
+ ],
11
+ "specialists": [
12
+ "cx-security",
13
+ "cx-legal-compliance"
14
+ ],
15
+ "collaborators": [],
16
+ "decisionRights": [
17
+ "security-approval",
18
+ "compliance-review",
19
+ "risk-assessment",
20
+ "policy-definition"
21
+ ],
22
+ "forbiddenDecisions": [
23
+ "product-scope",
24
+ "implementation-approach",
25
+ "deployment-readiness"
26
+ ],
27
+ "escalationPath": [
28
+ "security",
29
+ "architect",
30
+ "orchestrator"
31
+ ],
32
+ "charter": "Keep the system safe to operate and inside its legal envelope. Owns security review, compliance verification, risk assessment, and the audit trail. Does not own implementation or product decisions but can block deployments that violate policy. Escalates policy conflicts to orchestrator.",
33
+ "contact": {
34
+ "slack": "#governance",
35
+ "email": "governance@example.com",
36
+ "owner": "security"
37
+ },
38
+ "evidence": [
39
+ "AGENTS.md (rnd profile departments section)"
40
+ ]
41
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "id": "operations-team",
3
+ "kind": "squad",
4
+ "groupId": "operations-group",
5
+ "name": "Operations",
6
+ "owner": "sre",
7
+ "roles": [
8
+ "release-manager",
9
+ "sre",
10
+ "operations",
11
+ "docs-keeper"
12
+ ],
13
+ "specialists": [
14
+ "cx-operations",
15
+ "cx-sre",
16
+ "cx-release-manager",
17
+ "cx-docs-keeper"
18
+ ],
19
+ "collaborators": [],
20
+ "decisionRights": [
21
+ "deployment",
22
+ "rollback",
23
+ "incident-response",
24
+ "runbook-approval",
25
+ "ops-procedure"
26
+ ],
27
+ "forbiddenDecisions": [
28
+ "architecture",
29
+ "product-scope",
30
+ "security-policy"
31
+ ],
32
+ "escalationPath": [
33
+ "sre",
34
+ "architect",
35
+ "orchestrator"
36
+ ],
37
+ "charter": "Keep the system running and shipping. Owns release management, SRE response, ops runbooks, documentation upkeep, and deployment execution. Does not own architecture or product decisions. Escalates reliability vs. change-rate conflicts to architecture/leadership.",
38
+ "contact": {
39
+ "slack": "#operations",
40
+ "email": "operations@example.com",
41
+ "owner": "sre"
42
+ },
43
+ "evidence": [
44
+ "AGENTS.md (rnd profile departments section)"
45
+ ]
46
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "id": "product-management-team",
3
+ "kind": "squad",
4
+ "groupId": "product-group",
5
+ "name": "Product Management",
6
+ "owner": "product-manager",
7
+ "roles": [
8
+ "product-manager",
9
+ "product-manager.product",
10
+ "product-manager.platform",
11
+ "product-manager.enterprise",
12
+ "product-manager.ai-product",
13
+ "product-manager.growth"
14
+ ],
15
+ "collaborators": [
16
+ "ux-research-team",
17
+ "design-team",
18
+ "research-team"
19
+ ],
20
+ "specialists": [
21
+ "cx-product-manager"
22
+ ],
23
+ "decisionRights": [
24
+ "intake-triage",
25
+ "design-approval",
26
+ "scope-change",
27
+ "evidence-requirement"
28
+ ],
29
+ "forbiddenDecisions": [
30
+ "deployment",
31
+ "security-override",
32
+ "infra-change"
33
+ ],
34
+ "escalationPath": [
35
+ "product-manager",
36
+ "rd-lead",
37
+ "orchestrator"
38
+ ],
39
+ "charter": "Own requirements, evidence-backed prioritization, and PRD-family artifacts. PM flavors (platform, growth, enterprise, AI product) are overlays — pick one per task. Escalates scope conflicts to Product Group leadership.",
40
+ "contact": {
41
+ "slack": "#product",
42
+ "email": "product@example.com",
43
+ "owner": "product-manager"
44
+ }
45
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "id": "quality-team",
3
+ "kind": "squad",
4
+ "groupId": "quality-group",
5
+ "name": "Quality",
6
+ "owner": "reviewer",
7
+ "roles": [
8
+ "reviewer",
9
+ "qa",
10
+ "test-automation",
11
+ "evaluator",
12
+ "trace-reviewer",
13
+ "devil-advocate"
14
+ ],
15
+ "specialists": [
16
+ "cx-evaluator",
17
+ "cx-devil-advocate",
18
+ "cx-reviewer",
19
+ "cx-qa",
20
+ "cx-trace-reviewer",
21
+ "cx-test-automation"
22
+ ],
23
+ "collaborators": [],
24
+ "decisionRights": [
25
+ "quality-gate-approval",
26
+ "test-strategy",
27
+ "evaluation-design",
28
+ "release-readiness"
29
+ ],
30
+ "forbiddenDecisions": [
31
+ "scope-change",
32
+ "deployment-timing",
33
+ "architecture"
34
+ ],
35
+ "escalationPath": [
36
+ "reviewer",
37
+ "architect",
38
+ "rd-lead"
39
+ ],
40
+ "charter": "Verify the system does what it claims and surface what is broken. Owns review, testing, evaluation, trace analysis, and devil's-advocate framing. Does not own implementation or product decisions. Escalates quality vs. schedule conflicts to architecture/R&D.",
41
+ "contact": {
42
+ "slack": "#quality",
43
+ "email": "quality@example.com",
44
+ "owner": "reviewer"
45
+ },
46
+ "evidence": [
47
+ "AGENTS.md (rnd profile departments section)"
48
+ ]
49
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "id": "research-team",
3
+ "kind": "squad",
4
+ "groupId": "product-group",
5
+ "name": "Research",
6
+ "owner": "researcher",
7
+ "roles": [
8
+ "researcher"
9
+ ],
10
+ "collaborators": [
11
+ "product-management-team",
12
+ "ux-research-team"
13
+ ],
14
+ "specialists": [
15
+ "cx-researcher"
16
+ ],
17
+ "decisionRights": [
18
+ "intake-triage",
19
+ "design-approval",
20
+ "scope-change",
21
+ "evidence-requirement"
22
+ ],
23
+ "forbiddenDecisions": [
24
+ "deployment",
25
+ "security-override",
26
+ "infra-change"
27
+ ],
28
+ "escalationPath": [
29
+ "product-manager",
30
+ "rd-lead",
31
+ "orchestrator"
32
+ ],
33
+ "charter": "Own exploratory research, codebase discovery, and knowledge synthesis that informs product framing. Does not own implementation or release timing.",
34
+ "contact": {
35
+ "slack": "#product",
36
+ "email": "product@example.com",
37
+ "owner": "product-manager"
38
+ }
39
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "id": "strategy-team",
3
+ "kind": "squad",
4
+ "groupId": "strategy-group",
5
+ "name": "Strategy",
6
+ "owner": "rd-lead",
7
+ "roles": [
8
+ "rd-lead",
9
+ "business-strategist",
10
+ "data-analyst",
11
+ "explorer",
12
+ "orchestrator"
13
+ ],
14
+ "specialists": [
15
+ "cx-orchestrator",
16
+ "cx-oracle",
17
+ "cx-rd-lead",
18
+ "cx-business-strategist",
19
+ "cx-data-analyst",
20
+ "cx-explorer"
21
+ ],
22
+ "collaborators": [],
23
+ "decisionRights": [
24
+ "direction-setting",
25
+ "strategic-prioritization",
26
+ "measurement-design",
27
+ "research-scope",
28
+ "cross-team-orchestration"
29
+ ],
30
+ "forbiddenDecisions": [
31
+ "implementation-details",
32
+ "user-research-methods",
33
+ "ops-procedures"
34
+ ],
35
+ "escalationPath": [
36
+ "rd-lead",
37
+ "orchestrator"
38
+ ],
39
+ "charter": "Hold the long view: what to build next, what to measure, what to retire. Owns R&D direction, strategic prioritization, measurement design, cross-team orchestration, and exploration. Does not own implementation or day-to-day operations. Arbitrates escalations from other groups.",
40
+ "contact": {
41
+ "slack": "#strategy",
42
+ "email": "strategy@example.com",
43
+ "owner": "rd-lead"
44
+ },
45
+ "evidence": [
46
+ "AGENTS.md (rnd profile departments section)"
47
+ ]
48
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "id": "ux-research-team",
3
+ "kind": "squad",
4
+ "groupId": "product-group",
5
+ "name": "UX Research",
6
+ "owner": "ux-researcher",
7
+ "roles": [
8
+ "ux-researcher"
9
+ ],
10
+ "collaborators": [
11
+ "product-management-team",
12
+ "design-team"
13
+ ],
14
+ "specialists": [
15
+ "cx-ux-researcher"
16
+ ],
17
+ "decisionRights": [
18
+ "intake-triage",
19
+ "design-approval",
20
+ "scope-change",
21
+ "evidence-requirement"
22
+ ],
23
+ "forbiddenDecisions": [
24
+ "deployment",
25
+ "security-override",
26
+ "infra-change"
27
+ ],
28
+ "escalationPath": [
29
+ "product-manager",
30
+ "rd-lead",
31
+ "orchestrator"
32
+ ],
33
+ "charter": "Own user research, usability findings, and evidence that grounds product decisions. Partners with Product Management on intake and with Design on interaction validation.",
34
+ "contact": {
35
+ "slack": "#product",
36
+ "email": "product@example.com",
37
+ "owner": "product-manager"
38
+ }
39
+ }
@@ -21,6 +21,6 @@ Every specialist shares this contract. See `rules/common/no-fabrication.md` for
21
21
  - Name the strongest counter-evidence when one exists.
22
22
  - Separate observation from inference. Speculation belongs in questions, not requirements.
23
23
  - If unanimous agreement with no challenge, invoke cx-devil-advocate or cx-reviewer for high-risk artifacts (PRD, ADR, RFC, strategy).
24
- - cx-devil-advocate challenges on high-risk artifacts must follow the FMEA pass in `roles/reviewer.devil-advocate` (failure mode, effect, cause; severity × occurrence × detection RPN ranking; mitigations for highest-RPN modes).
24
+ - cx-devil-advocate challenges on high-risk artifacts must follow the FMEA pass in `roles/devil-advocate` (failure mode, effect, cause; severity × occurrence × detection RPN ranking; mitigations for highest-RPN modes).
25
25
  - PRD-family artifacts require cx-devil-advocate in the agent log before ship (`specialists/artifact-manifest.json` `releaseGate.requiredReviewers`); run `construct artifact validate <path> --type=<type>` to confirm.
26
26
  - Threat models and security reviews must enumerate STRIDE per trust boundary (`roles/security` methodology); escalate to PASTA when blast radius is wide.
@@ -0,0 +1,10 @@
1
+ ## Team context
2
+
3
+ Squad: **{{squadName}}** (`{{squadId}}`)
4
+ Group: **{{groupName}}** (`{{groupId}}`)
5
+
6
+ {{charterExcerpt}}
7
+
8
+ Collaborators: {{collaboratorIds}}
9
+
10
+ Invoke sibling squad specialists when work crosses squad boundaries. Call `suggest_skills` when the task domain is ambiguous.
@@ -35,6 +35,7 @@ every finding cites a WCAG criterion and a concrete repro step (keyboard sequenc
35
35
  **Failure mode warning**: If every finding is LOW severity, you're reading the spec without using the product. Try it with a screen reader.
36
36
 
37
37
  **Role guidance**: call `get_skill("roles/designer.accessibility")` before drafting. Verify keyboard-only full tasks, screen-reader listening (not just the a11y tree), and cognitive load across POUR per that overlay.
38
+ **Team**: Accessibility squad (`accessibility-team`) · Product Group (`product-group`). Collaborators: design-team, ux-research-team. Call `suggest_skills` when the task domain is ambiguous.
38
39
 
39
40
  WCAG 2.1 AA baseline:
40
41
  - 1.4.3 Contrast: 4.5:1 normal text, 3:1 large text