@geraldmaron/construct 1.0.5 → 1.0.7
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 +24 -18
- package/agents/contracts.json +617 -2
- package/agents/contracts.schema.json +83 -0
- package/agents/prompts/cx-accessibility.md +5 -3
- package/agents/prompts/cx-ai-engineer.md +9 -7
- package/agents/prompts/cx-architect.md +8 -6
- package/agents/prompts/cx-business-strategist.md +8 -6
- package/agents/prompts/cx-data-analyst.md +9 -7
- package/agents/prompts/cx-data-engineer.md +5 -3
- package/agents/prompts/cx-debugger.md +8 -6
- package/agents/prompts/cx-designer.md +7 -5
- package/agents/prompts/cx-devil-advocate.md +6 -4
- package/agents/prompts/cx-docs-keeper.md +7 -5
- package/agents/prompts/cx-engineer.md +7 -5
- package/agents/prompts/cx-evaluator.md +4 -2
- package/agents/prompts/cx-explorer.md +10 -8
- package/agents/prompts/cx-legal-compliance.md +4 -2
- package/agents/prompts/cx-operations.md +7 -5
- package/agents/prompts/cx-orchestrator.md +12 -10
- package/agents/prompts/cx-platform-engineer.md +7 -5
- package/agents/prompts/cx-product-manager.md +6 -4
- package/agents/prompts/cx-qa.md +10 -8
- package/agents/prompts/cx-rd-lead.md +11 -9
- package/agents/prompts/cx-release-manager.md +7 -5
- package/agents/prompts/cx-researcher.md +24 -22
- package/agents/prompts/cx-reviewer.md +9 -7
- package/agents/prompts/cx-security.md +12 -10
- package/agents/prompts/cx-sre.md +9 -7
- package/agents/prompts/cx-test-automation.md +5 -3
- package/agents/prompts/cx-trace-reviewer.md +10 -8
- package/agents/prompts/cx-ux-researcher.md +5 -3
- package/agents/registry.json +8 -3
- package/bin/construct +444 -53
- 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/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 +13 -8
- package/lib/boundary.mjs +126 -0
- package/lib/cache-strategy-google.js +26 -31
- package/lib/cli-commands.mjs +2 -2
- package/lib/comment-lint.mjs +134 -0
- package/lib/contracts/validate.mjs +323 -0
- package/lib/daemons/contract.mjs +210 -0
- package/lib/docs-verify.mjs +59 -6
- package/lib/doctor/cli.mjs +16 -1
- package/lib/doctor/index.mjs +3 -1
- package/lib/doctor/watchers/consistency.mjs +310 -0
- package/lib/doctor/watchers/mcp-protocol.mjs +232 -0
- package/lib/document-extract.mjs +211 -1
- package/lib/embed/cli.mjs +124 -3
- package/lib/embed/daemon.mjs +43 -4
- package/lib/embed/docs-lifecycle.mjs +1 -1
- package/lib/embed/inbox.mjs +2 -0
- package/lib/embed/scheduler.mjs +33 -5
- package/lib/evaluator-optimizer.mjs +2 -3
- package/lib/flavors/loader.mjs +1 -1
- package/lib/hooks/comment-lint.mjs +16 -0
- package/lib/hooks/mcp-audit.mjs +2 -1
- package/lib/hooks/proactive-activation.mjs +0 -14
- package/lib/hooks/rule-verifier.mjs +217 -0
- package/lib/hooks/session-optimize.mjs +2 -1
- package/lib/init-unified.mjs +55 -65
- package/lib/intake/classify.mjs +108 -24
- package/lib/intake/daemon.mjs +121 -0
- package/lib/intake/filesystem-queue.mjs +6 -1
- package/lib/intake/intake-config.mjs +2 -1
- package/lib/intake/prepare.mjs +0 -1
- package/lib/intake/session-prelude.mjs +7 -1
- package/lib/intake/traceability.mjs +90 -0
- package/lib/knowledge/graph.mjs +213 -0
- package/lib/knowledge/research-store.mjs +2 -0
- package/lib/maintenance/cleanup.mjs +315 -0
- package/lib/mcp/memory-bridge.mjs +276 -0
- package/lib/mcp/server.mjs +189 -1
- package/lib/mcp/tools/profile.mjs +270 -0
- package/lib/mcp/tools/workflow.mjs +25 -0
- package/lib/mcp-catalog.json +12 -8
- package/lib/mcp-platform-config.mjs +16 -8
- package/lib/migrations/index.mjs +106 -0
- package/lib/migrations/v1-baseline.mjs +33 -0
- package/lib/observation-store.mjs +9 -4
- package/lib/outcomes/record.mjs +2 -0
- package/lib/profiles/rebrand.mjs +46 -0
- package/lib/project-init-shared.mjs +12 -0
- package/lib/provider-capabilities.js +20 -7
- package/lib/providers/auth-manager.mjs +58 -17
- package/lib/reflect.mjs +49 -12
- package/lib/server/index.mjs +22 -28
- package/lib/session-store.mjs +6 -4
- package/lib/setup.mjs +14 -3
- package/lib/telemetry/client.mjs +5 -1
- package/lib/version.mjs +51 -0
- package/lib/worker/trace.mjs +5 -1
- package/package.json +4 -1
- package/personas/construct.md +3 -1
- package/platforms/claude/CLAUDE.md +6 -6
- 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 +3 -2
- 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/no-fabrication.md +69 -0
- 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/review-before-change.md +58 -0
- 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 +45 -14
- 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/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 +18 -18
- package/templates/docs/meta-prd.md +16 -16
- package/templates/docs/one-pager.md +1 -1
- 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/rfc.md +1 -1
- package/templates/docs/skill-artifact.md +1 -1
- package/templates/docs/strategy.md +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
skills/quality-gates/verify-quality.md
|
|
2
|
+
skills/quality-gates/verify-quality.md (Verify Quality) Use this skill to check code quality, complexity, and maintainability after chan
|
|
3
3
|
|
|
4
4
|
Use this skill to check code quality, complexity, and maintainability after changes. ## Complexity
|
|
5
5
|
-->
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
skills/quality-gates/verify-security.md
|
|
2
|
+
skills/quality-gates/verify-security.md (Verify Security) Use this skill to scan code for security vulnerabilities before commits or relea
|
|
3
3
|
|
|
4
4
|
Use this skill to scan code for security vulnerabilities before commits or releases. ## Scan Scope
|
|
5
5
|
-->
|
package/skills/routing.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
skills/routing.md
|
|
2
|
+
skills/routing.md (Construct AI Agent) Skill Routing: Read the matching skill file before responding when the user's request matches t
|
|
3
3
|
|
|
4
4
|
Read the matching skill file before responding when the user's request matches trigger keywords below. ## Exploration Domain
|
|
5
5
|
-->
|
|
6
|
-
# Construct AI Agent
|
|
6
|
+
# Construct AI Agent: Skill Routing
|
|
7
7
|
|
|
8
8
|
Read the matching skill file before responding when the user's request matches trigger keywords below.
|
|
9
9
|
|
|
@@ -11,7 +11,7 @@ Read the matching skill file before responding when the user's request matches t
|
|
|
11
11
|
|
|
12
12
|
| Trigger Keywords | Skill File | Description |
|
|
13
13
|
|---|---|---|
|
|
14
|
-
| explore repo, map codebase, understand codebase, unfamiliar codebase, slog through, get oriented, codebase map, how is this structured, how does this work, where is X, entry point, hot path, code map | `skills/exploration/repo-map.md` | Systematic repo exploration
|
|
14
|
+
| explore repo, map codebase, understand codebase, unfamiliar codebase, slog through, get oriented, codebase map, how is this structured, how does this work, where is X, entry point, hot path, code map | `skills/exploration/repo-map.md` | Systematic repo exploration: produce .cx/codebase-map.md |
|
|
15
15
|
|
|
16
16
|
## Quality Gates
|
|
17
17
|
|
|
@@ -120,15 +120,15 @@ Read the matching skill file before responding when the user's request matches t
|
|
|
120
120
|
| Trigger Keywords | Skill File | Description |
|
|
121
121
|
|---|---|---|
|
|
122
122
|
| init docs, create docs structure, set up documentation, docs scaffold, documentation init | `skills/docs/init-docs.md` | Initialize required project-state docs and documentation structure |
|
|
123
|
-
| research X, investigate X, find evidence, gather evidence | `skills/docs/research-workflow.md` | Research workflow
|
|
124
|
-
| product intelligence, customer notes, field notes, product signals, customer profile, evidence brief, signal brief, backlog proposal | `skills/docs/product-intelligence-workflow.md` | Product Intelligence workflow
|
|
125
|
-
| strategy, product strategy, strategic bet, non-bet, north star, time horizon, competitive positioning | `skills/docs/strategy-workflow.md` | Product strategy
|
|
126
|
-
| ingest evidence, ingest customer notes, ingest Slack thread, ingest support ticket, normalize field notes | `skills/docs/evidence-ingest-workflow.md` | Evidence ingest workflow
|
|
127
|
-
| write a PRD, create requirements, spec out, requirements document, Meta PRD, platform PRD | `skills/docs/prd-workflow.md` | PRD workflow
|
|
128
|
-
| write a PRFAQ, working backwards doc, press release FAQ | `skills/docs/prfaq-workflow.md` | PRFAQ workflow
|
|
129
|
-
| create Jira proposal, update Linear, backlog proposal, issue proposal | `skills/docs/backlog-proposal-workflow.md` | Backlog proposal workflow
|
|
130
|
-
| record this decision, create an ADR, architecture decision | `skills/docs/adr-workflow.md` | ADR workflow
|
|
131
|
-
| write a runbook, document this operation, operational procedure | `skills/docs/runbook-workflow.md` | Runbook workflow
|
|
123
|
+
| research X, investigate X, find evidence, gather evidence | `skills/docs/research-workflow.md` | Research workflow: question to .cx/research/ file |
|
|
124
|
+
| product intelligence, customer notes, field notes, product signals, customer profile, evidence brief, signal brief, backlog proposal | `skills/docs/product-intelligence-workflow.md` | Product Intelligence workflow: evidence to product artifacts |
|
|
125
|
+
| strategy, product strategy, strategic bet, non-bet, north star, time horizon, competitive positioning | `skills/docs/strategy-workflow.md` | Product strategy: read, update, and reason about the strategy store |
|
|
126
|
+
| ingest evidence, ingest customer notes, ingest Slack thread, ingest support ticket, normalize field notes | `skills/docs/evidence-ingest-workflow.md` | Evidence ingest workflow: raw source to .cx/knowledge/ |
|
|
127
|
+
| write a PRD, create requirements, spec out, requirements document, Meta PRD, platform PRD | `skills/docs/prd-workflow.md` | PRD workflow: requirements to docs/prd/ or docs/meta-prd/ |
|
|
128
|
+
| write a PRFAQ, working backwards doc, press release FAQ | `skills/docs/prfaq-workflow.md` | PRFAQ workflow: launch narrative from PRD or evidence |
|
|
129
|
+
| create Jira proposal, update Linear, backlog proposal, issue proposal | `skills/docs/backlog-proposal-workflow.md` | Backlog proposal workflow: approval-gated issue tracker changes |
|
|
130
|
+
| record this decision, create an ADR, architecture decision | `skills/docs/adr-workflow.md` | ADR workflow: decision to docs/adr/ file |
|
|
131
|
+
| write a runbook, document this operation, operational procedure | `skills/docs/runbook-workflow.md` | Runbook workflow: operation to docs/runbooks/ file |
|
|
132
132
|
| init project, new project setup, join project, set up doc structure | `skills/docs/init-project.md` | Project initialization via construct init-docs |
|
|
133
133
|
|
|
134
134
|
## Routing Rules
|
|
@@ -141,6 +141,6 @@ Read the matching skill file before responding when the user's request matches t
|
|
|
141
141
|
|
|
142
142
|
## Agent Roster Disambiguation
|
|
143
143
|
|
|
144
|
-
**cx-engineer vs cx-platform-engineer:** cx-engineer builds product features for end users. cx-platform-engineer builds the internal platform
|
|
144
|
+
**cx-engineer vs cx-platform-engineer:** cx-engineer builds product features for end users. cx-platform-engineer builds the internal platform: CI/CD, deployment tooling, developer environments, internal APIs, and reliability infrastructure. They operate in distinct domains with different quality bars (user-facing UX vs. developer ergonomics and system reliability). Use cx-platform-engineer when the subject is a platform service, internal tool, build pipeline, or infrastructure component that engineers consume, not end users.
|
|
145
145
|
|
|
146
|
-
**Platform domain overlays** (`roles/product-manager.platform`, `roles/architect.platform`, `roles/engineer.platform`) apply when the PRODUCT being designed or built is a platform
|
|
146
|
+
**Platform domain overlays** (`roles/product-manager.platform`, `roles/architect.platform`, `roles/engineer.platform`) apply when the PRODUCT being designed or built is a platform: an API, SDK, or developer surface consumed by other developers. These are skill overlays on PM/architect/engineer roles, not routing to cx-platform-engineer. Route to cx-platform-engineer only when the work is infra/ops, not product.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
skills/security/blue-team.md
|
|
2
|
+
skills/security/blue-team.md (Blue Team) Use this skill when defending systems, responding to incidents, or building dete
|
|
3
3
|
|
|
4
4
|
Use this skill when defending systems, responding to incidents, or building detection and monitoring capabilities. ## Detection Engineering
|
|
5
5
|
-->
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
skills/security/code-audit.md
|
|
2
|
+
skills/security/code-audit.md (Code Audit) Use this skill when reviewing source code for security vulnerabilities through s
|
|
3
3
|
|
|
4
4
|
Use this skill when reviewing source code for security vulnerabilities through static analysis. ## Taint Analysis
|
|
5
5
|
-->
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
skills/security/pentest.md
|
|
2
|
+
skills/security/pentest.md (Penetration Testing) Use this skill when testing web applications or APIs for security vulnerabilitie
|
|
3
3
|
|
|
4
4
|
Use this skill when testing web applications or APIs for security vulnerabilities. ## OWASP Top 10 Checklist
|
|
5
5
|
-->
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
skills/security/red-team.md
|
|
2
|
+
skills/security/red-team.md (Red Team) Use this skill when planning or executing offensive security assessments, advers
|
|
3
3
|
|
|
4
4
|
Use this skill when planning or executing offensive security assessments, adversary emulation, or attack simulations. ## Reconnaissance
|
|
5
5
|
-->
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
skills/security/threat-intel.md
|
|
2
|
+
skills/security/threat-intel.md (Threat Intelligence) Use this skill when performing OSINT, threat modeling, or building threat intell
|
|
3
3
|
|
|
4
4
|
Use this skill when performing OSINT, threat modeling, or building threat intelligence programs. ## OSINT Collection
|
|
5
5
|
-->
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
skills/security/vuln-research.md
|
|
2
|
+
skills/security/vuln-research.md (Vulnerability Research) Use this skill when analyzing binaries, fuzzing software, or developing exploits
|
|
3
3
|
|
|
4
4
|
Use this skill when analyzing binaries, fuzzing software, or developing exploits for security research. ## Binary Analysis
|
|
5
5
|
-->
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
skills/utility/clean-code.md
|
|
2
|
+
skills/utility/clean-code.md (AI Slop Removal) Patterns and heuristics for identifying and removing AI-generated code smells. U
|
|
3
3
|
|
|
4
4
|
Patterns and heuristics for identifying and removing AI-generated code smells. Use when cleaning up output from AI coding tools. ## Decision Tree
|
|
5
5
|
-->
|
|
@@ -160,6 +160,6 @@ async function getUserById(id: string): Promise<User> { ... }
|
|
|
160
160
|
## Rules
|
|
161
161
|
|
|
162
162
|
- Remove smell, nothing else. Do not refactor, reorganize, or add new abstractions.
|
|
163
|
-
- Keep diffs minimal
|
|
163
|
+
- Keep diffs minimal: one smell per change where possible.
|
|
164
164
|
- Never change behavior. If a removal would change behavior, flag it instead.
|
|
165
165
|
- Show before/after for every change.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Welcome to Construct
|
|
2
2
|
|
|
3
|
-
This file was generated by `construct init` to help you get oriented. It's safe to edit
|
|
3
|
+
This file was generated by `construct init` to help you get oriented. It's safe to edit: Construct only writes it once, then leaves it alone.
|
|
4
4
|
|
|
5
|
-
**Full docs:** [https://geraldmaron.github.io/construct/
|
|
5
|
+
**Full docs:** [https://geraldmaron.github.io/construct/](https://geraldmaron.github.io/construct/)
|
|
6
6
|
|
|
7
7
|
## What Construct is doing in your project
|
|
8
8
|
|
|
@@ -12,7 +12,7 @@ You added Construct as a dev dependency. That gave you:
|
|
|
12
12
|
- **Hard gates.** Every code change runs through commit-time policy: no secrets, tests green, docs current, comments lint-clean. Bypass exists for every gate but leaves an audit trail.
|
|
13
13
|
- **Persistent state.** Your active work, decisions, and history survive across sessions and editor restarts.
|
|
14
14
|
|
|
15
|
-
You don't need to manage any of that
|
|
15
|
+
You don't need to manage any of that: it all runs locally.
|
|
16
16
|
|
|
17
17
|
## Files Construct created in your project
|
|
18
18
|
|
|
@@ -26,18 +26,18 @@ You'll see these in `git status`:
|
|
|
26
26
|
| `.claude/settings.json` | Hooks + MCP server config. Construct keys are managed; your additions are preserved. | Carefully |
|
|
27
27
|
| `.cx/` | Per-project session state (active work, recent decisions). Construct writes here. | Read-mostly |
|
|
28
28
|
| `.beads/` | Issue tracker data. Use `bd <cmd>` to interact. | Via CLI |
|
|
29
|
-
| `AGENTS.md` | Operating rules the agent reads at session start. | Yes
|
|
30
|
-
| `plan.md` | Active work plan. Local-only (gitignored). | Yes
|
|
31
|
-
| `docs/` | Documentation lanes (ADRs, PRDs, memos, …). | Yes
|
|
32
|
-
| `construct_guide.md` | This file. Friendly orientation. | Yes
|
|
29
|
+
| `AGENTS.md` | Operating rules the agent reads at session start. | Yes: your house rules go here |
|
|
30
|
+
| `plan.md` | Active work plan. Local-only (gitignored). | Yes: your current focus |
|
|
31
|
+
| `docs/` | Documentation lanes (ADRs, PRDs, memos, …). | Yes: this is your team's docs |
|
|
32
|
+
| `construct_guide.md` | This file. Friendly orientation. | Yes: adapt to your team |
|
|
33
33
|
|
|
34
34
|
## Where to drop information you want Construct to use
|
|
35
35
|
|
|
36
36
|
Three intake paths, ordered by formality:
|
|
37
37
|
|
|
38
|
-
1. **`.cx/inbox/`**
|
|
39
|
-
2. **`docs/intake
|
|
40
|
-
3. **`AGENTS.md
|
|
38
|
+
1. **`.cx/inbox/`** (drop a file here (URL, screenshot, paste, anything). The embed daemon watches the directory; when a file lands, it ingests it into the local knowledge base within a second or two and writes a triage packet to `.cx/intake/pending/` describing the new content, its R&D classification (intake type, stage, owner persona, recommended chain), its suggested docs lane, and existing docs that overlap. The agent surfaces pending intake at the next session start and you can ask it to process them) propose updates to existing PRDs/RFCs/ADRs or scaffold new ones: based on the prepared context.
|
|
39
|
+
2. **`docs/intake/`**: for proper intake batches (research notes, evidence from a meeting, raw source material). Has a template. Survives in git history.
|
|
40
|
+
3. **`AGENTS.md`**: for rules and conventions you want the agent to follow every time. "We prefer functional components. Don't introduce new dependencies without flagging." Read at session start.
|
|
41
41
|
|
|
42
42
|
For URLs or quick notes, the easiest path is to drop a file into `~/Downloads` and run:
|
|
43
43
|
|
|
@@ -82,7 +82,7 @@ construct doctor # verify everything's healthy
|
|
|
82
82
|
|
|
83
83
|
If you ran `construct init` and have Docker, you have three things running locally on Construct's reserved port block (`54329-54339`, chosen to avoid colliding with Next.js, Postgres, Redis, etc.):
|
|
84
84
|
|
|
85
|
-
**Telemetry backend** (LLM observability
|
|
85
|
+
**Telemetry backend** (LLM observability: see your traces, costs, and quality scores)
|
|
86
86
|
|
|
87
87
|
- URL: <http://localhost:54330>
|
|
88
88
|
|
|
@@ -97,7 +97,7 @@ If you ran `construct init` and have Docker, you have three things running local
|
|
|
97
97
|
- Model auto-downloaded to `~/.construct/cache/embeddings/` on first use (~22 MB, one time)
|
|
98
98
|
- Run `construct search "your query"` to see it work
|
|
99
99
|
|
|
100
|
-
If you skipped Docker, Construct falls back to a local JSON vector index at `~/.construct/vector/index.json` and stops emitting traces
|
|
100
|
+
If you skipped Docker, Construct falls back to a local JSON vector index at `~/.construct/vector/index.json` and stops emitting traces: semantic search still works, just slower at scale, and the telemetry backend isn't available.
|
|
101
101
|
|
|
102
102
|
All ports bind to `127.0.0.1` only; nothing is reachable from other machines on your network.
|
|
103
103
|
|
|
@@ -115,9 +115,9 @@ All ports bind to `127.0.0.1` only; nothing is reachable from other machines on
|
|
|
115
115
|
| `construct graph from-intake <id>` | Generate a task graph from a triaged intake packet |
|
|
116
116
|
| `construct drop` | Ingest the most recent downloaded file |
|
|
117
117
|
| `construct search "..."` | Hybrid file + SQL + semantic search over project state |
|
|
118
|
-
| `construct uninstall` | Interactive teardown
|
|
118
|
+
| `construct uninstall` | Interactive teardown: never touches Docker or your code |
|
|
119
119
|
|
|
120
|
-
Full reference: <https://geraldmaron.github.io/construct/
|
|
120
|
+
Full reference: <https://geraldmaron.github.io/construct/docs/reference/cli>
|
|
121
121
|
|
|
122
122
|
## Updating Construct
|
|
123
123
|
|
|
@@ -134,13 +134,13 @@ construct doctor # most issues surface here with a fix hint
|
|
|
134
134
|
construct down && construct up # restart local services
|
|
135
135
|
```
|
|
136
136
|
|
|
137
|
-
Troubleshooting guide: <https://geraldmaron.github.io/construct/
|
|
137
|
+
Troubleshooting guide: <https://geraldmaron.github.io/construct/docs/operations/troubleshooting>
|
|
138
138
|
|
|
139
139
|
## Next steps
|
|
140
140
|
|
|
141
|
-
- [Connect your editor](https://geraldmaron.github.io/construct/
|
|
142
|
-
- [Run your first task](https://geraldmaron.github.io/construct/
|
|
143
|
-
- Skim [the architecture](https://geraldmaron.github.io/construct/
|
|
141
|
+
- [Connect your editor](https://geraldmaron.github.io/construct/docs/start/connect-your-editor) if you haven't already.
|
|
142
|
+
- [Run your first task](https://geraldmaron.github.io/construct/docs/start/first-task) to feel the flow.
|
|
143
|
+
- Skim [the architecture](https://geraldmaron.github.io/construct/docs/concepts/architecture) when you have 10 minutes: it'll save you hours later.
|
|
144
144
|
|
|
145
145
|
If you'd rather have a teammate walk you through it, the persona itself can:
|
|
146
146
|
|
|
@@ -27,8 +27,8 @@ the org decides, documents, or evaluates work once this ships.
|
|
|
27
27
|
<!--
|
|
28
28
|
The current state of the operating system: which workflow, template, eval
|
|
29
29
|
loop, or governance process is in play today, and what's actually happening
|
|
30
|
-
when teams or agents use it. Cite real examples
|
|
31
|
-
trace evidence, support tickets
|
|
30
|
+
when teams or agents use it. Cite real examples: recent PRDs, prior decisions,
|
|
31
|
+
trace evidence, support tickets: not hypotheticals.
|
|
32
32
|
-->
|
|
33
33
|
|
|
34
34
|
## Problem
|
|
@@ -40,7 +40,7 @@ Examples of the right shape:
|
|
|
40
40
|
- "PRDs ship without rejected alternatives, so reviewers re-litigate decisions
|
|
41
41
|
three weeks in. Happens on ~40% of PRDs in the last quarter."
|
|
42
42
|
- "Postmortems are written by the on-call who shipped the bug, so the action
|
|
43
|
-
items reflect their proposals
|
|
43
|
+
items reflect their proposals: not independent review."
|
|
44
44
|
-->
|
|
45
45
|
|
|
46
46
|
## Goals
|
|
@@ -63,7 +63,7 @@ the doc enters review."
|
|
|
63
63
|
| | Description |
|
|
64
64
|
|---|---|
|
|
65
65
|
| **In scope** | <which templates, workflows, agents, gates, or evals are touched> |
|
|
66
|
-
| **Out of scope** | <related operating systems explicitly deferred
|
|
66
|
+
| **Out of scope** | <related operating systems explicitly deferred: name the reason> |
|
|
67
67
|
| **Adjacent (deferred)** | <natural follow-up changes not in this Meta PRD> |
|
|
68
68
|
|
|
69
69
|
## Principles
|
|
@@ -74,7 +74,7 @@ principle should be testable enough to guide tradeoffs when phases conflict.
|
|
|
74
74
|
|
|
75
75
|
## Inputs and evidence
|
|
76
76
|
<!--
|
|
77
|
-
What evidence the system consumes
|
|
77
|
+
What evidence the system consumes: customer notes, interviews, traces, Jira
|
|
78
78
|
issues, PRDs, research, analytics, support tickets, prior decisions. State
|
|
79
79
|
minimum evidence thresholds where useful (e.g. "two independent customer
|
|
80
80
|
interviews before a PRD enters review").
|
|
@@ -98,53 +98,53 @@ constraints, anti-patterns, rubric dimensions, pass/fail checks.
|
|
|
98
98
|
Status values: not started | in progress | shipped | deferred.
|
|
99
99
|
-->
|
|
100
100
|
|
|
101
|
-
### Phase 1
|
|
101
|
+
### Phase 1: <name>
|
|
102
102
|
|
|
103
103
|
- **Goal**: <what this phase delivers>
|
|
104
104
|
- **Status**: not started
|
|
105
105
|
|
|
106
106
|
**Workflow**
|
|
107
107
|
|
|
108
|
-
- **MR-1.1
|
|
108
|
+
- **MR-1.1**: <imperative statement of how the workflow must behave>
|
|
109
109
|
- *Acceptance*: <how a reviewer or trace verifies this without asking the author>
|
|
110
|
-
- **MR-1.2
|
|
110
|
+
- **MR-1.2**: <...>
|
|
111
111
|
- *Acceptance*: <...>
|
|
112
112
|
|
|
113
113
|
**Document + evaluation**
|
|
114
114
|
|
|
115
|
-
- **DR-1.1
|
|
115
|
+
- **DR-1.1**: <required section, evidence rule, citation rule, formatting constraint, or anti-pattern>
|
|
116
116
|
- *Acceptance*: <rubric dimension, pass/fail check, or trace signal that proves it>
|
|
117
117
|
|
|
118
|
-
### Phase 2
|
|
118
|
+
### Phase 2: <name>
|
|
119
119
|
|
|
120
120
|
- **Goal**: <what this phase delivers>
|
|
121
121
|
- **Status**: not started
|
|
122
122
|
|
|
123
123
|
**Workflow**
|
|
124
124
|
|
|
125
|
-
- **MR-2.1
|
|
125
|
+
- **MR-2.1**: <...>
|
|
126
126
|
- *Acceptance*: <...>
|
|
127
|
-
- **MR-2.2
|
|
127
|
+
- **MR-2.2**: <...>
|
|
128
128
|
- *Acceptance*: <...>
|
|
129
129
|
|
|
130
130
|
**Document + evaluation**
|
|
131
131
|
|
|
132
|
-
- **DR-2.1
|
|
132
|
+
- **DR-2.1**: <...>
|
|
133
133
|
- *Acceptance*: <...>
|
|
134
134
|
|
|
135
|
-
### Phase 3
|
|
135
|
+
### Phase 3: <name>
|
|
136
136
|
|
|
137
137
|
- **Goal**: <what this phase delivers>
|
|
138
138
|
- **Status**: not started
|
|
139
139
|
|
|
140
140
|
**Workflow**
|
|
141
141
|
|
|
142
|
-
- **MR-3.1
|
|
142
|
+
- **MR-3.1**: <...>
|
|
143
143
|
- *Acceptance*: <...>
|
|
144
144
|
|
|
145
145
|
**Document + evaluation**
|
|
146
146
|
|
|
147
|
-
- **DR-3.1
|
|
147
|
+
- **DR-3.1**: <...>
|
|
148
148
|
- *Acceptance*: <...>
|
|
149
149
|
|
|
150
150
|
## Human approval gates
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<!-- One paragraph. What we will do, at a level a non-specialist can understand. -->
|
|
13
13
|
|
|
14
14
|
## Why now
|
|
15
|
-
<!-- One paragraph. What makes this the right moment
|
|
15
|
+
<!-- One paragraph. What makes this the right moment: a trigger, a constraint, a window. -->
|
|
16
16
|
|
|
17
17
|
## Success measure
|
|
18
18
|
<!-- The single metric that tells us this worked. Numeric, time-bound. -->
|
|
@@ -22,7 +22,7 @@ Use prd-platform.md for internal platform and developer-facing capabilities.
|
|
|
22
22
|
<!-- The one-paragraph view of market shape, buyer behavior, and where value accrues. Every decision in this document links back here or challenges it. -->
|
|
23
23
|
|
|
24
24
|
## Problem and opportunity
|
|
25
|
-
<!-- What is broken in the market or business today? What does the opportunity look like at full scale? State the pain and the size of the prize
|
|
25
|
+
<!-- What is broken in the market or business today? What does the opportunity look like at full scale? State the pain and the size of the prize: with evidence. -->
|
|
26
26
|
|
|
27
27
|
## Strategic goals
|
|
28
28
|
<!-- What this decision achieves at the business level: position, revenue, defensibility, optionality. Tie to company objectives. -->
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
<!--
|
|
8
8
|
Use this for capabilities consumed by internal systems, developers, operators, or other
|
|
9
|
-
services
|
|
9
|
+
services: not directly by end users. Covers APIs, SDKs, admin surfaces, data contracts,
|
|
10
10
|
shared infrastructure, and operational tooling.
|
|
11
11
|
|
|
12
12
|
Use prd.md instead for customer-facing product capabilities.
|
package/templates/docs/prd.md
CHANGED
|
@@ -12,7 +12,7 @@ process, template, evaluation loop, or operating model.
|
|
|
12
12
|
Before drafting, read rules/common/framing.md.
|
|
13
13
|
|
|
14
14
|
Owning specialist: cx-product-manager (see rules/common/doc-ownership.md).
|
|
15
|
-
Construct must route PRD authoring to cx-product-manager rather than drafting directly
|
|
15
|
+
Construct must route PRD authoring to cx-product-manager rather than drafting directly.
|
|
16
16
|
doing so is how requirements traceability, user grounding, and external research fire.
|
|
17
17
|
|
|
18
18
|
Write with a balance of short paragraphs, tables, and bullets. Bullets are for scans,
|
|
@@ -67,7 +67,7 @@ Examples:
|
|
|
67
67
|
## Outcome
|
|
68
68
|
<!--
|
|
69
69
|
What is concretely different for users, the business, or the system once this
|
|
70
|
-
ships and is adopted. This is the observable end state
|
|
70
|
+
ships and is adopted. This is the observable end state: written from the
|
|
71
71
|
user's perspective when possible. The acceptance criteria below should be the
|
|
72
72
|
falsifiable evidence that this outcome was achieved.
|
|
73
73
|
|
|
@@ -80,13 +80,13 @@ section and see the delta in plain language.
|
|
|
80
80
|
| | Description |
|
|
81
81
|
|---|---|
|
|
82
82
|
| **In scope** | <what this PRD covers and commits to ship> |
|
|
83
|
-
| **Out of scope** | <related work explicitly deferred
|
|
83
|
+
| **Out of scope** | <related work explicitly deferred: name the reason> |
|
|
84
84
|
| **Adjacent (deferred)** | <work that's a natural follow-up but not in this PRD> |
|
|
85
85
|
|
|
86
86
|
<!--
|
|
87
87
|
Be specific. "Authentication" is too vague; "OAuth login for the web dashboard,
|
|
88
88
|
not for the CLI" is right. The Out of scope list is a tool for protecting
|
|
89
|
-
schedule and reviewer attention
|
|
89
|
+
schedule and reviewer attention: use it.
|
|
90
90
|
-->
|
|
91
91
|
|
|
92
92
|
## Phases
|
|
@@ -94,7 +94,7 @@ schedule and reviewer attention — use it.
|
|
|
94
94
|
<!--
|
|
95
95
|
Phases are how this work ships, not how it's organized internally. Each phase
|
|
96
96
|
is independently shippable and provides observable user value (or a clearly
|
|
97
|
-
defined platform capability). Avoid "phase 1: backend, phase 2: frontend"
|
|
97
|
+
defined platform capability). Avoid "phase 1: backend, phase 2: frontend".
|
|
98
98
|
that's a task list, not a phasing.
|
|
99
99
|
|
|
100
100
|
Each phase below holds its own goal, status, functional requirements (FR),
|
|
@@ -108,53 +108,53 @@ NFR categories to consider: performance, reliability, security, privacy,
|
|
|
108
108
|
accessibility, observability, compliance, cost. Numeric targets where possible.
|
|
109
109
|
-->
|
|
110
110
|
|
|
111
|
-
### Phase 1
|
|
111
|
+
### Phase 1: <name>
|
|
112
112
|
|
|
113
113
|
- **Goal**: <what this phase delivers>
|
|
114
114
|
- **Status**: not started
|
|
115
115
|
|
|
116
116
|
**Functional**
|
|
117
117
|
|
|
118
|
-
- **FR-1.1
|
|
118
|
+
- **FR-1.1**: <imperative statement of what the system must do>
|
|
119
119
|
- *Acceptance*: <observable, falsifiable condition a reviewer can check without asking the author>
|
|
120
|
-
- **FR-1.2
|
|
120
|
+
- **FR-1.2**: <...>
|
|
121
121
|
- *Acceptance*: <...>
|
|
122
122
|
|
|
123
123
|
**Non-functional**
|
|
124
124
|
|
|
125
|
-
- **NFR-1.1
|
|
125
|
+
- **NFR-1.1**: <category>: <target with number>
|
|
126
126
|
- *Acceptance*: <how this is measured and what counts as pass>
|
|
127
127
|
|
|
128
|
-
### Phase 2
|
|
128
|
+
### Phase 2: <name>
|
|
129
129
|
|
|
130
130
|
- **Goal**: <what this phase delivers>
|
|
131
131
|
- **Status**: not started
|
|
132
132
|
|
|
133
133
|
**Functional**
|
|
134
134
|
|
|
135
|
-
- **FR-2.1
|
|
135
|
+
- **FR-2.1**: <...>
|
|
136
136
|
- *Acceptance*: <...>
|
|
137
|
-
- **FR-2.2
|
|
137
|
+
- **FR-2.2**: <...>
|
|
138
138
|
- *Acceptance*: <...>
|
|
139
139
|
|
|
140
140
|
**Non-functional**
|
|
141
141
|
|
|
142
|
-
- **NFR-2.1
|
|
142
|
+
- **NFR-2.1**: <category>: <target>
|
|
143
143
|
- *Acceptance*: <...>
|
|
144
144
|
|
|
145
|
-
### Phase 3
|
|
145
|
+
### Phase 3: <name>
|
|
146
146
|
|
|
147
147
|
- **Goal**: <what this phase delivers>
|
|
148
148
|
- **Status**: not started
|
|
149
149
|
|
|
150
150
|
**Functional**
|
|
151
151
|
|
|
152
|
-
- **FR-3.1
|
|
152
|
+
- **FR-3.1**: <...>
|
|
153
153
|
- *Acceptance*: <...>
|
|
154
154
|
|
|
155
155
|
**Non-functional**
|
|
156
156
|
|
|
157
|
-
- **NFR-3.1
|
|
157
|
+
- **NFR-3.1**: <category>: <target>
|
|
158
158
|
- *Acceptance*: <...>
|
|
159
159
|
|
|
160
160
|
## Success metrics
|
|
@@ -165,7 +165,7 @@ acceptance criteria. Leading vs. lagging. Avoid vanity metrics.
|
|
|
165
165
|
|
|
166
166
|
## Constraints
|
|
167
167
|
<!--
|
|
168
|
-
Budget, timeline, platform, team, legal, technical debt
|
|
168
|
+
Budget, timeline, platform, team, legal, technical debt: anything that shapes
|
|
169
169
|
the solution and isn't a requirement.
|
|
170
170
|
-->
|
|
171
171
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
## Question
|
|
10
10
|
|
|
11
|
-
<!-- One specific, falsifiable question this research must answer. Not a topic
|
|
11
|
+
<!-- One specific, falsifiable question this research must answer. Not a topic: a question with a determinate answer. -->
|
|
12
12
|
|
|
13
13
|
## Method
|
|
14
14
|
|
|
@@ -30,25 +30,25 @@
|
|
|
30
30
|
<!-- Class definitions:
|
|
31
31
|
- primary: peer-reviewed papers, official docs at exact version, raw source code, standards, company announcements, SEC filings
|
|
32
32
|
- secondary: changelogs, migration guides, tracked issues, maintainer posts, conference talks by authors
|
|
33
|
-
- tertiary: blog posts, forums, Q&A, analyst summaries
|
|
33
|
+
- tertiary: blog posts, forums, Q&A, analyst summaries: for discovery only, never as evidence
|
|
34
34
|
Mark Verified = yes only after fetching the URL and confirming content matches. -->
|
|
35
35
|
|
|
36
36
|
## Findings
|
|
37
37
|
|
|
38
38
|
<!-- For each finding, state separately:
|
|
39
|
-
- Observation: what the source(s) actually say
|
|
40
|
-
- Inference: what is concluded from the observation
|
|
39
|
+
- Observation: what the source(s) actually say: direct, traceable
|
|
40
|
+
- Inference: what is concluded from the observation: labeled as inference
|
|
41
41
|
- Confidence: high / medium / low, with a one-line reason
|
|
42
42
|
- Sources: reference the Source table row(s) -->
|
|
43
43
|
|
|
44
|
-
### Finding 1
|
|
44
|
+
### Finding 1: {short label}
|
|
45
45
|
|
|
46
46
|
**Observation**: <!-- what the sources say -->
|
|
47
|
-
**Inference**: <!-- what is concluded
|
|
48
|
-
**Confidence**: high / medium / low
|
|
47
|
+
**Inference**: <!-- what is concluded: labeled as inference -->
|
|
48
|
+
**Confidence**: high / medium / low: {reason}
|
|
49
49
|
**Sources**: {source title(s) from table}
|
|
50
50
|
|
|
51
|
-
### Finding N
|
|
51
|
+
### Finding N: {short label}
|
|
52
52
|
|
|
53
53
|
<!-- repeat as needed -->
|
|
54
54
|
|
package/templates/docs/rfc.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<!--
|
|
10
10
|
Use this for significant technical or architectural proposals that need structured
|
|
11
11
|
review before implementation begins. An RFC is not an ADR (which records a decision
|
|
12
|
-
already made)
|
|
12
|
+
already made): it is the proposal that leads to one.
|
|
13
13
|
|
|
14
14
|
Use rfc-platform.md instead when the proposal introduces breaking changes to a
|
|
15
15
|
contract, API, schema, or protocol consumed by other systems.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: <verb-led-id>
|
|
3
|
-
scope: <one paragraph: what it covers, what it does not>
|
|
3
|
+
scope: "<one paragraph: what it covers, what it does not>"
|
|
4
4
|
observable_outcome: <how someone outside the role tells this skill happened>
|
|
5
5
|
provenance:
|
|
6
6
|
- <citation: post-mortem, public framework, competency model>
|
|
@@ -5,7 +5,7 @@ horizon: "6–12 months"
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<!--
|
|
8
|
-
templates/docs/strategy.md
|
|
8
|
+
templates/docs/strategy.md: Template for product strategy documents.
|
|
9
9
|
Use for both user-product strategy and Construct's own strategy (.cx/strategy.md).
|
|
10
10
|
Canonical store: ~/.cx/strategy.md (user-global) or .cx/strategy.md (project-local, committed).
|
|
11
11
|
Owning workflow: skills/docs/strategy-workflow.md.
|