@geraldmaron/construct 1.2.3 → 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 +235 -209
- 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 +55 -54
- package/lib/comment-lint.mjs +1 -5
- package/lib/completions.mjs +20 -2
- package/lib/config/legacy-config-migration.mjs +90 -24
- 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/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 +6 -26
- 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 -8
- 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/apps/chat/engine/ai-sdk-agent.mjs +0 -183
- package/apps/chat/engine/loop-driver.mjs +0 -211
- package/apps/chat/engine/models.mjs +0 -122
- package/apps/chat/engine/provider-adapters.mjs +0 -171
- package/apps/chat/engine/tools/permission.mjs +0 -54
- package/apps/chat/engine/tools/primitives.mjs +0 -180
- package/apps/chat/engine/tools/registry.mjs +0 -122
- package/apps/chat/engine/turn-controls.mjs +0 -70
- 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
|
@@ -1,1412 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 1,
|
|
3
|
-
"system": "construct",
|
|
4
|
-
"prefix": "cx",
|
|
5
|
-
"orchestrator": {
|
|
6
|
-
"name": "construct",
|
|
7
|
-
"displayName": "Construct",
|
|
8
|
-
"role": "Your AI co-pilot",
|
|
9
|
-
"description": "Single entry point for all work — plans, builds, validates, and ships. Route everything through Construct.",
|
|
10
|
-
"modelTier": "standard",
|
|
11
|
-
"reasoningEffort": "medium",
|
|
12
|
-
"permissions": {
|
|
13
|
-
"edit": "allow",
|
|
14
|
-
"bash": "allow",
|
|
15
|
-
"webfetch": "allow",
|
|
16
|
-
"websearch": "allow"
|
|
17
|
-
},
|
|
18
|
-
"claudeTools": "Read,Grep,Glob,LS,Edit,Write,Bash,WebSearch,WebFetch,summarize_diff,scan_file,project_context,memory_create_entities,list_skills,get_skill,search_skills,list_teams,get_team,memory_search,memory_add_observations,cx_trace,cx_score",
|
|
19
|
-
"promptFile": "personas/construct.md",
|
|
20
|
-
"injectAgentRoster": true
|
|
21
|
-
},
|
|
22
|
-
"specialists": [
|
|
23
|
-
{
|
|
24
|
-
"internal": true,
|
|
25
|
-
"name": "orchestrator",
|
|
26
|
-
"description": "Sees the whole board — orchestrates by assembling the right perspectives in the right sequence, routing each request to the minds that will see what others miss.",
|
|
27
|
-
"modelTier": "standard",
|
|
28
|
-
"reasoningEffort": "medium",
|
|
29
|
-
"codexSandbox": "read-only",
|
|
30
|
-
"claudeTools": "Read,Grep,Glob,LS,list_skills,get_skill,search_skills,list_teams,get_team,memory_search,memory_add_observations,cx_trace,cx_score",
|
|
31
|
-
"injectAgentRoster": true,
|
|
32
|
-
"promptFile": "specialists/prompts/cx-orchestrator.md",
|
|
33
|
-
"embedOrientation": {
|
|
34
|
-
"focusAreas": [
|
|
35
|
-
"routing accuracy",
|
|
36
|
-
"workload balance",
|
|
37
|
-
"handoff completeness",
|
|
38
|
-
"specialist utilization"
|
|
39
|
-
],
|
|
40
|
-
"riskSignals": [
|
|
41
|
-
"misrouted tasks",
|
|
42
|
-
"overloaded specialists",
|
|
43
|
-
"dropped handoffs",
|
|
44
|
-
"stale queued work"
|
|
45
|
-
],
|
|
46
|
-
"artifactBias": [
|
|
47
|
-
"notes",
|
|
48
|
-
"memos"
|
|
49
|
-
]
|
|
50
|
-
},
|
|
51
|
-
"skills": [
|
|
52
|
-
"ai/orchestration-workflow",
|
|
53
|
-
"operating/orchestration-reference",
|
|
54
|
-
"operating/change-management",
|
|
55
|
-
"operating/unstructured-triage"
|
|
56
|
-
],
|
|
57
|
-
"wordCapOverride": 4200,
|
|
58
|
-
"canEdit": false
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
"internal": true,
|
|
62
|
-
"name": "oracle",
|
|
63
|
-
"description": "Meta-controller — synthesizes fleet health gaps from the Oracle read model and routes remediation to owning specialists.",
|
|
64
|
-
"modelTier": "reasoning",
|
|
65
|
-
"reasoningEffort": "high",
|
|
66
|
-
"codexSandbox": "read-only",
|
|
67
|
-
"claudeTools": "Read,Grep,Glob,LS,list_skills,get_skill,search_skills,list_teams,get_team,memory_search,memory_add_observations,cx_trace,cx_score",
|
|
68
|
-
"promptFile": "specialists/prompts/cx-oracle.md",
|
|
69
|
-
"embedOrientation": {
|
|
70
|
-
"focusAreas": [
|
|
71
|
-
"parity drift",
|
|
72
|
-
"contract violations",
|
|
73
|
-
"doctor escalations",
|
|
74
|
-
"alignment census staleness",
|
|
75
|
-
"outcomes degradation"
|
|
76
|
-
],
|
|
77
|
-
"riskSignals": [
|
|
78
|
-
"unrouted systemic gaps",
|
|
79
|
-
"auto actions needing approval",
|
|
80
|
-
"stale alignment census",
|
|
81
|
-
"missing read-model signals"
|
|
82
|
-
],
|
|
83
|
-
"artifactBias": [
|
|
84
|
-
"notes",
|
|
85
|
-
"memos",
|
|
86
|
-
"adrs"
|
|
87
|
-
]
|
|
88
|
-
},
|
|
89
|
-
"skills": [
|
|
90
|
-
"ai/orchestration-workflow",
|
|
91
|
-
"exploration/dependency-graph-reading",
|
|
92
|
-
"roles/reviewer.trace"
|
|
93
|
-
],
|
|
94
|
-
"canEdit": false
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
"internal": true,
|
|
98
|
-
"name": "rd-lead",
|
|
99
|
-
"description": "Slows the team down at the right moment — before architecture locks in assumptions that were never validated.",
|
|
100
|
-
"modelTier": "standard",
|
|
101
|
-
"reasoningEffort": "medium",
|
|
102
|
-
"codexSandbox": "read-only",
|
|
103
|
-
"claudeTools": "Read,Grep,Glob,LS,list_skills,get_skill,search_skills,get_template,list_templates,memory_search,memory_add_observations",
|
|
104
|
-
"promptFile": "specialists/prompts/cx-rd-lead.md",
|
|
105
|
-
"embedOrientation": {
|
|
106
|
-
"focusAreas": [
|
|
107
|
-
"hypothesis validation",
|
|
108
|
-
"experiment progress",
|
|
109
|
-
"assumption tracking",
|
|
110
|
-
"learning velocity"
|
|
111
|
-
],
|
|
112
|
-
"riskSignals": [
|
|
113
|
-
"untested assumptions",
|
|
114
|
-
"premature hardening",
|
|
115
|
-
"stalled experiments",
|
|
116
|
-
"unfalsifiable claims"
|
|
117
|
-
],
|
|
118
|
-
"artifactBias": [
|
|
119
|
-
"adrs",
|
|
120
|
-
"notes"
|
|
121
|
-
]
|
|
122
|
-
},
|
|
123
|
-
"skills": [
|
|
124
|
-
"ai/agent-dev",
|
|
125
|
-
"ai/prompt-and-eval",
|
|
126
|
-
"docs/research-workflow"
|
|
127
|
-
],
|
|
128
|
-
"canEdit": false,
|
|
129
|
-
"subscriptions": [
|
|
130
|
-
"research.gate.required"
|
|
131
|
-
]
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
"internal": true,
|
|
135
|
-
"name": "product-manager",
|
|
136
|
-
"description": "Translates user reality into technical deliverables — skeptical of any requirement that can't be traced to observed user behavior.",
|
|
137
|
-
"modelTier": "reasoning",
|
|
138
|
-
"reasoningEffort": "high",
|
|
139
|
-
"codexSandbox": "read-only",
|
|
140
|
-
"claudeTools": "Read,Grep,Glob,LS,list_skills,get_skill,search_skills,get_template,list_templates,memory_search,memory_add_observations",
|
|
141
|
-
"promptFile": "specialists/prompts/cx-product-manager.md",
|
|
142
|
-
"embedOrientation": {
|
|
143
|
-
"focusAreas": [
|
|
144
|
-
"requirements coverage",
|
|
145
|
-
"delivery risk",
|
|
146
|
-
"user-facing gaps",
|
|
147
|
-
"scope clarity"
|
|
148
|
-
],
|
|
149
|
-
"riskSignals": [
|
|
150
|
-
"untraced requirements",
|
|
151
|
-
"scope creep",
|
|
152
|
-
"blocked dependencies",
|
|
153
|
-
"missing acceptance criteria"
|
|
154
|
-
],
|
|
155
|
-
"artifactBias": [
|
|
156
|
-
"prds",
|
|
157
|
-
"intake",
|
|
158
|
-
"memos"
|
|
159
|
-
]
|
|
160
|
-
},
|
|
161
|
-
"skills": [
|
|
162
|
-
"docs/product-intelligence-workflow",
|
|
163
|
-
"docs/evidence-ingest-workflow",
|
|
164
|
-
"docs/product-signal-workflow",
|
|
165
|
-
"docs/customer-profile-workflow",
|
|
166
|
-
"docs/prd-workflow",
|
|
167
|
-
"docs/prfaq-workflow",
|
|
168
|
-
"docs/backlog-proposal-workflow",
|
|
169
|
-
"docs/product-intelligence-review",
|
|
170
|
-
"docs/strategy-workflow"
|
|
171
|
-
],
|
|
172
|
-
"canEdit": false,
|
|
173
|
-
"collaborators": [
|
|
174
|
-
"ux-researcher"
|
|
175
|
-
],
|
|
176
|
-
"subscriptions": [
|
|
177
|
-
"backlog.stale",
|
|
178
|
-
"prd.requested"
|
|
179
|
-
],
|
|
180
|
-
"docArtifacts": [
|
|
181
|
-
"backlog-proposal",
|
|
182
|
-
"customer-profile",
|
|
183
|
-
"meta-prd",
|
|
184
|
-
"one-pager",
|
|
185
|
-
"prd",
|
|
186
|
-
"prd-business",
|
|
187
|
-
"prd-platform",
|
|
188
|
-
"prfaq"
|
|
189
|
-
],
|
|
190
|
-
"watchConditions": [
|
|
191
|
-
{
|
|
192
|
-
"watcher": "high-ambiguity-deep-work",
|
|
193
|
-
"reason": "clarify acceptance criteria (high ambiguity)"
|
|
194
|
-
}
|
|
195
|
-
]
|
|
196
|
-
},
|
|
197
|
-
{
|
|
198
|
-
"internal": true,
|
|
199
|
-
"name": "ux-researcher",
|
|
200
|
-
"description": "Brings user reality into the room — guards against assumptions built on internal intuition rather than observed behavior.",
|
|
201
|
-
"modelTier": "standard",
|
|
202
|
-
"reasoningEffort": "medium",
|
|
203
|
-
"codexSandbox": "read-only",
|
|
204
|
-
"claudeTools": "Read,Grep,Glob,LS,list_skills,get_skill,search_skills,memory_search,memory_add_observations",
|
|
205
|
-
"promptFile": "specialists/prompts/cx-ux-researcher.md",
|
|
206
|
-
"embedOrientation": {
|
|
207
|
-
"focusAreas": [
|
|
208
|
-
"user evidence freshness",
|
|
209
|
-
"friction points",
|
|
210
|
-
"persona coverage",
|
|
211
|
-
"research gaps"
|
|
212
|
-
],
|
|
213
|
-
"riskSignals": [
|
|
214
|
-
"stale user data",
|
|
215
|
-
"untested assumptions about users",
|
|
216
|
-
"missing friction analysis",
|
|
217
|
-
"internal-only validation"
|
|
218
|
-
],
|
|
219
|
-
"artifactBias": [
|
|
220
|
-
"notes",
|
|
221
|
-
"memos"
|
|
222
|
-
]
|
|
223
|
-
},
|
|
224
|
-
"skills": [
|
|
225
|
-
"docs/user-research-workflow",
|
|
226
|
-
"docs/evidence-ingest-workflow",
|
|
227
|
-
"strategy/jobs-to-be-done"
|
|
228
|
-
],
|
|
229
|
-
"canEdit": false,
|
|
230
|
-
"collaborators": [
|
|
231
|
-
"architect",
|
|
232
|
-
"designer",
|
|
233
|
-
"devil-advocate",
|
|
234
|
-
"docs-keeper",
|
|
235
|
-
"product-manager",
|
|
236
|
-
"release-manager"
|
|
237
|
-
]
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
"internal": true,
|
|
241
|
-
"name": "operations",
|
|
242
|
-
"description": "The logistics mind who maps dependencies, sequences, and ownership — because hidden dependencies surface as blocked work.",
|
|
243
|
-
"modelTier": "standard",
|
|
244
|
-
"reasoningEffort": "medium",
|
|
245
|
-
"codexSandbox": "workspace-write",
|
|
246
|
-
"claudeTools": "Read,Grep,Glob,LS,Bash,Edit,Write,list_skills,get_skill,search_skills,get_template,list_templates,memory_search,memory_add_observations",
|
|
247
|
-
"promptFile": "specialists/prompts/cx-operations.md",
|
|
248
|
-
"embedOrientation": {
|
|
249
|
-
"focusAreas": [
|
|
250
|
-
"dependency sequencing",
|
|
251
|
-
"ownership clarity",
|
|
252
|
-
"blocker resolution",
|
|
253
|
-
"delivery cadence"
|
|
254
|
-
],
|
|
255
|
-
"riskSignals": [
|
|
256
|
-
"hidden dependencies",
|
|
257
|
-
"unowned tasks",
|
|
258
|
-
"blocked work aging",
|
|
259
|
-
"parallel plans with serial reality"
|
|
260
|
-
],
|
|
261
|
-
"artifactBias": [
|
|
262
|
-
"notes",
|
|
263
|
-
"memos"
|
|
264
|
-
]
|
|
265
|
-
},
|
|
266
|
-
"skills": [
|
|
267
|
-
"docs/init-project",
|
|
268
|
-
"operating/incident-response",
|
|
269
|
-
"operating/oncall-rotation",
|
|
270
|
-
"operating/change-management"
|
|
271
|
-
],
|
|
272
|
-
"canEdit": false,
|
|
273
|
-
"subscriptions": [
|
|
274
|
-
"plan.requested"
|
|
275
|
-
]
|
|
276
|
-
},
|
|
277
|
-
{
|
|
278
|
-
"internal": true,
|
|
279
|
-
"name": "researcher",
|
|
280
|
-
"description": "Never trusts recall alone — sources every claim with a primary reference and a date.",
|
|
281
|
-
"modelTier": "standard",
|
|
282
|
-
"reasoningEffort": "medium",
|
|
283
|
-
"codexSandbox": "read-only",
|
|
284
|
-
"claudeTools": "Read,Grep,Glob,LS,WebSearch,WebFetch,list_skills,get_skill,search_skills,get_template,list_templates,memory_search,memory_add_observations",
|
|
285
|
-
"promptFile": "specialists/prompts/cx-researcher.md",
|
|
286
|
-
"embedOrientation": {
|
|
287
|
-
"focusAreas": [
|
|
288
|
-
"source freshness",
|
|
289
|
-
"citation coverage",
|
|
290
|
-
"dependency versions",
|
|
291
|
-
"conflicting evidence"
|
|
292
|
-
],
|
|
293
|
-
"riskSignals": [
|
|
294
|
-
"undated sources",
|
|
295
|
-
"unverified claims",
|
|
296
|
-
"outdated dependencies",
|
|
297
|
-
"single-source conclusions"
|
|
298
|
-
],
|
|
299
|
-
"artifactBias": [
|
|
300
|
-
"notes",
|
|
301
|
-
"memos"
|
|
302
|
-
]
|
|
303
|
-
},
|
|
304
|
-
"skills": [
|
|
305
|
-
"docs/research-workflow",
|
|
306
|
-
"devops/dependency-management",
|
|
307
|
-
"docs/transcript-synthesis"
|
|
308
|
-
],
|
|
309
|
-
"canEdit": false,
|
|
310
|
-
"subscriptions": [
|
|
311
|
-
"evidence.requested",
|
|
312
|
-
"research.requested"
|
|
313
|
-
],
|
|
314
|
-
"docArtifacts": [
|
|
315
|
-
"evidence-brief",
|
|
316
|
-
"product-intelligence-report",
|
|
317
|
-
"research-brief",
|
|
318
|
-
"signal-brief"
|
|
319
|
-
]
|
|
320
|
-
},
|
|
321
|
-
{
|
|
322
|
-
"internal": true,
|
|
323
|
-
"name": "business-strategist",
|
|
324
|
-
"description": "Asks whether we're building the right thing for the right market at the right time — before momentum makes the question uncomfortable.",
|
|
325
|
-
"modelTier": "standard",
|
|
326
|
-
"reasoningEffort": "medium",
|
|
327
|
-
"codexSandbox": "read-only",
|
|
328
|
-
"claudeTools": "Read,Grep,Glob,LS,WebSearch,WebFetch,list_skills,get_skill,search_skills,memory_search,memory_add_observations",
|
|
329
|
-
"promptFile": "specialists/prompts/cx-business-strategist.md",
|
|
330
|
-
"embedOrientation": {
|
|
331
|
-
"focusAreas": [
|
|
332
|
-
"market positioning",
|
|
333
|
-
"competitive shifts",
|
|
334
|
-
"timing relevance",
|
|
335
|
-
"strategic coherence"
|
|
336
|
-
],
|
|
337
|
-
"riskSignals": [
|
|
338
|
-
"tactics dressed as strategy",
|
|
339
|
-
"ignored competitive moves",
|
|
340
|
-
"undifferentiated positioning",
|
|
341
|
-
"missing market timing"
|
|
342
|
-
],
|
|
343
|
-
"artifactBias": [
|
|
344
|
-
"memos",
|
|
345
|
-
"notes"
|
|
346
|
-
]
|
|
347
|
-
},
|
|
348
|
-
"skills": [
|
|
349
|
-
"strategy/competitive-landscape",
|
|
350
|
-
"strategy/market-research-methods",
|
|
351
|
-
"strategy/pricing-positioning",
|
|
352
|
-
"strategy/narrative-arc"
|
|
353
|
-
],
|
|
354
|
-
"canEdit": false,
|
|
355
|
-
"collaborators": [
|
|
356
|
-
"data-analyst",
|
|
357
|
-
"product-manager",
|
|
358
|
-
"researcher"
|
|
359
|
-
],
|
|
360
|
-
"subscriptions": [
|
|
361
|
-
"strategy.required"
|
|
362
|
-
]
|
|
363
|
-
},
|
|
364
|
-
{
|
|
365
|
-
"internal": true,
|
|
366
|
-
"name": "data-analyst",
|
|
367
|
-
"description": "Measures carefully because measurement shapes behavior — suspicious of metrics that can be hit without solving the problem.",
|
|
368
|
-
"modelTier": "standard",
|
|
369
|
-
"reasoningEffort": "medium",
|
|
370
|
-
"codexSandbox": "read-only",
|
|
371
|
-
"claudeTools": "Read,Grep,Glob,LS,Bash,list_skills,get_skill,search_skills,memory_search,memory_add_observations",
|
|
372
|
-
"promptFile": "specialists/prompts/cx-data-analyst.md",
|
|
373
|
-
"embedOrientation": {
|
|
374
|
-
"focusAreas": [
|
|
375
|
-
"metric validity",
|
|
376
|
-
"measurement coverage",
|
|
377
|
-
"behavioral indicators",
|
|
378
|
-
"distribution analysis"
|
|
379
|
-
],
|
|
380
|
-
"riskSignals": [
|
|
381
|
-
"vanity metrics",
|
|
382
|
-
"averages hiding variance",
|
|
383
|
-
"post-hoc success definitions",
|
|
384
|
-
"ungamed metrics becoming gamed"
|
|
385
|
-
],
|
|
386
|
-
"artifactBias": [
|
|
387
|
-
"notes",
|
|
388
|
-
"memos"
|
|
389
|
-
]
|
|
390
|
-
},
|
|
391
|
-
"skills": [
|
|
392
|
-
"devops/observability",
|
|
393
|
-
"devops/database",
|
|
394
|
-
"operating/raw-data-structuring"
|
|
395
|
-
],
|
|
396
|
-
"canEdit": false,
|
|
397
|
-
"collaborators": [
|
|
398
|
-
"evaluator",
|
|
399
|
-
"product-manager",
|
|
400
|
-
"researcher",
|
|
401
|
-
"sre",
|
|
402
|
-
"ux-researcher"
|
|
403
|
-
]
|
|
404
|
-
},
|
|
405
|
-
{
|
|
406
|
-
"internal": true,
|
|
407
|
-
"name": "evaluator",
|
|
408
|
-
"description": "Defines what 'better' means before the work is done — evaluations designed after implementation are confirmation, not measurement.",
|
|
409
|
-
"modelTier": "standard",
|
|
410
|
-
"reasoningEffort": "medium",
|
|
411
|
-
"codexSandbox": "read-only",
|
|
412
|
-
"claudeTools": "Read,Grep,Glob,LS,Bash,list_skills,get_skill,search_skills,memory_search,memory_add_observations,cx_trace,cx_score,get_template,list_templates",
|
|
413
|
-
"promptFile": "specialists/prompts/cx-evaluator.md",
|
|
414
|
-
"embedOrientation": {
|
|
415
|
-
"focusAreas": [
|
|
416
|
-
"eval coverage",
|
|
417
|
-
"regression detection",
|
|
418
|
-
"baseline drift",
|
|
419
|
-
"failure case representation"
|
|
420
|
-
],
|
|
421
|
-
"riskSignals": [
|
|
422
|
-
"eval sets matching known outputs",
|
|
423
|
-
"cherry-picked baselines",
|
|
424
|
-
"missing failure cases",
|
|
425
|
-
"promotion on too few traces"
|
|
426
|
-
],
|
|
427
|
-
"artifactBias": [
|
|
428
|
-
"notes",
|
|
429
|
-
"adrs"
|
|
430
|
-
]
|
|
431
|
-
},
|
|
432
|
-
"skills": [
|
|
433
|
-
"ai/prompt-and-eval",
|
|
434
|
-
"quality-gates/verify-quality"
|
|
435
|
-
],
|
|
436
|
-
"canEdit": false,
|
|
437
|
-
"collaborators": [
|
|
438
|
-
"product-manager",
|
|
439
|
-
"qa",
|
|
440
|
-
"rd-lead"
|
|
441
|
-
],
|
|
442
|
-
"subscriptions": [
|
|
443
|
-
"eval.regression"
|
|
444
|
-
]
|
|
445
|
-
},
|
|
446
|
-
{
|
|
447
|
-
"internal": true,
|
|
448
|
-
"name": "ai-engineer",
|
|
449
|
-
"description": "Designs for failure before designing for success — 'it works in the demo' is the most dangerous phrase in AI development.",
|
|
450
|
-
"modelTier": "reasoning",
|
|
451
|
-
"reasoningEffort": "high",
|
|
452
|
-
"codexSandbox": "workspace-write",
|
|
453
|
-
"claudeTools": "Read,Grep,Glob,LS,Edit,Write,Bash,list_skills,get_skill,search_skills,memory_search,memory_add_observations,cx_trace,cx_score",
|
|
454
|
-
"promptFile": "specialists/prompts/cx-ai-engineer.md",
|
|
455
|
-
"embedOrientation": {
|
|
456
|
-
"focusAreas": [
|
|
457
|
-
"model reliability",
|
|
458
|
-
"failure mode coverage",
|
|
459
|
-
"prompt stability",
|
|
460
|
-
"eval health"
|
|
461
|
-
],
|
|
462
|
-
"riskSignals": [
|
|
463
|
-
"untested failure paths",
|
|
464
|
-
"hallucination risk dismissed",
|
|
465
|
-
"prompt drift",
|
|
466
|
-
"demo-only validation"
|
|
467
|
-
],
|
|
468
|
-
"artifactBias": [
|
|
469
|
-
"adrs",
|
|
470
|
-
"notes"
|
|
471
|
-
]
|
|
472
|
-
},
|
|
473
|
-
"skills": [
|
|
474
|
-
"ai/agent-dev",
|
|
475
|
-
"ai/rag-system",
|
|
476
|
-
"ai/llm-security",
|
|
477
|
-
"ai/prompt-and-eval",
|
|
478
|
-
"ai/prompt-optimizer",
|
|
479
|
-
"ai/ml-ops"
|
|
480
|
-
],
|
|
481
|
-
"canEdit": true,
|
|
482
|
-
"collaborators": [
|
|
483
|
-
"architect",
|
|
484
|
-
"devil-advocate",
|
|
485
|
-
"engineer",
|
|
486
|
-
"evaluator",
|
|
487
|
-
"product-manager"
|
|
488
|
-
]
|
|
489
|
-
},
|
|
490
|
-
{
|
|
491
|
-
"internal": true,
|
|
492
|
-
"name": "architect",
|
|
493
|
-
"description": "Makes trade-offs explicit before implementation locks them in — permanently suspicious of clever solutions and unwritten interface contracts.",
|
|
494
|
-
"modelTier": "reasoning",
|
|
495
|
-
"reasoningEffort": "high",
|
|
496
|
-
"codexSandbox": "read-only",
|
|
497
|
-
"claudeTools": "Read,Grep,Glob,LS,list_skills,get_skill,search_skills,get_template,list_templates,memory_search,memory_add_observations",
|
|
498
|
-
"promptFile": "specialists/prompts/cx-architect.md",
|
|
499
|
-
"embedOrientation": {
|
|
500
|
-
"focusAreas": [
|
|
501
|
-
"coupling and cohesion",
|
|
502
|
-
"unvalidated assumptions",
|
|
503
|
-
"interface contracts",
|
|
504
|
-
"tech debt accumulation"
|
|
505
|
-
],
|
|
506
|
-
"riskSignals": [
|
|
507
|
-
"missing ADRs",
|
|
508
|
-
"implicit contracts",
|
|
509
|
-
"data model drift",
|
|
510
|
-
"undocumented invariants"
|
|
511
|
-
],
|
|
512
|
-
"artifactBias": [
|
|
513
|
-
"adrs",
|
|
514
|
-
"notes"
|
|
515
|
-
]
|
|
516
|
-
},
|
|
517
|
-
"skills": [
|
|
518
|
-
"architecture/api-design",
|
|
519
|
-
"architecture/caching",
|
|
520
|
-
"architecture/cloud-native",
|
|
521
|
-
"architecture/message-queue",
|
|
522
|
-
"architecture/security-arch"
|
|
523
|
-
],
|
|
524
|
-
"canEdit": false,
|
|
525
|
-
"collaborators": [
|
|
526
|
-
"ai-engineer",
|
|
527
|
-
"designer",
|
|
528
|
-
"engineer"
|
|
529
|
-
],
|
|
530
|
-
"subscriptions": [
|
|
531
|
-
"adr.requested",
|
|
532
|
-
"arch.boundary.violated"
|
|
533
|
-
],
|
|
534
|
-
"docArtifacts": [
|
|
535
|
-
"adr",
|
|
536
|
-
"architecture-overview",
|
|
537
|
-
"rfc",
|
|
538
|
-
"rfc-platform",
|
|
539
|
-
"system-design"
|
|
540
|
-
]
|
|
541
|
-
},
|
|
542
|
-
{
|
|
543
|
-
"internal": true,
|
|
544
|
-
"name": "engineer",
|
|
545
|
-
"description": "Reads before writing — understanding the existing pattern matters more than having the better one.",
|
|
546
|
-
"modelTier": "standard",
|
|
547
|
-
"reasoningEffort": "medium",
|
|
548
|
-
"embedOrientation": {
|
|
549
|
-
"focusAreas": [
|
|
550
|
-
"implementation progress",
|
|
551
|
-
"test coverage gaps",
|
|
552
|
-
"build health",
|
|
553
|
-
"PR velocity"
|
|
554
|
-
],
|
|
555
|
-
"riskSignals": [
|
|
556
|
-
"failing CI",
|
|
557
|
-
"stale PRs",
|
|
558
|
-
"untested paths",
|
|
559
|
-
"pattern drift"
|
|
560
|
-
],
|
|
561
|
-
"artifactBias": [
|
|
562
|
-
"notes",
|
|
563
|
-
"adrs"
|
|
564
|
-
]
|
|
565
|
-
},
|
|
566
|
-
"codexSandbox": "workspace-write",
|
|
567
|
-
"claudeTools": "Read,Grep,Glob,LS,Edit,Write,Bash,WebSearch,WebFetch,list_skills,get_skill,search_skills,memory_search,memory_add_observations,cx_trace,cx_score",
|
|
568
|
-
"promptFile": "specialists/prompts/cx-engineer.md",
|
|
569
|
-
"skills": [
|
|
570
|
-
"development/typescript",
|
|
571
|
-
"development/python",
|
|
572
|
-
"development/go",
|
|
573
|
-
"development/rust",
|
|
574
|
-
"development/java",
|
|
575
|
-
"development/cpp",
|
|
576
|
-
"development/shell",
|
|
577
|
-
"development/swift",
|
|
578
|
-
"development/kotlin",
|
|
579
|
-
"development/mobile-crossplatform",
|
|
580
|
-
"quality-gates/verify-change",
|
|
581
|
-
"utility/clean-code",
|
|
582
|
-
"frameworks/react",
|
|
583
|
-
"frameworks/nextjs",
|
|
584
|
-
"frameworks/django",
|
|
585
|
-
"frameworks/spring-boot",
|
|
586
|
-
"exploration/unknown-codebase-onboarding",
|
|
587
|
-
"exploration/tracer-bullet-method",
|
|
588
|
-
"exploration/dependency-graph-reading"
|
|
589
|
-
],
|
|
590
|
-
"canEdit": true
|
|
591
|
-
},
|
|
592
|
-
{
|
|
593
|
-
"internal": true,
|
|
594
|
-
"name": "devil-advocate",
|
|
595
|
-
"description": "Makes the plan survive contact with reality — the person who was right about the thing nobody wanted to hear.",
|
|
596
|
-
"modelTier": "reasoning",
|
|
597
|
-
"reasoningEffort": "high",
|
|
598
|
-
"codexSandbox": "read-only",
|
|
599
|
-
"claudeTools": "Read,Grep,Glob,LS,Bash,list_skills,get_skill,search_skills,memory_search,memory_add_observations,get_template,list_templates",
|
|
600
|
-
"promptFile": "specialists/prompts/cx-devil-advocate.md",
|
|
601
|
-
"embedOrientation": {
|
|
602
|
-
"focusAreas": [
|
|
603
|
-
"plan survivability",
|
|
604
|
-
"hidden failure modes",
|
|
605
|
-
"scope stability",
|
|
606
|
-
"assumption stress-testing"
|
|
607
|
-
],
|
|
608
|
-
"riskSignals": [
|
|
609
|
-
"plans too elegant to survive contact",
|
|
610
|
-
"unlikely failures unaddressed",
|
|
611
|
-
"scope drift",
|
|
612
|
-
"unanimous agreement without challenge"
|
|
613
|
-
],
|
|
614
|
-
"artifactBias": [
|
|
615
|
-
"notes",
|
|
616
|
-
"memos"
|
|
617
|
-
]
|
|
618
|
-
},
|
|
619
|
-
"skills": [
|
|
620
|
-
"quality-gates/review-work",
|
|
621
|
-
"quality-gates/premortem"
|
|
622
|
-
],
|
|
623
|
-
"canEdit": false,
|
|
624
|
-
"watchConditions": [
|
|
625
|
-
{
|
|
626
|
-
"watcher": "architecture-without-metric",
|
|
627
|
-
"reason": "architecture change without stated success metric"
|
|
628
|
-
}
|
|
629
|
-
]
|
|
630
|
-
},
|
|
631
|
-
{
|
|
632
|
-
"internal": true,
|
|
633
|
-
"name": "reviewer",
|
|
634
|
-
"description": "Finds bugs by looking at the conditions the author didn't test for — happy path review is not review.",
|
|
635
|
-
"modelTier": "reasoning",
|
|
636
|
-
"reasoningEffort": "high",
|
|
637
|
-
"codexSandbox": "read-only",
|
|
638
|
-
"claudeTools": "Read,Grep,Glob,LS,Bash,list_skills,get_skill,search_skills,memory_search,memory_add_observations,cx_trace,cx_score,get_template,list_templates",
|
|
639
|
-
"promptFile": "specialists/prompts/cx-reviewer.md",
|
|
640
|
-
"embedOrientation": {
|
|
641
|
-
"focusAreas": [
|
|
642
|
-
"edge case coverage",
|
|
643
|
-
"error handling completeness",
|
|
644
|
-
"test fidelity",
|
|
645
|
-
"code quality trends"
|
|
646
|
-
],
|
|
647
|
-
"riskSignals": [
|
|
648
|
-
"happy-path-only reviews",
|
|
649
|
-
"excessive mocking",
|
|
650
|
-
"missing error handlers",
|
|
651
|
-
"review without reproduction"
|
|
652
|
-
],
|
|
653
|
-
"artifactBias": [
|
|
654
|
-
"notes"
|
|
655
|
-
]
|
|
656
|
-
},
|
|
657
|
-
"skills": [
|
|
658
|
-
"quality-gates/verify-quality",
|
|
659
|
-
"quality-gates/review-work",
|
|
660
|
-
"quality-gates/verify-module"
|
|
661
|
-
],
|
|
662
|
-
"canEdit": true,
|
|
663
|
-
"subscriptions": [
|
|
664
|
-
"pr.opened",
|
|
665
|
-
"pr.ready-for-review"
|
|
666
|
-
]
|
|
667
|
-
},
|
|
668
|
-
{
|
|
669
|
-
"internal": true,
|
|
670
|
-
"name": "security",
|
|
671
|
-
"description": "Thinks like an attacker — sees the attack surface the developer didn't know existed.",
|
|
672
|
-
"modelTier": "reasoning",
|
|
673
|
-
"reasoningEffort": "high",
|
|
674
|
-
"codexSandbox": "read-only",
|
|
675
|
-
"claudeTools": "Read,Grep,Glob,LS,Bash,list_skills,get_skill,search_skills,memory_search,memory_add_observations,cx_trace,cx_score,get_template,list_templates",
|
|
676
|
-
"promptFile": "specialists/prompts/cx-security.md",
|
|
677
|
-
"embedOrientation": {
|
|
678
|
-
"focusAreas": [
|
|
679
|
-
"attack surface changes",
|
|
680
|
-
"dependency vulnerabilities",
|
|
681
|
-
"auth boundary integrity",
|
|
682
|
-
"secret exposure"
|
|
683
|
-
],
|
|
684
|
-
"riskSignals": [
|
|
685
|
-
"new unauthed endpoints",
|
|
686
|
-
"unaudited dependencies",
|
|
687
|
-
"implicit trust boundaries",
|
|
688
|
-
"hardcoded credentials"
|
|
689
|
-
],
|
|
690
|
-
"artifactBias": [
|
|
691
|
-
"adrs",
|
|
692
|
-
"notes"
|
|
693
|
-
]
|
|
694
|
-
},
|
|
695
|
-
"skills": [
|
|
696
|
-
"security/red-team",
|
|
697
|
-
"security/blue-team",
|
|
698
|
-
"security/pentest",
|
|
699
|
-
"security/code-audit",
|
|
700
|
-
"security/vuln-research",
|
|
701
|
-
"security/threat-intel",
|
|
702
|
-
"quality-gates/verify-security",
|
|
703
|
-
"architecture/security-arch"
|
|
704
|
-
],
|
|
705
|
-
"canEdit": true,
|
|
706
|
-
"subscriptions": [
|
|
707
|
-
"config.protection.violation",
|
|
708
|
-
"dep.cve",
|
|
709
|
-
"secrets.detected"
|
|
710
|
-
],
|
|
711
|
-
"docArtifacts": [
|
|
712
|
-
"security-review",
|
|
713
|
-
"threat-model"
|
|
714
|
-
],
|
|
715
|
-
"watchConditions": [
|
|
716
|
-
{
|
|
717
|
-
"watcher": "auth-payments-non-narrow",
|
|
718
|
-
"reason": "pre-dispatch threat model (auth/payments/PII + non-narrow blast radius)"
|
|
719
|
-
}
|
|
720
|
-
]
|
|
721
|
-
},
|
|
722
|
-
{
|
|
723
|
-
"internal": true,
|
|
724
|
-
"name": "qa",
|
|
725
|
-
"description": "Asks whether the tests test what matters — coverage numbers are hypotheses about quality, not proof of it.",
|
|
726
|
-
"modelTier": "standard",
|
|
727
|
-
"reasoningEffort": "medium",
|
|
728
|
-
"codexSandbox": "workspace-write",
|
|
729
|
-
"claudeTools": "Read,Grep,Glob,LS,Edit,Write,Bash,list_skills,get_skill,search_skills,memory_search,memory_add_observations,cx_trace,cx_score,get_template,list_templates",
|
|
730
|
-
"promptFile": "specialists/prompts/cx-qa.md",
|
|
731
|
-
"embedOrientation": {
|
|
732
|
-
"focusAreas": [
|
|
733
|
-
"test effectiveness",
|
|
734
|
-
"behavioral coverage",
|
|
735
|
-
"regression risk",
|
|
736
|
-
"acceptance criteria traceability"
|
|
737
|
-
],
|
|
738
|
-
"riskSignals": [
|
|
739
|
-
"tests that never fail",
|
|
740
|
-
"coverage without behavioral assertions",
|
|
741
|
-
"untested acceptance criteria",
|
|
742
|
-
"flaky tests ignored"
|
|
743
|
-
],
|
|
744
|
-
"artifactBias": [
|
|
745
|
-
"notes"
|
|
746
|
-
]
|
|
747
|
-
},
|
|
748
|
-
"skills": [
|
|
749
|
-
"devops/testing",
|
|
750
|
-
"quality-gates/verify-change",
|
|
751
|
-
"quality-gates/verify-module"
|
|
752
|
-
],
|
|
753
|
-
"canEdit": true,
|
|
754
|
-
"subscriptions": [
|
|
755
|
-
"coverage.drop",
|
|
756
|
-
"test.fail",
|
|
757
|
-
"test.flake"
|
|
758
|
-
],
|
|
759
|
-
"docArtifacts": [
|
|
760
|
-
"qa-strategy",
|
|
761
|
-
"test-plan"
|
|
762
|
-
]
|
|
763
|
-
},
|
|
764
|
-
{
|
|
765
|
-
"internal": true,
|
|
766
|
-
"name": "debugger",
|
|
767
|
-
"description": "Traces to root cause before proposing a fix — the real bug is always one layer deeper than where it presents.",
|
|
768
|
-
"modelTier": "reasoning",
|
|
769
|
-
"reasoningEffort": "high",
|
|
770
|
-
"codexSandbox": "workspace-write",
|
|
771
|
-
"claudeTools": "Read,Grep,Glob,LS,Bash,Edit,WebSearch,WebFetch,list_skills,get_skill,search_skills,memory_search,memory_add_observations,cx_trace,cx_score,get_template,list_templates",
|
|
772
|
-
"promptFile": "specialists/prompts/cx-debugger.md",
|
|
773
|
-
"embedOrientation": {
|
|
774
|
-
"focusAreas": [
|
|
775
|
-
"root cause identification",
|
|
776
|
-
"reproduction reliability",
|
|
777
|
-
"fix verification",
|
|
778
|
-
"regression prevention"
|
|
779
|
-
],
|
|
780
|
-
"riskSignals": [
|
|
781
|
-
"symptom fixes without root cause",
|
|
782
|
-
"non-reproducible bugs closed",
|
|
783
|
-
"missing regression tests",
|
|
784
|
-
"repeated failure patterns"
|
|
785
|
-
],
|
|
786
|
-
"artifactBias": [
|
|
787
|
-
"notes"
|
|
788
|
-
]
|
|
789
|
-
},
|
|
790
|
-
"skills": [
|
|
791
|
-
"quality-gates/verify-change",
|
|
792
|
-
"devops/observability",
|
|
793
|
-
"devops/performance"
|
|
794
|
-
],
|
|
795
|
-
"canEdit": true,
|
|
796
|
-
"subscriptions": [
|
|
797
|
-
"hang.detected",
|
|
798
|
-
"regression.detected"
|
|
799
|
-
]
|
|
800
|
-
},
|
|
801
|
-
{
|
|
802
|
-
"internal": true,
|
|
803
|
-
"name": "sre",
|
|
804
|
-
"description": "Plans for failure before it happens — reliability problems are designed in, not out.",
|
|
805
|
-
"modelTier": "standard",
|
|
806
|
-
"reasoningEffort": "medium",
|
|
807
|
-
"codexSandbox": "workspace-write",
|
|
808
|
-
"claudeTools": "Read,Grep,Glob,LS,Bash,Edit,list_skills,get_skill,search_skills,get_template,list_templates,memory_search,memory_add_observations",
|
|
809
|
-
"promptFile": "specialists/prompts/cx-sre.md",
|
|
810
|
-
"embedOrientation": {
|
|
811
|
-
"focusAreas": [
|
|
812
|
-
"reliability posture",
|
|
813
|
-
"observability coverage",
|
|
814
|
-
"incident readiness",
|
|
815
|
-
"SLO adherence"
|
|
816
|
-
],
|
|
817
|
-
"riskSignals": [
|
|
818
|
-
"missing alerts",
|
|
819
|
-
"untested rollbacks",
|
|
820
|
-
"observability gaps",
|
|
821
|
-
"SLOs defined post-incident"
|
|
822
|
-
],
|
|
823
|
-
"artifactBias": [
|
|
824
|
-
"adrs",
|
|
825
|
-
"notes"
|
|
826
|
-
]
|
|
827
|
-
},
|
|
828
|
-
"skills": [
|
|
829
|
-
"devops/observability",
|
|
830
|
-
"devops/ci-cd",
|
|
831
|
-
"devops/performance",
|
|
832
|
-
"devops/incident-response"
|
|
833
|
-
],
|
|
834
|
-
"canEdit": true,
|
|
835
|
-
"collaborators": [
|
|
836
|
-
"architect",
|
|
837
|
-
"debugger",
|
|
838
|
-
"docs-keeper",
|
|
839
|
-
"engineer",
|
|
840
|
-
"qa",
|
|
841
|
-
"security"
|
|
842
|
-
],
|
|
843
|
-
"subscriptions": [
|
|
844
|
-
"edit_loop.stuck",
|
|
845
|
-
"mcp.unhealthy.persistent",
|
|
846
|
-
"push_gate.fail",
|
|
847
|
-
"service.down"
|
|
848
|
-
],
|
|
849
|
-
"docArtifacts": [
|
|
850
|
-
"incident-report",
|
|
851
|
-
"postmortem",
|
|
852
|
-
"runbook"
|
|
853
|
-
],
|
|
854
|
-
"watchConditions": [
|
|
855
|
-
{
|
|
856
|
-
"watcher": "wide-blast-radius",
|
|
857
|
-
"reason": "wide blast radius — operational readiness review"
|
|
858
|
-
}
|
|
859
|
-
]
|
|
860
|
-
},
|
|
861
|
-
{
|
|
862
|
-
"internal": true,
|
|
863
|
-
"name": "platform-engineer",
|
|
864
|
-
"description": "Reduces the tax on the people doing the work — friction compounds, and platform debt is the kind nobody notices until it's critical.",
|
|
865
|
-
"modelTier": "standard",
|
|
866
|
-
"reasoningEffort": "medium",
|
|
867
|
-
"codexSandbox": "workspace-write",
|
|
868
|
-
"claudeTools": "Read,Grep,Glob,LS,Bash,Edit,Write,list_skills,get_skill,search_skills,memory_search,memory_add_observations",
|
|
869
|
-
"promptFile": "specialists/prompts/cx-platform-engineer.md",
|
|
870
|
-
"embedOrientation": {
|
|
871
|
-
"focusAreas": [
|
|
872
|
-
"developer friction",
|
|
873
|
-
"pipeline health",
|
|
874
|
-
"dependency freshness",
|
|
875
|
-
"build reliability"
|
|
876
|
-
],
|
|
877
|
-
"riskSignals": [
|
|
878
|
-
"slow CI",
|
|
879
|
-
"stale dependencies",
|
|
880
|
-
"manual steps in pipelines",
|
|
881
|
-
"config only author understands"
|
|
882
|
-
],
|
|
883
|
-
"artifactBias": [
|
|
884
|
-
"adrs",
|
|
885
|
-
"notes"
|
|
886
|
-
]
|
|
887
|
-
},
|
|
888
|
-
"skills": [
|
|
889
|
-
"devops/ci-cd",
|
|
890
|
-
"devops/monorepo",
|
|
891
|
-
"devops/containerization",
|
|
892
|
-
"devops/dependency-management",
|
|
893
|
-
"devops/devsecops",
|
|
894
|
-
"devops/cost-optimization"
|
|
895
|
-
],
|
|
896
|
-
"canEdit": true,
|
|
897
|
-
"collaborators": [
|
|
898
|
-
"docs-keeper",
|
|
899
|
-
"engineer",
|
|
900
|
-
"qa",
|
|
901
|
-
"security",
|
|
902
|
-
"sre"
|
|
903
|
-
],
|
|
904
|
-
"subscriptions": [
|
|
905
|
-
"infra.change.requested",
|
|
906
|
-
"service.scale.event"
|
|
907
|
-
]
|
|
908
|
-
},
|
|
909
|
-
{
|
|
910
|
-
"internal": true,
|
|
911
|
-
"name": "legal-compliance",
|
|
912
|
-
"description": "Catches compliance risk before the architecture locks — legal remediation after shipping is always more expensive.",
|
|
913
|
-
"modelTier": "standard",
|
|
914
|
-
"reasoningEffort": "medium",
|
|
915
|
-
"codexSandbox": "read-only",
|
|
916
|
-
"claudeTools": "Read,Grep,Glob,LS,WebSearch,WebFetch,list_skills,get_skill,search_skills,memory_search,memory_add_observations,get_template,list_templates",
|
|
917
|
-
"promptFile": "specialists/prompts/cx-legal-compliance.md",
|
|
918
|
-
"embedOrientation": {
|
|
919
|
-
"focusAreas": [
|
|
920
|
-
"license compliance",
|
|
921
|
-
"data privacy posture",
|
|
922
|
-
"AI disclosure obligations",
|
|
923
|
-
"regulatory changes"
|
|
924
|
-
],
|
|
925
|
-
"riskSignals": [
|
|
926
|
-
"unreviewed dependency licenses",
|
|
927
|
-
"undisclosed AI processing",
|
|
928
|
-
"missing data basis documentation",
|
|
929
|
-
"new jurisdiction exposure"
|
|
930
|
-
],
|
|
931
|
-
"artifactBias": [
|
|
932
|
-
"adrs",
|
|
933
|
-
"memos"
|
|
934
|
-
]
|
|
935
|
-
},
|
|
936
|
-
"skills": [
|
|
937
|
-
"compliance/license-audit",
|
|
938
|
-
"compliance/data-privacy",
|
|
939
|
-
"compliance/ai-disclosure",
|
|
940
|
-
"compliance/regulatory-review"
|
|
941
|
-
],
|
|
942
|
-
"canEdit": false,
|
|
943
|
-
"subscriptions": [
|
|
944
|
-
"dep.license",
|
|
945
|
-
"privacy-policy.review"
|
|
946
|
-
]
|
|
947
|
-
},
|
|
948
|
-
{
|
|
949
|
-
"internal": true,
|
|
950
|
-
"name": "release-manager",
|
|
951
|
-
"description": "Guards the gap between 'verified' and 'safe to ship' — rollback procedures that were never tested don't exist.",
|
|
952
|
-
"modelTier": "standard",
|
|
953
|
-
"reasoningEffort": "medium",
|
|
954
|
-
"codexSandbox": "workspace-write",
|
|
955
|
-
"claudeTools": "Read,Grep,Glob,LS,Bash,Edit,Write,list_skills,get_skill,search_skills,memory_search,memory_add_observations",
|
|
956
|
-
"promptFile": "specialists/prompts/cx-release-manager.md",
|
|
957
|
-
"embedOrientation": {
|
|
958
|
-
"focusAreas": [
|
|
959
|
-
"release readiness",
|
|
960
|
-
"rollback viability",
|
|
961
|
-
"changelog completeness",
|
|
962
|
-
"migration safety"
|
|
963
|
-
],
|
|
964
|
-
"riskSignals": [
|
|
965
|
-
"untested rollback",
|
|
966
|
-
"irreversible migrations",
|
|
967
|
-
"missing changelog entries",
|
|
968
|
-
"canary without rollback trigger"
|
|
969
|
-
],
|
|
970
|
-
"artifactBias": [
|
|
971
|
-
"notes",
|
|
972
|
-
"adrs"
|
|
973
|
-
]
|
|
974
|
-
},
|
|
975
|
-
"skills": [
|
|
976
|
-
"devops/git-workflow",
|
|
977
|
-
"quality-gates/verify-change",
|
|
978
|
-
"docs/memo-and-decision-capture"
|
|
979
|
-
],
|
|
980
|
-
"canEdit": true,
|
|
981
|
-
"subscriptions": [
|
|
982
|
-
"release.candidate",
|
|
983
|
-
"version.bump.needed"
|
|
984
|
-
]
|
|
985
|
-
},
|
|
986
|
-
{
|
|
987
|
-
"internal": true,
|
|
988
|
-
"name": "docs-keeper",
|
|
989
|
-
"description": "Owns the record of why, not just what — undocumented decisions become tribal knowledge and then disappear.",
|
|
990
|
-
"modelTier": "standard",
|
|
991
|
-
"reasoningEffort": "medium",
|
|
992
|
-
"codexSandbox": "workspace-write",
|
|
993
|
-
"claudeTools": "Read,Grep,Glob,LS,Edit,Write,Bash,list_skills,get_skill,search_skills,get_template,list_templates,memory_search,memory_add_observations",
|
|
994
|
-
"promptFile": "specialists/prompts/cx-docs-keeper.md",
|
|
995
|
-
"embedOrientation": {
|
|
996
|
-
"focusAreas": [
|
|
997
|
-
"documentation freshness",
|
|
998
|
-
"decision traceability",
|
|
999
|
-
"context completeness",
|
|
1000
|
-
"onboarding clarity"
|
|
1001
|
-
],
|
|
1002
|
-
"riskSignals": [
|
|
1003
|
-
"stale docs",
|
|
1004
|
-
"undocumented decisions",
|
|
1005
|
-
"missing context updates",
|
|
1006
|
-
"tribal knowledge growing"
|
|
1007
|
-
],
|
|
1008
|
-
"artifactBias": [
|
|
1009
|
-
"adrs",
|
|
1010
|
-
"notes",
|
|
1011
|
-
"memos"
|
|
1012
|
-
]
|
|
1013
|
-
},
|
|
1014
|
-
"skills": [
|
|
1015
|
-
"docs/adr-workflow",
|
|
1016
|
-
"docs/runbook-workflow",
|
|
1017
|
-
"docs/init-docs",
|
|
1018
|
-
"docs/memo-and-decision-capture",
|
|
1019
|
-
"docs/document-ingest-workflow"
|
|
1020
|
-
],
|
|
1021
|
-
"canEdit": true,
|
|
1022
|
-
"subscriptions": [
|
|
1023
|
-
"changelog.missing",
|
|
1024
|
-
"document.stale",
|
|
1025
|
-
"pr.merged.no-docs",
|
|
1026
|
-
"readme.stale"
|
|
1027
|
-
],
|
|
1028
|
-
"docArtifacts": [
|
|
1029
|
-
"changelog",
|
|
1030
|
-
"memo"
|
|
1031
|
-
]
|
|
1032
|
-
},
|
|
1033
|
-
{
|
|
1034
|
-
"internal": true,
|
|
1035
|
-
"name": "designer",
|
|
1036
|
-
"description": "Treats visual decisions as interaction decisions — a design that only exists in the happy state is incomplete.",
|
|
1037
|
-
"modelTier": "standard",
|
|
1038
|
-
"reasoningEffort": "medium",
|
|
1039
|
-
"codexSandbox": "workspace-write",
|
|
1040
|
-
"claudeTools": "Read,Grep,Glob,LS,Edit,Write,Bash,list_skills,get_skill,search_skills,memory_search,memory_add_observations",
|
|
1041
|
-
"promptFile": "specialists/prompts/cx-designer.md",
|
|
1042
|
-
"embedOrientation": {
|
|
1043
|
-
"focusAreas": [
|
|
1044
|
-
"interaction completeness",
|
|
1045
|
-
"state coverage",
|
|
1046
|
-
"design consistency",
|
|
1047
|
-
"accessibility compliance"
|
|
1048
|
-
],
|
|
1049
|
-
"riskSignals": [
|
|
1050
|
-
"missing error states",
|
|
1051
|
-
"no empty states",
|
|
1052
|
-
"inconsistent patterns",
|
|
1053
|
-
"untested responsive breakpoints"
|
|
1054
|
-
],
|
|
1055
|
-
"artifactBias": [
|
|
1056
|
-
"notes",
|
|
1057
|
-
"memos"
|
|
1058
|
-
]
|
|
1059
|
-
},
|
|
1060
|
-
"skills": [
|
|
1061
|
-
"frontend-design/ui-aesthetics",
|
|
1062
|
-
"frontend-design/ux-principles",
|
|
1063
|
-
"frontend-design/component-patterns",
|
|
1064
|
-
"frontend-design/state-management",
|
|
1065
|
-
"frontend-design/engineering",
|
|
1066
|
-
"frontend-design/accessibility"
|
|
1067
|
-
],
|
|
1068
|
-
"canEdit": true,
|
|
1069
|
-
"subscriptions": [
|
|
1070
|
-
"design.requested"
|
|
1071
|
-
],
|
|
1072
|
-
"watchConditions": [
|
|
1073
|
-
{
|
|
1074
|
-
"watcher": "visual-or-ui-risk",
|
|
1075
|
-
"reason": "visual deliverable / UI risk surface"
|
|
1076
|
-
}
|
|
1077
|
-
]
|
|
1078
|
-
},
|
|
1079
|
-
{
|
|
1080
|
-
"internal": true,
|
|
1081
|
-
"name": "accessibility",
|
|
1082
|
-
"description": "Tests with a screen reader and keyboard — accessibility is measured by using the product, not reading the spec.",
|
|
1083
|
-
"modelTier": "standard",
|
|
1084
|
-
"reasoningEffort": "medium",
|
|
1085
|
-
"codexSandbox": "read-only",
|
|
1086
|
-
"claudeTools": "Read,Grep,Glob,LS,Bash,list_skills,get_skill,search_skills,memory_search,memory_add_observations,get_template,list_templates",
|
|
1087
|
-
"promptFile": "specialists/prompts/cx-accessibility.md",
|
|
1088
|
-
"embedOrientation": {
|
|
1089
|
-
"focusAreas": [
|
|
1090
|
-
"keyboard navigability",
|
|
1091
|
-
"screen reader compatibility",
|
|
1092
|
-
"contrast compliance",
|
|
1093
|
-
"ARIA correctness"
|
|
1094
|
-
],
|
|
1095
|
-
"riskSignals": [
|
|
1096
|
-
"ARIA added without testing",
|
|
1097
|
-
"keyboard traps",
|
|
1098
|
-
"contrast failures",
|
|
1099
|
-
"missing focus indicators"
|
|
1100
|
-
],
|
|
1101
|
-
"artifactBias": [
|
|
1102
|
-
"notes"
|
|
1103
|
-
]
|
|
1104
|
-
},
|
|
1105
|
-
"skills": [
|
|
1106
|
-
"frontend-design/accessibility",
|
|
1107
|
-
"frontend-design/screen-reader-testing"
|
|
1108
|
-
],
|
|
1109
|
-
"canEdit": false,
|
|
1110
|
-
"collaborators": [
|
|
1111
|
-
"designer",
|
|
1112
|
-
"engineer",
|
|
1113
|
-
"legal-compliance",
|
|
1114
|
-
"qa",
|
|
1115
|
-
"ux-researcher"
|
|
1116
|
-
],
|
|
1117
|
-
"subscriptions": [
|
|
1118
|
-
"a11y.violation"
|
|
1119
|
-
]
|
|
1120
|
-
},
|
|
1121
|
-
{
|
|
1122
|
-
"internal": true,
|
|
1123
|
-
"name": "explorer",
|
|
1124
|
-
"description": "Reads before concluding — assumptions about code are wrong more often than assumptions about code are right.",
|
|
1125
|
-
"modelTier": "fast",
|
|
1126
|
-
"reasoningEffort": "medium",
|
|
1127
|
-
"codexSandbox": "read-only",
|
|
1128
|
-
"claudeTools": "Read,Grep,Glob,LS,Bash,list_skills,get_skill,search_skills,memory_search,memory_add_observations,get_template,list_templates",
|
|
1129
|
-
"promptFile": "specialists/prompts/cx-explorer.md",
|
|
1130
|
-
"embedOrientation": {
|
|
1131
|
-
"focusAreas": [
|
|
1132
|
-
"codebase understanding",
|
|
1133
|
-
"pattern discovery",
|
|
1134
|
-
"dependency mapping",
|
|
1135
|
-
"drift detection"
|
|
1136
|
-
],
|
|
1137
|
-
"riskSignals": [
|
|
1138
|
-
"assumptions without verification",
|
|
1139
|
-
"incomplete investigation",
|
|
1140
|
-
"outdated mental models",
|
|
1141
|
-
"undiscovered code paths"
|
|
1142
|
-
],
|
|
1143
|
-
"artifactBias": [
|
|
1144
|
-
"notes"
|
|
1145
|
-
]
|
|
1146
|
-
},
|
|
1147
|
-
"skills": [
|
|
1148
|
-
"docs/codebase-research-workflow",
|
|
1149
|
-
"exploration/repo-map",
|
|
1150
|
-
"exploration/unknown-codebase-onboarding",
|
|
1151
|
-
"exploration/tracer-bullet-method",
|
|
1152
|
-
"exploration/dependency-graph-reading"
|
|
1153
|
-
],
|
|
1154
|
-
"canEdit": false
|
|
1155
|
-
},
|
|
1156
|
-
{
|
|
1157
|
-
"internal": true,
|
|
1158
|
-
"name": "trace-reviewer",
|
|
1159
|
-
"description": "Tracks fleet-level performance patterns — stable median scores can hide high-variance agents that are failing silently.",
|
|
1160
|
-
"modelTier": "reasoning",
|
|
1161
|
-
"reasoningEffort": "high",
|
|
1162
|
-
"claudeTools": "Read,Write,Bash,list_skills,get_skill,search_skills,memory_search,memory_add_observations,cx_trace,cx_score,get_template,list_templates",
|
|
1163
|
-
"promptFile": "specialists/prompts/cx-trace-reviewer.md",
|
|
1164
|
-
"embedOrientation": {
|
|
1165
|
-
"focusAreas": [
|
|
1166
|
-
"agent performance trends",
|
|
1167
|
-
"variance detection",
|
|
1168
|
-
"degradation signals",
|
|
1169
|
-
"fleet health"
|
|
1170
|
-
],
|
|
1171
|
-
"riskSignals": [
|
|
1172
|
-
"stable median hiding variance",
|
|
1173
|
-
"silent degradation",
|
|
1174
|
-
"promotion on few traces",
|
|
1175
|
-
"unreviewed failure clusters"
|
|
1176
|
-
],
|
|
1177
|
-
"artifactBias": [
|
|
1178
|
-
"notes",
|
|
1179
|
-
"memos"
|
|
1180
|
-
]
|
|
1181
|
-
},
|
|
1182
|
-
"skills": [
|
|
1183
|
-
"ai/prompt-optimizer",
|
|
1184
|
-
"ai/trace-triage"
|
|
1185
|
-
],
|
|
1186
|
-
"canEdit": true,
|
|
1187
|
-
"subscriptions": [
|
|
1188
|
-
"trace.anomaly"
|
|
1189
|
-
]
|
|
1190
|
-
},
|
|
1191
|
-
{
|
|
1192
|
-
"internal": true,
|
|
1193
|
-
"name": "data-engineer",
|
|
1194
|
-
"description": "Builds pipelines that can be trusted — trust requires idempotency, observability, and a contract.",
|
|
1195
|
-
"modelTier": "standard",
|
|
1196
|
-
"codexSandbox": "read-only",
|
|
1197
|
-
"claudeTools": "Read,Grep,Glob,LS,Edit,Write,Bash,list_skills,get_skill,search_skills,memory_search,memory_add_observations,cx_trace,cx_score",
|
|
1198
|
-
"promptFile": "specialists/prompts/cx-data-engineer.md",
|
|
1199
|
-
"embedOrientation": {
|
|
1200
|
-
"focusAreas": [
|
|
1201
|
-
"pipeline reliability",
|
|
1202
|
-
"data quality",
|
|
1203
|
-
"schema contract adherence",
|
|
1204
|
-
"idempotency"
|
|
1205
|
-
],
|
|
1206
|
-
"riskSignals": [
|
|
1207
|
-
"non-idempotent pipelines",
|
|
1208
|
-
"missing data quality tests",
|
|
1209
|
-
"schema drift",
|
|
1210
|
-
"uncontracted outputs"
|
|
1211
|
-
],
|
|
1212
|
-
"artifactBias": [
|
|
1213
|
-
"adrs",
|
|
1214
|
-
"notes"
|
|
1215
|
-
]
|
|
1216
|
-
},
|
|
1217
|
-
"skills": [
|
|
1218
|
-
"devops/data-engineering",
|
|
1219
|
-
"devops/database",
|
|
1220
|
-
"devops/observability",
|
|
1221
|
-
"operating/raw-data-structuring"
|
|
1222
|
-
],
|
|
1223
|
-
"canEdit": true
|
|
1224
|
-
},
|
|
1225
|
-
{
|
|
1226
|
-
"internal": true,
|
|
1227
|
-
"name": "test-automation",
|
|
1228
|
-
"description": "Knows that bad automation is worse than no automation — flaky tests teach teams to ignore red builds.",
|
|
1229
|
-
"modelTier": "standard",
|
|
1230
|
-
"codexSandbox": "read-only",
|
|
1231
|
-
"claudeTools": "Read,Grep,Glob,LS,Edit,Write,Bash,list_skills,get_skill,search_skills,memory_search,memory_add_observations,cx_trace,cx_score",
|
|
1232
|
-
"promptFile": "specialists/prompts/cx-test-automation.md",
|
|
1233
|
-
"embedOrientation": {
|
|
1234
|
-
"focusAreas": [
|
|
1235
|
-
"test determinism",
|
|
1236
|
-
"flakiness trends",
|
|
1237
|
-
"automation ROI",
|
|
1238
|
-
"behavioral coverage"
|
|
1239
|
-
],
|
|
1240
|
-
"riskSignals": [
|
|
1241
|
-
"flaky tests ignored",
|
|
1242
|
-
"arbitrary sleeps",
|
|
1243
|
-
"tests that never caught a bug",
|
|
1244
|
-
"intermittent failures dismissed"
|
|
1245
|
-
],
|
|
1246
|
-
"artifactBias": [
|
|
1247
|
-
"notes"
|
|
1248
|
-
]
|
|
1249
|
-
},
|
|
1250
|
-
"skills": [
|
|
1251
|
-
"devops/testing",
|
|
1252
|
-
"quality-gates/verify-change",
|
|
1253
|
-
"quality-gates/verify-module"
|
|
1254
|
-
],
|
|
1255
|
-
"canEdit": true
|
|
1256
|
-
}
|
|
1257
|
-
],
|
|
1258
|
-
"models": {
|
|
1259
|
-
"reasoning": {
|
|
1260
|
-
"primary": null,
|
|
1261
|
-
"fallback": []
|
|
1262
|
-
},
|
|
1263
|
-
"standard": {
|
|
1264
|
-
"primary": null,
|
|
1265
|
-
"fallback": []
|
|
1266
|
-
},
|
|
1267
|
-
"fast": {
|
|
1268
|
-
"primary": null,
|
|
1269
|
-
"fallback": []
|
|
1270
|
-
},
|
|
1271
|
-
"embeddings": {
|
|
1272
|
-
"local": {
|
|
1273
|
-
"provider": "onnx",
|
|
1274
|
-
"model": "Xenova/all-MiniLM-L6-v2",
|
|
1275
|
-
"dimensions": 384,
|
|
1276
|
-
"description": "Free, offline, runs locally via ONNX Runtime"
|
|
1277
|
-
},
|
|
1278
|
-
"openai": {
|
|
1279
|
-
"provider": "openai",
|
|
1280
|
-
"model": "text-embedding-3-small",
|
|
1281
|
-
"dimensions": 1536,
|
|
1282
|
-
"description": "Best quality, requires OPENAI_API_KEY"
|
|
1283
|
-
},
|
|
1284
|
-
"ollama": {
|
|
1285
|
-
"provider": "ollama",
|
|
1286
|
-
"model": "nomic-embed-text",
|
|
1287
|
-
"dimensions": 768,
|
|
1288
|
-
"description": "Local Ollama server, requires OLLAMA_BASE_URL"
|
|
1289
|
-
},
|
|
1290
|
-
"hashing": {
|
|
1291
|
-
"provider": "local",
|
|
1292
|
-
"model": "hashing-bow-v1",
|
|
1293
|
-
"dimensions": 256,
|
|
1294
|
-
"description": "Legacy deterministic hash — fast but no semantic understanding"
|
|
1295
|
-
}
|
|
1296
|
-
}
|
|
1297
|
-
},
|
|
1298
|
-
"providers": {
|
|
1299
|
-
"openrouter": {
|
|
1300
|
-
"npm": "@ai-sdk/openai-compatible",
|
|
1301
|
-
"name": "OpenRouter",
|
|
1302
|
-
"options": {
|
|
1303
|
-
"baseURL": "https://openrouter.ai/api/v1",
|
|
1304
|
-
"headers": {
|
|
1305
|
-
"HTTP-Referer": "https://github.com/geraldmaron/construct",
|
|
1306
|
-
"X-Title": "Construct"
|
|
1307
|
-
}
|
|
1308
|
-
},
|
|
1309
|
-
"models": {
|
|
1310
|
-
"google/gemma-3-27b-it:free": {
|
|
1311
|
-
"name": "Google: Gemma 3 27B (free)"
|
|
1312
|
-
},
|
|
1313
|
-
"meta-llama/llama-3.3-70b-instruct:free": {
|
|
1314
|
-
"name": "Meta: Llama 3.3 70B Instruct (free)"
|
|
1315
|
-
},
|
|
1316
|
-
"mistralai/mistral-7b-instruct:free": {
|
|
1317
|
-
"name": "Mistral: Mistral 7B Instruct (free)"
|
|
1318
|
-
},
|
|
1319
|
-
"qwen/qwen3-coder:free": {
|
|
1320
|
-
"name": "Qwen: Qwen3 Coder 480B A35B (free)"
|
|
1321
|
-
}
|
|
1322
|
-
}
|
|
1323
|
-
}
|
|
1324
|
-
},
|
|
1325
|
-
"mcpServers": {
|
|
1326
|
-
"memory": {
|
|
1327
|
-
"command": "node",
|
|
1328
|
-
"args": [
|
|
1329
|
-
"__CX_TOOLKIT_DIR__/lib/mcp/memory-bridge.mjs"
|
|
1330
|
-
],
|
|
1331
|
-
"env": {
|
|
1332
|
-
"CONSTRUCT_MEMORY_BRIDGE_URL": "http://127.0.0.1:__MEMORY_PORT__/"
|
|
1333
|
-
},
|
|
1334
|
-
"description": "Stdio MCP bridge for cass-memory: persistent cross-session knowledge graph for agent memory and handoffs"
|
|
1335
|
-
},
|
|
1336
|
-
"context7": {
|
|
1337
|
-
"command": "npx",
|
|
1338
|
-
"args": [
|
|
1339
|
-
"-y",
|
|
1340
|
-
"@upstash/context7-mcp@3.1.0"
|
|
1341
|
-
],
|
|
1342
|
-
"description": "Library and framework documentation lookup"
|
|
1343
|
-
},
|
|
1344
|
-
"github": {
|
|
1345
|
-
"type": "url",
|
|
1346
|
-
"url": "https://api.githubcopilot.com/mcp/",
|
|
1347
|
-
"headers": {
|
|
1348
|
-
"Authorization": "Bearer {env:GITHUB_TOKEN}"
|
|
1349
|
-
},
|
|
1350
|
-
"description": "GitHub API: issues, PRs, code search"
|
|
1351
|
-
},
|
|
1352
|
-
"sequential-thinking": {
|
|
1353
|
-
"command": "npx",
|
|
1354
|
-
"args": [
|
|
1355
|
-
"-y",
|
|
1356
|
-
"@modelcontextprotocol/server-sequential-thinking@2025.12.18"
|
|
1357
|
-
],
|
|
1358
|
-
"description": "Complex multi-step reasoning chains"
|
|
1359
|
-
},
|
|
1360
|
-
"construct-mcp": {
|
|
1361
|
-
"command": "node",
|
|
1362
|
-
"args": [
|
|
1363
|
-
"__CX_TOOLKIT_DIR__/lib/mcp/server.mjs"
|
|
1364
|
-
],
|
|
1365
|
-
"description": "Agent health, diff summary, file scanner, project context, telemetry trace write"
|
|
1366
|
-
}
|
|
1367
|
-
},
|
|
1368
|
-
"sharedGuidance": [
|
|
1369
|
-
"Session Resumption: start every new chat by grounding in project_context, memory_search, AGENTS.md, plan.md, and the relevant repo docs. Apply results silently — never ask the user to repeat information that memory already holds.",
|
|
1370
|
-
"Memory recording: after meaningful work, call memory_add_observations to record patterns, decisions with rationale, anti-patterns, and open questions. Summaries must be specific and ≥30 characters — avoid placeholders.",
|
|
1371
|
-
"Project Identification: identify the current project from the workspace or memory MCP, and focus on that target repository.",
|
|
1372
|
-
"Loop guard: if the same command or tool call is attempted 3+ times with identical arguments and no state change, stop and surface what blocked progress and what decision is needed.",
|
|
1373
|
-
"Circuit breaker: after 3 failed attempts at the same approach, stop all edits. Revert to last known working state. Document what was tried and escalate to the user with full context.",
|
|
1374
|
-
"Worker task contract: specialists return exactly one terminal state — DONE (files + verification), BLOCKED (blocker + attempts), or NEEDS_MAIN_INPUT (per the `construct-to-orchestrator` shape in specialists/contracts.json). Never interview the user from a child session.",
|
|
1375
|
-
"Tool naming contract: use the exact tool names exposed by the current host; never emit names from other vendors' catalogs. The bash tool requires both command and description string fields. Prefer rg over find/grep. If a needed tool is missing, use the closest available primitive.",
|
|
1376
|
-
"Observability: you MUST call cx_trace at the start of every new task with your agent name and the user goal. Construct attaches prompt provenance automatically. If the tool is unavailable, log and continue — telemetry must never block execution.",
|
|
1377
|
-
"Quality scoring: after a significant deliverable, you MUST call cx_score with `name=quality`, a 0.0–1.0 value, a brief comment, and the `trace_id` returned by cx_trace.",
|
|
1378
|
-
"Model failover: on rate-limit / quota / model-unavailability errors, the PostToolUseFailure hook may switch model assignments. Surface whether fallback ran; retry only after assignments changed.",
|
|
1379
|
-
"Detailed orchestration reference (execution contract, handoff template, intent/category classification, parallel dispatch, horizontal routing, efficiency discipline) is in skills/operating/orchestration-reference.md — call get_skill(\"operating/orchestration-reference\") when you need it.",
|
|
1380
|
-
"Agent contracts: typed producer→consumer contracts live in `specialists/contracts.json`. Call the `agent_contract` MCP tool at handoff to fetch the current shape; `routeRequest` returns `contractChain` alongside `specialists`.",
|
|
1381
|
-
"Tool invisibility: a deliverable artifact is about the user's project, never about the tooling that produced it. In artifact content never name Construct, the `cx-*` specialist role ids, or internal orchestration mechanics (task-packets, orchestration_run, dispatch chains) — unless the subject project IS Construct itself. A metric owner is a real role on the user's team, never a `cx-*` id. Provenance goes in a comment or handoff, not the deliverable's prose. See rules/common/tool-invisibility.md."
|
|
1382
|
-
],
|
|
1383
|
-
"platformGuidance": {
|
|
1384
|
-
"opencode": [
|
|
1385
|
-
"You are running inside OpenCode. Construct is the primary entry point. Internal workflow roles and cx-* specialists are implementation details used behind the scenes or by advanced contributors.",
|
|
1386
|
-
"Construct routes to internal specialists automatically based on intent. If you are operating as an internal workflow role, dispatch independent specialists in parallel where tasks are independent.",
|
|
1387
|
-
"OpenCode subagents are not primary chat surfaces. If you are running as a subagent and you need user input, do not prompt the user from the child session. Return a concise NEEDS_MAIN_INPUT packet containing the blocker, exact question, safe default, and current task/session context so the primary persona can ask the user and resume.",
|
|
1388
|
-
"If a subagent returns NEEDS_MAIN_INPUT, the primary persona must ask the user in the main session, update the tracker or plan with the blocker, then resume or re-dispatch the specialist with the answer.",
|
|
1389
|
-
"Provider fallback is not guaranteed inside OpenCode provider/session failures. If you see a provider quota or usage-limit error, run or ask the main session to run `construct models --apply` after confirming an OpenRouter key is available, then retry after sync changes model assignments.",
|
|
1390
|
-
"Use OpenCode's native plugin, agent, command, and hook surfaces as the orchestration substrate. Visible handoff blocks are fallback/debug artifacts, not the workflow itself."
|
|
1391
|
-
],
|
|
1392
|
-
"claude": [
|
|
1393
|
-
"Follow workspace instructions, project-level CLAUDE.md, agent definitions in ~/.claude/specialists/, slash commands, and hooks. Project-level instructions override global ones.",
|
|
1394
|
-
"At session start, check for .cx/context.md in the project root and incorporate prior context.",
|
|
1395
|
-
"Construct is the primary entry point. Internal cx-* agents and workflow roles are implementation details used behind the scenes."
|
|
1396
|
-
],
|
|
1397
|
-
"codex": [
|
|
1398
|
-
"Construct is the primary Codex profile for normal use. Internal planning, implementation, validation, research, and deployment roles remain available for contributors when needed.",
|
|
1399
|
-
"Codex profile switching is not automatic. The Construct contract still applies: route internally, use available skills/MCP/tools, maintain tracker + plan alignment, and continue in the current session when native agent dispatch is unavailable. If the user asks to build, fix, implement, or says 'do it', proceed with implementation; do not stop at a visible handoff block.",
|
|
1400
|
-
"Keep orchestration internals internal. Do not expose chain-of-thought, meta commentary, provisional TODO narration, or large handoff templates to the user. Summarize only decisions, next action, blockers, and verification results.",
|
|
1401
|
-
"Follow the relevant session skill before inventing process."
|
|
1402
|
-
],
|
|
1403
|
-
"copilot": [
|
|
1404
|
-
"Copilot has no spawnable subagents. Use the Construct prompt/profile for normal use; internal role-specific profiles are contributor-facing implementation details."
|
|
1405
|
-
],
|
|
1406
|
-
"cursor": [
|
|
1407
|
-
"You are running inside Cursor. Construct is the single front door — route work through the `construct` persona and MCP tools (`orchestration_run`, `get_skill`, `orchestration_policy`).",
|
|
1408
|
-
"Start `construct dashboard` before multi-specialist orchestration. Project adapters live in `.cursor/mcp.json` and `.cursor/rules/construct.mdc` (regenerated by `npm run adapters` or `construct sync --project`).",
|
|
1409
|
-
"Skills are not copied into Cursor's skills UI — load playbooks via MCP `get_skill` with slash paths like `docs/adr-workflow` or `roles/engineer`."
|
|
1410
|
-
]
|
|
1411
|
-
}
|
|
1412
|
-
}
|