@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.
- package/README.md +57 -44
- package/agents/prompts/cx-accessibility.md +3 -3
- package/agents/prompts/cx-ai-engineer.md +7 -7
- package/agents/prompts/cx-architect.md +6 -6
- package/agents/prompts/cx-business-strategist.md +6 -6
- package/agents/prompts/cx-data-analyst.md +7 -7
- package/agents/prompts/cx-data-engineer.md +3 -3
- package/agents/prompts/cx-debugger.md +6 -6
- package/agents/prompts/cx-designer.md +5 -5
- package/agents/prompts/cx-devil-advocate.md +4 -4
- package/agents/prompts/cx-docs-keeper.md +5 -5
- package/agents/prompts/cx-engineer.md +5 -5
- package/agents/prompts/cx-evaluator.md +2 -2
- package/agents/prompts/cx-explorer.md +8 -8
- package/agents/prompts/cx-legal-compliance.md +2 -2
- package/agents/prompts/cx-operations.md +5 -5
- package/agents/prompts/cx-orchestrator.md +10 -10
- package/agents/prompts/cx-platform-engineer.md +5 -5
- package/agents/prompts/cx-product-manager.md +4 -4
- package/agents/prompts/cx-qa.md +8 -8
- package/agents/prompts/cx-rd-lead.md +9 -9
- package/agents/prompts/cx-release-manager.md +5 -5
- package/agents/prompts/cx-researcher.md +22 -22
- package/agents/prompts/cx-reviewer.md +7 -7
- package/agents/prompts/cx-security.md +10 -10
- package/agents/prompts/cx-sre.md +7 -7
- package/agents/prompts/cx-test-automation.md +3 -3
- package/agents/prompts/cx-trace-reviewer.md +8 -8
- package/agents/prompts/cx-ux-researcher.md +3 -3
- package/bin/construct +470 -4
- package/commands/build/feature.md +4 -4
- package/commands/build/fix.md +8 -8
- package/commands/design/access.md +3 -3
- package/commands/design/flow.md +3 -3
- package/commands/design/ui.md +4 -4
- package/commands/measure/experiment.md +5 -5
- package/commands/measure/metrics.md +3 -3
- package/commands/measure/results.md +4 -4
- package/commands/plan/api.md +3 -3
- package/commands/plan/challenge.md +3 -3
- package/commands/plan/decide.md +3 -3
- package/commands/plan/feature.md +7 -7
- package/commands/plan/requirements.md +3 -3
- package/commands/remember/context.md +5 -5
- package/commands/remember/handoff.md +3 -3
- package/commands/remember/runbook.md +3 -3
- package/commands/review/code.md +8 -8
- package/commands/review/quality.md +4 -4
- package/commands/review/security.md +3 -3
- package/commands/ship/ready.md +3 -3
- package/commands/ship/release.md +3 -3
- package/commands/ship/status.md +4 -4
- package/commands/understand/docs.md +3 -3
- package/commands/understand/research.md +5 -3
- package/commands/understand/this.md +4 -4
- package/commands/understand/why.md +8 -8
- package/commands/work/clean.md +14 -14
- package/commands/work/drive.md +10 -10
- package/commands/work/optimize-prompts.md +9 -9
- package/commands/work/parallel-review.md +8 -8
- package/db/schema/006_graph.sql +24 -0
- package/examples/provider-plugin/README.md +7 -7
- package/examples/seed-observations/README.md +6 -6
- package/examples/seed-observations/anti-patterns.md +14 -14
- package/examples/seed-observations/decisions.md +4 -4
- package/examples/seed-observations/patterns.md +14 -14
- package/lib/auto-docs.mjs +10 -5
- package/lib/cli-commands.mjs +45 -1
- package/lib/comment-lint.mjs +7 -1
- package/lib/config/schema.mjs +3 -0
- package/lib/flavors/loader.mjs +136 -0
- package/lib/hooks/agent-tracker.mjs +22 -3
- package/lib/hooks/pre-push-gate.mjs +14 -1
- package/lib/hooks/session-optimize.mjs +3 -2
- package/lib/hooks/session-reflect.mjs +68 -0
- package/lib/init-unified.mjs +25 -2
- package/lib/intake/classify.mjs +61 -183
- package/lib/intake/prepare.mjs +7 -0
- package/lib/intake/tables/creative.mjs +94 -0
- package/lib/intake/tables/operations.mjs +85 -0
- package/lib/intake/tables/research.mjs +85 -0
- package/lib/intake/tables/rnd.mjs +175 -0
- package/lib/knowledge/graph.mjs +213 -0
- package/lib/knowledge/research-store.mjs +109 -0
- package/lib/mcp/server.mjs +187 -1
- package/lib/mcp/tools/profile.mjs +270 -0
- package/lib/observation-store.mjs +19 -0
- package/lib/outcomes/aggregate.mjs +104 -0
- package/lib/outcomes/record.mjs +115 -0
- package/lib/parity.mjs +6 -9
- package/lib/profiles/lifecycle.mjs +388 -0
- package/lib/profiles/loader.mjs +123 -0
- package/lib/profiles/validate-custom.mjs +114 -0
- package/lib/reflect/extractor.mjs +193 -0
- package/lib/reflect.mjs +89 -2
- package/lib/sandbox.mjs +102 -0
- package/package.json +6 -1
- package/personas/construct.md +20 -20
- package/platforms/claude/CLAUDE.md +6 -6
- package/platforms/claude/settings.template.json +13 -0
- package/rules/common/agents.md +2 -2
- package/rules/common/beads-hygiene.md +11 -11
- package/rules/common/code-review.md +1 -1
- package/rules/common/coding-style.md +1 -1
- package/rules/common/comments.md +8 -8
- package/rules/common/commit-approval.md +4 -4
- package/rules/common/cx-agent-routing.md +2 -2
- package/rules/common/cx-skill-routing.md +2 -2
- package/rules/common/development-workflow.md +1 -1
- package/rules/common/doc-ownership.md +2 -2
- package/rules/common/efficiency.md +3 -3
- package/rules/common/framing.md +1 -1
- package/rules/common/git-workflow.md +1 -1
- package/rules/common/patterns.md +1 -1
- package/rules/common/performance.md +1 -1
- package/rules/common/release-gates.md +7 -7
- package/rules/common/research.md +4 -4
- package/rules/common/security.md +1 -1
- package/rules/common/skill-composition.md +8 -8
- package/rules/common/testing.md +1 -1
- package/rules/golang/coding-style.md +2 -2
- package/rules/golang/hooks.md +1 -1
- package/rules/golang/patterns.md +1 -1
- package/rules/golang/security.md +1 -1
- package/rules/golang/testing.md +1 -1
- package/rules/python/coding-style.md +1 -1
- package/rules/python/hooks.md +1 -1
- package/rules/python/patterns.md +1 -1
- package/rules/python/security.md +1 -1
- package/rules/python/testing.md +1 -1
- package/rules/swift/coding-style.md +3 -3
- package/rules/swift/hooks.md +2 -2
- package/rules/swift/patterns.md +2 -2
- package/rules/swift/security.md +4 -4
- package/rules/swift/testing.md +2 -2
- package/rules/typescript/coding-style.md +1 -1
- package/rules/typescript/hooks.md +1 -1
- package/rules/typescript/patterns.md +1 -1
- package/rules/typescript/security.md +1 -1
- package/rules/typescript/testing.md +1 -1
- package/rules/web/coding-style.md +1 -1
- package/rules/web/design-quality.md +1 -1
- package/rules/web/hooks.md +1 -1
- package/rules/web/patterns.md +1 -1
- package/rules/web/performance.md +1 -1
- package/rules/web/security.md +1 -1
- package/rules/web/testing.md +1 -1
- package/scripts/sync-agents.mjs +11 -0
- package/skills/ai/agent-dev.md +1 -1
- package/skills/ai/llm-security.md +1 -1
- package/skills/ai/ml-ops.md +6 -6
- package/skills/ai/orchestration-workflow.md +1 -1
- package/skills/ai/prompt-and-eval.md +1 -1
- package/skills/ai/prompt-optimizer.md +13 -13
- package/skills/ai/rag-system.md +1 -1
- package/skills/architecture/api-design.md +1 -1
- package/skills/architecture/caching.md +1 -1
- package/skills/architecture/cloud-native.md +1 -1
- package/skills/architecture/message-queue.md +1 -1
- package/skills/architecture/security-arch.md +1 -1
- package/skills/compliance/ai-disclosure.md +1 -1
- package/skills/compliance/data-privacy.md +1 -1
- package/skills/compliance/license-audit.md +2 -2
- package/skills/compliance/regulatory-review.md +1 -1
- package/skills/development/cpp.md +1 -1
- package/skills/development/go.md +1 -1
- package/skills/development/java.md +1 -1
- package/skills/development/kotlin.md +9 -9
- package/skills/development/mobile-crossplatform.md +13 -13
- package/skills/development/python.md +1 -1
- package/skills/development/rust.md +1 -1
- package/skills/development/shell.md +1 -1
- package/skills/development/swift.md +6 -6
- package/skills/development/typescript.md +1 -1
- package/skills/devops/ci-cd.md +5 -5
- package/skills/devops/containerization.md +9 -9
- package/skills/devops/cost-optimization.md +1 -1
- package/skills/devops/data-engineering.md +2 -2
- package/skills/devops/database.md +1 -1
- package/skills/devops/dependency-management.md +3 -3
- package/skills/devops/devsecops.md +1 -1
- package/skills/devops/git-workflow.md +1 -1
- package/skills/devops/incident-response.md +18 -18
- package/skills/devops/monorepo.md +5 -5
- package/skills/devops/observability.md +1 -1
- package/skills/devops/performance.md +1 -1
- package/skills/devops/testing.md +1 -1
- package/skills/docs/adr-workflow.md +2 -2
- package/skills/docs/backlog-proposal-workflow.md +1 -1
- package/skills/docs/customer-profile-workflow.md +1 -1
- package/skills/docs/document-ingest-workflow.md +1 -1
- package/skills/docs/evidence-ingest-workflow.md +1 -1
- package/skills/docs/init-docs.md +15 -15
- package/skills/docs/init-project.md +1 -1
- package/skills/docs/prd-workflow.md +3 -3
- package/skills/docs/prfaq-workflow.md +1 -1
- package/skills/docs/product-intelligence-review.md +1 -1
- package/skills/docs/product-intelligence-workflow.md +1 -1
- package/skills/docs/product-signal-workflow.md +9 -9
- package/skills/docs/research-workflow.md +10 -10
- package/skills/docs/runbook-workflow.md +2 -2
- package/skills/docs/strategy-workflow.md +3 -3
- package/skills/exploration/repo-map.md +11 -11
- package/skills/frameworks/django.md +15 -15
- package/skills/frameworks/nextjs.md +16 -16
- package/skills/frameworks/react.md +12 -12
- package/skills/frameworks/spring-boot.md +12 -12
- package/skills/frontend-design/accessibility.md +6 -6
- package/skills/frontend-design/component-patterns.md +1 -1
- package/skills/frontend-design/engineering.md +1 -1
- package/skills/frontend-design/state-management.md +1 -1
- package/skills/frontend-design/ui-aesthetics.md +1 -1
- package/skills/frontend-design/ux-principles.md +1 -1
- package/skills/operating/orchestration-reference.md +27 -27
- package/skills/quality-gates/review-work.md +3 -3
- package/skills/quality-gates/verify-change.md +1 -1
- package/skills/quality-gates/verify-module.md +1 -1
- package/skills/quality-gates/verify-quality.md +1 -1
- package/skills/quality-gates/verify-security.md +1 -1
- package/skills/roles/architect.ai-systems.md +4 -2
- package/skills/roles/architect.data.md +4 -2
- package/skills/roles/architect.enterprise.md +4 -2
- package/skills/roles/architect.integration.md +4 -2
- package/skills/roles/architect.md +7 -5
- package/skills/roles/architect.platform.md +4 -2
- package/skills/roles/data-analyst.experiment.md +4 -2
- package/skills/roles/data-analyst.md +9 -7
- package/skills/roles/data-analyst.product-intelligence.md +4 -2
- package/skills/roles/data-analyst.product.md +4 -2
- package/skills/roles/data-analyst.telemetry.md +4 -2
- package/skills/roles/data-engineer.pipeline.md +4 -2
- package/skills/roles/data-engineer.vector-retrieval.md +4 -2
- package/skills/roles/data-engineer.warehouse.md +4 -2
- package/skills/roles/debugger.md +7 -5
- package/skills/roles/designer.accessibility.md +4 -2
- package/skills/roles/designer.md +10 -8
- package/skills/roles/engineer.ai.md +4 -2
- package/skills/roles/engineer.data.md +5 -3
- package/skills/roles/engineer.md +14 -12
- package/skills/roles/engineer.platform.md +5 -3
- package/skills/roles/operator.docs.md +6 -4
- package/skills/roles/operator.md +6 -4
- package/skills/roles/operator.release.md +4 -2
- package/skills/roles/operator.sre.md +5 -3
- package/skills/roles/orchestrator.md +5 -3
- package/skills/roles/product-manager.ai-product.md +4 -2
- package/skills/roles/product-manager.business-strategy.md +4 -2
- package/skills/roles/product-manager.enterprise.md +4 -2
- package/skills/roles/product-manager.growth.md +4 -2
- package/skills/roles/product-manager.md +6 -4
- package/skills/roles/product-manager.platform.md +4 -2
- package/skills/roles/product-manager.product.md +4 -2
- package/skills/roles/qa.ai-eval.md +4 -2
- package/skills/roles/qa.api-contract.md +4 -2
- package/skills/roles/qa.data-pipeline.md +4 -2
- package/skills/roles/qa.md +7 -5
- package/skills/roles/qa.test-automation.md +5 -3
- package/skills/roles/qa.web-ui.md +4 -2
- package/skills/roles/researcher.explorer.md +4 -2
- package/skills/roles/researcher.md +11 -9
- package/skills/roles/researcher.ux.md +4 -2
- package/skills/roles/reviewer.devil-advocate.md +4 -2
- package/skills/roles/reviewer.evaluator.md +4 -2
- package/skills/roles/reviewer.md +14 -12
- package/skills/roles/reviewer.trace.md +4 -2
- package/skills/roles/security.ai.md +4 -2
- package/skills/roles/security.appsec.md +4 -2
- package/skills/roles/security.cloud.md +4 -2
- package/skills/roles/security.legal-compliance.md +4 -2
- package/skills/roles/security.md +7 -5
- package/skills/roles/security.privacy.md +4 -2
- package/skills/roles/security.supply-chain.md +4 -2
- package/skills/routing.md +14 -14
- package/skills/security/blue-team.md +1 -1
- package/skills/security/code-audit.md +1 -1
- package/skills/security/pentest.md +1 -1
- package/skills/security/red-team.md +1 -1
- package/skills/security/threat-intel.md +1 -1
- package/skills/security/vuln-research.md +1 -1
- package/skills/utility/clean-code.md +2 -2
- package/templates/docs/changelog-entry.md +1 -1
- package/templates/docs/construct_guide.md +13 -13
- package/templates/docs/meta-prd.md +16 -16
- package/templates/docs/one-pager.md +1 -1
- package/templates/docs/persona-artifact.md +36 -0
- package/templates/docs/prd-business.md +1 -1
- package/templates/docs/prd-platform.md +1 -1
- package/templates/docs/prd.md +17 -17
- package/templates/docs/research-brief.md +8 -8
- package/templates/docs/research-finding.md +26 -0
- package/templates/docs/rfc.md +1 -1
- package/templates/docs/skill-artifact.md +27 -0
- package/templates/docs/strategy.md +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
skills/devops/containerization.md
|
|
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
|
|
30
|
-
- `node:20-alpine
|
|
31
|
-
- `scratch
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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)
|
|
40
|
-
3. Assign **Scribe
|
|
41
|
-
4. Assign **Comms Lead
|
|
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
|
|
56
|
+
### Mitigate (not root cause: stop the bleeding first)
|
|
57
57
|
|
|
58
58
|
Mitigation options in priority order:
|
|
59
|
-
1. **Rollback
|
|
60
|
-
2. **Feature flag off
|
|
61
|
-
3. **Traffic shift
|
|
62
|
-
4. **Scale up
|
|
63
|
-
5. **Restart**
|
|
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
|
|
111
|
-
2. **Timeline
|
|
112
|
-
3. **Root cause(s)
|
|
113
|
-
4. **Contributing factors
|
|
114
|
-
5. **What went well
|
|
115
|
-
6. **Action items
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-->
|
package/skills/devops/testing.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
skills/devops/testing.md
|
|
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
|
|
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")
|
|
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
|
package/skills/docs/init-docs.md
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
skills/docs/init-docs.md
|
|
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
|
|
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
|
|
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
|
|
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
|
|
29
|
+
## Step 2: Generate the structure
|
|
30
30
|
|
|
31
|
-
Based on answers, create the `docs/` directory and appropriate subdirectories. Use this as a base
|
|
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
|
|
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
|
-
- **↑ /
|
|
51
|
-
- **Space
|
|
52
|
-
- **a
|
|
53
|
-
- **Enter
|
|
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
|
|
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
|
|
107
|
+
## Step 4: Create skeleton files
|
|
108
108
|
|
|
109
|
-
Each created file should have a minimal, useful skeleton
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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/product-intelligence-review.md
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
47
|
-
2. **Group
|
|
48
|
-
3. **Assign confidence
|
|
49
|
-
4. **Check strategy
|
|
50
|
-
5. **Select artifact
|
|
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
|
|
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
|
|
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
|
|
15
|
-
2. **Apply recency discipline
|
|
16
|
-
3. **Check internal evidence first
|
|
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
|
|
32
|
-
6. **Verify every URL
|
|
33
|
-
7. **Structure findings** using the template from `get_template("research-brief")
|
|
34
|
-
8. **Write to `.cx/research/{topic-slug}.md
|
|
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
|
|
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
|
|
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
|
|
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")
|
|
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
|
|
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
|
|
36
|
-
| Project-local | `.cx/strategy.md` | Yes
|
|
35
|
+
| User-global | `~/.cx/strategy.md` | No: local only |
|
|
36
|
+
| Project-local | `.cx/strategy.md` | Yes: source of truth for this repo |
|