@danmoisan/drm-copilot-mcp 0.0.1 → 0.0.5
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 +5 -1
- package/package.json +21 -5
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/MEMORY.md +15 -3
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/feedback_branch_base_check_unmerged_pr_deps.md +16 -0
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/feedback_every_change_through_lifecycle.md +15 -0
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/feedback_policy_compliance_not_optional.md +18 -0
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/feedback_potential_to_issue_creates_github_issue.md +13 -0
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/feedback_remediation_plan_em_dash_required.md +13 -0
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/feedback_small_bug_uses_minor_audit.md +13 -0
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/feedback_test_files_count_against_500_cap.md +13 -0
- package/resources/claude-customizations/.claude/agents/atomic-executor.md +7 -7
- package/resources/claude-customizations/.claude/agents/csharp-typed-engineer.md +4 -5
- package/resources/claude-customizations/.claude/agents/feature-review.md +7 -3
- package/resources/claude-customizations/.claude/agents/orchestrator.md +16 -1
- package/resources/claude-customizations/.claude/agents/powershell-typed-engineer.md +1 -1
- package/resources/claude-customizations/.claude/hooks/enforce-checkpoint-monotonic.ps1 +245 -0
- package/resources/claude-customizations/.claude/hooks/enforce-completion-consistency.ps1 +273 -0
- package/resources/claude-customizations/.claude/hooks/enforce-feature-folder-order.ps1 +148 -0
- package/resources/claude-customizations/.claude/hooks/enforce-pr-author-skill.ps1 +190 -0
- package/resources/claude-customizations/.claude/hooks/enforce-prd-feature-before-planner.ps1 +216 -0
- package/resources/claude-customizations/.claude/hooks/enforce-promotion-mcp-only.ps1 +84 -15
- package/resources/claude-customizations/.claude/hooks/validate-executor-output.ps1 +1 -1
- package/resources/claude-customizations/.claude/hooks/validate-feature-review-coverage.ps1 +75 -5
- package/resources/claude-customizations/.claude/hooks/validate-orchestrator-output.ps1 +93 -0
- package/resources/claude-customizations/.claude/hooks/validate-task-researcher-output.ps1 +68 -0
- package/resources/claude-customizations/.claude/rules/architecture-boundaries.md +46 -0
- package/resources/claude-customizations/.claude/rules/benchmark-baselines.md +35 -0
- package/resources/claude-customizations/.claude/rules/ci-workflows.md +36 -0
- package/resources/claude-customizations/.claude/rules/csharp.md +62 -16
- package/resources/claude-customizations/.claude/rules/general-code-change.md +12 -3
- package/resources/claude-customizations/.claude/rules/general-unit-test.md +47 -2
- package/resources/claude-customizations/.claude/rules/orchestrator-state.md +39 -0
- package/resources/claude-customizations/.claude/rules/powershell.md +5 -5
- package/resources/claude-customizations/.claude/rules/python.md +4 -3
- package/resources/claude-customizations/.claude/rules/quality-tiers.md +51 -0
- package/resources/claude-customizations/.claude/rules/typescript.md +37 -8
- package/resources/claude-customizations/.claude/settings.json +37 -12
- package/resources/claude-customizations/.claude/skills/atomic-plan-contract/SKILL.md +2 -2
- package/resources/claude-customizations/.claude/skills/csharp-qa-gate/SKILL.md +25 -10
- package/resources/claude-customizations/.claude/skills/execute-hard-lock/SKILL.md +6 -6
- package/resources/claude-customizations/.claude/skills/feature-promotion-lifecycle/SKILL.md +8 -8
- package/resources/claude-customizations/.claude/skills/feature-review-workflow/SKILL.md +17 -6
- package/resources/claude-customizations/.claude/skills/human-exception-runbook/SKILL.md +52 -0
- package/resources/claude-customizations/.claude/skills/human-exception-runbook/example.runbook.md +36 -0
- package/resources/claude-customizations/.claude/skills/invoke-csharp-engineer/SKILL.md +4 -4
- package/resources/claude-customizations/.claude/skills/orchestrate/SKILL.md +96 -3
- package/resources/claude-customizations/.claude/skills/policy-audit-template-usage/SKILL.md +3 -3
- package/resources/claude-customizations/.claude/skills/powershell-qa-gate/SKILL.md +4 -4
- package/resources/claude-customizations/.claude/skills/pr-base-branch-merge-base/SKILL.md +3 -3
- package/resources/claude-customizations/.claude/skills/python-qa-gate/SKILL.md +1 -1
- package/resources/claude-customizations/.claude/skills/remediation-handoff-atomic-planner/SKILL.md +90 -17
- package/resources/claude-dir-customizations/.mcp.json +3 -3
- package/resources/codex-and-agents-customizations/.agents/README.md +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/acceptance-criteria-tracking/SKILL.md +0 -5
- package/resources/codex-and-agents-customizations/.agents/skills/architecture-boundaries/SKILL.md +52 -0
- package/resources/codex-and-agents-customizations/.agents/skills/atomic-plan-contract/SKILL.md +16 -8
- package/resources/codex-and-agents-customizations/.agents/skills/benchmark-baselines/SKILL.md +44 -0
- package/resources/codex-and-agents-customizations/.agents/skills/ci-workflows/SKILL.md +45 -0
- package/resources/codex-and-agents-customizations/.agents/skills/commit-message/SKILL.md +3 -11
- package/resources/codex-and-agents-customizations/.agents/skills/csharp/SKILL.md +1 -5
- package/resources/codex-and-agents-customizations/.agents/skills/csharp-change-budget-router/SKILL.md +1 -6
- package/resources/codex-and-agents-customizations/.agents/skills/csharp-orchestration-state-machine/SKILL.md +0 -5
- package/resources/codex-and-agents-customizations/.agents/skills/csharp-qa-gate/SKILL.md +0 -5
- package/resources/codex-and-agents-customizations/.agents/skills/evidence-and-timestamp-conventions/SKILL.md +0 -5
- package/resources/codex-and-agents-customizations/.agents/skills/execute-hard-lock/SKILL.md +8 -17
- package/resources/codex-and-agents-customizations/.agents/skills/feature-promotion-lifecycle/SKILL.md +13 -14
- package/resources/codex-and-agents-customizations/.agents/skills/feature-review-workflow/SKILL.md +1 -6
- package/resources/codex-and-agents-customizations/.agents/skills/fill-feature-docs/SKILL.md +0 -5
- package/resources/codex-and-agents-customizations/.agents/skills/general-code-change/SKILL.md +86 -0
- package/resources/codex-and-agents-customizations/.agents/skills/general-unit-test/SKILL.md +111 -0
- package/resources/codex-and-agents-customizations/.agents/skills/human-exception-runbook/SKILL.md +57 -0
- package/resources/codex-and-agents-customizations/.agents/skills/human-exception-runbook/example.runbook.md +36 -0
- package/resources/codex-and-agents-customizations/.agents/skills/invoke-csharp-engineer/SKILL.md +0 -9
- package/resources/codex-and-agents-customizations/.agents/skills/invoke-powershell-engineer/SKILL.md +0 -9
- package/resources/codex-and-agents-customizations/.agents/skills/invoke-python-engineer/SKILL.md +0 -9
- package/resources/codex-and-agents-customizations/.agents/skills/make-skill-template/SKILL.md +0 -5
- package/resources/codex-and-agents-customizations/.agents/skills/orchestrate/SKILL.md +93 -8
- package/resources/codex-and-agents-customizations/.agents/skills/orchestrator-state/SKILL.md +48 -0
- package/resources/codex-and-agents-customizations/.agents/skills/orchestrator-workflow/SKILL.md +61 -2
- package/resources/codex-and-agents-customizations/.agents/skills/policy-audit-template-usage/SKILL.md +3 -8
- package/resources/codex-and-agents-customizations/.agents/skills/policy-compliance-order/SKILL.md +0 -10
- package/resources/codex-and-agents-customizations/.agents/skills/powershell/SKILL.md +4 -8
- package/resources/codex-and-agents-customizations/.agents/skills/powershell-change-budget-router/SKILL.md +1 -6
- package/resources/codex-and-agents-customizations/.agents/skills/powershell-orchestration-state-machine/SKILL.md +0 -5
- package/resources/codex-and-agents-customizations/.agents/skills/powershell-qa-gate/SKILL.md +3 -9
- package/resources/codex-and-agents-customizations/.agents/skills/pr-author/SKILL.md +1 -9
- package/resources/codex-and-agents-customizations/.agents/skills/pr-base-branch-merge-base/SKILL.md +4 -9
- package/resources/codex-and-agents-customizations/.agents/skills/pr-context-artifacts/SKILL.md +0 -5
- package/resources/codex-and-agents-customizations/.agents/skills/python/SKILL.md +1 -5
- package/resources/codex-and-agents-customizations/.agents/skills/python-change-budget-router/SKILL.md +1 -6
- package/resources/codex-and-agents-customizations/.agents/skills/python-qa-gate/SKILL.md +0 -5
- package/resources/codex-and-agents-customizations/.agents/skills/python-suppressions/SKILL.md +2 -6
- package/resources/codex-and-agents-customizations/.agents/skills/quality-tiers/SKILL.md +57 -0
- package/resources/codex-and-agents-customizations/.agents/skills/remediation-handoff-atomic-planner/SKILL.md +0 -5
- package/resources/codex-and-agents-customizations/.agents/skills/repo-automation-adapter/SKILL.md +91 -72
- package/resources/codex-and-agents-customizations/.agents/skills/repo-automation-adapter/agents/openai.yaml +1 -1
- package/resources/codex-and-agents-customizations/.agents/skills/research-issue/SKILL.md +0 -10
- package/resources/codex-and-agents-customizations/.agents/skills/review-epic/SKILL.md +0 -5
- package/resources/codex-and-agents-customizations/.agents/skills/review-feature/SKILL.md +0 -5
- package/resources/codex-and-agents-customizations/.agents/skills/review-staged/SKILL.md +0 -5
- package/resources/codex-and-agents-customizations/.agents/skills/self-explanatory-code-commenting/SKILL.md +2 -6
- package/resources/codex-and-agents-customizations/.agents/skills/skill-canonical-location-audit/SKILL.md +0 -5
- package/resources/codex-and-agents-customizations/.agents/skills/tonality/SKILL.md +86 -0
- package/resources/codex-and-agents-customizations/.agents/skills/translate-claude-to-codex/SKILL.md +297 -0
- package/resources/codex-and-agents-customizations/.agents/skills/translate-copilot-to-claude/SKILL.md +0 -22
- package/resources/codex-and-agents-customizations/.agents/skills/typescript/SKILL.md +1 -5
- package/resources/codex-and-agents-customizations/.agents/skills/typescript-suppressions/SKILL.md +2 -6
- package/resources/codex-and-agents-customizations/.agents/skills/update-status/SKILL.md +0 -5
- package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor.toml +5 -5
- package/resources/codex-and-agents-customizations/.codex/agents/orchestrator.toml +91 -63
- package/resources/codex-and-agents-customizations/.codex/agents/powershell-atomic-executor.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer.toml +1 -1
- package/resources/codex-and-agents-customizations/.codex/config.toml +51 -136
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-promotion-mcp-only.ps1 +1 -1
- package/resources/codex-and-agents-customizations/.codex/prompts/orchestrate-work.md +4 -3
- package/resources/codex-and-agents-customizations/.codex/scripts/post-codex-worktree-session.ps1 +5 -0
- package/resources/codex-and-agents-customizations/.github/workflows/_validate-orchestrator-state.yml +68 -0
- package/resources/codex-and-agents-customizations/.github/workflows/validate-orchestrator-state.yml +15 -0
- package/resources/config/orchestration-routing.json +84 -0
- package/resources/customizations/.github/agents/Powershell DI Unit Test Engineer.agent.md +1 -1
- package/resources/customizations/.github/agents/atomic_executor.agent.md +1 -1
- package/resources/customizations/.github/agents/atomic_planning.agent.md +10 -10
- package/resources/customizations/.github/agents/csharp-orchestrator.agent.md +6 -2
- package/resources/customizations/.github/agents/feature-review.agent.md +2 -2
- package/resources/customizations/.github/agents/orchestrator.agent.md +6 -2
- package/resources/customizations/.github/agents/powershell-atomic-executor.agent.md +4 -4
- package/resources/customizations/.github/agents/powershell-atomic-planning.agent.md +10 -10
- package/resources/customizations/.github/agents/powershell-orchestrator.agent.md +6 -2
- package/resources/customizations/.github/agents/powershell-typed-engineer.agent.md +2 -2
- package/resources/customizations/.github/agents/python-orchestrator.agent.md +6 -2
- package/resources/customizations/.github/agents/staged-review.agent.md +1 -1
- package/resources/customizations/.github/instructions/powershell-code-change.instructions.md +6 -6
- package/resources/customizations/.github/prompts/generate-commit-message-repo.prompt.md +1 -1
- package/resources/customizations/.github/prompts/orchestrate-csharp-work.prompt.md +5 -3
- package/resources/customizations/.github/prompts/orchestrate-work.prompt.md +5 -3
- package/resources/customizations/.github/skills/atomic-plan-contract/SKILL.md +14 -1
- package/resources/customizations/.github/skills/feature-promotion-lifecycle/SKILL.md +11 -7
- package/resources/customizations/.github/skills/feature-review-workflow/SKILL.md +10 -1
- package/resources/customizations/.github/skills/pr-base-branch-merge-base/SKILL.md +2 -2
- package/resources/customizations/.github/skills/remediation-handoff-atomic-planner/SKILL.md +5 -0
- package/resources/powershell/PoshQC/settings/pester.runsettings.psd1 +7 -0
- package/resources/scripts/dev_tools/_orchestrator_state_human_interaction.py +127 -0
- package/resources/scripts/dev_tools/_orchestrator_state_routing.py +216 -0
- package/resources/scripts/dev_tools/push_down_claude_customizations.py +191 -5
- package/resources/scripts/dev_tools/validate_orchestration_artifacts.py +103 -411
- package/resources/scripts/dev_tools/validate_orchestration_review_artifacts.py +107 -0
- package/resources/scripts/dev_tools/validate_orchestrator_state.py +428 -0
- package/resources/scripts/dev_tools/validate_policy_audit_artifact.py +448 -0
- package/resources/templates/push_down_claude_customizations.py +227 -6
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/feedback_repo_root_is_source_of_truth.md +0 -11
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/feedback_vsce_verify_package_location.md +0 -19
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/project_extension_location.md +0 -11
- package/resources/claude-customizations/.claude/agent-memory/prd-feature/MEMORY.md +0 -1
- package/resources/claude-customizations/.claude/agent-memory/prd-feature/project_push_down_pattern.md +0 -13
- package/resources/claude-customizations/.claude/agent-memory/task-researcher/MEMORY.md +0 -3
- package/resources/claude-customizations/.claude/agent-memory/task-researcher/project_push_down_claude_dir.md +0 -11
|
@@ -1,137 +1,52 @@
|
|
|
1
|
-
|
|
1
|
+
default_permissions = "orchestrator-workspace"
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"Skill(invoke-powershell-engineer *)",
|
|
54
|
-
"Skill(translate-copilot-to-claude *)",
|
|
55
|
-
"Skill(execute-hard-lock *)",
|
|
56
|
-
"Edit(/.agents/skills/execute-hard-lock/**)",
|
|
57
|
-
"Edit(/.agents/skills/feature-review-workflow/**)",
|
|
58
|
-
"Edit(/.agents/skills/csharp-qa-gate/**)"
|
|
59
|
-
],
|
|
60
|
-
"deny": [
|
|
61
|
-
"Read(./.env)",
|
|
62
|
-
"Read(./.env.*)",
|
|
63
|
-
"Read(./secrets/**)",
|
|
64
|
-
"Edit(./secrets/**)",
|
|
65
|
-
"Write(./secrets/**)"
|
|
66
|
-
],
|
|
67
|
-
"additionalDirectories": [
|
|
68
|
-
"c:\\Users\\DanMoisan\\repos\\drm-copilot\\.claude\\skills\\execute-hard-lock"
|
|
69
|
-
]
|
|
70
|
-
},
|
|
71
|
-
"hooks": {
|
|
72
|
-
"PreToolUse": [
|
|
73
|
-
{
|
|
74
|
-
"matcher": "Bash",
|
|
75
|
-
"hooks": [
|
|
76
|
-
{
|
|
77
|
-
"type": "command",
|
|
78
|
-
"command": "pwsh -NoProfile -File .codex/hooks/validate-bash.ps1"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"type": "command",
|
|
82
|
-
"command": "pwsh -NoProfile -File .codex/hooks/enforce-promotion-mcp-only.ps1"
|
|
83
|
-
}
|
|
84
|
-
]
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
"matcher": "Write|Edit",
|
|
88
|
-
"hooks": [
|
|
89
|
-
{
|
|
90
|
-
"type": "command",
|
|
91
|
-
"command": "pwsh -NoProfile -File .codex/hooks/check-python-test-purity.ps1"
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
"type": "command",
|
|
95
|
-
"command": "pwsh -NoProfile -File .codex/hooks/enforce-python-batch-budget.ps1"
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
"type": "command",
|
|
99
|
-
"command": "pwsh -NoProfile -File .codex/hooks/check-powershell-test-purity.ps1"
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
"type": "command",
|
|
103
|
-
"command": "pwsh -NoProfile -File .codex/hooks/enforce-powershell-batch-budget.ps1"
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
"type": "command",
|
|
107
|
-
"command": "pwsh -NoProfile -File .codex/hooks/enforce-evidence-locations.ps1"
|
|
108
|
-
}
|
|
109
|
-
]
|
|
110
|
-
}
|
|
111
|
-
],
|
|
112
|
-
"SubagentStop": [
|
|
113
|
-
{
|
|
114
|
-
"matcher": "atomic-planner|atomic-executor|feature-review|task-researcher|prd-feature|staged-review|epic-review|status-updater|python-typed-engineer|powershell-typed-engineer|csharp-typed-engineer|typescript-engineer",
|
|
115
|
-
"hooks": [
|
|
116
|
-
{
|
|
117
|
-
"type": "command",
|
|
118
|
-
"command": "pwsh -NoProfile -Command \"$input = $env:CLAUDE_HOOK_INPUT | ConvertFrom-Json; $output = $input.output; if (-not ($output -match '(plan-path|research-path|review-artifact|PREFLIGHT|evidence/)')) { Write-Error 'Subagent stopped without required completion artifact path'; exit 1 }; exit 0\""
|
|
119
|
-
}
|
|
120
|
-
]
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"matcher": "feature-review",
|
|
124
|
-
"hooks": [
|
|
125
|
-
{
|
|
126
|
-
"type": "command",
|
|
127
|
-
"command": "pwsh -NoProfile -File .codex/hooks/validate-feature-review-coverage.ps1"
|
|
128
|
-
}
|
|
129
|
-
]
|
|
130
|
-
}
|
|
131
|
-
]
|
|
132
|
-
},
|
|
133
|
-
"enabledPlugins": {
|
|
134
|
-
"skill-creator@claude-plugins-official": true
|
|
135
|
-
},
|
|
136
|
-
"defaultPermissionMode": "bypassPermissions"
|
|
137
|
-
}
|
|
3
|
+
[mcp_servers.drm-copilot]
|
|
4
|
+
command = "npx"
|
|
5
|
+
args = ["-y", "@danmoisan/drm-copilot-mcp"]
|
|
6
|
+
required = true
|
|
7
|
+
enabled_tools = [
|
|
8
|
+
"collect_commit_context",
|
|
9
|
+
"collect_pr_context",
|
|
10
|
+
"new_potential_entry",
|
|
11
|
+
"new_potential_bug_entry",
|
|
12
|
+
"potential_to_issue",
|
|
13
|
+
"new_active_feature_folder",
|
|
14
|
+
"validate_orchestration_artifacts",
|
|
15
|
+
"resolve_atomic_plan_prompt",
|
|
16
|
+
"resolve_execute_hard_lock_prompt",
|
|
17
|
+
"run_poshqc_format",
|
|
18
|
+
"run_poshqc_analyze",
|
|
19
|
+
"run_poshqc_analyze_autofix",
|
|
20
|
+
"run_poshqc_test",
|
|
21
|
+
]
|
|
22
|
+
default_tools_approval_mode = "prompt"
|
|
23
|
+
|
|
24
|
+
[mcp_servers.drm-copilot.tools.validate_orchestration_artifacts]
|
|
25
|
+
approval_mode = "approve"
|
|
26
|
+
|
|
27
|
+
[features]
|
|
28
|
+
multi_agent = true
|
|
29
|
+
|
|
30
|
+
[permissions.orchestrator-workspace]
|
|
31
|
+
description = "Workspace editing for deterministic orchestration with secret-path deny rules."
|
|
32
|
+
extends = ":workspace"
|
|
33
|
+
|
|
34
|
+
[permissions.orchestrator-workspace.filesystem]
|
|
35
|
+
glob_scan_max_depth = 4
|
|
36
|
+
|
|
37
|
+
[permissions.orchestrator-workspace.filesystem.":workspace_roots"]
|
|
38
|
+
"**/.env" = "deny"
|
|
39
|
+
"**/.env.*" = "deny"
|
|
40
|
+
"secrets" = "deny"
|
|
41
|
+
"secrets/**" = "deny"
|
|
42
|
+
|
|
43
|
+
[permissions.orchestrator-workspace.network]
|
|
44
|
+
enabled = true
|
|
45
|
+
|
|
46
|
+
[permissions.orchestrator-workspace.network.domains]
|
|
47
|
+
"github.com" = "allow"
|
|
48
|
+
"api.github.com" = "allow"
|
|
49
|
+
"objects.githubusercontent.com" = "allow"
|
|
50
|
+
"registry.npmjs.org" = "allow"
|
|
51
|
+
"pypi.org" = "allow"
|
|
52
|
+
"files.pythonhosted.org" = "allow"
|
package/resources/codex-and-agents-customizations/.codex/hooks/enforce-promotion-mcp-only.ps1
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
[CmdletBinding()]
|
|
27
27
|
param()
|
|
28
28
|
|
|
29
|
-
$script:PromotionMcpOnlyBlockedReason = 'PROMOTION_MCP_ONLY_BLOCKED: Direct Bash promotion-script execution is not allowed in agent sessions. Use the
|
|
29
|
+
$script:PromotionMcpOnlyBlockedReason = 'PROMOTION_MCP_ONLY_BLOCKED: Direct Bash promotion-script execution is not allowed in agent sessions. Use the drm-copilot MCP promotion tools instead.'
|
|
30
30
|
|
|
31
31
|
function Get-PromotionMcpOnlyBlockedReason {
|
|
32
32
|
<#
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Route a request through budget-based orchestration and persist until the selected delivery path is complete
|
|
3
|
-
argument-hint: Provide objective, likely files, feature-or-bug hint, constraints, and
|
|
3
|
+
argument-hint: Provide objective, likely files, feature-or-bug hint, constraints, and any explicit initial opt-in for manual bootstrap; otherwise orchestration must remain fully automated
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Spawn `orchestrator` to coordinate the current request from intake through completion.
|
|
@@ -10,13 +10,14 @@ Inputs to provide or infer:
|
|
|
10
10
|
- likely affected production and test files, when known
|
|
11
11
|
- initial classification hint: `feature` or `bug`, when known
|
|
12
12
|
- constraints, preserved APIs, or forbidden changes
|
|
13
|
-
- whether
|
|
13
|
+
- whether the initial user request explicitly opted into manual bootstrap from the beginning
|
|
14
14
|
|
|
15
15
|
Required behavior:
|
|
16
16
|
- estimate change budget first and choose the correct small or large path
|
|
17
17
|
- maintain and resume from the canonical orchestration checkpoint
|
|
18
18
|
- use migrated Codex subagents when available
|
|
19
19
|
- route host-specific lifecycle automation through the shared adapter rules
|
|
20
|
-
- continue until planning, execution, validation, and review are complete for the selected path
|
|
20
|
+
- continue until planning, execution, validation, and review are complete for the selected path
|
|
21
|
+
- do not introduce manual bootstrap, human-operator validation, or any other manual handoff unless the initial user request explicitly opted in from the beginning
|
|
21
22
|
|
|
22
23
|
On completion, report the selected route, branch, key variables, `plan-path` when applicable, checkpoint path, created or updated artifact paths, and final readiness summary.
|
package/resources/codex-and-agents-customizations/.github/workflows/_validate-orchestrator-state.yml
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
name: Validate Orchestrator State
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
inputs:
|
|
6
|
+
state-path:
|
|
7
|
+
description: Repository-relative orchestrator checkpoint path.
|
|
8
|
+
required: false
|
|
9
|
+
type: string
|
|
10
|
+
default: artifacts/orchestration/orchestrator-state.json
|
|
11
|
+
require-checkpoint:
|
|
12
|
+
description: Fail when the checkpoint file is absent.
|
|
13
|
+
required: false
|
|
14
|
+
type: boolean
|
|
15
|
+
default: true
|
|
16
|
+
workflow_dispatch:
|
|
17
|
+
inputs:
|
|
18
|
+
state-path:
|
|
19
|
+
description: Repository-relative orchestrator checkpoint path.
|
|
20
|
+
required: false
|
|
21
|
+
type: string
|
|
22
|
+
default: artifacts/orchestration/orchestrator-state.json
|
|
23
|
+
require-checkpoint:
|
|
24
|
+
description: Fail when the checkpoint file is absent.
|
|
25
|
+
required: false
|
|
26
|
+
type: boolean
|
|
27
|
+
default: true
|
|
28
|
+
|
|
29
|
+
jobs:
|
|
30
|
+
validate-orchestrator-state:
|
|
31
|
+
name: Validate orchestrator checkpoint
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
|
+
|
|
34
|
+
steps:
|
|
35
|
+
- name: Check out repository
|
|
36
|
+
uses: actions/checkout@v4
|
|
37
|
+
|
|
38
|
+
- name: Set up Python
|
|
39
|
+
uses: actions/setup-python@v5
|
|
40
|
+
with:
|
|
41
|
+
python-version: "3.13"
|
|
42
|
+
|
|
43
|
+
- name: Install Poetry
|
|
44
|
+
uses: snok/install-poetry@v1
|
|
45
|
+
with:
|
|
46
|
+
version: latest
|
|
47
|
+
virtualenvs-create: true
|
|
48
|
+
virtualenvs-in-project: true
|
|
49
|
+
|
|
50
|
+
- name: Install dependencies
|
|
51
|
+
run: poetry install --no-interaction
|
|
52
|
+
|
|
53
|
+
- name: Validate checkpoint
|
|
54
|
+
env:
|
|
55
|
+
STATE_PATH: ${{ inputs.state-path }}
|
|
56
|
+
REQUIRE_CHECKPOINT: ${{ inputs.require-checkpoint }}
|
|
57
|
+
run: |
|
|
58
|
+
if [ ! -f "$STATE_PATH" ]; then
|
|
59
|
+
if [ "$REQUIRE_CHECKPOINT" = "true" ]; then
|
|
60
|
+
echo "ERROR: orchestrator checkpoint is required but was not found: $STATE_PATH" >&2
|
|
61
|
+
exit 1
|
|
62
|
+
fi
|
|
63
|
+
echo "No orchestrator checkpoint found at $STATE_PATH; validation skipped."
|
|
64
|
+
exit 0
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
poetry run python -m scripts.dev_tools.validate_orchestration_artifacts \
|
|
68
|
+
orchestrator-state "$STATE_PATH" --require-complete
|
package/resources/codex-and-agents-customizations/.github/workflows/validate-orchestrator-state.yml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: Orchestrator State Gate
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: [main, development]
|
|
6
|
+
push:
|
|
7
|
+
branches: [main, development]
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
validate-orchestrator-state:
|
|
12
|
+
uses: ./.github/workflows/_validate-orchestrator-state.yml
|
|
13
|
+
with:
|
|
14
|
+
state-path: artifacts/orchestration/orchestrator-state.json
|
|
15
|
+
require-checkpoint: false
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"routes": {
|
|
5
|
+
"small": {
|
|
6
|
+
"description": "Minor-audit path for work inside the applicable language budget.",
|
|
7
|
+
"required_agents": [
|
|
8
|
+
"atomic-planner",
|
|
9
|
+
"atomic-executor",
|
|
10
|
+
"feature-reviewer",
|
|
11
|
+
"commit-steward"
|
|
12
|
+
],
|
|
13
|
+
"required_skills": [
|
|
14
|
+
"orchestrate",
|
|
15
|
+
"orchestrator-workflow",
|
|
16
|
+
"feature-promotion-lifecycle",
|
|
17
|
+
"repo-automation-adapter",
|
|
18
|
+
"atomic-plan-contract",
|
|
19
|
+
"acceptance-criteria-tracking",
|
|
20
|
+
"pr-context-artifacts",
|
|
21
|
+
"pr-base-branch-merge-base"
|
|
22
|
+
],
|
|
23
|
+
"required_mcp_tools": [
|
|
24
|
+
"new_potential_entry",
|
|
25
|
+
"potential_to_issue",
|
|
26
|
+
"new_active_feature_folder",
|
|
27
|
+
"collect_commit_context",
|
|
28
|
+
"collect_pr_context",
|
|
29
|
+
"validate_orchestration_artifacts"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"large": {
|
|
33
|
+
"description": "Full feature or bug path for work outside small-path budget.",
|
|
34
|
+
"required_agents": [
|
|
35
|
+
"task-researcher",
|
|
36
|
+
"prd-feature",
|
|
37
|
+
"atomic-planner",
|
|
38
|
+
"atomic-executor",
|
|
39
|
+
"feature-reviewer",
|
|
40
|
+
"commit-steward"
|
|
41
|
+
],
|
|
42
|
+
"required_skills": [
|
|
43
|
+
"orchestrate",
|
|
44
|
+
"orchestrator-workflow",
|
|
45
|
+
"feature-promotion-lifecycle",
|
|
46
|
+
"repo-automation-adapter",
|
|
47
|
+
"atomic-plan-contract",
|
|
48
|
+
"acceptance-criteria-tracking",
|
|
49
|
+
"pr-context-artifacts",
|
|
50
|
+
"pr-base-branch-merge-base"
|
|
51
|
+
],
|
|
52
|
+
"required_mcp_tools": [
|
|
53
|
+
"new_potential_entry",
|
|
54
|
+
"potential_to_issue",
|
|
55
|
+
"new_active_feature_folder",
|
|
56
|
+
"collect_commit_context",
|
|
57
|
+
"collect_pr_context",
|
|
58
|
+
"validate_orchestration_artifacts"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"remediation": {
|
|
62
|
+
"description": "Review-triggered remediation loop.",
|
|
63
|
+
"required_agents": [
|
|
64
|
+
"atomic-planner",
|
|
65
|
+
"atomic-executor",
|
|
66
|
+
"feature-reviewer",
|
|
67
|
+
"commit-steward"
|
|
68
|
+
],
|
|
69
|
+
"required_skills": [
|
|
70
|
+
"orchestrate",
|
|
71
|
+
"orchestrator-workflow",
|
|
72
|
+
"repo-automation-adapter",
|
|
73
|
+
"atomic-plan-contract",
|
|
74
|
+
"acceptance-criteria-tracking",
|
|
75
|
+
"pr-context-artifacts"
|
|
76
|
+
],
|
|
77
|
+
"required_mcp_tools": [
|
|
78
|
+
"collect_commit_context",
|
|
79
|
+
"collect_pr_context",
|
|
80
|
+
"validate_orchestration_artifacts"
|
|
81
|
+
]
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -91,7 +91,7 @@ If any gate fails:
|
|
|
91
91
|
You must run the repo toolchain via `#tool:terminal`.
|
|
92
92
|
|
|
93
93
|
### Baseline runs (required before edits)
|
|
94
|
-
- Analyzer baseline (repo standard): `
|
|
94
|
+
- Analyzer baseline (repo standard): `mcp__drm-copilot__run_poshqc_analyze`
|
|
95
95
|
- Test baseline (targeted): run only the relevant Pester file(s) or tag/filter used by the repo
|
|
96
96
|
- Coverage baseline: capture per-file coverage for the touched file(s), and overall if applicable
|
|
97
97
|
|
|
@@ -242,7 +242,7 @@ If the user says “resume”, “continue”, or “try again”:
|
|
|
242
242
|
- When completing a task or a plan, report the toolchain status explicitly:
|
|
243
243
|
- For python, this is Black, Ruff, Pyright, Pytest, and coverage.
|
|
244
244
|
- For bash, this is shell QC and bats testing.
|
|
245
|
-
- For powershell, this is `
|
|
245
|
+
- For powershell, this is `mcp__drm-copilot__run_poshqc_format`, `mcp__drm-copilot__run_poshqc_analyze`, and `mcp_drmcopilotext_run_poshqc_test`.
|
|
246
246
|
- For json, this is json formatting and json linting.
|
|
247
247
|
- Always end with the updated checklist so the user can see progress.
|
|
248
248
|
|
|
@@ -361,13 +361,13 @@ When the work involves tests:
|
|
|
361
361
|
|
|
362
362
|
**Bad:**
|
|
363
363
|
|
|
364
|
-
* [ ] [P3-T1] Implement tests for `
|
|
365
|
-
* [ ] [P3-T2] Write unit tests for `
|
|
364
|
+
* [ ] [P3-T1] Implement tests for `mcp__drm-copilot__run_poshqc_format`
|
|
365
|
+
* [ ] [P3-T2] Write unit tests for `mcp__drm-copilot__run_poshqc_analyze`
|
|
366
366
|
|
|
367
367
|
**Good:**
|
|
368
368
|
|
|
369
|
-
* [ ] [P3-T1] Add regression test for `
|
|
370
|
-
* [ ] [P3-T2] Add regression test for `
|
|
369
|
+
* [ ] [P3-T1] Add regression test for `mcp__drm-copilot__run_poshqc_format` forwarding selected `scan_folders`
|
|
370
|
+
* [ ] [P3-T2] Add regression test for `mcp__drm-copilot__run_poshqc_analyze` rejecting invalid scan-folder input
|
|
371
371
|
* [ ] [P3-T3] Add regression test for `mcp_drmcopilotext_run_poshqc_test` preserving the selected workspace scope
|
|
372
372
|
|
|
373
373
|
### 5.4.1 TDD Red regression tests must be tagged (MANDATORY)
|
|
@@ -422,15 +422,15 @@ When refactoring is required (e.g., to enable dependency injection, improve test
|
|
|
422
422
|
|
|
423
423
|
**Bad:**
|
|
424
424
|
|
|
425
|
-
* [ ] [P1-T1] Refactor `
|
|
425
|
+
* [ ] [P1-T1] Refactor `mcp__drm-copilot__run_poshqc_analyze_autofix` integration for testability
|
|
426
426
|
|
|
427
427
|
**Good:**
|
|
428
428
|
|
|
429
|
-
* [ ] [P1-T1] Identify external dependencies used by `
|
|
430
|
-
* [ ] [P1-T2] Extract the autofix invocation seam behind `
|
|
431
|
-
* [ ] [P1-T3] Add an injectable execution seam for `
|
|
432
|
-
* [ ] [P1-T4] Update all call sites of `
|
|
433
|
-
* [ ] [P1-T5] Verify that `
|
|
429
|
+
* [ ] [P1-T1] Identify external dependencies used by `mcp__drm-copilot__run_poshqc_analyze_autofix` and list them in an internal note
|
|
430
|
+
* [ ] [P1-T2] Extract the autofix invocation seam behind `mcp__drm-copilot__run_poshqc_analyze_autofix` into helper functions
|
|
431
|
+
* [ ] [P1-T3] Add an injectable execution seam for `mcp__drm-copilot__run_poshqc_analyze_autofix` with a production default
|
|
432
|
+
* [ ] [P1-T4] Update all call sites of `mcp__drm-copilot__run_poshqc_analyze_autofix` to use the default seam
|
|
433
|
+
* [ ] [P1-T5] Verify that `mcp__drm-copilot__run_poshqc_analyze_autofix` is mockable via the new helper functions in tests
|
|
434
434
|
|
|
435
435
|
3. **No umbrella refactor tasks**
|
|
436
436
|
You MUST NOT use a single task that says “Refactor X for testability.” Always decompose into multiple atomic slices as above.
|
|
@@ -111,6 +111,10 @@ Use these reusable skills to avoid duplicating shared operations:
|
|
|
111
111
|
- `${feature-folder}`: created active feature folder path
|
|
112
112
|
- `${plan-path}`: workspace-relative path to the single plan file that must be updated in-place across all planning/preflight iterations
|
|
113
113
|
|
|
114
|
+
5) **No manual steps by default**
|
|
115
|
+
- Do not introduce manual bootstrap, human-operator validation, user-performed repro steps, or any other manual handoff unless the initial user request explicitly asked for manual orchestration from the beginning.
|
|
116
|
+
- If a delegated plan, review, or remediation flow proposes a new manual step without that explicit initial opt-in, reject it, request a revision, or record blocked automated state instead of asking the user to perform the step.
|
|
117
|
+
|
|
114
118
|
# Workflow router
|
|
115
119
|
|
|
116
120
|
## Phase 0 — Intake and budget estimate (mandatory)
|
|
@@ -198,11 +202,11 @@ Hard enforcement for S4:
|
|
|
198
202
|
|
|
199
203
|
### Step S5 — Branch by bootstrap mode
|
|
200
204
|
|
|
201
|
-
S5.1
|
|
205
|
+
S5.1 Only if the initial user request explicitly requested `manual bootstrap` from the beginning:
|
|
202
206
|
- Save checkpoint with `next_step` at Phase 1 resume point.
|
|
203
207
|
- Stop execution and return resume instructions.
|
|
204
208
|
|
|
205
|
-
S5.2
|
|
209
|
+
S5.2 Otherwise continue automated small development:
|
|
206
210
|
- Continue to Step S6.
|
|
207
211
|
|
|
208
212
|
### Step S6 — Delegate constrained small-path development
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: feature_code_review_agent
|
|
3
|
-
description: Review an entire feature branch relative to a base branch (PR-style). Read pr_context.summary.txt thoroughly, use pr_context.appendix.txt for full baseline diff evidence, and produce PolicyAudit + CodeReview + FeatureAudit (Acceptance Criteria). If remediation is needed, generate remediation inputs and delegate plan creation to atomic_planner to write remediation-plan.md in the active feature folder. No user questions.
|
|
4
|
-
argument-hint: "Checkout the feature branch. Provide PRBaseBranch (e.g., development). Run this agent to (re)generate the PR context artifacts (summary + appendix) per `pr-context-artifacts` via MCP server `
|
|
3
|
+
description: Review an entire feature branch relative to a base branch (PR-style). Read pr_context.summary.txt thoroughly, use pr_context.appendix.txt for full baseline diff evidence, and produce PolicyAudit + CodeReview + FeatureAudit (Acceptance Criteria). If remediation is needed, generate remediation inputs and delegate plan creation to atomic_planner to write remediation-plan.md in the active feature folder. End with exact review-status and artifact-path lines so orchestration can gate deterministically. No user questions.
|
|
4
|
+
argument-hint: "Checkout the feature branch. Provide PRBaseBranch (e.g., development). Run this agent to (re)generate the PR context artifacts (summary + appendix) per `pr-context-artifacts` via MCP server `drm-copilot` tool `collect_pr_context` with `base: ${input:PRBaseBranch}` when needed, then produce: (1) docs/features/active/<feature>/policy-audit.<timestamp>.md, (2) docs/features/active/<feature>/code-review.<timestamp>.md, (3) docs/features/active/<feature>/feature-audit.<timestamp>.md (acceptance criteria), and (4) if needed, docs/features/active/<feature>/remediation-inputs.<timestamp>.md AND AUTOMATICALLY DELEGATE to atomic_planner to write docs/features/active/<feature>/remediation-plan.<timestamp>.md in the same folder. Timestamps use ISO-8601 format yyyy-MM-ddTHH-mm. The final report MUST include exact `REVIEW_STATUS`, `FEATURE_FOLDER`, `POLICY_AUDIT`, `CODE_REVIEW`, `FEATURE_AUDIT`, `REMEDIATION_INPUTS`, and `REMEDIATION_PLAN` lines."
|
|
5
5
|
tools:
|
|
6
6
|
['execute/getTerminalOutput', 'execute/runTask', 'execute/runTests', 'execute/runInTerminal', 'read/terminalSelection', 'read/terminalLastCommand', 'read/getTaskOutput', 'read/problems', 'read/readFile', 'agent', 'edit/createDirectory', 'edit/createFile', 'edit/editFiles', 'search', 'drmcopilotextension/*', 'web', 'todo']
|
|
7
7
|
handoffs:
|
|
@@ -147,6 +147,10 @@ Use exact gate signals and exact path fields. Do not infer loop transitions from
|
|
|
147
147
|
|
|
148
148
|
If any required signal or required path field is missing, stop and record blocked state instead of inferring success.
|
|
149
149
|
|
|
150
|
+
5) **No manual steps by default**
|
|
151
|
+
- Do not introduce manual bootstrap, human-operator validation, user-performed repro steps, or any other manual handoff unless the initial user request explicitly asked for manual orchestration from the beginning.
|
|
152
|
+
- If a delegated plan, review, or remediation flow proposes a new manual step without that explicit initial opt-in, reject it, request a revision, or record blocked automated state instead of asking the user to perform the step.
|
|
153
|
+
|
|
150
154
|
# Workflow router
|
|
151
155
|
|
|
152
156
|
## Phase 0 — Intake and budget estimate (mandatory)
|
|
@@ -234,11 +238,11 @@ Hard enforcement for S4:
|
|
|
234
238
|
|
|
235
239
|
### Step S5 — Branch by bootstrap mode
|
|
236
240
|
|
|
237
|
-
S5.1
|
|
241
|
+
S5.1 Only if the initial user request explicitly requested `manual bootstrap` from the beginning:
|
|
238
242
|
- Save checkpoint with `next_step` at Phase 1 resume point.
|
|
239
243
|
- Stop execution and return resume instructions.
|
|
240
244
|
|
|
241
|
-
S5.2
|
|
245
|
+
S5.2 Otherwise continue automated small development:
|
|
242
246
|
- Continue to Step S6.
|
|
243
247
|
|
|
244
248
|
### Step S6 — Delegate constrained small-path development
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: powershell_atomic_executor
|
|
3
|
-
description: Execute atomic_planner plans verbatim with atomic_executor rigor and PowerShell-specialized MCP quality gates (`
|
|
3
|
+
description: Execute atomic_planner plans verbatim with atomic_executor rigor and PowerShell-specialized MCP quality gates (`mcp__drm-copilot__run_poshqc_format`, `mcp__drm-copilot__run_poshqc_analyze`, `mcp_drmcopilotext_run_poshqc_test`, `mcp__drm-copilot__run_poshqc_analyze_autofix`), Pester, DI/mocking rules, and zero-regression deltas.
|
|
4
4
|
argument-hint: "Provide the approved atomic plan text or path. I will run preflight validation, then execute tasks in order with strict acceptance checks and PowerShell-specific QA gates."
|
|
5
5
|
tools: [vscode, execute/testFailure, execute/getTerminalOutput, execute/killTerminal, execute/runTask, execute/createAndRunTask, execute/runInTerminal, execute/runTests, read/problems, read/readFile, read/terminalSelection, read/terminalLastCommand, agent, edit/createDirectory, edit/createFile, edit/editFiles, search, web, 'drmcopilotextension/*', todo]
|
|
6
6
|
---
|
|
@@ -239,7 +239,7 @@ If the user says "resume", "continue", or "try again":
|
|
|
239
239
|
- Be concise but exact.
|
|
240
240
|
- Do not paste large code blocks unless the user asks.
|
|
241
241
|
- Always show the commands/tasks you run and summarize results (pass/fail, key errors).
|
|
242
|
-
- When completing a task or a plan, report the toolchain status explicitly: `
|
|
242
|
+
- When completing a task or a plan, report the toolchain status explicitly: `mcp__drm-copilot__run_poshqc_format`, `mcp__drm-copilot__run_poshqc_analyze`, and `mcp_drmcopilotext_run_poshqc_test`.
|
|
243
243
|
- Always end with the updated checklist so the user can see progress.
|
|
244
244
|
|
|
245
245
|
---
|
|
@@ -255,8 +255,8 @@ Always enforce repo policy order:
|
|
|
255
255
|
5) `.github/instructions/powershell-unit-test.instructions.md`
|
|
256
256
|
|
|
257
257
|
Required toolchain for PowerShell tasks:
|
|
258
|
-
1) Format (`
|
|
259
|
-
2) Analyze (`
|
|
258
|
+
1) Format (`mcp__drm-copilot__run_poshqc_format`)
|
|
259
|
+
2) Analyze (`mcp__drm-copilot__run_poshqc_analyze`)
|
|
260
260
|
3) Test (`mcp_drmcopilotext_run_poshqc_test`)
|
|
261
261
|
4) Coverage (when enforced)
|
|
262
262
|
|
|
@@ -362,13 +362,13 @@ When the work involves tests:
|
|
|
362
362
|
|
|
363
363
|
**Bad:**
|
|
364
364
|
|
|
365
|
-
* [ ] [P3-T1] Implement tests for `
|
|
366
|
-
* [ ] [P3-T2] Write unit tests for `
|
|
365
|
+
* [ ] [P3-T1] Implement tests for `mcp__drm-copilot__run_poshqc_format`
|
|
366
|
+
* [ ] [P3-T2] Write unit tests for `mcp__drm-copilot__run_poshqc_analyze`
|
|
367
367
|
|
|
368
368
|
**Good:**
|
|
369
369
|
|
|
370
|
-
* [ ] [P3-T1] Add regression test for `
|
|
371
|
-
* [ ] [P3-T2] Add regression test for `
|
|
370
|
+
* [ ] [P3-T1] Add regression test for `mcp__drm-copilot__run_poshqc_format` forwarding selected `scan_folders`
|
|
371
|
+
* [ ] [P3-T2] Add regression test for `mcp__drm-copilot__run_poshqc_analyze` rejecting invalid scan-folder input
|
|
372
372
|
* [ ] [P3-T3] Add regression test for `mcp_drmcopilotext_run_poshqc_test` preserving the selected workspace scope
|
|
373
373
|
|
|
374
374
|
### 5.4.1 TDD Red regression tests must be tagged (MANDATORY)
|
|
@@ -423,15 +423,15 @@ When refactoring is required (e.g., to enable dependency injection, improve test
|
|
|
423
423
|
|
|
424
424
|
**Bad:**
|
|
425
425
|
|
|
426
|
-
* [ ] [P1-T1] Refactor `
|
|
426
|
+
* [ ] [P1-T1] Refactor `mcp__drm-copilot__run_poshqc_analyze_autofix` integration for testability
|
|
427
427
|
|
|
428
428
|
**Good:**
|
|
429
429
|
|
|
430
|
-
* [ ] [P1-T1] Identify external dependencies used by `
|
|
431
|
-
* [ ] [P1-T2] Extract the autofix invocation seam behind `
|
|
432
|
-
* [ ] [P1-T3] Add an injectable execution seam for `
|
|
433
|
-
* [ ] [P1-T4] Update all call sites of `
|
|
434
|
-
* [ ] [P1-T5] Verify that `
|
|
430
|
+
* [ ] [P1-T1] Identify external dependencies used by `mcp__drm-copilot__run_poshqc_analyze_autofix` and list them in an internal note
|
|
431
|
+
* [ ] [P1-T2] Extract the autofix invocation seam behind `mcp__drm-copilot__run_poshqc_analyze_autofix` into helper functions
|
|
432
|
+
* [ ] [P1-T3] Add an injectable execution seam for `mcp__drm-copilot__run_poshqc_analyze_autofix` with a production default
|
|
433
|
+
* [ ] [P1-T4] Update all call sites of `mcp__drm-copilot__run_poshqc_analyze_autofix` to use the default seam
|
|
434
|
+
* [ ] [P1-T5] Verify that `mcp__drm-copilot__run_poshqc_analyze_autofix` is mockable via the new helper functions in tests
|
|
435
435
|
|
|
436
436
|
3. **No umbrella refactor tasks**
|
|
437
437
|
You MUST NOT use a single task that says “Refactor X for testability.” Always decompose into multiple atomic slices as above.
|
|
@@ -111,6 +111,10 @@ Use these reusable skills to avoid duplicating shared operations:
|
|
|
111
111
|
- `${feature-folder}`: created active feature folder path
|
|
112
112
|
- `${plan-path}`: workspace-relative path to the single plan file that must be updated in-place across all planning/preflight iterations
|
|
113
113
|
|
|
114
|
+
5) **No manual steps by default**
|
|
115
|
+
- Do not introduce manual bootstrap, human-operator validation, user-performed repro steps, or any other manual handoff unless the initial user request explicitly asked for manual orchestration from the beginning.
|
|
116
|
+
- If a delegated plan, review, or remediation flow proposes a new manual step without that explicit initial opt-in, reject it, request a revision, or record blocked automated state instead of asking the user to perform the step.
|
|
117
|
+
|
|
114
118
|
# Workflow router
|
|
115
119
|
|
|
116
120
|
## Phase 0 — Intake and budget estimate (mandatory)
|
|
@@ -198,11 +202,11 @@ Hard enforcement for S4:
|
|
|
198
202
|
|
|
199
203
|
### Step S5 — Branch by bootstrap mode
|
|
200
204
|
|
|
201
|
-
S5.1
|
|
205
|
+
S5.1 Only if the initial user request explicitly requested `manual bootstrap` from the beginning:
|
|
202
206
|
- Save checkpoint with `next_step` at Phase 1 resume point.
|
|
203
207
|
- Stop execution and return resume instructions.
|
|
204
208
|
|
|
205
|
-
S5.2
|
|
209
|
+
S5.2 Otherwise continue automated small development:
|
|
206
210
|
- Continue to Step S6.
|
|
207
211
|
|
|
208
212
|
### Step S6 — Delegate constrained small-path development
|
|
@@ -175,8 +175,8 @@ If any gate fails, revert/fix immediately before proceeding.
|
|
|
175
175
|
|
|
176
176
|
Run the repo-standard PowerShell toolchain in this order:
|
|
177
177
|
|
|
178
|
-
1) **Format** (`
|
|
179
|
-
2) **Analyze** (`
|
|
178
|
+
1) **Format** (`mcp__drm-copilot__run_poshqc_format`)
|
|
179
|
+
2) **Analyze** (`mcp__drm-copilot__run_poshqc_analyze`)
|
|
180
180
|
3) **Test** (`mcp_drmcopilotext_run_poshqc_test`)
|
|
181
181
|
4) **Coverage** (when enforced by task/repo flow)
|
|
182
182
|
|