@danmoisan/drm-copilot-mcp 1.1.22 → 1.1.24
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/out/mcp-server.js +18758 -12030
- package/package.json +1 -1
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/MEMORY.md +1 -1
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/feedback_test_files_count_against_500_cap.md +4 -4
- package/resources/claude-customizations/.claude/agents/csharp-typed-engineer.md +1 -1
- package/resources/claude-customizations/.claude/agents/discovery-capability-sentinel.md +34 -0
- package/resources/claude-customizations/.claude/agents/feature-review.md +8 -0
- package/resources/claude-customizations/.claude/agents/legacy-parity-analyst.md +101 -43
- package/resources/claude-customizations/.claude/agents/migration-coverage-reviewer.md +107 -43
- package/resources/claude-customizations/.claude/agents/orchestrator.md +1 -1
- package/resources/claude-customizations/.claude/agents/parallel-orchestrator.md +60 -6
- package/resources/claude-customizations/.claude/agents/parallel-planner.md +21 -1
- package/resources/claude-customizations/.claude/agents/powershell-typed-engineer.md +1 -1
- package/resources/claude-customizations/.claude/agents/pr-author.md +48 -7
- package/resources/claude-customizations/.claude/agents/python-typed-engineer.md +1 -1
- package/resources/claude-customizations/.claude/agents/requirements-reconciler.md +117 -42
- package/resources/claude-customizations/.claude/agents/runtime-characterization-analyst.md +103 -43
- package/resources/claude-customizations/.claude/hooks/discovery-capability-probe.ps1 +102 -0
- package/resources/claude-customizations/.claude/hooks/enforce-discovery-artifact-gate.ps1 +69 -194
- package/resources/claude-customizations/.claude/hooks/enforce-discovery-planning-gate.ps1 +87 -0
- package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate-green-ci.ps1 +325 -0
- package/resources/claude-customizations/.claude/hooks/enforce-epic-merge-gate.ps1 +29 -7
- package/resources/claude-customizations/.claude/hooks/enforce-epic-worktree-removal-gate-resolution.ps1 +23 -10
- package/resources/claude-customizations/.claude/hooks/enforce-epic-worktree-removal-gate.ps1 +29 -21
- package/resources/claude-customizations/.claude/hooks/enforce-file-size-limit.ps1 +244 -0
- package/resources/claude-customizations/.claude/hooks/enforce-model-routing-receipt.ps1 +51 -0
- package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate-epic-scope.ps1 +168 -48
- package/resources/claude-customizations/.claude/hooks/enforce-orchestration-preimplementation-gate.ps1 +1 -1
- package/resources/claude-customizations/.claude/hooks/enforce-parallel-worktree-removal-gate.ps1 +22 -11
- package/resources/claude-customizations/.claude/hooks/enforce-powershell-batch-budget.ps1 +59 -20
- package/resources/claude-customizations/.claude/hooks/enforce-pr-author-command-allowlist.ps1 +51 -4
- package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill-helpers.ps1 +72 -11
- package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill.current-branch.ps1 +149 -0
- package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill.epic-base-branch.ps1 +4 -2
- package/resources/claude-customizations/.claude/hooks/enforce-python-batch-budget.ps1 +59 -20
- package/resources/claude-customizations/.claude/hooks/record-discovery-agent-start.ps1 +132 -0
- package/resources/claude-customizations/.claude/hooks/validate-discovery-artifact-gate.ps1 +56 -212
- package/resources/claude-customizations/.claude/hooks/validate-orchestrator-output-feature-folder.ps1 +146 -0
- package/resources/claude-customizations/.claude/hooks/validate-orchestrator-output-rejection.ps1 +172 -0
- package/resources/claude-customizations/.claude/hooks/validate-orchestrator-output.ps1 +34 -4
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadius.psm1 +9 -3
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusAggregate.psm1 +154 -0
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusCombination.psm1 +228 -0
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusExtraction.psm1 +1 -0
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusNormalization.psm1 +4 -2
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusScheduling.psm1 +63 -16
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusTokenShape.psm1 +56 -1
- package/resources/claude-customizations/.claude/lib/blast-radius/BlastRadiusWriteIntent.psm1 +4 -1
- package/resources/claude-customizations/.claude/lib/cleanup-manifest/CleanupWorktreeManifest.psm1 +33 -6
- package/resources/claude-customizations/.claude/lib/codex-routing/CodexDeployment.psm1 +5 -1
- package/resources/claude-customizations/.claude/lib/codex-routing/CodexDiscoveryRouting.psm1 +161 -0
- package/resources/claude-customizations/.claude/lib/codex-routing/CodexTopology.psm1 +25 -2
- package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryAuthority.psd1 +90 -0
- package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryAuthority.psm1 +493 -0
- package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryAuthorization.psm1 +479 -0
- package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryCapability.psm1 +468 -0
- package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryEncoding.psm1 +156 -0
- package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryManifest.psm1 +384 -0
- package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryObservation.psm1 +217 -0
- package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryPayload.psm1 +276 -0
- package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryPlanning.psm1 +336 -0
- package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryRootGrant.psm1 +164 -0
- package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryStart.psm1 +440 -0
- package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryStartRecord.psm1 +296 -0
- package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryStop.psm1 +336 -0
- package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryToolRouting.psm1 +228 -0
- package/resources/claude-customizations/.claude/lib/discovery-validation/DiscoveryValidation.psm1 +188 -341
- package/resources/claude-customizations/.claude/lib/file-size-policy/FileSizePolicy.psm1 +434 -0
- package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorStateFeatureFolderRecord.psm1 +166 -0
- package/resources/claude-customizations/.claude/lib/orchestrator-state/OrchestratorStateIssueAdoption.psm1 +8 -3
- package/resources/claude-customizations/.claude/lib/worktree-resolution/HookTargetWorktree.psm1 +391 -0
- package/resources/claude-customizations/.claude/lib/worktree-resolution/WorktreeRunRecordPath.psm1 +185 -0
- package/resources/claude-customizations/.claude/lib/worktree-resolution/WorktreeRunResolution.psm1 +11 -21
- package/resources/claude-customizations/.claude/rules/general-code-change.md +4 -1
- package/resources/claude-customizations/.claude/rules/orchestrator-state.md +29 -5
- package/resources/claude-customizations/.claude/rules/parallel-orchestration.md +152 -20
- package/resources/claude-customizations/.claude/rules/powershell.md +1 -1
- package/resources/claude-customizations/.claude/rules/shell.md +1 -1
- package/resources/claude-customizations/.claude/settings.json +36 -3
- package/resources/claude-customizations/.claude/skills/adjudicate-unspecified-behavior/SKILL.md +135 -0
- package/resources/claude-customizations/.claude/skills/characterize-runtime-behavior/SKILL.md +134 -0
- package/resources/claude-customizations/.claude/skills/cleanup-merged-worktrees/SKILL.md +2 -2
- package/resources/claude-customizations/.claude/skills/discovery-behavior-reconciliation/SKILL.md +28 -47
- package/resources/claude-customizations/.claude/skills/discovery-coverage-ledger/SKILL.md +32 -48
- package/resources/claude-customizations/.claude/skills/discovery-parity-matrix/SKILL.md +28 -45
- package/resources/claude-customizations/.claude/skills/discovery-repo-inventory/SKILL.md +28 -62
- package/resources/claude-customizations/.claude/skills/discovery-runtime-characterization/SKILL.md +28 -45
- package/resources/claude-customizations/.claude/skills/discovery-validate-artifacts/SKILL.md +28 -61
- package/resources/claude-customizations/.claude/skills/discovery-workflow/SKILL.md +55 -139
- package/resources/claude-customizations/.claude/skills/execution-environment/SKILL.md +25 -10
- package/resources/claude-customizations/.claude/skills/extract-feature-contract/SKILL.md +133 -0
- package/resources/claude-customizations/.claude/skills/feature-promotion-lifecycle/SKILL.md +1 -0
- package/resources/claude-customizations/.claude/skills/generate-acceptance-scenarios/SKILL.md +132 -0
- package/resources/claude-customizations/.claude/skills/initialize-discovery-workspace/SKILL.md +131 -0
- package/resources/claude-customizations/.claude/skills/inventory-legacy-system/SKILL.md +131 -0
- package/resources/claude-customizations/.claude/skills/orchestrate/SKILL.md +15 -7
- package/resources/claude-customizations/.claude/skills/parallel-add/SKILL.md +25 -2
- package/resources/claude-customizations/.claude/skills/parallel-close/SKILL.md +11 -1
- package/resources/claude-customizations/.claude/skills/parallel-orchestrate/SKILL.md +124 -14
- package/resources/claude-customizations/.claude/skills/parallel-plan/SKILL.md +72 -7
- package/resources/claude-customizations/.claude/skills/parallel-remove/SKILL.md +15 -0
- package/resources/claude-customizations/.claude/skills/parallel-run/SKILL.md +6 -0
- package/resources/claude-customizations/.claude/skills/pr-author/SKILL.md +56 -9
- package/resources/claude-customizations/.claude/skills/reconcile-parity-matrix/SKILL.md +131 -0
- package/resources/claude-customizations/.claude/skills/review-discovery-coverage/SKILL.md +129 -0
- package/resources/claude-customizations/.claude/skills/validate-discovery-artifacts/SKILL.md +127 -0
- package/resources/claude-customizations/.claude-variants/csharp-legacy/agents/csharp-typed-engineer.md +1 -1
- package/resources/claude-customizations/config/blast-radius.json +6 -5
- package/resources/claude-customizations/config/orchestration-routing.json +61 -1
- package/resources/claude-customizations/pack-manifests/core.json +40 -1
- package/resources/codex-and-agents-customizations/.agents/skills/adjudicate-unspecified-behavior/SKILL.md +135 -0
- package/resources/codex-and-agents-customizations/.agents/skills/atomic-planner/SKILL.md +7 -0
- package/resources/codex-and-agents-customizations/.agents/skills/characterize-runtime-behavior/SKILL.md +134 -0
- package/resources/codex-and-agents-customizations/.agents/skills/discovery-behavior-reconciliation/SKILL.md +46 -0
- package/resources/codex-and-agents-customizations/.agents/skills/discovery-coverage-ledger/SKILL.md +50 -0
- package/resources/codex-and-agents-customizations/.agents/skills/discovery-parity-matrix/SKILL.md +46 -0
- package/resources/codex-and-agents-customizations/.agents/skills/discovery-repo-inventory/SKILL.md +46 -0
- package/resources/codex-and-agents-customizations/.agents/skills/discovery-runtime-characterization/SKILL.md +46 -0
- package/resources/codex-and-agents-customizations/.agents/skills/discovery-validate-artifacts/SKILL.md +46 -0
- package/resources/codex-and-agents-customizations/.agents/skills/discovery-workflow/SKILL.md +62 -0
- package/resources/codex-and-agents-customizations/.agents/skills/execution-environment/SKILL.md +25 -10
- package/resources/codex-and-agents-customizations/.agents/skills/extract-feature-contract/SKILL.md +133 -0
- package/resources/codex-and-agents-customizations/.agents/skills/feature-promotion-lifecycle/SKILL.md +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/feature-review/SKILL.md +8 -0
- package/resources/codex-and-agents-customizations/.agents/skills/general-code-change/SKILL.md +4 -1
- package/resources/codex-and-agents-customizations/.agents/skills/generate-acceptance-scenarios/SKILL.md +132 -0
- package/resources/codex-and-agents-customizations/.agents/skills/initialize-discovery-workspace/SKILL.md +131 -0
- package/resources/codex-and-agents-customizations/.agents/skills/inventory-legacy-system/SKILL.md +131 -0
- package/resources/codex-and-agents-customizations/.agents/skills/orchestrator-workflow/SKILL.md +8 -0
- package/resources/codex-and-agents-customizations/.agents/skills/powershell/SKILL.md +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/reconcile-parity-matrix/SKILL.md +131 -0
- package/resources/codex-and-agents-customizations/.agents/skills/review-discovery-coverage/SKILL.md +129 -0
- package/resources/codex-and-agents-customizations/.agents/skills/validate-discovery-artifacts/SKILL.md +127 -0
- package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c1.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c2.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c3-elevated.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c3.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer-c4.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/discovery-capability-sentinel.toml +51 -0
- package/resources/codex-and-agents-customizations/.codex/agents/feature-review.toml +8 -0
- package/resources/codex-and-agents-customizations/.codex/agents/legacy-parity-analyst-c1.toml +148 -0
- package/resources/codex-and-agents-customizations/.codex/agents/legacy-parity-analyst-c2.toml +148 -0
- package/resources/codex-and-agents-customizations/.codex/agents/legacy-parity-analyst-c3-elevated.toml +148 -0
- package/resources/codex-and-agents-customizations/.codex/agents/legacy-parity-analyst-c3.toml +148 -0
- package/resources/codex-and-agents-customizations/.codex/agents/legacy-parity-analyst-c4.toml +148 -0
- package/resources/codex-and-agents-customizations/.codex/agents/legacy-parity-analyst.toml +148 -0
- package/resources/codex-and-agents-customizations/.codex/agents/migration-coverage-reviewer-c1.toml +154 -0
- package/resources/codex-and-agents-customizations/.codex/agents/migration-coverage-reviewer-c2.toml +154 -0
- package/resources/codex-and-agents-customizations/.codex/agents/migration-coverage-reviewer-c3-elevated.toml +154 -0
- package/resources/codex-and-agents-customizations/.codex/agents/migration-coverage-reviewer-c3.toml +154 -0
- package/resources/codex-and-agents-customizations/.codex/agents/migration-coverage-reviewer-c4.toml +154 -0
- package/resources/codex-and-agents-customizations/.codex/agents/migration-coverage-reviewer.toml +154 -0
- package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c1.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c2.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c3-elevated.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c3.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer-c4.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c1.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c2.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c3-elevated.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c3.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer-c4.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/requirements-reconciler-c1.toml +164 -0
- package/resources/codex-and-agents-customizations/.codex/agents/requirements-reconciler-c2.toml +164 -0
- package/resources/codex-and-agents-customizations/.codex/agents/requirements-reconciler-c3-elevated.toml +164 -0
- package/resources/codex-and-agents-customizations/.codex/agents/requirements-reconciler-c3.toml +164 -0
- package/resources/codex-and-agents-customizations/.codex/agents/requirements-reconciler-c4.toml +164 -0
- package/resources/codex-and-agents-customizations/.codex/agents/requirements-reconciler.toml +164 -0
- package/resources/codex-and-agents-customizations/.codex/agents/runtime-characterization-analyst-c1.toml +150 -0
- package/resources/codex-and-agents-customizations/.codex/agents/runtime-characterization-analyst-c2.toml +150 -0
- package/resources/codex-and-agents-customizations/.codex/agents/runtime-characterization-analyst-c3-elevated.toml +150 -0
- package/resources/codex-and-agents-customizations/.codex/agents/runtime-characterization-analyst-c3.toml +150 -0
- package/resources/codex-and-agents-customizations/.codex/agents/runtime-characterization-analyst-c4.toml +150 -0
- package/resources/codex-and-agents-customizations/.codex/agents/runtime-characterization-analyst.toml +150 -0
- package/resources/codex-and-agents-customizations/.codex/config.toml +39 -3
- package/resources/codex-and-agents-customizations/.codex/hooks/codex-agent-profile-attestation.ps1 +22 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/discovery-capability-probe.ps1 +97 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/discovery-start-attestation.ps1 +171 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-codex-model-routing.ps1 +4 -1
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-discovery-artifact-gate.ps1 +187 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-discovery-planning-gate.ps1 +149 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-file-size-limit.ps1 +282 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-orchestration-preimplementation-gate-epic-scope.ps1 +239 -2
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-orchestration-preimplementation-gate.ps1 +6 -15
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-powershell-batch-budget.ps1 +54 -15
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-python-batch-budget.ps1 +54 -15
- package/resources/codex-and-agents-customizations/.codex/hooks/file-size-policy.ps1 +421 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/hook-target-worktree.ps1 +369 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/record-subagent-routing-attestation.ps1 +8 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/validate-codex-subagent-routing.ps1 +22 -1
- package/resources/codex-and-agents-customizations/.codex/hooks/validate-discovery-agent-output.ps1 +178 -0
- package/resources/codex-and-agents-customizations/.codex/scripts/Resolve-CodexTopology.ps1 +11 -1
- package/resources/codex-and-agents-customizations/.codex-variants/csharp-legacy/agents/csharp-typed-engineer.toml +1 -1
- package/resources/codex-and-agents-customizations/AGENTS.md +4 -1
- package/resources/codex-and-agents-customizations/pack-manifests/core.json +65 -1
- package/resources/config/orchestration-routing.json +61 -1
- package/resources/customizations/.github/agents/commentary-remediation.agent.md +1 -1
- package/resources/customizations/.github/agents/discovery-capability-sentinel.agent.md +34 -0
- package/resources/customizations/.github/agents/legacy-parity-analyst.agent.md +122 -0
- package/resources/customizations/.github/agents/migration-coverage-reviewer.agent.md +128 -0
- package/resources/customizations/.github/agents/python-execution-only-typed.agent.md +1 -1
- package/resources/customizations/.github/agents/python-typed-engineer.agent.md +1 -1
- package/resources/customizations/.github/agents/requirements-reconciler.agent.md +138 -0
- package/resources/customizations/.github/agents/runtime-characterization-analyst.agent.md +124 -0
- package/resources/customizations/.github/hooks/discovery-agent-start.ps1 +139 -0
- package/resources/customizations/.github/hooks/discovery-agent-stop.ps1 +123 -0
- package/resources/customizations/.github/hooks/discovery-capability-probe.ps1 +98 -0
- package/resources/customizations/.github/hooks/discovery-planning.ps1 +91 -0
- package/resources/customizations/.github/hooks/discovery-pre-tool.ps1 +123 -0
- package/resources/customizations/.github/hooks/discovery.json +35 -0
- package/resources/customizations/.github/instructions/general-code-change.instructions.md +5 -2
- package/resources/customizations/.github/instructions/mermaid.instructions.md +85 -0
- package/resources/customizations/.github/instructions/powershell-code-change.instructions.md +1 -1
- package/resources/customizations/.github/prompts/execute-hard-lock.prompt.md +105 -0
- package/resources/customizations/.github/prompts/remediate-comments.prompt.md +1 -1
- package/resources/customizations/.github/skills/adjudicate-unspecified-behavior/SKILL.md +135 -0
- package/resources/customizations/.github/skills/characterize-runtime-behavior/SKILL.md +134 -0
- package/resources/customizations/.github/skills/discovery-behavior-reconciliation/SKILL.md +46 -0
- package/resources/customizations/.github/skills/discovery-coverage-ledger/SKILL.md +50 -0
- package/resources/customizations/.github/skills/discovery-parity-matrix/SKILL.md +46 -0
- package/resources/customizations/.github/skills/discovery-repo-inventory/SKILL.md +46 -0
- package/resources/customizations/.github/skills/discovery-runtime-characterization/SKILL.md +46 -0
- package/resources/customizations/.github/skills/discovery-validate-artifacts/SKILL.md +46 -0
- package/resources/customizations/.github/skills/discovery-workflow/SKILL.md +62 -0
- package/resources/customizations/.github/skills/execution-environment/SKILL.md +25 -10
- package/resources/customizations/.github/skills/extract-feature-contract/SKILL.md +133 -0
- package/resources/customizations/.github/skills/feature-review-workflow/SKILL.md +8 -0
- package/resources/customizations/.github/skills/generate-acceptance-scenarios/SKILL.md +132 -0
- package/resources/customizations/.github/skills/initialize-discovery-workspace/SKILL.md +131 -0
- package/resources/customizations/.github/skills/inventory-legacy-system/SKILL.md +131 -0
- package/resources/customizations/.github/skills/reconcile-parity-matrix/SKILL.md +131 -0
- package/resources/customizations/.github/skills/review-discovery-coverage/SKILL.md +129 -0
- package/resources/customizations/.github/skills/validate-discovery-artifacts/SKILL.md +127 -0
- package/resources/lib/codex-routing/CodexDeployment.psm1 +5 -1
- package/resources/lib/codex-routing/CodexDiscoveryRouting.psm1 +161 -0
- package/resources/lib/codex-routing/CodexTopology.psm1 +25 -2
- package/resources/lib/discovery-validation/DiscoveryAuthority.psd1 +90 -0
- package/resources/lib/discovery-validation/DiscoveryAuthority.psm1 +493 -0
- package/resources/lib/discovery-validation/DiscoveryAuthorization.psm1 +479 -0
- package/resources/lib/discovery-validation/DiscoveryCapability.psm1 +468 -0
- package/resources/lib/discovery-validation/DiscoveryEncoding.psm1 +156 -0
- package/resources/lib/discovery-validation/DiscoveryManifest.psm1 +384 -0
- package/resources/lib/discovery-validation/DiscoveryObservation.psm1 +217 -0
- package/resources/lib/discovery-validation/DiscoveryPayload.psm1 +276 -0
- package/resources/lib/discovery-validation/DiscoveryPlanning.psm1 +336 -0
- package/resources/lib/discovery-validation/DiscoveryRootGrant.psm1 +164 -0
- package/resources/lib/discovery-validation/DiscoveryStart.psm1 +440 -0
- package/resources/lib/discovery-validation/DiscoveryStartRecord.psm1 +296 -0
- package/resources/lib/discovery-validation/DiscoveryStop.psm1 +336 -0
- package/resources/lib/discovery-validation/DiscoveryToolRouting.psm1 +228 -0
- package/resources/powershell/PoshQC/PoshQC.Parallel.psm1 +452 -0
- package/resources/powershell/PoshQC/PoshQC.Shard.psm1 +106 -8
- package/resources/powershell/PoshQC/PoshQC.Testing.psm1 +12 -0
- package/resources/powershell/PoshQC/PoshQC.psd1 +6 -1
- package/resources/powershell/PoshQC/PoshQC.psm1 +7 -1
- package/resources/powershell/PoshQC/README.md +20 -1
- package/resources/templates/policy_audit/code-review.yyyy-MM-ddTHH-mm.md +4 -4
- package/resources/templates/policy_audit/policy-audit.yyyy-MM-ddTHH-mm.md +4 -4
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reconcile-parity-matrix
|
|
3
|
+
description: 'Reconcile selected feature and client parity against pinned source facts and target evidence. Use when asked to update a parity matrix or identify migration gaps without changing approved decisions.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Reconcile Parity Matrix
|
|
7
|
+
|
|
8
|
+
## When to Use This Skill
|
|
9
|
+
|
|
10
|
+
Use for selected feature/client comparisons against immutable source snapshot references and explicit target evidence.
|
|
11
|
+
|
|
12
|
+
## Inputs
|
|
13
|
+
|
|
14
|
+
These are human-facing workflow selections, not additional service-request fields.
|
|
15
|
+
Supply explicit selections; neither omitted inputs nor profile roots create authority.
|
|
16
|
+
|
|
17
|
+
| Input | Required contract |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| profile | Required validated profile and trusted workspace binding. |
|
|
20
|
+
| source_snapshot_refs | Required immutable source snapshot references and content pins. |
|
|
21
|
+
| feature_ids | Required explicit selected feature mappings. |
|
|
22
|
+
| client_ids | Required explicit selected target clients. |
|
|
23
|
+
| target_implementation_refs | Required selected implementation records or explicit missing-state references. |
|
|
24
|
+
| evidence_refs | Required selected verification evidence or explicit unavailable state. |
|
|
25
|
+
| approved_decision_refs | Required applicable approved decisions or an explicit empty selection. |
|
|
26
|
+
|
|
27
|
+
## Routing
|
|
28
|
+
|
|
29
|
+
Logical role: `requirements-reconciler`.
|
|
30
|
+
The root owns preparation and launch; this skill never auto-launches a logical
|
|
31
|
+
role through frontmatter. The existing resolver selects the exact deployment,
|
|
32
|
+
model, effort and profile hash under the existing C1-C4 ceiling and execution
|
|
33
|
+
context. Do not choose a model, self-launch, create another scheduler or promote
|
|
34
|
+
an ordinary discovery action into an issue. The production-write count is zero.
|
|
35
|
+
|
|
36
|
+
## Exact output boundary
|
|
37
|
+
|
|
38
|
+
These rows are maximum workflow caps, not instructions to create every kind.
|
|
39
|
+
Only the prepared required outputs may be created or replaced.
|
|
40
|
+
|
|
41
|
+
| Artifact kind | Profile key | Constraint |
|
|
42
|
+
| --- | --- | --- |
|
|
43
|
+
| parity-matrix | parity_matrix | Selected feature/client entries only |
|
|
44
|
+
| unspecified-behavior | unspecified_behaviors | Selected unresolved IDs only |
|
|
45
|
+
| unspecified-behavior-collection | unspecified_behaviors | Selected unresolved members only |
|
|
46
|
+
| required-output-manifest | reports | Exact invocation manifest only |
|
|
47
|
+
|
|
48
|
+
The profile keys are maximum configured locations, not write grants. Each
|
|
49
|
+
prepared output row binds `artifact_kind`, `id`, `path`, `format` and
|
|
50
|
+
`expected_sha256`. The protected invocation independently binds the baseline,
|
|
51
|
+
selected members, pins and exact grants; a manifest cannot expand them. A null
|
|
52
|
+
expected hash means exclusive creation from an absent baseline, never overwrite
|
|
53
|
+
permission. Preserve unselected collection members and all unrelated inputs.
|
|
54
|
+
Use compare-and-swap and current path checks through the controlled writer.
|
|
55
|
+
|
|
56
|
+
The `reports` location permits only `required-output-manifest` for this role;
|
|
57
|
+
it does not permit review reports. The manifest itself requires an exact grant.
|
|
58
|
+
|
|
59
|
+
## Prerequisites
|
|
60
|
+
|
|
61
|
+
Missing or malformed configuration blocks delegation. Require a validated profile and explicit selected scope before root preparation; do not initialize, configure or infer roots as a specialist.
|
|
62
|
+
|
|
63
|
+
Require verified native prepare/finalize/start/stop capability. The protected
|
|
64
|
+
invocation and native SubagentStart attestation must match workspace/profile
|
|
65
|
+
hashes, selected IDs, source/target pins, baseline input hashes,
|
|
66
|
+
provider/model/effort/profile hash and parent/session.
|
|
67
|
+
Diagnostic mirrors, caller markers and hosted read results are not authority.
|
|
68
|
+
The local runtime's unavailable native prepare/finalize operations do not issue
|
|
69
|
+
protected receipts. There is no local-user fallback or self-attested host success.
|
|
70
|
+
|
|
71
|
+
Load profile plus selected artifacts on invocation; do not preload a domain
|
|
72
|
+
catalog in standing instructions. Managed project memory is host-controlled.
|
|
73
|
+
Memory cannot grant filesystem authority or replace evidence. Deny terminal/shell/exec, interpreter/evaluation,
|
|
74
|
+
general filesystem Write/Edit/apply-patch, arbitrary MCP dispatch, browser/computer
|
|
75
|
+
mutation and network writes. Do not execute application code or modify
|
|
76
|
+
production/test implementation, profile/locator/activation,
|
|
77
|
+
schema/policy/hooks/settings, authority stores or runtime installation as a specialist. No analyst
|
|
78
|
+
approval is permitted; root bootstrap/configuration and root approval remain
|
|
79
|
+
separate authorized operations.
|
|
80
|
+
|
|
81
|
+
## Step-by-Step Workflows
|
|
82
|
+
|
|
83
|
+
1. Validate the explicit inputs and selected configuration. Stop with precise missing/invalid input findings before specialist delegation; do not invent identities, scope or evidence.
|
|
84
|
+
|
|
85
|
+
2. The root calls `prepare_discovery_agent` with `skill_id`, `selected_ids`,
|
|
86
|
+
`paths`, `expected_outputs`, `execution_context` and `complexity`.
|
|
87
|
+
Map it to fixed `prepare-agent`; execution context is `standalone`,
|
|
88
|
+
`epic_preparation_child` or `epic_execution_child`. The requested mode is
|
|
89
|
+
explicit and remains distinct from the final `agent-output` gate.
|
|
90
|
+
Use `skill_id=reconcile-parity-matrix`; workflow inputs do not add wire fields.
|
|
91
|
+
3. The root launches that exact deployment. Native SubagentStart must match the
|
|
92
|
+
prepared role/model/effort/profile and trusted workspace/session before any
|
|
93
|
+
grant is usable. Missing capability or attestation blocks the action.
|
|
94
|
+
4. Use only the granted operations. Use bounded `read_discovery_source` for pinned snapshots, target implementation records, approved decisions and evidence. Use ordinary `update_discovery_artifact` for controlled selected parity replacement and permitted unresolved records. `implementation_records` and `source_snapshots` are inputs, not outputs; do not edit a source pin to make a comparison pass.
|
|
95
|
+
5. Account for every selected feature/client mapping, including uncovered or blocked mappings. Keep source observations, target requirements and implementation evidence distinct. Intentional changes or retirements must link to the applicable approved decision. Preserve approved decision history and unrelated parity members. Pending questions cannot become approved requirements, and derived criteria do not authorize `feature_contracts` writes.
|
|
96
|
+
6. Produce every exact required output and the stored `required-output-manifest`,
|
|
97
|
+
preserving its output array order for the digest. Validate claims, references,
|
|
98
|
+
pins and selected-ID accounting. Purpose-built tools supply authorized proposal
|
|
99
|
+
inputs for `input_path`/`evidence_path`; never invent a generic Write staging
|
|
100
|
+
step. Server-side role checks, exact one-use authorization and prospective
|
|
101
|
+
validation remain mandatory. Bounded source reads preserve content identity
|
|
102
|
+
and line ranges; truncation requires a narrower selection, not a completeness
|
|
103
|
+
claim or filesystem fallback.
|
|
104
|
+
7. Call `finalize_discovery_agent` as the specialist, mapped to `finalize-agent`
|
|
105
|
+
with `mode=agent-output`, non-null `invocation_ref` and no operation inputs.
|
|
106
|
+
It validates the protected invocation's outputs, not final-message paths.
|
|
107
|
+
Native SubagentStop then verifies current output authority.
|
|
108
|
+
Missing final text cannot skip native stop validation.
|
|
109
|
+
8. After native stop, the root records the explicit result, content-addressed artifact references,
|
|
110
|
+
selected-ID accounting and all findings. A successful tool call or generated
|
|
111
|
+
path alone is not evidence of completed discovery.
|
|
112
|
+
|
|
113
|
+
## Stop and result
|
|
114
|
+
|
|
115
|
+
Return explicit parity findings and unresolved mappings. A valid incremental parity update does not authorize parity-complete or planning without the requested authoritative gate.
|
|
116
|
+
|
|
117
|
+
Structural success is not discovery, parity or planning completion.
|
|
118
|
+
Missing prepare/finalize/start/stop capability, missing outputs, invalid claims,
|
|
119
|
+
unresolved required work, wrong role/model/start context or a stale/missing
|
|
120
|
+
receipt blocks successful completion. Return explicit
|
|
121
|
+
PASS, FAIL or BLOCKED, distinguishing valid incremental outputs from a passing
|
|
122
|
+
completion gate. Missing native enforcement remains BLOCKED even when ordinary
|
|
123
|
+
local-user operations can run; do not substitute CLI success for native authority.
|
|
124
|
+
|
|
125
|
+
## References
|
|
126
|
+
|
|
127
|
+
- [Canonical requirements-reconciler contract](../../agents/requirements-reconciler.agent.md)
|
|
128
|
+
- Installed v2 `service-request` and `required-output-manifest` schema contracts;
|
|
129
|
+
consume them through the authoritative runtime, with no checkout-schema fallback.
|
|
130
|
+
- The selected profile and pinned local artifacts supplied for this invocation;
|
|
131
|
+
references do not preload catalogs or grant access to unselected paths.
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review-discovery-coverage
|
|
3
|
+
description: 'Review selected discovery coverage and parity with authoritative reports and explicit findings. Use when asked for a structural, discovery-complete or parity-complete review.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Review Discovery Coverage
|
|
7
|
+
|
|
8
|
+
## When to Use This Skill
|
|
9
|
+
|
|
10
|
+
Use for a requested review of configured scope or a pinned snapshot. The reviewer reports readiness without editing underlying facts.
|
|
11
|
+
|
|
12
|
+
## Inputs
|
|
13
|
+
|
|
14
|
+
These are human-facing workflow selections, not additional service-request fields.
|
|
15
|
+
Supply explicit selections; neither omitted inputs nor profile roots create authority.
|
|
16
|
+
|
|
17
|
+
| Input | Required contract |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| profile | Required validated profile and trusted workspace binding. |
|
|
20
|
+
| scope | Required exact requested scope or explicit whole configured graph. |
|
|
21
|
+
| snapshot | Required selected current/pinned snapshot identity for the review. |
|
|
22
|
+
| mode | Required explicit structural, discovery-complete or parity-complete review mode. |
|
|
23
|
+
|
|
24
|
+
## Routing
|
|
25
|
+
|
|
26
|
+
Logical role: `migration-coverage-reviewer`.
|
|
27
|
+
The root owns preparation and launch; this skill never auto-launches a logical
|
|
28
|
+
role through frontmatter. The existing resolver selects the exact deployment,
|
|
29
|
+
model, effort and profile hash under the existing C1-C4 ceiling and execution
|
|
30
|
+
context. Do not choose a model, self-launch, create another scheduler or promote
|
|
31
|
+
an ordinary discovery action into an issue. The production-write count is zero.
|
|
32
|
+
|
|
33
|
+
## Exact output boundary
|
|
34
|
+
|
|
35
|
+
These rows are maximum workflow caps, not instructions to create every kind.
|
|
36
|
+
Only the prepared required outputs may be created or replaced.
|
|
37
|
+
|
|
38
|
+
| Artifact kind | Profile key | Constraint |
|
|
39
|
+
| --- | --- | --- |
|
|
40
|
+
| coverage-report | reports | Exact requested scope and mode |
|
|
41
|
+
| parity-report | reports | Exact requested scope and mode |
|
|
42
|
+
| completion-report | reports | Exact requested scope and mode |
|
|
43
|
+
| validation-report | reports | Exact requested selection and mode |
|
|
44
|
+
| required-output-manifest | reports | Exact invocation manifest only |
|
|
45
|
+
|
|
46
|
+
The profile keys are maximum configured locations, not write grants. Each
|
|
47
|
+
prepared output row binds `artifact_kind`, `id`, `path`, `format` and
|
|
48
|
+
`expected_sha256`. The protected invocation independently binds the baseline,
|
|
49
|
+
selected members, pins and exact grants; a manifest cannot expand them. A null
|
|
50
|
+
expected hash means exclusive creation from an absent baseline, never overwrite
|
|
51
|
+
permission. Preserve unselected collection members and all unrelated inputs.
|
|
52
|
+
Use compare-and-swap and current path checks through the controlled writer.
|
|
53
|
+
|
|
54
|
+
Only exact selected reports and the invocation manifest may be written. A profile
|
|
55
|
+
report root and a validation report pair never grant report-root-wide writes.
|
|
56
|
+
|
|
57
|
+
## Prerequisites
|
|
58
|
+
|
|
59
|
+
Missing or malformed configuration blocks delegation. Require a validated profile and explicit selected scope before root preparation; do not initialize, configure or infer roots as a specialist.
|
|
60
|
+
|
|
61
|
+
Require verified native prepare/finalize/start/stop capability. The protected
|
|
62
|
+
invocation and native SubagentStart attestation must match workspace/profile
|
|
63
|
+
hashes, selected IDs, source/target pins, baseline input hashes,
|
|
64
|
+
provider/model/effort/profile hash and parent/session.
|
|
65
|
+
Diagnostic mirrors, caller markers and hosted read results are not authority.
|
|
66
|
+
The local runtime's unavailable native prepare/finalize operations do not issue
|
|
67
|
+
protected receipts. There is no local-user fallback or self-attested host success.
|
|
68
|
+
|
|
69
|
+
Load profile plus selected artifacts on invocation; do not preload a domain
|
|
70
|
+
catalog in standing instructions. Managed project memory is host-controlled.
|
|
71
|
+
Memory cannot grant filesystem authority or replace evidence. Deny terminal/shell/exec, interpreter/evaluation,
|
|
72
|
+
general filesystem Write/Edit/apply-patch, arbitrary MCP dispatch, browser/computer
|
|
73
|
+
mutation and network writes. Do not execute application code or modify
|
|
74
|
+
production/test implementation, profile/locator/activation,
|
|
75
|
+
schema/policy/hooks/settings, authority stores or runtime installation as a specialist. No analyst
|
|
76
|
+
approval is permitted; root bootstrap/configuration and root approval remain
|
|
77
|
+
separate authorized operations.
|
|
78
|
+
|
|
79
|
+
## Step-by-Step Workflows
|
|
80
|
+
|
|
81
|
+
1. Validate the explicit inputs and selected configuration. Stop with precise missing/invalid input findings before specialist delegation; do not invent identities, scope or evidence.
|
|
82
|
+
|
|
83
|
+
2. The root calls `prepare_discovery_agent` with `skill_id`, `selected_ids`,
|
|
84
|
+
`paths`, `expected_outputs`, `execution_context` and `complexity`.
|
|
85
|
+
Map it to fixed `prepare-agent`; execution context is `standalone`,
|
|
86
|
+
`epic_preparation_child` or `epic_execution_child`. The requested mode is
|
|
87
|
+
explicit and remains distinct from the final `agent-output` gate.
|
|
88
|
+
Use `skill_id=review-discovery-coverage`; workflow inputs do not add wire fields.
|
|
89
|
+
3. The root launches that exact deployment. Native SubagentStart must match the
|
|
90
|
+
prepared role/model/effort/profile and trusted workspace/session before any
|
|
91
|
+
grant is usable. Missing capability or attestation blocks the action.
|
|
92
|
+
4. Use only the granted operations. Use `validate_discovery_artifacts` and `run_discovery_report` through the authoritative fixed validation/report operations in the requested mode. Use bounded `read_discovery_source` for selected supporting inputs only. Do not guess artifact types by first-success validation. Do not create a second graph/schema engine or infer readiness from report existence.
|
|
93
|
+
5. At least one required report must be recomputable structured JSON in the invocation's requested review mode. Preserve all findings for the requested scope and explicit PASS/FAIL. Do not update inventory, coverage ledger, contracts, parity entries, evidence, decisions or configuration to force a pass. The validate-all canonical report pair does not grant report-root-wide writes.
|
|
94
|
+
6. Produce every exact required output and the stored `required-output-manifest`,
|
|
95
|
+
preserving its output array order for the digest. Validate claims, references,
|
|
96
|
+
pins and selected-ID accounting. Purpose-built tools supply authorized proposal
|
|
97
|
+
inputs for `input_path`/`evidence_path`; never invent a generic Write staging
|
|
98
|
+
step. Server-side role checks, exact one-use authorization and prospective
|
|
99
|
+
validation remain mandatory. Bounded source reads preserve content identity
|
|
100
|
+
and line ranges; truncation requires a narrower selection, not a completeness
|
|
101
|
+
claim or filesystem fallback.
|
|
102
|
+
7. Call `finalize_discovery_agent` as the specialist, mapped to `finalize-agent`
|
|
103
|
+
with `mode=agent-output`, non-null `invocation_ref` and no operation inputs.
|
|
104
|
+
It validates the protected invocation's outputs, not final-message paths.
|
|
105
|
+
Native SubagentStop then verifies current output authority.
|
|
106
|
+
Missing final text cannot skip native stop validation.
|
|
107
|
+
8. After native stop, the root records the explicit result, content-addressed artifact references,
|
|
108
|
+
selected-ID accounting and all findings. A successful tool call or generated
|
|
109
|
+
path alone is not evidence of completed discovery.
|
|
110
|
+
|
|
111
|
+
## Stop and result
|
|
112
|
+
|
|
113
|
+
A valid FAIL report may finish as `output-valid/result-fail`; it never authorizes discovery, parity or planning completion. Missing required reports still block output validity. Review status and completion authority remain separate.
|
|
114
|
+
|
|
115
|
+
Structural success is not discovery, parity or planning completion.
|
|
116
|
+
Missing prepare/finalize/start/stop capability, missing outputs, invalid claims,
|
|
117
|
+
unresolved required work, wrong role/model/start context or a stale/missing
|
|
118
|
+
receipt blocks successful completion. Return explicit
|
|
119
|
+
PASS, FAIL or BLOCKED, distinguishing valid incremental outputs from a passing
|
|
120
|
+
completion gate. Missing native enforcement remains BLOCKED even when ordinary
|
|
121
|
+
local-user operations can run; do not substitute CLI success for native authority.
|
|
122
|
+
|
|
123
|
+
## References
|
|
124
|
+
|
|
125
|
+
- [Canonical migration-coverage-reviewer contract](../../agents/migration-coverage-reviewer.agent.md)
|
|
126
|
+
- Installed v2 `service-request` and `required-output-manifest` schema contracts;
|
|
127
|
+
consume them through the authoritative runtime, with no checkout-schema fallback.
|
|
128
|
+
- The selected profile and pinned local artifacts supplied for this invocation;
|
|
129
|
+
references do not preload catalogs or grant access to unselected paths.
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: validate-discovery-artifacts
|
|
3
|
+
description: 'Validate an exact discovery artifact selection or configured graph through authoritative modes. Use when asked to validate discovery artifacts or evaluate an explicit completion or planning prerequisite.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Validate Discovery Artifacts
|
|
7
|
+
|
|
8
|
+
## When to Use This Skill
|
|
9
|
+
|
|
10
|
+
Use for individual artifact validation or a whole configured workspace gate with an explicit mode. Do not infer type or readiness from filenames.
|
|
11
|
+
|
|
12
|
+
## Inputs
|
|
13
|
+
|
|
14
|
+
These are human-facing workflow selections, not additional service-request fields.
|
|
15
|
+
Supply explicit selections; neither omitted inputs nor profile roots create authority.
|
|
16
|
+
|
|
17
|
+
| Input | Required contract |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| profile | Required validated profile and trusted workspace binding. |
|
|
20
|
+
| artifact_kind | Required exact supported kind for individual validation; explicit workspace selection uses the workspace validator. |
|
|
21
|
+
| selection | Required exact artifact paths/IDs or explicit whole configured workspace. |
|
|
22
|
+
| mode | Required explicit structural, discovery-complete, parity-complete or planning mode, as applicable. |
|
|
23
|
+
|
|
24
|
+
## Routing
|
|
25
|
+
|
|
26
|
+
Logical role: `migration-coverage-reviewer`.
|
|
27
|
+
The root owns preparation and launch; this skill never auto-launches a logical
|
|
28
|
+
role through frontmatter. The existing resolver selects the exact deployment,
|
|
29
|
+
model, effort and profile hash under the existing C1-C4 ceiling and execution
|
|
30
|
+
context. Do not choose a model, self-launch, create another scheduler or promote
|
|
31
|
+
an ordinary discovery action into an issue. The production-write count is zero.
|
|
32
|
+
|
|
33
|
+
## Exact output boundary
|
|
34
|
+
|
|
35
|
+
These rows are maximum workflow caps, not instructions to create every kind.
|
|
36
|
+
Only the prepared required outputs may be created or replaced.
|
|
37
|
+
|
|
38
|
+
| Artifact kind | Profile key | Constraint |
|
|
39
|
+
| --- | --- | --- |
|
|
40
|
+
| validation-report | reports | Exact requested selection and mode |
|
|
41
|
+
| coverage-report | reports | Exact workspace validation pair when requested |
|
|
42
|
+
| required-output-manifest | reports | Exact invocation manifest only |
|
|
43
|
+
|
|
44
|
+
The profile keys are maximum configured locations, not write grants. Each
|
|
45
|
+
prepared output row binds `artifact_kind`, `id`, `path`, `format` and
|
|
46
|
+
`expected_sha256`. The protected invocation independently binds the baseline,
|
|
47
|
+
selected members, pins and exact grants; a manifest cannot expand them. A null
|
|
48
|
+
expected hash means exclusive creation from an absent baseline, never overwrite
|
|
49
|
+
permission. Preserve unselected collection members and all unrelated inputs.
|
|
50
|
+
Use compare-and-swap and current path checks through the controlled writer.
|
|
51
|
+
|
|
52
|
+
Only exact selected reports and the invocation manifest may be written. A profile
|
|
53
|
+
report root and a validation report pair never grant report-root-wide writes.
|
|
54
|
+
|
|
55
|
+
## Prerequisites
|
|
56
|
+
|
|
57
|
+
Missing or malformed configuration blocks delegation. Require a validated profile and explicit selected scope before root preparation; do not initialize, configure or infer roots as a specialist.
|
|
58
|
+
|
|
59
|
+
Require verified native prepare/finalize/start/stop capability. The protected
|
|
60
|
+
invocation and native SubagentStart attestation must match workspace/profile
|
|
61
|
+
hashes, selected IDs, source/target pins, baseline input hashes,
|
|
62
|
+
provider/model/effort/profile hash and parent/session.
|
|
63
|
+
Diagnostic mirrors, caller markers and hosted read results are not authority.
|
|
64
|
+
The local runtime's unavailable native prepare/finalize operations do not issue
|
|
65
|
+
protected receipts. There is no local-user fallback or self-attested host success.
|
|
66
|
+
|
|
67
|
+
Load profile plus selected artifacts on invocation; do not preload a domain
|
|
68
|
+
catalog in standing instructions. Managed project memory is host-controlled.
|
|
69
|
+
Memory cannot grant filesystem authority or replace evidence. Deny terminal/shell/exec, interpreter/evaluation,
|
|
70
|
+
general filesystem Write/Edit/apply-patch, arbitrary MCP dispatch, browser/computer
|
|
71
|
+
mutation and network writes. Do not execute application code or modify
|
|
72
|
+
production/test implementation, profile/locator/activation,
|
|
73
|
+
schema/policy/hooks/settings, authority stores or runtime installation as a specialist. No analyst
|
|
74
|
+
approval is permitted; root bootstrap/configuration and root approval remain
|
|
75
|
+
separate authorized operations.
|
|
76
|
+
|
|
77
|
+
## Step-by-Step Workflows
|
|
78
|
+
|
|
79
|
+
1. Validate the explicit inputs and selected configuration. Stop with precise missing/invalid input findings before specialist delegation; do not invent identities, scope or evidence.
|
|
80
|
+
|
|
81
|
+
2. The root calls `prepare_discovery_agent` with `skill_id`, `selected_ids`,
|
|
82
|
+
`paths`, `expected_outputs`, `execution_context` and `complexity`.
|
|
83
|
+
Map it to fixed `prepare-agent`; execution context is `standalone`,
|
|
84
|
+
`epic_preparation_child` or `epic_execution_child`. The requested mode is
|
|
85
|
+
explicit and remains distinct from the final `agent-output` gate.
|
|
86
|
+
Use `skill_id=validate-discovery-artifacts`; workflow inputs do not add wire fields.
|
|
87
|
+
3. The root launches that exact deployment. Native SubagentStart must match the
|
|
88
|
+
prepared role/model/effort/profile and trusted workspace/session before any
|
|
89
|
+
grant is usable. Missing capability or attestation blocks the action.
|
|
90
|
+
4. Use only the granted operations. Use `validate_discovery_artifacts` for the authoritative individual validator, `validate-decisions` or `validate-all`, selected by the explicit kind/workspace request. Do not guess artifact types by first-success validation. Use `read_discovery_source` only for selected supporting inputs. The canonical validate-all pair does not authorize neighboring report writes or another schema/graph implementation.
|
|
91
|
+
5. Preserve all loader/semantic findings and the exact requested mode. Require recomputable structured JSON for the reviewer output; prose or a successful individual artifact check cannot authorize a complete graph. Confirmed empty scope and explicit planning prerequisites are evaluated by the authoritative validator. Do not update inventory, coverage ledger, contracts, parity entries, evidence, decisions or configuration to force a pass.
|
|
92
|
+
6. Produce every exact required output and the stored `required-output-manifest`,
|
|
93
|
+
preserving its output array order for the digest. Validate claims, references,
|
|
94
|
+
pins and selected-ID accounting. Purpose-built tools supply authorized proposal
|
|
95
|
+
inputs for `input_path`/`evidence_path`; never invent a generic Write staging
|
|
96
|
+
step. Server-side role checks, exact one-use authorization and prospective
|
|
97
|
+
validation remain mandatory. Bounded source reads preserve content identity
|
|
98
|
+
and line ranges; truncation requires a narrower selection, not a completeness
|
|
99
|
+
claim or filesystem fallback.
|
|
100
|
+
7. Call `finalize_discovery_agent` as the specialist, mapped to `finalize-agent`
|
|
101
|
+
with `mode=agent-output`, non-null `invocation_ref` and no operation inputs.
|
|
102
|
+
It validates the protected invocation's outputs, not final-message paths.
|
|
103
|
+
Native SubagentStop then verifies current output authority.
|
|
104
|
+
Missing final text cannot skip native stop validation.
|
|
105
|
+
8. After native stop, the root records the explicit result, content-addressed artifact references,
|
|
106
|
+
selected-ID accounting and all findings. A successful tool call or generated
|
|
107
|
+
path alone is not evidence of completed discovery.
|
|
108
|
+
|
|
109
|
+
## Stop and result
|
|
110
|
+
|
|
111
|
+
A valid FAIL report may finish as `output-valid/result-fail`; it never authorizes discovery, parity or planning completion. Only a current protected passing receipt for the exact requested completion/planning mode can satisfy that gate.
|
|
112
|
+
|
|
113
|
+
Structural success is not discovery, parity or planning completion.
|
|
114
|
+
Missing prepare/finalize/start/stop capability, missing outputs, invalid claims,
|
|
115
|
+
unresolved required work, wrong role/model/start context or a stale/missing
|
|
116
|
+
receipt blocks successful completion. Return explicit
|
|
117
|
+
PASS, FAIL or BLOCKED, distinguishing valid incremental outputs from a passing
|
|
118
|
+
completion gate. Missing native enforcement remains BLOCKED even when ordinary
|
|
119
|
+
local-user operations can run; do not substitute CLI success for native authority.
|
|
120
|
+
|
|
121
|
+
## References
|
|
122
|
+
|
|
123
|
+
- [Canonical migration-coverage-reviewer contract](../../agents/migration-coverage-reviewer.agent.md)
|
|
124
|
+
- Installed v2 `service-request` and `required-output-manifest` schema contracts;
|
|
125
|
+
consume them through the authoritative runtime, with no checkout-schema fallback.
|
|
126
|
+
- The selected profile and pinned local artifacts supplied for this invocation;
|
|
127
|
+
references do not preload catalogs or grant access to unselected paths.
|
|
@@ -75,7 +75,11 @@ $script:GENERATED_AGENT_FAMILIES = @(
|
|
|
75
75
|
'python-typed-engineer',
|
|
76
76
|
'powershell-typed-engineer',
|
|
77
77
|
'csharp-typed-engineer',
|
|
78
|
-
'typescript-engineer'
|
|
78
|
+
'typescript-engineer',
|
|
79
|
+
'legacy-parity-analyst',
|
|
80
|
+
'runtime-characterization-analyst',
|
|
81
|
+
'requirements-reconciler',
|
|
82
|
+
'migration-coverage-reviewer'
|
|
79
83
|
)
|
|
80
84
|
$script:LOGICAL_AGENT_ALIASES = @{ 'feature-review' = 'feature-reviewer' }
|
|
81
85
|
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
<#
|
|
2
|
+
.SYNOPSIS
|
|
3
|
+
Constrain direct discovery routing to the fixed operation contracts.
|
|
4
|
+
.DESCRIPTION
|
|
5
|
+
Pure companion to CodexTopology. Constants mirror discovery_operations in
|
|
6
|
+
config/orchestration-routing.json so published consumers need no config or
|
|
7
|
+
interpreter. Receipts describe a specialist and allowed output kinds; they
|
|
8
|
+
grant no writes, approvals, installation rights, or native tool authority.
|
|
9
|
+
CONVENTION: this module fails fast at module scope and imports its siblings with -ErrorAction Stop.
|
|
10
|
+
#>
|
|
11
|
+
Set-StrictMode -Version Latest
|
|
12
|
+
$ErrorActionPreference = 'Stop'
|
|
13
|
+
|
|
14
|
+
# Keep each exact operation independent: sharing a role never broadens its kinds.
|
|
15
|
+
$script:DISCOVERY_OPERATIONS = @{
|
|
16
|
+
'inventory-legacy-system' = @{
|
|
17
|
+
role = 'legacy-parity-analyst'
|
|
18
|
+
kinds = @('coverage-ledger', 'evidence-reference', 'inventory-snapshot',
|
|
19
|
+
'required-output-manifest', 'unspecified-behavior', 'unspecified-behavior-collection')
|
|
20
|
+
}
|
|
21
|
+
'extract-feature-contract' = @{
|
|
22
|
+
role = 'legacy-parity-analyst'
|
|
23
|
+
kinds = @('coverage-ledger', 'evidence-reference', 'feature-contract',
|
|
24
|
+
'required-output-manifest', 'unspecified-behavior', 'unspecified-behavior-collection')
|
|
25
|
+
}
|
|
26
|
+
'characterize-runtime-behavior' = @{
|
|
27
|
+
role = 'runtime-characterization-analyst'
|
|
28
|
+
kinds = @('evidence-payload', 'evidence-reference', 'required-output-manifest',
|
|
29
|
+
'runtime-characterization-scenario', 'unspecified-behavior', 'unspecified-behavior-collection')
|
|
30
|
+
}
|
|
31
|
+
'reconcile-parity-matrix' = @{
|
|
32
|
+
role = 'requirements-reconciler'
|
|
33
|
+
kinds = @('parity-matrix', 'required-output-manifest',
|
|
34
|
+
'unspecified-behavior', 'unspecified-behavior-collection')
|
|
35
|
+
}
|
|
36
|
+
'review-discovery-coverage' = @{
|
|
37
|
+
role = 'migration-coverage-reviewer'
|
|
38
|
+
kinds = @('completion-report', 'coverage-report', 'parity-report',
|
|
39
|
+
'required-output-manifest', 'validation-report')
|
|
40
|
+
}
|
|
41
|
+
'adjudicate-unspecified-behavior' = @{
|
|
42
|
+
role = 'requirements-reconciler'
|
|
43
|
+
kinds = @('acceptance-specification', 'acceptance-view', 'product-decision',
|
|
44
|
+
'product-decision-collection', 'required-output-manifest',
|
|
45
|
+
'unspecified-behavior', 'unspecified-behavior-collection')
|
|
46
|
+
}
|
|
47
|
+
'generate-acceptance-scenarios' = @{
|
|
48
|
+
role = 'requirements-reconciler'
|
|
49
|
+
kinds = @('acceptance-specification', 'acceptance-view', 'required-output-manifest')
|
|
50
|
+
}
|
|
51
|
+
'initialize-discovery-workspace' = @{
|
|
52
|
+
role = 'migration-coverage-reviewer'
|
|
53
|
+
kinds = @('coverage-report', 'required-output-manifest', 'validation-report')
|
|
54
|
+
}
|
|
55
|
+
'validate-discovery-artifacts' = @{
|
|
56
|
+
role = 'migration-coverage-reviewer'
|
|
57
|
+
kinds = @('coverage-report', 'required-output-manifest', 'validation-report')
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function Resolve-CodexDiscoveryTopology {
|
|
62
|
+
<#
|
|
63
|
+
.SYNOPSIS
|
|
64
|
+
Select a fixed discovery role or allow the unchanged ordinary route.
|
|
65
|
+
.DESCRIPTION
|
|
66
|
+
Called after topology validates context, languages, counts and boolean
|
|
67
|
+
type. Validates selectors without coercion, rejects nonzero code/test
|
|
68
|
+
scope and root overrides, then returns a new seventeen-key receipt.
|
|
69
|
+
Ordinary requests with no skill return null. Invalid selectors or
|
|
70
|
+
combinations throw ArgumentException in the shared contract order.
|
|
71
|
+
No I/O or native authority is created; returned arrays are fresh copies.
|
|
72
|
+
.PARAMETER InvocationKind
|
|
73
|
+
Exact ordinary or discovery string; all other values are rejected.
|
|
74
|
+
.PARAMETER SkillId
|
|
75
|
+
Exact canonical skill string for discovery, null for ordinary requests.
|
|
76
|
+
.PARAMETER Context
|
|
77
|
+
Execution context already validated by the topology resolver; retained
|
|
78
|
+
unchanged. Named Context because ExecutionContext is a readonly
|
|
79
|
+
automatic variable.
|
|
80
|
+
.PARAMETER Language
|
|
81
|
+
Already normalized languages. Discovery requires an empty collection.
|
|
82
|
+
.PARAMETER ProductionFileCount
|
|
83
|
+
Already validated integer count. Discovery requires zero.
|
|
84
|
+
.PARAMETER TestFileCount
|
|
85
|
+
Already validated integer count. Discovery requires zero.
|
|
86
|
+
.PARAMETER CrossCutting
|
|
87
|
+
Already validated boolean. Discovery requires false.
|
|
88
|
+
.PARAMETER RootPersona
|
|
89
|
+
Raw optional root override. Discovery requires null.
|
|
90
|
+
.OUTPUTS
|
|
91
|
+
System.Collections.Hashtable for discovery, or null for ordinary routing.
|
|
92
|
+
#>
|
|
93
|
+
[CmdletBinding()]
|
|
94
|
+
[OutputType([hashtable])]
|
|
95
|
+
param(
|
|
96
|
+
[Parameter(Mandatory)][AllowNull()][object] $InvocationKind,
|
|
97
|
+
[Parameter(Mandatory)][AllowNull()][object] $SkillId,
|
|
98
|
+
[Parameter(Mandatory)][string] $Context,
|
|
99
|
+
[Parameter(Mandatory)][AllowEmptyCollection()][string[]] $Language,
|
|
100
|
+
[Parameter(Mandatory)][int] $ProductionFileCount,
|
|
101
|
+
[Parameter(Mandatory)][int] $TestFileCount,
|
|
102
|
+
[Parameter(Mandatory)][bool] $CrossCutting,
|
|
103
|
+
[Parameter(Mandatory)][AllowNull()][object] $RootPersona
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
# Object selectors retain their actual types; case-insensitive coercion
|
|
107
|
+
# would otherwise admit unsupported operations at this authority boundary.
|
|
108
|
+
if ($InvocationKind -isnot [string] -or @('ordinary', 'discovery') -cnotcontains $InvocationKind) {
|
|
109
|
+
throw [System.ArgumentException]::new('invocation_kind must be ordinary or discovery.')
|
|
110
|
+
}
|
|
111
|
+
if ($InvocationKind -ceq 'ordinary') {
|
|
112
|
+
if ($null -ne $SkillId) {
|
|
113
|
+
throw [System.ArgumentException]::new('skill_id is only valid for discovery invocations.')
|
|
114
|
+
}
|
|
115
|
+
return $null
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
# Reject discovery scope before looking up a role, preserving guard order
|
|
119
|
+
# even when several fields are malformed in the same invocation.
|
|
120
|
+
if ($null -ne $RootPersona) {
|
|
121
|
+
throw [System.ArgumentException]::new('Discovery invocations do not accept root_persona.')
|
|
122
|
+
}
|
|
123
|
+
if ($ProductionFileCount -ne 0) {
|
|
124
|
+
throw [System.ArgumentException]::new('Discovery invocations require production_file_count=0.')
|
|
125
|
+
}
|
|
126
|
+
if ($TestFileCount -ne 0) {
|
|
127
|
+
throw [System.ArgumentException]::new('Discovery invocations require test_file_count=0.')
|
|
128
|
+
}
|
|
129
|
+
if ($Language.Count -ne 0) {
|
|
130
|
+
throw [System.ArgumentException]::new('Discovery invocations do not accept languages.')
|
|
131
|
+
}
|
|
132
|
+
if ($CrossCutting) {
|
|
133
|
+
throw [System.ArgumentException]::new('Discovery invocations do not accept cross_cutting.')
|
|
134
|
+
}
|
|
135
|
+
if ($SkillId -isnot [string] -or $script:DISCOVERY_OPERATIONS.Keys -cnotcontains $SkillId) {
|
|
136
|
+
throw [System.ArgumentException]::new('Discovery invocations require a supported skill_id.')
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
$operation = $script:DISCOVERY_OPERATIONS[$SkillId]
|
|
140
|
+
return @{
|
|
141
|
+
execution_context = $Context
|
|
142
|
+
languages = [string[]]@()
|
|
143
|
+
production_file_count = 0
|
|
144
|
+
test_file_count = 0
|
|
145
|
+
cross_cutting = $false
|
|
146
|
+
root_persona = $null
|
|
147
|
+
route = 'discovery'
|
|
148
|
+
topology = 'discovery_specialist'
|
|
149
|
+
logical_agent = $operation.role
|
|
150
|
+
routing_reason = 'fixed_discovery_operation'
|
|
151
|
+
max_production_files = 0
|
|
152
|
+
max_test_files = 0
|
|
153
|
+
invocation_kind = 'discovery'
|
|
154
|
+
skill_id = $SkillId
|
|
155
|
+
output_contract_version = '2.0.0'
|
|
156
|
+
permissible_artifact_kinds = [string[]]@($operation.kinds)
|
|
157
|
+
gate_mode = 'agent-output'
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
Export-ModuleMember -Function Resolve-CodexDiscoveryTopology
|
|
@@ -53,6 +53,8 @@
|
|
|
53
53
|
Set-StrictMode -Version Latest
|
|
54
54
|
$ErrorActionPreference = 'Stop'
|
|
55
55
|
|
|
56
|
+
Import-Module (Join-Path $PSScriptRoot 'CodexDiscoveryRouting.psm1') -ErrorAction Stop
|
|
57
|
+
|
|
56
58
|
# The three permitted execution contexts, the sorted tuple rendering the Python
|
|
57
59
|
# message interpolates, and the two contexts that mark epic child work.
|
|
58
60
|
$script:VALID_EXECUTION_CONTEXTS = @('standalone', 'epic_preparation_child', 'epic_execution_child')
|
|
@@ -249,11 +251,17 @@ function Resolve-CodexTopology {
|
|
|
249
251
|
Whether the change is cross-cutting. Must be a boolean.
|
|
250
252
|
.PARAMETER RootPersona
|
|
251
253
|
An optional forced root persona, which requires a standalone context.
|
|
254
|
+
.PARAMETER InvocationKind
|
|
255
|
+
Exact ordinary or discovery selector. Defaults to ordinary routing.
|
|
256
|
+
.PARAMETER SkillId
|
|
257
|
+
Exact canonical discovery operation. Must be absent for ordinary routing.
|
|
252
258
|
.OUTPUTS
|
|
253
259
|
System.Collections.Hashtable with the twelve resolved keys:
|
|
254
260
|
execution_context, languages, production_file_count, test_file_count,
|
|
255
261
|
cross_cutting, root_persona, route, topology, logical_agent,
|
|
256
|
-
routing_reason, max_production_files, max_test_files.
|
|
262
|
+
routing_reason, max_production_files, max_test_files. Discovery adds
|
|
263
|
+
invocation_kind, skill_id, output_contract_version,
|
|
264
|
+
permissible_artifact_kinds, and gate_mode; it grants no write authority.
|
|
257
265
|
#>
|
|
258
266
|
[CmdletBinding()]
|
|
259
267
|
[OutputType([hashtable])]
|
|
@@ -281,7 +289,15 @@ function Resolve-CodexTopology {
|
|
|
281
289
|
|
|
282
290
|
[Parameter(Mandatory = $false)]
|
|
283
291
|
[AllowNull()]
|
|
284
|
-
[object] $RootPersona = $null
|
|
292
|
+
[object] $RootPersona = $null,
|
|
293
|
+
|
|
294
|
+
[Parameter(Mandatory = $false)]
|
|
295
|
+
[AllowNull()]
|
|
296
|
+
[object] $InvocationKind = 'ordinary',
|
|
297
|
+
|
|
298
|
+
[Parameter(Mandatory = $false)]
|
|
299
|
+
[AllowNull()]
|
|
300
|
+
[object] $SkillId = $null
|
|
285
301
|
)
|
|
286
302
|
|
|
287
303
|
if ($script:VALID_EXECUTION_CONTEXTS -cnotcontains $ExecutionContext) {
|
|
@@ -307,6 +323,13 @@ function Resolve-CodexTopology {
|
|
|
307
323
|
$testCount = [int]$TestFileCount
|
|
308
324
|
$isCrossCutting = [bool]$CrossCutting
|
|
309
325
|
|
|
326
|
+
# Discovery validates its closed selector before ordinary root/epic/count
|
|
327
|
+
# dispatch. A fixed specialist receipt conveys routing, never tool grants.
|
|
328
|
+
$discovery = Resolve-CodexDiscoveryTopology -InvocationKind $InvocationKind -SkillId $SkillId `
|
|
329
|
+
-Context $context -Language $languages -ProductionFileCount $productionCount `
|
|
330
|
+
-TestFileCount $testCount -CrossCutting $isCrossCutting -RootPersona $RootPersona
|
|
331
|
+
if ($null -ne $discovery) { return $discovery }
|
|
332
|
+
|
|
310
333
|
# A forced root persona short-circuits all escalation logic and selects
|
|
311
334
|
# itself, but only from a standalone context.
|
|
312
335
|
if ($null -ne $RootPersona) {
|