@geraldmaron/construct 1.4.1 → 1.5.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/.env.example +36 -0
- package/README.md +41 -7
- package/bin/construct +1029 -65
- package/bin/construct-postinstall.mjs +27 -2
- package/config/tag-vocabulary.json +264 -0
- package/examples/distribution/sources/deck-one-pager.md +1 -1
- package/lib/acp/server.mjs +21 -7
- package/lib/adapters-sync.mjs +2 -1
- package/lib/audit-trail.mjs +185 -2
- package/lib/beads/auto-close.mjs +2 -1
- package/lib/beads/drift.mjs +2 -1
- package/lib/bridges/copilot-proxy.mjs +20 -5
- package/lib/certification/skill-inventory.mjs +10 -1
- package/lib/cli/approvals.mjs +147 -0
- package/lib/cli-commands.mjs +105 -14
- package/lib/comment-lint.mjs +127 -8
- package/lib/config/schema.mjs +7 -30
- package/lib/config/source-target-registry.mjs +70 -0
- package/lib/config/source-targets.mjs +179 -205
- package/lib/contracts/coverage.mjs +77 -0
- package/lib/contracts/validate.mjs +102 -13
- package/lib/contracts/violation-log.mjs +50 -4
- package/lib/db/migrate.mjs +69 -0
- package/lib/db/migrations/001_orchestration_runs.sql +9 -0
- package/lib/db/migrations/002_queue_provider.sql +50 -0
- package/lib/db/migrations/003_worker_registry.sql +17 -0
- package/lib/db/migrations/004_trace_events.sql +16 -0
- package/lib/db/migrations/005_shared_memory.sql +15 -0
- package/lib/db/migrations/006_orchestration_runs_tenant.sql +5 -0
- package/lib/decisions/enforced-baseline.json +0 -2
- package/lib/decisions/registry.mjs +3 -2
- package/lib/deployment/parity-contract.mjs +1 -1
- package/lib/deployment-mode.mjs +78 -2
- package/lib/diagram-export.mjs +10 -1
- package/lib/distill.mjs +5 -2
- package/lib/docs-verify.mjs +2 -1
- package/lib/doctor/cli.mjs +1 -0
- package/lib/doctor/command-on-path.mjs +24 -0
- package/lib/doctor/diagnosis.mjs +109 -0
- package/lib/doctor/embedding-health.mjs +50 -0
- package/lib/doctor/engine-health.mjs +93 -0
- package/lib/doctor/graph-validate.mjs +47 -0
- package/lib/doctor/index.mjs +23 -4
- package/lib/doctor/sidecar-providers.mjs +56 -0
- package/lib/doctor/watchers/consistency.mjs +93 -1
- package/lib/doctor/watchers/cx-budget.mjs +1 -1
- package/lib/doctor/watchers/graph-staleness.mjs +1 -1
- package/lib/doctor/watchers/mcp-protocol.mjs +17 -0
- package/lib/doctor/watchers/oracle-liveness.mjs +92 -0
- package/lib/doctor/watchers/orchestration-runs.mjs +108 -0
- package/lib/doctor/watchers/provider-breaker.mjs +78 -0
- package/lib/document-export.mjs +52 -27
- package/lib/document-extract/docling-client.mjs +9 -5
- package/lib/document-extract/docling-sidecar.py +30 -0
- package/lib/document-extract.mjs +1 -1
- package/lib/document-ingest.mjs +9 -0
- package/lib/embed/approval-queue.mjs +184 -88
- package/lib/embed/authority-guard.mjs +65 -2
- package/lib/embed/capability-jobs.mjs +365 -0
- package/lib/embed/capability-lifecycle.mjs +219 -0
- package/lib/embed/capability-loader.mjs +303 -0
- package/lib/embed/capability-runtime.mjs +58 -0
- package/lib/embed/cli.mjs +185 -8
- package/lib/embed/config.mjs +4 -0
- package/lib/embed/daemon.mjs +125 -6
- package/lib/embed/demand-fetch.mjs +190 -54
- package/lib/embed/inbox.mjs +12 -10
- package/lib/embed/presets/ops-triage.mjs +236 -0
- package/lib/embed/presets/pm-feedback.mjs +341 -0
- package/lib/embed/presets/tpm.mjs +401 -0
- package/lib/embed/providers/jira.mjs +72 -1
- package/lib/embed/providers/registry.mjs +140 -33
- package/lib/embed/worker.mjs +5 -0
- package/lib/embedded-contract/capability.mjs +4 -0
- package/lib/embedded-contract/execution.mjs +1 -1
- package/lib/embedded-contract/model-resolve.mjs +53 -3
- package/lib/embedded-contract/workflow-defs.mjs +48 -73
- package/lib/embedded-contract/workflow-invoke.mjs +144 -4
- package/lib/embedded-contract/workflows/architecture-review.manifest.json +15 -0
- package/lib/embedded-contract/workflows/data-structure.manifest.json +14 -0
- package/lib/embedded-contract/workflows/evidence-ingest.manifest.json +14 -0
- package/lib/embedded-contract/workflows/memo-draft.manifest.json +14 -0
- package/lib/embedded-contract/workflows/operations-triage.manifest.json +18 -0
- package/lib/embedded-contract/workflows/operations.manifest.json +18 -0
- package/lib/embedded-contract/workflows/pm-feedback.manifest.json +18 -0
- package/lib/embedded-contract/workflows/prd-draft.manifest.json +15 -0
- package/lib/embedded-contract/workflows/proposal-review.manifest.json +15 -0
- package/lib/embedded-contract/workflows/research-synthesis.manifest.json +14 -0
- package/lib/embedded-contract/workflows/risk-review.manifest.json +15 -0
- package/lib/embedded-contract/workflows/structure-notes.manifest.json +14 -0
- package/lib/embedded-contract/workflows/transcript-process.manifest.json +14 -0
- package/lib/embedded-contract/workflows/triage.manifest.json +14 -0
- package/lib/env-config.mjs +60 -11
- package/lib/export-validate.mjs +34 -2
- package/lib/extensions/index.mjs +27 -0
- package/lib/extensions/loader.mjs +120 -0
- package/lib/extensions/manifest-schema.mjs +141 -0
- package/lib/extensions/manifests/anthropic.manifest.json +12 -0
- package/lib/extensions/manifests/atlassian-confluence.manifest.json +12 -0
- package/lib/extensions/manifests/atlassian-jira.manifest.json +53 -0
- package/lib/extensions/manifests/directory.manifest.json +12 -0
- package/lib/extensions/manifests/docling.manifest.json +37 -0
- package/lib/extensions/manifests/echo.manifest.json +8 -0
- package/lib/extensions/manifests/feedback.manifest.json +12 -0
- package/lib/extensions/manifests/github-copilot.manifest.json +12 -0
- package/lib/extensions/manifests/github.manifest.json +52 -0
- package/lib/extensions/manifests/linear.manifest.json +50 -0
- package/lib/extensions/manifests/local.manifest.json +12 -0
- package/lib/extensions/manifests/ollama.manifest.json +12 -0
- package/lib/extensions/manifests/openai.manifest.json +12 -0
- package/lib/extensions/manifests/openrouter-anthropic.manifest.json +12 -0
- package/lib/extensions/manifests/openrouter-deepseek.manifest.json +12 -0
- package/lib/extensions/manifests/openrouter-google.manifest.json +12 -0
- package/lib/extensions/manifests/openrouter-llama.manifest.json +12 -0
- package/lib/extensions/manifests/openrouter-qwen.manifest.json +12 -0
- package/lib/extensions/manifests/openrouter.manifest.json +12 -0
- package/lib/extensions/manifests/postgres.manifest.json +12 -0
- package/lib/extensions/manifests/salesforce.manifest.json +12 -0
- package/lib/extensions/manifests/slack.manifest.json +58 -0
- package/lib/extensions/manifests/whisper.manifest.json +36 -0
- package/lib/extensions/validate.mjs +175 -0
- package/lib/features.mjs +13 -9
- package/lib/flows/checkpoint.mjs +184 -0
- package/lib/flows/constants.mjs +27 -0
- package/lib/flows/define.mjs +146 -0
- package/lib/flows/engine.mjs +249 -0
- package/lib/flows/errors.mjs +19 -0
- package/lib/flows/index.mjs +27 -0
- package/lib/flows/joins.mjs +18 -0
- package/lib/flows/schema.mjs +90 -0
- package/lib/flows/state.mjs +31 -0
- package/lib/frameworks/loader.mjs +99 -0
- package/lib/frameworks/schema.mjs +157 -0
- package/lib/graph/build-from-corpus.mjs +67 -0
- package/lib/graph/build-from-embed.mjs +82 -0
- package/lib/graph/build-from-registry.mjs +164 -3
- package/lib/graph/cli.mjs +456 -12
- package/lib/graph/gap-queries.mjs +156 -0
- package/lib/graph/gaps.mjs +41 -0
- package/lib/graph/impacted.mjs +129 -0
- package/lib/graph/runtime-evidence.mjs +177 -0
- package/lib/graph/security-coverage.mjs +113 -0
- package/lib/graph/staleness.mjs +241 -10
- package/lib/graph/store.mjs +24 -7
- package/lib/graph/validate.mjs +161 -0
- package/lib/headhunt.mjs +9 -8
- package/lib/health-check.mjs +15 -7
- package/lib/hook-health.mjs +1 -1
- package/lib/hooks/agent-tracker.mjs +10 -4
- package/lib/hooks/edit-guard.mjs +3 -3
- package/lib/hooks/graph-impact-advisory.mjs +2 -2
- package/lib/hooks/guard-bash.mjs +41 -15
- package/lib/hooks/mcp-health-check.mjs +11 -4
- package/lib/hooks/model-fallback.mjs +50 -6
- package/lib/hooks/orchestration-dispatch-guard.mjs +14 -3
- package/lib/hooks/pre-compact.mjs +181 -173
- package/lib/hooks/rule-verifier.mjs +2 -1
- package/lib/hooks/session-reflect.mjs +2 -1
- package/lib/hooks/session-start.mjs +3 -3
- package/lib/host/readiness.mjs +109 -0
- package/lib/host-capabilities.mjs +13 -2
- package/lib/host-disposition.mjs +29 -8
- package/lib/identity.mjs +92 -0
- package/lib/ingest/degraded-extract.mjs +96 -0
- package/lib/ingest/docling-remote.mjs +2 -1
- package/lib/ingest/provider-extract.mjs +7 -19
- package/lib/ingest/sidecar-providers.mjs +196 -0
- package/lib/ingest-tooling.mjs +11 -5
- package/lib/init-unified.mjs +55 -38
- package/lib/init-update.mjs +2 -1
- package/lib/install/legacy-global-cleanup.mjs +25 -0
- package/lib/install/stage-project.mjs +41 -4
- package/lib/intake/daemon.mjs +99 -8
- package/lib/intake/git-queue.mjs +110 -38
- package/lib/intake/prepare.mjs +2 -0
- package/lib/intake/queue-registry.mjs +50 -0
- package/lib/intake/queue.mjs +133 -17
- package/lib/intake/session-prelude.mjs +57 -8
- package/lib/integrations/intake-integrations.mjs +61 -111
- package/lib/intent-classifier.mjs +43 -5
- package/lib/libreoffice-export.mjs +8 -8
- package/lib/logging/rotate.mjs +5 -4
- package/lib/mcp/broker.mjs +332 -17
- package/lib/mcp/denied-store.mjs +95 -0
- package/lib/mcp/destructive-approval.mjs +57 -0
- package/lib/mcp/destructive-gate.mjs +30 -0
- package/lib/mcp/dispatch-envelope.mjs +199 -0
- package/lib/mcp/memory-bridge.mjs +2 -1
- package/lib/mcp/server.mjs +185 -1268
- package/lib/mcp/tool-definitions-memory.mjs +376 -0
- package/lib/mcp/tool-definitions-project.mjs +271 -0
- package/lib/mcp/tool-definitions-skills.mjs +311 -0
- package/lib/mcp/tool-definitions-workflow.mjs +398 -0
- package/lib/mcp/tool-definitions.mjs +25 -0
- package/lib/mcp/tool-rate-limit.mjs +47 -0
- package/lib/mcp/tool-registry.mjs +107 -0
- package/lib/mcp/tool-safety.mjs +95 -0
- package/lib/mcp/tool-surface-parity.mjs +60 -0
- package/lib/mcp/tools/orchestration-delegation-next.tool.mjs +68 -0
- package/lib/mcp/tools/orchestration-run.mjs +197 -19
- package/lib/mcp/tools/orchestration-task-result.tool.mjs +77 -0
- package/lib/mcp/tools/project.mjs +25 -8
- package/lib/mcp/tools/provider-write.mjs +187 -0
- package/lib/mcp/tools/scope.mjs +0 -3
- package/lib/mcp/tools/skills.mjs +1 -1
- package/lib/mcp/tools/storage.mjs +2 -2
- package/lib/mcp/tools/web-search-governance.mjs +96 -0
- package/lib/mcp/tools/web-search.mjs +5 -76
- package/lib/mcp/transport/auth.mjs +238 -0
- package/lib/mcp/transport/http.mjs +136 -0
- package/lib/mcp/transport/mode.mjs +31 -0
- package/lib/mcp/transport/stdio.mjs +22 -0
- package/lib/mcp-catalog.json +4 -4
- package/lib/mcp-manager.mjs +34 -23
- package/lib/mcp-platform-config.mjs +53 -20
- package/lib/mode-capabilities.mjs +109 -0
- package/lib/model-router.mjs +42 -9
- package/lib/models/catalog.mjs +40 -1
- package/lib/net-guard.mjs +247 -0
- package/lib/observation-store.mjs +6 -2
- package/lib/ollama/provision-context.mjs +2 -1
- package/lib/opencode-config.mjs +22 -3
- package/lib/opencode-runtime-plugin.mjs +120 -2
- package/lib/oracle/actions.mjs +204 -10
- package/lib/oracle/cli.mjs +24 -3
- package/lib/oracle/daemon-entry.mjs +6 -0
- package/lib/oracle/dispatch.mjs +2 -1
- package/lib/oracle/execute.mjs +2 -2
- package/lib/oracle/gaps.mjs +3 -3
- package/lib/oracle/heartbeat.mjs +53 -0
- package/lib/oracle/read-model.mjs +69 -13
- package/lib/oracle/reconcile.mjs +3 -46
- package/lib/oracle/routing.mjs +37 -31
- package/lib/oracle/synthesize.mjs +1 -1
- package/lib/orchestration/classification.mjs +434 -0
- package/lib/orchestration/delegation-flow.mjs +132 -0
- package/lib/orchestration/flow-selection.mjs +418 -0
- package/lib/orchestration/gates.mjs +244 -0
- package/lib/orchestration/host-sampling.mjs +121 -0
- package/lib/orchestration/policy-constants.mjs +48 -0
- package/lib/orchestration/provider-outcome.mjs +197 -0
- package/lib/orchestration/readiness.mjs +114 -13
- package/lib/orchestration/run-store-postgres.mjs +32 -26
- package/lib/orchestration/run-store-sqlite.mjs +8 -14
- package/lib/orchestration/run-store.mjs +25 -12
- package/lib/orchestration/runtime.mjs +508 -62
- package/lib/orchestration/store.mjs +87 -12
- package/lib/orchestration/trace-store.mjs +125 -0
- package/lib/orchestration/web-capability.mjs +60 -0
- package/lib/orchestration/worker-runtime.mjs +162 -0
- package/lib/orchestration/worker.mjs +763 -80
- package/lib/orchestration-policy.mjs +67 -1111
- package/lib/output-quality.mjs +61 -2
- package/lib/packs/cli.mjs +144 -0
- package/lib/packs/core-pack.mjs +112 -0
- package/lib/packs/enablement.mjs +187 -0
- package/lib/packs/index.mjs +23 -0
- package/lib/packs/loader.mjs +176 -0
- package/lib/packs/manifest-schema.mjs +58 -0
- package/lib/packs/prompts.mjs +120 -0
- package/lib/packs/validate.mjs +208 -0
- package/lib/path-policy.mjs +56 -0
- package/lib/plugin-registry.mjs +4 -5
- package/lib/policy/audit-gate.mjs +42 -0
- package/lib/policy/consumption-budget.mjs +149 -0
- package/lib/policy/engine.mjs +81 -6
- package/lib/policy/role-authority.mjs +89 -0
- package/lib/prompt-composer.js +19 -3
- package/lib/providers/contract/adapters/confluence/governed-write.mjs +215 -0
- package/lib/providers/contract/adapters/confluence/manifest.json +17 -0
- package/lib/providers/contract/adapters/confluence/transport.mjs +135 -0
- package/lib/providers/contract/adapters/github/governed-write.mjs +121 -0
- package/lib/providers/contract/adapters/github/index.mjs +38 -3
- package/lib/providers/contract/adapters/jira/adf.mjs +151 -0
- package/lib/providers/contract/adapters/jira/createmeta.mjs +143 -0
- package/lib/providers/contract/adapters/jira/governed-write.mjs +182 -0
- package/lib/providers/contract/adapters/jira/manifest.json +17 -0
- package/lib/providers/contract/adapters/jira/transport.mjs +119 -0
- package/lib/providers/contract.mjs +207 -0
- package/lib/providers/credential-bootstrap.mjs +7 -4
- package/lib/providers/credential-sources.mjs +14 -2
- package/lib/providers/directory/index.mjs +261 -0
- package/lib/providers/feedback/index.mjs +392 -0
- package/lib/providers/filter-audit.mjs +68 -0
- package/lib/providers/filter-schema.mjs +54 -0
- package/lib/providers/github/index.mjs +31 -0
- package/lib/providers/instance-config.mjs +215 -0
- package/lib/providers/op-locate.mjs +96 -0
- package/lib/providers/op-run.mjs +64 -9
- package/lib/providers/registry.mjs +26 -3
- package/lib/providers/secret-audit-wiring.mjs +41 -18
- package/lib/providers/secret-resolver.mjs +263 -31
- package/lib/publish-template.mjs +6 -3
- package/lib/publish-tooling.mjs +4 -0
- package/lib/publish.mjs +32 -4
- package/lib/queue/pg-queue.mjs +395 -0
- package/lib/reflect.mjs +2 -1
- package/lib/registry/assemble.mjs +28 -2
- package/lib/registry/catalog.mjs +6 -0
- package/lib/registry/consolidation.mjs +8 -1
- package/lib/registry/custom-scaffold.mjs +200 -0
- package/lib/registry/custom-schema.mjs +137 -0
- package/lib/registry/loader.mjs +15 -4
- package/lib/registry/manifests/format-engines.default.json +15 -0
- package/lib/registry/manifests/surface-map.default.json +46 -0
- package/lib/registry/retired-paths.mjs +1 -0
- package/lib/registry/surface-map.mjs +100 -50
- package/lib/registry/validate.mjs +3 -3
- package/lib/render-visual-check.mjs +240 -0
- package/lib/resources/budget.mjs +40 -17
- package/lib/roles/flavor-bindings.mjs +36 -14
- package/lib/roles/gateway.mjs +15 -8
- package/lib/roots.mjs +107 -0
- package/lib/runtime/uv-bootstrap.mjs +32 -6
- package/lib/runtime/whisper-bootstrap.mjs +11 -3
- package/lib/runtime-env.mjs +5 -2
- package/lib/sandbox.mjs +1 -1
- package/lib/scheduler/index.mjs +8 -20
- package/lib/schema-infer.mjs +31 -2
- package/lib/scopes/lifecycle.mjs +29 -25
- package/lib/scopes/loader.mjs +49 -12
- package/lib/scopes/teams.mjs +1 -1
- package/lib/security/ingest-boundary.mjs +80 -0
- package/lib/security/recall-wrapper.mjs +99 -0
- package/lib/security/trust.mjs +132 -0
- package/lib/service-manager.mjs +93 -24
- package/lib/setup.mjs +41 -23
- package/lib/skills-apply.mjs +4 -2
- package/lib/specialists/postconditions.mjs +2 -2
- package/lib/state-root.mjs +147 -0
- package/lib/status.mjs +597 -6
- package/lib/storage/admin.mjs +84 -7
- package/lib/storage/backend-registry.mjs +73 -0
- package/lib/storage/backend.mjs +63 -9
- package/lib/storage/embeddings-openai.mjs +12 -2
- package/lib/storage/hybrid-query.mjs +11 -3
- package/lib/storage/retrieval-hardening.mjs +384 -0
- package/lib/storage/shared-memory.mjs +158 -0
- package/lib/storage/vector-client.mjs +69 -2
- package/lib/team/health.mjs +72 -0
- package/lib/telemetry/backends/local.mjs +9 -3
- package/lib/telemetry/client.mjs +3 -7
- package/lib/template-registry.mjs +10 -12
- package/lib/tenant/context.mjs +82 -0
- package/lib/tenant/isolation.mjs +129 -0
- package/lib/test-corpus-inventory.mjs +103 -2
- package/lib/uninstall/uninstall.mjs +78 -12
- package/lib/validator.mjs +4 -6
- package/lib/worker/entrypoint.mjs +2 -1
- package/lib/worker/run.mjs +2 -2
- package/lib/worker/trace.mjs +5 -11
- package/lib/workflow-state.mjs +52 -8
- package/lib/workflows/liveness.mjs +203 -0
- package/lib/workflows/loader.mjs +177 -0
- package/lib/workflows/manifest-schema.mjs +71 -0
- package/lib/workflows/surface-parity.mjs +118 -0
- package/lib/workflows/validate.mjs +127 -0
- package/lib/writes/control-plane.mjs +140 -0
- package/lib/writes/envelope.mjs +206 -0
- package/lib/writes/sent-log.mjs +86 -0
- package/lib/writes/write-intent.mjs +109 -0
- package/package.json +20 -7
- package/personas/construct.md +12 -3
- package/registry/agent-manifest.json +117 -0
- package/registry/capabilities.json +1987 -0
- package/rules/common/comments.md +1 -0
- package/schemas/brand-voice.schema.json +24 -0
- package/schemas/capability-registry.schema.json +72 -0
- package/schemas/certification-run.schema.json +130 -0
- package/schemas/demo-recording.schema.json +46 -0
- package/schemas/eval-dataset.schema.json +79 -0
- package/schemas/execution-capability-profile.schema.json +46 -0
- package/schemas/execution-policy.schema.json +114 -0
- package/schemas/improvement-proposal.schema.json +65 -0
- package/schemas/mcp-tool-output.schema.json +61 -0
- package/schemas/platform-capabilities.schema.json +83 -0
- package/schemas/project-config.schema.json +215 -0
- package/schemas/project-demo.schema.json +60 -0
- package/schemas/provider-behavior-matrix.schema.json +91 -0
- package/schemas/scope.schema.json +197 -0
- package/schemas/specialist-trace.schema.json +107 -0
- package/schemas/team.schema.json +99 -0
- package/schemas/unified-registry.schema.json +546 -0
- package/scripts/sync-specialists.mjs +336 -106
- package/skills/docs/adr-workflow.md +1 -1
- package/skills/docs/codebase-research-workflow.md +3 -3
- package/skills/docs/prd-workflow.md +5 -6
- package/skills/docs/runbook-workflow.md +2 -2
- package/skills/docs/user-research-workflow.md +3 -3
- package/skills/operating/fleet-health-routing.md +77 -0
- package/skills/roles/ai-engineer.md +1 -1
- package/skills/roles/architect.md +0 -1
- package/skills/roles/business-strategist.md +1 -1
- package/skills/roles/data-analyst.telemetry.md +1 -1
- package/skills/roles/data-engineer.md +1 -1
- package/skills/roles/data-engineer.pipeline.md +1 -1
- package/skills/roles/data-engineer.vector-retrieval.md +1 -2
- package/skills/roles/data-engineer.warehouse.md +1 -1
- package/skills/roles/designer.accessibility.md +1 -1
- package/skills/roles/designer.md +0 -1
- package/skills/roles/devil-advocate.md +1 -1
- package/skills/roles/docs-keeper.md +1 -1
- package/skills/roles/evaluator.md +1 -1
- package/skills/roles/explorer.md +1 -1
- package/skills/roles/platform-engineer.md +1 -1
- package/skills/roles/qa.ai-eval.md +1 -2
- package/skills/roles/qa.api-contract.md +0 -1
- package/skills/roles/qa.data-pipeline.md +0 -1
- package/skills/roles/qa.md +0 -1
- package/skills/roles/qa.web-ui.md +0 -1
- package/skills/roles/release-manager.md +1 -1
- package/skills/roles/researcher.md +0 -2
- package/skills/roles/reviewer.md +0 -3
- package/skills/roles/security.ai.md +1 -1
- package/skills/roles/security.legal-compliance.md +1 -1
- package/skills/roles/security.md +0 -1
- package/skills/roles/security.privacy.md +0 -1
- package/skills/roles/security.supply-chain.md +1 -1
- package/skills/roles/sre.md +1 -1
- package/skills/roles/test-automation.md +1 -1
- package/skills/roles/trace-reviewer.md +1 -1
- package/skills/roles/ux-researcher.md +1 -1
- package/specialists/artifact-manifest.json +36 -36
- package/specialists/org/contracts/accessibility-to-qa.json +11 -3
- package/specialists/org/contracts/any-to-business-strategist.json +19 -7
- package/specialists/org/contracts/any-to-debugger.json +7 -1
- package/specialists/org/contracts/any-to-designer.json +7 -1
- package/specialists/org/contracts/any-to-docs-keeper.json +18 -4
- package/specialists/org/contracts/any-to-explorer.json +13 -4
- package/specialists/org/contracts/any-to-sre-incident.json +6 -2
- package/specialists/org/contracts/any-to-trace-reviewer.json +16 -4
- package/specialists/org/contracts/architect-to-ai-engineer.json +6 -2
- package/specialists/org/contracts/architect-to-data-engineer.json +17 -5
- package/specialists/org/contracts/architect-to-devil-advocate.json +11 -3
- package/specialists/org/contracts/architect-to-engineer.json +20 -4
- package/specialists/org/contracts/architect-to-evaluator.json +15 -5
- package/specialists/org/contracts/architect-to-legal-compliance.json +15 -5
- package/specialists/org/contracts/architect-to-operations.json +17 -4
- package/specialists/org/contracts/architect-to-platform-engineer.json +20 -4
- package/specialists/org/contracts/construct-to-orchestrator.json +10 -2
- package/specialists/org/contracts/data-analyst-to-product-manager.json +11 -2
- package/specialists/org/contracts/engineer-to-qa.json +20 -4
- package/specialists/org/contracts/engineer-to-reviewer.json +29 -5
- package/specialists/org/contracts/explorer-to-engineer.json +11 -3
- package/specialists/org/contracts/legal-compliance-to-release-manager.json +12 -4
- package/specialists/org/contracts/operations-to-user.json +53 -0
- package/specialists/org/contracts/operations-triage-output.json +53 -0
- package/specialists/org/contracts/pm-requirements-candidates.json +53 -0
- package/specialists/org/contracts/product-manager-to-architect.json +30 -10
- package/specialists/org/contracts/product-manager-to-data-analyst.json +13 -3
- package/specialists/org/contracts/product-manager-to-ux-researcher.json +15 -5
- package/specialists/org/contracts/qa-to-release-manager.json +11 -3
- package/specialists/org/contracts/researcher-to-architect.json +10 -2
- package/specialists/org/contracts/researcher-to-product-manager.json +16 -5
- package/specialists/org/contracts/reviewer-to-security.json +17 -3
- package/specialists/org/contracts/test-automation-to-engineer.json +11 -3
- package/specialists/org/contracts/trace-reviewer-to-sre.json +12 -4
- package/specialists/org/contracts/user-to-construct.json +11 -4
- package/specialists/org/frameworks/cx-architect-constraint-option-failure.md +66 -0
- package/specialists/org/frameworks/cx-engineer-feasibility-blast-radius.md +66 -0
- package/specialists/org/frameworks/cx-ops-dependency-sequencing.md +74 -0
- package/specialists/org/frameworks/cx-pm-value-tradeoff.md +66 -0
- package/specialists/org/frameworks/cx-qa-risk-based-coverage.md +69 -0
- package/specialists/org/groups/engineering-group.json +2 -6
- package/specialists/org/groups/governance-group.json +2 -3
- package/specialists/org/groups/operations-group.json +5 -8
- package/specialists/org/groups/product-group.json +4 -8
- package/specialists/org/groups/quality-group.json +3 -7
- package/specialists/org/groups/strategy-group.json +6 -9
- package/specialists/org/models.json.example +8 -0
- package/specialists/org/scopes/creative.json +6 -1
- package/specialists/org/scopes/operations.json +7 -1
- package/specialists/org/scopes/research.json +6 -1
- package/specialists/org/scopes/rnd.json +7 -1
- package/specialists/org/specialists/cx-architect.json +27 -8
- package/specialists/org/specialists/cx-designer.json +22 -8
- package/specialists/org/specialists/cx-engineer.json +71 -7
- package/specialists/org/specialists/cx-operations.json +89 -15
- package/specialists/org/specialists/cx-orchestrator.json +16 -4
- package/specialists/org/specialists/cx-product-manager.json +28 -9
- package/specialists/org/specialists/cx-qa.json +16 -6
- package/specialists/org/specialists/cx-researcher.json +41 -7
- package/specialists/org/specialists/cx-reviewer.json +61 -11
- package/specialists/org/specialists/cx-security.json +30 -10
- package/specialists/org/teams/design-team.json +3 -4
- package/specialists/org/teams/engineering-team.json +3 -10
- package/specialists/org/teams/governance-team.json +3 -5
- package/specialists/org/teams/operations-team.json +6 -12
- package/specialists/org/teams/product-management-team.json +2 -3
- package/specialists/org/teams/quality-team.json +4 -12
- package/specialists/org/teams/research-team.json +3 -3
- package/specialists/org/teams/strategy-team.json +7 -14
- package/specialists/prompts/cx-architect.md +20 -1
- package/specialists/prompts/cx-data-analyst.md +1 -1
- package/specialists/prompts/cx-designer.md +12 -4
- package/specialists/prompts/cx-engineer.md +15 -1
- package/specialists/prompts/cx-operations.md +14 -2
- package/specialists/prompts/cx-orchestrator.md +9 -5
- package/specialists/prompts/cx-product-manager.md +5 -1
- package/specialists/prompts/cx-qa.md +6 -2
- package/specialists/prompts/cx-researcher.md +27 -31
- package/specialists/prompts/cx-reviewer.md +19 -1
- package/specialists/prompts/cx-security.md +5 -1
- package/templates/distribution/construct-brand.typ +123 -59
- package/templates/distribution/construct-decision.typ +6 -3
- package/templates/distribution/construct-pdf.typ +11 -4
- package/templates/distribution/construct-prd.typ +6 -3
- package/templates/distribution/construct-research.typ +7 -4
- package/vendor/pandoc-ext/README.md +3 -0
- package/vendor/pandoc-ext/diagram.lua +687 -0
- package/lib/providers/contract/adapters/git/index.mjs +0 -115
- package/lib/providers/contract/adapters/slack/index.mjs +0 -175
- package/specialists/org/contracts/business-strategist-to-product-manager.json +0 -39
- package/specialists/org/contracts/construct-to-rd-lead.json +0 -53
- package/specialists/org/contracts/data-engineer-to-platform-engineer.json +0 -36
- package/specialists/org/contracts/designer-to-accessibility.json +0 -36
- package/specialists/org/contracts/platform-engineer-to-engineer.json +0 -31
- package/specialists/org/contracts/qa-to-test-automation.json +0 -42
- package/specialists/org/contracts/rd-lead-to-architect.json +0 -38
- package/specialists/org/contracts/sre-to-release-manager.json +0 -36
- package/specialists/org/specialists/cx-accessibility.json +0 -69
- package/specialists/org/specialists/cx-ai-engineer.json +0 -75
- package/specialists/org/specialists/cx-business-strategist.json +0 -72
- package/specialists/org/specialists/cx-data-engineer.json +0 -71
- package/specialists/org/specialists/cx-devil-advocate.json +0 -71
- package/specialists/org/specialists/cx-docs-keeper.json +0 -82
- package/specialists/org/specialists/cx-evaluator.json +0 -69
- package/specialists/org/specialists/cx-explorer.json +0 -69
- package/specialists/org/specialists/cx-legal-compliance.json +0 -74
- package/specialists/org/specialists/cx-oracle.json +0 -46
- package/specialists/org/specialists/cx-platform-engineer.json +0 -80
- package/specialists/org/specialists/cx-rd-lead.json +0 -73
- package/specialists/org/specialists/cx-release-manager.json +0 -77
- package/specialists/org/specialists/cx-sre.json +0 -94
- package/specialists/org/specialists/cx-test-automation.json +0 -69
- package/specialists/org/specialists/cx-trace-reviewer.json +0 -69
- package/specialists/org/specialists/cx-ux-researcher.json +0 -68
- package/specialists/org/teams/accessibility-team.json +0 -39
- package/specialists/org/teams/ux-research-team.json +0 -39
- package/specialists/prompts/cx-accessibility.md +0 -55
- package/specialists/prompts/cx-ai-engineer.md +0 -124
- package/specialists/prompts/cx-business-strategist.md +0 -58
- package/specialists/prompts/cx-data-engineer.md +0 -55
- package/specialists/prompts/cx-devil-advocate.md +0 -59
- package/specialists/prompts/cx-docs-keeper.md +0 -164
- package/specialists/prompts/cx-evaluator.md +0 -49
- package/specialists/prompts/cx-explorer.md +0 -71
- package/specialists/prompts/cx-legal-compliance.md +0 -58
- package/specialists/prompts/cx-oracle.md +0 -98
- package/specialists/prompts/cx-platform-engineer.md +0 -97
- package/specialists/prompts/cx-rd-lead.md +0 -59
- package/specialists/prompts/cx-release-manager.md +0 -54
- package/specialists/prompts/cx-sre.md +0 -111
- package/specialists/prompts/cx-test-automation.md +0 -55
- package/specialists/prompts/cx-trace-reviewer.md +0 -101
- package/specialists/prompts/cx-ux-researcher.md +0 -53
|
@@ -14,11 +14,16 @@
|
|
|
14
14
|
"docs/prfaq-workflow",
|
|
15
15
|
"docs/backlog-proposal-workflow",
|
|
16
16
|
"docs/product-intelligence-review",
|
|
17
|
-
"docs/strategy-workflow"
|
|
17
|
+
"docs/strategy-workflow",
|
|
18
|
+
"strategy/competitive-landscape",
|
|
19
|
+
"strategy/market-research-methods",
|
|
20
|
+
"strategy/pricing-positioning",
|
|
21
|
+
"strategy/narrative-arc"
|
|
18
22
|
],
|
|
19
23
|
"events": [
|
|
20
24
|
"backlog.stale",
|
|
21
|
-
"prd.requested"
|
|
25
|
+
"prd.requested",
|
|
26
|
+
"strategy.required"
|
|
22
27
|
],
|
|
23
28
|
"fence": {
|
|
24
29
|
"allowedPaths": [
|
|
@@ -27,13 +32,17 @@
|
|
|
27
32
|
"docs/meta-prd/**",
|
|
28
33
|
"docs/prfaq/**",
|
|
29
34
|
"docs/one-pager/**",
|
|
30
|
-
".cx/knowledge/**"
|
|
35
|
+
".cx/knowledge/**",
|
|
36
|
+
"docs/strategy/**",
|
|
37
|
+
".cx/knowledge/decisions/strategy/**"
|
|
31
38
|
],
|
|
32
39
|
"allowedBdLabels": [
|
|
33
40
|
"product",
|
|
34
41
|
"prd",
|
|
35
42
|
"backlog",
|
|
36
|
-
"feature"
|
|
43
|
+
"feature",
|
|
44
|
+
"strategy",
|
|
45
|
+
"business"
|
|
37
46
|
],
|
|
38
47
|
"allowedCommands": [
|
|
39
48
|
"bd create",
|
|
@@ -57,7 +66,8 @@
|
|
|
57
66
|
"backlog-proposal",
|
|
58
67
|
"prd-platform",
|
|
59
68
|
"prd-business",
|
|
60
|
-
"customer-profile"
|
|
69
|
+
"customer-profile",
|
|
70
|
+
"strategy"
|
|
61
71
|
],
|
|
62
72
|
"watchConditions": [
|
|
63
73
|
{
|
|
@@ -72,22 +82,31 @@
|
|
|
72
82
|
"requirements coverage",
|
|
73
83
|
"delivery risk",
|
|
74
84
|
"user-facing gaps",
|
|
75
|
-
"scope clarity"
|
|
85
|
+
"scope clarity",
|
|
86
|
+
"market positioning",
|
|
87
|
+
"competitive shifts",
|
|
88
|
+
"timing relevance",
|
|
89
|
+
"strategic coherence"
|
|
76
90
|
],
|
|
77
91
|
"riskSignals": [
|
|
78
92
|
"untraced requirements",
|
|
79
93
|
"scope creep",
|
|
80
94
|
"blocked dependencies",
|
|
81
|
-
"missing acceptance criteria"
|
|
95
|
+
"missing acceptance criteria",
|
|
96
|
+
"tactics dressed as strategy",
|
|
97
|
+
"ignored competitive moves",
|
|
98
|
+
"undifferentiated positioning",
|
|
99
|
+
"missing market timing"
|
|
82
100
|
],
|
|
83
101
|
"artifactBias": [
|
|
84
102
|
"prds",
|
|
85
103
|
"intake",
|
|
86
|
-
"memos"
|
|
104
|
+
"memos",
|
|
105
|
+
"notes"
|
|
87
106
|
]
|
|
88
107
|
},
|
|
89
108
|
"canEdit": false,
|
|
90
|
-
"claudeTools": "Read,Grep,Glob,LS,list_skills,get_skill,search_skills,get_template,list_templates,memory_search,memory_add_observations",
|
|
109
|
+
"claudeTools": "Read,Grep,Glob,LS,WebSearch,WebFetch,list_skills,get_skill,search_skills,get_template,list_templates,memory_search,memory_add_observations",
|
|
91
110
|
"internal": true,
|
|
92
111
|
"killSwitchEnv": "CONSTRUCT_ROLE_PRODUCT_MANAGER",
|
|
93
112
|
"handoffCandidates": [
|
|
@@ -18,13 +18,18 @@
|
|
|
18
18
|
"fence": {
|
|
19
19
|
"allowedPaths": [
|
|
20
20
|
"docs/qa/**",
|
|
21
|
-
"docs/test-plans/**"
|
|
21
|
+
"docs/test-plans/**",
|
|
22
|
+
"tests/**",
|
|
23
|
+
"docs/test-automation/**"
|
|
22
24
|
],
|
|
23
25
|
"allowedBdLabels": [
|
|
24
26
|
"bug",
|
|
25
27
|
"qa",
|
|
26
28
|
"test",
|
|
27
|
-
"flake"
|
|
29
|
+
"flake",
|
|
30
|
+
"test-automation",
|
|
31
|
+
"ci",
|
|
32
|
+
"test-infra"
|
|
28
33
|
],
|
|
29
34
|
"allowedCommands": [
|
|
30
35
|
"bd create",
|
|
@@ -52,13 +57,19 @@
|
|
|
52
57
|
"test effectiveness",
|
|
53
58
|
"behavioral coverage",
|
|
54
59
|
"regression risk",
|
|
55
|
-
"acceptance criteria traceability"
|
|
60
|
+
"acceptance criteria traceability",
|
|
61
|
+
"test determinism",
|
|
62
|
+
"flakiness trends",
|
|
63
|
+
"automation ROI"
|
|
56
64
|
],
|
|
57
65
|
"riskSignals": [
|
|
58
66
|
"tests that never fail",
|
|
59
67
|
"coverage without behavioral assertions",
|
|
60
68
|
"untested acceptance criteria",
|
|
61
|
-
"flaky tests ignored"
|
|
69
|
+
"flaky tests ignored",
|
|
70
|
+
"arbitrary sleeps",
|
|
71
|
+
"tests that never caught a bug",
|
|
72
|
+
"intermittent failures dismissed"
|
|
62
73
|
],
|
|
63
74
|
"artifactBias": [
|
|
64
75
|
"notes"
|
|
@@ -70,8 +81,7 @@
|
|
|
70
81
|
"killSwitchEnv": "CONSTRUCT_ROLE_QA",
|
|
71
82
|
"handoffCandidates": [
|
|
72
83
|
"engineer",
|
|
73
|
-
"debugger"
|
|
74
|
-
"test-automation"
|
|
84
|
+
"debugger"
|
|
75
85
|
],
|
|
76
86
|
"team": "quality-team",
|
|
77
87
|
"teamId": "quality-team",
|
|
@@ -8,7 +8,15 @@
|
|
|
8
8
|
"skills": [
|
|
9
9
|
"docs/research-workflow",
|
|
10
10
|
"devops/dependency-management",
|
|
11
|
-
"docs/transcript-synthesis"
|
|
11
|
+
"docs/transcript-synthesis",
|
|
12
|
+
"docs/codebase-research-workflow",
|
|
13
|
+
"exploration/repo-map",
|
|
14
|
+
"exploration/unknown-codebase-onboarding",
|
|
15
|
+
"exploration/tracer-bullet-method",
|
|
16
|
+
"exploration/dependency-graph-reading",
|
|
17
|
+
"docs/user-research-workflow",
|
|
18
|
+
"docs/evidence-ingest-workflow",
|
|
19
|
+
"strategy/jobs-to-be-done"
|
|
12
20
|
],
|
|
13
21
|
"events": [
|
|
14
22
|
"research.requested",
|
|
@@ -20,12 +28,20 @@
|
|
|
20
28
|
"docs/research/**",
|
|
21
29
|
".cx/research/**",
|
|
22
30
|
"docs/evidence-briefs/**",
|
|
23
|
-
"docs/signal-briefs/**"
|
|
31
|
+
"docs/signal-briefs/**",
|
|
32
|
+
"docs/explorations/**",
|
|
33
|
+
".cx/explorations/**",
|
|
34
|
+
"docs/ux-research/**",
|
|
35
|
+
".cx/ux-research/**"
|
|
24
36
|
],
|
|
25
37
|
"allowedBdLabels": [
|
|
26
38
|
"research",
|
|
27
39
|
"evidence",
|
|
28
|
-
"investigation"
|
|
40
|
+
"investigation",
|
|
41
|
+
"exploration",
|
|
42
|
+
"spike",
|
|
43
|
+
"ux-research",
|
|
44
|
+
"user-research"
|
|
29
45
|
],
|
|
30
46
|
"allowedCommands": [
|
|
31
47
|
"bd create",
|
|
@@ -54,13 +70,29 @@
|
|
|
54
70
|
"source freshness",
|
|
55
71
|
"citation coverage",
|
|
56
72
|
"dependency versions",
|
|
57
|
-
"conflicting evidence"
|
|
73
|
+
"conflicting evidence",
|
|
74
|
+
"codebase understanding",
|
|
75
|
+
"pattern discovery",
|
|
76
|
+
"dependency mapping",
|
|
77
|
+
"drift detection",
|
|
78
|
+
"user evidence freshness",
|
|
79
|
+
"friction points",
|
|
80
|
+
"persona coverage",
|
|
81
|
+
"research gaps"
|
|
58
82
|
],
|
|
59
83
|
"riskSignals": [
|
|
60
84
|
"undated sources",
|
|
61
85
|
"unverified claims",
|
|
62
86
|
"outdated dependencies",
|
|
63
|
-
"single-source conclusions"
|
|
87
|
+
"single-source conclusions",
|
|
88
|
+
"assumptions without verification",
|
|
89
|
+
"incomplete investigation",
|
|
90
|
+
"outdated mental models",
|
|
91
|
+
"undiscovered code paths",
|
|
92
|
+
"stale user data",
|
|
93
|
+
"untested assumptions about users",
|
|
94
|
+
"missing friction analysis",
|
|
95
|
+
"internal-only validation"
|
|
64
96
|
],
|
|
65
97
|
"artifactBias": [
|
|
66
98
|
"notes",
|
|
@@ -68,13 +100,15 @@
|
|
|
68
100
|
]
|
|
69
101
|
},
|
|
70
102
|
"canEdit": false,
|
|
71
|
-
"claudeTools": "Read,Grep,Glob,LS,WebSearch,WebFetch,list_skills,get_skill,search_skills,get_template,list_templates,memory_search,memory_add_observations",
|
|
103
|
+
"claudeTools": "Read,Grep,Glob,LS,Bash,WebSearch,WebFetch,list_skills,get_skill,search_skills,get_template,list_templates,memory_search,memory_add_observations",
|
|
104
|
+
"liveWebAccess": true,
|
|
72
105
|
"internal": true,
|
|
73
106
|
"killSwitchEnv": "CONSTRUCT_ROLE_RESEARCHER",
|
|
74
107
|
"handoffCandidates": [
|
|
75
108
|
"product-manager",
|
|
76
109
|
"architect",
|
|
77
|
-
"engineer"
|
|
110
|
+
"engineer",
|
|
111
|
+
"designer"
|
|
78
112
|
],
|
|
79
113
|
"team": "research-team",
|
|
80
114
|
"teamId": "research-team",
|
|
@@ -8,20 +8,38 @@
|
|
|
8
8
|
"skills": [
|
|
9
9
|
"quality-gates/verify-quality",
|
|
10
10
|
"quality-gates/review-work",
|
|
11
|
-
"quality-gates/verify-module"
|
|
11
|
+
"quality-gates/verify-module",
|
|
12
|
+
"quality-gates/premortem",
|
|
13
|
+
"ai/prompt-and-eval",
|
|
14
|
+
"ai/prompt-optimizer",
|
|
15
|
+
"ai/trace-triage"
|
|
12
16
|
],
|
|
13
17
|
"events": [
|
|
14
18
|
"pr.opened",
|
|
15
|
-
"pr.ready-for-review"
|
|
19
|
+
"pr.ready-for-review",
|
|
20
|
+
"eval.regression",
|
|
21
|
+
"trace.anomaly"
|
|
16
22
|
],
|
|
17
23
|
"fence": {
|
|
18
24
|
"allowedPaths": [
|
|
19
|
-
"docs/reviews/**"
|
|
25
|
+
"docs/reviews/**",
|
|
26
|
+
"docs/critiques/**",
|
|
27
|
+
"docs/evals/**",
|
|
28
|
+
".cx/evals/**",
|
|
29
|
+
"tests/evals/**",
|
|
30
|
+
"docs/traces/**",
|
|
31
|
+
".cx/traces/**"
|
|
20
32
|
],
|
|
21
33
|
"allowedBdLabels": [
|
|
22
34
|
"review",
|
|
23
35
|
"code-review",
|
|
24
|
-
"second-look"
|
|
36
|
+
"second-look",
|
|
37
|
+
"critique",
|
|
38
|
+
"devil-advocate",
|
|
39
|
+
"eval",
|
|
40
|
+
"regression-eval",
|
|
41
|
+
"trace",
|
|
42
|
+
"observability"
|
|
25
43
|
],
|
|
26
44
|
"allowedCommands": [
|
|
27
45
|
"bd create",
|
|
@@ -36,7 +54,12 @@
|
|
|
36
54
|
]
|
|
37
55
|
},
|
|
38
56
|
"docArtifacts": [],
|
|
39
|
-
"watchConditions": [
|
|
57
|
+
"watchConditions": [
|
|
58
|
+
{
|
|
59
|
+
"watcher": "architecture-without-metric",
|
|
60
|
+
"reason": "architecture change without stated success metric"
|
|
61
|
+
}
|
|
62
|
+
],
|
|
40
63
|
"permissions": {},
|
|
41
64
|
"promptFile": "specialists/prompts/cx-reviewer.md",
|
|
42
65
|
"embedOrientation": {
|
|
@@ -44,26 +67,53 @@
|
|
|
44
67
|
"edge case coverage",
|
|
45
68
|
"error handling completeness",
|
|
46
69
|
"test fidelity",
|
|
47
|
-
"code quality trends"
|
|
70
|
+
"code quality trends",
|
|
71
|
+
"plan survivability",
|
|
72
|
+
"hidden failure modes",
|
|
73
|
+
"scope stability",
|
|
74
|
+
"assumption stress-testing",
|
|
75
|
+
"eval coverage",
|
|
76
|
+
"regression detection",
|
|
77
|
+
"baseline drift",
|
|
78
|
+
"failure case representation",
|
|
79
|
+
"agent performance trends",
|
|
80
|
+
"variance detection",
|
|
81
|
+
"degradation signals",
|
|
82
|
+
"fleet health"
|
|
48
83
|
],
|
|
49
84
|
"riskSignals": [
|
|
50
85
|
"happy-path-only reviews",
|
|
51
86
|
"excessive mocking",
|
|
52
87
|
"missing error handlers",
|
|
53
|
-
"review without reproduction"
|
|
88
|
+
"review without reproduction",
|
|
89
|
+
"plans too elegant to survive contact",
|
|
90
|
+
"unlikely failures unaddressed",
|
|
91
|
+
"scope drift",
|
|
92
|
+
"unanimous agreement without challenge",
|
|
93
|
+
"eval sets matching known outputs",
|
|
94
|
+
"cherry-picked baselines",
|
|
95
|
+
"missing failure cases",
|
|
96
|
+
"promotion on too few traces",
|
|
97
|
+
"stable median hiding variance",
|
|
98
|
+
"silent degradation",
|
|
99
|
+
"unreviewed failure clusters"
|
|
54
100
|
],
|
|
55
101
|
"artifactBias": [
|
|
56
|
-
"notes"
|
|
102
|
+
"notes",
|
|
103
|
+
"memos",
|
|
104
|
+
"adrs"
|
|
57
105
|
]
|
|
58
106
|
},
|
|
59
|
-
"canEdit":
|
|
60
|
-
"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",
|
|
107
|
+
"canEdit": false,
|
|
108
|
+
"claudeTools": "Read,Grep,Glob,LS,Bash,Write,list_skills,get_skill,search_skills,memory_search,memory_add_observations,cx_trace,cx_score,get_template,list_templates",
|
|
61
109
|
"internal": true,
|
|
62
110
|
"killSwitchEnv": "CONSTRUCT_ROLE_REVIEWER",
|
|
63
111
|
"handoffCandidates": [
|
|
64
112
|
"engineer",
|
|
65
113
|
"architect",
|
|
66
|
-
"security"
|
|
114
|
+
"security",
|
|
115
|
+
"product-manager",
|
|
116
|
+
"operations"
|
|
67
117
|
],
|
|
68
118
|
"team": "quality-team",
|
|
69
119
|
"teamId": "quality-team",
|
|
@@ -13,22 +13,34 @@
|
|
|
13
13
|
"security/vuln-research",
|
|
14
14
|
"security/threat-intel",
|
|
15
15
|
"quality-gates/verify-security",
|
|
16
|
-
"architecture/security-arch"
|
|
16
|
+
"architecture/security-arch",
|
|
17
|
+
"compliance/license-audit",
|
|
18
|
+
"compliance/data-privacy",
|
|
19
|
+
"compliance/ai-disclosure",
|
|
20
|
+
"compliance/regulatory-review"
|
|
17
21
|
],
|
|
18
22
|
"events": [
|
|
19
23
|
"dep.cve",
|
|
20
24
|
"secrets.detected",
|
|
21
|
-
"config.protection.violation"
|
|
25
|
+
"config.protection.violation",
|
|
26
|
+
"dep.license",
|
|
27
|
+
"privacy-policy.review"
|
|
22
28
|
],
|
|
23
29
|
"fence": {
|
|
24
30
|
"allowedPaths": [
|
|
25
31
|
"docs/security/**",
|
|
26
|
-
"docs/threat-models/**"
|
|
32
|
+
"docs/threat-models/**",
|
|
33
|
+
"docs/legal/**",
|
|
34
|
+
"docs/compliance/**",
|
|
35
|
+
".cx/knowledge/**"
|
|
27
36
|
],
|
|
28
37
|
"allowedBdLabels": [
|
|
29
38
|
"security",
|
|
30
39
|
"vulnerability",
|
|
31
|
-
"audit"
|
|
40
|
+
"audit",
|
|
41
|
+
"legal",
|
|
42
|
+
"compliance",
|
|
43
|
+
"privacy"
|
|
32
44
|
],
|
|
33
45
|
"allowedCommands": [
|
|
34
46
|
"bd create",
|
|
@@ -59,21 +71,29 @@
|
|
|
59
71
|
"attack surface changes",
|
|
60
72
|
"dependency vulnerabilities",
|
|
61
73
|
"auth boundary integrity",
|
|
62
|
-
"secret exposure"
|
|
74
|
+
"secret exposure",
|
|
75
|
+
"license compliance",
|
|
76
|
+
"data privacy posture",
|
|
77
|
+
"AI disclosure obligations",
|
|
78
|
+
"regulatory changes"
|
|
63
79
|
],
|
|
64
80
|
"riskSignals": [
|
|
65
81
|
"new unauthed endpoints",
|
|
66
82
|
"unaudited dependencies",
|
|
67
83
|
"implicit trust boundaries",
|
|
68
|
-
"hardcoded credentials"
|
|
84
|
+
"hardcoded credentials",
|
|
85
|
+
"unreviewed dependency licenses",
|
|
86
|
+
"undisclosed AI processing",
|
|
87
|
+
"missing data basis documentation",
|
|
88
|
+
"new jurisdiction exposure"
|
|
69
89
|
],
|
|
70
90
|
"artifactBias": [
|
|
71
91
|
"adrs",
|
|
72
92
|
"notes"
|
|
73
93
|
]
|
|
74
94
|
},
|
|
75
|
-
"canEdit":
|
|
76
|
-
"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",
|
|
95
|
+
"canEdit": false,
|
|
96
|
+
"claudeTools": "Read,Grep,Glob,LS,Bash,WebSearch,WebFetch,list_skills,get_skill,search_skills,memory_search,memory_add_observations,cx_trace,cx_score,get_template,list_templates",
|
|
77
97
|
"internal": true,
|
|
78
98
|
"severityImmediate": [
|
|
79
99
|
"dep.cve",
|
|
@@ -82,8 +102,8 @@
|
|
|
82
102
|
"killSwitchEnv": "CONSTRUCT_ROLE_SECURITY",
|
|
83
103
|
"handoffCandidates": [
|
|
84
104
|
"engineer",
|
|
85
|
-
"
|
|
86
|
-
"
|
|
105
|
+
"reviewer",
|
|
106
|
+
"product-manager"
|
|
87
107
|
],
|
|
88
108
|
"team": "governance-team",
|
|
89
109
|
"teamId": "governance-team",
|
|
@@ -9,8 +9,7 @@
|
|
|
9
9
|
],
|
|
10
10
|
"collaborators": [
|
|
11
11
|
"product-management-team",
|
|
12
|
-
"
|
|
13
|
-
"accessibility-team"
|
|
12
|
+
"research-team"
|
|
14
13
|
],
|
|
15
14
|
"specialists": [
|
|
16
15
|
"cx-designer"
|
|
@@ -28,10 +27,10 @@
|
|
|
28
27
|
],
|
|
29
28
|
"escalationPath": [
|
|
30
29
|
"product-manager",
|
|
31
|
-
"
|
|
30
|
+
"architect",
|
|
32
31
|
"orchestrator"
|
|
33
32
|
],
|
|
34
|
-
"charter": "Own interaction and
|
|
33
|
+
"charter": "Own interaction, visual, and accessibility design decisions within product scope (accessibility-team merged in: cx-accessibility folds into cx-designer, construct-rf26.11). Partners with Product Management on acceptance criteria.",
|
|
35
34
|
"contact": {
|
|
36
35
|
"slack": "#product",
|
|
37
36
|
"email": "product@example.com",
|
|
@@ -7,18 +7,12 @@
|
|
|
7
7
|
"roles": [
|
|
8
8
|
"architect",
|
|
9
9
|
"engineer",
|
|
10
|
-
"debugger"
|
|
11
|
-
"ai-engineer",
|
|
12
|
-
"data-engineer",
|
|
13
|
-
"platform-engineer"
|
|
10
|
+
"debugger"
|
|
14
11
|
],
|
|
15
12
|
"specialists": [
|
|
16
|
-
"cx-ai-engineer",
|
|
17
13
|
"cx-architect",
|
|
18
14
|
"cx-engineer",
|
|
19
|
-
"cx-debugger"
|
|
20
|
-
"cx-platform-engineer",
|
|
21
|
-
"cx-data-engineer"
|
|
15
|
+
"cx-debugger"
|
|
22
16
|
],
|
|
23
17
|
"collaborators": [],
|
|
24
18
|
"decisionRights": [
|
|
@@ -34,10 +28,9 @@
|
|
|
34
28
|
],
|
|
35
29
|
"escalationPath": [
|
|
36
30
|
"architect",
|
|
37
|
-
"rd-lead",
|
|
38
31
|
"orchestrator"
|
|
39
32
|
],
|
|
40
|
-
"charter": "Design, build, and harden the system. Owns architecture decisions, technology choices, code quality, debugging
|
|
33
|
+
"charter": "Design, build, and harden the system. Owns architecture decisions, technology choices, code quality, and debugging. AI integration, data pipelines, and platform/infra tooling are now cx-engineer skill bundles rather than separate specialists (ai-engineer, data-engineer, platform-engineer folded in; construct-rf26.11), and cx-architect absorbs the pre-architecture framing-gate function rd-lead previously owned. Does not own product framing, user research direction, or release timing.",
|
|
41
34
|
"contact": {
|
|
42
35
|
"slack": "#engineering",
|
|
43
36
|
"email": "engineering@example.com",
|
|
@@ -5,12 +5,10 @@
|
|
|
5
5
|
"name": "Governance",
|
|
6
6
|
"owner": "security",
|
|
7
7
|
"roles": [
|
|
8
|
-
"security"
|
|
9
|
-
"legal-compliance"
|
|
8
|
+
"security"
|
|
10
9
|
],
|
|
11
10
|
"specialists": [
|
|
12
|
-
"cx-security"
|
|
13
|
-
"cx-legal-compliance"
|
|
11
|
+
"cx-security"
|
|
14
12
|
],
|
|
15
13
|
"collaborators": [],
|
|
16
14
|
"decisionRights": [
|
|
@@ -29,7 +27,7 @@
|
|
|
29
27
|
"architect",
|
|
30
28
|
"orchestrator"
|
|
31
29
|
],
|
|
32
|
-
"charter": "Keep the system safe to operate and inside its legal envelope. Owns security review, compliance verification, risk assessment, and the audit trail. Does not own implementation or product decisions but can block deployments that violate policy. Escalates policy conflicts to orchestrator.",
|
|
30
|
+
"charter": "Keep the system safe to operate and inside its legal envelope. Owns security review, compliance verification (legal-compliance folded in; construct-rf26.11), risk assessment, and the audit trail. Does not own implementation or product decisions but can block deployments that violate policy. Escalates policy conflicts to orchestrator.",
|
|
33
31
|
"contact": {
|
|
34
32
|
"slack": "#governance",
|
|
35
33
|
"email": "governance@example.com",
|
|
@@ -3,18 +3,12 @@
|
|
|
3
3
|
"kind": "squad",
|
|
4
4
|
"groupId": "operations-group",
|
|
5
5
|
"name": "Operations",
|
|
6
|
-
"owner": "
|
|
6
|
+
"owner": "operations",
|
|
7
7
|
"roles": [
|
|
8
|
-
"
|
|
9
|
-
"sre",
|
|
10
|
-
"operations",
|
|
11
|
-
"docs-keeper"
|
|
8
|
+
"operations"
|
|
12
9
|
],
|
|
13
10
|
"specialists": [
|
|
14
|
-
"cx-operations"
|
|
15
|
-
"cx-sre",
|
|
16
|
-
"cx-release-manager",
|
|
17
|
-
"cx-docs-keeper"
|
|
11
|
+
"cx-operations"
|
|
18
12
|
],
|
|
19
13
|
"collaborators": [],
|
|
20
14
|
"decisionRights": [
|
|
@@ -30,15 +24,15 @@
|
|
|
30
24
|
"security-policy"
|
|
31
25
|
],
|
|
32
26
|
"escalationPath": [
|
|
33
|
-
"
|
|
27
|
+
"operations",
|
|
34
28
|
"architect",
|
|
35
29
|
"orchestrator"
|
|
36
30
|
],
|
|
37
|
-
"charter": "Keep the system running and shipping. Owns release management, SRE response, ops runbooks, documentation upkeep, and deployment execution. Does not own architecture or product decisions. Escalates reliability vs. change-rate conflicts to architecture/leadership.",
|
|
31
|
+
"charter": "Keep the system running and shipping. Owns release management, SRE response, ops runbooks, documentation upkeep, and deployment execution (release-manager, sre, docs-keeper folded in; construct-rf26.11). Does not own architecture or product decisions. Escalates reliability vs. change-rate conflicts to architecture/leadership.",
|
|
38
32
|
"contact": {
|
|
39
33
|
"slack": "#operations",
|
|
40
34
|
"email": "operations@example.com",
|
|
41
|
-
"owner": "
|
|
35
|
+
"owner": "operations"
|
|
42
36
|
},
|
|
43
37
|
"evidence": [
|
|
44
38
|
"AGENTS.md (rnd profile departments section)"
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
"product-manager.growth"
|
|
14
14
|
],
|
|
15
15
|
"collaborators": [
|
|
16
|
-
"ux-research-team",
|
|
17
16
|
"design-team",
|
|
18
17
|
"research-team"
|
|
19
18
|
],
|
|
@@ -33,10 +32,10 @@
|
|
|
33
32
|
],
|
|
34
33
|
"escalationPath": [
|
|
35
34
|
"product-manager",
|
|
36
|
-
"
|
|
35
|
+
"architect",
|
|
37
36
|
"orchestrator"
|
|
38
37
|
],
|
|
39
|
-
"charter": "Own requirements, evidence-backed prioritization, and PRD-family artifacts. PM flavors (platform, growth, enterprise, AI product) are overlays — pick one per task. Escalates scope conflicts to Product Group leadership.",
|
|
38
|
+
"charter": "Own requirements, evidence-backed prioritization, and PRD-family artifacts, including strategic/market framing (business-strategist folded in; construct-rf26.11). PM flavors (platform, growth, enterprise, AI product) are overlays — pick one per task. Escalates scope conflicts to Product Group leadership.",
|
|
40
39
|
"contact": {
|
|
41
40
|
"slack": "#product",
|
|
42
41
|
"email": "product@example.com",
|
|
@@ -6,19 +6,11 @@
|
|
|
6
6
|
"owner": "reviewer",
|
|
7
7
|
"roles": [
|
|
8
8
|
"reviewer",
|
|
9
|
-
"qa"
|
|
10
|
-
"test-automation",
|
|
11
|
-
"evaluator",
|
|
12
|
-
"trace-reviewer",
|
|
13
|
-
"devil-advocate"
|
|
9
|
+
"qa"
|
|
14
10
|
],
|
|
15
11
|
"specialists": [
|
|
16
|
-
"cx-evaluator",
|
|
17
|
-
"cx-devil-advocate",
|
|
18
12
|
"cx-reviewer",
|
|
19
|
-
"cx-qa"
|
|
20
|
-
"cx-trace-reviewer",
|
|
21
|
-
"cx-test-automation"
|
|
13
|
+
"cx-qa"
|
|
22
14
|
],
|
|
23
15
|
"collaborators": [],
|
|
24
16
|
"decisionRights": [
|
|
@@ -35,9 +27,9 @@
|
|
|
35
27
|
"escalationPath": [
|
|
36
28
|
"reviewer",
|
|
37
29
|
"architect",
|
|
38
|
-
"
|
|
30
|
+
"orchestrator"
|
|
39
31
|
],
|
|
40
|
-
"charter": "Verify the system does what it claims and surface what is broken. Owns review,
|
|
32
|
+
"charter": "Verify the system does what it claims and surface what is broken. Owns code review, plan-challenge framing, AI/eval rigor, and fleet-level trace analysis (devil-advocate, evaluator, trace-reviewer folded into cx-reviewer; test-automation folded into cx-qa; construct-rf26.11), plus test strategy and automation. Does not own implementation or product decisions. Escalates quality vs. schedule conflicts to architecture.",
|
|
41
33
|
"contact": {
|
|
42
34
|
"slack": "#quality",
|
|
43
35
|
"email": "quality@example.com",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
],
|
|
10
10
|
"collaborators": [
|
|
11
11
|
"product-management-team",
|
|
12
|
-
"
|
|
12
|
+
"design-team"
|
|
13
13
|
],
|
|
14
14
|
"specialists": [
|
|
15
15
|
"cx-researcher"
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
],
|
|
28
28
|
"escalationPath": [
|
|
29
29
|
"product-manager",
|
|
30
|
-
"
|
|
30
|
+
"architect",
|
|
31
31
|
"orchestrator"
|
|
32
32
|
],
|
|
33
|
-
"charter": "Own exploratory research, codebase discovery, and
|
|
33
|
+
"charter": "Own exploratory research, codebase discovery, and user/UX research that inform product framing (explorer and ux-researcher folded in; construct-rf26.11; ux-research-team merged into this team). Does not own implementation or release timing.",
|
|
34
34
|
"contact": {
|
|
35
35
|
"slack": "#product",
|
|
36
36
|
"email": "product@example.com",
|
|
@@ -3,21 +3,14 @@
|
|
|
3
3
|
"kind": "squad",
|
|
4
4
|
"groupId": "strategy-group",
|
|
5
5
|
"name": "Strategy",
|
|
6
|
-
"owner": "
|
|
6
|
+
"owner": "orchestrator",
|
|
7
7
|
"roles": [
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"data-analyst",
|
|
11
|
-
"explorer",
|
|
12
|
-
"orchestrator"
|
|
8
|
+
"orchestrator",
|
|
9
|
+
"data-analyst"
|
|
13
10
|
],
|
|
14
11
|
"specialists": [
|
|
15
12
|
"cx-orchestrator",
|
|
16
|
-
"cx-
|
|
17
|
-
"cx-rd-lead",
|
|
18
|
-
"cx-business-strategist",
|
|
19
|
-
"cx-data-analyst",
|
|
20
|
-
"cx-explorer"
|
|
13
|
+
"cx-data-analyst"
|
|
21
14
|
],
|
|
22
15
|
"collaborators": [],
|
|
23
16
|
"decisionRights": [
|
|
@@ -33,14 +26,14 @@
|
|
|
33
26
|
"ops-procedures"
|
|
34
27
|
],
|
|
35
28
|
"escalationPath": [
|
|
36
|
-
"
|
|
29
|
+
"architect",
|
|
37
30
|
"orchestrator"
|
|
38
31
|
],
|
|
39
|
-
"charter": "Hold the long view
|
|
32
|
+
"charter": "Hold the long view on measurement and cross-team dispatch. Owns metrics/measurement design (cx-data-analyst) and cross-team orchestration (cx-orchestrator). R&D framing-gate duties folded into cx-architect and exploration folded into cx-researcher (rd-lead and explorer retired/folded; construct-rf26.11) — this team no longer owns R&D direction or exploration directly. Does not own implementation or day-to-day operations.",
|
|
40
33
|
"contact": {
|
|
41
34
|
"slack": "#strategy",
|
|
42
35
|
"email": "strategy@example.com",
|
|
43
|
-
"owner": "
|
|
36
|
+
"owner": "orchestrator"
|
|
44
37
|
},
|
|
45
38
|
"evidence": [
|
|
46
39
|
"AGENTS.md (rnd profile departments section)"
|