@geraldmaron/construct 1.2.3 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (505) hide show
  1. package/README.md +7 -10
  2. package/bin/construct +235 -209
  3. package/bin/construct-postinstall.mjs +0 -21
  4. package/commands/work/optimize-prompts.md +1 -1
  5. package/examples/distribution/sources/adr.md +2 -2
  6. package/examples/seed-observations/decisions.md +1 -1
  7. package/lib/artifact-loop-core.mjs +412 -0
  8. package/lib/artifact-manifest.mjs +6 -0
  9. package/lib/artifact-release-gate.mjs +115 -49
  10. package/lib/audit-rules.mjs +2 -4
  11. package/lib/audit-skills.mjs +32 -20
  12. package/lib/audit-specialists.mjs +44 -26
  13. package/lib/auto-docs.mjs +6 -5
  14. package/lib/brand-prose.mjs +3 -3
  15. package/lib/brand-tokens.mjs +2 -2
  16. package/lib/certification/artifact-fixtures.mjs +4 -1
  17. package/lib/certification/demo-parity.mjs +6 -32
  18. package/lib/certification/real-llm-scenarios.mjs +58 -13
  19. package/lib/certification/role-cards.mjs +7 -6
  20. package/lib/certification/role-overlays.mjs +4 -4
  21. package/lib/certification/runner.mjs +9 -2
  22. package/lib/certification/skill-inventory.mjs +34 -22
  23. package/lib/certification/skill-scenarios.mjs +21 -8
  24. package/lib/certification/specialist-contracts.mjs +4 -3
  25. package/lib/certification/specialist-scenarios.mjs +7 -6
  26. package/lib/certification/status.mjs +5 -4
  27. package/lib/cli-commands.mjs +55 -54
  28. package/lib/comment-lint.mjs +1 -5
  29. package/lib/completions.mjs +20 -2
  30. package/lib/config/legacy-config-migration.mjs +90 -24
  31. package/lib/config/schema.mjs +5 -5
  32. package/lib/config/source-targets.mjs +80 -0
  33. package/lib/contracts/validate.mjs +119 -51
  34. package/lib/decisions/golden.mjs +3 -2
  35. package/lib/decisions/registry.mjs +11 -6
  36. package/lib/demo-project.mjs +188 -0
  37. package/lib/demo-recording.mjs +9 -34
  38. package/lib/demo-script.mjs +2 -2
  39. package/lib/demo-surface.mjs +13 -131
  40. package/lib/demo-tour-renderer.mjs +92 -0
  41. package/lib/demo.mjs +69 -54
  42. package/lib/diagram-export.mjs +63 -14
  43. package/lib/doctor/cli.mjs +12 -2
  44. package/lib/doctor/source-checkout.mjs +3 -4
  45. package/lib/doctor/watchers/consistency.mjs +148 -43
  46. package/lib/doctor/watchers/credential-parity.mjs +97 -0
  47. package/lib/doctor/watchers/mcp-protocol.mjs +1 -1
  48. package/lib/doctor/watchers/service-health.mjs +4 -32
  49. package/lib/document-export.mjs +73 -9
  50. package/lib/document-extract.mjs +10 -198
  51. package/lib/embed/artifact.mjs +2 -3
  52. package/lib/embed/cli.mjs +1 -1
  53. package/lib/embed/config.mjs +1 -2
  54. package/lib/embed/customer-profiles.mjs +1 -1
  55. package/lib/embed/daemon.mjs +5 -6
  56. package/lib/embed/demand-fetch.mjs +114 -2
  57. package/lib/embed/docs-lifecycle.mjs +9 -5
  58. package/lib/embed/intake-metrics.mjs +2 -2
  59. package/lib/embed/notifications.mjs +2 -3
  60. package/lib/embed/recommendation-store.mjs +25 -22
  61. package/lib/embed/role-framing.mjs +4 -9
  62. package/lib/embedded-contract/capability.mjs +4 -2
  63. package/lib/embedded-contract/contract-version.mjs +1 -1
  64. package/lib/env-config.mjs +2 -2
  65. package/lib/flavors/loader.mjs +21 -19
  66. package/lib/graph/build-from-registry.mjs +31 -7
  67. package/lib/graph/staleness.mjs +1 -1
  68. package/lib/headhunt.mjs +82 -35
  69. package/lib/hooks/agent-tracker.mjs +2 -2
  70. package/lib/hooks/config-protection.mjs +1 -1
  71. package/lib/hooks/registry-sync.mjs +3 -3
  72. package/lib/host-capabilities.mjs +5 -5
  73. package/lib/improvement/controller.mjs +2 -2
  74. package/lib/init-unified.mjs +19 -21
  75. package/lib/intake/classify.mjs +26 -0
  76. package/lib/intake/daemon.mjs +2 -3
  77. package/lib/intake/prepare.mjs +10 -3
  78. package/lib/intake/session-prelude.mjs +1 -1
  79. package/lib/intake/tables/creative.mjs +9 -9
  80. package/lib/intake/tables/operations.mjs +4 -4
  81. package/lib/intake/tables/research.mjs +2 -2
  82. package/lib/integrations/intake-integrations.mjs +9 -10
  83. package/lib/knowledge/research-store.mjs +2 -2
  84. package/lib/mcp/server.mjs +104 -61
  85. package/lib/mcp/tool-budget.mjs +1 -46
  86. package/lib/mcp/tool-recovery.mjs +44 -0
  87. package/lib/mcp/tools/artifact-author.mjs +36 -0
  88. package/lib/mcp/tools/find-tool.mjs +86 -0
  89. package/lib/mcp/tools/orchestration-run.mjs +107 -69
  90. package/lib/mcp/tools/project.mjs +4 -3
  91. package/lib/mcp/tools/{profile.mjs → scope.mjs} +54 -52
  92. package/lib/mcp/tools/skills.mjs +39 -22
  93. package/lib/mcp/tools/telemetry.mjs +2 -1
  94. package/lib/mcp/tools/workflow.mjs +1 -1
  95. package/lib/mcp-platform-config.mjs +7 -5
  96. package/lib/migrations/index.mjs +4 -2
  97. package/lib/migrations/v2-unified-registry.mjs +35 -0
  98. package/lib/model-router.mjs +203 -36
  99. package/lib/models/catalog.mjs +25 -9
  100. package/lib/models/execution-capability-profile.mjs +3 -3
  101. package/lib/models/execution-policy.mjs +7 -6
  102. package/lib/models/provider-poll.mjs +18 -4
  103. package/lib/opencode-config.mjs +56 -1
  104. package/lib/opencode-runtime-plugin.mjs +13 -10
  105. package/lib/oracle/artifact-gate.mjs +14 -4
  106. package/lib/oracle/cli.mjs +2 -0
  107. package/lib/oracle/dispatch.mjs +18 -1
  108. package/lib/oracle/execute.mjs +39 -7
  109. package/lib/oracle/index.mjs +1 -1
  110. package/lib/oracle/org-graph.mjs +10 -5
  111. package/lib/oracle/policy.mjs +6 -0
  112. package/lib/oracle/read-model.mjs +103 -6
  113. package/lib/oracle/reconcile.mjs +31 -4
  114. package/lib/oracle/remediation-dispatch.mjs +53 -0
  115. package/lib/oracle/routing.mjs +5 -0
  116. package/lib/oracle/synthesize.mjs +80 -3
  117. package/lib/orchestration/routing-tables.mjs +44 -10
  118. package/lib/orchestration/runtime.mjs +2 -0
  119. package/lib/orchestration/worker.mjs +1 -1
  120. package/lib/orchestration-policy.mjs +351 -62
  121. package/lib/overrides/resolver.mjs +1 -12
  122. package/lib/parity.mjs +37 -11
  123. package/lib/policy/engine.mjs +80 -15
  124. package/lib/prompt-composer.js +51 -15
  125. package/lib/prompt-metadata.mjs +3 -2
  126. package/lib/providers/connection-probe.mjs +58 -0
  127. package/lib/providers/copilot-auth.mjs +1 -1
  128. package/lib/providers/credential-bootstrap.mjs +1 -1
  129. package/lib/providers/op-run.mjs +3 -4
  130. package/lib/providers/secret-resolver.mjs +31 -0
  131. package/lib/publish-tooling.mjs +3 -11
  132. package/lib/publish.mjs +12 -29
  133. package/lib/reconcile/mcp-entry-reconcile.mjs +14 -9
  134. package/lib/reflect.mjs +2 -2
  135. package/lib/registry/agent-manifest.mjs +190 -0
  136. package/lib/registry/assemble.mjs +133 -0
  137. package/lib/registry/catalog.mjs +171 -0
  138. package/lib/registry/cli.mjs +590 -6
  139. package/lib/registry/consolidation.mjs +5 -4
  140. package/lib/registry/docs-sync.mjs +67 -0
  141. package/lib/registry/loader.mjs +147 -0
  142. package/lib/registry/org-io.mjs +76 -0
  143. package/lib/registry/retired-paths.mjs +71 -0
  144. package/lib/registry/surface-map.mjs +5 -7
  145. package/lib/registry/validator.mjs +438 -0
  146. package/lib/research-execution-policy.mjs +173 -0
  147. package/lib/roles/catalog.mjs +4 -9
  148. package/lib/roles/fence.mjs +107 -1
  149. package/lib/roles/flavor-bindings.mjs +68 -0
  150. package/lib/roles/gateway.mjs +140 -29
  151. package/lib/roles/manifest.mjs +22 -13
  152. package/lib/roles/router.mjs +1 -1
  153. package/lib/scopes/enrich.mjs +67 -0
  154. package/lib/scopes/hooks.mjs +12 -0
  155. package/lib/{profiles → scopes}/lifecycle.mjs +70 -70
  156. package/lib/scopes/loader.mjs +104 -0
  157. package/lib/scopes/rebrand.mjs +32 -0
  158. package/lib/scopes/research-profile.mjs +16 -0
  159. package/lib/scopes/teams.mjs +98 -0
  160. package/lib/service-manager.mjs +1 -117
  161. package/lib/setup-prompts.mjs +1 -1
  162. package/lib/setup.mjs +6 -26
  163. package/lib/skills/composition-graph.mjs +98 -0
  164. package/lib/skills/router.mjs +80 -0
  165. package/lib/specialist-contracts.mjs +17 -18
  166. package/lib/specialists/postconditions.mjs +2 -2
  167. package/lib/specialists/prompt-schema.mjs +6 -5
  168. package/lib/specialists/roster.mjs +7 -12
  169. package/lib/specialists/schema.mjs +9 -6
  170. package/lib/status.mjs +25 -90
  171. package/lib/storage/file-lock.mjs +6 -3
  172. package/lib/telemetry/skill-calls.mjs +1 -1
  173. package/lib/templates/doc-presentation.mjs +63 -0
  174. package/lib/templates/visual-requirements.mjs +35 -2
  175. package/lib/term-format.mjs +107 -2
  176. package/lib/test-env-setup.mjs +21 -0
  177. package/lib/ui/components.mjs +42 -0
  178. package/lib/ui/glyphs.mjs +58 -0
  179. package/lib/ui/links.mjs +115 -0
  180. package/lib/ui/theme.mjs +108 -0
  181. package/lib/uninstall/uninstall.mjs +2 -1
  182. package/lib/validator.mjs +45 -8
  183. package/lib/validators/skill-effectiveness.mjs +174 -0
  184. package/lib/validators/skills.mjs +1 -1
  185. package/package.json +12 -8
  186. package/personas/construct.md +12 -3
  187. package/platforms/claude/CLAUDE.md +1 -1
  188. package/rules/common/beads-hygiene.md +52 -0
  189. package/rules/common/neurodivergent-output.md +4 -7
  190. package/rules/common/research.md +2 -0
  191. package/scripts/sync-specialists.mjs +269 -51
  192. package/skills/ai/prompt-optimizer.md +3 -3
  193. package/skills/brand/output-vibe.md +48 -0
  194. package/skills/docs/adr-workflow.md +3 -0
  195. package/skills/docs/backlog-proposal-workflow.md +3 -0
  196. package/skills/docs/codebase-research-workflow.md +5 -2
  197. package/skills/docs/customer-profile-workflow.md +3 -0
  198. package/skills/docs/document-ingest-workflow.md +3 -0
  199. package/skills/docs/evidence-ingest-workflow.md +4 -1
  200. package/skills/docs/init-project.md +1 -1
  201. package/skills/docs/prd-workflow.md +1 -1
  202. package/skills/docs/prfaq-workflow.md +3 -0
  203. package/skills/docs/product-intelligence-workflow.md +4 -1
  204. package/skills/docs/product-signal-workflow.md +3 -0
  205. package/skills/docs/research-workflow.md +13 -6
  206. package/skills/docs/runbook-workflow.md +3 -0
  207. package/skills/docs/strategy-workflow.md +3 -0
  208. package/skills/docs/user-research-workflow.md +6 -3
  209. package/skills/operating/orchestration-reference.md +1 -1
  210. package/skills/roles/{engineer.ai.md → ai-engineer.md} +2 -2
  211. package/skills/roles/architect.ai-systems.md +1 -1
  212. package/skills/roles/architect.data.md +1 -1
  213. package/skills/roles/architect.enterprise.md +1 -1
  214. package/skills/roles/architect.integration.md +1 -1
  215. package/skills/roles/architect.md +1 -1
  216. package/skills/roles/architect.platform.md +1 -1
  217. package/skills/roles/{product-manager.business-strategy.md → business-strategist.md} +3 -3
  218. package/skills/roles/data-analyst.experiment.md +1 -1
  219. package/skills/roles/data-analyst.md +1 -1
  220. package/skills/roles/data-analyst.product-intelligence.md +1 -1
  221. package/skills/roles/data-analyst.product.md +1 -1
  222. package/skills/roles/data-analyst.telemetry.md +1 -1
  223. package/skills/roles/{engineer.data.md → data-engineer.md} +2 -2
  224. package/skills/roles/data-engineer.pipeline.md +2 -2
  225. package/skills/roles/data-engineer.vector-retrieval.md +2 -2
  226. package/skills/roles/data-engineer.warehouse.md +2 -2
  227. package/skills/roles/debugger.md +1 -1
  228. package/skills/roles/designer.accessibility.md +1 -1
  229. package/skills/roles/designer.md +1 -1
  230. package/skills/roles/{reviewer.devil-advocate.md → devil-advocate.md} +2 -2
  231. package/skills/roles/{operator.docs.md → docs-keeper.md} +3 -3
  232. package/skills/roles/engineer.md +3 -7
  233. package/skills/roles/{reviewer.evaluator.md → evaluator.md} +2 -2
  234. package/skills/roles/{researcher.explorer.md → explorer.md} +2 -2
  235. package/skills/roles/{operator.md → operations.md} +2 -5
  236. package/skills/roles/orchestrator.md +1 -1
  237. package/skills/roles/{engineer.platform.md → platform-engineer.md} +2 -2
  238. package/skills/roles/product-manager.ai-product.md +1 -1
  239. package/skills/roles/product-manager.enterprise.md +1 -1
  240. package/skills/roles/product-manager.growth.md +1 -2
  241. package/skills/roles/product-manager.md +1 -2
  242. package/skills/roles/product-manager.platform.md +1 -1
  243. package/skills/roles/product-manager.product.md +1 -1
  244. package/skills/roles/qa.ai-eval.md +1 -1
  245. package/skills/roles/qa.api-contract.md +1 -1
  246. package/skills/roles/qa.data-pipeline.md +1 -1
  247. package/skills/roles/qa.md +1 -1
  248. package/skills/roles/qa.web-ui.md +1 -1
  249. package/skills/roles/{operator.release.md → release-manager.md} +3 -3
  250. package/skills/roles/researcher.md +1 -1
  251. package/skills/roles/reviewer.md +1 -1
  252. package/skills/roles/security.ai.md +1 -1
  253. package/skills/roles/security.appsec.md +1 -1
  254. package/skills/roles/security.cloud.md +1 -1
  255. package/skills/roles/security.legal-compliance.md +1 -1
  256. package/skills/roles/security.md +1 -1
  257. package/skills/roles/security.privacy.md +1 -1
  258. package/skills/roles/security.supply-chain.md +1 -1
  259. package/skills/roles/{operator.sre.md → sre.md} +3 -3
  260. package/skills/roles/{qa.test-automation.md → test-automation.md} +2 -2
  261. package/skills/roles/{reviewer.trace.md → trace-reviewer.md} +2 -2
  262. package/skills/roles/{researcher.ux.md → ux-researcher.md} +2 -2
  263. package/skills/routing.json +18 -0
  264. package/skills/routing.md +1 -1
  265. package/specialists/artifact-manifest.json +2 -1
  266. package/specialists/audit-enrichments.json +14 -14
  267. package/specialists/org/contracts/accessibility-to-qa.json +37 -0
  268. package/specialists/org/contracts/any-to-business-strategist.json +57 -0
  269. package/specialists/org/contracts/any-to-debugger.json +38 -0
  270. package/specialists/org/contracts/any-to-designer.json +33 -0
  271. package/specialists/org/contracts/any-to-docs-keeper.json +34 -0
  272. package/specialists/org/contracts/any-to-explorer.json +39 -0
  273. package/specialists/org/contracts/any-to-sre-incident.json +33 -0
  274. package/specialists/org/contracts/any-to-trace-reviewer.json +32 -0
  275. package/specialists/org/contracts/architect-to-ai-engineer.json +32 -0
  276. package/specialists/org/contracts/architect-to-data-engineer.json +52 -0
  277. package/specialists/org/contracts/architect-to-devil-advocate.json +38 -0
  278. package/specialists/org/contracts/architect-to-engineer.json +34 -0
  279. package/specialists/org/contracts/architect-to-evaluator.json +59 -0
  280. package/specialists/org/contracts/architect-to-legal-compliance.json +55 -0
  281. package/specialists/org/contracts/architect-to-operations.json +45 -0
  282. package/specialists/org/contracts/architect-to-platform-engineer.json +42 -0
  283. package/specialists/org/contracts/business-strategist-to-product-manager.json +39 -0
  284. package/specialists/org/contracts/construct-to-orchestrator.json +36 -0
  285. package/specialists/org/contracts/construct-to-rd-lead.json +53 -0
  286. package/specialists/org/contracts/data-analyst-to-product-manager.json +43 -0
  287. package/specialists/org/contracts/data-engineer-to-platform-engineer.json +36 -0
  288. package/specialists/org/contracts/designer-to-accessibility.json +36 -0
  289. package/specialists/org/contracts/engineer-to-qa.json +34 -0
  290. package/specialists/org/contracts/engineer-to-reviewer.json +52 -0
  291. package/specialists/org/contracts/explorer-to-engineer.json +38 -0
  292. package/specialists/org/contracts/legal-compliance-to-release-manager.json +43 -0
  293. package/specialists/org/contracts/platform-engineer-to-engineer.json +31 -0
  294. package/specialists/org/contracts/product-manager-to-architect.json +71 -0
  295. package/specialists/org/contracts/product-manager-to-data-analyst.json +49 -0
  296. package/specialists/org/contracts/product-manager-to-ux-researcher.json +51 -0
  297. package/specialists/org/contracts/qa-to-release-manager.json +42 -0
  298. package/specialists/org/contracts/qa-to-test-automation.json +42 -0
  299. package/specialists/org/contracts/rd-lead-to-architect.json +38 -0
  300. package/specialists/org/contracts/researcher-to-architect.json +40 -0
  301. package/specialists/org/contracts/researcher-to-product-manager.json +57 -0
  302. package/specialists/org/contracts/reviewer-to-security.json +41 -0
  303. package/specialists/org/contracts/sre-to-release-manager.json +36 -0
  304. package/specialists/org/contracts/test-automation-to-engineer.json +34 -0
  305. package/specialists/org/contracts/trace-reviewer-to-sre.json +41 -0
  306. package/specialists/org/contracts/user-to-construct.json +30 -0
  307. package/specialists/org/groups/engineering-group.json +43 -0
  308. package/specialists/org/groups/governance-group.json +38 -0
  309. package/specialists/org/groups/operations-group.json +41 -0
  310. package/specialists/org/groups/product-group.json +46 -0
  311. package/specialists/org/groups/quality-group.json +42 -0
  312. package/specialists/org/groups/strategy-group.json +41 -0
  313. package/specialists/org/policies/action-approval.json +13 -0
  314. package/specialists/org/policies/agents-routing.json +13 -0
  315. package/specialists/org/policies/architecture.json +20 -0
  316. package/specialists/org/policies/bash-safety.json +13 -0
  317. package/specialists/org/policies/beads-hygiene.json +13 -0
  318. package/specialists/org/policies/bootstrap-state.json +13 -0
  319. package/specialists/org/policies/code-review.json +13 -0
  320. package/specialists/org/policies/coding-style.json +13 -0
  321. package/specialists/org/policies/comments.json +13 -0
  322. package/specialists/org/policies/commit-approval.json +13 -0
  323. package/specialists/org/policies/contract-preconditions.json +13 -0
  324. package/specialists/org/policies/deployment.json +20 -0
  325. package/specialists/org/policies/description.json +14 -0
  326. package/specialists/org/policies/design-approval.json +19 -0
  327. package/specialists/org/policies/doc-ownership.json +13 -0
  328. package/specialists/org/policies/file-path-fence.json +13 -0
  329. package/specialists/org/policies/framing.json +13 -0
  330. package/specialists/org/policies/git-workflow.json +13 -0
  331. package/specialists/org/policies/incident-response.json +15 -0
  332. package/specialists/org/policies/intake-triage.json +15 -0
  333. package/specialists/org/policies/neurodivergent-output.json +13 -0
  334. package/specialists/org/policies/no-fabrication.json +13 -0
  335. package/specialists/org/policies/patterns.json +13 -0
  336. package/specialists/org/policies/quality-gate-approval.json +17 -0
  337. package/specialists/org/policies/release-gates.json +13 -0
  338. package/specialists/org/policies/research-evidence.json +13 -0
  339. package/specialists/org/policies/review-before-change.json +13 -0
  340. package/specialists/org/policies/rollback.json +15 -0
  341. package/specialists/org/policies/scope-change.json +20 -0
  342. package/specialists/org/policies/secret-scan.json +13 -0
  343. package/specialists/org/policies/security-approval.json +17 -0
  344. package/specialists/org/policies/security.json +13 -0
  345. package/specialists/org/policies/session-efficiency.json +13 -0
  346. package/specialists/org/policies/skill-routing.json +13 -0
  347. package/specialists/org/policies/strategic-prioritization.json +17 -0
  348. package/specialists/org/policies/testing.json +13 -0
  349. package/specialists/org/policies/tool-invisibility.json +14 -0
  350. package/specialists/org/scopes/creative.json +54 -0
  351. package/specialists/org/scopes/operations.json +51 -0
  352. package/specialists/org/scopes/research.json +60 -0
  353. package/specialists/org/scopes/rnd.json +81 -0
  354. package/specialists/org/specialists/cx-accessibility.json +69 -0
  355. package/specialists/org/specialists/cx-ai-engineer.json +75 -0
  356. package/specialists/org/specialists/cx-architect.json +89 -0
  357. package/specialists/org/specialists/cx-business-strategist.json +72 -0
  358. package/specialists/org/specialists/cx-data-analyst.json +68 -0
  359. package/specialists/org/specialists/cx-data-engineer.json +71 -0
  360. package/specialists/org/specialists/cx-debugger.json +75 -0
  361. package/specialists/org/specialists/cx-designer.json +85 -0
  362. package/specialists/org/specialists/cx-devil-advocate.json +71 -0
  363. package/specialists/org/specialists/cx-docs-keeper.json +82 -0
  364. package/specialists/org/specialists/cx-engineer.json +106 -0
  365. package/specialists/org/specialists/cx-evaluator.json +69 -0
  366. package/specialists/org/specialists/cx-explorer.json +69 -0
  367. package/specialists/org/specialists/cx-legal-compliance.json +74 -0
  368. package/specialists/org/specialists/cx-operations.json +72 -0
  369. package/specialists/org/specialists/cx-oracle.json +46 -0
  370. package/specialists/org/specialists/cx-orchestrator.json +81 -0
  371. package/specialists/org/specialists/cx-platform-engineer.json +80 -0
  372. package/specialists/org/specialists/cx-product-manager.json +102 -0
  373. package/specialists/org/specialists/cx-qa.json +79 -0
  374. package/specialists/org/specialists/cx-rd-lead.json +73 -0
  375. package/specialists/org/specialists/cx-release-manager.json +77 -0
  376. package/specialists/org/specialists/cx-researcher.json +82 -0
  377. package/specialists/org/specialists/cx-reviewer.json +71 -0
  378. package/specialists/org/specialists/cx-security.json +91 -0
  379. package/specialists/org/specialists/cx-sre.json +94 -0
  380. package/specialists/org/specialists/cx-test-automation.json +69 -0
  381. package/specialists/org/specialists/cx-trace-reviewer.json +69 -0
  382. package/specialists/org/specialists/cx-ux-researcher.json +68 -0
  383. package/specialists/org/teams/accessibility-team.json +39 -0
  384. package/specialists/org/teams/design-team.json +40 -0
  385. package/specialists/org/teams/engineering-team.json +50 -0
  386. package/specialists/org/teams/governance-team.json +41 -0
  387. package/specialists/org/teams/operations-team.json +46 -0
  388. package/specialists/org/teams/product-management-team.json +45 -0
  389. package/specialists/org/teams/quality-team.json +49 -0
  390. package/specialists/org/teams/research-team.json +39 -0
  391. package/specialists/org/teams/strategy-team.json +48 -0
  392. package/specialists/org/teams/ux-research-team.json +39 -0
  393. package/specialists/prompts/_shared/validation-contract.md +1 -1
  394. package/specialists/prompts/_team-template.md +10 -0
  395. package/specialists/prompts/cx-accessibility.md +1 -0
  396. package/specialists/prompts/cx-ai-engineer.md +1 -1
  397. package/specialists/prompts/cx-business-strategist.md +1 -1
  398. package/specialists/prompts/cx-data-engineer.md +1 -1
  399. package/specialists/prompts/cx-designer.md +1 -0
  400. package/specialists/prompts/cx-devil-advocate.md +1 -1
  401. package/specialists/prompts/cx-docs-keeper.md +1 -1
  402. package/specialists/prompts/cx-evaluator.md +1 -1
  403. package/specialists/prompts/cx-explorer.md +1 -1
  404. package/specialists/prompts/cx-operations.md +1 -1
  405. package/specialists/prompts/cx-oracle.md +7 -3
  406. package/specialists/prompts/cx-orchestrator.md +17 -1
  407. package/specialists/prompts/cx-platform-engineer.md +1 -1
  408. package/specialists/prompts/cx-product-manager.md +2 -0
  409. package/specialists/prompts/cx-release-manager.md +1 -1
  410. package/specialists/prompts/cx-researcher.md +7 -4
  411. package/specialists/prompts/cx-sre.md +1 -1
  412. package/specialists/prompts/cx-test-automation.md +2 -2
  413. package/specialists/prompts/cx-trace-reviewer.md +3 -3
  414. package/specialists/prompts/cx-ux-researcher.md +2 -1
  415. package/templates/demos/scripts/architecture-review-adr.json +30 -0
  416. package/templates/demos/scripts/capability-contract.json +25 -0
  417. package/templates/demos/scripts/intake-triage.json +25 -0
  418. package/templates/demos/scripts/profile-doctor-health.json +25 -0
  419. package/templates/demos/tapes/agentic-platforms-prd.tape +2 -2
  420. package/templates/demos/tapes/architecture-review-adr.tape +44 -0
  421. package/templates/demos/tapes/capability-contract.tape +39 -0
  422. package/templates/demos/tapes/intake-triage.tape +39 -0
  423. package/templates/demos/tapes/profile-doctor-health.tape +39 -0
  424. package/templates/distribution/construct-brand.typ +23 -18
  425. package/templates/distribution/construct-decision.typ +1 -1
  426. package/templates/distribution/construct-pdf.typ +1 -1
  427. package/templates/distribution/construct-prd.typ +1 -1
  428. package/templates/distribution/construct-research.typ +1 -1
  429. package/templates/distribution/mermaid-puppeteer.json +8 -0
  430. package/templates/docs/persona-artifact.md +1 -1
  431. package/templates/docs/prd.md +6 -0
  432. package/apps/chat/engine/ai-sdk-agent.mjs +0 -183
  433. package/apps/chat/engine/loop-driver.mjs +0 -211
  434. package/apps/chat/engine/models.mjs +0 -122
  435. package/apps/chat/engine/provider-adapters.mjs +0 -171
  436. package/apps/chat/engine/tools/permission.mjs +0 -54
  437. package/apps/chat/engine/tools/primitives.mjs +0 -180
  438. package/apps/chat/engine/tools/registry.mjs +0 -122
  439. package/apps/chat/engine/turn-controls.mjs +0 -70
  440. package/lib/boundary.mjs +0 -127
  441. package/lib/certification/dashboard-api.mjs +0 -71
  442. package/lib/chat/cli.mjs +0 -333
  443. package/lib/chat/command-suggest.mjs +0 -161
  444. package/lib/chat/commands.mjs +0 -215
  445. package/lib/chat/config.mjs +0 -142
  446. package/lib/chat/context-compactor.mjs +0 -250
  447. package/lib/chat/context-continuation.mjs +0 -253
  448. package/lib/chat/continuation-source.mjs +0 -58
  449. package/lib/chat/demo-guide.mjs +0 -61
  450. package/lib/chat/design-tokens.mjs +0 -91
  451. package/lib/chat/desktop-binary.mjs +0 -81
  452. package/lib/chat/desktop-build.mjs +0 -130
  453. package/lib/chat/desktop-launcher.mjs +0 -133
  454. package/lib/chat/evidence.mjs +0 -145
  455. package/lib/chat/export.mjs +0 -74
  456. package/lib/chat/harness/driver.mjs +0 -91
  457. package/lib/chat/list-picker.mjs +0 -112
  458. package/lib/chat/model-picker.mjs +0 -356
  459. package/lib/chat/openrouter-fallback.mjs +0 -151
  460. package/lib/chat/permission-prompt.mjs +0 -33
  461. package/lib/chat/picker-catalog.mjs +0 -45
  462. package/lib/chat/policy-telemetry.mjs +0 -34
  463. package/lib/chat/present.mjs +0 -246
  464. package/lib/chat/session-context.mjs +0 -39
  465. package/lib/chat/session-persist.mjs +0 -73
  466. package/lib/chat/session-restore.mjs +0 -71
  467. package/lib/chat/session-settings.mjs +0 -53
  468. package/lib/chat/system-prompt.mjs +0 -52
  469. package/lib/chat/transparency.mjs +0 -93
  470. package/lib/chat/tui/color-scheme.mjs +0 -42
  471. package/lib/chat/tui/markdown.mjs +0 -123
  472. package/lib/chat/tui/presentation.mjs +0 -100
  473. package/lib/chat/tui/render.mjs +0 -500
  474. package/lib/chat/tui/turn-block.mjs +0 -284
  475. package/lib/chat/tui/turn-present.mjs +0 -18
  476. package/lib/chat/tui/turn-state.mjs +0 -88
  477. package/lib/chat/tui/usage.mjs +0 -122
  478. package/lib/chat/web-commands.mjs +0 -146
  479. package/lib/chat/web-launcher.mjs +0 -63
  480. package/lib/chat/web-picker-keys.mjs +0 -46
  481. package/lib/chat/web-session.mjs +0 -159
  482. package/lib/config/alias.mjs +0 -57
  483. package/lib/dashboard-demo.mjs +0 -71
  484. package/lib/dashboard-static.mjs +0 -175
  485. package/lib/install/desktop-binary-download.mjs +0 -88
  486. package/lib/profiles/loader.mjs +0 -123
  487. package/lib/profiles/rebrand.mjs +0 -46
  488. package/lib/server/auth.mjs +0 -169
  489. package/lib/server/chat-loop.mjs +0 -622
  490. package/lib/server/chat.mjs +0 -336
  491. package/lib/server/cors.mjs +0 -77
  492. package/lib/server/csrf.mjs +0 -103
  493. package/lib/server/demo-preview.mjs +0 -63
  494. package/lib/server/index.mjs +0 -2641
  495. package/lib/server/insights.mjs +0 -780
  496. package/lib/server/langfuse-login.mjs +0 -58
  497. package/lib/server/rate-limit.mjs +0 -93
  498. package/lib/server/telemetry-login.mjs +0 -100
  499. package/lib/server/webhook.mjs +0 -512
  500. package/specialists/contracts.json +0 -1032
  501. package/specialists/contracts.schema.json +0 -83
  502. package/specialists/policy-inventory.json +0 -188
  503. package/specialists/registry.json +0 -1412
  504. package/specialists/role-manifests.json +0 -217
  505. package/specialists/teams.json +0 -94
@@ -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