@geraldmaron/construct 1.2.2 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -10
- package/bin/construct +286 -220
- package/bin/construct-postinstall.mjs +0 -21
- package/commands/work/optimize-prompts.md +1 -1
- package/examples/distribution/sources/adr.md +2 -2
- package/examples/seed-observations/decisions.md +1 -1
- package/lib/artifact-loop-core.mjs +412 -0
- package/lib/artifact-manifest.mjs +6 -0
- package/lib/artifact-release-gate.mjs +115 -49
- package/lib/audit-rules.mjs +2 -4
- package/lib/audit-skills.mjs +32 -20
- package/lib/audit-specialists.mjs +44 -26
- package/lib/auto-docs.mjs +6 -5
- package/lib/brand-prose.mjs +3 -3
- package/lib/brand-tokens.mjs +2 -2
- package/lib/certification/artifact-fixtures.mjs +4 -1
- package/lib/certification/demo-parity.mjs +6 -32
- package/lib/certification/real-llm-scenarios.mjs +58 -13
- package/lib/certification/role-cards.mjs +7 -6
- package/lib/certification/role-overlays.mjs +4 -4
- package/lib/certification/runner.mjs +9 -2
- package/lib/certification/skill-inventory.mjs +34 -22
- package/lib/certification/skill-scenarios.mjs +21 -8
- package/lib/certification/specialist-contracts.mjs +4 -3
- package/lib/certification/specialist-scenarios.mjs +7 -6
- package/lib/certification/status.mjs +5 -4
- package/lib/cli-commands.mjs +56 -57
- package/lib/comment-lint.mjs +1 -5
- package/lib/completions.mjs +20 -2
- package/lib/config/legacy-config-migration.mjs +125 -0
- package/lib/config/schema.mjs +5 -5
- package/lib/config/source-targets.mjs +80 -0
- package/lib/contracts/validate.mjs +119 -51
- package/lib/decisions/golden.mjs +3 -2
- package/lib/decisions/registry.mjs +11 -6
- package/lib/demo-project.mjs +188 -0
- package/lib/demo-recording.mjs +9 -34
- package/lib/demo-script.mjs +2 -2
- package/lib/demo-surface.mjs +13 -131
- package/lib/demo-tour-renderer.mjs +92 -0
- package/lib/demo.mjs +69 -54
- package/lib/diagram-export.mjs +63 -14
- package/lib/doctor/source-checkout.mjs +3 -4
- package/lib/doctor/watchers/consistency.mjs +90 -22
- package/lib/doctor/watchers/credential-parity.mjs +97 -0
- package/lib/doctor/watchers/mcp-protocol.mjs +1 -1
- package/lib/doctor/watchers/service-health.mjs +4 -32
- package/lib/document-export.mjs +73 -9
- package/lib/document-extract.mjs +10 -198
- package/lib/embed/artifact.mjs +2 -3
- package/lib/embed/cli.mjs +1 -1
- package/lib/embed/config.mjs +1 -2
- package/lib/embed/customer-profiles.mjs +1 -1
- package/lib/embed/daemon.mjs +5 -6
- package/lib/embed/demand-fetch.mjs +114 -2
- package/lib/embed/docs-lifecycle.mjs +9 -5
- package/lib/embed/intake-metrics.mjs +2 -2
- package/lib/embed/notifications.mjs +2 -3
- package/lib/embed/recommendation-store.mjs +25 -22
- package/lib/embed/role-framing.mjs +4 -9
- package/lib/embedded-contract/capability.mjs +4 -2
- package/lib/embedded-contract/contract-version.mjs +1 -1
- package/lib/env-config.mjs +2 -2
- package/lib/flavors/loader.mjs +21 -19
- package/lib/graph/build-from-registry.mjs +31 -7
- package/lib/graph/staleness.mjs +1 -1
- package/lib/headhunt.mjs +82 -35
- package/lib/hooks/agent-tracker.mjs +2 -2
- package/lib/hooks/config-protection.mjs +1 -1
- package/lib/hooks/registry-sync.mjs +3 -3
- package/lib/host-capabilities.mjs +5 -5
- package/lib/improvement/controller.mjs +2 -2
- package/lib/init-unified.mjs +19 -21
- package/lib/intake/classify.mjs +26 -0
- package/lib/intake/daemon.mjs +2 -3
- package/lib/intake/prepare.mjs +10 -3
- package/lib/intake/session-prelude.mjs +1 -1
- package/lib/intake/tables/creative.mjs +9 -9
- package/lib/intake/tables/operations.mjs +4 -4
- package/lib/intake/tables/research.mjs +2 -2
- package/lib/integrations/intake-integrations.mjs +9 -10
- package/lib/knowledge/research-store.mjs +2 -2
- package/lib/mcp/server.mjs +104 -61
- package/lib/mcp/tool-budget.mjs +1 -46
- package/lib/mcp/tool-recovery.mjs +44 -0
- package/lib/mcp/tools/artifact-author.mjs +36 -0
- package/lib/mcp/tools/find-tool.mjs +86 -0
- package/lib/mcp/tools/orchestration-run.mjs +107 -69
- package/lib/mcp/tools/project.mjs +4 -3
- package/lib/mcp/tools/{profile.mjs → scope.mjs} +54 -52
- package/lib/mcp/tools/skills.mjs +39 -22
- package/lib/mcp/tools/telemetry.mjs +2 -1
- package/lib/mcp/tools/workflow.mjs +1 -1
- package/lib/mcp-platform-config.mjs +7 -5
- package/lib/migrations/index.mjs +4 -2
- package/lib/migrations/v2-unified-registry.mjs +35 -0
- package/lib/model-router.mjs +203 -36
- package/lib/models/catalog.mjs +25 -9
- package/lib/models/execution-capability-profile.mjs +3 -3
- package/lib/models/execution-policy.mjs +7 -6
- package/lib/models/provider-poll.mjs +18 -4
- package/lib/opencode-config.mjs +56 -1
- package/lib/opencode-runtime-plugin.mjs +13 -10
- package/lib/oracle/artifact-gate.mjs +14 -4
- package/lib/oracle/cli.mjs +2 -0
- package/lib/oracle/dispatch.mjs +18 -1
- package/lib/oracle/execute.mjs +39 -7
- package/lib/oracle/index.mjs +1 -1
- package/lib/oracle/org-graph.mjs +10 -5
- package/lib/oracle/policy.mjs +6 -0
- package/lib/oracle/read-model.mjs +103 -6
- package/lib/oracle/reconcile.mjs +31 -4
- package/lib/oracle/remediation-dispatch.mjs +53 -0
- package/lib/oracle/routing.mjs +5 -0
- package/lib/oracle/synthesize.mjs +80 -3
- package/lib/orchestration/routing-tables.mjs +44 -10
- package/lib/orchestration/runtime.mjs +2 -0
- package/lib/orchestration/worker.mjs +1 -1
- package/lib/orchestration-policy.mjs +351 -62
- package/lib/overrides/resolver.mjs +1 -12
- package/lib/parity.mjs +37 -11
- package/lib/policy/engine.mjs +80 -15
- package/lib/prompt-composer.js +51 -15
- package/lib/prompt-metadata.mjs +3 -2
- package/lib/providers/connection-probe.mjs +58 -0
- package/lib/providers/copilot-auth.mjs +1 -1
- package/lib/providers/credential-bootstrap.mjs +1 -1
- package/lib/providers/op-run.mjs +3 -4
- package/lib/providers/secret-resolver.mjs +31 -0
- package/lib/publish-tooling.mjs +3 -11
- package/lib/publish.mjs +12 -29
- package/lib/reconcile/mcp-entry-reconcile.mjs +14 -9
- package/lib/reflect.mjs +2 -2
- package/lib/registry/agent-manifest.mjs +190 -0
- package/lib/registry/assemble.mjs +133 -0
- package/lib/registry/catalog.mjs +171 -0
- package/lib/registry/cli.mjs +590 -6
- package/lib/registry/consolidation.mjs +5 -4
- package/lib/registry/docs-sync.mjs +67 -0
- package/lib/registry/loader.mjs +147 -0
- package/lib/registry/org-io.mjs +76 -0
- package/lib/registry/retired-paths.mjs +71 -0
- package/lib/registry/surface-map.mjs +5 -7
- package/lib/registry/validator.mjs +438 -0
- package/lib/research-execution-policy.mjs +173 -0
- package/lib/roles/catalog.mjs +4 -9
- package/lib/roles/fence.mjs +107 -1
- package/lib/roles/flavor-bindings.mjs +68 -0
- package/lib/roles/gateway.mjs +140 -29
- package/lib/roles/manifest.mjs +22 -13
- package/lib/roles/router.mjs +1 -1
- package/lib/runtime-env.mjs +1 -1
- package/lib/scopes/enrich.mjs +67 -0
- package/lib/scopes/hooks.mjs +12 -0
- package/lib/{profiles → scopes}/lifecycle.mjs +70 -70
- package/lib/scopes/loader.mjs +104 -0
- package/lib/scopes/rebrand.mjs +32 -0
- package/lib/scopes/research-profile.mjs +16 -0
- package/lib/scopes/teams.mjs +98 -0
- package/lib/service-manager.mjs +1 -117
- package/lib/setup-prompts.mjs +1 -1
- package/lib/setup.mjs +17 -28
- package/lib/skills/composition-graph.mjs +98 -0
- package/lib/skills/router.mjs +80 -0
- package/lib/specialist-contracts.mjs +17 -18
- package/lib/specialists/postconditions.mjs +2 -2
- package/lib/specialists/prompt-schema.mjs +6 -5
- package/lib/specialists/roster.mjs +7 -12
- package/lib/specialists/schema.mjs +9 -6
- package/lib/status.mjs +25 -90
- package/lib/storage/file-lock.mjs +6 -3
- package/lib/telemetry/skill-calls.mjs +1 -1
- package/lib/templates/doc-presentation.mjs +63 -0
- package/lib/templates/visual-requirements.mjs +35 -2
- package/lib/term-format.mjs +107 -2
- package/lib/test-env-setup.mjs +21 -0
- package/lib/ui/components.mjs +42 -0
- package/lib/ui/glyphs.mjs +58 -0
- package/lib/ui/links.mjs +115 -0
- package/lib/ui/theme.mjs +108 -0
- package/lib/uninstall/uninstall.mjs +2 -1
- package/lib/validator.mjs +45 -8
- package/lib/validators/skill-effectiveness.mjs +174 -0
- package/lib/validators/skills.mjs +1 -1
- package/package.json +12 -7
- package/personas/construct.md +12 -3
- package/platforms/claude/CLAUDE.md +1 -1
- package/rules/common/beads-hygiene.md +52 -0
- package/rules/common/neurodivergent-output.md +4 -7
- package/rules/common/research.md +2 -0
- package/scripts/sync-specialists.mjs +260 -49
- package/skills/ai/prompt-optimizer.md +3 -3
- package/skills/brand/output-vibe.md +48 -0
- package/skills/docs/adr-workflow.md +3 -0
- package/skills/docs/backlog-proposal-workflow.md +3 -0
- package/skills/docs/codebase-research-workflow.md +5 -2
- package/skills/docs/customer-profile-workflow.md +3 -0
- package/skills/docs/document-ingest-workflow.md +3 -0
- package/skills/docs/evidence-ingest-workflow.md +4 -1
- package/skills/docs/init-project.md +1 -1
- package/skills/docs/prd-workflow.md +1 -1
- package/skills/docs/prfaq-workflow.md +3 -0
- package/skills/docs/product-intelligence-workflow.md +4 -1
- package/skills/docs/product-signal-workflow.md +3 -0
- package/skills/docs/research-workflow.md +13 -6
- package/skills/docs/runbook-workflow.md +3 -0
- package/skills/docs/strategy-workflow.md +3 -0
- package/skills/docs/user-research-workflow.md +6 -3
- package/skills/operating/orchestration-reference.md +1 -1
- package/skills/roles/{engineer.ai.md → ai-engineer.md} +2 -2
- package/skills/roles/architect.ai-systems.md +1 -1
- package/skills/roles/architect.data.md +1 -1
- package/skills/roles/architect.enterprise.md +1 -1
- package/skills/roles/architect.integration.md +1 -1
- package/skills/roles/architect.md +1 -1
- package/skills/roles/architect.platform.md +1 -1
- package/skills/roles/{product-manager.business-strategy.md → business-strategist.md} +3 -3
- package/skills/roles/data-analyst.experiment.md +1 -1
- package/skills/roles/data-analyst.md +1 -1
- package/skills/roles/data-analyst.product-intelligence.md +1 -1
- package/skills/roles/data-analyst.product.md +1 -1
- package/skills/roles/data-analyst.telemetry.md +1 -1
- package/skills/roles/{engineer.data.md → data-engineer.md} +2 -2
- package/skills/roles/data-engineer.pipeline.md +2 -2
- package/skills/roles/data-engineer.vector-retrieval.md +2 -2
- package/skills/roles/data-engineer.warehouse.md +2 -2
- package/skills/roles/debugger.md +1 -1
- package/skills/roles/designer.accessibility.md +1 -1
- package/skills/roles/designer.md +1 -1
- package/skills/roles/{reviewer.devil-advocate.md → devil-advocate.md} +2 -2
- package/skills/roles/{operator.docs.md → docs-keeper.md} +3 -3
- package/skills/roles/engineer.md +3 -7
- package/skills/roles/{reviewer.evaluator.md → evaluator.md} +2 -2
- package/skills/roles/{researcher.explorer.md → explorer.md} +2 -2
- package/skills/roles/{operator.md → operations.md} +2 -5
- package/skills/roles/orchestrator.md +1 -1
- package/skills/roles/{engineer.platform.md → platform-engineer.md} +2 -2
- package/skills/roles/product-manager.ai-product.md +1 -1
- package/skills/roles/product-manager.enterprise.md +1 -1
- package/skills/roles/product-manager.growth.md +1 -2
- package/skills/roles/product-manager.md +1 -2
- package/skills/roles/product-manager.platform.md +1 -1
- package/skills/roles/product-manager.product.md +1 -1
- package/skills/roles/qa.ai-eval.md +1 -1
- package/skills/roles/qa.api-contract.md +1 -1
- package/skills/roles/qa.data-pipeline.md +1 -1
- package/skills/roles/qa.md +1 -1
- package/skills/roles/qa.web-ui.md +1 -1
- package/skills/roles/{operator.release.md → release-manager.md} +3 -3
- package/skills/roles/researcher.md +1 -1
- package/skills/roles/reviewer.md +1 -1
- package/skills/roles/security.ai.md +1 -1
- package/skills/roles/security.appsec.md +1 -1
- package/skills/roles/security.cloud.md +1 -1
- package/skills/roles/security.legal-compliance.md +1 -1
- package/skills/roles/security.md +1 -1
- package/skills/roles/security.privacy.md +1 -1
- package/skills/roles/security.supply-chain.md +1 -1
- package/skills/roles/{operator.sre.md → sre.md} +3 -3
- package/skills/roles/{qa.test-automation.md → test-automation.md} +2 -2
- package/skills/roles/{reviewer.trace.md → trace-reviewer.md} +2 -2
- package/skills/roles/{researcher.ux.md → ux-researcher.md} +2 -2
- package/skills/routing.json +18 -0
- package/skills/routing.md +1 -1
- package/specialists/artifact-manifest.json +2 -1
- package/specialists/audit-enrichments.json +14 -14
- package/specialists/org/contracts/accessibility-to-qa.json +37 -0
- package/specialists/org/contracts/any-to-business-strategist.json +57 -0
- package/specialists/org/contracts/any-to-debugger.json +38 -0
- package/specialists/org/contracts/any-to-designer.json +33 -0
- package/specialists/org/contracts/any-to-docs-keeper.json +34 -0
- package/specialists/org/contracts/any-to-explorer.json +39 -0
- package/specialists/org/contracts/any-to-sre-incident.json +33 -0
- package/specialists/org/contracts/any-to-trace-reviewer.json +32 -0
- package/specialists/org/contracts/architect-to-ai-engineer.json +32 -0
- package/specialists/org/contracts/architect-to-data-engineer.json +52 -0
- package/specialists/org/contracts/architect-to-devil-advocate.json +38 -0
- package/specialists/org/contracts/architect-to-engineer.json +34 -0
- package/specialists/org/contracts/architect-to-evaluator.json +59 -0
- package/specialists/org/contracts/architect-to-legal-compliance.json +55 -0
- package/specialists/org/contracts/architect-to-operations.json +45 -0
- package/specialists/org/contracts/architect-to-platform-engineer.json +42 -0
- package/specialists/org/contracts/business-strategist-to-product-manager.json +39 -0
- package/specialists/org/contracts/construct-to-orchestrator.json +36 -0
- package/specialists/org/contracts/construct-to-rd-lead.json +53 -0
- package/specialists/org/contracts/data-analyst-to-product-manager.json +43 -0
- package/specialists/org/contracts/data-engineer-to-platform-engineer.json +36 -0
- package/specialists/org/contracts/designer-to-accessibility.json +36 -0
- package/specialists/org/contracts/engineer-to-qa.json +34 -0
- package/specialists/org/contracts/engineer-to-reviewer.json +52 -0
- package/specialists/org/contracts/explorer-to-engineer.json +38 -0
- package/specialists/org/contracts/legal-compliance-to-release-manager.json +43 -0
- package/specialists/org/contracts/platform-engineer-to-engineer.json +31 -0
- package/specialists/org/contracts/product-manager-to-architect.json +71 -0
- package/specialists/org/contracts/product-manager-to-data-analyst.json +49 -0
- package/specialists/org/contracts/product-manager-to-ux-researcher.json +51 -0
- package/specialists/org/contracts/qa-to-release-manager.json +42 -0
- package/specialists/org/contracts/qa-to-test-automation.json +42 -0
- package/specialists/org/contracts/rd-lead-to-architect.json +38 -0
- package/specialists/org/contracts/researcher-to-architect.json +40 -0
- package/specialists/org/contracts/researcher-to-product-manager.json +57 -0
- package/specialists/org/contracts/reviewer-to-security.json +41 -0
- package/specialists/org/contracts/sre-to-release-manager.json +36 -0
- package/specialists/org/contracts/test-automation-to-engineer.json +34 -0
- package/specialists/org/contracts/trace-reviewer-to-sre.json +41 -0
- package/specialists/org/contracts/user-to-construct.json +30 -0
- package/specialists/org/groups/engineering-group.json +43 -0
- package/specialists/org/groups/governance-group.json +38 -0
- package/specialists/org/groups/operations-group.json +41 -0
- package/specialists/org/groups/product-group.json +46 -0
- package/specialists/org/groups/quality-group.json +42 -0
- package/specialists/org/groups/strategy-group.json +41 -0
- package/specialists/org/policies/action-approval.json +13 -0
- package/specialists/org/policies/agents-routing.json +13 -0
- package/specialists/org/policies/architecture.json +20 -0
- package/specialists/org/policies/bash-safety.json +13 -0
- package/specialists/org/policies/beads-hygiene.json +13 -0
- package/specialists/org/policies/bootstrap-state.json +13 -0
- package/specialists/org/policies/code-review.json +13 -0
- package/specialists/org/policies/coding-style.json +13 -0
- package/specialists/org/policies/comments.json +13 -0
- package/specialists/org/policies/commit-approval.json +13 -0
- package/specialists/org/policies/contract-preconditions.json +13 -0
- package/specialists/org/policies/deployment.json +20 -0
- package/specialists/org/policies/description.json +14 -0
- package/specialists/org/policies/design-approval.json +19 -0
- package/specialists/org/policies/doc-ownership.json +13 -0
- package/specialists/org/policies/file-path-fence.json +13 -0
- package/specialists/org/policies/framing.json +13 -0
- package/specialists/org/policies/git-workflow.json +13 -0
- package/specialists/org/policies/incident-response.json +15 -0
- package/specialists/org/policies/intake-triage.json +15 -0
- package/specialists/org/policies/neurodivergent-output.json +13 -0
- package/specialists/org/policies/no-fabrication.json +13 -0
- package/specialists/org/policies/patterns.json +13 -0
- package/specialists/org/policies/quality-gate-approval.json +17 -0
- package/specialists/org/policies/release-gates.json +13 -0
- package/specialists/org/policies/research-evidence.json +13 -0
- package/specialists/org/policies/review-before-change.json +13 -0
- package/specialists/org/policies/rollback.json +15 -0
- package/specialists/org/policies/scope-change.json +20 -0
- package/specialists/org/policies/secret-scan.json +13 -0
- package/specialists/org/policies/security-approval.json +17 -0
- package/specialists/org/policies/security.json +13 -0
- package/specialists/org/policies/session-efficiency.json +13 -0
- package/specialists/org/policies/skill-routing.json +13 -0
- package/specialists/org/policies/strategic-prioritization.json +17 -0
- package/specialists/org/policies/testing.json +13 -0
- package/specialists/org/policies/tool-invisibility.json +14 -0
- package/specialists/org/scopes/creative.json +54 -0
- package/specialists/org/scopes/operations.json +51 -0
- package/specialists/org/scopes/research.json +60 -0
- package/specialists/org/scopes/rnd.json +81 -0
- package/specialists/org/specialists/cx-accessibility.json +69 -0
- package/specialists/org/specialists/cx-ai-engineer.json +75 -0
- package/specialists/org/specialists/cx-architect.json +89 -0
- package/specialists/org/specialists/cx-business-strategist.json +72 -0
- package/specialists/org/specialists/cx-data-analyst.json +68 -0
- package/specialists/org/specialists/cx-data-engineer.json +71 -0
- package/specialists/org/specialists/cx-debugger.json +75 -0
- package/specialists/org/specialists/cx-designer.json +85 -0
- package/specialists/org/specialists/cx-devil-advocate.json +71 -0
- package/specialists/org/specialists/cx-docs-keeper.json +82 -0
- package/specialists/org/specialists/cx-engineer.json +106 -0
- package/specialists/org/specialists/cx-evaluator.json +69 -0
- package/specialists/org/specialists/cx-explorer.json +69 -0
- package/specialists/org/specialists/cx-legal-compliance.json +74 -0
- package/specialists/org/specialists/cx-operations.json +72 -0
- package/specialists/org/specialists/cx-oracle.json +46 -0
- package/specialists/org/specialists/cx-orchestrator.json +81 -0
- package/specialists/org/specialists/cx-platform-engineer.json +80 -0
- package/specialists/org/specialists/cx-product-manager.json +102 -0
- package/specialists/org/specialists/cx-qa.json +79 -0
- package/specialists/org/specialists/cx-rd-lead.json +73 -0
- package/specialists/org/specialists/cx-release-manager.json +77 -0
- package/specialists/org/specialists/cx-researcher.json +82 -0
- package/specialists/org/specialists/cx-reviewer.json +71 -0
- package/specialists/org/specialists/cx-security.json +91 -0
- package/specialists/org/specialists/cx-sre.json +94 -0
- package/specialists/org/specialists/cx-test-automation.json +69 -0
- package/specialists/org/specialists/cx-trace-reviewer.json +69 -0
- package/specialists/org/specialists/cx-ux-researcher.json +68 -0
- package/specialists/org/teams/accessibility-team.json +39 -0
- package/specialists/org/teams/design-team.json +40 -0
- package/specialists/org/teams/engineering-team.json +50 -0
- package/specialists/org/teams/governance-team.json +41 -0
- package/specialists/org/teams/operations-team.json +46 -0
- package/specialists/org/teams/product-management-team.json +45 -0
- package/specialists/org/teams/quality-team.json +49 -0
- package/specialists/org/teams/research-team.json +39 -0
- package/specialists/org/teams/strategy-team.json +48 -0
- package/specialists/org/teams/ux-research-team.json +39 -0
- package/specialists/prompts/_shared/validation-contract.md +1 -1
- package/specialists/prompts/_team-template.md +10 -0
- package/specialists/prompts/cx-accessibility.md +1 -0
- package/specialists/prompts/cx-ai-engineer.md +1 -1
- package/specialists/prompts/cx-business-strategist.md +1 -1
- package/specialists/prompts/cx-data-engineer.md +1 -1
- package/specialists/prompts/cx-designer.md +1 -0
- package/specialists/prompts/cx-devil-advocate.md +1 -1
- package/specialists/prompts/cx-docs-keeper.md +1 -1
- package/specialists/prompts/cx-evaluator.md +1 -1
- package/specialists/prompts/cx-explorer.md +1 -1
- package/specialists/prompts/cx-operations.md +1 -1
- package/specialists/prompts/cx-oracle.md +7 -3
- package/specialists/prompts/cx-orchestrator.md +17 -1
- package/specialists/prompts/cx-platform-engineer.md +1 -1
- package/specialists/prompts/cx-product-manager.md +2 -0
- package/specialists/prompts/cx-release-manager.md +1 -1
- package/specialists/prompts/cx-researcher.md +7 -4
- package/specialists/prompts/cx-sre.md +1 -1
- package/specialists/prompts/cx-test-automation.md +2 -2
- package/specialists/prompts/cx-trace-reviewer.md +3 -3
- package/specialists/prompts/cx-ux-researcher.md +2 -1
- package/templates/demos/scripts/architecture-review-adr.json +30 -0
- package/templates/demos/scripts/capability-contract.json +25 -0
- package/templates/demos/scripts/intake-triage.json +25 -0
- package/templates/demos/scripts/profile-doctor-health.json +25 -0
- package/templates/demos/tapes/agentic-platforms-prd.tape +2 -2
- package/templates/demos/tapes/architecture-review-adr.tape +44 -0
- package/templates/demos/tapes/capability-contract.tape +39 -0
- package/templates/demos/tapes/intake-triage.tape +39 -0
- package/templates/demos/tapes/profile-doctor-health.tape +39 -0
- package/templates/distribution/construct-brand.typ +23 -18
- package/templates/distribution/construct-decision.typ +1 -1
- package/templates/distribution/construct-pdf.typ +1 -1
- package/templates/distribution/construct-prd.typ +1 -1
- package/templates/distribution/construct-research.typ +1 -1
- package/templates/distribution/mermaid-puppeteer.json +8 -0
- package/templates/docs/persona-artifact.md +1 -1
- package/templates/docs/prd.md +6 -0
- package/lib/boundary.mjs +0 -127
- package/lib/certification/dashboard-api.mjs +0 -71
- package/lib/chat/cli.mjs +0 -333
- package/lib/chat/command-suggest.mjs +0 -161
- package/lib/chat/commands.mjs +0 -215
- package/lib/chat/config.mjs +0 -142
- package/lib/chat/context-compactor.mjs +0 -250
- package/lib/chat/context-continuation.mjs +0 -253
- package/lib/chat/continuation-source.mjs +0 -58
- package/lib/chat/demo-guide.mjs +0 -61
- package/lib/chat/design-tokens.mjs +0 -91
- package/lib/chat/desktop-binary.mjs +0 -81
- package/lib/chat/desktop-build.mjs +0 -130
- package/lib/chat/desktop-launcher.mjs +0 -133
- package/lib/chat/evidence.mjs +0 -145
- package/lib/chat/export.mjs +0 -74
- package/lib/chat/harness/driver.mjs +0 -91
- package/lib/chat/list-picker.mjs +0 -112
- package/lib/chat/model-picker.mjs +0 -356
- package/lib/chat/openrouter-fallback.mjs +0 -151
- package/lib/chat/permission-prompt.mjs +0 -33
- package/lib/chat/picker-catalog.mjs +0 -45
- package/lib/chat/policy-telemetry.mjs +0 -34
- package/lib/chat/present.mjs +0 -246
- package/lib/chat/session-context.mjs +0 -39
- package/lib/chat/session-persist.mjs +0 -73
- package/lib/chat/session-restore.mjs +0 -71
- package/lib/chat/session-settings.mjs +0 -53
- package/lib/chat/system-prompt.mjs +0 -52
- package/lib/chat/transparency.mjs +0 -93
- package/lib/chat/tui/color-scheme.mjs +0 -42
- package/lib/chat/tui/markdown.mjs +0 -123
- package/lib/chat/tui/presentation.mjs +0 -100
- package/lib/chat/tui/render.mjs +0 -500
- package/lib/chat/tui/turn-block.mjs +0 -284
- package/lib/chat/tui/turn-present.mjs +0 -18
- package/lib/chat/tui/turn-state.mjs +0 -88
- package/lib/chat/tui/usage.mjs +0 -122
- package/lib/chat/web-commands.mjs +0 -146
- package/lib/chat/web-launcher.mjs +0 -63
- package/lib/chat/web-picker-keys.mjs +0 -46
- package/lib/chat/web-session.mjs +0 -159
- package/lib/config/alias.mjs +0 -57
- package/lib/dashboard-demo.mjs +0 -71
- package/lib/dashboard-static.mjs +0 -175
- package/lib/install/desktop-binary-download.mjs +0 -88
- package/lib/profiles/loader.mjs +0 -123
- package/lib/profiles/rebrand.mjs +0 -46
- package/lib/server/auth.mjs +0 -169
- package/lib/server/chat-loop.mjs +0 -622
- package/lib/server/chat.mjs +0 -336
- package/lib/server/cors.mjs +0 -77
- package/lib/server/csrf.mjs +0 -103
- package/lib/server/demo-preview.mjs +0 -63
- package/lib/server/index.mjs +0 -2641
- package/lib/server/insights.mjs +0 -780
- package/lib/server/langfuse-login.mjs +0 -58
- package/lib/server/rate-limit.mjs +0 -93
- package/lib/server/telemetry-login.mjs +0 -100
- package/lib/server/webhook.mjs +0 -512
- package/specialists/contracts.json +0 -1032
- package/specialists/contracts.schema.json +0 -83
- package/specialists/policy-inventory.json +0 -188
- package/specialists/registry.json +0 -1412
- package/specialists/role-manifests.json +0 -217
- package/specialists/teams.json +0 -94
|
@@ -6,7 +6,7 @@ artifactType: prompt
|
|
|
6
6
|
---
|
|
7
7
|
# Prompt Auto-Optimization Loop
|
|
8
8
|
|
|
9
|
-
Construct's prompt improvement system uses telemetry traces and quality scores as the feedback signal, Claude as the optimizer, and the
|
|
9
|
+
Construct's prompt improvement system uses telemetry traces and quality scores as the feedback signal, Claude as the optimizer, and the modular org registry (`specialists/org/`, assembled at runtime via `loadRegistry()`) as the deployment layer. This is a closed loop: production data → failure analysis → improved prompt → staging → promotion.
|
|
10
10
|
|
|
11
11
|
## Running the optimizer
|
|
12
12
|
|
|
@@ -34,7 +34,7 @@ The optimizer requires Python 3.12+ (`pip3` must be available). It will auto-ins
|
|
|
34
34
|
|
|
35
35
|
## Step 1: Gather signal
|
|
36
36
|
|
|
37
|
-
Retrieve the current production prompt for the target agent from `specialists/
|
|
37
|
+
Retrieve the current production prompt for the target agent from the specialist entry under `specialists/org/specialists/` (or the corresponding `promptFile` if using extracted prompts).
|
|
38
38
|
|
|
39
39
|
Then retrieve recent traces via the telemetry backend REST API:
|
|
40
40
|
|
|
@@ -76,7 +76,7 @@ Write an improved prompt that directly addresses the diagnosed failures. Rules:
|
|
|
76
76
|
|
|
77
77
|
## Step 4: Push to staging
|
|
78
78
|
|
|
79
|
-
Update the agent's prompt in `specialists/
|
|
79
|
+
Update the agent's prompt in `specialists/org/specialists/<agent>.json` (or the corresponding `promptFile`) with a staging marker comment. Tag the version by writing to `.cx/decisions/prompt-staging-{agent}-{date}.md`.
|
|
80
80
|
|
|
81
81
|
Log the candidate prompt as a span attribute on a test run batch using `cx_trace`. Tag spans with `promptVersion: staging-{timestamp}` and score them with `cx_score` as traces complete.
|
|
82
82
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brand-output-vibe
|
|
3
|
+
description: Use when drafting or exporting customer-facing artifacts (PRD, deck, brief, runbook). Sets typography, prose rhythm, sketch diagrams, and export consistency.
|
|
4
|
+
inputs: [artifact-draft, export-target]
|
|
5
|
+
artifactType: style-guide
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Output vibe (construct-modern)
|
|
9
|
+
|
|
10
|
+
Apply this skill before drafting or exporting any customer-facing artifact (PRD, deck, brief, runbook, video script). User instructions always win; this sets the default feel.
|
|
11
|
+
|
|
12
|
+
## Typography and color
|
|
13
|
+
|
|
14
|
+
- Sans: Space Grotesk (400–700). Mono: JetBrains Mono for code, IDs, and tables.
|
|
15
|
+
- Monochrome ink ramp only for page furniture: near-black body (`#23272e`), muted labels (`#565c66`), hairline rules (`#e3e4e8`). Color belongs in diagrams and data, not chrome.
|
|
16
|
+
- Do not stamp "Construct" on external deliverables unless the user asks.
|
|
17
|
+
|
|
18
|
+
## Prose rhythm
|
|
19
|
+
|
|
20
|
+
- Lead with a short declarative paragraph, then structure (headings, one compact table, selective bullets).
|
|
21
|
+
- Avoid bullet walls; never more than seven bullets in a row without a prose bridge.
|
|
22
|
+
- Rare em dashes; prefer commas or parentheses.
|
|
23
|
+
|
|
24
|
+
## Diagrams (sketch-forward)
|
|
25
|
+
|
|
26
|
+
- Prefer hand-drawn / sketch aesthetic over rigid box-and-arrow clipart.
|
|
27
|
+
- In Mermaid, open with a sketch theme block:
|
|
28
|
+
|
|
29
|
+
```mermaid
|
|
30
|
+
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#fafafa', 'primaryBorderColor': '#565c66', 'lineColor': '#23272e', 'fontFamily': 'Space Grotesk'}}}%%
|
|
31
|
+
flowchart LR
|
|
32
|
+
User --> Product
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
- For high-touch user flows, an Excalidraw embed (`*.excalidraw` beside the doc) is acceptable when Mermaid feels too mechanical.
|
|
36
|
+
- Every flowchart shows at least one non-happy path (error, escalation, or rollback).
|
|
37
|
+
|
|
38
|
+
## Tables and metrics
|
|
39
|
+
|
|
40
|
+
- Use tables for metrics, acceptance criteria, and comparisons — not for narrative.
|
|
41
|
+
- Pin baselines and targets; cite sources or mark `[unverified]`.
|
|
42
|
+
|
|
43
|
+
## Export parity
|
|
44
|
+
|
|
45
|
+
- PDF/HTML/PPTX inherit the same fonts and ink ramp from distribution templates.
|
|
46
|
+
- No stock clip-art icons; use simple line icons or typographic labels.
|
|
47
|
+
|
|
48
|
+
When invoked at the start of a workflow skill, restate which vibe choices apply to this artifact type in one sentence, then proceed.
|
|
@@ -30,3 +30,6 @@ Use when: an architectural decision is made that affects the system structure, d
|
|
|
30
30
|
## Cross-referencing
|
|
31
31
|
- If this ADR supersedes another: update the old ADR's status field
|
|
32
32
|
- If this ADR depends on another: add a References link
|
|
33
|
+
## Release gate
|
|
34
|
+
|
|
35
|
+
Run `construct artifact validate <path> --type=<type>` before marking the artifact approved.
|
|
@@ -21,3 +21,6 @@ Use when: product evidence should create or update Jira, Linear, GitHub Issues,
|
|
|
21
21
|
## Rules
|
|
22
22
|
|
|
23
23
|
Never write externally from weak evidence without making the risk explicit. Never create duplicate issues when an existing issue can be updated.
|
|
24
|
+
## Release gate
|
|
25
|
+
|
|
26
|
+
Run `construct artifact validate <path> --type=<type>` before marking the artifact approved.
|
|
@@ -5,13 +5,13 @@ inputs: [repository-path]
|
|
|
5
5
|
artifactType: research-brief
|
|
6
6
|
toneDefault: pedagogical
|
|
7
7
|
toneAllowed: [pedagogical, direct]
|
|
8
|
-
verificationBar: "Every claim cites
|
|
8
|
+
verificationBar: "Every load-bearing claim cites a verifiable primary source; label inference confidence; satisfy template structure requirements."
|
|
9
9
|
---
|
|
10
10
|
# Codebase Research Workflow
|
|
11
11
|
|
|
12
12
|
Use when: cx-explorer investigates **this repository** — structure, dependencies, behavior. Not for external vendor research or user interviews.
|
|
13
13
|
|
|
14
|
-
Call `get_skill("roles/researcher
|
|
14
|
+
Call `get_skill("roles/researcher")` and `get_skill("exploration/repo-map")` before deep dives.
|
|
15
15
|
|
|
16
16
|
## Steps
|
|
17
17
|
|
|
@@ -38,3 +38,6 @@ Call `get_skill("roles/researcher.explorer")` and `get_skill("exploration/repo-m
|
|
|
38
38
|
- Every architectural claim traceable to file:line.
|
|
39
39
|
- Unknown paths marked `[unverified]` until read.
|
|
40
40
|
- cx-explorer must **not** answer product prioritization or user preference questions.
|
|
41
|
+
## Release gate
|
|
42
|
+
|
|
43
|
+
Run `construct artifact validate <path> --type=<type>` before marking the artifact approved.
|
|
@@ -24,3 +24,6 @@ Profiles are product memory, not CRM records. Keep only information needed for p
|
|
|
24
24
|
## Retrieval
|
|
25
25
|
|
|
26
26
|
Customer profiles are indexed by hybrid retrieval. Future PRDs, PRFAQs, evidence briefs, and backlog proposals should search them before drafting.
|
|
27
|
+
## Release gate
|
|
28
|
+
|
|
29
|
+
Run `construct artifact validate <path> --type=<type>` before marking the artifact approved.
|
|
@@ -54,3 +54,6 @@ construct ingest ./data/export.xlsx --out=./notes/export.md
|
|
|
54
54
|
## Rules
|
|
55
55
|
|
|
56
56
|
Do not overwrite an existing markdown artifact unless the user explicitly asks for replacement. Prefer creating a suffixed filename instead. Keep original source files untouched.
|
|
57
|
+
## Release gate
|
|
58
|
+
|
|
59
|
+
Run `construct artifact validate <path> --type=<type>` before marking the artifact approved.
|
|
@@ -3,7 +3,7 @@ name: docs-evidence-ingest-workflow
|
|
|
3
3
|
description: "Use when: the user pastes customer notes, Slack threads, support tickets, sales notes, research snippets, RFCs, analytics summaries, or competitor signals."
|
|
4
4
|
inputs: [signal, document]
|
|
5
5
|
artifactType: evidence-brief
|
|
6
|
-
verificationBar: "
|
|
6
|
+
verificationBar: "Observed behavior weighted over self-report; sample size stated; no invented quotes; every load-bearing claim cites a verifiable source."
|
|
7
7
|
---
|
|
8
8
|
# Evidence Ingest Workflow
|
|
9
9
|
|
|
@@ -34,3 +34,6 @@ Always preserve:
|
|
|
34
34
|
## Storage
|
|
35
35
|
|
|
36
36
|
Files in `.cx/knowledge/` are indexed by Construct's hybrid retrieval path. The vector layer makes them semantically retrievable for future PRDs and Meta PRDs.
|
|
37
|
+
## Release gate
|
|
38
|
+
|
|
39
|
+
Run `construct artifact validate <path> --type=<type>` before marking the artifact approved.
|
|
@@ -37,7 +37,7 @@ docs/ ← human-readable project documentation
|
|
|
37
37
|
1. Treat `.cx/context.md`, `.cx/context.json`, `.cx/workflow.json`, `docs/README.md`, and `docs/architecture.md` as required project state.
|
|
38
38
|
2. Read them at the start of every meaningful session.
|
|
39
39
|
3. Update them whenever work changes active reality: decisions, workflow phase, architecture assumptions, or documentation contract.
|
|
40
|
-
4. Run `construct
|
|
40
|
+
4. Run `construct status` to review the project's current state (workflow phase, core docs, uncommitted changes).
|
|
41
41
|
|
|
42
42
|
## For cx-docs-keeper
|
|
43
43
|
At session start, check the core docs set. If missing, suggest running `construct init --docs-preset=lean` (or `construct init --docs-preset=full` for the full lane set).
|
|
@@ -39,7 +39,7 @@ Style constraint: do not produce a wall of bullets. Use paragraphs for reasoning
|
|
|
39
39
|
| `meta-prd` | `docs/meta-prd/{YYYY-MM-DD}-{slug}.md` |
|
|
40
40
|
| `rfc` | `docs/decisions/rfc/{YYYY-MM-DD}-{slug}.md` |
|
|
41
41
|
| `rfc-platform` | `docs/decisions/rfc/{YYYY-MM-DD}-{slug}.md` |
|
|
42
|
-
5. **cx-devil-advocate** runs the FMEA challenge pass (`roles/
|
|
42
|
+
5. **cx-devil-advocate** runs the FMEA challenge pass (`roles/devil-advocate`) on the draft; highest-RPN failure modes need a mitigation or explicit accept-with-rationale before ship. Their specialist id must appear in `.cx/agent-log.jsonl` (manifest `releaseGate.requiredReviewers` for PRD-family types).
|
|
43
43
|
6. **cx-docs-keeper** updates `.cx/context.md` with a link to the PRD
|
|
44
44
|
|
|
45
45
|
Run `construct artifact validate <path> --type=<type>` before marking the artifact approved.
|
|
@@ -27,3 +27,6 @@ Use when: the user asks for a PRFAQ, working-backwards doc, launch narrative, or
|
|
|
27
27
|
## Approval
|
|
28
28
|
|
|
29
29
|
Stop before marking a PRFAQ approved or publishing it as a document of record.
|
|
30
|
+
## Release gate
|
|
31
|
+
|
|
32
|
+
Run `construct artifact validate <path> --type=<type>` before marking the artifact approved.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: docs-product-intelligence-workflow
|
|
3
3
|
description: "Use when: the request involves customer evidence, PM synthesis, product requirements, PRDs, PRFAQs, customer profiles, product signals, or backlog proposals."
|
|
4
4
|
inputs: [signal, evidence-brief]
|
|
5
|
-
artifactType:
|
|
5
|
+
artifactType: product-intelligence
|
|
6
6
|
verificationBar: "Every load-bearing claim cites a verifiable source; label inference confidence; satisfy template structure requirements."
|
|
7
7
|
---
|
|
8
8
|
# Product Intelligence Workflow
|
|
@@ -73,3 +73,6 @@ Stop and ask the primary persona before:
|
|
|
73
73
|
Product Intelligence output must cite evidence, distinguish observation from inference, name confidence, and avoid a wall of bullets. Keep em dashes rare. Use paragraphs for reasoning, tables for comparisons, and bullets for scanability.
|
|
74
74
|
|
|
75
75
|
For time-sensitive or externally sourced claims, include the date basis. For load-bearing claims, prefer two independent sources unless one authoritative primary source is enough.
|
|
76
|
+
## Release gate
|
|
77
|
+
|
|
78
|
+
Run `construct artifact validate <path> --type=<type>` before marking the artifact approved.
|
|
@@ -61,3 +61,6 @@ After grouping evidence, check `.cx/knowledge/decisions/strategy/` for any decla
|
|
|
61
61
|
| PRFAQ | `docs/prfaq/` |
|
|
62
62
|
| Meta PRD | `docs/meta-prd/` |
|
|
63
63
|
| Backlog proposal | pending approval gate: do not file until explicit user approval |
|
|
64
|
+
## Release gate
|
|
65
|
+
|
|
66
|
+
Run `construct artifact validate <path> --type=<type>` before marking the artifact approved.
|
|
@@ -18,7 +18,14 @@ Follow [rules/common/research.md](../../rules/common/research.md) as the default
|
|
|
18
18
|
1. **Clarify the question**: one specific, falsifiable question the research must answer.
|
|
19
19
|
2. **Apply recency discipline**: search from the most recent year backward. For fast-moving domains, treat sources older than 12 months as presumptively stale unless confirmed.
|
|
20
20
|
3. **Check internal evidence first**: `.cx/research/`, `.cx/knowledge/`, PRDs, ADRs, runbooks before going external.
|
|
21
|
-
4. **Choose
|
|
21
|
+
4. **Choose the tool path by intent, not habit**:
|
|
22
|
+
|
|
23
|
+
- Construct itself → `knowledge_search`
|
|
24
|
+
- Current repo / attached files / ingested artifacts → local evidence first
|
|
25
|
+
- Library / framework / API / cloud docs → Context7 when available, otherwise web-search and fetch official docs directly
|
|
26
|
+
- Everything else → domain-primary sources first, web search only as the locator
|
|
27
|
+
|
|
28
|
+
5. **Choose authoritative starting points** (external primary only):
|
|
22
29
|
|
|
23
30
|
| Domain | Starting points |
|
|
24
31
|
|---|---|
|
|
@@ -28,11 +35,11 @@ Follow [rules/common/research.md](../../rules/common/research.md) as the default
|
|
|
28
35
|
| Cloud / API / SDK | Official vendor docs for exact version, changelog, migration guide |
|
|
29
36
|
| Regulatory | Primary regulation text, official agency guidance |
|
|
30
37
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
38
|
+
6. **Source hierarchy**: primary → secondary → tertiary (tertiary never alone for load-bearing claims).
|
|
39
|
+
7. **Verify every URL** before citing. Mark unconfirmed as `[unverified]`.
|
|
40
|
+
8. **Tone**: resolve from artifact manifest (`direct`). See `specialists/tone-profiles.json`.
|
|
41
|
+
9. **Structure** with `get_template("research-brief")`; write to `.cx/research/{topic-slug}.md`.
|
|
42
|
+
10. **Reference** the research doc in the requesting agent's output.
|
|
36
43
|
|
|
37
44
|
## Distribution (publish pipeline)
|
|
38
45
|
|
|
@@ -24,3 +24,6 @@ Use when: creating operational procedures for services, alerts, or recurring ope
|
|
|
24
24
|
## Review cadence
|
|
25
25
|
- Runbooks should be tested (table-top or live) at least quarterly
|
|
26
26
|
- Update `Last updated` field after each use or review
|
|
27
|
+
## Release gate
|
|
28
|
+
|
|
29
|
+
Run `construct artifact validate <path> --type=<type>` before marking the artifact approved.
|
|
@@ -36,3 +36,6 @@ Given a product signal or PRD, check:
|
|
|
36
36
|
|---|---|---|
|
|
37
37
|
| User-global | `~/.cx/strategy.md` | No: local only |
|
|
38
38
|
| Project-local | `.cx/strategy.md` | Yes: source of truth for this repo |
|
|
39
|
+
## Release gate
|
|
40
|
+
|
|
41
|
+
Run `construct artifact validate <path> --type=<type>` before marking the artifact approved.
|
|
@@ -5,13 +5,13 @@ inputs: [user-research, interview-data]
|
|
|
5
5
|
artifactType: evidence-brief
|
|
6
6
|
toneDefault: pedagogical
|
|
7
7
|
toneAllowed: [pedagogical, direct, friendly]
|
|
8
|
-
verificationBar: "Observed behavior weighted over self-report; sample size stated; no invented quotes."
|
|
8
|
+
verificationBar: "Observed behavior weighted over self-report; sample size stated; no invented quotes; every load-bearing claim cites a verifiable source."
|
|
9
9
|
---
|
|
10
10
|
# User Research Workflow
|
|
11
11
|
|
|
12
12
|
Use when: cx-ux-researcher gathers or synthesizes **user** evidence. Do not use for CVE lookups, API version facts, or repo structure — use `docs/research-workflow` (cx-researcher) or `docs/codebase-research-workflow` (cx-explorer) instead.
|
|
13
13
|
|
|
14
|
-
Follow [rules/common/research.md](../../rules/common/research.md) and call `get_skill("roles/researcher
|
|
14
|
+
Follow [rules/common/research.md](../../rules/common/research.md) and call `get_skill("roles/ux-researcher")` before drafting.
|
|
15
15
|
|
|
16
16
|
## Steps
|
|
17
17
|
|
|
@@ -28,7 +28,7 @@ Follow [rules/common/research.md](../../rules/common/research.md) and call `get_
|
|
|
28
28
|
| Sales / CS summary | secondary | Trace to underlying tickets when possible |
|
|
29
29
|
|
|
30
30
|
4. **Sampling**: state segment, N, recruitment method. Behavioral claims need ≥5 per segment unless exploratory (flag as low confidence).
|
|
31
|
-
5. **Validity**: name the weakest validity threat (internal/external/construct/conclusion) per `roles/researcher
|
|
31
|
+
5. **Validity**: name the weakest validity threat (internal/external/construct/conclusion) per `roles/ux-researcher` — that threat is where the finding is most likely wrong.
|
|
32
32
|
6. **Inter-rater reliability**: when themes are coded from qualitative data, two coders code a sample independently; report agreement (or Cohen's κ when N permits). Persistent disagreement means the codebook is unfinished — fix the codebook before shipping themes.
|
|
33
33
|
7. **Tone**: default `pedagogical`; override via `.cx/brand-voice.json` if present.
|
|
34
34
|
8. **Output**: `get_template("evidence-brief")` or `signal-brief` when threshold not met; store under `.cx/knowledge/internal/evidence-briefs/`.
|
|
@@ -38,3 +38,6 @@ Follow [rules/common/research.md](../../rules/common/research.md) and call `get_
|
|
|
38
38
|
- No invented customer names, quotes, or ticket ids.
|
|
39
39
|
- Findings describe problems, not prescribed UI solutions.
|
|
40
40
|
- cx-ux-researcher must **not** cite blog posts for API version or security claims.
|
|
41
|
+
## Release gate
|
|
42
|
+
|
|
43
|
+
Run `construct artifact validate <path> --type=<type>` before marking the artifact approved.
|
|
@@ -118,7 +118,7 @@ If you reason about the same decision across two consecutive turns without a new
|
|
|
118
118
|
|
|
119
119
|
## Speculation rule
|
|
120
120
|
|
|
121
|
-
When choosing between named options (SDK vs SDK, library vs library, pattern vs pattern), the answer comes from
|
|
121
|
+
When choosing between named options (SDK vs SDK, library vs library, pattern vs pattern), the answer comes from the appropriate evidence path: Context7 for library/framework/API docs when available, direct fetch/search of official docs otherwise, local repo evidence when the question is project-local, the user, or an explicit default. Never from internal reasoning rounds alone.
|
|
122
122
|
|
|
123
123
|
## Dispatch-first test
|
|
124
124
|
|
|
@@ -3,12 +3,12 @@ name: roles-engineer-ai
|
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Engineer — AI role. Use when reviewing or generating work by cx-ai-engineer, or when an agent is acting in the Engineer — AI role.
|
|
4
4
|
inputs: [code-diff, prompt]
|
|
5
5
|
artifactType: role-guidance
|
|
6
|
-
role: engineer
|
|
6
|
+
role: ai-engineer
|
|
7
7
|
applies_to:
|
|
8
8
|
- cx-ai-engineer
|
|
9
9
|
inherits: engineer
|
|
10
10
|
version: 2
|
|
11
|
-
|
|
11
|
+
scopes:
|
|
12
12
|
- rnd
|
|
13
13
|
cap: 1
|
|
14
14
|
---
|
|
@@ -3,12 +3,12 @@ name: roles-product-manager-business-strategy
|
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Product Manager — Business Strategy role. Use when reviewing or generating work by cx-business-strategist, or when an agent is acting in the Product Manager — Business Strategy role.
|
|
4
4
|
inputs: [strategy-doc, competitive-analysis]
|
|
5
5
|
artifactType: guidance
|
|
6
|
-
role:
|
|
6
|
+
role: business-strategist
|
|
7
7
|
applies_to:
|
|
8
8
|
- cx-business-strategist
|
|
9
|
-
inherits:
|
|
9
|
+
inherits: null
|
|
10
10
|
version: 2
|
|
11
|
-
|
|
11
|
+
scopes:
|
|
12
12
|
- rnd
|
|
13
13
|
cap: 1
|
|
14
14
|
---
|
|
@@ -3,12 +3,12 @@ name: roles-engineer-data
|
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Engineer — Data role. Use when reviewing or generating work by cx-data-engineer, or when an agent is acting in the Engineer — Data role.
|
|
4
4
|
inputs: [code-diff, data-pipeline]
|
|
5
5
|
artifactType: role-guidance
|
|
6
|
-
role: engineer
|
|
6
|
+
role: data-engineer
|
|
7
7
|
applies_to:
|
|
8
8
|
- cx-data-engineer
|
|
9
9
|
inherits: engineer
|
|
10
10
|
version: 2
|
|
11
|
-
|
|
11
|
+
scopes:
|
|
12
12
|
- rnd
|
|
13
13
|
cap: 1
|
|
14
14
|
---
|
package/skills/roles/debugger.md
CHANGED
package/skills/roles/designer.md
CHANGED
|
@@ -3,12 +3,12 @@ name: roles-reviewer-devil-advocate
|
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Reviewer — Devil Advocate role. Use when reviewing or generating work by cx-devil-advocate, or when an agent is acting in the Reviewer — Devil Advocate role.
|
|
4
4
|
inputs: [plan, proposal]
|
|
5
5
|
artifactType: guidance
|
|
6
|
-
role:
|
|
6
|
+
role: devil-advocate
|
|
7
7
|
applies_to:
|
|
8
8
|
- cx-devil-advocate
|
|
9
9
|
inherits: reviewer
|
|
10
10
|
version: 2
|
|
11
|
-
|
|
11
|
+
scopes:
|
|
12
12
|
- rnd
|
|
13
13
|
cap: 1
|
|
14
14
|
---
|
|
@@ -3,12 +3,12 @@ name: roles-operator-docs
|
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Operator — Docs role. Use when reviewing or generating work by cx-docs-keeper, or when an agent is acting in the Operator — Docs role.
|
|
4
4
|
inputs: [docs, runbook]
|
|
5
5
|
artifactType: role-guidance
|
|
6
|
-
role:
|
|
6
|
+
role: docs-keeper
|
|
7
7
|
applies_to:
|
|
8
8
|
- cx-docs-keeper
|
|
9
|
-
inherits:
|
|
9
|
+
inherits: operations
|
|
10
10
|
version: 2
|
|
11
|
-
|
|
11
|
+
scopes:
|
|
12
12
|
- rnd
|
|
13
13
|
cap: 1
|
|
14
14
|
---
|
package/skills/roles/engineer.md
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-engineer
|
|
3
|
-
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Engineer role. Use when reviewing or generating work by cx-engineer,
|
|
3
|
+
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Engineer role. Use when reviewing or generating work by cx-engineer, or when an agent is acting in the Engineer role.
|
|
4
4
|
inputs: [code-diff, task-context]
|
|
5
5
|
artifactType: role-guidance
|
|
6
6
|
role: engineer
|
|
7
7
|
applies_to:
|
|
8
8
|
- cx-engineer
|
|
9
|
-
- cx-ai-engineer
|
|
10
|
-
- cx-data-engineer
|
|
11
|
-
- cx-platform-engineer
|
|
12
9
|
inherits: null
|
|
13
10
|
version: 2
|
|
14
|
-
|
|
11
|
+
scopes:
|
|
15
12
|
- rnd
|
|
16
13
|
cap: 1
|
|
17
14
|
---
|
|
@@ -68,7 +65,7 @@ Load this before drafting. These are the failure modes that separate strong role
|
|
|
68
65
|
### 10. Speculating across thinking turns
|
|
69
66
|
**Symptom**: reasoning about which library, pattern, or abstraction to use across multiple thinking turns without reading code, calling docs, or asking.
|
|
70
67
|
**Why it fails**: guesses compound; the eventual choice is made from context the model built about itself, not from the codebase or the library.
|
|
71
|
-
**Counter-move**: two unproductive passes is the cap. Next step is a targeted read,
|
|
68
|
+
**Counter-move**: two unproductive passes is the cap. Next step is a targeted read, the appropriate docs/evidence lookup path (Context7 for library docs when available, direct official-doc fetch otherwise), a NEEDS_MAIN_INPUT packet, or a default with a noted assumption.
|
|
72
69
|
|
|
73
70
|
### 11. Unbounded file reads
|
|
74
71
|
**Symptom**: reading files with large `limit` values without checking size first, or offset reads that fail with "out of range".
|
|
@@ -118,4 +115,3 @@ Shortcut: `npm run release:check`.
|
|
|
118
115
|
**Effective Action**: Before modifying a function, read the full file and grep for callers with `grep -r 'functionName' src/`...
|
|
119
116
|
**Evidence**: Score 0.89, used 8 times, 2 projects
|
|
120
117
|
*Last reinforced: 2026-05-04*
|
|
121
|
-
|
|
@@ -3,12 +3,12 @@ name: roles-reviewer-evaluator
|
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Reviewer — Evaluator role. Use when reviewing or generating work by cx-evaluator, or when an agent is acting in the Reviewer — Evaluator role.
|
|
4
4
|
inputs: [model-output, eval-set]
|
|
5
5
|
artifactType: guidance
|
|
6
|
-
role:
|
|
6
|
+
role: evaluator
|
|
7
7
|
applies_to:
|
|
8
8
|
- cx-evaluator
|
|
9
9
|
inherits: reviewer
|
|
10
10
|
version: 2
|
|
11
|
-
|
|
11
|
+
scopes:
|
|
12
12
|
- rnd
|
|
13
13
|
cap: 1
|
|
14
14
|
---
|
|
@@ -3,12 +3,12 @@ name: roles-researcher-explorer
|
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Researcher — Explorer role. Use when reviewing or generating work by cx-explorer, or when an agent is acting in the Researcher — Explorer role.
|
|
4
4
|
inputs: [repo, task-context]
|
|
5
5
|
artifactType: guidance
|
|
6
|
-
role:
|
|
6
|
+
role: explorer
|
|
7
7
|
applies_to:
|
|
8
8
|
- cx-explorer
|
|
9
9
|
inherits: researcher
|
|
10
10
|
version: 2
|
|
11
|
-
|
|
11
|
+
scopes:
|
|
12
12
|
- rnd
|
|
13
13
|
cap: 1
|
|
14
14
|
---
|