@geraldmaron/construct 1.0.4 → 1.0.6

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 (293) hide show
  1. package/README.md +57 -44
  2. package/agents/prompts/cx-accessibility.md +3 -3
  3. package/agents/prompts/cx-ai-engineer.md +7 -7
  4. package/agents/prompts/cx-architect.md +6 -6
  5. package/agents/prompts/cx-business-strategist.md +6 -6
  6. package/agents/prompts/cx-data-analyst.md +7 -7
  7. package/agents/prompts/cx-data-engineer.md +3 -3
  8. package/agents/prompts/cx-debugger.md +6 -6
  9. package/agents/prompts/cx-designer.md +5 -5
  10. package/agents/prompts/cx-devil-advocate.md +4 -4
  11. package/agents/prompts/cx-docs-keeper.md +5 -5
  12. package/agents/prompts/cx-engineer.md +5 -5
  13. package/agents/prompts/cx-evaluator.md +2 -2
  14. package/agents/prompts/cx-explorer.md +8 -8
  15. package/agents/prompts/cx-legal-compliance.md +2 -2
  16. package/agents/prompts/cx-operations.md +5 -5
  17. package/agents/prompts/cx-orchestrator.md +10 -10
  18. package/agents/prompts/cx-platform-engineer.md +5 -5
  19. package/agents/prompts/cx-product-manager.md +4 -4
  20. package/agents/prompts/cx-qa.md +8 -8
  21. package/agents/prompts/cx-rd-lead.md +9 -9
  22. package/agents/prompts/cx-release-manager.md +5 -5
  23. package/agents/prompts/cx-researcher.md +22 -22
  24. package/agents/prompts/cx-reviewer.md +7 -7
  25. package/agents/prompts/cx-security.md +10 -10
  26. package/agents/prompts/cx-sre.md +7 -7
  27. package/agents/prompts/cx-test-automation.md +3 -3
  28. package/agents/prompts/cx-trace-reviewer.md +8 -8
  29. package/agents/prompts/cx-ux-researcher.md +3 -3
  30. package/bin/construct +470 -4
  31. package/commands/build/feature.md +4 -4
  32. package/commands/build/fix.md +8 -8
  33. package/commands/design/access.md +3 -3
  34. package/commands/design/flow.md +3 -3
  35. package/commands/design/ui.md +4 -4
  36. package/commands/measure/experiment.md +5 -5
  37. package/commands/measure/metrics.md +3 -3
  38. package/commands/measure/results.md +4 -4
  39. package/commands/plan/api.md +3 -3
  40. package/commands/plan/challenge.md +3 -3
  41. package/commands/plan/decide.md +3 -3
  42. package/commands/plan/feature.md +7 -7
  43. package/commands/plan/requirements.md +3 -3
  44. package/commands/remember/context.md +5 -5
  45. package/commands/remember/handoff.md +3 -3
  46. package/commands/remember/runbook.md +3 -3
  47. package/commands/review/code.md +8 -8
  48. package/commands/review/quality.md +4 -4
  49. package/commands/review/security.md +3 -3
  50. package/commands/ship/ready.md +3 -3
  51. package/commands/ship/release.md +3 -3
  52. package/commands/ship/status.md +4 -4
  53. package/commands/understand/docs.md +3 -3
  54. package/commands/understand/research.md +5 -3
  55. package/commands/understand/this.md +4 -4
  56. package/commands/understand/why.md +8 -8
  57. package/commands/work/clean.md +14 -14
  58. package/commands/work/drive.md +10 -10
  59. package/commands/work/optimize-prompts.md +9 -9
  60. package/commands/work/parallel-review.md +8 -8
  61. package/db/schema/006_graph.sql +24 -0
  62. package/examples/provider-plugin/README.md +7 -7
  63. package/examples/seed-observations/README.md +6 -6
  64. package/examples/seed-observations/anti-patterns.md +14 -14
  65. package/examples/seed-observations/decisions.md +4 -4
  66. package/examples/seed-observations/patterns.md +14 -14
  67. package/lib/auto-docs.mjs +10 -5
  68. package/lib/cli-commands.mjs +45 -1
  69. package/lib/comment-lint.mjs +7 -1
  70. package/lib/config/schema.mjs +3 -0
  71. package/lib/flavors/loader.mjs +136 -0
  72. package/lib/hooks/agent-tracker.mjs +22 -3
  73. package/lib/hooks/pre-push-gate.mjs +14 -1
  74. package/lib/hooks/session-optimize.mjs +3 -2
  75. package/lib/hooks/session-reflect.mjs +68 -0
  76. package/lib/init-unified.mjs +25 -2
  77. package/lib/intake/classify.mjs +61 -183
  78. package/lib/intake/prepare.mjs +7 -0
  79. package/lib/intake/tables/creative.mjs +94 -0
  80. package/lib/intake/tables/operations.mjs +85 -0
  81. package/lib/intake/tables/research.mjs +85 -0
  82. package/lib/intake/tables/rnd.mjs +175 -0
  83. package/lib/knowledge/graph.mjs +213 -0
  84. package/lib/knowledge/research-store.mjs +109 -0
  85. package/lib/mcp/server.mjs +187 -1
  86. package/lib/mcp/tools/profile.mjs +270 -0
  87. package/lib/observation-store.mjs +19 -0
  88. package/lib/outcomes/aggregate.mjs +104 -0
  89. package/lib/outcomes/record.mjs +115 -0
  90. package/lib/parity.mjs +6 -9
  91. package/lib/profiles/lifecycle.mjs +388 -0
  92. package/lib/profiles/loader.mjs +123 -0
  93. package/lib/profiles/validate-custom.mjs +114 -0
  94. package/lib/reflect/extractor.mjs +193 -0
  95. package/lib/reflect.mjs +89 -2
  96. package/lib/sandbox.mjs +102 -0
  97. package/package.json +6 -1
  98. package/personas/construct.md +20 -20
  99. package/platforms/claude/CLAUDE.md +6 -6
  100. package/platforms/claude/settings.template.json +13 -0
  101. package/rules/common/agents.md +2 -2
  102. package/rules/common/beads-hygiene.md +11 -11
  103. package/rules/common/code-review.md +1 -1
  104. package/rules/common/coding-style.md +1 -1
  105. package/rules/common/comments.md +8 -8
  106. package/rules/common/commit-approval.md +4 -4
  107. package/rules/common/cx-agent-routing.md +2 -2
  108. package/rules/common/cx-skill-routing.md +2 -2
  109. package/rules/common/development-workflow.md +1 -1
  110. package/rules/common/doc-ownership.md +2 -2
  111. package/rules/common/efficiency.md +3 -3
  112. package/rules/common/framing.md +1 -1
  113. package/rules/common/git-workflow.md +1 -1
  114. package/rules/common/patterns.md +1 -1
  115. package/rules/common/performance.md +1 -1
  116. package/rules/common/release-gates.md +7 -7
  117. package/rules/common/research.md +4 -4
  118. package/rules/common/security.md +1 -1
  119. package/rules/common/skill-composition.md +8 -8
  120. package/rules/common/testing.md +1 -1
  121. package/rules/golang/coding-style.md +2 -2
  122. package/rules/golang/hooks.md +1 -1
  123. package/rules/golang/patterns.md +1 -1
  124. package/rules/golang/security.md +1 -1
  125. package/rules/golang/testing.md +1 -1
  126. package/rules/python/coding-style.md +1 -1
  127. package/rules/python/hooks.md +1 -1
  128. package/rules/python/patterns.md +1 -1
  129. package/rules/python/security.md +1 -1
  130. package/rules/python/testing.md +1 -1
  131. package/rules/swift/coding-style.md +3 -3
  132. package/rules/swift/hooks.md +2 -2
  133. package/rules/swift/patterns.md +2 -2
  134. package/rules/swift/security.md +4 -4
  135. package/rules/swift/testing.md +2 -2
  136. package/rules/typescript/coding-style.md +1 -1
  137. package/rules/typescript/hooks.md +1 -1
  138. package/rules/typescript/patterns.md +1 -1
  139. package/rules/typescript/security.md +1 -1
  140. package/rules/typescript/testing.md +1 -1
  141. package/rules/web/coding-style.md +1 -1
  142. package/rules/web/design-quality.md +1 -1
  143. package/rules/web/hooks.md +1 -1
  144. package/rules/web/patterns.md +1 -1
  145. package/rules/web/performance.md +1 -1
  146. package/rules/web/security.md +1 -1
  147. package/rules/web/testing.md +1 -1
  148. package/scripts/sync-agents.mjs +11 -0
  149. package/skills/ai/agent-dev.md +1 -1
  150. package/skills/ai/llm-security.md +1 -1
  151. package/skills/ai/ml-ops.md +6 -6
  152. package/skills/ai/orchestration-workflow.md +1 -1
  153. package/skills/ai/prompt-and-eval.md +1 -1
  154. package/skills/ai/prompt-optimizer.md +13 -13
  155. package/skills/ai/rag-system.md +1 -1
  156. package/skills/architecture/api-design.md +1 -1
  157. package/skills/architecture/caching.md +1 -1
  158. package/skills/architecture/cloud-native.md +1 -1
  159. package/skills/architecture/message-queue.md +1 -1
  160. package/skills/architecture/security-arch.md +1 -1
  161. package/skills/compliance/ai-disclosure.md +1 -1
  162. package/skills/compliance/data-privacy.md +1 -1
  163. package/skills/compliance/license-audit.md +2 -2
  164. package/skills/compliance/regulatory-review.md +1 -1
  165. package/skills/development/cpp.md +1 -1
  166. package/skills/development/go.md +1 -1
  167. package/skills/development/java.md +1 -1
  168. package/skills/development/kotlin.md +9 -9
  169. package/skills/development/mobile-crossplatform.md +13 -13
  170. package/skills/development/python.md +1 -1
  171. package/skills/development/rust.md +1 -1
  172. package/skills/development/shell.md +1 -1
  173. package/skills/development/swift.md +6 -6
  174. package/skills/development/typescript.md +1 -1
  175. package/skills/devops/ci-cd.md +5 -5
  176. package/skills/devops/containerization.md +9 -9
  177. package/skills/devops/cost-optimization.md +1 -1
  178. package/skills/devops/data-engineering.md +2 -2
  179. package/skills/devops/database.md +1 -1
  180. package/skills/devops/dependency-management.md +3 -3
  181. package/skills/devops/devsecops.md +1 -1
  182. package/skills/devops/git-workflow.md +1 -1
  183. package/skills/devops/incident-response.md +18 -18
  184. package/skills/devops/monorepo.md +5 -5
  185. package/skills/devops/observability.md +1 -1
  186. package/skills/devops/performance.md +1 -1
  187. package/skills/devops/testing.md +1 -1
  188. package/skills/docs/adr-workflow.md +2 -2
  189. package/skills/docs/backlog-proposal-workflow.md +1 -1
  190. package/skills/docs/customer-profile-workflow.md +1 -1
  191. package/skills/docs/document-ingest-workflow.md +1 -1
  192. package/skills/docs/evidence-ingest-workflow.md +1 -1
  193. package/skills/docs/init-docs.md +15 -15
  194. package/skills/docs/init-project.md +1 -1
  195. package/skills/docs/prd-workflow.md +3 -3
  196. package/skills/docs/prfaq-workflow.md +1 -1
  197. package/skills/docs/product-intelligence-review.md +1 -1
  198. package/skills/docs/product-intelligence-workflow.md +1 -1
  199. package/skills/docs/product-signal-workflow.md +9 -9
  200. package/skills/docs/research-workflow.md +10 -10
  201. package/skills/docs/runbook-workflow.md +2 -2
  202. package/skills/docs/strategy-workflow.md +3 -3
  203. package/skills/exploration/repo-map.md +11 -11
  204. package/skills/frameworks/django.md +15 -15
  205. package/skills/frameworks/nextjs.md +16 -16
  206. package/skills/frameworks/react.md +12 -12
  207. package/skills/frameworks/spring-boot.md +12 -12
  208. package/skills/frontend-design/accessibility.md +6 -6
  209. package/skills/frontend-design/component-patterns.md +1 -1
  210. package/skills/frontend-design/engineering.md +1 -1
  211. package/skills/frontend-design/state-management.md +1 -1
  212. package/skills/frontend-design/ui-aesthetics.md +1 -1
  213. package/skills/frontend-design/ux-principles.md +1 -1
  214. package/skills/operating/orchestration-reference.md +27 -27
  215. package/skills/quality-gates/review-work.md +3 -3
  216. package/skills/quality-gates/verify-change.md +1 -1
  217. package/skills/quality-gates/verify-module.md +1 -1
  218. package/skills/quality-gates/verify-quality.md +1 -1
  219. package/skills/quality-gates/verify-security.md +1 -1
  220. package/skills/roles/architect.ai-systems.md +4 -2
  221. package/skills/roles/architect.data.md +4 -2
  222. package/skills/roles/architect.enterprise.md +4 -2
  223. package/skills/roles/architect.integration.md +4 -2
  224. package/skills/roles/architect.md +7 -5
  225. package/skills/roles/architect.platform.md +4 -2
  226. package/skills/roles/data-analyst.experiment.md +4 -2
  227. package/skills/roles/data-analyst.md +9 -7
  228. package/skills/roles/data-analyst.product-intelligence.md +4 -2
  229. package/skills/roles/data-analyst.product.md +4 -2
  230. package/skills/roles/data-analyst.telemetry.md +4 -2
  231. package/skills/roles/data-engineer.pipeline.md +4 -2
  232. package/skills/roles/data-engineer.vector-retrieval.md +4 -2
  233. package/skills/roles/data-engineer.warehouse.md +4 -2
  234. package/skills/roles/debugger.md +7 -5
  235. package/skills/roles/designer.accessibility.md +4 -2
  236. package/skills/roles/designer.md +10 -8
  237. package/skills/roles/engineer.ai.md +4 -2
  238. package/skills/roles/engineer.data.md +5 -3
  239. package/skills/roles/engineer.md +14 -12
  240. package/skills/roles/engineer.platform.md +5 -3
  241. package/skills/roles/operator.docs.md +6 -4
  242. package/skills/roles/operator.md +6 -4
  243. package/skills/roles/operator.release.md +4 -2
  244. package/skills/roles/operator.sre.md +5 -3
  245. package/skills/roles/orchestrator.md +5 -3
  246. package/skills/roles/product-manager.ai-product.md +4 -2
  247. package/skills/roles/product-manager.business-strategy.md +4 -2
  248. package/skills/roles/product-manager.enterprise.md +4 -2
  249. package/skills/roles/product-manager.growth.md +4 -2
  250. package/skills/roles/product-manager.md +6 -4
  251. package/skills/roles/product-manager.platform.md +4 -2
  252. package/skills/roles/product-manager.product.md +4 -2
  253. package/skills/roles/qa.ai-eval.md +4 -2
  254. package/skills/roles/qa.api-contract.md +4 -2
  255. package/skills/roles/qa.data-pipeline.md +4 -2
  256. package/skills/roles/qa.md +7 -5
  257. package/skills/roles/qa.test-automation.md +5 -3
  258. package/skills/roles/qa.web-ui.md +4 -2
  259. package/skills/roles/researcher.explorer.md +4 -2
  260. package/skills/roles/researcher.md +11 -9
  261. package/skills/roles/researcher.ux.md +4 -2
  262. package/skills/roles/reviewer.devil-advocate.md +4 -2
  263. package/skills/roles/reviewer.evaluator.md +4 -2
  264. package/skills/roles/reviewer.md +14 -12
  265. package/skills/roles/reviewer.trace.md +4 -2
  266. package/skills/roles/security.ai.md +4 -2
  267. package/skills/roles/security.appsec.md +4 -2
  268. package/skills/roles/security.cloud.md +4 -2
  269. package/skills/roles/security.legal-compliance.md +4 -2
  270. package/skills/roles/security.md +7 -5
  271. package/skills/roles/security.privacy.md +4 -2
  272. package/skills/roles/security.supply-chain.md +4 -2
  273. package/skills/routing.md +14 -14
  274. package/skills/security/blue-team.md +1 -1
  275. package/skills/security/code-audit.md +1 -1
  276. package/skills/security/pentest.md +1 -1
  277. package/skills/security/red-team.md +1 -1
  278. package/skills/security/threat-intel.md +1 -1
  279. package/skills/security/vuln-research.md +1 -1
  280. package/skills/utility/clean-code.md +2 -2
  281. package/templates/docs/changelog-entry.md +1 -1
  282. package/templates/docs/construct_guide.md +13 -13
  283. package/templates/docs/meta-prd.md +16 -16
  284. package/templates/docs/one-pager.md +1 -1
  285. package/templates/docs/persona-artifact.md +36 -0
  286. package/templates/docs/prd-business.md +1 -1
  287. package/templates/docs/prd-platform.md +1 -1
  288. package/templates/docs/prd.md +17 -17
  289. package/templates/docs/research-brief.md +8 -8
  290. package/templates/docs/research-finding.md +26 -0
  291. package/templates/docs/rfc.md +1 -1
  292. package/templates/docs/skill-artifact.md +27 -0
  293. package/templates/docs/strategy.md +1 -1
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/devops/containerization.md Containerization Use this skill when writing Dockerfiles, optimizing image size, or securing cont
2
+ skills/devops/containerization.md (Containerization) Use this skill when writing Dockerfiles, optimizing image size, or securing cont
3
3
 
4
4
  Use this skill when writing Dockerfiles, optimizing image size, or securing container builds. ## Multi-Stage Builds
5
5
  -->
@@ -26,14 +26,14 @@ COPY --from=builder /app/node_modules ./node_modules
26
26
  ```
27
27
 
28
28
  Runtime base image selection:
29
- - `gcr.io/distroless/nodejs20-debian12` no shell, no package manager, smallest attack surface for Node.
30
- - `node:20-alpine` shell available for debugging; use when distroless breaks scripts.
31
- - `scratch` static binaries only (Go, Rust with `musl`).
29
+ - `gcr.io/distroless/nodejs20-debian12`: no shell, no package manager, smallest attack surface for Node.
30
+ - `node:20-alpine`: shell available for debugging; use when distroless breaks scripts.
31
+ - `scratch`: static binaries only (Go, Rust with `musl`).
32
32
  - Never use `debian`, `ubuntu`, or `node:20` (Debian-based) as a production runtime base; they carry thousands of unnecessary packages.
33
33
 
34
34
  ## Layer Caching
35
35
 
36
- Order layers by change frequency least-changed first:
36
+ Order layers by change frequency: least-changed first:
37
37
 
38
38
  1. Base OS packages (`RUN apk add ...`)
39
39
  2. App dependencies (`COPY package*.json ./` then `RUN npm ci`)
@@ -54,7 +54,7 @@ RUN apk add --no-cache curl git && \
54
54
  rm -rf /var/cache/apk/*
55
55
  ```
56
56
 
57
- Never put cache cleanup in a separate `RUN` it creates a new layer that does not reclaim space from the previous layer.
57
+ Never put cache cleanup in a separate `RUN`: it creates a new layer that does not reclaim space from the previous layer.
58
58
 
59
59
  ## Security
60
60
 
@@ -67,7 +67,7 @@ Never put cache cleanup in a separate `RUN` — it creates a new layer that does
67
67
  | No `apt-get upgrade` | Pin the base image digest instead; `upgrade` produces non-reproducible layers |
68
68
  | Read-only filesystem | Pass `--read-only` at runtime; mount writable tmpfs only for paths that need writes |
69
69
 
70
- Never use `ADD` with a URL it bypasses layer caching in unpredictable ways and cannot be verified. Use `COPY` for local files and `curl` + checksum verification for remote files.
70
+ Never use `ADD` with a URL: it bypasses layer caching in unpredictable ways and cannot be verified. Use `COPY` for local files and `curl` + checksum verification for remote files.
71
71
 
72
72
  ## Image Scanning
73
73
 
@@ -94,7 +94,7 @@ HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
94
94
 
95
95
  Use an HTTP endpoint for web services. Use a process check (`pgrep`) only for non-HTTP workloads.
96
96
 
97
- Kubernetes uses separate liveness, readiness, and startup probes configure those in the deployment manifest, not in the Dockerfile. The Docker `HEALTHCHECK` is relevant for `docker run` and Docker Compose only.
97
+ Kubernetes uses separate liveness, readiness, and startup probes: configure those in the deployment manifest, not in the Dockerfile. The Docker `HEALTHCHECK` is relevant for `docker run` and Docker Compose only.
98
98
 
99
99
  ## Size Optimization
100
100
 
@@ -102,5 +102,5 @@ Kubernetes uses separate liveness, readiness, and startup probes — configure t
102
102
  - `--no-install-recommends` with `apt-get install` eliminates suggested packages.
103
103
  - Always clean package manager caches in the same `RUN` layer as the install command.
104
104
  - Use `COPY --chown=app:app` instead of a separate `RUN chown` to avoid a wasted layer.
105
- - Multi-stage builds remove all build tools, source files, and intermediate artifacts automatically they are the single highest-impact size reduction technique.
105
+ - Multi-stage builds remove all build tools, source files, and intermediate artifacts automatically: they are the single highest-impact size reduction technique.
106
106
  - For Go and Rust, build a statically linked binary (`CGO_ENABLED=0` for Go, `musl` target for Rust) and copy it into `scratch` or distroless for a final image under 20 MB.
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/devops/cost-optimization.md Cloud Cost Optimization Use this skill when reducing cloud spend, right-sizing resources, or implementin
2
+ skills/devops/cost-optimization.md (Cloud Cost Optimization) Use this skill when reducing cloud spend, right-sizing resources, or implementin
3
3
 
4
4
  Use this skill when reducing cloud spend, right-sizing resources, or implementing FinOps practices. ## Cost Visibility
5
5
  -->
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/devops/data-engineering.md Data Engineering 1. **Idempotency**: pipelines can run multiple times without duplicating data
2
+ skills/devops/data-engineering.md (Data Engineering) 1. **Idempotency**: pipelines can run multiple times without duplicating data
3
3
 
4
4
  ## Core Principles 1. **Idempotency**: pipelines can run multiple times without duplicating data
5
5
  -->
@@ -59,7 +59,7 @@ stream = env \
59
59
  env.execute("Orders Streaming Pipeline")
60
60
  ```
61
61
 
62
- Watermarks define event-time handling for late-arriving events configure based on source latency SLA.
62
+ Watermarks define event-time handling for late-arriving events: configure based on source latency SLA.
63
63
 
64
64
  ## Data Modeling
65
65
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/devops/database.md Database Patterns Use this skill when designing schemas, writing migrations, optimizing queries, o
2
+ skills/devops/database.md (Database Patterns) Use this skill when designing schemas, writing migrations, optimizing queries, o
3
3
 
4
4
  Use this skill when designing schemas, writing migrations, optimizing queries, or selecting databases. ## Schema Design
5
5
  -->
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/devops/dependency-management.md Dependency Management Use this skill when managing package upgrades, resolving CVEs, or establishing l
2
+ skills/devops/dependency-management.md (Dependency Management) Use this skill when managing package upgrades, resolving CVEs, or establishing l
3
3
 
4
4
  Use this skill when managing package upgrades, resolving CVEs, or establishing lock file and versioning policy. ## Lock File Hygiene
5
5
  -->
@@ -11,7 +11,7 @@ Use this skill when managing package upgrades, resolving CVEs, or establishing l
11
11
 
12
12
  - Always commit lock files: `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`, `go.sum`, `Cargo.lock`.
13
13
  - Never delete and regenerate a lock file without reviewing the full diff; regeneration silently upgrades all transitive dependencies.
14
- - Review lock file diffs in PRs for unexpected transitive version changes these are where supply chain attacks hide.
14
+ - Review lock file diffs in PRs for unexpected transitive version changes: these are where supply chain attacks hide.
15
15
  - Do not add lock files to `.gitignore`; they are the reproducibility contract for the build.
16
16
  - A PR that changes only the lock file (no `package.json` change) warrants careful scrutiny.
17
17
 
@@ -22,7 +22,7 @@ Use this skill when managing package upgrades, resolving CVEs, or establishing l
22
22
  | Dependabot | Daily/weekly schedule | One PR per package by default; group with `groups:` config | Patch: auto-merge if CI passes. Minor: batch weekly, manual review. Major: manual always. |
23
23
  | Renovate | Configurable schedule | Group by ecosystem, semver range, or custom regex via `packageRules` | Auto-merge patch and minor with passing CI; use `stabilityDays: 3` to avoid merging on day of release |
24
24
 
25
- Prefer Renovate for complex repos its `rangeStrategy`, `grouping`, `stabilityDays`, and `automerge` controls are more expressive than Dependabot's.
25
+ Prefer Renovate for complex repos: its `rangeStrategy`, `grouping`, `stabilityDays`, and `automerge` controls are more expressive than Dependabot's.
26
26
 
27
27
  Always require CI to pass before any auto-merge. Never auto-merge major version bumps.
28
28
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/devops/devsecops.md DevSecOps Use this skill when integrating security into CI/CD pipelines, managing supply c
2
+ skills/devops/devsecops.md (DevSecOps) Use this skill when integrating security into CI/CD pipelines, managing supply c
3
3
 
4
4
  Use this skill when integrating security into CI/CD pipelines, managing supply chain risk, or automating security scanning. ## Pipeline Security Stages
5
5
  -->
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/devops/git-workflow.md Git Workflow Use this skill when establishing branching strategies, commit conventions, or co
2
+ skills/devops/git-workflow.md (Git Workflow) Use this skill when establishing branching strategies, commit conventions, or co
3
3
 
4
4
  Use this skill when establishing branching strategies, commit conventions, or code integration practices. ## Branching Strategies
5
5
  -->
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/devops/incident-response.md Incident Response | Sev | User impact | Response time | Example |
2
+ skills/devops/incident-response.md (Incident Response) | Sev | User impact | Response time | Example |
3
3
 
4
4
  ## Severity Levels | Sev | User impact | Response time | Example |
5
5
  -->
@@ -14,7 +14,7 @@ skills/devops/incident-response.md — Incident Response — | Sev | User impact
14
14
  | **P2** | Significant degradation, partial outage | < 1 hour | Elevated error rate, slow responses |
15
15
  | **P3** | Minor impact, workaround available | Best effort / next business day | Single user affected, cosmetic |
16
16
 
17
- Define severity in your runbook and assign it early it determines escalation and comms cadence.
17
+ Define severity in your runbook and assign it early: it determines escalation and comms cadence.
18
18
 
19
19
  ## The Response Loop
20
20
 
@@ -36,9 +36,9 @@ Healthy detection requires:
36
36
  Declare an incident early, even if uncertain. It is easier to downgrade than to delay comms.
37
37
 
38
38
  1. Create incident channel: `#incident-YYYY-MM-DD-brief-description`
39
- 2. Assign **Incident Commander (IC)** one person owns the call and all decisions
40
- 3. Assign **Scribe** records timeline, decisions, actions in real time
41
- 4. Assign **Comms Lead** status page updates and stakeholder notifications
39
+ 2. Assign **Incident Commander (IC)**: one person owns the call and all decisions
40
+ 3. Assign **Scribe**: records timeline, decisions, actions in real time
41
+ 4. Assign **Comms Lead**: status page updates and stakeholder notifications
42
42
 
43
43
  ### Triage
44
44
 
@@ -53,14 +53,14 @@ IC asks: **"What is the user impact and is it getting better or worse?"**
53
53
 
54
54
  Use `git log --since="2 hours ago"` and deployment logs to find the change vector.
55
55
 
56
- ### Mitigate (not root cause stop the bleeding first)
56
+ ### Mitigate (not root cause: stop the bleeding first)
57
57
 
58
58
  Mitigation options in priority order:
59
- 1. **Rollback** fastest if a recent deploy is the cause
60
- 2. **Feature flag off** disable the failing feature
61
- 3. **Traffic shift** route to a healthy region or canary
62
- 4. **Scale up** if resource exhaustion is the cause
63
- 5. **Restart** for stuck processes (last resort often hides root cause)
59
+ 1. **Rollback**: fastest if a recent deploy is the cause
60
+ 2. **Feature flag off**: disable the failing feature
61
+ 3. **Traffic shift**: route to a healthy region or canary
62
+ 4. **Scale up**: if resource exhaustion is the cause
63
+ 5. **Restart** (for stuck processes (last resort) often hides root cause)
64
64
 
65
65
  Do NOT wait for a perfect fix. Mitigate first, fix properly after users are unblocked.
66
66
 
@@ -107,12 +107,12 @@ Write the post-mortem within 48 hours while memory is fresh.
107
107
 
108
108
  ### Required sections
109
109
 
110
- 1. **Summary** 3-sentence description of what happened, impact, and resolution
111
- 2. **Timeline** chronological log with timestamps
112
- 3. **Root cause(s)** use 5-whys to reach systemic causes, not surface symptoms
113
- 4. **Contributing factors** process/tooling gaps that allowed the issue
114
- 5. **What went well** detection worked, rollback was fast, etc.
115
- 6. **Action items** concrete, assigned, time-bounded; not vague recommendations
110
+ 1. **Summary**: 3-sentence description of what happened, impact, and resolution
111
+ 2. **Timeline**: chronological log with timestamps
112
+ 3. **Root cause(s)**: use 5-whys to reach systemic causes, not surface symptoms
113
+ 4. **Contributing factors**: process/tooling gaps that allowed the issue
114
+ 5. **What went well**: detection worked, rollback was fast, etc.
115
+ 6. **Action items**: concrete, assigned, time-bounded; not vague recommendations
116
116
 
117
117
  ### 5-Whys example
118
118
 
@@ -129,7 +129,7 @@ Action: Add query plan check to PR template + CI gate for slow queries
129
129
 
130
130
  ### Blameless culture
131
131
 
132
- The post-mortem finds systemic failures, not individual errors. A person took an action that made sense given the information and tools available at the time the question is why the system allowed that action to cause an outage.
132
+ The post-mortem finds systemic failures, not individual errors. A person took an action that made sense given the information and tools available at the time: the question is why the system allowed that action to cause an outage.
133
133
 
134
134
  ## Runbook Template
135
135
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/devops/monorepo.md Monorepo Use this skill when selecting monorepo tooling, structuring packages, or optimiz
2
+ skills/devops/monorepo.md (Monorepo) Use this skill when selecting monorepo tooling, structuring packages, or optimiz
3
3
 
4
4
  Use this skill when selecting monorepo tooling, structuring packages, or optimizing affected-only builds. ## Tool Selection
5
5
  -->
@@ -32,12 +32,12 @@ packages/
32
32
  auth/
33
33
  ```
34
34
 
35
- Keep `apps/` for deployable surfaces and `packages/` for everything importable. Never put deployable entrypoints inside `packages/`. Config packages (`packages/config/`) centralise tooling setup each app/package extends rather than duplicates.
35
+ Keep `apps/` for deployable surfaces and `packages/` for everything importable. Never put deployable entrypoints inside `packages/`. Config packages (`packages/config/`) centralise tooling setup: each app/package extends rather than duplicates.
36
36
 
37
37
  ## Package Boundaries
38
38
 
39
39
  - One package per domain or product surface (`packages/billing`, `packages/auth`, `apps/web`, `apps/api`).
40
- - Place shared utilities in `packages/utils` or `packages/shared` never in an app package.
40
+ - Place shared utilities in `packages/utils` or `packages/shared`: never in an app package.
41
41
  - Never import directly from one `apps/` package to another `apps/` package; extract shared code to `packages/`.
42
42
  - Each package exposes its public API through a single `index.ts` barrel file; internal modules are private.
43
43
  - Enforce boundaries with Nx `@nrwl/enforce-module-boundaries` lint rules or ESLint's `import/no-restricted-paths`.
@@ -56,7 +56,7 @@ nx affected --target=build --base=origin/main
56
56
  nx affected --target=test --base=origin/main
57
57
  ```
58
58
 
59
- Both tools build a change graph from the dependency tree. A change to `packages/utils` marks every downstream package as affected. Only affected packages run in CI unaffected packages use cached results.
59
+ Both tools build a change graph from the dependency tree. A change to `packages/utils` marks every downstream package as affected. Only affected packages run in CI: unaffected packages use cached results.
60
60
 
61
61
  CI integration: set `--base` to the merge base of the PR branch (`origin/main` or `$(git merge-base HEAD origin/main)`), not `HEAD^1`, to correctly identify all changed files in the PR.
62
62
 
@@ -82,6 +82,6 @@ Generate changelogs automatically from changeset files; do not write changelogs
82
82
  ## CI Optimization
83
83
 
84
84
  - Cache `.turbo` or Nx's default cache directory (`node_modules/.cache/nx`) between CI runs, keyed to the lock file hash.
85
- - Enable remote caching (Turborepo Remote Cache, Nx Cloud) for team environments local caches do not transfer between CI runners.
85
+ - Enable remote caching (Turborepo Remote Cache, Nx Cloud) for team environments: local caches do not transfer between CI runners.
86
86
  - Run `turbo prune --scope=<app>` to generate a minimal lockfile subset for Docker builds of individual apps.
87
87
  - Gate PR merges on `affected` tests, not the full suite, to keep CI under 10 minutes for large repos.
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/devops/observability.md Observability Use this skill when designing logging, tracing, metrics, or alerting systems.
2
+ skills/devops/observability.md (Observability) Use this skill when designing logging, tracing, metrics, or alerting systems.
3
3
 
4
4
  Use this skill when designing logging, tracing, metrics, or alerting systems. ## Three Pillars
5
5
  -->
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/devops/performance.md Performance Engineering Use this skill when profiling, load testing, or optimizing application and infra
2
+ skills/devops/performance.md (Performance Engineering) Use this skill when profiling, load testing, or optimizing application and infra
3
3
 
4
4
  Use this skill when profiling, load testing, or optimizing application and infrastructure performance. ## Performance Targets
5
5
  -->
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/devops/testing.md Testing Strategy Use this skill when planning test coverage, selecting test types, or establishin
2
+ skills/devops/testing.md (Testing Strategy) Use this skill when planning test coverage, selecting test types, or establishin
3
3
 
4
4
  Use this skill when planning test coverage, selecting test types, or establishing testing practices. ## Test Pyramid
5
5
  -->
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/docs/adr-workflow.md Workflow for recording an architectural decision as an ADR.
2
+ skills/docs/adr-workflow.md: Workflow for recording an architectural decision as an ADR.
3
3
 
4
4
  Triggered when cx-architect finalizes a design or a technology choice is made. Writes a
5
5
  full ADR to docs/adr/ using the shipped template (user-overridable via .cx/templates/docs/adr.md)
@@ -18,7 +18,7 @@ Use when: an architectural decision is made that affects the system structure, d
18
18
  ## Steps
19
19
 
20
20
  1. **cx-architect** or **cx-engineer** identifies the decision
21
- 2. **Write to `docs/adr/ADR-{NNN}-{slug}.md`** using the template from `get_template("adr")` resolves `.cx/templates/docs/adr.md` (override) then `templates/docs/adr.md` (shipped)
21
+ 2. **Write to `docs/adr/ADR-{NNN}-{slug}.md`** using the template from `get_template("adr")`: resolves `.cx/templates/docs/adr.md` (override) then `templates/docs/adr.md` (shipped)
22
22
  - NNN = next sequential number (check existing files)
23
23
  3. **Also write a shorter entry to `.cx/decisions/`** for session context
24
24
  4. **cx-docs-keeper** updates `.cx/context.md` Architecture Notes with a one-line summary and link
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/docs/backlog-proposal-workflow.md Approval-gated issue tracker proposals.
2
+ skills/docs/backlog-proposal-workflow.md: Approval-gated issue tracker proposals.
3
3
  -->
4
4
  # Backlog Proposal Workflow
5
5
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/docs/customer-profile-workflow.md Maintain durable customer/account memory for Product Intelligence.
2
+ skills/docs/customer-profile-workflow.md: Maintain durable customer/account memory for Product Intelligence.
3
3
  -->
4
4
  # Customer Profile Workflow
5
5
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/docs/document-ingest-workflow.md Convert source documents into retrieval-ready markdown artifacts.
2
+ skills/docs/document-ingest-workflow.md: Convert source documents into retrieval-ready markdown artifacts.
3
3
  -->
4
4
  # Document Ingest Workflow
5
5
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/docs/evidence-ingest-workflow.md Normalize raw product evidence into Construct knowledge artifacts.
2
+ skills/docs/evidence-ingest-workflow.md: Normalize raw product evidence into Construct knowledge artifacts.
3
3
  -->
4
4
  # Evidence Ingest Workflow
5
5
 
@@ -1,20 +1,20 @@
1
1
  <!--
2
- skills/docs/init-docs.md Skill: init-docs Initialize Project Documentation Structure `init docs`, `create docs structure`, `set up documentation`, `docs scaffold`, `documentation init`
2
+ skills/docs/init-docs.md (Skill: init-docs) Initialize Project Documentation Structure: `init docs`, `create docs structure`, `set up documentation`, `docs scaffold`, `documentation init`
3
3
 
4
4
  ## Trigger keywords `init docs`, `create docs structure`, `set up documentation`, `docs scaffold`, `documentation init`
5
5
  -->
6
- # Skill: init-docs Initialize Project Documentation Structure
6
+ # Skill: init-docs: Initialize Project Documentation Structure
7
7
 
8
8
  ## Trigger keywords
9
9
  `init docs`, `create docs structure`, `set up documentation`, `docs scaffold`, `documentation init`
10
10
 
11
11
  ## What this skill does
12
12
 
13
- When invoked, gather the user's intent and create a tailored documentation directory structure. The structure serves as both human reference and **required operational project state** all LLMs working in this project, including Construct, should read these docs to understand purpose, decisions, constraints, and active reality before acting.
13
+ When invoked, gather the user's intent and create a tailored documentation directory structure. The structure serves as both human reference and **required operational project state**: all LLMs working in this project, including Construct, should read these docs to understand purpose, decisions, constraints, and active reality before acting.
14
14
 
15
15
  ---
16
16
 
17
- ## Step 1 Gather intent (ask these questions)
17
+ ## Step 1: Gather intent (ask these questions)
18
18
 
19
19
  Ask the user **all at once** (single message, not one at a time):
20
20
 
@@ -26,9 +26,9 @@ Ask the user **all at once** (single message, not one at a time):
26
26
 
27
27
  ---
28
28
 
29
- ## Step 2 Generate the structure
29
+ ## Step 2: Generate the structure
30
30
 
31
- Based on answers, create the `docs/` directory and appropriate subdirectories. Use this as a base add or remove sections based on the user's answers.
31
+ Based on answers, create the `docs/` directory and appropriate subdirectories. Use this as a base: add or remove sections based on the user's answers.
32
32
 
33
33
  ### Core structure (always include)
34
34
 
@@ -45,12 +45,12 @@ docs/
45
45
 
46
46
  ## Interactive UX (TTY)
47
47
 
48
- When run interactively, `construct init-docs` renders a keyboard-driven **full-screen checkbox picker** all available lanes listed with the default set pre-checked and context-suggested lanes highlighted in the UI. No typing required.
48
+ When run interactively, `construct init-docs` renders a keyboard-driven **full-screen checkbox picker**: all available lanes listed with the default set pre-checked and context-suggested lanes highlighted in the UI. No typing required.
49
49
 
50
- - **↑ / ↓** move cursor (details shown in a dedicated panel)
51
- - **Space** toggle lane on/off
52
- - **a** toggle all on/off
53
- - **Enter** confirm and scaffold
50
+ - **↑ / ↓**: move cursor (details shown in a dedicated panel)
51
+ - **Space**: toggle lane on/off
52
+ - **a**: toggle all on/off
53
+ - **Enter**: confirm and scaffold
54
54
  - Follow-up choices use the same menu pattern instead of free-text answers
55
55
 
56
56
  If the user selects the `intake` lane, `construct init-docs` should also create `.cx/inbox/`. Both `.cx/inbox/` and `docs/intake/` act as drop zones for ingestable files, while `docs/intake/` also serves as the durable paper trail lane.
@@ -90,7 +90,7 @@ When run non-interactively (`--yes` or piped stdin), the lean default set is use
90
90
 
91
91
  ---
92
92
 
93
- ## Step 3 Make the core docs explicit project state
93
+ ## Step 3: Make the core docs explicit project state
94
94
 
95
95
  The required core documents are the operational state surface for the repo. All LLMs working here should read and maintain them:
96
96
 
@@ -104,9 +104,9 @@ Fill these in based on the user's answers and the actual repo shape. Treat them
104
104
 
105
105
  ---
106
106
 
107
- ## Step 4 Create skeleton files
107
+ ## Step 4: Create skeleton files
108
108
 
109
- Each created file should have a minimal, useful skeleton not just a title. Skeletons should include:
109
+ Each created file should have a minimal, useful skeleton: not just a title. Skeletons should include:
110
110
  - A one-line description of what goes in this file
111
111
  - Section headings relevant to the doc type
112
112
  - A note at the top that the file is required project state and all LLMs should keep it current.
@@ -156,7 +156,7 @@ Link to `docs/adr/` or the canonical project decision log used in this repo.
156
156
 
157
157
  ---
158
158
 
159
- ## Step 5 Tell the repo how upkeep works
159
+ ## Step 5: Tell the repo how upkeep works
160
160
 
161
161
  After creating the files, instruct the user:
162
162
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/docs/init-project.md Project Initialization Use when: starting work on a new project or joining an existing one without doc
2
+ skills/docs/init-project.md (Project Initialization) Use when: starting work on a new project or joining an existing one without doc
3
3
 
4
4
  Use when: starting work on a new project or joining an existing one without doc structure. ## Command
5
5
  -->
@@ -1,9 +1,9 @@
1
1
  <!--
2
- skills/docs/prd-workflow.md Workflow for producing a PRD and connecting it to workflow task packets.
2
+ skills/docs/prd-workflow.md: Workflow for producing a PRD and connecting it to workflow task packets.
3
3
 
4
4
  Guides cx-product-manager through requirements gathering, user research, and writing a PRD
5
5
  to docs/prd/. Once approved, the PRD feeds /plan feature to create bead packets in
6
- .cx/workflow.json closing the loop from discovery to execution.
6
+ .cx/workflow.json: closing the loop from discovery to execution.
7
7
  -->
8
8
  # PRD Workflow
9
9
 
@@ -17,7 +17,7 @@ Choose the document type before drafting:
17
17
  | `prd-platform` | Internal platform, APIs, SDKs, developer tooling, operational infrastructure, shared services |
18
18
  | `prd-business` | Strategic bets, market positioning, business model changes, make-vs-buy, pricing strategy |
19
19
  | `meta-prd` | Requirements about the product operating system itself: agent workflows, evidence pipelines, templates, evaluation loops, governance |
20
- | `rfc` | Technical or architectural proposals that need structured review before implementation no contract changes |
20
+ | `rfc` | Technical or architectural proposals that need structured review before implementation: no contract changes |
21
21
  | `rfc-platform` | Proposals that change an external contract: API, SDK, schema, event payload, permission model, protocol |
22
22
 
23
23
  Style constraint: do not produce a wall of bullets. Use paragraphs for reasoning and narrative, tables for comparison, and bullets only where scanability helps. Keep em dashes rare.
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/docs/prfaq-workflow.md Working-backwards PRFAQ generation from PRDs or evidence.
2
+ skills/docs/prfaq-workflow.md: Working-backwards PRFAQ generation from PRDs or evidence.
3
3
  -->
4
4
  # PRFAQ Workflow
5
5
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/docs/product-intelligence-review.md Evaluate Product Intelligence artifacts before they become docs of record.
2
+ skills/docs/product-intelligence-review.md: Evaluate Product Intelligence artifacts before they become docs of record.
3
3
  -->
4
4
  # Product Intelligence Review
5
5
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/docs/product-intelligence-workflow.md Native Construct workflow for product evidence, synthesis, and product docs.
2
+ skills/docs/product-intelligence-workflow.md: Native Construct workflow for product evidence, synthesis, and product docs.
3
3
 
4
4
  Use this to move from raw product evidence to PRDs, Meta PRDs, PRFAQs, signal briefs,
5
5
  customer profiles, and backlog proposals without creating a separate sidecar system.
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/docs/product-signal-workflow.md Synthesize product signals from evidence into the right artifact.
2
+ skills/docs/product-signal-workflow.md: Synthesize product signals from evidence into the right artifact.
3
3
  Confidence rubric, contradiction resolution, artifact decision tree, and storage are all defined here.
4
4
  Follow rules/common/research.md for source-handling policy.
5
5
  -->
@@ -18,10 +18,10 @@ Use when: the user asks what customers are asking for, what themes are emerging,
18
18
  ## Contradiction Resolution
19
19
 
20
20
  When two signals conflict:
21
- 1. Name both signals explicitly do not average them away.
21
+ 1. Name both signals explicitly: do not average them away.
22
22
  2. Weight by customer tier (enterprise > growth > SMB) and recency (weight decays after 90 days).
23
23
  3. Record the contradiction in the signal brief as an open question.
24
- 4. Never let a minority signal disappear it may be the leading indicator.
24
+ 4. Never let a minority signal disappear: it may be the leading indicator.
25
25
 
26
26
  ## Artifact Decision Tree
27
27
 
@@ -43,11 +43,11 @@ After grouping evidence, check `.cx/knowledge/decisions/strategy/` for any decla
43
43
 
44
44
  ## Steps
45
45
 
46
- 1. **Gather** collect evidence briefs, customer profiles, field notes, tickets, and research from `.cx/knowledge/` and linked sources.
47
- 2. **Group** cluster by theme, ask, pain point, affected persona, product area, and counter-signal.
48
- 3. **Assign confidence** apply the rubric above; separate observation from inference.
49
- 4. **Check strategy** check `.cx/knowledge/decisions/strategy/`; flag alignment or conflict with Bets and Non-bets if documents exist.
50
- 5. **Select artifact** apply the decision tree; write the artifact; store to the path below.
46
+ 1. **Gather**: collect evidence briefs, customer profiles, field notes, tickets, and research from `.cx/knowledge/` and linked sources.
47
+ 2. **Group**: cluster by theme, ask, pain point, affected persona, product area, and counter-signal.
48
+ 3. **Assign confidence**: apply the rubric above; separate observation from inference.
49
+ 4. **Check strategy**: check `.cx/knowledge/decisions/strategy/`; flag alignment or conflict with Bets and Non-bets if documents exist.
50
+ 5. **Select artifact**: apply the decision tree; write the artifact; store to the path below.
51
51
 
52
52
  ## Storage
53
53
 
@@ -58,4 +58,4 @@ After grouping evidence, check `.cx/knowledge/decisions/strategy/` for any decla
58
58
  | PRD | `docs/prd/` |
59
59
  | PRFAQ | `docs/prfaq/` |
60
60
  | Meta PRD | `docs/meta-prd/` |
61
- | Backlog proposal | pending approval gate do not file until explicit user approval |
61
+ | Backlog proposal | pending approval gate: do not file until explicit user approval |
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/docs/research-workflow.md Research Workflow Use when: the user asks to research a topic, investigate a question, or gather e
2
+ skills/docs/research-workflow.md (Research Workflow) Use when: the user asks to research a topic, investigate a question, or gather e
3
3
 
4
4
  Use when: the user asks to research a topic, investigate a question, or gather evidence for a decision. ## Steps
5
5
  -->
@@ -11,9 +11,9 @@ Follow [rules/common/research.md](../../rules/common/research.md) as the default
11
11
 
12
12
  ## Steps
13
13
 
14
- 1. **Clarify the question** one specific, falsifiable question the research must answer.
15
- 2. **Apply recency discipline** always search from the most recent year backward. For fast-moving domains (AI tools, security, market data), treat anything older than 12 months as presumptively stale unless a newer source confirms it is still accurate.
16
- 3. **Check internal evidence first** search `.cx/research/`, `.cx/knowledge/`, `docs/prd/`, `docs/meta-prd/`, ADRs, runbooks, and ingested artifacts before going external.
14
+ 1. **Clarify the question**: one specific, falsifiable question the research must answer.
15
+ 2. **Apply recency discipline**: always search from the most recent year backward. For fast-moving domains (AI tools, security, market data), treat anything older than 12 months as presumptively stale unless a newer source confirms it is still accurate.
16
+ 3. **Check internal evidence first**: search `.cx/research/`, `.cx/knowledge/`, `docs/prd/`, `docs/meta-prd/`, ADRs, runbooks, and ingested artifacts before going external.
17
17
  4. **Choose the research path and starting point** by domain:
18
18
 
19
19
  | Domain | Authoritative starting points |
@@ -28,10 +28,10 @@ Follow [rules/common/research.md](../../rules/common/research.md) as the default
28
28
  5. **Use a source hierarchy**:
29
29
  - Primary: official docs, exact-version API references, standards, source code, peer-reviewed papers
30
30
  - Secondary: changelogs, migration guides, maintainer issue comments, release notes
31
- - Tertiary: blogs/forums/Q&A only to locate primaries never cite tertiary alone for a load-bearing claim
32
- 6. **Verify every URL** fetch each URL cited and confirm it resolves and matches the cited claim. Mark unconfirmed URLs as `[unverified]`.
33
- 7. **Structure findings** using the template from `get_template("research-brief")` resolves `.cx/templates/docs/research-brief.md` (override) then `templates/docs/research-brief.md` (shipped)
34
- 8. **Write to `.cx/research/{topic-slug}.md`** cx-docs-keeper owns this
31
+ - Tertiary: blogs/forums/Q&A only to locate primaries: never cite tertiary alone for a load-bearing claim
32
+ 6. **Verify every URL**: fetch each URL cited and confirm it resolves and matches the cited claim. Mark unconfirmed URLs as `[unverified]`.
33
+ 7. **Structure findings** using the template from `get_template("research-brief")`: resolves `.cx/templates/docs/research-brief.md` (override) then `templates/docs/research-brief.md` (shipped)
34
+ 8. **Write to `.cx/research/{topic-slug}.md`**: cx-docs-keeper owns this
35
35
  9. **Reference the research doc** in the requesting agent's output (link by path)
36
36
 
37
37
  ## Verification bar
@@ -39,13 +39,13 @@ Follow [rules/common/research.md](../../rules/common/research.md) as the default
39
39
  - Every load-bearing claim must cite a verified source path, URL, or document reference.
40
40
  - Record publication date, version, or access date for each source. If no date is available, state `[undated]` and treat confidence as `low`.
41
41
  - Fetch and confirm every URL before including it in a committed document.
42
- - Separate observation from inference label each finding's confidence as `high`, `medium`, or `low`.
42
+ - Separate observation from inference: label each finding's confidence as `high`, `medium`, or `low`.
43
43
  - Name contradictions and unresolved gaps.
44
44
  - Prefer two independent sources per load-bearing claim unless one authoritative primary source is sufficient.
45
45
  - State the strongest counter-evidence when one exists.
46
46
 
47
47
  ## File naming
48
- - Topic slug: lowercase, hyphens, no spaces e.g., `firebase-auth-v9-migration.md`
48
+ - Topic slug: lowercase, hyphens, no spaces: e.g., `firebase-auth-v9-migration.md`
49
49
  - Date prefix for time-sensitive research: `2026-04-release-comparison.md`
50
50
 
51
51
  ## When research feeds a decision
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/docs/runbook-workflow.md Runbook Workflow Use when: creating operational procedures for services, alerts, or recurring ope
2
+ skills/docs/runbook-workflow.md (Runbook Workflow) Use when: creating operational procedures for services, alerts, or recurring ope
3
3
 
4
4
  Use when: creating operational procedures for services, alerts, or recurring operations. ## Steps
5
5
  -->
@@ -10,7 +10,7 @@ Use when: creating operational procedures for services, alerts, or recurring ope
10
10
  ## Steps
11
11
 
12
12
  1. **cx-sre** or **cx-release-manager** identifies the need
13
- 2. **Write to `docs/runbooks/{service}-{operation}.md`** using the template from `get_template("runbook")` resolves `.cx/templates/docs/runbook.md` (override) then `templates/docs/runbook.md` (shipped)
13
+ 2. **Write to `docs/runbooks/{service}-{operation}.md`** using the template from `get_template("runbook")`: resolves `.cx/templates/docs/runbook.md` (override) then `templates/docs/runbook.md` (shipped)
14
14
  3. **Link from the relevant alert** or monitoring dashboard
15
15
  4. **cx-docs-keeper** adds to `.cx/context.md` if it's a critical path runbook
16
16
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/docs/strategy-workflow.md Read, update, and reason about the product strategy.
2
+ skills/docs/strategy-workflow.md: Read, update, and reason about the product strategy.
3
3
  Canonical store: ~/.cx/strategy.md (user-global) or .cx/strategy.md (project-local, committed).
4
4
  Template: templates/docs/strategy.md.
5
5
  -->
@@ -32,5 +32,5 @@ Given a product signal or PRD, check:
32
32
 
33
33
  | Scope | Path | Committed? |
34
34
  |---|---|---|
35
- | User-global | `~/.cx/strategy.md` | No local only |
36
- | Project-local | `.cx/strategy.md` | Yes source of truth for this repo |
35
+ | User-global | `~/.cx/strategy.md` | No: local only |
36
+ | Project-local | `.cx/strategy.md` | Yes: source of truth for this repo |