@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.
Files changed (380) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -0
  3. package/out/mcp-server.js +17323 -0
  4. package/package.json +36 -0
  5. package/resources/claude-customizations/.claude/agent-memory/orchestrator/MEMORY.md +3 -0
  6. package/resources/claude-customizations/.claude/agent-memory/orchestrator/feedback_repo_root_is_source_of_truth.md +11 -0
  7. package/resources/claude-customizations/.claude/agent-memory/orchestrator/feedback_vsce_verify_package_location.md +19 -0
  8. package/resources/claude-customizations/.claude/agent-memory/orchestrator/project_extension_location.md +11 -0
  9. package/resources/claude-customizations/.claude/agent-memory/prd-feature/MEMORY.md +1 -0
  10. package/resources/claude-customizations/.claude/agent-memory/prd-feature/project_push_down_pattern.md +13 -0
  11. package/resources/claude-customizations/.claude/agent-memory/task-researcher/MEMORY.md +3 -0
  12. package/resources/claude-customizations/.claude/agent-memory/task-researcher/project_push_down_claude_dir.md +11 -0
  13. package/resources/claude-customizations/.claude/agents/atomic-executor.md +135 -0
  14. package/resources/claude-customizations/.claude/agents/atomic-planner.md +71 -0
  15. package/resources/claude-customizations/.claude/agents/csharp-typed-engineer.md +69 -0
  16. package/resources/claude-customizations/.claude/agents/epic-review.md +40 -0
  17. package/resources/claude-customizations/.claude/agents/feature-review.md +136 -0
  18. package/resources/claude-customizations/.claude/agents/orchestrator.md +83 -0
  19. package/resources/claude-customizations/.claude/agents/powershell-typed-engineer.md +80 -0
  20. package/resources/claude-customizations/.claude/agents/prd-feature.md +42 -0
  21. package/resources/claude-customizations/.claude/agents/python-typed-engineer.md +72 -0
  22. package/resources/claude-customizations/.claude/agents/staged-review.md +41 -0
  23. package/resources/claude-customizations/.claude/agents/status-updater.md +41 -0
  24. package/resources/claude-customizations/.claude/agents/task-researcher.md +81 -0
  25. package/resources/claude-customizations/.claude/agents/typescript-engineer.md +24 -0
  26. package/resources/claude-customizations/.claude/hooks/check-powershell-test-purity.ps1 +111 -0
  27. package/resources/claude-customizations/.claude/hooks/check-python-test-purity.ps1 +146 -0
  28. package/resources/claude-customizations/.claude/hooks/enforce-evidence-locations.ps1 +150 -0
  29. package/resources/claude-customizations/.claude/hooks/enforce-powershell-batch-budget.ps1 +238 -0
  30. package/resources/claude-customizations/.claude/hooks/enforce-promotion-mcp-only.ps1 +147 -0
  31. package/resources/claude-customizations/.claude/hooks/enforce-python-batch-budget.ps1 +235 -0
  32. package/resources/claude-customizations/.claude/hooks/validate-bash.ps1 +69 -0
  33. package/resources/claude-customizations/.claude/hooks/validate-executor-output.ps1 +296 -0
  34. package/resources/claude-customizations/.claude/hooks/validate-feature-review-coverage.ps1 +389 -0
  35. package/resources/claude-customizations/.claude/hooks/validate-orchestrator-output.ps1 +141 -0
  36. package/resources/claude-customizations/.claude/hooks/validate-planner-output.ps1 +288 -0
  37. package/resources/claude-customizations/.claude/hooks/validate-required-artifact-output.ps1 +171 -0
  38. package/resources/claude-customizations/.claude/hooks/validate-task-researcher-output.ps1 +142 -0
  39. package/resources/claude-customizations/.claude/rules/csharp.md +62 -0
  40. package/resources/claude-customizations/.claude/rules/general-code-change.md +71 -0
  41. package/resources/claude-customizations/.claude/rules/general-unit-test.md +60 -0
  42. package/resources/claude-customizations/.claude/rules/powershell.md +97 -0
  43. package/resources/claude-customizations/.claude/rules/python-suppressions.md +143 -0
  44. package/resources/claude-customizations/.claude/rules/python.md +99 -0
  45. package/resources/claude-customizations/.claude/rules/self-explanatory-code-commenting.md +97 -0
  46. package/resources/claude-customizations/.claude/rules/tonality.md +80 -0
  47. package/resources/claude-customizations/.claude/rules/typescript-suppressions.md +66 -0
  48. package/resources/claude-customizations/.claude/rules/typescript.md +45 -0
  49. package/resources/claude-customizations/.claude/settings.json +144 -0
  50. package/resources/claude-customizations/.claude/skills/acceptance-criteria-tracking/SKILL.md +102 -0
  51. package/resources/claude-customizations/.claude/skills/atomic-plan-contract/SKILL.md +189 -0
  52. package/resources/claude-customizations/.claude/skills/commit-message/SKILL.md +65 -0
  53. package/resources/claude-customizations/.claude/skills/csharp-change-budget-router/SKILL.md +90 -0
  54. package/resources/claude-customizations/.claude/skills/csharp-orchestration-state-machine/SKILL.md +58 -0
  55. package/resources/claude-customizations/.claude/skills/csharp-qa-gate/SKILL.md +77 -0
  56. package/resources/claude-customizations/.claude/skills/evidence-and-timestamp-conventions/SKILL.md +164 -0
  57. package/resources/claude-customizations/.claude/skills/execute-hard-lock/SKILL.md +82 -0
  58. package/resources/claude-customizations/.claude/skills/feature-promotion-lifecycle/SKILL.md +115 -0
  59. package/resources/claude-customizations/.claude/skills/feature-review-workflow/SKILL.md +167 -0
  60. package/resources/claude-customizations/.claude/skills/fill-feature-docs/SKILL.md +22 -0
  61. package/resources/claude-customizations/.claude/skills/invoke-csharp-engineer/SKILL.md +64 -0
  62. package/resources/claude-customizations/.claude/skills/invoke-powershell-engineer/SKILL.md +65 -0
  63. package/resources/claude-customizations/.claude/skills/invoke-python-engineer/SKILL.md +64 -0
  64. package/resources/claude-customizations/.claude/skills/make-skill-template/SKILL.md +147 -0
  65. package/resources/claude-customizations/.claude/skills/orchestrate/SKILL.md +132 -0
  66. package/resources/claude-customizations/.claude/skills/policy-audit-template-usage/SKILL.md +49 -0
  67. package/resources/claude-customizations/.claude/skills/policy-compliance-order/SKILL.md +40 -0
  68. package/resources/claude-customizations/.claude/skills/powershell-change-budget-router/SKILL.md +49 -0
  69. package/resources/claude-customizations/.claude/skills/powershell-orchestration-state-machine/SKILL.md +58 -0
  70. package/resources/claude-customizations/.claude/skills/powershell-qa-gate/SKILL.md +77 -0
  71. package/resources/claude-customizations/.claude/skills/pr-author/SKILL.md +50 -0
  72. package/resources/claude-customizations/.claude/skills/pr-base-branch-merge-base/SKILL.md +56 -0
  73. package/resources/claude-customizations/.claude/skills/pr-context-artifacts/SKILL.md +30 -0
  74. package/resources/claude-customizations/.claude/skills/python-change-budget-router/SKILL.md +79 -0
  75. package/resources/claude-customizations/.claude/skills/python-qa-gate/SKILL.md +77 -0
  76. package/resources/claude-customizations/.claude/skills/remediation-handoff-atomic-planner/SKILL.md +40 -0
  77. package/resources/claude-customizations/.claude/skills/research-issue/SKILL.md +67 -0
  78. package/resources/claude-customizations/.claude/skills/review-epic/SKILL.md +21 -0
  79. package/resources/claude-customizations/.claude/skills/review-feature/SKILL.md +25 -0
  80. package/resources/claude-customizations/.claude/skills/review-staged/SKILL.md +21 -0
  81. package/resources/claude-customizations/.claude/skills/skill-canonical-location-audit/SKILL.md +49 -0
  82. package/resources/claude-customizations/.claude/skills/translate-copilot-to-claude/SKILL.md +295 -0
  83. package/resources/claude-customizations/.claude/skills/update-status/SKILL.md +21 -0
  84. package/resources/claude-dir-customizations/.mcp.json +8 -0
  85. package/resources/codex-and-agents-customizations/.agents/README.md +86 -0
  86. package/resources/codex-and-agents-customizations/.agents/skills/README.md +49 -0
  87. package/resources/codex-and-agents-customizations/.agents/skills/acceptance-criteria-tracking/SKILL.md +107 -0
  88. package/resources/codex-and-agents-customizations/.agents/skills/atomic-executor/SKILL.md +73 -0
  89. package/resources/codex-and-agents-customizations/.agents/skills/atomic-plan-contract/SKILL.md +194 -0
  90. package/resources/codex-and-agents-customizations/.agents/skills/atomic-planner/SKILL.md +87 -0
  91. package/resources/codex-and-agents-customizations/.agents/skills/commit-message/SKILL.md +70 -0
  92. package/resources/codex-and-agents-customizations/.agents/skills/commit-message-conventions/SKILL.md +95 -0
  93. package/resources/codex-and-agents-customizations/.agents/skills/csharp/SKILL.md +67 -0
  94. package/resources/codex-and-agents-customizations/.agents/skills/csharp-change-budget-router/SKILL.md +94 -0
  95. package/resources/codex-and-agents-customizations/.agents/skills/csharp-orchestration-state-machine/SKILL.md +64 -0
  96. package/resources/codex-and-agents-customizations/.agents/skills/csharp-qa-gate/SKILL.md +82 -0
  97. package/resources/codex-and-agents-customizations/.agents/skills/evidence-and-timestamp-conventions/SKILL.md +168 -0
  98. package/resources/codex-and-agents-customizations/.agents/skills/execute-hard-lock/SKILL.md +88 -0
  99. package/resources/codex-and-agents-customizations/.agents/skills/feature-promotion-lifecycle/SKILL.md +129 -0
  100. package/resources/codex-and-agents-customizations/.agents/skills/feature-review/SKILL.md +106 -0
  101. package/resources/codex-and-agents-customizations/.agents/skills/feature-review-workflow/SKILL.md +181 -0
  102. package/resources/codex-and-agents-customizations/.agents/skills/fill-feature-docs/SKILL.md +27 -0
  103. package/resources/codex-and-agents-customizations/.agents/skills/invoke-csharp-engineer/SKILL.md +73 -0
  104. package/resources/codex-and-agents-customizations/.agents/skills/invoke-powershell-engineer/SKILL.md +74 -0
  105. package/resources/codex-and-agents-customizations/.agents/skills/invoke-python-engineer/SKILL.md +73 -0
  106. package/resources/codex-and-agents-customizations/.agents/skills/make-skill-template/SKILL.md +152 -0
  107. package/resources/codex-and-agents-customizations/.agents/skills/orchestrate/SKILL.md +143 -0
  108. package/resources/codex-and-agents-customizations/.agents/skills/orchestrator-workflow/SKILL.md +317 -0
  109. package/resources/codex-and-agents-customizations/.agents/skills/policy-audit-template-usage/SKILL.md +53 -0
  110. package/resources/codex-and-agents-customizations/.agents/skills/policy-compliance-order/SKILL.md +49 -0
  111. package/resources/codex-and-agents-customizations/.agents/skills/powershell/SKILL.md +102 -0
  112. package/resources/codex-and-agents-customizations/.agents/skills/powershell-change-budget-router/SKILL.md +53 -0
  113. package/resources/codex-and-agents-customizations/.agents/skills/powershell-orchestration-state-machine/SKILL.md +64 -0
  114. package/resources/codex-and-agents-customizations/.agents/skills/powershell-qa-gate/SKILL.md +83 -0
  115. package/resources/codex-and-agents-customizations/.agents/skills/pr-author/SKILL.md +55 -0
  116. package/resources/codex-and-agents-customizations/.agents/skills/pr-authoring/SKILL.md +124 -0
  117. package/resources/codex-and-agents-customizations/.agents/skills/pr-base-branch-merge-base/SKILL.md +60 -0
  118. package/resources/codex-and-agents-customizations/.agents/skills/pr-context-artifacts/SKILL.md +34 -0
  119. package/resources/codex-and-agents-customizations/.agents/skills/python/SKILL.md +104 -0
  120. package/resources/codex-and-agents-customizations/.agents/skills/python-change-budget-router/SKILL.md +84 -0
  121. package/resources/codex-and-agents-customizations/.agents/skills/python-qa-gate/SKILL.md +82 -0
  122. package/resources/codex-and-agents-customizations/.agents/skills/python-suppressions/SKILL.md +148 -0
  123. package/resources/codex-and-agents-customizations/.agents/skills/remediation-handoff-atomic-planner/SKILL.md +49 -0
  124. package/resources/codex-and-agents-customizations/.agents/skills/repo-automation-adapter/SKILL.md +142 -0
  125. package/resources/codex-and-agents-customizations/.agents/skills/repo-automation-adapter/agents/openai.yaml +5 -0
  126. package/resources/codex-and-agents-customizations/.agents/skills/research-issue/SKILL.md +72 -0
  127. package/resources/codex-and-agents-customizations/.agents/skills/review-epic/SKILL.md +26 -0
  128. package/resources/codex-and-agents-customizations/.agents/skills/review-feature/SKILL.md +30 -0
  129. package/resources/codex-and-agents-customizations/.agents/skills/review-staged/SKILL.md +26 -0
  130. package/resources/codex-and-agents-customizations/.agents/skills/self-explanatory-code-commenting/SKILL.md +102 -0
  131. package/resources/codex-and-agents-customizations/.agents/skills/skill-canonical-location-audit/SKILL.md +52 -0
  132. package/resources/codex-and-agents-customizations/.agents/skills/translate-copilot-to-claude/SKILL.md +317 -0
  133. package/resources/codex-and-agents-customizations/.agents/skills/typescript/SKILL.md +50 -0
  134. package/resources/codex-and-agents-customizations/.agents/skills/typescript-suppressions/SKILL.md +71 -0
  135. package/resources/codex-and-agents-customizations/.agents/skills/update-status/SKILL.md +26 -0
  136. package/resources/codex-and-agents-customizations/.codex/agents/5.1-beast-adjusted.toml +23 -0
  137. package/resources/codex-and-agents-customizations/.codex/agents/5.1-thinking-beast-mode-adjusted.toml +23 -0
  138. package/resources/codex-and-agents-customizations/.codex/agents/api-architect.toml +23 -0
  139. package/resources/codex-and-agents-customizations/.codex/agents/atomic-executor.toml +151 -0
  140. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planner.toml +93 -0
  141. package/resources/codex-and-agents-customizations/.codex/agents/atomic-planning.toml +24 -0
  142. package/resources/codex-and-agents-customizations/.codex/agents/commentary-remediation.toml +23 -0
  143. package/resources/codex-and-agents-customizations/.codex/agents/commit-steward.toml +20 -0
  144. package/resources/codex-and-agents-customizations/.codex/agents/csharp-atomic-executor.toml +24 -0
  145. package/resources/codex-and-agents-customizations/.codex/agents/csharp-atomic-planning.toml +25 -0
  146. package/resources/codex-and-agents-customizations/.codex/agents/csharp-orchestrator.toml +56 -0
  147. package/resources/codex-and-agents-customizations/.codex/agents/csharp-typed-engineer.toml +97 -0
  148. package/resources/codex-and-agents-customizations/.codex/agents/epic-review.toml +52 -0
  149. package/resources/codex-and-agents-customizations/.codex/agents/expert-nextjs-developer.toml +23 -0
  150. package/resources/codex-and-agents-customizations/.codex/agents/expert-react-frontend-engineer.toml +23 -0
  151. package/resources/codex-and-agents-customizations/.codex/agents/feature-review.toml +149 -0
  152. package/resources/codex-and-agents-customizations/.codex/agents/feature-reviewer.toml +60 -0
  153. package/resources/codex-and-agents-customizations/.codex/agents/gpt-5-beast-mode.toml +23 -0
  154. package/resources/codex-and-agents-customizations/.codex/agents/hlbpa.toml +23 -0
  155. package/resources/codex-and-agents-customizations/.codex/agents/mentor.toml +23 -0
  156. package/resources/codex-and-agents-customizations/.codex/agents/orchestrator.toml +121 -0
  157. package/resources/codex-and-agents-customizations/.codex/agents/powershell-atomic-executor.toml +24 -0
  158. package/resources/codex-and-agents-customizations/.codex/agents/powershell-atomic-planning.toml +25 -0
  159. package/resources/codex-and-agents-customizations/.codex/agents/powershell-di-unit-test-engineer.toml +24 -0
  160. package/resources/codex-and-agents-customizations/.codex/agents/powershell-orchestrator.toml +56 -0
  161. package/resources/codex-and-agents-customizations/.codex/agents/powershell-typed-engineer.toml +108 -0
  162. package/resources/codex-and-agents-customizations/.codex/agents/pr-author.toml +26 -0
  163. package/resources/codex-and-agents-customizations/.codex/agents/prd-feature.toml +53 -0
  164. package/resources/codex-and-agents-customizations/.codex/agents/prd.toml +23 -0
  165. package/resources/codex-and-agents-customizations/.codex/agents/pytest-unit-test-coding.toml +24 -0
  166. package/resources/codex-and-agents-customizations/.codex/agents/python-atomic-executor.toml +24 -0
  167. package/resources/codex-and-agents-customizations/.codex/agents/python-atomic-planning.toml +25 -0
  168. package/resources/codex-and-agents-customizations/.codex/agents/python-execution-only-typed.toml +24 -0
  169. package/resources/codex-and-agents-customizations/.codex/agents/python-orchestrator.toml +54 -0
  170. package/resources/codex-and-agents-customizations/.codex/agents/python-typed-engineer.toml +100 -0
  171. package/resources/codex-and-agents-customizations/.codex/agents/staged-review.toml +53 -0
  172. package/resources/codex-and-agents-customizations/.codex/agents/status-updater.toml +53 -0
  173. package/resources/codex-and-agents-customizations/.codex/agents/task-researcher.toml +103 -0
  174. package/resources/codex-and-agents-customizations/.codex/agents/tdd-green.toml +23 -0
  175. package/resources/codex-and-agents-customizations/.codex/agents/tdd-red.toml +23 -0
  176. package/resources/codex-and-agents-customizations/.codex/agents/tdd-refactor.toml +23 -0
  177. package/resources/codex-and-agents-customizations/.codex/agents/typescript-engineer.toml +48 -0
  178. package/resources/codex-and-agents-customizations/.codex/agents/voidbeast-gpt41enhanced.toml +23 -0
  179. package/resources/codex-and-agents-customizations/.codex/codex-web-setup.plan.md +26 -0
  180. package/resources/codex-and-agents-customizations/.codex/codex-web-setup.sh +384 -0
  181. package/resources/codex-and-agents-customizations/.codex/config.toml +137 -0
  182. package/resources/codex-and-agents-customizations/.codex/hooks/check-powershell-test-purity.ps1 +113 -0
  183. package/resources/codex-and-agents-customizations/.codex/hooks/check-python-test-purity.ps1 +149 -0
  184. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-evidence-locations.ps1 +153 -0
  185. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-powershell-batch-budget.ps1 +241 -0
  186. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-promotion-mcp-only.ps1 +150 -0
  187. package/resources/codex-and-agents-customizations/.codex/hooks/enforce-python-batch-budget.ps1 +238 -0
  188. package/resources/codex-and-agents-customizations/.codex/hooks/validate-bash.ps1 +72 -0
  189. package/resources/codex-and-agents-customizations/.codex/hooks/validate-feature-review-coverage.ps1 +265 -0
  190. package/resources/codex-and-agents-customizations/.codex/prompts/feature-review-remediate.md +10 -0
  191. package/resources/codex-and-agents-customizations/.codex/prompts/generate-commit-message-repo.md +11 -0
  192. package/resources/codex-and-agents-customizations/.codex/prompts/generate-pr.md +15 -0
  193. package/resources/codex-and-agents-customizations/.codex/prompts/orchestrate-work.md +22 -0
  194. package/resources/codex-and-agents-customizations/AGENTS.md +317 -0
  195. package/resources/customizations/.github/agents/5.1-Beast-adjusted.agent.md +181 -0
  196. package/resources/customizations/.github/agents/5.1-Thinking-Beast-Mode-adjusted.agent.md +361 -0
  197. package/resources/customizations/.github/agents/Powershell DI Unit Test Engineer.agent.md +192 -0
  198. package/resources/customizations/.github/agents/api-architect.agent.md +40 -0
  199. package/resources/customizations/.github/agents/atomic_executor.agent.md +251 -0
  200. package/resources/customizations/.github/agents/atomic_planning.agent.md +658 -0
  201. package/resources/customizations/.github/agents/commentary-remediation.agent.md +35 -0
  202. package/resources/customizations/.github/agents/commit-steward.agent.md +200 -0
  203. package/resources/customizations/.github/agents/csharp-atomic-executor.agent.md +288 -0
  204. package/resources/customizations/.github/agents/csharp-atomic-planning.agent.md +354 -0
  205. package/resources/customizations/.github/agents/csharp-orchestrator.agent.md +375 -0
  206. package/resources/customizations/.github/agents/csharp-typed-engineer.agent.md +285 -0
  207. package/resources/customizations/.github/agents/epic-review.agent.md +374 -0
  208. package/resources/customizations/.github/agents/expert-nextjs-developer.agent.md +477 -0
  209. package/resources/customizations/.github/agents/expert-react-frontend-engineer.agent.md +739 -0
  210. package/resources/customizations/.github/agents/feature-review.agent.md +49 -0
  211. package/resources/customizations/.github/agents/gpt-5-beast-mode.agent.md +116 -0
  212. package/resources/customizations/.github/agents/hlbpa.agent.md +219 -0
  213. package/resources/customizations/.github/agents/mentor.agent.md +32 -0
  214. package/resources/customizations/.github/agents/orchestrator.agent.md +449 -0
  215. package/resources/customizations/.github/agents/powershell-atomic-executor.agent.md +287 -0
  216. package/resources/customizations/.github/agents/powershell-atomic-planning.agent.md +647 -0
  217. package/resources/customizations/.github/agents/powershell-orchestrator.agent.md +382 -0
  218. package/resources/customizations/.github/agents/powershell-typed-engineer.agent.md +293 -0
  219. package/resources/customizations/.github/agents/pr-author.agent.md +138 -0
  220. package/resources/customizations/.github/agents/prd-feature.agent.md +52 -0
  221. package/resources/customizations/.github/agents/prd.agent.md +202 -0
  222. package/resources/customizations/.github/agents/pytest-unit-test-coding.agent.md +202 -0
  223. package/resources/customizations/.github/agents/python-atomic-executor.agent.md +289 -0
  224. package/resources/customizations/.github/agents/python-atomic-planning.agent.md +429 -0
  225. package/resources/customizations/.github/agents/python-execution-only-typed.agent.md +217 -0
  226. package/resources/customizations/.github/agents/python-orchestrator.agent.md +380 -0
  227. package/resources/customizations/.github/agents/python-typed-engineer.agent.md +271 -0
  228. package/resources/customizations/.github/agents/staged-review.agent.md +246 -0
  229. package/resources/customizations/.github/agents/status_updater.agent.md +279 -0
  230. package/resources/customizations/.github/agents/task-researcher.agent.md +298 -0
  231. package/resources/customizations/.github/agents/tdd-green.agent.md +60 -0
  232. package/resources/customizations/.github/agents/tdd-red.agent.md +66 -0
  233. package/resources/customizations/.github/agents/tdd-refactor.agent.md +94 -0
  234. package/resources/customizations/.github/agents/typescript-engineer.agent.md +167 -0
  235. package/resources/customizations/.github/agents/voidbeast-gpt41enhanced.agent.md +230 -0
  236. package/resources/customizations/.github/codex/execute-hard-lock.prompt.md +105 -0
  237. package/resources/customizations/.github/codex/resume-hard-lock.prompt.md +92 -0
  238. package/resources/customizations/.github/copilot-instructions.md +7 -0
  239. package/resources/customizations/.github/instructions/csharp-code-change.instructions.md +184 -0
  240. package/resources/customizations/.github/instructions/csharp-unit-test.instructions.md +52 -0
  241. package/resources/customizations/.github/instructions/general-code-change.instructions.md +290 -0
  242. package/resources/customizations/.github/instructions/general-unit-test.instructions.md +106 -0
  243. package/resources/customizations/.github/instructions/github-actions-ci-cd-best-practices.instructions.md +607 -0
  244. package/resources/customizations/.github/instructions/github-actions.instructions.md +23 -0
  245. package/resources/customizations/.github/instructions/powershell-code-change.instructions.md +81 -0
  246. package/resources/customizations/.github/instructions/powershell-unit-test.instructions.md +69 -0
  247. package/resources/customizations/.github/instructions/python-code-change.instructions.md +232 -0
  248. package/resources/customizations/.github/instructions/python-suppressions.instructions.md +609 -0
  249. package/resources/customizations/.github/instructions/python-unit-test.instructions.md +71 -0
  250. package/resources/customizations/.github/instructions/self-explanatory-code-commenting.instructions.md +238 -0
  251. package/resources/customizations/.github/instructions/tonality.instructions.md +133 -0
  252. package/resources/customizations/.github/instructions/typescript-code-change.instructions.md +203 -0
  253. package/resources/customizations/.github/instructions/typescript-suppressions.instructions.md +157 -0
  254. package/resources/customizations/.github/instructions/typescript-unit-test.instructions.md +112 -0
  255. package/resources/customizations/.github/prompts/add-educational-comments.prompt.md +129 -0
  256. package/resources/customizations/.github/prompts/breakdown-bug-prd.prompt.md +29 -0
  257. package/resources/customizations/.github/prompts/breakdown-epic-arch.prompt.md +66 -0
  258. package/resources/customizations/.github/prompts/breakdown-epic-pm.prompt.md +58 -0
  259. package/resources/customizations/.github/prompts/breakdown-feature-implementation.prompt.md +128 -0
  260. package/resources/customizations/.github/prompts/breakdown-feature-prd.prompt.md +61 -0
  261. package/resources/customizations/.github/prompts/code-exemplars-blueprint-generator.prompt.md +126 -0
  262. package/resources/customizations/.github/prompts/drafts/create-github-issues-feature-from-implementation-plan.prompt.md +28 -0
  263. package/resources/customizations/.github/prompts/drafts/create-implementation-plan.prompt.md +158 -0
  264. package/resources/customizations/.github/prompts/drafts/create-technical-spike.prompt.md +231 -0
  265. package/resources/customizations/.github/prompts/drafts/potential-feature-prd.prompt.md +19 -0
  266. package/resources/customizations/.github/prompts/drafts/update-implementation-plan.prompt.md +158 -0
  267. package/resources/customizations/.github/prompts/execute-plan-template.md +21 -0
  268. package/resources/customizations/.github/prompts/export-chat.prompt.md +7 -0
  269. package/resources/customizations/.github/prompts/fillout-prd-feature.prompt.md +46 -0
  270. package/resources/customizations/.github/prompts/generate-atomic-plan.prompt.md +96 -0
  271. package/resources/customizations/.github/prompts/generate-commit-message-repo.prompt.md +108 -0
  272. package/resources/customizations/.github/prompts/generate-pr.prompt.md +151 -0
  273. package/resources/customizations/.github/prompts/javascript-typescript-jest.prompt.md +44 -0
  274. package/resources/customizations/.github/prompts/orchestrate-csharp-work.prompt.md +66 -0
  275. package/resources/customizations/.github/prompts/orchestrate-powershell-work.prompt.md +50 -0
  276. package/resources/customizations/.github/prompts/orchestrate-python-work.prompt.md +50 -0
  277. package/resources/customizations/.github/prompts/orchestrate-work.prompt.md +66 -0
  278. package/resources/customizations/.github/prompts/remediate-comments.prompt.md +53 -0
  279. package/resources/customizations/.github/prompts/research-issue.prompt.md +125 -0
  280. package/resources/customizations/.github/prompts/review-epic.prompt.md +94 -0
  281. package/resources/customizations/.github/prompts/review-feature.prompt.md +130 -0
  282. package/resources/customizations/.github/prompts/review-staged.prompt.md +43 -0
  283. package/resources/customizations/.github/prompts/update_status.prompt.md +68 -0
  284. package/resources/customizations/.github/skills/README.md +26 -0
  285. package/resources/customizations/.github/skills/acceptance-criteria-tracking/SKILL.md +102 -0
  286. package/resources/customizations/.github/skills/atomic-plan-contract/SKILL.md +174 -0
  287. package/resources/customizations/.github/skills/csharp-change-budget-router/SKILL.md +48 -0
  288. package/resources/customizations/.github/skills/csharp-orchestration-state-machine/SKILL.md +57 -0
  289. package/resources/customizations/.github/skills/evidence-and-timestamp-conventions/SKILL.md +135 -0
  290. package/resources/customizations/.github/skills/feature-promotion-lifecycle/SKILL.md +121 -0
  291. package/resources/customizations/.github/skills/feature-review-workflow/SKILL.md +153 -0
  292. package/resources/customizations/.github/skills/make-skill-template/SKILL.md +147 -0
  293. package/resources/customizations/.github/skills/policy-audit-template-usage/SKILL.md +48 -0
  294. package/resources/customizations/.github/skills/policy-compliance-order/SKILL.md +37 -0
  295. package/resources/customizations/.github/skills/powershell-change-budget-router/SKILL.md +48 -0
  296. package/resources/customizations/.github/skills/powershell-orchestration-state-machine/SKILL.md +57 -0
  297. package/resources/customizations/.github/skills/pr-base-branch-merge-base/SKILL.md +55 -0
  298. package/resources/customizations/.github/skills/pr-context-artifacts/SKILL.md +29 -0
  299. package/resources/customizations/.github/skills/remediation-handoff-atomic-planner/SKILL.md +39 -0
  300. package/resources/customizations/.github/skills/skill-canonical-location-audit/SKILL.md +48 -0
  301. package/resources/feature-templates/bug/plan.yyyy-MM-ddTHH-mm.md +44 -0
  302. package/resources/feature-templates/bug/potential_bug.md +59 -0
  303. package/resources/feature-templates/bug/spec.md +99 -0
  304. package/resources/feature-templates/epic/initiative.md +43 -0
  305. package/resources/feature-templates/feature/plan.yyyy-MM-ddTHH-mm.md +53 -0
  306. package/resources/feature-templates/feature/spec.md +66 -0
  307. package/resources/feature-templates/feature/user-story.md +42 -0
  308. package/resources/feature-templates/potential/template.md +33 -0
  309. package/resources/feature-templates/refactor/plan.yyyy-MM-ddTHH-mm.md +52 -0
  310. package/resources/feature-templates/refactor/spec.md +69 -0
  311. package/resources/powershell/PoshQC/PoshQC.Analyzer.psm1 +254 -0
  312. package/resources/powershell/PoshQC/PoshQC.FileDiscovery.psm1 +138 -0
  313. package/resources/powershell/PoshQC/PoshQC.Testing.psm1 +409 -0
  314. package/resources/powershell/PoshQC/PoshQC.psd1 +31 -0
  315. package/resources/powershell/PoshQC/PoshQC.psm1 +101 -0
  316. package/resources/powershell/PoshQC/README.md +80 -0
  317. package/resources/powershell/PoshQC/settings/pester.runsettings.psd1 +59 -0
  318. package/resources/powershell/PoshQC/settings/pssa.settings.psd1 +55 -0
  319. package/resources/scripts/dev_tools/__init__.py +0 -0
  320. package/resources/scripts/dev_tools/agentic_sync.py +819 -0
  321. package/resources/scripts/dev_tools/codex_native_converter/__init__.py +11 -0
  322. package/resources/scripts/dev_tools/codex_native_converter/__main__.py +6 -0
  323. package/resources/scripts/dev_tools/codex_native_converter/cli.py +11 -0
  324. package/resources/scripts/dev_tools/new_active_feature_folder.py +79 -0
  325. package/resources/scripts/dev_tools/new_active_feature_folder_docs.py +268 -0
  326. package/resources/scripts/dev_tools/new_active_feature_folder_flow.py +366 -0
  327. package/resources/scripts/dev_tools/new_active_feature_folder_io.py +306 -0
  328. package/resources/scripts/dev_tools/new_active_feature_folder_markdown.py +252 -0
  329. package/resources/scripts/dev_tools/new_active_feature_folder_models.py +136 -0
  330. package/resources/scripts/dev_tools/new_potential_bug_entry.py +465 -0
  331. package/resources/scripts/dev_tools/potential_to_issue.py +421 -0
  332. package/resources/scripts/dev_tools/potential_to_issue_content.py +212 -0
  333. package/resources/scripts/dev_tools/pr_context/__init__.py +0 -0
  334. package/resources/scripts/dev_tools/pr_context/collector.py +619 -0
  335. package/resources/scripts/dev_tools/pr_context/feature_docs.py +349 -0
  336. package/resources/scripts/dev_tools/pr_context/git.py +153 -0
  337. package/resources/scripts/dev_tools/pr_context/github.py +549 -0
  338. package/resources/scripts/dev_tools/pr_context/models.py +198 -0
  339. package/resources/scripts/dev_tools/pr_context/render.py +342 -0
  340. package/resources/scripts/dev_tools/pr_context/render_feature_excerpts.py +256 -0
  341. package/resources/scripts/dev_tools/pr_context/render_pr_helpers.py +291 -0
  342. package/resources/scripts/dev_tools/pr_context/summary_helpers.py +386 -0
  343. package/resources/scripts/dev_tools/pr_context/verification_evidence.py +171 -0
  344. package/resources/scripts/dev_tools/prompt_mode_contract.py +152 -0
  345. package/resources/scripts/dev_tools/push_down_claude_customizations.py +188 -0
  346. package/resources/scripts/dev_tools/push_down_codex_and_agents_customizations.py +139 -0
  347. package/resources/scripts/dev_tools/push_down_copilot_customizations.py +504 -0
  348. package/resources/scripts/dev_tools/push_down_copilot_customizations_filesystem.py +217 -0
  349. package/resources/scripts/dev_tools/push_down_copilot_customizations_rewrites.py +293 -0
  350. package/resources/scripts/dev_tools/resolve_file_prompt.py +457 -0
  351. package/resources/scripts/dev_tools/resolve_hard_lock_prompt.py +444 -0
  352. package/resources/scripts/dev_tools/validate_orchestration_artifacts.py +554 -0
  353. package/resources/templates/codex_native_converter.py +35 -0
  354. package/resources/templates/collect_commit_context.py +212 -0
  355. package/resources/templates/collect_pr_context.py +74 -0
  356. package/resources/templates/hello_pwsh.ps1 +3 -0
  357. package/resources/templates/hello_python.py +11 -0
  358. package/resources/templates/link-parent-child.ps1 +480 -0
  359. package/resources/templates/new-claude-worktree-session.ps1 +232 -0
  360. package/resources/templates/new-potential-entry.ps1 +187 -0
  361. package/resources/templates/new_active_feature_folder.py +67 -0
  362. package/resources/templates/new_potential_bug_entry.py +54 -0
  363. package/resources/templates/policy_audit/AGENTS.md +117 -0
  364. package/resources/templates/policy_audit/code-review.yyyy-MM-ddTHH-mm.md +165 -0
  365. package/resources/templates/policy_audit/feature-audit.yyyy-MM-ddTHH-mm.md +124 -0
  366. package/resources/templates/policy_audit/policy-audit.yyyy-MM-ddTHH-mm.md +649 -0
  367. package/resources/templates/potential_to_issue.py +55 -0
  368. package/resources/templates/push_down_claude_customizations.py +188 -0
  369. package/resources/templates/push_down_codex_and_agents_customizations.py +95 -0
  370. package/resources/templates/push_down_copilot_customizations.py +124 -0
  371. package/resources/templates/resolve_atomic_plan_prompt.py +75 -0
  372. package/resources/templates/resolve_hard_lock_prompt.py +65 -0
  373. package/resources/templates/run-poshqc-analyze-autofix.ps1 +16 -0
  374. package/resources/templates/run-poshqc-analyze.ps1 +26 -0
  375. package/resources/templates/run-poshqc-format.ps1 +26 -0
  376. package/resources/templates/run-poshqc-suite.ps1 +24 -0
  377. package/resources/templates/run-poshqc-test.ps1 +32 -0
  378. package/resources/templates/sync-agents-from-instructions.ps1 +400 -0
  379. package/resources/templates/validate_orchestration_artifacts.py +55 -0
  380. package/resources/templates/vscode-cli.helpers.ps1 +63 -0
@@ -0,0 +1,238 @@
1
+ ---
2
+ description: "Guidelines for agent-authored code: mandatory robust docstrings + intent-level comments for control flow and multi-step blocks. Optimized for strongly-typed Python repos."
3
+ applyTo: "**/*.py"
4
+ ---
5
+
6
+ # Intent-First Docstrings & Comments (Python, strongly typed)
7
+
8
+ ## Core Principle
9
+
10
+ Write code that is readable, but **assume the maintainer may not know the intent** (common with agent-authored code).
11
+ Therefore:
12
+
13
+ - **Docstrings are mandatory** for classes and functions/methods (including private helpers).
14
+ - Inline comments are used to explain **intent, flow, and decision logic**—especially around iteration and branching.
15
+ - Avoid low-value “narrate the obvious” comments.
16
+
17
+ The goal is that a reader can understand the **purpose, usage, and flow** without reverse-engineering the implementation.
18
+
19
+ ---
20
+
21
+ ## 1) Mandatory class docstrings (robust)
22
+
23
+ Every class must have a docstring that covers, at minimum:
24
+
25
+ - **Purpose**: what the class represents or coordinates.
26
+ - **Responsibilities**: what it does and does *not* do (scope boundaries).
27
+ - **How it is intended to be used**: lifecycle, typical call pattern, collaboration with other objects.
28
+ - **High-level flow**: the main steps the class performs or orchestrates.
29
+ - **Key invariants / constraints**: expectations that must hold (e.g., sorted inputs, non-null IDs, caching semantics).
30
+ - **Important side effects**: I/O, persistence, network calls, mutation, concurrency considerations.
31
+ - **Attributes** (when non-obvious): what the stored fields mean and how they are populated.
32
+
33
+ Preferred structure (Google-style, typed) for consistency:
34
+
35
+ ```python
36
+ class Example:
37
+ """
38
+ One-sentence summary of the class’s role.
39
+
40
+ Purpose:
41
+ What problem this class solves and where it fits in the system.
42
+
43
+ Usage:
44
+ Typical usage pattern (brief pseudo-code is acceptable).
45
+
46
+ Flow:
47
+ High-level steps this class performs, in order.
48
+
49
+ Invariants / Constraints:
50
+ Key assumptions that callers must respect.
51
+
52
+ Side Effects:
53
+ External calls, mutation, persistence, logging, etc.
54
+
55
+ Attributes:
56
+ field_name (Type): Meaning and lifecycle (if not obvious from the name).
57
+ """
58
+ ````
59
+
60
+ ---
61
+
62
+ ## 2) Mandatory function/method docstrings (robust, C#-like completeness)
63
+
64
+ Every function/method must have a docstring that includes:
65
+
66
+ * **Purpose** and behavior (what it accomplishes).
67
+ * **Parameters**: meaning, constraints, and how used (types included, even if hinted).
68
+ * **Returns**: meaning and shape of return value (or explicitly say `None` for procedures).
69
+ * **Raises**: key exceptions that are part of the contract (not every incidental exception, but contract-relevant ones).
70
+ * **Side effects**: if it mutates inputs, writes to disk/DB, emits events, etc.
71
+
72
+ Template:
73
+
74
+ ```python
75
+ def method(self, x: XType, y: YType) -> ReturnType:
76
+ """
77
+ One-sentence summary of the method’s outcome.
78
+
79
+ Purpose:
80
+ What this method is responsible for and why it exists.
81
+
82
+ Args:
83
+ x (XType): Meaning, constraints, and how it influences behavior.
84
+ y (YType): Meaning, constraints, and how it influences behavior.
85
+
86
+ Returns:
87
+ ReturnType: What is returned and how to interpret it.
88
+
89
+ Raises:
90
+ SomeError: When/why this is raised (contract-level).
91
+
92
+ Side Effects:
93
+ Describe mutations, I/O, persistence, logging, caching, etc.
94
+ """
95
+ ```
96
+
97
+ Notes:
98
+
99
+ * Keep docstrings accurate and **contract-oriented**. If behavior changes, docstrings must be updated.
100
+ * If the method is a thin wrapper around another call, say so explicitly (and why the wrapper exists).
101
+ * For `@property` accessors, docstrings should describe **what is exposed and the semantics** (cached vs computed, cost, invariants).
102
+
103
+ ---
104
+
105
+ ## 3) Loops and list comprehensions must be explained
106
+
107
+ Any `for` loop, `while` loop, or non-trivial list/dict/set comprehension must have an **intent comment** immediately above it.
108
+
109
+ Good:
110
+
111
+ ```python
112
+ # Aggregate per-user totals while preserving first-seen ordering for stable output.
113
+ for row in rows:
114
+ ...
115
+ ```
116
+
117
+ For comprehensions, if the intent cannot be explained cleanly in one short comment, prefer expanding to an explicit loop.
118
+
119
+ Good:
120
+
121
+ ```python
122
+ # Keep only canonicalized URLs that pass validation; used to drive dedupe and matching.
123
+ valid_urls = [u for u in urls if (u := canonicalize(u)) and is_valid(u)]
124
+ ```
125
+
126
+ Better (when complex):
127
+
128
+ ```python
129
+ # Canonicalize + validate URLs before feeding them into the dedupe pipeline.
130
+ valid_urls: list[str] = []
131
+ for raw in urls:
132
+ canon = canonicalize(raw)
133
+ if canon and is_valid(canon):
134
+ valid_urls.append(canon)
135
+ ```
136
+
137
+ ---
138
+
139
+ ## 4) Branching must explain decision logic (if/elif/else, match/case)
140
+
141
+ For any conditional branching beyond a trivial guard clause, add a comment that explains:
142
+
143
+ * **The decision criteria** (what distinguishes branches).
144
+ * **Why the ordering matters** (if it does).
145
+ * **The business/system rationale** (why this branching exists).
146
+
147
+ Good:
148
+
149
+ ```python
150
+ # Branch by identifier quality:
151
+ # - Prefer stable external IDs when present (prevents duplicate entities).
152
+ # - Fall back to email match when IDs are missing.
153
+ # - Finally, create a new entity if no safe match exists.
154
+ if external_id:
155
+ ...
156
+ elif email:
157
+ ...
158
+ else:
159
+ ...
160
+ ```
161
+
162
+ For `match/case`, include a short “routing table” explanation:
163
+
164
+ ```python
165
+ # Dispatch by event type:
166
+ # - "upsert" modifies or creates a record
167
+ # - "delete" tombstones but preserves audit trail
168
+ # - other events are ignored (forward compatibility)
169
+ match event.type:
170
+ ...
171
+ ```
172
+
173
+ ---
174
+
175
+ ## 5) “Forest through the trees”: comment multi-step blocks that achieve a larger objective
176
+
177
+ When a sequence of tactical lines collectively accomplishes a larger goal, precede the block with a **meta-what + why** comment.
178
+
179
+ Good:
180
+
181
+ ```python
182
+ # Enrich the dataset with original publish metadata:
183
+ # inner-join on `source_id`, then remove duplicates to ensure one row per canonical entity.
184
+ merged = left.merge(right, on="source_id", how="inner")
185
+ merged = merged.drop_duplicates(subset=["canonical_id"])
186
+ ```
187
+
188
+ If the block is substantial, strongly prefer extracting it into a helper method so the **docstring becomes the primary explanation**. If extraction is not done now, write the comment so that refactoring later is straightforward (describe inputs/outputs of the block).
189
+
190
+ ---
191
+
192
+ ## 6) Do not number notes
193
+
194
+ In code comments and docstrings, **do not** use fragile numbered notes like:
195
+
196
+ * `NOTE 1: ...`
197
+ * `NOTE 2: ...`
198
+
199
+ Prefer comments without tags for general explanations. But if a tag is necessary (e.g. follow-up is needed), use unnumbered tags instead:
200
+
201
+ * `TODO: ...`
202
+ * `WARNING: ...`
203
+ * `PERF: ...`
204
+ * `SECURITY: ...`
205
+
206
+ ---
207
+
208
+ ## 7) “What vs why”: allow “meta-what” when it explains intent at the right level
209
+
210
+ We still avoid line-by-line narration (e.g., “increment counter”), but we explicitly allow “meta-what” comments that describe what a *block* of code is doing, especially when the intent is not obvious from individual lines.
211
+
212
+ Rule of thumb:
213
+
214
+ * **Bad**: Restates a single obvious line.
215
+ * **Good**: Explains the intent of a loop/branch/multi-step block and how it supports the method’s purpose.
216
+
217
+ ---
218
+
219
+ ## Anti-patterns (still avoid)
220
+
221
+ * Outdated comments that contradict code.
222
+ * Changelog/history comments in source.
223
+ * Decorative dividers.
224
+ * Commented-out dead code.
225
+
226
+ ---
227
+
228
+ ## Quality checklist
229
+
230
+ Before finalizing code:
231
+
232
+ * Docstrings exist for every class and every function/method.
233
+ * Docstrings explain purpose, usage, flow, args, returns, and contract-level raises/side effects.
234
+ * Loops/comprehensions have intent comments (or are expanded for clarity).
235
+ * Branching has decision-logic comments.
236
+ * Multi-step blocks have meta-what + rationale comments.
237
+ * No numbered notes in comments/docstrings.
238
+ * Comments remain accurate and add real explanatory value.
@@ -0,0 +1,133 @@
1
+ ---
2
+ applyTo: "**"
3
+ name: "tonality-policy"
4
+ description: "Required communication tone for agent-authored responses, documentation, reviews, and operational guidance in this repository"
5
+ ---
6
+
7
+ # Tonality Policy
8
+
9
+ This policy defines the required tone for all agent-authored content in this repository.
10
+
11
+ It applies to:
12
+
13
+ - Chat responses to users.
14
+ - Pull request summaries, review comments, and audit artifacts.
15
+ - Plans, issue updates, remediation notes, and status reports.
16
+ - Inline guidance written into documentation, runbooks, and instruction files.
17
+
18
+ If another instruction is more restrictive, follow the more restrictive instruction.
19
+
20
+ ## 1. Required default tone
21
+
22
+ All written output must use a professional tone.
23
+
24
+ Professional tone in this repository means:
25
+
26
+ - Clear, direct, and factual language.
27
+ - Neutral businesslike phrasing.
28
+ - Measured statements that match the available evidence.
29
+ - Concise explanations that prioritize clarity over personality.
30
+ - Respectful wording, even when reporting defects, regressions, or disagreements.
31
+
32
+ Preferred characteristics:
33
+
34
+ - Specific rather than vague.
35
+ - Literal rather than theatrical.
36
+ - Calm rather than excited.
37
+ - Precise rather than promotional.
38
+
39
+ ## 2. Humor and joking are prohibited
40
+
41
+ Do not use jokes, banter, playful remarks, sarcasm, puns, or comedic phrasing.
42
+
43
+ This prohibition includes:
44
+
45
+ - Lighthearted commentary intended to entertain.
46
+ - Winking or self-aware jokes about tools, code, bugs, or the development process.
47
+ - Casual filler that weakens a formal or operational message.
48
+ - Mocking, teasing, or exaggerated “fun” framing, even when mild.
49
+
50
+ When deciding between a playful sentence and a plain sentence, use the plain sentence.
51
+
52
+ ## 3. Hyperbole is prohibited
53
+
54
+ Do not use hyperbolic, inflated, or sensational language.
55
+
56
+ Avoid statements such as:
57
+
58
+ - Claims that something is perfect, flawless, amazing, incredible, revolutionary, or world-class unless that language is directly quoted from an authoritative source and clearly marked as a quotation.
59
+ - Overstated certainty that goes beyond the verified evidence.
60
+ - Dramatic framing that overstates urgency, difficulty, simplicity, risk, or impact.
61
+
62
+ Use measured alternatives instead:
63
+
64
+ - Replace absolute praise with evidence-based descriptions.
65
+ - Replace dramatic warnings with specific risks and consequences.
66
+ - Replace sweeping claims with concrete observations, test results, or documented limitations.
67
+
68
+ ## 4. Metaphors are tightly restricted
69
+
70
+ Metaphor, analogy, and figurative language are not the default style.
71
+
72
+ They may be used only when all of the following are true:
73
+
74
+ - The metaphor is strictly utilitarian.
75
+ - It is required to explain a technical concept that would otherwise be less clear.
76
+ - It improves accuracy or comprehension for the intended audience.
77
+ - It is brief, literal in effect, and not decorative.
78
+
79
+ If a concept can be explained clearly without metaphor, do not use metaphor.
80
+
81
+ Unacceptable metaphor usage includes:
82
+
83
+ - Decorative imagery.
84
+ - Emotional or dramatic comparisons.
85
+ - Marketing-style slogans.
86
+ - Extended analogies that distract from the technical point.
87
+
88
+ Acceptable metaphor usage is limited to short, functional comparisons such as explaining that one component acts "as a queue" or that a layer serves "as a boundary" when those comparisons materially improve understanding.
89
+
90
+ ## 5. Evidence-first wording
91
+
92
+ Match the strength of the wording to the strength of the evidence.
93
+
94
+ - If something was verified, say it was verified and state how.
95
+ - If something is likely but unconfirmed, say that it is likely or appears to be the case.
96
+ - If something is unknown, say that it is unknown.
97
+ - Do not imply certainty, completion, safety, or correctness without support.
98
+
99
+ ## 6. Style guidance for difficult messages
100
+
101
+ When reporting failures, defects, or policy violations:
102
+
103
+ - State the issue directly.
104
+ - Describe the impact without dramatizing it.
105
+ - Identify the next corrective action when available.
106
+ - Avoid blame-oriented or emotionally charged wording.
107
+
108
+ When giving recommendations:
109
+
110
+ - Prefer imperative, concrete language.
111
+ - Explain the rationale briefly when it is not obvious.
112
+ - Avoid motivational language, sales language, or celebratory phrasing.
113
+
114
+ ## 7. Examples
115
+
116
+ Preferred:
117
+
118
+ - The build failed during nullable analysis because `BridgeStateStore` introduces a new nullability warning.
119
+ - `I updated the instruction file and verified that the repository reports no new markdown errors in the changed file.`
120
+ - `This comparison is useful because the repository cache behaves as a boundary between Outlook data collection and RPC response shaping.`
121
+
122
+ Not preferred:
123
+
124
+ - `The build totally blew up.`
125
+ - `This fix is amazing and should solve everything.`
126
+ - `The cache is the beating heart of the system.`
127
+ - `Good news: the code is finally behaving.`
128
+
129
+ ## 8. Final rule
130
+
131
+ When tone is uncertain, choose the more restrained phrasing.
132
+
133
+ The repository default is professionalism, clarity, and accuracy—not entertainment, flourish, or hype.
@@ -0,0 +1,203 @@
1
+ ---
2
+ description: "TypeScript-specific code change rules layered on top of the general code change policy"
3
+ applyTo: "**/*.ts"
4
+ name: typescript-code-change-policy
5
+ ---
6
+
7
+ # TypeScript Code Change Policy
8
+
9
+ This policy **extends** `general-code-change.instructions.md` and applies to all **TypeScript source, test, and script files** (`*.ts`) in this repo.
10
+
11
+ These instructions assume TypeScript is built with **TypeScript 5.x (or newer)** targeting an **ES2022** JavaScript baseline.
12
+
13
+ You must:
14
+
15
+ - Apply **all** rules in the general code change policy.
16
+ - Apply **all** TypeScript-specific rules in this file.
17
+ - Apply the unit test policies (`general-unit-test.instructions.md` and `typescript-unit-test.instructions.md`) for any work involving TypeScript tests.
18
+
19
+ If you encounter any conflicting instructions between these documents, **halt and notify the user.**
20
+
21
+ ---
22
+
23
+ ## 1. Tooling & Baseline for TypeScript
24
+
25
+ These are the required tools for TypeScript code in this repo:
26
+
27
+ 1. **Formatting — Prettier**
28
+
29
+ - All TypeScript must be formatted with the repository’s Prettier configuration.
30
+ - Do not hand-format; if a diff disagrees with Prettier, Prettier wins.
31
+ - Approved command: `npm run format`
32
+
33
+ 2. **Linting — ESLint**
34
+
35
+ - TypeScript must pass ESLint using the repository’s configuration.
36
+ - Prefer fixing root causes over suppressions.
37
+ - Approved command: `npm run lint`
38
+
39
+ 3. **Type checking — TypeScript compiler (TSC)**
40
+
41
+ - TypeScript must pass the repository’s type-check.
42
+ - Avoid `any` (implicit or explicit). Prefer `unknown` plus narrowing.
43
+ - Approved command: `npm run typecheck`
44
+
45
+ 4. **Testing — Jest**
46
+
47
+ - TypeScript unit tests must pass Jest.
48
+ - Approved command: `npm run test:unit`
49
+
50
+ > **Important:** The general code change policy requires the full toolchain loop: formatting → linting → type checking → testing.
51
+
52
+ ---
53
+
54
+ ## 2. TypeScript Design & Typing Principles
55
+
56
+ These refine the general design principles for TypeScript code.
57
+
58
+ 1. **Strong typing by default**
59
+
60
+ - Public functions, methods, and exported APIs must have clear, intentional types.
61
+ - Avoid type assertions (`as X`) unless you can justify why the value is safe; prefer runtime guards.
62
+
63
+ 2. **Prefer explicit domain types**
64
+
65
+ - Model domain concepts with interfaces/types that encode invariants.
66
+ - Prefer discriminated unions for state machines and event shapes.
67
+
68
+ 3. **Avoid cleverness**
69
+
70
+ - Keep code readable in one pass.
71
+ - Favor small helpers and early returns over deeply nested branching.
72
+
73
+ 4. **Separation of concerns**
74
+
75
+ - Keep pure logic separate from:
76
+ - VS Code extension APIs
77
+ - filesystem/network I/O
78
+ - UI/presentation wiring
79
+ - Write core logic so it can be unit tested without VS Code host processes.
80
+
81
+ ---
82
+
83
+ ## 3. Imports, Modules, and Dependencies
84
+
85
+ 1. **Modules**
86
+
87
+ - Use ES modules. Do not introduce CommonJS patterns (`require`, `module.exports`).
88
+ - Prefer explicit imports; avoid barrel exports that obscure dependencies unless the repo already uses them for that area.
89
+
90
+ 2. **Dependencies**
91
+
92
+ - Do not add new runtime dependencies unless explicitly approved.
93
+ - If a dependency is unavoidable:
94
+ - Prefer widely used, well-maintained packages.
95
+ - Keep dependency surface area small (wrap behind a typed adapter when practical).
96
+
97
+ ---
98
+
99
+ ## 4. Error Handling and Logging
100
+
101
+ - Fail fast with clear errors when invariants are violated.
102
+ - Avoid catch-all `catch (e)` without rethrowing or adding context.
103
+ - Use the repo’s established logging/telemetry patterns (where present) instead of ad-hoc `console.log` for permanent behavior.
104
+
105
+ ---
106
+
107
+ ## 5. Suppressions and Escape Hatches
108
+
109
+ Suppressions are sometimes necessary, but they must be rare, tightly scoped, and well-justified.
110
+
111
+ **Authorization requirement:**
112
+
113
+ - Suppressions are allowed without explicit approval only when they match a **pre-authorized pattern** `typescript-suppressions.instructions.md`.
114
+ - Any broader suppression (for example, disabling multiple rules, disabling a whole file, or using `@ts-ignore`) requires **explicit user approval**.
115
+
116
+ **If you encounter an error that seems to require a suppression not matching a pre-authorized pattern:**
117
+
118
+ 1. First, attempt to resolve it without a suppression (refactor, restructure, adjust types).
119
+ 2. If that fails, try at least five more distinct approaches.
120
+ 3. Continue iterating until you solve the problem or demonstrate why each approach fails.
121
+ 4. Only after multiple documented failed attempts may you request user approval, providing:
122
+ - The specific rule/error and diagnostic code
123
+ - Each approach you tried and why it failed
124
+ - Why a suppression is the only remaining option
125
+
126
+ All rules for ESLint and TypeScript suppressions are defined in:
127
+
128
+ - `typescript-suppressions.instructions.md`
129
+
130
+ ---
131
+
132
+ ## 6. Public APIs and Compatibility
133
+
134
+ - Avoid breaking changes to exported APIs unless explicitly required.
135
+ - If a breaking change is necessary, update all callers in-repo and add/adjust unit tests that lock in the new contract.
136
+
137
+ ---
138
+
139
+ ## 7. Project Organization, Naming, and Documentation
140
+
141
+ 1. **Project organization**
142
+
143
+ - Follow the repository’s established folder and responsibility layout when adding new code.
144
+ - Keep VS Code extension API wiring and other I/O boundaries thin; push complex logic into pure, testable helpers/services.
145
+
146
+ 2. **File naming**
147
+
148
+ - Prefer **kebab-case** filenames for new files (for example, `user-session.ts`, `task-runner.ts`) unless the surrounding area of the repo already uses a different convention.
149
+
150
+ 3. **TypeScript naming conventions**
151
+
152
+ - Use **PascalCase** for classes, interfaces, enums, and type aliases; use **camelCase** for functions, methods, variables, and object properties.
153
+ - Do not introduce interface prefixes like `I` (for example, prefer `UserSession` over `IUserSession`).
154
+
155
+ 4. **Documentation expectations**
156
+
157
+ - Add JSDoc to exported/public APIs when it improves clarity for callers.
158
+ - When JSDoc is used and intent is non-obvious, prefer including a short rationale (and add `@example` / `@remarks` where it materially improves correct usage).
159
+
160
+ ---
161
+
162
+ ## 8. Security, Configuration, and External Integrations
163
+
164
+ 1. **Input validation and safety**
165
+
166
+ - Treat all external input as untrusted (user input, files, network responses, VS Code configuration).
167
+ - Prefer explicit runtime validation (type guards / schema validation) at trust boundaries.
168
+ - Avoid dynamic code execution and avoid rendering untrusted content as HTML without proper escaping/sanitization.
169
+
170
+ 2. **Secrets and configuration**
171
+
172
+ - Never hardcode secrets. Use the repo’s secure storage / configuration patterns.
173
+ - Guard against missing configuration (`undefined`) and surface clear errors when required configuration is absent.
174
+ - If you introduce new configuration keys, document them and add/update unit tests around validation and defaults.
175
+
176
+ 3. **External integrations (network / I/O)**
177
+
178
+ - Instantiate expensive clients outside hot paths and inject them for testability.
179
+ - For network or I/O operations, use clear error mapping and add context when rethrowing.
180
+ - Where applicable, apply retries/backoff and cancellation/timeout handling consistent with the repo’s existing patterns.
181
+
182
+ ---
183
+
184
+ ## 9. UI/UX and Lifecycle Hygiene (VS Code Extension Context)
185
+
186
+ 1. **UI layering**
187
+
188
+ - Keep UI layers thin; push business logic into services or pure functions.
189
+ - Prefer events/messaging to decouple UI from domain logic.
190
+
191
+ 2. **Lifecycle and disposal**
192
+
193
+ - Dispose resources deterministically and match existing initialization/disposal sequencing.
194
+ - When introducing long-lived services, consider explicit lifecycle hooks (for example, `initialize()` and `dispose()`) and unit tests that lock in lifecycle behavior.
195
+
196
+ ---
197
+
198
+ ## 10. Performance and Reliability
199
+
200
+ - Avoid obvious hot-path allocations and repeated heavy work.
201
+ - Prefer lazy-loading heavy dependencies when it materially reduces startup/activation cost.
202
+ - Debounce or batch high-frequency events (for example, configuration changes) to avoid thrash.
203
+ - Track resource lifetimes to prevent leaks (timers, listeners, file watchers, disposables).