@geraldmaron/construct 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/.env.example +69 -0
  2. package/LICENSE +21 -0
  3. package/README.md +344 -0
  4. package/agents/prompts/cx-accessibility.md +29 -0
  5. package/agents/prompts/cx-ai-engineer.md +31 -0
  6. package/agents/prompts/cx-architect.md +40 -0
  7. package/agents/prompts/cx-business-strategist.md +25 -0
  8. package/agents/prompts/cx-data-analyst.md +30 -0
  9. package/agents/prompts/cx-data-engineer.md +32 -0
  10. package/agents/prompts/cx-debugger.md +27 -0
  11. package/agents/prompts/cx-designer.md +33 -0
  12. package/agents/prompts/cx-devil-advocate.md +36 -0
  13. package/agents/prompts/cx-docs-keeper.md +50 -0
  14. package/agents/prompts/cx-engineer.md +36 -0
  15. package/agents/prompts/cx-evaluator.md +26 -0
  16. package/agents/prompts/cx-explorer.md +38 -0
  17. package/agents/prompts/cx-legal-compliance.md +25 -0
  18. package/agents/prompts/cx-operations.md +28 -0
  19. package/agents/prompts/cx-orchestrator.md +30 -0
  20. package/agents/prompts/cx-platform-engineer.md +25 -0
  21. package/agents/prompts/cx-product-manager.md +30 -0
  22. package/agents/prompts/cx-qa.md +42 -0
  23. package/agents/prompts/cx-rd-lead.md +25 -0
  24. package/agents/prompts/cx-release-manager.md +31 -0
  25. package/agents/prompts/cx-researcher.md +31 -0
  26. package/agents/prompts/cx-reviewer.md +36 -0
  27. package/agents/prompts/cx-security.md +37 -0
  28. package/agents/prompts/cx-sre.md +26 -0
  29. package/agents/prompts/cx-test-automation.md +35 -0
  30. package/agents/prompts/cx-trace-reviewer.md +76 -0
  31. package/agents/prompts/cx-ux-researcher.md +30 -0
  32. package/agents/registry.json +879 -0
  33. package/agents/teams.json +94 -0
  34. package/bin/construct +613 -0
  35. package/commands/build/feature.md +21 -0
  36. package/commands/build/fix.md +20 -0
  37. package/commands/design/access.md +19 -0
  38. package/commands/design/flow.md +16 -0
  39. package/commands/design/ui.md +18 -0
  40. package/commands/measure/experiment.md +18 -0
  41. package/commands/measure/metrics.md +18 -0
  42. package/commands/measure/results.md +18 -0
  43. package/commands/plan/api.md +19 -0
  44. package/commands/plan/challenge.md +18 -0
  45. package/commands/plan/decide.md +20 -0
  46. package/commands/plan/feature.md +49 -0
  47. package/commands/plan/requirements.md +24 -0
  48. package/commands/remember/context.md +26 -0
  49. package/commands/remember/handoff.md +19 -0
  50. package/commands/remember/runbook.md +20 -0
  51. package/commands/review/code.md +21 -0
  52. package/commands/review/quality.md +19 -0
  53. package/commands/review/security.md +16 -0
  54. package/commands/ship/ready.md +19 -0
  55. package/commands/ship/release.md +19 -0
  56. package/commands/ship/status.md +18 -0
  57. package/commands/understand/docs.md +22 -0
  58. package/commands/understand/research.md +22 -0
  59. package/commands/understand/this.md +23 -0
  60. package/commands/understand/why.md +18 -0
  61. package/commands/work/clean.md +32 -0
  62. package/commands/work/drive.md +69 -0
  63. package/commands/work/optimize-prompts.md +46 -0
  64. package/commands/work/parallel-review.md +40 -0
  65. package/db/migrations/001_init.sql +38 -0
  66. package/langfuse/docker-compose.yml +82 -0
  67. package/lib/audit-skills.mjs +118 -0
  68. package/lib/auto-docs.mjs +293 -0
  69. package/lib/cli-commands.mjs +409 -0
  70. package/lib/codex-config.mjs +114 -0
  71. package/lib/comment-lint.mjs +191 -0
  72. package/lib/completions.mjs +170 -0
  73. package/lib/context-state.mjs +99 -0
  74. package/lib/cost.mjs +213 -0
  75. package/lib/distill.mjs +403 -0
  76. package/lib/efficiency.mjs +139 -0
  77. package/lib/env-config.mjs +53 -0
  78. package/lib/eval-harness.mjs +59 -0
  79. package/lib/features.mjs +209 -0
  80. package/lib/headhunt.mjs +597 -0
  81. package/lib/hooks/adaptive-lint.mjs +112 -0
  82. package/lib/hooks/agent-tracker.mjs +50 -0
  83. package/lib/hooks/bootstrap-guard.mjs +90 -0
  84. package/lib/hooks/comment-lint.mjs +26 -0
  85. package/lib/hooks/config-protection.mjs +52 -0
  86. package/lib/hooks/console-warn.mjs +43 -0
  87. package/lib/hooks/context-window-recovery.mjs +90 -0
  88. package/lib/hooks/continuation-enforcer.mjs +72 -0
  89. package/lib/hooks/dep-audit.mjs +155 -0
  90. package/lib/hooks/drive-guard.mjs +89 -0
  91. package/lib/hooks/edit-accumulator.mjs +36 -0
  92. package/lib/hooks/edit-error-recovery.mjs +46 -0
  93. package/lib/hooks/edit-guard.mjs +109 -0
  94. package/lib/hooks/env-check.mjs +80 -0
  95. package/lib/hooks/guard-bash.mjs +83 -0
  96. package/lib/hooks/mcp-audit.mjs +57 -0
  97. package/lib/hooks/mcp-health-check.mjs +51 -0
  98. package/lib/hooks/mcp-task-scope.mjs +47 -0
  99. package/lib/hooks/model-fallback.mjs +105 -0
  100. package/lib/hooks/pre-compact.mjs +212 -0
  101. package/lib/hooks/pre-push-gate.mjs +129 -0
  102. package/lib/hooks/read-tracker.mjs +129 -0
  103. package/lib/hooks/registry-sync.mjs +23 -0
  104. package/lib/hooks/scan-secrets.mjs +76 -0
  105. package/lib/hooks/session-start.mjs +95 -0
  106. package/lib/hooks/stop-notify.mjs +191 -0
  107. package/lib/hooks/stop-typecheck.mjs +83 -0
  108. package/lib/hooks/task-completed-guard.mjs +43 -0
  109. package/lib/hooks/teammate-idle-guard.mjs +54 -0
  110. package/lib/hooks/workflow-guard.mjs +62 -0
  111. package/lib/host-capabilities.mjs +123 -0
  112. package/lib/init-docs.mjs +382 -0
  113. package/lib/mcp/server.mjs +1123 -0
  114. package/lib/mcp-catalog.json +243 -0
  115. package/lib/mcp-manager.mjs +433 -0
  116. package/lib/mcp-platform-config.mjs +104 -0
  117. package/lib/model-router.mjs +810 -0
  118. package/lib/opencode-config.mjs +44 -0
  119. package/lib/opencode-runtime-plugin.mjs +909 -0
  120. package/lib/opencode-telemetry.mjs +433 -0
  121. package/lib/orchestration-policy.mjs +258 -0
  122. package/lib/prompt-composer.mjs +196 -0
  123. package/lib/prompt-metadata.mjs +68 -0
  124. package/lib/review.mjs +429 -0
  125. package/lib/role-preload.mjs +52 -0
  126. package/lib/schemas/decision.json +50 -0
  127. package/lib/schemas/implementation.json +51 -0
  128. package/lib/schemas/review-report.json +32 -0
  129. package/lib/schemas/test-report.json +43 -0
  130. package/lib/server/index.mjs +334 -0
  131. package/lib/server/static/app.js +841 -0
  132. package/lib/server/static/index.html +820 -0
  133. package/lib/service-manager.mjs +225 -0
  134. package/lib/setup.mjs +319 -0
  135. package/lib/status.mjs +707 -0
  136. package/lib/storage/backend.mjs +44 -0
  137. package/lib/storage/embeddings.mjs +70 -0
  138. package/lib/storage/hybrid-query.mjs +184 -0
  139. package/lib/storage/sql-store.mjs +55 -0
  140. package/lib/storage/state-source.mjs +101 -0
  141. package/lib/storage/sync.mjs +164 -0
  142. package/lib/storage/vector-store.mjs +59 -0
  143. package/lib/telemetry/backends/langfuse.mjs +58 -0
  144. package/lib/telemetry/backends/noop.mjs +16 -0
  145. package/lib/telemetry/langfuse-ingest.mjs +108 -0
  146. package/lib/telemetry/langfuse-model-sync.mjs +270 -0
  147. package/lib/telemetry/team-rollup.mjs +143 -0
  148. package/lib/toolkit-env.mjs +30 -0
  149. package/lib/validator.mjs +181 -0
  150. package/lib/workflow-state.mjs +794 -0
  151. package/package.json +53 -0
  152. package/personas/construct.md +94 -0
  153. package/platforms/claude/CLAUDE.md +30 -0
  154. package/platforms/claude/settings.template.json +472 -0
  155. package/platforms/opencode/config.template.json +65 -0
  156. package/platforms/opencode/plugins/construct-fallback.js +5 -0
  157. package/platforms/opencode/sync-config.mjs +69 -0
  158. package/rules/common/agents.md +55 -0
  159. package/rules/common/code-review.md +129 -0
  160. package/rules/common/coding-style.md +95 -0
  161. package/rules/common/comments.md +139 -0
  162. package/rules/common/cx-agent-routing.md +61 -0
  163. package/rules/common/cx-skill-routing.md +11 -0
  164. package/rules/common/development-workflow.md +49 -0
  165. package/rules/common/git-workflow.md +29 -0
  166. package/rules/common/hooks.md +35 -0
  167. package/rules/common/patterns.md +36 -0
  168. package/rules/common/performance.md +71 -0
  169. package/rules/common/security.md +34 -0
  170. package/rules/common/testing.md +62 -0
  171. package/rules/golang/coding-style.md +37 -0
  172. package/rules/golang/hooks.md +22 -0
  173. package/rules/golang/patterns.md +50 -0
  174. package/rules/golang/security.md +39 -0
  175. package/rules/golang/testing.md +36 -0
  176. package/rules/python/coding-style.md +47 -0
  177. package/rules/python/hooks.md +24 -0
  178. package/rules/python/patterns.md +44 -0
  179. package/rules/python/security.md +35 -0
  180. package/rules/python/testing.md +43 -0
  181. package/rules/swift/coding-style.md +52 -0
  182. package/rules/swift/hooks.md +25 -0
  183. package/rules/swift/patterns.md +71 -0
  184. package/rules/swift/security.md +38 -0
  185. package/rules/swift/testing.md +50 -0
  186. package/rules/typescript/coding-style.md +204 -0
  187. package/rules/typescript/hooks.md +27 -0
  188. package/rules/typescript/patterns.md +57 -0
  189. package/rules/typescript/security.md +33 -0
  190. package/rules/typescript/testing.md +23 -0
  191. package/rules/web/coding-style.md +101 -0
  192. package/rules/web/design-quality.md +68 -0
  193. package/rules/web/hooks.md +125 -0
  194. package/rules/web/patterns.md +84 -0
  195. package/rules/web/performance.md +69 -0
  196. package/rules/web/security.md +62 -0
  197. package/rules/web/testing.md +60 -0
  198. package/rules/zh/README.md +113 -0
  199. package/rules/zh/agents.md +55 -0
  200. package/rules/zh/code-review.md +129 -0
  201. package/rules/zh/coding-style.md +53 -0
  202. package/rules/zh/development-workflow.md +49 -0
  203. package/rules/zh/git-workflow.md +29 -0
  204. package/rules/zh/hooks.md +35 -0
  205. package/rules/zh/patterns.md +36 -0
  206. package/rules/zh/performance.md +60 -0
  207. package/rules/zh/security.md +34 -0
  208. package/rules/zh/testing.md +34 -0
  209. package/skills/ai/agent-dev.md +102 -0
  210. package/skills/ai/llm-security.md +105 -0
  211. package/skills/ai/ml-ops.md +169 -0
  212. package/skills/ai/orchestration-workflow.md +87 -0
  213. package/skills/ai/prompt-and-eval.md +114 -0
  214. package/skills/ai/prompt-optimizer.md +114 -0
  215. package/skills/ai/rag-system.md +104 -0
  216. package/skills/architecture/api-design.md +100 -0
  217. package/skills/architecture/caching.md +101 -0
  218. package/skills/architecture/cloud-native.md +97 -0
  219. package/skills/architecture/message-queue.md +100 -0
  220. package/skills/architecture/security-arch.md +105 -0
  221. package/skills/development/cpp.md +127 -0
  222. package/skills/development/go.md +129 -0
  223. package/skills/development/java.md +134 -0
  224. package/skills/development/kotlin.md +140 -0
  225. package/skills/development/mobile-crossplatform.md +144 -0
  226. package/skills/development/python.md +109 -0
  227. package/skills/development/rust.md +127 -0
  228. package/skills/development/shell.md +127 -0
  229. package/skills/development/swift.md +129 -0
  230. package/skills/development/typescript.md +129 -0
  231. package/skills/devops/ci-cd.md +108 -0
  232. package/skills/devops/containerization.md +106 -0
  233. package/skills/devops/cost-optimization.md +105 -0
  234. package/skills/devops/data-engineering.md +181 -0
  235. package/skills/devops/database.md +95 -0
  236. package/skills/devops/dependency-management.md +91 -0
  237. package/skills/devops/devsecops.md +96 -0
  238. package/skills/devops/git-workflow.md +100 -0
  239. package/skills/devops/incident-response.md +167 -0
  240. package/skills/devops/monorepo.md +87 -0
  241. package/skills/devops/observability.md +103 -0
  242. package/skills/devops/performance.md +104 -0
  243. package/skills/devops/testing.md +104 -0
  244. package/skills/docs/adr-workflow.md +32 -0
  245. package/skills/docs/backlog-proposal-workflow.md +19 -0
  246. package/skills/docs/customer-profile-workflow.md +22 -0
  247. package/skills/docs/evidence-ingest-workflow.md +23 -0
  248. package/skills/docs/init-docs.md +160 -0
  249. package/skills/docs/init-project.md +50 -0
  250. package/skills/docs/prd-workflow.md +57 -0
  251. package/skills/docs/prfaq-workflow.md +25 -0
  252. package/skills/docs/product-intelligence-review.md +22 -0
  253. package/skills/docs/product-intelligence-workflow.md +62 -0
  254. package/skills/docs/product-signal-workflow.md +27 -0
  255. package/skills/docs/research-workflow.md +28 -0
  256. package/skills/docs/runbook-workflow.md +24 -0
  257. package/skills/exploration/repo-map.md +297 -0
  258. package/skills/frameworks/django.md +159 -0
  259. package/skills/frameworks/nextjs.md +148 -0
  260. package/skills/frameworks/react.md +132 -0
  261. package/skills/frameworks/spring-boot.md +165 -0
  262. package/skills/frontend-design/accessibility.md +153 -0
  263. package/skills/frontend-design/component-patterns.md +111 -0
  264. package/skills/frontend-design/engineering.md +122 -0
  265. package/skills/frontend-design/state-management.md +118 -0
  266. package/skills/frontend-design/ui-aesthetics.md +102 -0
  267. package/skills/frontend-design/ux-principles.md +126 -0
  268. package/skills/quality-gates/review-work.md +90 -0
  269. package/skills/quality-gates/verify-change.md +94 -0
  270. package/skills/quality-gates/verify-module.md +96 -0
  271. package/skills/quality-gates/verify-quality.md +93 -0
  272. package/skills/quality-gates/verify-security.md +95 -0
  273. package/skills/roles/architect.ai-systems.md +37 -0
  274. package/skills/roles/architect.data.md +37 -0
  275. package/skills/roles/architect.enterprise.md +37 -0
  276. package/skills/roles/architect.integration.md +37 -0
  277. package/skills/roles/architect.md +68 -0
  278. package/skills/roles/architect.platform.md +37 -0
  279. package/skills/roles/data-analyst.experiment.md +37 -0
  280. package/skills/roles/data-analyst.md +68 -0
  281. package/skills/roles/data-analyst.product-intelligence.md +37 -0
  282. package/skills/roles/data-analyst.product.md +37 -0
  283. package/skills/roles/data-analyst.telemetry.md +37 -0
  284. package/skills/roles/data-engineer.pipeline.md +37 -0
  285. package/skills/roles/data-engineer.vector-retrieval.md +37 -0
  286. package/skills/roles/data-engineer.warehouse.md +37 -0
  287. package/skills/roles/debugger.md +68 -0
  288. package/skills/roles/designer.accessibility.md +43 -0
  289. package/skills/roles/designer.md +68 -0
  290. package/skills/roles/engineer.ai.md +49 -0
  291. package/skills/roles/engineer.data.md +49 -0
  292. package/skills/roles/engineer.md +85 -0
  293. package/skills/roles/engineer.platform.md +49 -0
  294. package/skills/roles/operator.docs.md +43 -0
  295. package/skills/roles/operator.md +68 -0
  296. package/skills/roles/operator.release.md +43 -0
  297. package/skills/roles/operator.sre.md +43 -0
  298. package/skills/roles/orchestrator.md +66 -0
  299. package/skills/roles/product-manager.ai-product.md +37 -0
  300. package/skills/roles/product-manager.business-strategy.md +43 -0
  301. package/skills/roles/product-manager.enterprise.md +37 -0
  302. package/skills/roles/product-manager.growth.md +37 -0
  303. package/skills/roles/product-manager.md +67 -0
  304. package/skills/roles/product-manager.platform.md +37 -0
  305. package/skills/roles/product-manager.product.md +37 -0
  306. package/skills/roles/qa.ai-eval.md +37 -0
  307. package/skills/roles/qa.api-contract.md +37 -0
  308. package/skills/roles/qa.data-pipeline.md +37 -0
  309. package/skills/roles/qa.md +68 -0
  310. package/skills/roles/qa.test-automation.md +49 -0
  311. package/skills/roles/qa.web-ui.md +37 -0
  312. package/skills/roles/researcher.explorer.md +43 -0
  313. package/skills/roles/researcher.md +68 -0
  314. package/skills/roles/researcher.ux.md +43 -0
  315. package/skills/roles/reviewer.devil-advocate.md +43 -0
  316. package/skills/roles/reviewer.evaluator.md +43 -0
  317. package/skills/roles/reviewer.md +68 -0
  318. package/skills/roles/reviewer.trace.md +43 -0
  319. package/skills/roles/security.ai.md +37 -0
  320. package/skills/roles/security.appsec.md +37 -0
  321. package/skills/roles/security.cloud.md +37 -0
  322. package/skills/roles/security.legal-compliance.md +49 -0
  323. package/skills/roles/security.md +68 -0
  324. package/skills/roles/security.privacy.md +37 -0
  325. package/skills/roles/security.supply-chain.md +37 -0
  326. package/skills/routing.md +139 -0
  327. package/skills/security/blue-team.md +83 -0
  328. package/skills/security/code-audit.md +94 -0
  329. package/skills/security/pentest.md +84 -0
  330. package/skills/security/red-team.md +81 -0
  331. package/skills/security/threat-intel.md +89 -0
  332. package/skills/security/vuln-research.md +87 -0
  333. package/skills/utility/clean-code.md +165 -0
  334. package/sync-agents.mjs +899 -0
  335. package/templates/docs/adr.md +27 -0
  336. package/templates/docs/backlog-proposal.md +26 -0
  337. package/templates/docs/customer-profile.md +34 -0
  338. package/templates/docs/evidence-brief.md +37 -0
  339. package/templates/docs/incident-report.md +46 -0
  340. package/templates/docs/memo.md +27 -0
  341. package/templates/docs/meta-prd.md +56 -0
  342. package/templates/docs/one-pager.md +24 -0
  343. package/templates/docs/prd-business.md +61 -0
  344. package/templates/docs/prd-platform.md +62 -0
  345. package/templates/docs/prd.md +47 -0
  346. package/templates/docs/prfaq.md +31 -0
  347. package/templates/docs/product-intelligence-report.md +31 -0
  348. package/templates/docs/research-brief.md +29 -0
  349. package/templates/docs/rfc-platform.md +60 -0
  350. package/templates/docs/rfc.md +46 -0
  351. package/templates/docs/runbook.md +33 -0
  352. package/templates/docs/signal-brief.md +25 -0
@@ -0,0 +1,43 @@
1
+ <!--
2
+ skills/roles/operator.release.md — Anti-pattern guidance for the Operator.release (release) role.
3
+
4
+ Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
+ Covers common failure modes for the operator.release (release) domain and counter-moves to avoid them.
6
+ Applies to: cx-release-manager.
7
+ -->
8
+ ---
9
+ role: operator.release
10
+ applies_to: [cx-release-manager]
11
+ inherits: operator
12
+ version: 1
13
+ ---
14
+ # Release Manager Overlay
15
+
16
+ Additional failure modes on top of the operator core.
17
+
18
+
19
+ ### 1. Big-bang releases
20
+ **Symptom**: shipping N weeks of changes behind one deploy, one feature flag, one migration.
21
+ **Why it fails**: when something breaks, you don't know which change caused it; rollback reverses everything.
22
+ **Counter-move**: ship in the smallest deployable increment. Feature-flag independently.
23
+
24
+ ### 2. No rollback path
25
+ **Symptom**: a migration, schema change, or config flip that can't be undone in under 15 minutes.
26
+ **Why it fails**: the fix-forward pressure during an incident drives more damage.
27
+ **Counter-move**: for every release, document the rollback command or procedure. Test it before production.
28
+
29
+ ### 3. Release notes after the fact
30
+ **Symptom**: writing the changelog the day of release, or later.
31
+ **Why it fails**: details are forgotten; breaking changes slip past users; stakeholder comms are reactive.
32
+ **Counter-move**: changelog entries land with the code change, not at release. Release compiles from committed entries.
33
+
34
+ ### 4. No rollout monitoring window
35
+ **Symptom**: pushing to production and moving on to the next task.
36
+ **Why it fails**: regressions show up 30–60 minutes in; if nobody is watching, they compound.
37
+ **Counter-move**: define the post-release watch window (metrics + duration) before pushing. Hold the release until it's clean.
38
+
39
+ ## Self-check before shipping
40
+ - [ ] Release is the smallest deployable increment
41
+ - [ ] Rollback path documented and tested
42
+ - [ ] Core release-facing docs landed with code and match shipped behavior
43
+ - [ ] Post-release watch window defined and staffed
@@ -0,0 +1,43 @@
1
+ <!--
2
+ skills/roles/operator.sre.md — Anti-pattern guidance for the Operator.sre (sre) role.
3
+
4
+ Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
+ Covers common failure modes for the operator.sre (sre) domain and counter-moves to avoid them.
6
+ Applies to: cx-sre.
7
+ -->
8
+ ---
9
+ role: operator.sre
10
+ applies_to: [cx-sre]
11
+ inherits: operator
12
+ version: 1
13
+ ---
14
+ # SRE Overlay
15
+
16
+ Additional failure modes on top of the operator core.
17
+
18
+
19
+ ### 1. Alerts without playbooks
20
+ **Symptom**: an alert page triggers but has no linked runbook or known response.
21
+ **Why it fails**: oncall wakes, fumbles, escalates. Mean time to recovery balloons.
22
+ **Counter-move**: every alert links to a runbook with symptoms, checks, and remediation steps.
23
+
24
+ ### 2. SLOs without error budgets
25
+ **Symptom**: publishing an SLO (e.g., 99.9% availability) with no policy for what happens when it's breached.
26
+ **Why it fails**: the SLO becomes decorative; feature work continues to burn reliability.
27
+ **Counter-move**: define the error budget policy up front — what freezes, who's notified, when it resumes.
28
+
29
+ ### 3. Dashboards of everything
30
+ **Symptom**: 40-panel dashboards covering every metric the team could expose.
31
+ **Why it fails**: during an incident, nobody can find the signal. Cognitive load blocks response.
32
+ **Counter-move**: build incident-shaped dashboards: one per symptom class, with the minimum signals to triage.
33
+
34
+ ### 4. Post-mortems without corrective actions
35
+ **Symptom**: writing a thorough timeline and "5 whys" with no tracked owner or deadline for fixes.
36
+ **Why it fails**: the same incident repeats. Teams lose trust in the process.
37
+ **Counter-move**: every corrective action has an owner, a ticket, and a target date. Review completion in the next monthly.
38
+
39
+ ## Self-check before shipping
40
+ - [ ] Every alert links to a runbook
41
+ - [ ] SLOs have an explicit error-budget policy
42
+ - [ ] Dashboards are incident-shaped, not metric-dumps
43
+ - [ ] Post-mortem actions are owned and dated
@@ -0,0 +1,66 @@
1
+ <!--
2
+ skills/roles/orchestrator.md — Anti-pattern guidance for the Orchestrator role.
3
+
4
+ Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
+ Covers common failure modes for the orchestrator domain and counter-moves to avoid them.
6
+ Applies to: cx-orchestrator.
7
+ -->
8
+ ---
9
+ role: orchestrator
10
+ applies_to: [cx-orchestrator]
11
+ inherits: null
12
+ version: 1
13
+ ---
14
+ # Orchestrator — Role guidance
15
+
16
+ Use this as a fast dispatch checklist before producing orchestration output.
17
+
18
+
19
+ 1. **Dispatching before classifying**
20
+ - Symptom: every request becomes multi-agent work.
21
+ - Counter: classify first, then choose the smallest adequate path.
22
+
23
+ 2. **Too many perspectives**
24
+ - Symptom: multiple specialists repeat the same lens.
25
+ - Counter: dispatch only agents whose priors differ materially.
26
+
27
+ 3. **Routing around blockers**
28
+ - Symptom: BLOCKED or NEEDS_MAIN_INPUT gets hidden by another handoff.
29
+ - Counter: surface the blocker plainly and ask from the main session.
30
+
31
+ 4. **Ceremony over outcome**
32
+ - Symptom: every phase runs even when it adds no signal.
33
+ - Counter: name the phase output; skip empty phases with a reason.
34
+
35
+ 5. **Rubber-stamp challenge**
36
+ - Symptom: challenge returns no critical issues because it barely tested the plan.
37
+ - Counter: rerun with sharper constraints when risk is non-trivial.
38
+
39
+ 6. **Losing the ask**
40
+ - Symptom: specialists optimize a different problem.
41
+ - Counter: carry the original request through every handoff and final check.
42
+
43
+ 7. **Skipping quality gates**
44
+ - Symptom: "simple" implementation ships without review or tests.
45
+ - Counter: simple changes still get verification; the gate just runs faster.
46
+
47
+ 8. **Exposing internals**
48
+ - Symptom: final output says what each specialist said.
49
+ - Counter: synthesize outcomes in Construct's voice.
50
+
51
+ 9. **Ruminating instead of acting**
52
+ - Symptom: repeated reasoning turns without a read, lookup, dispatch, or user answer.
53
+ - Counter: after two passes, dispatch, look up evidence, or ask.
54
+
55
+ 10. **Bulk reading before routing**
56
+ - Symptom: large reads just to decide who should work.
57
+ - Counter: probe with search, glob, or small reads first.
58
+
59
+ ## Ship Check
60
+
61
+ - Request classified.
62
+ - Smallest adequate path selected.
63
+ - Handoffs have distinct ownership.
64
+ - Blockers and user questions surfaced.
65
+ - Original ask still matches final output.
66
+ - Verification evidence exists for implementation work.
@@ -0,0 +1,37 @@
1
+ <!--
2
+ skills/roles/product-manager.ai-product.md — Anti-pattern guidance for the Product-manager.ai-product (ai product) role.
3
+
4
+ Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
+ Covers common failure modes for the product-manager.ai-product (ai product) domain and counter-moves to avoid them.
6
+ Applies to: cx-product-manager.
7
+ -->
8
+ ---
9
+ role: product-manager.ai-product
10
+ applies_to: [cx-product-manager]
11
+ inherits: product-manager
12
+ version: 1
13
+ ---
14
+ # AI Product PM Overlay
15
+
16
+ Additional failure modes on top of the product-manager core.
17
+
18
+ ### 1. Demo behavior mistaken for product behavior
19
+ **Symptom**: the PRD describes the happy-path model output but not variance, refusal, hallucination, or tool failure.
20
+ **Why it fails**: AI products fail at the distribution edges, not in the demo prompt.
21
+ **Counter-move**: define expected behavior, unacceptable behavior, fallback behavior, and review thresholds.
22
+
23
+ ### 2. No evaluation loop
24
+ **Symptom**: quality is described subjectively, with no dataset, rubric, trace, or regression check.
25
+ **Why it fails**: model and prompt changes silently alter product behavior.
26
+ **Counter-move**: require eval fixtures, scoring criteria, trace capture, and promotion gates.
27
+
28
+ ### 3. Human trust treated as UI copy
29
+ **Symptom**: the PRD says users should trust the system but does not define evidence, citations, control, or correction paths.
30
+ **Why it fails**: users need to understand when to rely on the system and how to recover when it is wrong.
31
+ **Counter-move**: specify grounding, explainability, review controls, feedback capture, and correction workflows.
32
+
33
+ ## Self-check before shipping
34
+ - [ ] Expected, unacceptable, and fallback behaviors are defined
35
+ - [ ] Evaluation dataset, rubric, and promotion gate are specified
36
+ - [ ] Traceability and correction paths are product requirements
37
+ - [ ] Human review boundaries are explicit
@@ -0,0 +1,43 @@
1
+ <!--
2
+ skills/roles/product-manager.business-strategy.md — Anti-pattern guidance for the Product-manager.business-strategy (business strategy) role.
3
+
4
+ Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
+ Covers common failure modes for the product-manager.business-strategy (business strategy) domain and counter-moves to avoid them.
6
+ Applies to: cx-business-strategist.
7
+ -->
8
+ ---
9
+ role: product-manager.business-strategy
10
+ applies_to: [cx-business-strategist]
11
+ inherits: product-manager
12
+ version: 1
13
+ ---
14
+ # Business Strategy Overlay
15
+
16
+ Additional failure modes on top of the product-manager core.
17
+
18
+
19
+ ### 1. Strategy as feature list
20
+ **Symptom**: a "strategy" doc that reads as a roadmap with no framing of why this over other paths.
21
+ **Why it fails**: execution goes fine but the company loses to a competitor that picked a different axis.
22
+ **Counter-move**: state the bet, the alternative bets explicitly rejected, and what would have to be true for each.
23
+
24
+ ### 2. No theory of the market
25
+ **Symptom**: decisions made without a stated view of the market shape, buyer, or competitive moat.
26
+ **Why it fails**: tactics disconnect from positioning; marketing, pricing, and product drift apart.
27
+ **Counter-move**: write the one-paragraph market thesis. Every strategy decision links back to it or challenges it.
28
+
29
+ ### 3. Strategy without a kill criterion
30
+ **Symptom**: a bet is made with no definition of what would falsify it.
31
+ **Why it fails**: bad bets survive longer than they should; capital and focus are wasted.
32
+ **Counter-move**: declare the leading indicator and the threshold at which the strategy is revisited.
33
+
34
+ ### 4. Comparing to features, not to business models
35
+ **Symptom**: competitive analysis that maps feature parity without examining how the competitor makes money.
36
+ **Why it fails**: two products with identical features but different economics compete very differently.
37
+ **Counter-move**: for each competitor, model the business (unit economics, distribution, defensibility) not just the surface.
38
+
39
+ ## Self-check before shipping
40
+ - [ ] Rejected alternatives stated
41
+ - [ ] Market thesis explicit
42
+ - [ ] Falsification criterion and revisit threshold declared
43
+ - [ ] Competitive analysis covers economics, not just features
@@ -0,0 +1,37 @@
1
+ <!--
2
+ skills/roles/product-manager.enterprise.md — Anti-pattern guidance for the Product-manager.enterprise (enterprise) role.
3
+
4
+ Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
+ Covers common failure modes for the product-manager.enterprise (enterprise) domain and counter-moves to avoid them.
6
+ Applies to: cx-product-manager.
7
+ -->
8
+ ---
9
+ role: product-manager.enterprise
10
+ applies_to: [cx-product-manager]
11
+ inherits: product-manager
12
+ version: 1
13
+ ---
14
+ # Enterprise PM Overlay
15
+
16
+ Additional failure modes on top of the product-manager core.
17
+
18
+ ### 1. Buyer and user collapsed
19
+ **Symptom**: the same persona is treated as evaluator, buyer, admin, and daily user.
20
+ **Why it fails**: enterprise adoption fails when procurement, security, admin, and end-user needs diverge.
21
+ **Counter-move**: separate buyer, evaluator, admin, and practitioner requirements.
22
+
23
+ ### 2. Approval path ignored
24
+ **Symptom**: the PRD explains why users want the feature but not what blocks the account from adopting it.
25
+ **Why it fails**: security review, compliance, data residency, procurement, and rollout controls can be the real product requirement.
26
+ **Counter-move**: include adoption blockers and the evidence needed to clear them.
27
+
28
+ ### 3. Rollout treated as launch day
29
+ **Symptom**: requirements stop at feature availability.
30
+ **Why it fails**: enterprise customers need staged rollout, policy controls, audit logs, documentation, support, and reversibility.
31
+ **Counter-move**: specify rollout controls, admin defaults, auditability, enablement, and rollback behavior.
32
+
33
+ ## Self-check before shipping
34
+ - [ ] Buyer, admin, evaluator, and user needs are separated
35
+ - [ ] Security, compliance, procurement, and rollout blockers are named
36
+ - [ ] Audit, policy, and rollback requirements are explicit
37
+ - [ ] Customer evidence maps to account-level adoption risk
@@ -0,0 +1,37 @@
1
+ <!--
2
+ skills/roles/product-manager.growth.md — Anti-pattern guidance for the Product-manager.growth (growth) role.
3
+
4
+ Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
+ Covers common failure modes for the product-manager.growth (growth) domain and counter-moves to avoid them.
6
+ Applies to: cx-product-manager, cx-business-strategist.
7
+ -->
8
+ ---
9
+ role: product-manager.growth
10
+ applies_to: [cx-product-manager, cx-business-strategist]
11
+ inherits: product-manager
12
+ version: 1
13
+ ---
14
+ # Growth PM Overlay
15
+
16
+ Additional failure modes on top of the product-manager core.
17
+
18
+ ### 1. Metric movement without user value
19
+ **Symptom**: the doc optimizes activation, conversion, or engagement without proving the user is better off.
20
+ **Why it fails**: growth work can create short-term movement while eroding trust or retention.
21
+ **Counter-move**: pair each growth metric with the user value it must preserve.
22
+
23
+ ### 2. Funnel step isolated from lifecycle
24
+ **Symptom**: requirements focus on one funnel step without considering acquisition source, user intent, activation quality, retention, or expansion.
25
+ **Why it fails**: local optimization shifts the problem downstream.
26
+ **Counter-move**: map the lifecycle and name the guardrail metrics.
27
+
28
+ ### 3. Packaging assumptions hidden
29
+ **Symptom**: pricing, packaging, entitlement, and plan boundaries are left as "business decision later."
30
+ **Why it fails**: growth features often depend on the commercial motion.
31
+ **Counter-move**: state packaging assumptions and what evidence would change them.
32
+
33
+ ## Self-check before shipping
34
+ - [ ] Growth metric is paired with user-value guardrail
35
+ - [ ] Lifecycle impact is mapped beyond the local funnel step
36
+ - [ ] Pricing, packaging, and entitlement assumptions are explicit
37
+ - [ ] Experiment design includes success and stop thresholds
@@ -0,0 +1,67 @@
1
+ <!--
2
+ skills/roles/product-manager.md — Anti-pattern guidance for the Product-manager role.
3
+
4
+ Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
+ Covers common failure modes for the product-manager domain and counter-moves to avoid them.
6
+ Applies to: cx-product-manager, cx-business-strategist.
7
+ -->
8
+ ---
9
+ role: product-manager
10
+ applies_to: [cx-product-manager, cx-business-strategist]
11
+ inherits: null
12
+ version: 1
13
+ ---
14
+ # Product Manager — Role guidance
15
+
16
+ Load this before drafting. These are the failure modes that separate strong role output from weak role output — check your draft against each.
17
+
18
+
19
+ ### 1. Solution in the problem statement
20
+ **Symptom**: the problem is phrased as a missing feature ("users need a share button") instead of a user pain ("users cannot get their output to a collaborator without leaving the product").
21
+ **Why it fails**: anchors the team on one implementation before alternatives are considered; forecloses cheaper or better solutions.
22
+ **Counter-move**: write the problem as a user-observable pain with evidence. Save solutions for the proposal section.
23
+
24
+ ### 2. Unfalsifiable acceptance criteria
25
+ **Symptom**: criteria use words like "intuitive", "fast", "robust", "delightful" with no numeric or observable threshold.
26
+ **Why it fails**: neither engineering nor QA can decide when the work is done; reviews devolve into taste arguments.
27
+ **Counter-move**: rewrite each criterion as a condition a stranger could check without asking the author.
28
+
29
+ ### 3. Vanity metrics
30
+ **Symptom**: success measured by clicks, signups, page views, or "engagement" without connection to the user outcome.
31
+ **Why it fails**: rewards surface activity that looks like progress while the underlying problem persists.
32
+ **Counter-move**: name the user or business outcome. Pick a metric whose movement requires that outcome to occur.
33
+
34
+ ### 4. Missing user evidence
35
+ **Symptom**: the PRD cites no tickets, interviews, session recordings, or data. The source is "stakeholder said".
36
+ **Why it fails**: stakeholders generalize from one loud user; the team ends up building for the loudest, not the representative.
37
+ **Counter-move**: cite at least two independent evidence sources. If evidence is thin, say so and propose a research step before committing.
38
+
39
+ ### 5. Unbounded scope
40
+ **Symptom**: "goals" and "non-goals" are both empty, or non-goals is missing entirely.
41
+ **Why it fails**: every reviewer adds to the scope; the doc becomes a wishlist and the project misses its date.
42
+ **Counter-move**: force yourself to write three explicit non-goals. If you cannot, the scope is not thought through yet.
43
+
44
+ ### 6. Stakeholder bias over user evidence
45
+ **Symptom**: requirements trace to an executive's preference, not to user data.
46
+ **Why it fails**: builds the wrong thing confidently. Eventually the executive moves on; the feature stays.
47
+ **Counter-move**: separate what the business wants from what the user needs. Name both. Explain how they reconcile.
48
+
49
+ ### 7. Hiding the tradeoff
50
+ **Symptom**: the PRD reads as if the proposal has only upside.
51
+ **Why it fails**: loses credibility with engineering and leadership; tradeoffs surface in implementation as surprises.
52
+ **Counter-move**: write the strongest case against your own proposal. If you cannot, you have not understood it.
53
+
54
+ ### 8. Deadlines without constraints
55
+ **Symptom**: a ship date with no mention of what could slip, what is fixed, and who is on the team.
56
+ **Why it fails**: the deadline becomes a wish. Scope balloons to fill available time and then the date slips anyway.
57
+ **Counter-move**: name at least one of: fixed scope, fixed quality bar, fixed team size. Everything else is the flex.
58
+
59
+ ## Self-check before shipping
60
+
61
+ - [ ] Problem describes pain, not a missing feature
62
+ - [ ] Acceptance criteria are observable by a stranger
63
+ - [ ] Success metric is a user or business outcome, not activity
64
+ - [ ] At least two independent evidence sources cited
65
+ - [ ] Non-goals section has a meaningful number of items for scope control
66
+ - [ ] The strongest counter-argument is named and addressed
67
+ - [ ] Tradeoff between scope, date, and quality is explicit
@@ -0,0 +1,37 @@
1
+ <!--
2
+ skills/roles/product-manager.platform.md — Anti-pattern guidance for the Product-manager.platform (platform) role.
3
+
4
+ Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
+ Covers common failure modes for the product-manager.platform (platform) domain and counter-moves to avoid them.
6
+ Applies to: cx-product-manager.
7
+ -->
8
+ ---
9
+ role: product-manager.platform
10
+ applies_to: [cx-product-manager]
11
+ inherits: product-manager
12
+ version: 1
13
+ ---
14
+ # Platform PM Overlay
15
+
16
+ Additional failure modes on top of the product-manager core.
17
+
18
+ ### 1. Treating developers as one persona
19
+ **Symptom**: "developer" is used as the user for APIs, SDKs, admin surfaces, and operational workflows.
20
+ **Why it fails**: platform builders, application developers, security admins, and operators have different incentives and failure modes.
21
+ **Counter-move**: name the platform actor precisely and describe the system boundary they own.
22
+
23
+ ### 2. Contract changes without migration
24
+ **Symptom**: the PRD introduces API, schema, permission, or configuration changes without compatibility and migration requirements.
25
+ **Why it fails**: platform work breaks downstream systems even when the feature itself works.
26
+ **Counter-move**: include versioning, backwards compatibility, rollout, migration, and deprecation behavior.
27
+
28
+ ### 3. Operational burden omitted
29
+ **Symptom**: requirements describe setup but not monitoring, failure recovery, supportability, or admin controls.
30
+ **Why it fails**: platform capabilities become toil generators after launch.
31
+ **Counter-move**: add observability, auditability, rate limits, fallback behavior, and support diagnostics as product requirements.
32
+
33
+ ## Self-check before shipping
34
+ - [ ] Platform actor and owned boundary are explicit
35
+ - [ ] Compatibility, migration, and deprecation are covered
36
+ - [ ] Admin, audit, observability, and failure recovery requirements exist
37
+ - [ ] Integration contracts are testable
@@ -0,0 +1,37 @@
1
+ <!--
2
+ skills/roles/product-manager.product.md — Anti-pattern guidance for the Product-manager.product (product) role.
3
+
4
+ Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
+ Covers common failure modes for the product-manager.product (product) domain and counter-moves to avoid them.
6
+ Applies to: cx-product-manager.
7
+ -->
8
+ ---
9
+ role: product-manager.product
10
+ applies_to: [cx-product-manager]
11
+ inherits: product-manager
12
+ version: 1
13
+ ---
14
+ # Product PM Overlay
15
+
16
+ Additional failure modes on top of the product-manager core.
17
+
18
+ ### 1. Persona theater
19
+ **Symptom**: the document names a generic user such as "admin" or "customer" without describing the workflow, pressure, or context they are in.
20
+ **Why it fails**: generic personas cannot drive product tradeoffs; every stakeholder imagines a different user.
21
+ **Counter-move**: anchor the persona in a concrete job, trigger, current workaround, and success condition.
22
+
23
+ ### 2. Workflow gaps hidden behind feature language
24
+ **Symptom**: requirements describe screens or features but skip the before, during, and after steps of the user journey.
25
+ **Why it fails**: engineering can ship the feature while the actual workflow still breaks at handoff points.
26
+ **Counter-move**: write the end-to-end user workflow and mark where the new capability changes behavior.
27
+
28
+ ### 3. Adoption assumed
29
+ **Symptom**: success depends on users discovering, trusting, and repeatedly using the feature, but the PRD says nothing about adoption.
30
+ **Why it fails**: usable features still fail when activation, migration, onboarding, or trust are unresolved.
31
+ **Counter-move**: include the first-use path, repeat-use trigger, and measurable adoption signal.
32
+
33
+ ## Self-check before shipping
34
+ - [ ] Persona includes workflow context, not just role title
35
+ - [ ] End-to-end user journey is explicit
36
+ - [ ] Adoption path and repeat-use trigger are named
37
+ - [ ] Success metric measures user outcome, not shipped scope
@@ -0,0 +1,37 @@
1
+ <!--
2
+ skills/roles/qa.ai-eval.md — Anti-pattern guidance for the Qa.ai-eval (ai eval) role.
3
+
4
+ Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
+ Covers common failure modes for the qa.ai-eval (ai eval) domain and counter-moves to avoid them.
6
+ Applies to: cx-qa, cx-test-automation, cx-evaluator.
7
+ -->
8
+ ---
9
+ role: qa.ai-eval
10
+ applies_to: [cx-qa, cx-test-automation, cx-evaluator]
11
+ inherits: qa
12
+ version: 1
13
+ ---
14
+ # AI Eval QA Overlay
15
+
16
+ Additional failure modes on top of the QA core.
17
+
18
+ ### 1. Evaluating only good examples
19
+ **Symptom**: evals prove the model works on ideal prompts.
20
+ **Why it fails**: production failures come from ambiguity, missing context, prompt injection, and tool errors.
21
+ **Counter-move**: include adversarial, ambiguous, stale-context, and tool-failure cases.
22
+
23
+ ### 2. Score without explanation
24
+ **Symptom**: eval output is a number with no rubric or failure taxonomy.
25
+ **Why it fails**: teams cannot improve what they cannot classify.
26
+ **Counter-move**: define rubrics, labels, thresholds, and examples for each score.
27
+
28
+ ### 3. No regression baseline
29
+ **Symptom**: prompt or model changes are judged by current output only.
30
+ **Why it fails**: improvements in one class hide regressions in another.
31
+ **Counter-move**: keep golden traces, compare against baseline, and require promotion gates.
32
+
33
+ ## Self-check before shipping
34
+ - [ ] Eval set includes negative and adversarial cases
35
+ - [ ] Rubric, thresholds, and failure taxonomy are defined
36
+ - [ ] Golden traces and baseline comparison exist
37
+ - [ ] Tool-call and retrieval failures are tested
@@ -0,0 +1,37 @@
1
+ <!--
2
+ skills/roles/qa.api-contract.md — Anti-pattern guidance for the Qa.api-contract (api contract) role.
3
+
4
+ Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
+ Covers common failure modes for the qa.api-contract (api contract) domain and counter-moves to avoid them.
6
+ Applies to: cx-qa, cx-test-automation.
7
+ -->
8
+ ---
9
+ role: qa.api-contract
10
+ applies_to: [cx-qa, cx-test-automation]
11
+ inherits: qa
12
+ version: 1
13
+ ---
14
+ # API Contract QA Overlay
15
+
16
+ Additional failure modes on top of the QA core.
17
+
18
+ ### 1. Testing only the current client
19
+ **Symptom**: tests pass through one frontend but do not validate the API contract.
20
+ **Why it fails**: other clients, SDKs, and integrations break without local test failure.
21
+ **Counter-move**: verify request/response schemas, status codes, errors, compatibility, and deprecation behavior.
22
+
23
+ ### 2. Happy-path payload bias
24
+ **Symptom**: fixtures contain ideal input and complete data.
25
+ **Why it fails**: contracts fail at boundaries: missing fields, unknown enum values, pagination, rate limits, and auth states.
26
+ **Counter-move**: add negative, boundary, and compatibility cases.
27
+
28
+ ### 3. No consumer perspective
29
+ **Symptom**: tests validate implementation details but not consumer expectations.
30
+ **Why it fails**: provider changes can be technically valid and still break real consumers.
31
+ **Counter-move**: add consumer-driven contract tests where the API is external or shared.
32
+
33
+ ## Self-check before shipping
34
+ - [ ] Schemas, status codes, error bodies, and auth states are verified
35
+ - [ ] Compatibility and deprecation behavior have tests
36
+ - [ ] Boundary payloads, pagination, and rate limits are covered
37
+ - [ ] Consumer expectations are represented
@@ -0,0 +1,37 @@
1
+ <!--
2
+ skills/roles/qa.data-pipeline.md — Anti-pattern guidance for the Qa.data-pipeline (data pipeline) role.
3
+
4
+ Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
+ Covers common failure modes for the qa.data-pipeline (data pipeline) domain and counter-moves to avoid them.
6
+ Applies to: cx-qa, cx-test-automation.
7
+ -->
8
+ ---
9
+ role: qa.data-pipeline
10
+ applies_to: [cx-qa, cx-test-automation]
11
+ inherits: qa
12
+ version: 1
13
+ ---
14
+ # Data Pipeline QA Overlay
15
+
16
+ Additional failure modes on top of the QA core.
17
+
18
+ ### 1. Testing records, not invariants
19
+ **Symptom**: tests compare one fixture output but do not assert freshness, uniqueness, completeness, or lineage.
20
+ **Why it fails**: data defects are often statistically small and operationally severe.
21
+ **Counter-move**: define quality checks for schema, nullability, uniqueness, freshness, volume, and referential integrity.
22
+
23
+ ### 2. Ignoring reruns
24
+ **Symptom**: tests only verify first-run success.
25
+ **Why it fails**: real pipelines rerun after failures, backfills, and partial outages.
26
+ **Counter-move**: test idempotency, replay, backfill, and partial failure recovery.
27
+
28
+ ### 3. No alert validation
29
+ **Symptom**: pipeline tests prove output exists but not that failures page the right owner.
30
+ **Why it fails**: silent data failures become business decisions made from bad data.
31
+ **Counter-move**: verify alerts, runbooks, and ownership for quality failures.
32
+
33
+ ## Self-check before shipping
34
+ - [ ] Data quality invariants are explicit and executable
35
+ - [ ] Idempotency, replay, and backfill paths are tested
36
+ - [ ] Partial failures have recovery expectations
37
+ - [ ] Alerts and runbooks are part of verification
@@ -0,0 +1,68 @@
1
+ <!--
2
+ skills/roles/qa.md — Anti-pattern guidance for the Qa role.
3
+
4
+ Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
+ Covers common failure modes for the qa domain and counter-moves to avoid them.
6
+ Applies to: cx-qa, cx-test-automation.
7
+ -->
8
+ ---
9
+ role: qa
10
+ applies_to: [cx-qa, cx-test-automation]
11
+ inherits: null
12
+ version: 1
13
+ ---
14
+ # QA — Role guidance
15
+
16
+ Load this before drafting. These are the failure modes that separate strong role output from weak role output — check your draft against each.
17
+
18
+
19
+ ### 1. Testing the mock
20
+ **Symptom**: the test asserts that the mock was called with the expected arguments — and that is all it asserts.
21
+ **Why it fails**: the test passes regardless of whether the real system would. Mocks drift from the real contract silently.
22
+ **Counter-move**: assert on observable outputs or state. Use mocks for isolation, not as the thing being tested.
23
+
24
+ ### 2. Coverage as proxy for quality
25
+ **Symptom**: the bar is "80% line coverage" with no attention to whether the covered lines exercise meaningful behavior.
26
+ **Why it fails**: coverage rises by adding trivial assertions. Real bugs live in the uncovered branches and the edge cases.
27
+ **Counter-move**: pair line coverage with behavior coverage. For each requirement, name the test that would catch its regression.
28
+
29
+ ### 3. Happy path only
30
+ **Symptom**: every test exercises the success path. Error handling, timeouts, partial failures, and malformed input are untested.
31
+ **Why it fails**: production spends most of its time off the happy path. Untested code paths fail in the worst way.
32
+ **Counter-move**: for every happy-path test, write at least one error-path test. Malformed input, dependency failure, timeout.
33
+
34
+ ### 4. Flaky test denial
35
+ **Symptom**: intermittent failures are re-run until green and ignored.
36
+ **Why it fails**: the flake signals a real race condition, timing assumption, or environmental dependency that will eventually cause a production incident.
37
+ **Counter-move**: investigate every flake. Either fix the race or quarantine the test with a tracked ticket.
38
+
39
+ ### 5. Tests that test the implementation
40
+ **Symptom**: the test breaks every time the implementation is refactored, even when behavior is unchanged.
41
+ **Why it fails**: discourages refactoring. Engineers delete or weaken tests to unblock themselves.
42
+ **Counter-move**: test through public interfaces. Assert on outcomes, not on internal call patterns.
43
+
44
+ ### 6. Missing regression coverage for fixes
45
+ **Symptom**: a bug is fixed without a test that would have caught it.
46
+ **Why it fails**: the same bug regresses in six months and nobody remembers it was a bug.
47
+ **Counter-move**: every bug fix includes a test that fails against the broken code and passes against the fix.
48
+
49
+ ### 7. Golden-path E2E only
50
+ **Symptom**: the E2E suite validates one long happy journey and nothing else.
51
+ **Why it fails**: the suite is slow, fragile, and still leaves most integration failure modes uncovered.
52
+ **Counter-move**: cover critical user flows with focused E2E tests. Cover component behavior at lower tiers.
53
+
54
+ ### 8. Shipping without exercising the change
55
+ **Symptom**: tests pass but no one has actually used the feature as a user would.
56
+ **Why it fails**: the tests validate assumptions; the user discovers what the assumptions missed.
57
+ **Counter-move**: for any user-facing change, run the feature manually at least once before marking done.
58
+
59
+ ## Self-check before shipping
60
+
61
+ - [ ] Tests assert on outcomes, not on mock call patterns
62
+ - [ ] Each requirement has a test that would catch its regression
63
+ - [ ] Error paths have at least one test each
64
+ - [ ] No intermittent failures accepted; investigated or quarantined
65
+ - [ ] Tests survive refactors that preserve behavior
66
+ - [ ] Every bug fix has a regression test
67
+ - [ ] E2E covers critical flows; component tests cover the rest
68
+ - [ ] User-facing changes exercised manually before sign-off