xtrm-tools 2.2.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/README.md +127 -104
  2. package/cli/dist/index.cjs +1078 -970
  3. package/cli/dist/index.cjs.map +1 -1
  4. package/cli/package.json +1 -1
  5. package/config/pi/extensions/beads.ts +33 -5
  6. package/config/pi/extensions/service-skills.ts +17 -9
  7. package/config/pi/install-schema.json +2 -1
  8. package/hooks/beads-gate-core.mjs +6 -4
  9. package/hooks/beads-memory-gate.mjs +12 -5
  10. package/hooks/hooks.json +126 -0
  11. package/package.json +3 -1
  12. package/skills/test-planning/SKILL.md +208 -0
  13. package/skills/test-planning/evals/evals.json +23 -0
  14. package/skills/using-xtrm/SKILL.md +5 -27
  15. package/project-skills/tdd-guard/.claude/hooks/tdd-guard-pretool-bridge.cjs +0 -103
  16. package/project-skills/tdd-guard/.claude/settings.json +0 -38
  17. package/project-skills/tdd-guard/.claude/skills/using-tdd-guard/SKILL.md +0 -79
  18. package/project-skills/tdd-guard/CLAUDE.md +0 -98
  19. package/project-skills/tdd-guard/CONTRIBUTING.md +0 -38
  20. package/project-skills/tdd-guard/DEVELOPMENT.md +0 -127
  21. package/project-skills/tdd-guard/LICENSE +0 -21
  22. package/project-skills/tdd-guard/README.md +0 -398
  23. package/project-skills/tdd-guard/docs/adr/001-claude-session-subdirectory.md +0 -52
  24. package/project-skills/tdd-guard/docs/adr/002-secure-claude-binary-path.md +0 -56
  25. package/project-skills/tdd-guard/docs/adr/003-remove-configurable-data-directory.md +0 -56
  26. package/project-skills/tdd-guard/docs/adr/004-monorepo-architecture.md +0 -64
  27. package/project-skills/tdd-guard/docs/adr/005-claude-project-dir-support.md +0 -55
  28. package/project-skills/tdd-guard/docs/adr/006-phpunit-separate-repository.md +0 -93
  29. package/project-skills/tdd-guard/docs/adr/007-golangci-lint-path-support.md +0 -83
  30. package/project-skills/tdd-guard/docs/adr/008-storybook-reporter-design.md +0 -182
  31. package/project-skills/tdd-guard/docs/assets/tdd-guard-demo-screenshot.gif +0 -0
  32. package/project-skills/tdd-guard/docs/config-migration.md +0 -143
  33. package/project-skills/tdd-guard/docs/configuration.md +0 -137
  34. package/project-skills/tdd-guard/docs/custom-instructions.md +0 -43
  35. package/project-skills/tdd-guard/docs/enforcement.md +0 -46
  36. package/project-skills/tdd-guard/docs/ignore-patterns.md +0 -81
  37. package/project-skills/tdd-guard/docs/linting.md +0 -109
  38. package/project-skills/tdd-guard/docs/quick-commands.md +0 -52
  39. package/project-skills/tdd-guard/docs/session-management.md +0 -75
  40. package/project-skills/tdd-guard/docs/storybook-vitest-addon.md +0 -120
  41. package/project-skills/tdd-guard/docs/validation-model.md +0 -63
  42. package/project-skills/tdd-guard/eslint.config.mjs +0 -140
  43. package/project-skills/tdd-guard/package-lock.json +0 -16937
  44. package/project-skills/tdd-guard/package.json +0 -102
  45. package/project-skills/tdd-guard/reporters/go/README.md +0 -67
  46. package/project-skills/tdd-guard/reporters/go/cmd/tdd-guard-go/main.go +0 -127
  47. package/project-skills/tdd-guard/reporters/go/cmd/tdd-guard-go/main_test.go +0 -280
  48. package/project-skills/tdd-guard/reporters/go/go.mod +0 -3
  49. package/project-skills/tdd-guard/reporters/go/go.sum +0 -0
  50. package/project-skills/tdd-guard/reporters/go/internal/formatter/formatter.go +0 -126
  51. package/project-skills/tdd-guard/reporters/go/internal/formatter/formatter_test.go +0 -264
  52. package/project-skills/tdd-guard/reporters/go/internal/io/tee_reader.go +0 -26
  53. package/project-skills/tdd-guard/reporters/go/internal/io/tee_reader_test.go +0 -37
  54. package/project-skills/tdd-guard/reporters/go/internal/parser/mixed_reader.go +0 -94
  55. package/project-skills/tdd-guard/reporters/go/internal/parser/mixed_reader_test.go +0 -198
  56. package/project-skills/tdd-guard/reporters/go/internal/parser/parser.go +0 -245
  57. package/project-skills/tdd-guard/reporters/go/internal/parser/parser_test.go +0 -547
  58. package/project-skills/tdd-guard/reporters/go/internal/storage/storage.go +0 -35
  59. package/project-skills/tdd-guard/reporters/go/internal/storage/storage_test.go +0 -113
  60. package/project-skills/tdd-guard/reporters/go/internal/transformer/transformer.go +0 -103
  61. package/project-skills/tdd-guard/reporters/go/internal/transformer/transformer_test.go +0 -303
  62. package/project-skills/tdd-guard/reporters/jest/README.md +0 -102
  63. package/project-skills/tdd-guard/reporters/jest/package.json +0 -38
  64. package/project-skills/tdd-guard/reporters/jest/src/JestReporter.test-data.ts +0 -199
  65. package/project-skills/tdd-guard/reporters/jest/src/JestReporter.test.ts +0 -302
  66. package/project-skills/tdd-guard/reporters/jest/src/JestReporter.ts +0 -201
  67. package/project-skills/tdd-guard/reporters/jest/src/index.ts +0 -4
  68. package/project-skills/tdd-guard/reporters/jest/src/types.ts +0 -42
  69. package/project-skills/tdd-guard/reporters/jest/tsconfig.json +0 -11
  70. package/project-skills/tdd-guard/reporters/phpunit/.php-cs-fixer.php +0 -28
  71. package/project-skills/tdd-guard/reporters/phpunit/README.md +0 -97
  72. package/project-skills/tdd-guard/reporters/phpunit/SYNC_README.md +0 -29
  73. package/project-skills/tdd-guard/reporters/phpunit/composer.json +0 -55
  74. package/project-skills/tdd-guard/reporters/phpunit/phpunit.xml.dist +0 -19
  75. package/project-skills/tdd-guard/reporters/phpunit/psalm.xml +0 -44
  76. package/project-skills/tdd-guard/reporters/phpunit/src/Event/ErroredTestSubscriber.php +0 -28
  77. package/project-skills/tdd-guard/reporters/phpunit/src/Event/FailedTestSubscriber.php +0 -28
  78. package/project-skills/tdd-guard/reporters/phpunit/src/Event/IncompleteTestSubscriber.php +0 -28
  79. package/project-skills/tdd-guard/reporters/phpunit/src/Event/PassedTestSubscriber.php +0 -27
  80. package/project-skills/tdd-guard/reporters/phpunit/src/Event/SkippedTestSubscriber.php +0 -28
  81. package/project-skills/tdd-guard/reporters/phpunit/src/Event/TestRunnerFinishedSubscriber.php +0 -24
  82. package/project-skills/tdd-guard/reporters/phpunit/src/PathValidator.php +0 -88
  83. package/project-skills/tdd-guard/reporters/phpunit/src/Storage.php +0 -26
  84. package/project-skills/tdd-guard/reporters/phpunit/src/TddGuardExtension.php +0 -33
  85. package/project-skills/tdd-guard/reporters/phpunit/src/TddGuardListener.php +0 -158
  86. package/project-skills/tdd-guard/reporters/phpunit/src/TddGuardSubscriber.php +0 -35
  87. package/project-skills/tdd-guard/reporters/phpunit/src/TestResultCollector.php +0 -105
  88. package/project-skills/tdd-guard/reporters/phpunit/tests/PathValidatorTest.php +0 -74
  89. package/project-skills/tdd-guard/reporters/phpunit/tests/TddGuardExtensionFailedTest.php +0 -241
  90. package/project-skills/tdd-guard/reporters/phpunit/tests/TddGuardExtensionTest.php +0 -84
  91. package/project-skills/tdd-guard/reporters/phpunit/tests/TddGuardStorageLocationTest.php +0 -71
  92. package/project-skills/tdd-guard/reporters/pytest/README.md +0 -77
  93. package/project-skills/tdd-guard/reporters/pytest/pyproject.toml +0 -43
  94. package/project-skills/tdd-guard/reporters/pytest/pytest.ini.example +0 -7
  95. package/project-skills/tdd-guard/reporters/pytest/tdd_guard_pytest/__init__.py +0 -1
  96. package/project-skills/tdd-guard/reporters/pytest/tdd_guard_pytest/pytest_reporter.py +0 -134
  97. package/project-skills/tdd-guard/reporters/pytest/tests/__init__.py +0 -1
  98. package/project-skills/tdd-guard/reporters/pytest/tests/conftest.py +0 -3
  99. package/project-skills/tdd-guard/reporters/pytest/tests/helpers.py +0 -293
  100. package/project-skills/tdd-guard/reporters/pytest/tests/test_config_option.py +0 -38
  101. package/project-skills/tdd-guard/reporters/pytest/tests/test_path_validation.py +0 -59
  102. package/project-skills/tdd-guard/reporters/pytest/tests/test_plugin_config.py +0 -32
  103. package/project-skills/tdd-guard/reporters/pytest/tests/test_project_root.py +0 -296
  104. package/project-skills/tdd-guard/reporters/pytest/tests/test_pytest_reporter.py +0 -137
  105. package/project-skills/tdd-guard/reporters/rspec/Gemfile +0 -3
  106. package/project-skills/tdd-guard/reporters/rust/Cargo.lock +0 -458
  107. package/project-skills/tdd-guard/reporters/rust/Cargo.toml +0 -33
  108. package/project-skills/tdd-guard/reporters/rust/Makefile.example +0 -95
  109. package/project-skills/tdd-guard/reporters/rust/README.md +0 -88
  110. package/project-skills/tdd-guard/reporters/rust/src/error_parser.rs +0 -309
  111. package/project-skills/tdd-guard/reporters/rust/src/main.rs +0 -464
  112. package/project-skills/tdd-guard/reporters/rust/src/parser.rs +0 -225
  113. package/project-skills/tdd-guard/reporters/rust/src/transformer.rs +0 -409
  114. package/project-skills/tdd-guard/reporters/storybook/README.md +0 -108
  115. package/project-skills/tdd-guard/reporters/storybook/package-lock.json +0 -9482
  116. package/project-skills/tdd-guard/reporters/storybook/package.json +0 -43
  117. package/project-skills/tdd-guard/reporters/storybook/src/StorybookReporter.test-data.ts +0 -22
  118. package/project-skills/tdd-guard/reporters/storybook/src/StorybookReporter.test.ts +0 -190
  119. package/project-skills/tdd-guard/reporters/storybook/src/StorybookReporter.ts +0 -88
  120. package/project-skills/tdd-guard/reporters/storybook/src/index.ts +0 -12
  121. package/project-skills/tdd-guard/reporters/storybook/src/types.ts +0 -37
  122. package/project-skills/tdd-guard/reporters/storybook/tsconfig.json +0 -11
  123. package/project-skills/tdd-guard/reporters/test/artifacts/go/failing/go.mod +0 -3
  124. package/project-skills/tdd-guard/reporters/test/artifacts/go/failing/single_failing_test.go +0 -13
  125. package/project-skills/tdd-guard/reporters/test/artifacts/go/import/go.mod +0 -3
  126. package/project-skills/tdd-guard/reporters/test/artifacts/go/import/single_import_error_test.go +0 -17
  127. package/project-skills/tdd-guard/reporters/test/artifacts/go/passing/go.mod +0 -3
  128. package/project-skills/tdd-guard/reporters/test/artifacts/go/passing/single_passing_test.go +0 -13
  129. package/project-skills/tdd-guard/reporters/test/artifacts/jest/single-failing.test.js +0 -5
  130. package/project-skills/tdd-guard/reporters/test/artifacts/jest/single-import-error.test.js +0 -8
  131. package/project-skills/tdd-guard/reporters/test/artifacts/jest/single-passing.test.js +0 -5
  132. package/project-skills/tdd-guard/reporters/test/artifacts/phpunit/SingleFailingTest.php +0 -11
  133. package/project-skills/tdd-guard/reporters/test/artifacts/phpunit/SingleImportErrorTest.php +0 -14
  134. package/project-skills/tdd-guard/reporters/test/artifacts/phpunit/SinglePassingTest.php +0 -11
  135. package/project-skills/tdd-guard/reporters/test/artifacts/pytest/test_single_failing.py +0 -3
  136. package/project-skills/tdd-guard/reporters/test/artifacts/pytest/test_single_import_error.py +0 -6
  137. package/project-skills/tdd-guard/reporters/test/artifacts/pytest/test_single_passing.py +0 -3
  138. package/project-skills/tdd-guard/reporters/test/artifacts/rust/failing/Cargo.lock +0 -7
  139. package/project-skills/tdd-guard/reporters/test/artifacts/rust/failing/Cargo.toml +0 -4
  140. package/project-skills/tdd-guard/reporters/test/artifacts/rust/failing/src/lib.rs +0 -14
  141. package/project-skills/tdd-guard/reporters/test/artifacts/rust/import/Cargo.lock +0 -7
  142. package/project-skills/tdd-guard/reporters/test/artifacts/rust/import/Cargo.toml +0 -4
  143. package/project-skills/tdd-guard/reporters/test/artifacts/rust/import/src/lib.rs +0 -13
  144. package/project-skills/tdd-guard/reporters/test/artifacts/rust/passing/Cargo.lock +0 -7
  145. package/project-skills/tdd-guard/reporters/test/artifacts/rust/passing/Cargo.toml +0 -4
  146. package/project-skills/tdd-guard/reporters/test/artifacts/rust/passing/src/lib.rs +0 -14
  147. package/project-skills/tdd-guard/reporters/test/artifacts/storybook/Calculator.js +0 -4
  148. package/project-skills/tdd-guard/reporters/test/artifacts/storybook/single-failing.stories.js +0 -15
  149. package/project-skills/tdd-guard/reporters/test/artifacts/storybook/single-import-error.stories.js +0 -14
  150. package/project-skills/tdd-guard/reporters/test/artifacts/storybook/single-passing.stories.js +0 -15
  151. package/project-skills/tdd-guard/reporters/test/artifacts/vitest/single-failing.test.js +0 -7
  152. package/project-skills/tdd-guard/reporters/test/artifacts/vitest/single-import-error.test.js +0 -9
  153. package/project-skills/tdd-guard/reporters/test/artifacts/vitest/single-passing.test.js +0 -7
  154. package/project-skills/tdd-guard/reporters/test/factories/go.ts +0 -59
  155. package/project-skills/tdd-guard/reporters/test/factories/helpers.ts +0 -48
  156. package/project-skills/tdd-guard/reporters/test/factories/index.ts +0 -7
  157. package/project-skills/tdd-guard/reporters/test/factories/jest.ts +0 -51
  158. package/project-skills/tdd-guard/reporters/test/factories/phpunit.ts +0 -63
  159. package/project-skills/tdd-guard/reporters/test/factories/pytest.ts +0 -41
  160. package/project-skills/tdd-guard/reporters/test/factories/rust.ts +0 -158
  161. package/project-skills/tdd-guard/reporters/test/factories/storybook.ts +0 -198
  162. package/project-skills/tdd-guard/reporters/test/factories/vitest.ts +0 -51
  163. package/project-skills/tdd-guard/reporters/test/reporters.integration.test.ts +0 -735
  164. package/project-skills/tdd-guard/reporters/test/types.ts +0 -28
  165. package/project-skills/tdd-guard/reporters/vitest/README.md +0 -64
  166. package/project-skills/tdd-guard/reporters/vitest/package.json +0 -35
  167. package/project-skills/tdd-guard/reporters/vitest/src/VitestReporter.test-data.ts +0 -85
  168. package/project-skills/tdd-guard/reporters/vitest/src/VitestReporter.test.ts +0 -446
  169. package/project-skills/tdd-guard/reporters/vitest/src/VitestReporter.ts +0 -110
  170. package/project-skills/tdd-guard/reporters/vitest/src/index.ts +0 -4
  171. package/project-skills/tdd-guard/reporters/vitest/src/types.ts +0 -39
  172. package/project-skills/tdd-guard/reporters/vitest/tsconfig.json +0 -11
  173. package/project-skills/tdd-guard/src/cli/buildContext.test.ts +0 -200
  174. package/project-skills/tdd-guard/src/cli/buildContext.ts +0 -48
  175. package/project-skills/tdd-guard/src/cli/tdd-guard.test.ts +0 -159
  176. package/project-skills/tdd-guard/src/cli/tdd-guard.ts +0 -48
  177. package/project-skills/tdd-guard/src/config/Config.test.ts +0 -538
  178. package/project-skills/tdd-guard/src/config/Config.ts +0 -172
  179. package/project-skills/tdd-guard/src/contracts/schemas/guardSchemas.test.ts +0 -58
  180. package/project-skills/tdd-guard/src/contracts/schemas/guardSchemas.ts +0 -8
  181. package/project-skills/tdd-guard/src/contracts/schemas/lintSchemas.test.ts +0 -347
  182. package/project-skills/tdd-guard/src/contracts/schemas/lintSchemas.ts +0 -61
  183. package/project-skills/tdd-guard/src/contracts/schemas/pytestSchemas.test.ts +0 -24
  184. package/project-skills/tdd-guard/src/contracts/schemas/pytestSchemas.ts +0 -7
  185. package/project-skills/tdd-guard/src/contracts/schemas/reporterSchemas.test.ts +0 -377
  186. package/project-skills/tdd-guard/src/contracts/schemas/reporterSchemas.ts +0 -75
  187. package/project-skills/tdd-guard/src/contracts/schemas/toolSchemas.test.ts +0 -563
  188. package/project-skills/tdd-guard/src/contracts/schemas/toolSchemas.ts +0 -140
  189. package/project-skills/tdd-guard/src/contracts/types/ClientType.ts +0 -1
  190. package/project-skills/tdd-guard/src/contracts/types/ConfigOptions.ts +0 -12
  191. package/project-skills/tdd-guard/src/contracts/types/Context.ts +0 -16
  192. package/project-skills/tdd-guard/src/contracts/types/ModelClient.ts +0 -3
  193. package/project-skills/tdd-guard/src/contracts/types/ValidationResult.ts +0 -6
  194. package/project-skills/tdd-guard/src/guard/GuardManager.test.ts +0 -336
  195. package/project-skills/tdd-guard/src/guard/GuardManager.ts +0 -83
  196. package/project-skills/tdd-guard/src/hooks/HookEvents.test.ts +0 -107
  197. package/project-skills/tdd-guard/src/hooks/HookEvents.ts +0 -39
  198. package/project-skills/tdd-guard/src/hooks/fileTypeDetection.ts +0 -16
  199. package/project-skills/tdd-guard/src/hooks/postToolLint.test.ts +0 -327
  200. package/project-skills/tdd-guard/src/hooks/postToolLint.ts +0 -165
  201. package/project-skills/tdd-guard/src/hooks/processHookData.test.ts +0 -465
  202. package/project-skills/tdd-guard/src/hooks/processHookData.ts +0 -203
  203. package/project-skills/tdd-guard/src/hooks/sessionHandler.test.ts +0 -136
  204. package/project-skills/tdd-guard/src/hooks/sessionHandler.ts +0 -31
  205. package/project-skills/tdd-guard/src/hooks/userPromptHandler.test.ts +0 -131
  206. package/project-skills/tdd-guard/src/hooks/userPromptHandler.ts +0 -55
  207. package/project-skills/tdd-guard/src/index.ts +0 -19
  208. package/project-skills/tdd-guard/src/linters/Linter.ts +0 -5
  209. package/project-skills/tdd-guard/src/linters/eslint/ESLint.test.ts +0 -183
  210. package/project-skills/tdd-guard/src/linters/eslint/ESLint.ts +0 -82
  211. package/project-skills/tdd-guard/src/linters/golangci/GolangciLint.test.ts +0 -170
  212. package/project-skills/tdd-guard/src/linters/golangci/GolangciLint.ts +0 -148
  213. package/project-skills/tdd-guard/src/processors/index.ts +0 -1
  214. package/project-skills/tdd-guard/src/processors/lintProcessor.ts +0 -77
  215. package/project-skills/tdd-guard/src/processors/testResults/TestResultsProcessor.test.ts +0 -303
  216. package/project-skills/tdd-guard/src/processors/testResults/TestResultsProcessor.ts +0 -255
  217. package/project-skills/tdd-guard/src/providers/LinterProvider.test.ts +0 -43
  218. package/project-skills/tdd-guard/src/providers/LinterProvider.ts +0 -20
  219. package/project-skills/tdd-guard/src/providers/ModelClientProvider.test.ts +0 -68
  220. package/project-skills/tdd-guard/src/providers/ModelClientProvider.ts +0 -22
  221. package/project-skills/tdd-guard/src/storage/FileStorage.test.ts +0 -76
  222. package/project-skills/tdd-guard/src/storage/FileStorage.ts +0 -108
  223. package/project-skills/tdd-guard/src/storage/MemoryStorage.ts +0 -57
  224. package/project-skills/tdd-guard/src/storage/Storage.test.ts +0 -227
  225. package/project-skills/tdd-guard/src/storage/Storage.ts +0 -17
  226. package/project-skills/tdd-guard/src/validation/context/context.test.ts +0 -364
  227. package/project-skills/tdd-guard/src/validation/context/context.ts +0 -155
  228. package/project-skills/tdd-guard/src/validation/models/AnthropicApi.test.ts +0 -171
  229. package/project-skills/tdd-guard/src/validation/models/AnthropicApi.ts +0 -49
  230. package/project-skills/tdd-guard/src/validation/models/ClaudeAgentSdk.test.ts +0 -167
  231. package/project-skills/tdd-guard/src/validation/models/ClaudeAgentSdk.ts +0 -54
  232. package/project-skills/tdd-guard/src/validation/models/ClaudeCli.test.ts +0 -239
  233. package/project-skills/tdd-guard/src/validation/models/ClaudeCli.ts +0 -57
  234. package/project-skills/tdd-guard/src/validation/prompts/file-types.ts +0 -52
  235. package/project-skills/tdd-guard/src/validation/prompts/operations/edit.ts +0 -58
  236. package/project-skills/tdd-guard/src/validation/prompts/operations/multi-edit.ts +0 -54
  237. package/project-skills/tdd-guard/src/validation/prompts/operations/write.ts +0 -54
  238. package/project-skills/tdd-guard/src/validation/prompts/response.ts +0 -40
  239. package/project-skills/tdd-guard/src/validation/prompts/rules.ts +0 -51
  240. package/project-skills/tdd-guard/src/validation/prompts/system-prompt.ts +0 -10
  241. package/project-skills/tdd-guard/src/validation/prompts/tools/lint-results.ts +0 -15
  242. package/project-skills/tdd-guard/src/validation/prompts/tools/test-output.ts +0 -14
  243. package/project-skills/tdd-guard/src/validation/prompts/tools/todos.ts +0 -9
  244. package/project-skills/tdd-guard/src/validation/validator.test.ts +0 -268
  245. package/project-skills/tdd-guard/src/validation/validator.ts +0 -159
  246. package/project-skills/tdd-guard/test/artifacts/go/.golangci.yml +0 -6
  247. package/project-skills/tdd-guard/test/artifacts/go/with-issues/file-with-issues.go +0 -12
  248. package/project-skills/tdd-guard/test/artifacts/go/with-issues/go.mod +0 -3
  249. package/project-skills/tdd-guard/test/artifacts/go/without-issues/file-without-issues.go +0 -7
  250. package/project-skills/tdd-guard/test/artifacts/go/without-issues/go.mod +0 -3
  251. package/project-skills/tdd-guard/test/artifacts/javascript/eslint.config.js +0 -20
  252. package/project-skills/tdd-guard/test/artifacts/javascript/file-with-issues.js +0 -12
  253. package/project-skills/tdd-guard/test/artifacts/javascript/file-without-issues.js +0 -10
  254. package/project-skills/tdd-guard/test/hooks/fileTypeDetection.test.ts +0 -26
  255. package/project-skills/tdd-guard/test/hooks/processHookData.fileType.test.ts +0 -46
  256. package/project-skills/tdd-guard/test/hooks/processHookData.python.test.ts +0 -68
  257. package/project-skills/tdd-guard/test/integration/test-context.test.ts +0 -66
  258. package/project-skills/tdd-guard/test/integration/validator.core.test.ts +0 -96
  259. package/project-skills/tdd-guard/test/integration/validator.scenarios.test.ts +0 -497
  260. package/project-skills/tdd-guard/test/utils/assertions.ts +0 -29
  261. package/project-skills/tdd-guard/test/utils/factories/contextFactory.ts +0 -30
  262. package/project-skills/tdd-guard/test/utils/factories/editFactory.ts +0 -82
  263. package/project-skills/tdd-guard/test/utils/factories/helpers.test.ts +0 -46
  264. package/project-skills/tdd-guard/test/utils/factories/helpers.ts +0 -46
  265. package/project-skills/tdd-guard/test/utils/factories/lintFactory.ts +0 -352
  266. package/project-skills/tdd-guard/test/utils/factories/modelClientProviderFactory.ts +0 -21
  267. package/project-skills/tdd-guard/test/utils/factories/multiEditFactory.ts +0 -79
  268. package/project-skills/tdd-guard/test/utils/factories/operations.ts +0 -57
  269. package/project-skills/tdd-guard/test/utils/factories/reporterFactory.ts +0 -55
  270. package/project-skills/tdd-guard/test/utils/factories/scenarios/index.ts +0 -22
  271. package/project-skills/tdd-guard/test/utils/factories/scenarios/languages/python.ts +0 -745
  272. package/project-skills/tdd-guard/test/utils/factories/scenarios/languages/typescript.ts +0 -767
  273. package/project-skills/tdd-guard/test/utils/factories/scenarios/types.ts +0 -77
  274. package/project-skills/tdd-guard/test/utils/factories/scenarios/utils.ts +0 -15
  275. package/project-skills/tdd-guard/test/utils/factories/sessionStartFactory.ts +0 -36
  276. package/project-skills/tdd-guard/test/utils/factories/testDefaults.ts +0 -90
  277. package/project-skills/tdd-guard/test/utils/factories/testResultsFactory.ts +0 -234
  278. package/project-skills/tdd-guard/test/utils/factories/todoFactory.ts +0 -99
  279. package/project-skills/tdd-guard/test/utils/factories/userPromptSubmitFactory.ts +0 -39
  280. package/project-skills/tdd-guard/test/utils/factories/writeFactory.ts +0 -70
  281. package/project-skills/tdd-guard/test/utils/index.ts +0 -131
  282. package/project-skills/tdd-guard/tsconfig.build.json +0 -16
  283. package/project-skills/tdd-guard/tsconfig.eslint.json +0 -17
  284. package/project-skills/tdd-guard/tsconfig.json +0 -32
  285. package/project-skills/tdd-guard/tsconfig.node.json +0 -10
  286. package/project-skills/tdd-guard/vitest.config.ts +0 -85
@@ -1,77 +0,0 @@
1
- // Shared types for scenario data structures
2
- import type { Todo } from '../../../../src/contracts/schemas/toolSchemas'
3
-
4
- export interface TestData<T = string> {
5
- description: string
6
- content: T
7
- }
8
-
9
- // Test result types
10
- export interface TestResults {
11
- notDefined: TestData
12
- notAConstructor: TestData
13
- notAFunction: TestData
14
- assertionError: TestData
15
- passing: TestData
16
- irrelevant: TestData
17
- empty: TestData
18
- }
19
-
20
- // Test modification types
21
- export interface TestModifications {
22
- singleTest: TestData
23
- multipleTests: TestData
24
- multipleTestsWithImports: TestData
25
- singleTestWithContainer: TestData
26
- singleTestComplete: TestData
27
- emptyTestContainer: TestData
28
- emptyTestContainerWithImports: TestData
29
- refactoredTests: TestData
30
- }
31
-
32
- // Implementation modification types
33
- export interface ImplementationModifications {
34
- empty: TestData
35
- classStub: TestData
36
- methodStub: TestData
37
- methodStubReturning0: TestData
38
- methodImplementation: TestData
39
- overEngineered: TestData
40
- completeClass: TestData
41
- }
42
-
43
- // Todo state types
44
- export interface TodoStates {
45
- empty: TestData<Todo[]>
46
- irrelevantCompleted: TestData<Todo[]>
47
- irrelevantInProgress: TestData<Todo[]>
48
- classInProgress: TestData<Todo[]>
49
- methodInProgress: TestData<Todo[]>
50
- allCompleted: TestData<Todo[]>
51
- refactoring: TestData<Todo[]>
52
- }
53
-
54
- // Refactoring types
55
- export interface RefactoringScenarios {
56
- beforeRefactor: TestData
57
- afterRefactor: TestData
58
- }
59
-
60
- export interface RefactoringTestResults {
61
- failing: TestData
62
- passing: TestData
63
- }
64
-
65
- // Language scenario interface
66
- export interface LanguageScenario {
67
- language: 'typescript' | 'python'
68
- testFile: string
69
- implementationFile: string
70
- testResults: TestResults
71
- testModifications: TestModifications
72
- implementationModifications: ImplementationModifications
73
- todos: TodoStates
74
- refactoringImplementation: RefactoringScenarios
75
- refactoringTests: RefactoringScenarios
76
- refactoringTestResults: RefactoringTestResults
77
- }
@@ -1,15 +0,0 @@
1
- import { ValidationResult } from '../../../../src/contracts/types/ValidationResult'
2
- import { expect } from 'vitest'
3
-
4
- export function expectDecision(
5
- result: ValidationResult,
6
- expectedDecision: ValidationResult['decision']
7
- ): void {
8
- if (result.decision !== expectedDecision) {
9
- console.error(
10
- `\nTest failed - expected decision: ${expectedDecision}, but got: ${result.decision}`
11
- )
12
- console.error(`Reason: ${result.reason}\n`)
13
- }
14
- expect(result.decision).toBe(expectedDecision)
15
- }
@@ -1,36 +0,0 @@
1
- /**
2
- * Factory functions for creating SessionStart test data
3
- */
4
-
5
- import type { SessionStart } from '../../../src/contracts/schemas/toolSchemas'
6
- import { omit } from './helpers'
7
- import { TEST_DEFAULTS } from './testDefaults'
8
-
9
- /**
10
- * Creates a SessionStart object
11
- * @param params - Optional parameters for the SessionStart
12
- */
13
- export const sessionStart = (params?: Partial<SessionStart>): SessionStart => {
14
- const defaults = TEST_DEFAULTS.sessionStart
15
- const base = params ?? {}
16
-
17
- return {
18
- session_id: base.session_id ?? defaults.session_id,
19
- transcript_path: base.transcript_path ?? defaults.transcript_path,
20
- hook_event_name: base.hook_event_name ?? defaults.hook_event_name,
21
- source: base.source ?? defaults.source,
22
- }
23
- }
24
-
25
- /**
26
- * Creates a SessionStart object with specified properties omitted
27
- * @param keys - Array of property keys to omit
28
- * @param params - Optional parameters for the SessionStart
29
- */
30
- export const sessionStartWithout = <K extends keyof SessionStart>(
31
- keys: K[],
32
- params?: Partial<SessionStart>
33
- ): Omit<SessionStart, K> => {
34
- const fullSessionStart = sessionStart(params)
35
- return omit(fullSessionStart, keys)
36
- }
@@ -1,90 +0,0 @@
1
- /**
2
- * Default values for test data used across factories
3
- */
4
-
5
- const session_id = 'test-session-id'
6
- const transcript_path = '/path/to/transcript.jsonl'
7
- const hook_event_name = 'PreToolUse'
8
-
9
- const todo = {
10
- content: 'Implement feature',
11
- status: 'pending' as const,
12
- priority: 'high' as const,
13
- id: '123',
14
- }
15
- const write = {
16
- file_path: '/test/file.ts',
17
- content: 'file content to write',
18
- }
19
-
20
- const edit = {
21
- file_path: '/test/file.ts',
22
- old_string: 'old content;',
23
- new_string: 'old content; new content',
24
- }
25
-
26
- const multiEdit = {
27
- file_path: '/test/file.ts',
28
- edits: [
29
- {
30
- old_string: 'first old content',
31
- new_string: 'first new content',
32
- },
33
- {
34
- old_string: 'second old content',
35
- new_string: 'second new content',
36
- },
37
- ],
38
- }
39
-
40
- export const TEST_DEFAULTS = {
41
- hookData: {
42
- session_id,
43
- transcript_path,
44
- hook_event_name,
45
- },
46
- todo,
47
- todoWriteOperation: {
48
- tool_name: 'TodoWrite',
49
- tool_input: {
50
- todos: [todo],
51
- },
52
- },
53
- write,
54
- writeOperation: {
55
- tool_name: 'Write',
56
- tool_input: {
57
- ...write,
58
- },
59
- },
60
- edit,
61
- editOperation: {
62
- tool_name: 'Edit',
63
- tool_input: {
64
- ...edit,
65
- },
66
- },
67
- multiEdit,
68
- multiEditOperation: {
69
- tool_name: 'MultiEdit',
70
- tool_input: {
71
- ...multiEdit,
72
- },
73
- },
74
- userPromptSubmit: {
75
- session_id,
76
- transcript_path,
77
- hook_event_name: 'UserPromptSubmit',
78
- prompt: 'tdd-guard on',
79
- cwd: '/current/working/directory',
80
- },
81
- sessionStart: {
82
- session_id,
83
- transcript_path,
84
- hook_event_name: 'SessionStart',
85
- source: 'startup' as const,
86
- },
87
- // Context defaults
88
- modifications: 'Test modifications',
89
- test: 'Test results',
90
- } as const
@@ -1,234 +0,0 @@
1
- import type {
2
- TestError,
3
- Test,
4
- TestModule,
5
- TestResult,
6
- UnhandledError,
7
- } from '../../../src/contracts/schemas/reporterSchemas'
8
- import { omit } from './helpers'
9
-
10
- // Base builders
11
- export function createTestError(overrides: Partial<TestError> = {}): TestError {
12
- return {
13
- message: 'expected value to be different',
14
- stack: 'Error: expected value to be different\n at test.ts:10:5',
15
- ...overrides,
16
- }
17
- }
18
-
19
- export function createUnhandledError(
20
- overrides: Partial<UnhandledError> = {}
21
- ): UnhandledError {
22
- return {
23
- name: 'Error',
24
- message: 'Cannot find module "./helpers"',
25
- stack:
26
- "Error: Cannot find module './helpers' imported from '/src/example.test.ts'",
27
- ...overrides,
28
- }
29
- }
30
-
31
- /**
32
- * Creates an unhandled error object with specified properties omitted
33
- * @param keys - Array of property keys to omit
34
- * @param params - Optional parameters for the unhandled error
35
- */
36
- export const createUnhandledErrorWithout = <K extends keyof UnhandledError>(
37
- keys: K[],
38
- params: Partial<UnhandledError> = {}
39
- ): Omit<UnhandledError, K> => {
40
- const fullError = createUnhandledError(params)
41
- return omit(fullError, keys)
42
- }
43
-
44
- export function createTest(overrides: Partial<Test> = {}): Test {
45
- return {
46
- name: 'should work',
47
- fullName: 'Suite > should work',
48
- state: 'passed',
49
- ...overrides,
50
- }
51
- }
52
-
53
- export function createTestModule(
54
- overrides: Partial<TestModule> = {}
55
- ): TestModule {
56
- return {
57
- moduleId: '/src/example.test.ts',
58
- tests: [],
59
- ...overrides,
60
- }
61
- }
62
-
63
- export function createTestResults(
64
- overrides: Partial<TestResult> = {}
65
- ): TestResult {
66
- return {
67
- testModules: [],
68
- ...overrides,
69
- }
70
- }
71
-
72
- // Specific test data factories
73
- export function emptyTestResults(): TestResult {
74
- return createTestResults()
75
- }
76
-
77
- export function failedTestResults(): TestResult {
78
- return createTestResults({
79
- testModules: [
80
- createTestModule({
81
- tests: [
82
- createTest({
83
- name: 'should calculate sum',
84
- fullName: 'Calculator > should calculate sum',
85
- state: 'failed',
86
- errors: [
87
- createTestError({
88
- message: 'expected 5 to be 6',
89
- stack: 'Error: expected 5 to be 6\n at example.test.ts:10:5',
90
- }),
91
- ],
92
- }),
93
- ],
94
- }),
95
- ],
96
- })
97
- }
98
-
99
- export function passingTestResults(): TestResult {
100
- return createTestResults({
101
- testModules: [
102
- createTestModule({
103
- tests: [
104
- createTest({
105
- name: 'should add numbers',
106
- fullName: 'Calculator > should add numbers',
107
- state: 'passed',
108
- }),
109
- createTest({
110
- name: 'should subtract numbers',
111
- fullName: 'Calculator > should subtract numbers',
112
- state: 'passed',
113
- }),
114
- ],
115
- }),
116
- ],
117
- })
118
- }
119
-
120
- export function multipleFailedTestResults(): TestResult {
121
- return createTestResults({
122
- testModules: [
123
- createTestModule({
124
- moduleId: '/src/calculator.test.ts',
125
- tests: [
126
- createTest({
127
- name: 'should add two numbers',
128
- fullName: 'Calculator > should add two numbers',
129
- state: 'failed',
130
- errors: [
131
- createTestError({
132
- message: 'expected 5 to be 6',
133
- stack:
134
- 'Error: expected 5 to be 6\n at calculator.test.ts:10:5',
135
- }),
136
- ],
137
- }),
138
- createTest({
139
- name: 'should multiply two numbers',
140
- fullName: 'Calculator > should multiply two numbers',
141
- state: 'failed',
142
- errors: [
143
- createTestError({
144
- message: 'expected 12 to be 15',
145
- stack:
146
- 'Error: expected 12 to be 15\n at calculator.test.ts:15:5',
147
- }),
148
- ],
149
- }),
150
- ],
151
- }),
152
- ],
153
- })
154
- }
155
-
156
- export function mixedTestResults(): TestResult {
157
- return createTestResults({
158
- testModules: [
159
- createTestModule({
160
- moduleId: '/src/calculator.test.ts',
161
- tests: [
162
- createTest({
163
- name: 'should add two numbers',
164
- fullName: 'Calculator > should add two numbers',
165
- state: 'passed',
166
- }),
167
- createTest({
168
- name: 'should multiply two numbers',
169
- fullName: 'Calculator > should multiply two numbers',
170
- state: 'failed',
171
- errors: [
172
- createTestError({
173
- message: 'expected 12 to be 15',
174
- stack:
175
- 'Error: expected 12 to be 15\n at calculator.test.ts:15:5',
176
- }),
177
- ],
178
- }),
179
- ],
180
- }),
181
- ],
182
- })
183
- }
184
-
185
- export function multipleModulesTestResults(): TestResult {
186
- return createTestResults({
187
- testModules: [
188
- createTestModule({
189
- moduleId: '/src/calculator.test.ts',
190
- tests: [
191
- createTest({
192
- name: 'should add two numbers',
193
- fullName: 'Calculator > should add two numbers',
194
- state: 'passed',
195
- }),
196
- createTest({
197
- name: 'should multiply two numbers',
198
- fullName: 'Calculator > should multiply two numbers',
199
- state: 'failed',
200
- errors: [
201
- createTestError({
202
- message: 'expected 12 to be 15',
203
- stack:
204
- 'Error: expected 12 to be 15\n at calculator.test.ts:15:5',
205
- }),
206
- ],
207
- }),
208
- ],
209
- }),
210
- createTestModule({
211
- moduleId: '/src/utils/formatter.test.ts',
212
- tests: [
213
- createTest({
214
- name: 'should format currency',
215
- fullName: 'Formatter > should format currency',
216
- state: 'passed',
217
- }),
218
- createTest({
219
- name: 'should format date',
220
- fullName: 'Formatter > should format date',
221
- state: 'failed',
222
- errors: [
223
- createTestError({
224
- message: 'expected "2024-01-01" to be "01/01/2024"',
225
- stack:
226
- 'Error: expected "2024-01-01" to be "01/01/2024"\n at formatter.test.ts:20:5',
227
- }),
228
- ],
229
- }),
230
- ],
231
- }),
232
- ],
233
- })
234
- }
@@ -1,99 +0,0 @@
1
- /**
2
- * Factory functions for creating Todo, TodoWrite, and TodoWriteOperation test data
3
- */
4
-
5
- import type {
6
- Todo,
7
- TodoWrite,
8
- TodoWriteOperation,
9
- } from '../../../src/contracts/schemas/toolSchemas'
10
- import { hookDataDefaults, omit } from './helpers'
11
- import { TEST_DEFAULTS } from './testDefaults'
12
-
13
- /**
14
- * Creates a single todo object
15
- * @param params - Optional parameters for the todo
16
- */
17
- export const todo = (params?: Partial<Todo>): Todo => {
18
- const defaults = TEST_DEFAULTS.todo
19
- const base = params ?? {}
20
-
21
- return {
22
- content: base.content ?? defaults.content,
23
- status: base.status ?? defaults.status,
24
- priority: base.priority ?? defaults.priority,
25
- id: base.id ?? defaults.id,
26
- }
27
- }
28
-
29
- /**
30
- * Creates a todo object with specified properties omitted
31
- * @param keys - Array of property keys to omit
32
- * @param params - Optional parameters for the todo
33
- */
34
- export const todoWithout = <K extends keyof Todo>(
35
- keys: K[],
36
- params?: Partial<Todo>
37
- ): Omit<Todo, K> => {
38
- const fullTodo = todo(params)
39
- return omit(fullTodo, keys)
40
- }
41
-
42
- /**
43
- * Creates a single todo write object
44
- * @param params - Optional parameters for the todo write
45
- */
46
- export const todoWrite = (params?: { todos?: Todo[] }): TodoWrite => ({
47
- todos: params?.todos ?? [todo()],
48
- })
49
-
50
- /**
51
- * Creates a todo write object with specified properties omitted
52
- * @param keys - Array of property keys to omit
53
- * @param params - Optional parameters for the todo write
54
- */
55
- export const todoWriteWithout = <K extends keyof TodoWrite>(
56
- keys: K[],
57
- params?: { todos?: Todo[] }
58
- ): Omit<TodoWrite, K> => {
59
- const fullTodoWrite = todoWrite(params)
60
- return omit(fullTodoWrite, keys)
61
- }
62
-
63
- /**
64
- * Creates a single todo write operation object
65
- * @param params - Optional parameters for the todo write operation
66
- */
67
- export const todoWriteOperation = (
68
- params?: Partial<TodoWriteOperation>
69
- ): TodoWriteOperation => ({
70
- ...hookDataDefaults(),
71
- tool_name: 'TodoWrite',
72
- tool_input: params?.tool_input ?? todoWrite(),
73
- })
74
-
75
- /**
76
- * Creates a todo write operation object with specified properties omitted
77
- * @param keys - Array of property keys to omit
78
- * @param params - Optional parameters for the todo write operation
79
- */
80
- export const todoWriteOperationWithout = <K extends keyof TodoWriteOperation>(
81
- keys: K[],
82
- params?: Partial<TodoWriteOperation>
83
- ): Omit<TodoWriteOperation, K> => {
84
- const fullTodoWriteOperation = todoWriteOperation(params)
85
- return omit(fullTodoWriteOperation, keys)
86
- }
87
-
88
- /**
89
- * Creates an invalid todo write operation object for testing
90
- * @param params - Parameters including invalid values
91
- */
92
- export const invalidTodoWriteOperation = (params: {
93
- tool_name?: string
94
- tool_input?: unknown
95
- }): Record<string, unknown> => ({
96
- ...hookDataDefaults(),
97
- tool_name: params.tool_name ?? 'TodoWrite',
98
- tool_input: params.tool_input ?? todoWrite(),
99
- })
@@ -1,39 +0,0 @@
1
- /**
2
- * Factory functions for creating UserPromptSubmit test data
3
- */
4
-
5
- import type { UserPromptSubmit } from '../../../src/contracts/schemas/toolSchemas'
6
- import { omit } from './helpers'
7
- import { TEST_DEFAULTS } from './testDefaults'
8
-
9
- /**
10
- * Creates a UserPromptSubmit object
11
- * @param params - Optional parameters for the UserPromptSubmit
12
- */
13
- export const userPromptSubmit = (
14
- params?: Partial<UserPromptSubmit>
15
- ): UserPromptSubmit => {
16
- const defaults = TEST_DEFAULTS.userPromptSubmit
17
- const base = params ?? {}
18
-
19
- return {
20
- session_id: base.session_id ?? defaults.session_id,
21
- transcript_path: base.transcript_path ?? defaults.transcript_path,
22
- hook_event_name: base.hook_event_name ?? defaults.hook_event_name,
23
- prompt: base.prompt ?? defaults.prompt,
24
- cwd: base.cwd ?? defaults.cwd,
25
- }
26
- }
27
-
28
- /**
29
- * Creates a UserPromptSubmit object with specified properties omitted
30
- * @param keys - Array of property keys to omit
31
- * @param params - Optional parameters for the UserPromptSubmit
32
- */
33
- export const userPromptSubmitWithout = <K extends keyof UserPromptSubmit>(
34
- keys: K[],
35
- params?: Partial<UserPromptSubmit>
36
- ): Omit<UserPromptSubmit, K> => {
37
- const fullUserPromptSubmit = userPromptSubmit(params)
38
- return omit(fullUserPromptSubmit, keys)
39
- }
@@ -1,70 +0,0 @@
1
- /**
2
- * Factory functions for creating Write and WriteOperation test data
3
- */
4
-
5
- import type {
6
- Write,
7
- WriteOperation,
8
- } from '../../../src/contracts/schemas/toolSchemas'
9
- import { hookDataDefaults, omit } from './helpers'
10
- import { TEST_DEFAULTS } from './testDefaults'
11
-
12
- /**
13
- * Creates a single write object
14
- * @param params - Optional parameters for the write
15
- */
16
- export const write = (params?: Partial<Write>): Write => ({
17
- file_path: params?.file_path ?? TEST_DEFAULTS.write.file_path,
18
- content: params?.content ?? TEST_DEFAULTS.write.content,
19
- })
20
-
21
- /**
22
- * Creates a write object with specified properties omitted
23
- * @param keys - Array of property keys to omit
24
- * @param params - Optional parameters for the write
25
- */
26
- export const writeWithout = <K extends keyof Write>(
27
- keys: K[],
28
- params?: Partial<Write>
29
- ): Omit<Write, K> => {
30
- const fullWrite = write(params)
31
- return omit(fullWrite, keys)
32
- }
33
-
34
- /**
35
- * Creates a single write operation object
36
- * @param params - Optional parameters for the write operation
37
- */
38
- export const writeOperation = (
39
- params?: Partial<WriteOperation>
40
- ): WriteOperation => ({
41
- ...hookDataDefaults(),
42
- tool_name: 'Write',
43
- tool_input: params?.tool_input ?? write(),
44
- })
45
-
46
- /**
47
- * Creates a write operation object with specified properties omitted
48
- * @param keys - Array of property keys to omit
49
- * @param params - Optional parameters for the write operation
50
- */
51
- export const writeOperationWithout = <K extends keyof WriteOperation>(
52
- keys: K[],
53
- params?: Partial<WriteOperation>
54
- ): Omit<WriteOperation, K> => {
55
- const fullWriteOperation = writeOperation(params)
56
- return omit(fullWriteOperation, keys)
57
- }
58
-
59
- /**
60
- * Creates an invalid write operation object for testing
61
- * @param params - Parameters including invalid values
62
- */
63
- export const invalidWriteOperation = (params: {
64
- tool_name?: string
65
- tool_input?: unknown
66
- }): Record<string, unknown> => ({
67
- ...hookDataDefaults(),
68
- tool_name: params.tool_name ?? 'Write',
69
- tool_input: params.tool_input ?? write(),
70
- })