@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,41 @@
1
+ {
2
+ "id": "trace-reviewer-to-sre",
3
+ "producer": "cx-trace-reviewer",
4
+ "consumer": "cx-sre",
5
+ "trigger": {
6
+ "trace.anomaly": true,
7
+ "riskFlags": [
8
+ "performance",
9
+ "reliability"
10
+ ]
11
+ },
12
+ "input": {
13
+ "shape": "trace-analysis",
14
+ "mustContain": [
15
+ "flaggedAgents",
16
+ "evidence"
17
+ ]
18
+ },
19
+ "output": {
20
+ "shape": "sre-readiness",
21
+ "mustContain": [
22
+ "slos",
23
+ "runbooks",
24
+ "alerts"
25
+ ]
26
+ },
27
+ "preconditions": [
28
+ "Flagged agents meet the minimum trace threshold (20+); insufficient-trace agents deferred"
29
+ ],
30
+ "postconditions": [
31
+ "SRE adjusts alert thresholds or SLOs based on the cited trace evidence",
32
+ "Runbook updated for the failure pattern identified at fleet level"
33
+ ],
34
+ "description": "",
35
+ "teamBoundary": {
36
+ "crosses": true,
37
+ "producerTeam": "quality-group",
38
+ "consumerTeam": "operations-group",
39
+ "requiresApprovalFrom": []
40
+ }
41
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "id": "user-to-construct",
3
+ "producer": "user",
4
+ "consumer": "construct",
5
+ "trigger": {
6
+ "always": true
7
+ },
8
+ "input": {
9
+ "shape": "natural-language-request",
10
+ "mustContain": [
11
+ "goal"
12
+ ]
13
+ },
14
+ "output": {
15
+ "shape": "routed-plan",
16
+ "mustContain": [
17
+ "track",
18
+ "specialists",
19
+ "dispatchPlan"
20
+ ]
21
+ },
22
+ "preconditions": [
23
+ "Session bootstrap completed: project_context and memory_search called, plus relevant repo docs read as needed"
24
+ ],
25
+ "postconditions": [
26
+ "Intent classified; work category tagged",
27
+ "Route decision surfaced as a single-sentence plan"
28
+ ],
29
+ "description": ""
30
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "id": "engineering-group",
3
+ "name": "Engineering Group",
4
+ "owner": "architect",
5
+ "roles": [
6
+ "architect",
7
+ "engineer",
8
+ "debugger",
9
+ "ai-engineer",
10
+ "data-engineer",
11
+ "platform-engineer"
12
+ ],
13
+ "decisionRights": [
14
+ "architecture",
15
+ "technology-selection",
16
+ "implementation-approach",
17
+ "performance-optimization"
18
+ ],
19
+ "forbiddenDecisions": [
20
+ "product-scope",
21
+ "user-research",
22
+ "deployment-timing"
23
+ ],
24
+ "escalationPath": [
25
+ "architect",
26
+ "rd-lead",
27
+ "orchestrator"
28
+ ],
29
+ "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.",
30
+ "contact": {
31
+ "slack": "#engineering",
32
+ "email": "engineering@example.com",
33
+ "owner": "architect"
34
+ },
35
+ "evidence": [
36
+ "AGENTS.md (rnd profile departments section)",
37
+ "docs/guides/concepts/architecture.mdx"
38
+ ],
39
+ "kind": "group",
40
+ "squads": [
41
+ "engineering-team"
42
+ ]
43
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "governance-group",
3
+ "name": "Governance Group",
4
+ "owner": "security",
5
+ "roles": [
6
+ "security",
7
+ "legal-compliance"
8
+ ],
9
+ "decisionRights": [
10
+ "security-approval",
11
+ "compliance-review",
12
+ "risk-assessment",
13
+ "policy-definition"
14
+ ],
15
+ "forbiddenDecisions": [
16
+ "product-scope",
17
+ "implementation-approach",
18
+ "deployment-readiness"
19
+ ],
20
+ "escalationPath": [
21
+ "security",
22
+ "architect",
23
+ "orchestrator"
24
+ ],
25
+ "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.",
26
+ "contact": {
27
+ "slack": "#governance",
28
+ "email": "governance@example.com",
29
+ "owner": "security"
30
+ },
31
+ "evidence": [
32
+ "AGENTS.md (rnd profile departments section)"
33
+ ],
34
+ "kind": "group",
35
+ "squads": [
36
+ "governance-team"
37
+ ]
38
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "id": "operations-group",
3
+ "name": "Operations Group",
4
+ "owner": "sre",
5
+ "roles": [
6
+ "release-manager",
7
+ "sre",
8
+ "operations",
9
+ "docs-keeper"
10
+ ],
11
+ "decisionRights": [
12
+ "deployment",
13
+ "rollback",
14
+ "incident-response",
15
+ "runbook-approval",
16
+ "ops-procedure"
17
+ ],
18
+ "forbiddenDecisions": [
19
+ "architecture",
20
+ "product-scope",
21
+ "security-policy"
22
+ ],
23
+ "escalationPath": [
24
+ "sre",
25
+ "architect",
26
+ "orchestrator"
27
+ ],
28
+ "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.",
29
+ "contact": {
30
+ "slack": "#operations",
31
+ "email": "operations@example.com",
32
+ "owner": "sre"
33
+ },
34
+ "evidence": [
35
+ "AGENTS.md (rnd profile departments section)"
36
+ ],
37
+ "kind": "group",
38
+ "squads": [
39
+ "operations-team"
40
+ ]
41
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "id": "product-group",
3
+ "name": "Product Group",
4
+ "owner": "product-manager",
5
+ "roles": [
6
+ "product-manager",
7
+ "ux-researcher",
8
+ "designer",
9
+ "researcher",
10
+ "accessibility"
11
+ ],
12
+ "decisionRights": [
13
+ "intake-triage",
14
+ "design-approval",
15
+ "scope-change",
16
+ "evidence-requirement"
17
+ ],
18
+ "forbiddenDecisions": [
19
+ "deployment",
20
+ "security-override",
21
+ "infra-change"
22
+ ],
23
+ "escalationPath": [
24
+ "product-manager",
25
+ "rd-lead",
26
+ "orchestrator"
27
+ ],
28
+ "charter": "Translate user reality into shippable change. Owns problem framing, requirements, evidence gathering, design decisions, and acceptance criteria. Does not own implementation choices, deployment decisions, or security policy. Escalates scope conflicts to R&D leadership.",
29
+ "contact": {
30
+ "slack": "#product",
31
+ "email": "product@example.com",
32
+ "owner": "product-manager"
33
+ },
34
+ "evidence": [
35
+ "AGENTS.md (rnd profile departments section)",
36
+ "construct-u0ik (decision research on group charter pattern)"
37
+ ],
38
+ "kind": "group",
39
+ "squads": [
40
+ "product-management-team",
41
+ "ux-research-team",
42
+ "design-team",
43
+ "research-team",
44
+ "accessibility-team"
45
+ ]
46
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "id": "quality-group",
3
+ "name": "Quality Group",
4
+ "owner": "reviewer",
5
+ "roles": [
6
+ "reviewer",
7
+ "qa",
8
+ "test-automation",
9
+ "evaluator",
10
+ "trace-reviewer",
11
+ "devil-advocate"
12
+ ],
13
+ "decisionRights": [
14
+ "quality-gate-approval",
15
+ "test-strategy",
16
+ "evaluation-design",
17
+ "release-readiness"
18
+ ],
19
+ "forbiddenDecisions": [
20
+ "scope-change",
21
+ "deployment-timing",
22
+ "architecture"
23
+ ],
24
+ "escalationPath": [
25
+ "reviewer",
26
+ "architect",
27
+ "rd-lead"
28
+ ],
29
+ "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.",
30
+ "contact": {
31
+ "slack": "#quality",
32
+ "email": "quality@example.com",
33
+ "owner": "reviewer"
34
+ },
35
+ "evidence": [
36
+ "AGENTS.md (rnd profile departments section)"
37
+ ],
38
+ "kind": "group",
39
+ "squads": [
40
+ "quality-team"
41
+ ]
42
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "id": "strategy-group",
3
+ "name": "Strategy Group",
4
+ "owner": "rd-lead",
5
+ "roles": [
6
+ "rd-lead",
7
+ "business-strategist",
8
+ "data-analyst",
9
+ "explorer",
10
+ "orchestrator"
11
+ ],
12
+ "decisionRights": [
13
+ "direction-setting",
14
+ "strategic-prioritization",
15
+ "measurement-design",
16
+ "research-scope",
17
+ "cross-team-orchestration"
18
+ ],
19
+ "forbiddenDecisions": [
20
+ "implementation-details",
21
+ "user-research-methods",
22
+ "ops-procedures"
23
+ ],
24
+ "escalationPath": [
25
+ "rd-lead",
26
+ "orchestrator"
27
+ ],
28
+ "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.",
29
+ "contact": {
30
+ "slack": "#strategy",
31
+ "email": "strategy@example.com",
32
+ "owner": "rd-lead"
33
+ },
34
+ "evidence": [
35
+ "AGENTS.md (rnd profile departments section)"
36
+ ],
37
+ "kind": "group",
38
+ "squads": [
39
+ "strategy-team"
40
+ ]
41
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "action-approval",
3
+ "owner": "orchestrator",
4
+ "description": "Blocks specialists from taking actions not listed in their approved action set.",
5
+ "enforcement": "lib/roles/fence.mjs#checkAction",
6
+ "mode": "deterministic",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [],
11
+ "conditions": [],
12
+ "evidence": []
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "agents-routing",
3
+ "owner": "orchestrator",
4
+ "description": "Routing discipline: construct routes to specialists, specialists do not self-route except to adjacent roles.",
5
+ "enforcement": "(persona prompt)",
6
+ "mode": "honor-system",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [],
11
+ "conditions": [],
12
+ "evidence": []
13
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "id": "architecture",
3
+ "owner": "engineering-group",
4
+ "description": "Engineering group owns architecture decisions. Security group can veto on compliance grounds.",
5
+ "enforcement": "hard",
6
+ "mode": "approval",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [
9
+ "governance-group",
10
+ "quality-group"
11
+ ],
12
+ "escalatesTo": [
13
+ "strategy-group"
14
+ ],
15
+ "decisionRights": [
16
+ "architecture"
17
+ ],
18
+ "conditions": [],
19
+ "evidence": []
20
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "bash-safety",
3
+ "owner": "orchestrator",
4
+ "description": "Blocks destructive bash commands (rm -rf /, git reset --hard HEAD, etc.) from running.",
5
+ "enforcement": "lib/hooks/guard-bash.mjs",
6
+ "mode": "deterministic",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [],
11
+ "conditions": [],
12
+ "evidence": []
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "beads-hygiene",
3
+ "owner": "orchestrator",
4
+ "description": "Validates beads close-reason quality: requires PR reference or file:line evidence.",
5
+ "enforcement": "lib/contracts/validate.mjs#validateBeadsCloseReason",
6
+ "mode": "deterministic",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [],
11
+ "conditions": [],
12
+ "evidence": []
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "bootstrap-state",
3
+ "owner": "orchestrator",
4
+ "description": "State machine enforces valid session bootstrap sequence before any agent work begins.",
5
+ "enforcement": "lib/hooks/policy-engine.mjs",
6
+ "mode": "deterministic",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [],
11
+ "conditions": [],
12
+ "evidence": []
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "code-review",
3
+ "owner": "orchestrator",
4
+ "description": "Review standards applied by cx-reviewer and cx-qa before any change is marked done.",
5
+ "enforcement": "(persona prompt)",
6
+ "mode": "honor-system",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [],
11
+ "conditions": [],
12
+ "evidence": []
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "coding-style",
3
+ "owner": "orchestrator",
4
+ "description": "Style standards applied at authoring time; not mechanically enforced beyond lint:comments.",
5
+ "enforcement": "(persona prompt)",
6
+ "mode": "honor-system",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [],
11
+ "conditions": [],
12
+ "evidence": []
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "comments",
3
+ "owner": "orchestrator",
4
+ "description": "Enforces the two-form comment policy (file header + section context block). Blocks inline narration.",
5
+ "enforcement": "lib/comment-lint.mjs",
6
+ "mode": "deterministic",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [],
11
+ "conditions": [],
12
+ "evidence": []
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "commit-approval",
3
+ "owner": "orchestrator",
4
+ "description": "Requires explicit user confirmation before any git commit or push. Enforced at the conversation level.",
5
+ "enforcement": "(persona prompt)",
6
+ "mode": "honor-system",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [],
11
+ "conditions": [],
12
+ "evidence": []
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "contract-preconditions",
3
+ "owner": "orchestrator",
4
+ "description": "Validates that specialist handoffs conform to declared pre/postconditions in contracts.json.",
5
+ "enforcement": "lib/contracts/validate.mjs#validateHandoff",
6
+ "mode": "deterministic",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [],
11
+ "conditions": [],
12
+ "evidence": []
13
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "id": "deployment",
3
+ "owner": "operations-group",
4
+ "description": "Operations group executes deployments. Requires security and quality approval.",
5
+ "enforcement": "hard",
6
+ "mode": "approval",
7
+ "requiresApprovalFrom": [
8
+ "quality-gate-approval",
9
+ "security-approval"
10
+ ],
11
+ "mayVetoFrom": [],
12
+ "escalatesTo": [
13
+ "strategy-group"
14
+ ],
15
+ "decisionRights": [
16
+ "deployment"
17
+ ],
18
+ "conditions": [],
19
+ "evidence": []
20
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "id": "description",
3
+ "description": "Decision: description",
4
+ "enforcement": "hard",
5
+ "mode": "approval",
6
+ "requiresApprovalFrom": [],
7
+ "mayVetoFrom": [],
8
+ "escalatesTo": [],
9
+ "decisionRights": [
10
+ "description"
11
+ ],
12
+ "conditions": [],
13
+ "evidence": []
14
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "id": "design-approval",
3
+ "owner": "product-group",
4
+ "description": "Product group approves design before implementation begins.",
5
+ "enforcement": "hard",
6
+ "mode": "approval",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [
9
+ "engineering-group"
10
+ ],
11
+ "escalatesTo": [
12
+ "strategy-group"
13
+ ],
14
+ "decisionRights": [
15
+ "design-approval"
16
+ ],
17
+ "conditions": [],
18
+ "evidence": []
19
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "doc-ownership",
3
+ "owner": "orchestrator",
4
+ "description": "Routes artifacts to the correct specialist owner before writing (PRD to PM, ADR to Architect).",
5
+ "enforcement": "(persona prompt)",
6
+ "mode": "honor-system",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [],
11
+ "conditions": [],
12
+ "evidence": []
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "file-path-fence",
3
+ "owner": "orchestrator",
4
+ "description": "Prevents specialists from touching files outside their declared path scope.",
5
+ "enforcement": "lib/roles/fence.mjs#checkAction",
6
+ "mode": "deterministic",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [],
11
+ "conditions": [],
12
+ "evidence": []
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "framing",
3
+ "owner": "orchestrator",
4
+ "description": "Requires that execution artifacts cite their source; prevents specialists from treating their own output as ground truth.",
5
+ "enforcement": "(persona prompt)",
6
+ "mode": "honor-system",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [],
11
+ "conditions": [],
12
+ "evidence": []
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "git-workflow",
3
+ "owner": "orchestrator",
4
+ "description": "Enforces branch naming, commit message style, and push guard (no direct-to-main pushes).",
5
+ "enforcement": "lib/hooks/pre-push-gate.mjs",
6
+ "mode": "deterministic",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [],
11
+ "conditions": [],
12
+ "evidence": []
13
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "id": "incident-response",
3
+ "owner": "operations-group",
4
+ "description": "Operations group leads incident response.",
5
+ "enforcement": "hard",
6
+ "mode": "approval",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [
11
+ "incident-response"
12
+ ],
13
+ "conditions": [],
14
+ "evidence": []
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "id": "intake-triage",
3
+ "owner": "product-group",
4
+ "description": "Product group triages incoming signals and routes them to the appropriate team.",
5
+ "enforcement": "hard",
6
+ "mode": "approval",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [
11
+ "intake-triage"
12
+ ],
13
+ "conditions": [],
14
+ "evidence": []
15
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "neurodivergent-output",
3
+ "owner": "orchestrator",
4
+ "description": "Human-facing output (terminal, agent prose, dashboard) is formatted for neurodivergent readers; presentation never reshapes machine-readable output.",
5
+ "enforcement": "(persona prompt) + tests/term-format.test.mjs",
6
+ "mode": "honor-system",
7
+ "requiresApprovalFrom": [],
8
+ "mayVetoFrom": [],
9
+ "escalatesTo": [],
10
+ "decisionRights": [],
11
+ "conditions": [],
12
+ "evidence": []
13
+ }