@danmoisan/drm-copilot-mcp 0.0.1
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/LICENSE +21 -0
- package/README.md +50 -0
- package/out/mcp-server.js +17323 -0
- package/package.json +36 -0
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/MEMORY.md +3 -0
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/feedback_repo_root_is_source_of_truth.md +11 -0
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/feedback_vsce_verify_package_location.md +19 -0
- package/resources/claude-customizations/.claude/agent-memory/orchestrator/project_extension_location.md +11 -0
- package/resources/claude-customizations/.claude/agent-memory/prd-feature/MEMORY.md +1 -0
- package/resources/claude-customizations/.claude/agent-memory/prd-feature/project_push_down_pattern.md +13 -0
- package/resources/claude-customizations/.claude/agent-memory/task-researcher/MEMORY.md +3 -0
- package/resources/claude-customizations/.claude/agent-memory/task-researcher/project_push_down_claude_dir.md +11 -0
- package/resources/claude-customizations/.claude/agents/atomic-executor.md +135 -0
- package/resources/claude-customizations/.claude/agents/atomic-planner.md +71 -0
- package/resources/claude-customizations/.claude/agents/csharp-typed-engineer.md +69 -0
- package/resources/claude-customizations/.claude/agents/epic-review.md +40 -0
- package/resources/claude-customizations/.claude/agents/feature-review.md +136 -0
- package/resources/claude-customizations/.claude/agents/orchestrator.md +83 -0
- package/resources/claude-customizations/.claude/agents/powershell-typed-engineer.md +80 -0
- package/resources/claude-customizations/.claude/agents/prd-feature.md +42 -0
- package/resources/claude-customizations/.claude/agents/python-typed-engineer.md +72 -0
- package/resources/claude-customizations/.claude/agents/staged-review.md +41 -0
- package/resources/claude-customizations/.claude/agents/status-updater.md +41 -0
- package/resources/claude-customizations/.claude/agents/task-researcher.md +81 -0
- package/resources/claude-customizations/.claude/agents/typescript-engineer.md +24 -0
- package/resources/claude-customizations/.claude/hooks/check-powershell-test-purity.ps1 +111 -0
- package/resources/claude-customizations/.claude/hooks/check-python-test-purity.ps1 +146 -0
- package/resources/claude-customizations/.claude/hooks/enforce-evidence-locations.ps1 +150 -0
- package/resources/claude-customizations/.claude/hooks/enforce-powershell-batch-budget.ps1 +238 -0
- package/resources/claude-customizations/.claude/hooks/enforce-promotion-mcp-only.ps1 +147 -0
- package/resources/claude-customizations/.claude/hooks/enforce-python-batch-budget.ps1 +235 -0
- package/resources/claude-customizations/.claude/hooks/validate-bash.ps1 +69 -0
- package/resources/claude-customizations/.claude/hooks/validate-executor-output.ps1 +296 -0
- package/resources/claude-customizations/.claude/hooks/validate-feature-review-coverage.ps1 +389 -0
- package/resources/claude-customizations/.claude/hooks/validate-orchestrator-output.ps1 +141 -0
- package/resources/claude-customizations/.claude/hooks/validate-planner-output.ps1 +288 -0
- package/resources/claude-customizations/.claude/hooks/validate-required-artifact-output.ps1 +171 -0
- package/resources/claude-customizations/.claude/hooks/validate-task-researcher-output.ps1 +142 -0
- package/resources/claude-customizations/.claude/rules/csharp.md +62 -0
- package/resources/claude-customizations/.claude/rules/general-code-change.md +71 -0
- package/resources/claude-customizations/.claude/rules/general-unit-test.md +60 -0
- package/resources/claude-customizations/.claude/rules/powershell.md +97 -0
- package/resources/claude-customizations/.claude/rules/python-suppressions.md +143 -0
- package/resources/claude-customizations/.claude/rules/python.md +99 -0
- package/resources/claude-customizations/.claude/rules/self-explanatory-code-commenting.md +97 -0
- package/resources/claude-customizations/.claude/rules/tonality.md +80 -0
- package/resources/claude-customizations/.claude/rules/typescript-suppressions.md +66 -0
- package/resources/claude-customizations/.claude/rules/typescript.md +45 -0
- package/resources/claude-customizations/.claude/settings.json +144 -0
- package/resources/claude-customizations/.claude/skills/acceptance-criteria-tracking/SKILL.md +102 -0
- package/resources/claude-customizations/.claude/skills/atomic-plan-contract/SKILL.md +189 -0
- package/resources/claude-customizations/.claude/skills/commit-message/SKILL.md +65 -0
- package/resources/claude-customizations/.claude/skills/csharp-change-budget-router/SKILL.md +90 -0
- package/resources/claude-customizations/.claude/skills/csharp-orchestration-state-machine/SKILL.md +58 -0
- package/resources/claude-customizations/.claude/skills/csharp-qa-gate/SKILL.md +77 -0
- package/resources/claude-customizations/.claude/skills/evidence-and-timestamp-conventions/SKILL.md +164 -0
- package/resources/claude-customizations/.claude/skills/execute-hard-lock/SKILL.md +82 -0
- package/resources/claude-customizations/.claude/skills/feature-promotion-lifecycle/SKILL.md +115 -0
- package/resources/claude-customizations/.claude/skills/feature-review-workflow/SKILL.md +167 -0
- package/resources/claude-customizations/.claude/skills/fill-feature-docs/SKILL.md +22 -0
- package/resources/claude-customizations/.claude/skills/invoke-csharp-engineer/SKILL.md +64 -0
- package/resources/claude-customizations/.claude/skills/invoke-powershell-engineer/SKILL.md +65 -0
- package/resources/claude-customizations/.claude/skills/invoke-python-engineer/SKILL.md +64 -0
- package/resources/claude-customizations/.claude/skills/make-skill-template/SKILL.md +147 -0
- package/resources/claude-customizations/.claude/skills/orchestrate/SKILL.md +132 -0
- package/resources/claude-customizations/.claude/skills/policy-audit-template-usage/SKILL.md +49 -0
- package/resources/claude-customizations/.claude/skills/policy-compliance-order/SKILL.md +40 -0
- package/resources/claude-customizations/.claude/skills/powershell-change-budget-router/SKILL.md +49 -0
- package/resources/claude-customizations/.claude/skills/powershell-orchestration-state-machine/SKILL.md +58 -0
- package/resources/claude-customizations/.claude/skills/powershell-qa-gate/SKILL.md +77 -0
- package/resources/claude-customizations/.claude/skills/pr-author/SKILL.md +50 -0
- package/resources/claude-customizations/.claude/skills/pr-base-branch-merge-base/SKILL.md +56 -0
- package/resources/claude-customizations/.claude/skills/pr-context-artifacts/SKILL.md +30 -0
- package/resources/claude-customizations/.claude/skills/python-change-budget-router/SKILL.md +79 -0
- package/resources/claude-customizations/.claude/skills/python-qa-gate/SKILL.md +77 -0
- package/resources/claude-customizations/.claude/skills/remediation-handoff-atomic-planner/SKILL.md +40 -0
- package/resources/claude-customizations/.claude/skills/research-issue/SKILL.md +67 -0
- package/resources/claude-customizations/.claude/skills/review-epic/SKILL.md +21 -0
- package/resources/claude-customizations/.claude/skills/review-feature/SKILL.md +25 -0
- package/resources/claude-customizations/.claude/skills/review-staged/SKILL.md +21 -0
- package/resources/claude-customizations/.claude/skills/skill-canonical-location-audit/SKILL.md +49 -0
- package/resources/claude-customizations/.claude/skills/translate-copilot-to-claude/SKILL.md +295 -0
- package/resources/claude-customizations/.claude/skills/update-status/SKILL.md +21 -0
- package/resources/claude-dir-customizations/.mcp.json +8 -0
- package/resources/codex-and-agents-customizations/.agents/README.md +86 -0
- package/resources/codex-and-agents-customizations/.agents/skills/README.md +49 -0
- package/resources/codex-and-agents-customizations/.agents/skills/acceptance-criteria-tracking/SKILL.md +107 -0
- package/resources/codex-and-agents-customizations/.agents/skills/atomic-executor/SKILL.md +73 -0
- package/resources/codex-and-agents-customizations/.agents/skills/atomic-plan-contract/SKILL.md +194 -0
- package/resources/codex-and-agents-customizations/.agents/skills/atomic-planner/SKILL.md +87 -0
- package/resources/codex-and-agents-customizations/.agents/skills/commit-message/SKILL.md +70 -0
- package/resources/codex-and-agents-customizations/.agents/skills/commit-message-conventions/SKILL.md +95 -0
- package/resources/codex-and-agents-customizations/.agents/skills/csharp/SKILL.md +67 -0
- package/resources/codex-and-agents-customizations/.agents/skills/csharp-change-budget-router/SKILL.md +94 -0
- package/resources/codex-and-agents-customizations/.agents/skills/csharp-orchestration-state-machine/SKILL.md +64 -0
- package/resources/codex-and-agents-customizations/.agents/skills/csharp-qa-gate/SKILL.md +82 -0
- package/resources/codex-and-agents-customizations/.agents/skills/evidence-and-timestamp-conventions/SKILL.md +168 -0
- package/resources/codex-and-agents-customizations/.agents/skills/execute-hard-lock/SKILL.md +88 -0
- package/resources/codex-and-agents-customizations/.agents/skills/feature-promotion-lifecycle/SKILL.md +129 -0
- package/resources/codex-and-agents-customizations/.agents/skills/feature-review/SKILL.md +106 -0
- package/resources/codex-and-agents-customizations/.agents/skills/feature-review-workflow/SKILL.md +181 -0
- package/resources/codex-and-agents-customizations/.agents/skills/fill-feature-docs/SKILL.md +27 -0
- package/resources/codex-and-agents-customizations/.agents/skills/invoke-csharp-engineer/SKILL.md +73 -0
- package/resources/codex-and-agents-customizations/.agents/skills/invoke-powershell-engineer/SKILL.md +74 -0
- package/resources/codex-and-agents-customizations/.agents/skills/invoke-python-engineer/SKILL.md +73 -0
- package/resources/codex-and-agents-customizations/.agents/skills/make-skill-template/SKILL.md +152 -0
- package/resources/codex-and-agents-customizations/.agents/skills/orchestrate/SKILL.md +143 -0
- package/resources/codex-and-agents-customizations/.agents/skills/orchestrator-workflow/SKILL.md +317 -0
- package/resources/codex-and-agents-customizations/.agents/skills/policy-audit-template-usage/SKILL.md +53 -0
- package/resources/codex-and-agents-customizations/.agents/skills/policy-compliance-order/SKILL.md +49 -0
- package/resources/codex-and-agents-customizations/.agents/skills/powershell/SKILL.md +102 -0
- package/resources/codex-and-agents-customizations/.agents/skills/powershell-change-budget-router/SKILL.md +53 -0
- package/resources/codex-and-agents-customizations/.agents/skills/powershell-orchestration-state-machine/SKILL.md +64 -0
- package/resources/codex-and-agents-customizations/.agents/skills/powershell-qa-gate/SKILL.md +83 -0
- package/resources/codex-and-agents-customizations/.agents/skills/pr-author/SKILL.md +55 -0
- package/resources/codex-and-agents-customizations/.agents/skills/pr-authoring/SKILL.md +124 -0
- package/resources/codex-and-agents-customizations/.agents/skills/pr-base-branch-merge-base/SKILL.md +60 -0
- package/resources/codex-and-agents-customizations/.agents/skills/pr-context-artifacts/SKILL.md +34 -0
- package/resources/codex-and-agents-customizations/.agents/skills/python/SKILL.md +104 -0
- package/resources/codex-and-agents-customizations/.agents/skills/python-change-budget-router/SKILL.md +84 -0
- package/resources/codex-and-agents-customizations/.agents/skills/python-qa-gate/SKILL.md +82 -0
- package/resources/codex-and-agents-customizations/.agents/skills/python-suppressions/SKILL.md +148 -0
- package/resources/codex-and-agents-customizations/.agents/skills/remediation-handoff-atomic-planner/SKILL.md +49 -0
- package/resources/codex-and-agents-customizations/.agents/skills/repo-automation-adapter/SKILL.md +142 -0
- package/resources/codex-and-agents-customizations/.agents/skills/repo-automation-adapter/agents/openai.yaml +5 -0
- package/resources/codex-and-agents-customizations/.agents/skills/research-issue/SKILL.md +72 -0
- package/resources/codex-and-agents-customizations/.agents/skills/review-epic/SKILL.md +26 -0
- package/resources/codex-and-agents-customizations/.agents/skills/review-feature/SKILL.md +30 -0
- package/resources/codex-and-agents-customizations/.agents/skills/review-staged/SKILL.md +26 -0
- package/resources/codex-and-agents-customizations/.agents/skills/self-explanatory-code-commenting/SKILL.md +102 -0
- package/resources/codex-and-agents-customizations/.agents/skills/skill-canonical-location-audit/SKILL.md +52 -0
- package/resources/codex-and-agents-customizations/.agents/skills/translate-copilot-to-claude/SKILL.md +317 -0
- package/resources/codex-and-agents-customizations/.agents/skills/typescript/SKILL.md +50 -0
- package/resources/codex-and-agents-customizations/.agents/skills/typescript-suppressions/SKILL.md +71 -0
- package/resources/codex-and-agents-customizations/.agents/skills/update-status/SKILL.md +26 -0
- package/resources/codex-and-agents-customizations/.codex/agents/5.1-beast-adjusted.toml +23 -0
- package/resources/codex-and-agents-customizations/.codex/agents/5.1-thinking-beast-mode-adjusted.toml +23 -0
- package/resources/codex-and-agents-customizations/.codex/agents/api-architect.toml +23 -0
- package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor.toml +151 -0
- package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner.toml +93 -0
- package/resources/codex-and-agents-customizations/.codex/agents/atomic-planning.toml +24 -0
- package/resources/codex-and-agents-customizations/.codex/agents/commentary-remediation.toml +23 -0
- package/resources/codex-and-agents-customizations/.codex/agents/commit-steward.toml +20 -0
- package/resources/codex-and-agents-customizations/.codex/agents/csharp-atomic-executor.toml +24 -0
- package/resources/codex-and-agents-customizations/.codex/agents/csharp-atomic-planning.toml +25 -0
- package/resources/codex-and-agents-customizations/.codex/agents/csharp-orchestrator.toml +56 -0
- package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer.toml +97 -0
- package/resources/codex-and-agents-customizations/.codex/agents/epic-review.toml +52 -0
- package/resources/codex-and-agents-customizations/.codex/agents/expert-nextjs-developer.toml +23 -0
- package/resources/codex-and-agents-customizations/.codex/agents/expert-react-frontend-engineer.toml +23 -0
- package/resources/codex-and-agents-customizations/.codex/agents/feature-review.toml +149 -0
- package/resources/codex-and-agents-customizations/.codex/agents/feature-reviewer.toml +60 -0
- package/resources/codex-and-agents-customizations/.codex/agents/gpt-5-beast-mode.toml +23 -0
- package/resources/codex-and-agents-customizations/.codex/agents/hlbpa.toml +23 -0
- package/resources/codex-and-agents-customizations/.codex/agents/mentor.toml +23 -0
- package/resources/codex-and-agents-customizations/.codex/agents/orchestrator.toml +121 -0
- package/resources/codex-and-agents-customizations/.codex/agents/powershell-atomic-executor.toml +24 -0
- package/resources/codex-and-agents-customizations/.codex/agents/powershell-atomic-planning.toml +25 -0
- package/resources/codex-and-agents-customizations/.codex/agents/powershell-di-unit-test-engineer.toml +24 -0
- package/resources/codex-and-agents-customizations/.codex/agents/powershell-orchestrator.toml +56 -0
- package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer.toml +108 -0
- package/resources/codex-and-agents-customizations/.codex/agents/pr-author.toml +26 -0
- package/resources/codex-and-agents-customizations/.codex/agents/prd-feature.toml +53 -0
- package/resources/codex-and-agents-customizations/.codex/agents/prd.toml +23 -0
- package/resources/codex-and-agents-customizations/.codex/agents/pytest-unit-test-coding.toml +24 -0
- package/resources/codex-and-agents-customizations/.codex/agents/python-atomic-executor.toml +24 -0
- package/resources/codex-and-agents-customizations/.codex/agents/python-atomic-planning.toml +25 -0
- package/resources/codex-and-agents-customizations/.codex/agents/python-execution-only-typed.toml +24 -0
- package/resources/codex-and-agents-customizations/.codex/agents/python-orchestrator.toml +54 -0
- package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer.toml +100 -0
- package/resources/codex-and-agents-customizations/.codex/agents/staged-review.toml +53 -0
- package/resources/codex-and-agents-customizations/.codex/agents/status-updater.toml +53 -0
- package/resources/codex-and-agents-customizations/.codex/agents/task-researcher.toml +103 -0
- package/resources/codex-and-agents-customizations/.codex/agents/tdd-green.toml +23 -0
- package/resources/codex-and-agents-customizations/.codex/agents/tdd-red.toml +23 -0
- package/resources/codex-and-agents-customizations/.codex/agents/tdd-refactor.toml +23 -0
- package/resources/codex-and-agents-customizations/.codex/agents/typescript-engineer.toml +48 -0
- package/resources/codex-and-agents-customizations/.codex/agents/voidbeast-gpt41enhanced.toml +23 -0
- package/resources/codex-and-agents-customizations/.codex/codex-web-setup.plan.md +26 -0
- package/resources/codex-and-agents-customizations/.codex/codex-web-setup.sh +384 -0
- package/resources/codex-and-agents-customizations/.codex/config.toml +137 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/check-powershell-test-purity.ps1 +113 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/check-python-test-purity.ps1 +149 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-evidence-locations.ps1 +153 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-powershell-batch-budget.ps1 +241 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-promotion-mcp-only.ps1 +150 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/enforce-python-batch-budget.ps1 +238 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/validate-bash.ps1 +72 -0
- package/resources/codex-and-agents-customizations/.codex/hooks/validate-feature-review-coverage.ps1 +265 -0
- package/resources/codex-and-agents-customizations/.codex/prompts/feature-review-remediate.md +10 -0
- package/resources/codex-and-agents-customizations/.codex/prompts/generate-commit-message-repo.md +11 -0
- package/resources/codex-and-agents-customizations/.codex/prompts/generate-pr.md +15 -0
- package/resources/codex-and-agents-customizations/.codex/prompts/orchestrate-work.md +22 -0
- package/resources/codex-and-agents-customizations/AGENTS.md +317 -0
- package/resources/customizations/.github/agents/5.1-Beast-adjusted.agent.md +181 -0
- package/resources/customizations/.github/agents/5.1-Thinking-Beast-Mode-adjusted.agent.md +361 -0
- package/resources/customizations/.github/agents/Powershell DI Unit Test Engineer.agent.md +192 -0
- package/resources/customizations/.github/agents/api-architect.agent.md +40 -0
- package/resources/customizations/.github/agents/atomic_executor.agent.md +251 -0
- package/resources/customizations/.github/agents/atomic_planning.agent.md +658 -0
- package/resources/customizations/.github/agents/commentary-remediation.agent.md +35 -0
- package/resources/customizations/.github/agents/commit-steward.agent.md +200 -0
- package/resources/customizations/.github/agents/csharp-atomic-executor.agent.md +288 -0
- package/resources/customizations/.github/agents/csharp-atomic-planning.agent.md +354 -0
- package/resources/customizations/.github/agents/csharp-orchestrator.agent.md +375 -0
- package/resources/customizations/.github/agents/csharp-typed-engineer.agent.md +285 -0
- package/resources/customizations/.github/agents/epic-review.agent.md +374 -0
- package/resources/customizations/.github/agents/expert-nextjs-developer.agent.md +477 -0
- package/resources/customizations/.github/agents/expert-react-frontend-engineer.agent.md +739 -0
- package/resources/customizations/.github/agents/feature-review.agent.md +49 -0
- package/resources/customizations/.github/agents/gpt-5-beast-mode.agent.md +116 -0
- package/resources/customizations/.github/agents/hlbpa.agent.md +219 -0
- package/resources/customizations/.github/agents/mentor.agent.md +32 -0
- package/resources/customizations/.github/agents/orchestrator.agent.md +449 -0
- package/resources/customizations/.github/agents/powershell-atomic-executor.agent.md +287 -0
- package/resources/customizations/.github/agents/powershell-atomic-planning.agent.md +647 -0
- package/resources/customizations/.github/agents/powershell-orchestrator.agent.md +382 -0
- package/resources/customizations/.github/agents/powershell-typed-engineer.agent.md +293 -0
- package/resources/customizations/.github/agents/pr-author.agent.md +138 -0
- package/resources/customizations/.github/agents/prd-feature.agent.md +52 -0
- package/resources/customizations/.github/agents/prd.agent.md +202 -0
- package/resources/customizations/.github/agents/pytest-unit-test-coding.agent.md +202 -0
- package/resources/customizations/.github/agents/python-atomic-executor.agent.md +289 -0
- package/resources/customizations/.github/agents/python-atomic-planning.agent.md +429 -0
- package/resources/customizations/.github/agents/python-execution-only-typed.agent.md +217 -0
- package/resources/customizations/.github/agents/python-orchestrator.agent.md +380 -0
- package/resources/customizations/.github/agents/python-typed-engineer.agent.md +271 -0
- package/resources/customizations/.github/agents/staged-review.agent.md +246 -0
- package/resources/customizations/.github/agents/status_updater.agent.md +279 -0
- package/resources/customizations/.github/agents/task-researcher.agent.md +298 -0
- package/resources/customizations/.github/agents/tdd-green.agent.md +60 -0
- package/resources/customizations/.github/agents/tdd-red.agent.md +66 -0
- package/resources/customizations/.github/agents/tdd-refactor.agent.md +94 -0
- package/resources/customizations/.github/agents/typescript-engineer.agent.md +167 -0
- package/resources/customizations/.github/agents/voidbeast-gpt41enhanced.agent.md +230 -0
- package/resources/customizations/.github/codex/execute-hard-lock.prompt.md +105 -0
- package/resources/customizations/.github/codex/resume-hard-lock.prompt.md +92 -0
- package/resources/customizations/.github/copilot-instructions.md +7 -0
- package/resources/customizations/.github/instructions/csharp-code-change.instructions.md +184 -0
- package/resources/customizations/.github/instructions/csharp-unit-test.instructions.md +52 -0
- package/resources/customizations/.github/instructions/general-code-change.instructions.md +290 -0
- package/resources/customizations/.github/instructions/general-unit-test.instructions.md +106 -0
- package/resources/customizations/.github/instructions/github-actions-ci-cd-best-practices.instructions.md +607 -0
- package/resources/customizations/.github/instructions/github-actions.instructions.md +23 -0
- package/resources/customizations/.github/instructions/powershell-code-change.instructions.md +81 -0
- package/resources/customizations/.github/instructions/powershell-unit-test.instructions.md +69 -0
- package/resources/customizations/.github/instructions/python-code-change.instructions.md +232 -0
- package/resources/customizations/.github/instructions/python-suppressions.instructions.md +609 -0
- package/resources/customizations/.github/instructions/python-unit-test.instructions.md +71 -0
- package/resources/customizations/.github/instructions/self-explanatory-code-commenting.instructions.md +238 -0
- package/resources/customizations/.github/instructions/tonality.instructions.md +133 -0
- package/resources/customizations/.github/instructions/typescript-code-change.instructions.md +203 -0
- package/resources/customizations/.github/instructions/typescript-suppressions.instructions.md +157 -0
- package/resources/customizations/.github/instructions/typescript-unit-test.instructions.md +112 -0
- package/resources/customizations/.github/prompts/add-educational-comments.prompt.md +129 -0
- package/resources/customizations/.github/prompts/breakdown-bug-prd.prompt.md +29 -0
- package/resources/customizations/.github/prompts/breakdown-epic-arch.prompt.md +66 -0
- package/resources/customizations/.github/prompts/breakdown-epic-pm.prompt.md +58 -0
- package/resources/customizations/.github/prompts/breakdown-feature-implementation.prompt.md +128 -0
- package/resources/customizations/.github/prompts/breakdown-feature-prd.prompt.md +61 -0
- package/resources/customizations/.github/prompts/code-exemplars-blueprint-generator.prompt.md +126 -0
- package/resources/customizations/.github/prompts/drafts/create-github-issues-feature-from-implementation-plan.prompt.md +28 -0
- package/resources/customizations/.github/prompts/drafts/create-implementation-plan.prompt.md +158 -0
- package/resources/customizations/.github/prompts/drafts/create-technical-spike.prompt.md +231 -0
- package/resources/customizations/.github/prompts/drafts/potential-feature-prd.prompt.md +19 -0
- package/resources/customizations/.github/prompts/drafts/update-implementation-plan.prompt.md +158 -0
- package/resources/customizations/.github/prompts/execute-plan-template.md +21 -0
- package/resources/customizations/.github/prompts/export-chat.prompt.md +7 -0
- package/resources/customizations/.github/prompts/fillout-prd-feature.prompt.md +46 -0
- package/resources/customizations/.github/prompts/generate-atomic-plan.prompt.md +96 -0
- package/resources/customizations/.github/prompts/generate-commit-message-repo.prompt.md +108 -0
- package/resources/customizations/.github/prompts/generate-pr.prompt.md +151 -0
- package/resources/customizations/.github/prompts/javascript-typescript-jest.prompt.md +44 -0
- package/resources/customizations/.github/prompts/orchestrate-csharp-work.prompt.md +66 -0
- package/resources/customizations/.github/prompts/orchestrate-powershell-work.prompt.md +50 -0
- package/resources/customizations/.github/prompts/orchestrate-python-work.prompt.md +50 -0
- package/resources/customizations/.github/prompts/orchestrate-work.prompt.md +66 -0
- package/resources/customizations/.github/prompts/remediate-comments.prompt.md +53 -0
- package/resources/customizations/.github/prompts/research-issue.prompt.md +125 -0
- package/resources/customizations/.github/prompts/review-epic.prompt.md +94 -0
- package/resources/customizations/.github/prompts/review-feature.prompt.md +130 -0
- package/resources/customizations/.github/prompts/review-staged.prompt.md +43 -0
- package/resources/customizations/.github/prompts/update_status.prompt.md +68 -0
- package/resources/customizations/.github/skills/README.md +26 -0
- package/resources/customizations/.github/skills/acceptance-criteria-tracking/SKILL.md +102 -0
- package/resources/customizations/.github/skills/atomic-plan-contract/SKILL.md +174 -0
- package/resources/customizations/.github/skills/csharp-change-budget-router/SKILL.md +48 -0
- package/resources/customizations/.github/skills/csharp-orchestration-state-machine/SKILL.md +57 -0
- package/resources/customizations/.github/skills/evidence-and-timestamp-conventions/SKILL.md +135 -0
- package/resources/customizations/.github/skills/feature-promotion-lifecycle/SKILL.md +121 -0
- package/resources/customizations/.github/skills/feature-review-workflow/SKILL.md +153 -0
- package/resources/customizations/.github/skills/make-skill-template/SKILL.md +147 -0
- package/resources/customizations/.github/skills/policy-audit-template-usage/SKILL.md +48 -0
- package/resources/customizations/.github/skills/policy-compliance-order/SKILL.md +37 -0
- package/resources/customizations/.github/skills/powershell-change-budget-router/SKILL.md +48 -0
- package/resources/customizations/.github/skills/powershell-orchestration-state-machine/SKILL.md +57 -0
- package/resources/customizations/.github/skills/pr-base-branch-merge-base/SKILL.md +55 -0
- package/resources/customizations/.github/skills/pr-context-artifacts/SKILL.md +29 -0
- package/resources/customizations/.github/skills/remediation-handoff-atomic-planner/SKILL.md +39 -0
- package/resources/customizations/.github/skills/skill-canonical-location-audit/SKILL.md +48 -0
- package/resources/feature-templates/bug/plan.yyyy-MM-ddTHH-mm.md +44 -0
- package/resources/feature-templates/bug/potential_bug.md +59 -0
- package/resources/feature-templates/bug/spec.md +99 -0
- package/resources/feature-templates/epic/initiative.md +43 -0
- package/resources/feature-templates/feature/plan.yyyy-MM-ddTHH-mm.md +53 -0
- package/resources/feature-templates/feature/spec.md +66 -0
- package/resources/feature-templates/feature/user-story.md +42 -0
- package/resources/feature-templates/potential/template.md +33 -0
- package/resources/feature-templates/refactor/plan.yyyy-MM-ddTHH-mm.md +52 -0
- package/resources/feature-templates/refactor/spec.md +69 -0
- package/resources/powershell/PoshQC/PoshQC.Analyzer.psm1 +254 -0
- package/resources/powershell/PoshQC/PoshQC.FileDiscovery.psm1 +138 -0
- package/resources/powershell/PoshQC/PoshQC.Testing.psm1 +409 -0
- package/resources/powershell/PoshQC/PoshQC.psd1 +31 -0
- package/resources/powershell/PoshQC/PoshQC.psm1 +101 -0
- package/resources/powershell/PoshQC/README.md +80 -0
- package/resources/powershell/PoshQC/settings/pester.runsettings.psd1 +59 -0
- package/resources/powershell/PoshQC/settings/pssa.settings.psd1 +55 -0
- package/resources/scripts/dev_tools/__init__.py +0 -0
- package/resources/scripts/dev_tools/agentic_sync.py +819 -0
- package/resources/scripts/dev_tools/codex_native_converter/__init__.py +11 -0
- package/resources/scripts/dev_tools/codex_native_converter/__main__.py +6 -0
- package/resources/scripts/dev_tools/codex_native_converter/cli.py +11 -0
- package/resources/scripts/dev_tools/new_active_feature_folder.py +79 -0
- package/resources/scripts/dev_tools/new_active_feature_folder_docs.py +268 -0
- package/resources/scripts/dev_tools/new_active_feature_folder_flow.py +366 -0
- package/resources/scripts/dev_tools/new_active_feature_folder_io.py +306 -0
- package/resources/scripts/dev_tools/new_active_feature_folder_markdown.py +252 -0
- package/resources/scripts/dev_tools/new_active_feature_folder_models.py +136 -0
- package/resources/scripts/dev_tools/new_potential_bug_entry.py +465 -0
- package/resources/scripts/dev_tools/potential_to_issue.py +421 -0
- package/resources/scripts/dev_tools/potential_to_issue_content.py +212 -0
- package/resources/scripts/dev_tools/pr_context/__init__.py +0 -0
- package/resources/scripts/dev_tools/pr_context/collector.py +619 -0
- package/resources/scripts/dev_tools/pr_context/feature_docs.py +349 -0
- package/resources/scripts/dev_tools/pr_context/git.py +153 -0
- package/resources/scripts/dev_tools/pr_context/github.py +549 -0
- package/resources/scripts/dev_tools/pr_context/models.py +198 -0
- package/resources/scripts/dev_tools/pr_context/render.py +342 -0
- package/resources/scripts/dev_tools/pr_context/render_feature_excerpts.py +256 -0
- package/resources/scripts/dev_tools/pr_context/render_pr_helpers.py +291 -0
- package/resources/scripts/dev_tools/pr_context/summary_helpers.py +386 -0
- package/resources/scripts/dev_tools/pr_context/verification_evidence.py +171 -0
- package/resources/scripts/dev_tools/prompt_mode_contract.py +152 -0
- package/resources/scripts/dev_tools/push_down_claude_customizations.py +188 -0
- package/resources/scripts/dev_tools/push_down_codex_and_agents_customizations.py +139 -0
- package/resources/scripts/dev_tools/push_down_copilot_customizations.py +504 -0
- package/resources/scripts/dev_tools/push_down_copilot_customizations_filesystem.py +217 -0
- package/resources/scripts/dev_tools/push_down_copilot_customizations_rewrites.py +293 -0
- package/resources/scripts/dev_tools/resolve_file_prompt.py +457 -0
- package/resources/scripts/dev_tools/resolve_hard_lock_prompt.py +444 -0
- package/resources/scripts/dev_tools/validate_orchestration_artifacts.py +554 -0
- package/resources/templates/codex_native_converter.py +35 -0
- package/resources/templates/collect_commit_context.py +212 -0
- package/resources/templates/collect_pr_context.py +74 -0
- package/resources/templates/hello_pwsh.ps1 +3 -0
- package/resources/templates/hello_python.py +11 -0
- package/resources/templates/link-parent-child.ps1 +480 -0
- package/resources/templates/new-claude-worktree-session.ps1 +232 -0
- package/resources/templates/new-potential-entry.ps1 +187 -0
- package/resources/templates/new_active_feature_folder.py +67 -0
- package/resources/templates/new_potential_bug_entry.py +54 -0
- package/resources/templates/policy_audit/AGENTS.md +117 -0
- package/resources/templates/policy_audit/code-review.yyyy-MM-ddTHH-mm.md +165 -0
- package/resources/templates/policy_audit/feature-audit.yyyy-MM-ddTHH-mm.md +124 -0
- package/resources/templates/policy_audit/policy-audit.yyyy-MM-ddTHH-mm.md +649 -0
- package/resources/templates/potential_to_issue.py +55 -0
- package/resources/templates/push_down_claude_customizations.py +188 -0
- package/resources/templates/push_down_codex_and_agents_customizations.py +95 -0
- package/resources/templates/push_down_copilot_customizations.py +124 -0
- package/resources/templates/resolve_atomic_plan_prompt.py +75 -0
- package/resources/templates/resolve_hard_lock_prompt.py +65 -0
- package/resources/templates/run-poshqc-analyze-autofix.ps1 +16 -0
- package/resources/templates/run-poshqc-analyze.ps1 +26 -0
- package/resources/templates/run-poshqc-format.ps1 +26 -0
- package/resources/templates/run-poshqc-suite.ps1 +24 -0
- package/resources/templates/run-poshqc-test.ps1 +32 -0
- package/resources/templates/sync-agents-from-instructions.ps1 +400 -0
- package/resources/templates/validate_orchestration_artifacts.py +55 -0
- package/resources/templates/vscode-cli.helpers.ps1 +63 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# Creates a dated potential feature file from the template and opens it plus backlog.md.
|
|
2
|
+
param(
|
|
3
|
+
[string] $ShortName,
|
|
4
|
+
[string] $TemplateRoot
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
. (Join-Path -Path $PSScriptRoot -ChildPath 'vscode-cli.helpers.ps1')
|
|
8
|
+
|
|
9
|
+
function Test-ValidShortName {
|
|
10
|
+
[CmdletBinding()]
|
|
11
|
+
[OutputType([bool])]
|
|
12
|
+
param(
|
|
13
|
+
[Parameter(Mandatory = $true)]
|
|
14
|
+
[Alias('Name')]
|
|
15
|
+
[AllowEmptyString()]
|
|
16
|
+
[string] $CandidateName
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
$shortPattern = '^[a-z0-9]+(-[a-z0-9]+)*$'
|
|
20
|
+
if ($CandidateName -cmatch $shortPattern) {
|
|
21
|
+
return $true
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return $false
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function Get-AuthorName {
|
|
28
|
+
[CmdletBinding()]
|
|
29
|
+
param(
|
|
30
|
+
[scriptblock] $GetGitConfig = { param([string] $Key) git config $Key 2>$null },
|
|
31
|
+
[scriptblock] $GetEnvironmentVariable = { param([string] $Name) [Environment]::GetEnvironmentVariable($Name) }
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
$author = & $GetGitConfig 'user.name'
|
|
35
|
+
if (-not $author -or [string]::IsNullOrWhiteSpace($author)) {
|
|
36
|
+
$author = & $GetEnvironmentVariable 'USERNAME'
|
|
37
|
+
}
|
|
38
|
+
if (-not $author) { $author = 'Unknown' }
|
|
39
|
+
return $author
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function Convert-TemplateContent {
|
|
43
|
+
<#
|
|
44
|
+
.SYNOPSIS
|
|
45
|
+
Replaces placeholders in template content with actual values.
|
|
46
|
+
|
|
47
|
+
.DESCRIPTION
|
|
48
|
+
This is a pure string transformation function that does not modify system state.
|
|
49
|
+
It replaces frontmatter and body placeholders in the provided content.
|
|
50
|
+
#>
|
|
51
|
+
param(
|
|
52
|
+
[Parameter(Mandatory = $true)]
|
|
53
|
+
[string] $Content,
|
|
54
|
+
[Parameter(Mandatory = $true)]
|
|
55
|
+
[string] $ShortName,
|
|
56
|
+
[Parameter(Mandatory = $true)]
|
|
57
|
+
[string] $Date,
|
|
58
|
+
[Parameter(Mandatory = $true)]
|
|
59
|
+
[string] $Author,
|
|
60
|
+
[string] $LastUpdated,
|
|
61
|
+
[string] $Status,
|
|
62
|
+
[string] $StatusColor,
|
|
63
|
+
[string] $Issue,
|
|
64
|
+
[string] $Parent,
|
|
65
|
+
[string] $Version
|
|
66
|
+
)
|
|
67
|
+
$updatedContent = $Content -replace '<feature-name>', $ShortName
|
|
68
|
+
$updatedContent = $updatedContent -replace '- Author: name', "- Author: $Author"
|
|
69
|
+
if ($Author) {
|
|
70
|
+
$updatedContent = $updatedContent -replace '<name>', $Author
|
|
71
|
+
}
|
|
72
|
+
if ($LastUpdated) {
|
|
73
|
+
$updatedContent = $updatedContent -replace '<yyyy-MM-ddTHH-mm>', $LastUpdated
|
|
74
|
+
}
|
|
75
|
+
$updatedContent = $updatedContent -replace '- Date captured: YYYY-MM-DD', "- Date captured: $Date"
|
|
76
|
+
if ($Status) {
|
|
77
|
+
$updatedContent = $updatedContent -replace '<status>', $Status
|
|
78
|
+
}
|
|
79
|
+
if ($StatusColor) {
|
|
80
|
+
$updatedContent = $updatedContent -replace '<color>', $StatusColor
|
|
81
|
+
}
|
|
82
|
+
if ($Issue) {
|
|
83
|
+
$updatedContent = $updatedContent -replace '<issue>', $Issue
|
|
84
|
+
}
|
|
85
|
+
if ($Parent) {
|
|
86
|
+
$updatedContent = $updatedContent -replace '<parent-id>', $Parent
|
|
87
|
+
}
|
|
88
|
+
if ($Version) {
|
|
89
|
+
$updatedContent = $updatedContent -replace '<version_number>', $Version
|
|
90
|
+
}
|
|
91
|
+
return $updatedContent
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function Invoke-VSCodeOpen {
|
|
95
|
+
[CmdletBinding()]
|
|
96
|
+
param(
|
|
97
|
+
[Parameter(Mandatory = $true)]
|
|
98
|
+
[string[]] $Files,
|
|
99
|
+
[scriptblock] $GetCommand = { param([string]$Name) Get-Command $Name -ErrorAction SilentlyContinue },
|
|
100
|
+
# DI seam: receives ($Exe, $CmdArgs); default invokes directly to support --reuse-window.
|
|
101
|
+
[scriptblock] $InvokeCommand = { param([string]$Exe, [string[]]$CmdArgs) & $Exe @CmdArgs }
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
# Detect Insiders using multiple signals; TERM_PROGRAM_VERSION alone is
|
|
105
|
+
# unreliable when VS Code spawns external processes (e.g., extension host or task runners).
|
|
106
|
+
$isInsidersSession = $env:TERM_PROGRAM_VERSION -match 'insider' -or
|
|
107
|
+
(-not [string]::IsNullOrEmpty($env:VSCODE_IPC_HOOK_CLI) -and $env:VSCODE_IPC_HOOK_CLI -match 'insider') -or
|
|
108
|
+
($null -ne (Get-Process -Name '*insiders*' -ErrorAction SilentlyContinue | Select-Object -First 1))
|
|
109
|
+
|
|
110
|
+
$hasMatchingCommand = {
|
|
111
|
+
param(
|
|
112
|
+
$CommandInfo,
|
|
113
|
+
[string] $ExpectedName
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
return $CommandInfo -and $CommandInfo.Name -eq $ExpectedName
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if ($isInsidersSession) {
|
|
120
|
+
$codeInsidersCmd = & $GetCommand 'code-insiders'
|
|
121
|
+
if (& $hasMatchingCommand $codeInsidersCmd 'code-insiders') {
|
|
122
|
+
& $InvokeCommand 'code-insiders' (@('--reuse-window') + $Files)
|
|
123
|
+
return $true
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
$codeCmd = & $GetCommand 'code'
|
|
128
|
+
if (& $hasMatchingCommand $codeCmd 'code') {
|
|
129
|
+
& $InvokeCommand 'code' (@('--reuse-window') + $Files)
|
|
130
|
+
return $true
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return $false
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
# Main script logic
|
|
137
|
+
if ([string]::IsNullOrWhiteSpace($ShortName)) {
|
|
138
|
+
Write-Error 'Aborted: no name provided. (Pass -ShortName or use the VS Code task prompt.)'
|
|
139
|
+
exit 1
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
if (-not (Test-ValidShortName -CandidateName $ShortName)) {
|
|
143
|
+
Write-Error "Aborted: '$ShortName' is invalid. Use kebab-case letters/numbers only (e.g., notes-feature)."
|
|
144
|
+
exit 1
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
$workspace = (Get-Location).Path
|
|
148
|
+
$today = Get-Date -Format 'yyyy-MM-dd'
|
|
149
|
+
$lastUpdated = Get-Date -Format 'yyyy-MM-ddTHH-mm'
|
|
150
|
+
$target = Join-Path $workspace "docs/features/potential/$today-$ShortName.md"
|
|
151
|
+
if ($TemplateRoot -and (Test-Path (Join-Path $TemplateRoot 'potential/template.md'))) {
|
|
152
|
+
$template = Join-Path $TemplateRoot 'potential/template.md'
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
$template = Join-Path $workspace 'docs/features/potential/template.md'
|
|
156
|
+
}
|
|
157
|
+
if (-not (Test-Path $template)) {
|
|
158
|
+
Write-Error "Template not found: $template"
|
|
159
|
+
exit 1
|
|
160
|
+
}
|
|
161
|
+
$backlog = Join-Path $workspace 'docs/features/backlog.md'
|
|
162
|
+
|
|
163
|
+
$targetDir = Split-Path -Parent $target
|
|
164
|
+
if (-not (Test-Path $targetDir)) {
|
|
165
|
+
New-Item -ItemType Directory -Path $targetDir -Force | Out-Null
|
|
166
|
+
}
|
|
167
|
+
Copy-Item $template $target -Force
|
|
168
|
+
Write-Output "Created: $target"
|
|
169
|
+
|
|
170
|
+
# Populate placeholders in the new file
|
|
171
|
+
$author = Get-AuthorName
|
|
172
|
+
$status = 'Draft'
|
|
173
|
+
$statusColor = 'lightgrey'
|
|
174
|
+
$issue = 'TBD'
|
|
175
|
+
$parent = 'none'
|
|
176
|
+
$version = '0.1'
|
|
177
|
+
$content = Get-Content -Raw -Path $target
|
|
178
|
+
$content = Convert-TemplateContent -Content $content -ShortName $ShortName -Date $today -Author $author -LastUpdated $lastUpdated -Status $status -StatusColor $statusColor -Issue $issue -Parent $parent -Version $version
|
|
179
|
+
Set-Content -Path $target -Value $content -Encoding UTF8
|
|
180
|
+
|
|
181
|
+
$opened = Invoke-VSCodeOpen -Files @($target, $backlog)
|
|
182
|
+
if (-not $opened) {
|
|
183
|
+
Write-Warning "VS Code CLI command not found (expected 'code' or 'code-insiders'). Open files manually:"
|
|
184
|
+
Write-Output " $target"
|
|
185
|
+
Write-Output " $backlog"
|
|
186
|
+
}
|
|
187
|
+
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"""Compatibility wrapper for extension-side active feature folder creation.
|
|
2
|
+
|
|
3
|
+
Purpose:
|
|
4
|
+
Preserve the bundled-script entry point while delegating folder-creation
|
|
5
|
+
behavior to the bundled package implementation.
|
|
6
|
+
|
|
7
|
+
Usage:
|
|
8
|
+
python new_active_feature_folder.py --feature-name <name> --type <type> \
|
|
9
|
+
[--issue-number <number>] --work-mode <mode>
|
|
10
|
+
|
|
11
|
+
Flow:
|
|
12
|
+
1. Ensure `resources/scripts/` is importable at runtime.
|
|
13
|
+
2. Import `dev_tools.new_active_feature_folder` from bundled sources.
|
|
14
|
+
3. Invoke the bundled CLI entrypoint in-process with unmodified CLI args.
|
|
15
|
+
|
|
16
|
+
Invariants / Constraints:
|
|
17
|
+
- No feature-folder business logic is implemented in this wrapper.
|
|
18
|
+
- Argument contract is owned by the bundled folder-creation module and
|
|
19
|
+
forwarded unchanged.
|
|
20
|
+
|
|
21
|
+
Side Effects:
|
|
22
|
+
Imports bundled folder-creation code and executes it in the current Python
|
|
23
|
+
process.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
from __future__ import annotations
|
|
27
|
+
|
|
28
|
+
import importlib
|
|
29
|
+
import sys
|
|
30
|
+
from pathlib import Path
|
|
31
|
+
from typing import TYPE_CHECKING, cast
|
|
32
|
+
|
|
33
|
+
if TYPE_CHECKING:
|
|
34
|
+
from collections.abc import Callable
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _ensure_bundled_scripts_import_path() -> None:
|
|
38
|
+
"""Prepend bundled `resources/scripts` directory to ``sys.path``."""
|
|
39
|
+
scripts_dir = Path(__file__).resolve().parent.parent / "scripts"
|
|
40
|
+
scripts_dir_str = str(scripts_dir)
|
|
41
|
+
|
|
42
|
+
if scripts_dir_str not in sys.path:
|
|
43
|
+
sys.path.insert(0, scripts_dir_str)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def main() -> int:
|
|
47
|
+
"""Execute bundled active-feature-folder entrypoint in-process.
|
|
48
|
+
|
|
49
|
+
Injects ``--template-root`` pointing to the extension's bundled
|
|
50
|
+
``feature-templates`` directory so the downstream module resolves
|
|
51
|
+
templates from the extension rather than the workspace.
|
|
52
|
+
"""
|
|
53
|
+
_ensure_bundled_scripts_import_path()
|
|
54
|
+
|
|
55
|
+
# Compute the bundled template root relative to this wrapper script.
|
|
56
|
+
template_root = str(Path(__file__).resolve().parent.parent / "feature-templates")
|
|
57
|
+
if "--template-root" not in sys.argv:
|
|
58
|
+
sys.argv.extend(["--template-root", template_root])
|
|
59
|
+
|
|
60
|
+
module = importlib.import_module("dev_tools.new_active_feature_folder")
|
|
61
|
+
module_main = cast("Callable[[], None]", module.main)
|
|
62
|
+
module_main()
|
|
63
|
+
return 0
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
if __name__ == "__main__":
|
|
67
|
+
raise SystemExit(main())
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"""Compatibility wrapper for extension-side potential bug entry creation.
|
|
2
|
+
|
|
3
|
+
Purpose:
|
|
4
|
+
Preserve the bundled-script entry point while delegating bug-entry creation
|
|
5
|
+
behavior to the bundled package implementation.
|
|
6
|
+
|
|
7
|
+
Usage:
|
|
8
|
+
python new_potential_bug_entry.py --short-name <name> [--template-root <path>]
|
|
9
|
+
|
|
10
|
+
Flow:
|
|
11
|
+
1. Ensure `resources/scripts/` is importable at runtime.
|
|
12
|
+
2. Import `dev_tools.new_potential_bug_entry` from bundled sources.
|
|
13
|
+
3. Invoke the bundled CLI entrypoint in-process with unmodified CLI args.
|
|
14
|
+
|
|
15
|
+
Invariants / Constraints:
|
|
16
|
+
- No bug-entry business logic is implemented in this wrapper.
|
|
17
|
+
- Argument contract is owned by the bundled bug-entry module and forwarded
|
|
18
|
+
unchanged.
|
|
19
|
+
|
|
20
|
+
Side Effects:
|
|
21
|
+
Imports bundled bug-entry code and executes it in the current Python process.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
from __future__ import annotations
|
|
25
|
+
|
|
26
|
+
import importlib
|
|
27
|
+
import sys
|
|
28
|
+
from pathlib import Path
|
|
29
|
+
from typing import TYPE_CHECKING, cast
|
|
30
|
+
|
|
31
|
+
if TYPE_CHECKING:
|
|
32
|
+
from collections.abc import Callable
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _ensure_bundled_scripts_import_path() -> None:
|
|
36
|
+
"""Prepend bundled `resources/scripts` directory to ``sys.path``."""
|
|
37
|
+
scripts_dir = Path(__file__).resolve().parent.parent / "scripts"
|
|
38
|
+
scripts_dir_str = str(scripts_dir)
|
|
39
|
+
|
|
40
|
+
if scripts_dir_str not in sys.path:
|
|
41
|
+
sys.path.insert(0, scripts_dir_str)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def main() -> int:
|
|
45
|
+
"""Execute bundled potential-bug-entry entrypoint in-process."""
|
|
46
|
+
_ensure_bundled_scripts_import_path()
|
|
47
|
+
module = importlib.import_module("dev_tools.new_potential_bug_entry")
|
|
48
|
+
module_main = cast("Callable[[], None]", module.main)
|
|
49
|
+
module_main()
|
|
50
|
+
return 0
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
if __name__ == "__main__":
|
|
54
|
+
raise SystemExit(main())
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Policy Audit Agent Instructions (Local Scope)
|
|
2
|
+
|
|
3
|
+
> NOTE: This file is scoped **only** to the policy audit templates directory.
|
|
4
|
+
> It does **not** change the global repo policy or day-to-day coding behavior.
|
|
5
|
+
> Apply these instructions only when the user explicitly requests a **Policy Audit**.
|
|
6
|
+
|
|
7
|
+
## When these instructions apply
|
|
8
|
+
|
|
9
|
+
Only follow this file when:
|
|
10
|
+
|
|
11
|
+
- The user explicitly asks for a "Policy Audit", "policy compliance audit", or similar, **or**
|
|
12
|
+
- The user is editing or creating a `PolicyAudit*.md` file in connection with a specific change, PR, or feature.
|
|
13
|
+
|
|
14
|
+
If the user is doing normal coding, test authoring, or refactoring without asking for an audit, **ignore this AGENTS.md** and follow the canonical instructions in:
|
|
15
|
+
|
|
16
|
+
- `.github/copilot-instructions.md`
|
|
17
|
+
- `.github/instructions/*.instructions.md`
|
|
18
|
+
|
|
19
|
+
## Inputs
|
|
20
|
+
|
|
21
|
+
When performing a policy audit:
|
|
22
|
+
|
|
23
|
+
1. Use the local process guide
|
|
24
|
+
- Read [README.md](./README.md) in this directory for the detailed audit process and usage instructions.
|
|
25
|
+
|
|
26
|
+
2. Use the policy audit template
|
|
27
|
+
- Use [policy-audit.yyyy-MM-ddTHH-mm.md](./policy-audit.yyyy-MM-ddTHH-mm.md) as the structural starting point for the audit document.
|
|
28
|
+
- Create a working copy (for example: `docs/features/active/<feature>/policy-audit.2026-01-08T14-30.md`) rather than editing the template in place.
|
|
29
|
+
|
|
30
|
+
3. Use the canonical policy documents for evaluation (read-only)
|
|
31
|
+
- General code change policy: `.github/instructions/general-code-change.instructions.md`
|
|
32
|
+
- Language-specific code change policy:
|
|
33
|
+
- Python: `.github/instructions/python-code-change.instructions.md`
|
|
34
|
+
- PowerShell: `.github/instructions/powershell-code-change.instructions.md`
|
|
35
|
+
- General unit test policy: `.github/instructions/general-unit-test.instructions.md`
|
|
36
|
+
- Language-specific unit test policy:
|
|
37
|
+
- Python: `.github/instructions/python-unit-test.instructions.md`
|
|
38
|
+
- PowerShell: `.github/instructions/powershell-unit-test.instructions.md`
|
|
39
|
+
|
|
40
|
+
## Behavior: How to run a Policy Audit
|
|
41
|
+
|
|
42
|
+
When asked to perform a Policy Audit for a component, branch, or PR:
|
|
43
|
+
|
|
44
|
+
1. **Identify scope**
|
|
45
|
+
- Determine what is being audited (e.g., "fix-all.ps1 unit tests", "Lexile scoring pipeline refactor", "new Python module X").
|
|
46
|
+
- Identify the relevant code files and test files.
|
|
47
|
+
- **Document baseline coverage BEFORE making changes** (if development has not yet started, or shelve changes temporarily to establish baseline).
|
|
48
|
+
|
|
49
|
+
2. **Create an audit document**
|
|
50
|
+
- Generate a timestamp in ISO-8601 format `yyyy-MM-ddTHH-mm` (e.g., "2026-01-08T14-30" for Jan 8, 2026 at 2:30 PM).
|
|
51
|
+
- Copy [policy-audit.yyyy-MM-ddTHH-mm.md](./policy-audit.yyyy-MM-ddTHH-mm.md) to the requested location with timestamped filename: `policy-audit.<timestamp>.md` (e.g., feature folder or PR docs).
|
|
52
|
+
- Replace placeholders (`[Component Name]`, dates, paths, counts) as described in [README.md](./README.md).
|
|
53
|
+
- Preserve the explicit coverage evidence checklist in the template.
|
|
54
|
+
- Keep the TypeScript and PowerShell artifact lines even when those languages are out of scope; mark them `N/A - out of scope` rather than deleting them.
|
|
55
|
+
- Fill the per-language comparison summary reference with either an in-document section reference or an exact artifact path.
|
|
56
|
+
- **For multi-language changes:**
|
|
57
|
+
- Fill in the Coverage Metrics by Language table with one row per language.
|
|
58
|
+
- Complete all applicable language sections (3A, 3B, 3C, 3D for code; 4A, 4B for tests).
|
|
59
|
+
- Delete sections for languages NOT involved in this change.
|
|
60
|
+
- **Fill in baseline coverage metrics** from pre-development measurement (per language that has coverage).
|
|
61
|
+
- Add one per-language comparison bullet for every in-scope language that has coverage requirements.
|
|
62
|
+
|
|
63
|
+
3. **Evaluate policy compliance**
|
|
64
|
+
- For each section of the template:
|
|
65
|
+
- Run the actual toolchain commands required by the general and language-specific policies.
|
|
66
|
+
- Inspect the code and tests for compliance with both:
|
|
67
|
+
- General policies, and
|
|
68
|
+
- Language-specific addenda.
|
|
69
|
+
- Record **status** (`✅ PASS`, `⚠️ PARTIAL`, `❌ FAIL`, `N/A`) and **evidence** in the appropriate table rows.
|
|
70
|
+
- **For multi-language changes:**
|
|
71
|
+
- Run each language's toolchain separately and document results in its section.
|
|
72
|
+
- **Python:** Black → Ruff → Pyright → Pytest (with coverage)
|
|
73
|
+
- **PowerShell:** Invoke-PoshQCFormat → Invoke-PoshQCAnalyze → Invoke-PoshQCTest (with coverage)
|
|
74
|
+
- **Bash:** shfmt → shellcheck → bats (coverage N/A)
|
|
75
|
+
- **JSON:** format_json → validate_json (coverage N/A)
|
|
76
|
+
- **For coverage metrics (Python and PowerShell only):**
|
|
77
|
+
- Compare post-change coverage to baseline to verify no regression (per language).
|
|
78
|
+
- Isolate and measure coverage of new/modified code only (must be ≥90% per language).
|
|
79
|
+
- Use concrete examples showing calculations: "Baseline: 85.2% → Post-change: 87.1% (+1.9%) ✅"
|
|
80
|
+
- **Fail-closed evidence handling:**
|
|
81
|
+
- No policy audit may report PASS unless it includes numeric baseline and post-change coverage metrics for every language in scope, plus changed/new-code coverage when required.
|
|
82
|
+
- If any required baseline artifact, QA artifact, or coverage-comparison artifact is missing, the verdict must be BLOCKED or INCOMPLETE, never PASS.
|
|
83
|
+
- Do not synthesize or backfill missing audit evidence from memory or inference.
|
|
84
|
+
- If evidence is missing, stop and report the exact missing artifact paths.
|
|
85
|
+
- **For scenario testing:**
|
|
86
|
+
- Use deterministic, input→output→assertion format for all examples.
|
|
87
|
+
- **Positive flows:** Show concrete valid inputs and expected outputs.
|
|
88
|
+
- **Negative flows:** Show concrete invalid inputs, expected exceptions, and error messages.
|
|
89
|
+
- **Edge cases:** Show concrete boundary conditions (empty, max length, Unicode, whitespace).
|
|
90
|
+
- **Error handling:** Show concrete error conditions and expected exception types.
|
|
91
|
+
|
|
92
|
+
4. **Verify temporary artifacts cleanup**
|
|
93
|
+
- **Identify all scripts created during development** (check commit history, staged files, dev-tools folders).
|
|
94
|
+
- **Categorize each script:**
|
|
95
|
+
- Temporary/one-time: Delete before finalizing audit.
|
|
96
|
+
- Ongoing tooling: Must have full test coverage and pass all repo policies.
|
|
97
|
+
- **Document disposition** in "Temporary artifacts cleanup" section of audit.
|
|
98
|
+
|
|
99
|
+
5. **Document gaps and exceptions**
|
|
100
|
+
- If any requirement is not fully met:
|
|
101
|
+
- Document the gap, rationale, and proposed follow-up in the "Gaps and Exceptions" section.
|
|
102
|
+
- List any removed/skipped tests and their justifications.
|
|
103
|
+
- If exceptions to policy are explicitly approved, record them in the "Approved Exceptions" section.
|
|
104
|
+
|
|
105
|
+
6. **Summarize and recommend**
|
|
106
|
+
- Complete the summary sections at the end of the template:
|
|
107
|
+
- Policy-by-policy summary
|
|
108
|
+
- Metrics summary (with deterministic baseline/post-change/new code coverage)
|
|
109
|
+
- Recommendation (`Ready for merge`, `Needs revision`, or `Blocked`)
|
|
110
|
+
- Ensure the final audit document is consistent with the underlying evidence and toolchain output.
|
|
111
|
+
|
|
112
|
+
## Constraints
|
|
113
|
+
|
|
114
|
+
- Do **not** modify the canonical `.instructions.md` policy documents as part of an audit.
|
|
115
|
+
- Do **not** treat this AGENTS file as a reason to change how normal code or tests are written; it is for **evaluation and documentation** only.
|
|
116
|
+
- Do **not** report readiness as PASS when required audit evidence is absent; report incomplete with the missing artifact names or paths.
|
|
117
|
+
- If you detect any conflict between this file and the canonical policy documents, halt and ask the user for clarification instead of guessing.
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Code Review: [Feature or Scope Name] ([#Issue or Scope Reference])
|
|
2
|
+
|
|
3
|
+
> **Template Usage Instructions:**
|
|
4
|
+
>
|
|
5
|
+
> This template is for writing feature-level or staged-diff code reviews that accompany policy audits and feature audits.
|
|
6
|
+
>
|
|
7
|
+
> **How to use:**
|
|
8
|
+
> 1. Copy this template to the target feature folder with an ISO-8601 timestamped filename: `code-review.yyyy-MM-ddTHH-mm.md`.
|
|
9
|
+
> 2. Replace all placeholders with concrete branch, file, test, and evidence details.
|
|
10
|
+
> 3. Keep the sections that apply to the reviewed scope and delete inapplicable language subsections.
|
|
11
|
+
> 4. Base all findings on verified evidence: diff inspection, toolchain output, coverage data, and feature-folder artifacts.
|
|
12
|
+
> 5. Use severity labels consistently: `Blocker`, `Major`, `Minor`, `Nit`, `Info`.
|
|
13
|
+
> 6. End with a clear readiness recommendation that matches the actual findings.
|
|
14
|
+
>
|
|
15
|
+
> **When to use:**
|
|
16
|
+
> - Feature branch review relative to a base branch
|
|
17
|
+
> - Post-remediation re-review
|
|
18
|
+
> - Staged-diff review before commit
|
|
19
|
+
> - Any repository workflow that requires `code-review.<timestamp>.md`
|
|
20
|
+
>
|
|
21
|
+
> **Delete this instruction block before finalizing the review.**
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
**Review Date:** [YYYY-MM-DD]
|
|
26
|
+
**Reviewer:** [Agent or reviewer name]
|
|
27
|
+
**Feature Folder:** `[docs/features/active/or/archive/path]`
|
|
28
|
+
**Feature Folder Selection Rule:** [How this feature folder was selected, or delete if obvious]
|
|
29
|
+
**Base Branch:** `[branch-name]`
|
|
30
|
+
**Head Branch:** `[branch-name or staged working tree]`
|
|
31
|
+
**Review Type:** [Initial review / Post-remediation re-review / Staged-diff review]
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Executive Summary
|
|
36
|
+
|
|
37
|
+
[Summarize the reviewed change in 1-2 paragraphs. State what changed, how large the scope is, what evidence was reviewed, and the overall implementation quality.]
|
|
38
|
+
|
|
39
|
+
**What changed:**
|
|
40
|
+
[Describe the implementation delta relative to the base branch or staged diff. Keep this concrete and file-aware.]
|
|
41
|
+
|
|
42
|
+
**Top 3 risks:**
|
|
43
|
+
1. [Most important remaining risk or uncertainty]
|
|
44
|
+
2. [Second most important remaining risk or uncertainty]
|
|
45
|
+
3. [Third most important remaining risk or uncertainty]
|
|
46
|
+
|
|
47
|
+
**PR readiness recommendation:** **[Go / Conditional Go / Needs Revision / Blocked]** — [One-sentence rationale grounded in the evidence below.]
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Findings Table
|
|
52
|
+
|
|
53
|
+
| Severity | File | Location | Finding | Recommendation | Rationale | Evidence |
|
|
54
|
+
|---|---|---|---|---|---|---|
|
|
55
|
+
| [Blocker/Major/Minor/Nit/Info] | `[path]` | `[line range / section / n/a]` | [Concrete issue] | [Concrete corrective action or note] | [Why it matters] | [Command output, artifact path, or inspected file reference] |
|
|
56
|
+
| [Blocker/Major/Minor/Nit/Info] | `[path]` | `[line range / section / n/a]` | [Concrete issue] | [Concrete corrective action or note] | [Why it matters] | [Command output, artifact path, or inspected file reference] |
|
|
57
|
+
|
|
58
|
+
[If applicable, add a short line such as `No Blockers or Major findings.`]
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Implementation Audit
|
|
63
|
+
|
|
64
|
+
**Instructions:** Keep only the language subsections that apply to the reviewed diff. Delete unused subsections.
|
|
65
|
+
|
|
66
|
+
### Python implementation audit (if applicable)
|
|
67
|
+
|
|
68
|
+
#### What changed well
|
|
69
|
+
|
|
70
|
+
- [Summarize the strongest implementation decisions in the Python scope.]
|
|
71
|
+
|
|
72
|
+
#### Typing and API notes
|
|
73
|
+
|
|
74
|
+
- [Describe type annotation quality, protocol/dataclass usage, public API clarity, or note `No new public Python API surface was added.`]
|
|
75
|
+
|
|
76
|
+
#### Error handling and logging
|
|
77
|
+
|
|
78
|
+
- [Describe exception handling, logging choices, and any relevant safeguards.]
|
|
79
|
+
|
|
80
|
+
### TypeScript implementation audit (if applicable)
|
|
81
|
+
|
|
82
|
+
#### What changed well
|
|
83
|
+
|
|
84
|
+
- [Summarize the strongest implementation decisions in the TypeScript scope.]
|
|
85
|
+
|
|
86
|
+
#### Type safety and maintainability
|
|
87
|
+
|
|
88
|
+
- [Describe exported type precision, generic use, suppression status, maintainability, and any notable gaps.]
|
|
89
|
+
|
|
90
|
+
#### Error handling and logging
|
|
91
|
+
|
|
92
|
+
- [Describe boundary validation, failure behavior, and logging patterns.]
|
|
93
|
+
|
|
94
|
+
### PowerShell implementation audit (if applicable)
|
|
95
|
+
|
|
96
|
+
#### What changed well
|
|
97
|
+
|
|
98
|
+
- [Summarize the strongest implementation decisions in the PowerShell scope.]
|
|
99
|
+
|
|
100
|
+
#### API and safety notes
|
|
101
|
+
|
|
102
|
+
- [Describe advanced-function usage, parameter validation, ShouldProcess behavior, naming, and analyzer hygiene.]
|
|
103
|
+
|
|
104
|
+
#### Error handling and logging
|
|
105
|
+
|
|
106
|
+
- [Describe failure behavior, error surfacing, and logging choices.]
|
|
107
|
+
|
|
108
|
+
### C# implementation audit (if applicable)
|
|
109
|
+
|
|
110
|
+
#### What changed well
|
|
111
|
+
|
|
112
|
+
- [Summarize the strongest implementation decisions in the C# scope.]
|
|
113
|
+
|
|
114
|
+
#### Type safety and API notes
|
|
115
|
+
|
|
116
|
+
- [Describe nullable safety, public contracts, analyzer cleanliness, and API clarity.]
|
|
117
|
+
|
|
118
|
+
#### Error handling and logging
|
|
119
|
+
|
|
120
|
+
- [Describe exception handling, logging patterns, and resource/lifecycle safety.]
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Test Quality Audit
|
|
125
|
+
|
|
126
|
+
[Summarize the automated and manual verification evidence reviewed. Note whether coverage, regression, or end-to-end evidence is present and what gaps remain.]
|
|
127
|
+
|
|
128
|
+
### Reviewed test and QA artifacts
|
|
129
|
+
|
|
130
|
+
- `[test-or-artifact-path]` — [What it verifies, execution quality, and any notable gap]
|
|
131
|
+
- `[test-or-artifact-path]` — [What it verifies, execution quality, and any notable gap]
|
|
132
|
+
- `[evidence/artifact-path]` — [What it proves about the change]
|
|
133
|
+
|
|
134
|
+
### Quality assessment prompts
|
|
135
|
+
|
|
136
|
+
- **Determinism:** [How the tests avoid flaky dependencies]
|
|
137
|
+
- **Isolation:** [Whether each test targets a clear behavior]
|
|
138
|
+
- **Speed:** [Observed runtime quality or evidence source]
|
|
139
|
+
- **Diagnostics:** [How clearly failures would identify the problem]
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Security / Correctness Checks
|
|
144
|
+
|
|
145
|
+
| Check | Status | Evidence |
|
|
146
|
+
|---|---|---|
|
|
147
|
+
| No secrets in code | [✅ PASS / ⚠️ PARTIAL / ❌ FAIL / N/A] | [Concrete inspection result] |
|
|
148
|
+
| No unsafe subprocess or command construction | [✅ PASS / ⚠️ PARTIAL / ❌ FAIL / N/A] | [Concrete inspection result] |
|
|
149
|
+
| Input validation at boundaries | [✅ PASS / ⚠️ PARTIAL / ❌ FAIL / N/A] | [Concrete inspection result] |
|
|
150
|
+
| Error handling remains explicit | [✅ PASS / ⚠️ PARTIAL / ❌ FAIL / N/A] | [Concrete inspection result] |
|
|
151
|
+
| Configuration / path handling is safe | [✅ PASS / ⚠️ PARTIAL / ❌ FAIL / N/A] | [Concrete inspection result] |
|
|
152
|
+
|
|
153
|
+
[Add or delete rows to match the reviewed technology and risk profile.]
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Research Log
|
|
158
|
+
|
|
159
|
+
[State whether external research was required. If none, say so directly. If research was required, list the sources and why they mattered.]
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Verdict
|
|
164
|
+
|
|
165
|
+
[Provide the final review conclusion in 1-2 paragraphs. State whether the change is ready for normal PR flow, ready after a specific follow-up, or blocked. Ensure this conclusion is consistent with the Findings Table and PR readiness recommendation above.]
|