xtrm-tools 2.3.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 (284) hide show
  1. package/README.md +127 -111
  2. package/cli/dist/index.cjs +107 -53
  3. package/cli/dist/index.cjs.map +1 -1
  4. package/cli/package.json +1 -1
  5. package/config/pi/extensions/beads.ts +24 -0
  6. package/hooks/beads-gate-core.mjs +6 -4
  7. package/hooks/beads-memory-gate.mjs +12 -5
  8. package/hooks/hooks.json +126 -0
  9. package/package.json +3 -1
  10. package/skills/test-planning/SKILL.md +208 -0
  11. package/skills/test-planning/evals/evals.json +23 -0
  12. package/skills/using-xtrm/SKILL.md +5 -27
  13. package/project-skills/tdd-guard/.claude/hooks/tdd-guard-pretool-bridge.cjs +0 -103
  14. package/project-skills/tdd-guard/.claude/settings.json +0 -38
  15. package/project-skills/tdd-guard/.claude/skills/using-tdd-guard/SKILL.md +0 -79
  16. package/project-skills/tdd-guard/CLAUDE.md +0 -98
  17. package/project-skills/tdd-guard/CONTRIBUTING.md +0 -38
  18. package/project-skills/tdd-guard/DEVELOPMENT.md +0 -127
  19. package/project-skills/tdd-guard/LICENSE +0 -21
  20. package/project-skills/tdd-guard/README.md +0 -398
  21. package/project-skills/tdd-guard/docs/adr/001-claude-session-subdirectory.md +0 -52
  22. package/project-skills/tdd-guard/docs/adr/002-secure-claude-binary-path.md +0 -56
  23. package/project-skills/tdd-guard/docs/adr/003-remove-configurable-data-directory.md +0 -56
  24. package/project-skills/tdd-guard/docs/adr/004-monorepo-architecture.md +0 -64
  25. package/project-skills/tdd-guard/docs/adr/005-claude-project-dir-support.md +0 -55
  26. package/project-skills/tdd-guard/docs/adr/006-phpunit-separate-repository.md +0 -93
  27. package/project-skills/tdd-guard/docs/adr/007-golangci-lint-path-support.md +0 -83
  28. package/project-skills/tdd-guard/docs/adr/008-storybook-reporter-design.md +0 -182
  29. package/project-skills/tdd-guard/docs/assets/tdd-guard-demo-screenshot.gif +0 -0
  30. package/project-skills/tdd-guard/docs/config-migration.md +0 -143
  31. package/project-skills/tdd-guard/docs/configuration.md +0 -137
  32. package/project-skills/tdd-guard/docs/custom-instructions.md +0 -43
  33. package/project-skills/tdd-guard/docs/enforcement.md +0 -46
  34. package/project-skills/tdd-guard/docs/ignore-patterns.md +0 -81
  35. package/project-skills/tdd-guard/docs/linting.md +0 -109
  36. package/project-skills/tdd-guard/docs/quick-commands.md +0 -52
  37. package/project-skills/tdd-guard/docs/session-management.md +0 -75
  38. package/project-skills/tdd-guard/docs/storybook-vitest-addon.md +0 -120
  39. package/project-skills/tdd-guard/docs/validation-model.md +0 -63
  40. package/project-skills/tdd-guard/eslint.config.mjs +0 -140
  41. package/project-skills/tdd-guard/package-lock.json +0 -16937
  42. package/project-skills/tdd-guard/package.json +0 -102
  43. package/project-skills/tdd-guard/reporters/go/README.md +0 -67
  44. package/project-skills/tdd-guard/reporters/go/cmd/tdd-guard-go/main.go +0 -127
  45. package/project-skills/tdd-guard/reporters/go/cmd/tdd-guard-go/main_test.go +0 -280
  46. package/project-skills/tdd-guard/reporters/go/go.mod +0 -3
  47. package/project-skills/tdd-guard/reporters/go/go.sum +0 -0
  48. package/project-skills/tdd-guard/reporters/go/internal/formatter/formatter.go +0 -126
  49. package/project-skills/tdd-guard/reporters/go/internal/formatter/formatter_test.go +0 -264
  50. package/project-skills/tdd-guard/reporters/go/internal/io/tee_reader.go +0 -26
  51. package/project-skills/tdd-guard/reporters/go/internal/io/tee_reader_test.go +0 -37
  52. package/project-skills/tdd-guard/reporters/go/internal/parser/mixed_reader.go +0 -94
  53. package/project-skills/tdd-guard/reporters/go/internal/parser/mixed_reader_test.go +0 -198
  54. package/project-skills/tdd-guard/reporters/go/internal/parser/parser.go +0 -245
  55. package/project-skills/tdd-guard/reporters/go/internal/parser/parser_test.go +0 -547
  56. package/project-skills/tdd-guard/reporters/go/internal/storage/storage.go +0 -35
  57. package/project-skills/tdd-guard/reporters/go/internal/storage/storage_test.go +0 -113
  58. package/project-skills/tdd-guard/reporters/go/internal/transformer/transformer.go +0 -103
  59. package/project-skills/tdd-guard/reporters/go/internal/transformer/transformer_test.go +0 -303
  60. package/project-skills/tdd-guard/reporters/jest/README.md +0 -102
  61. package/project-skills/tdd-guard/reporters/jest/package.json +0 -38
  62. package/project-skills/tdd-guard/reporters/jest/src/JestReporter.test-data.ts +0 -199
  63. package/project-skills/tdd-guard/reporters/jest/src/JestReporter.test.ts +0 -302
  64. package/project-skills/tdd-guard/reporters/jest/src/JestReporter.ts +0 -201
  65. package/project-skills/tdd-guard/reporters/jest/src/index.ts +0 -4
  66. package/project-skills/tdd-guard/reporters/jest/src/types.ts +0 -42
  67. package/project-skills/tdd-guard/reporters/jest/tsconfig.json +0 -11
  68. package/project-skills/tdd-guard/reporters/phpunit/.php-cs-fixer.php +0 -28
  69. package/project-skills/tdd-guard/reporters/phpunit/README.md +0 -97
  70. package/project-skills/tdd-guard/reporters/phpunit/SYNC_README.md +0 -29
  71. package/project-skills/tdd-guard/reporters/phpunit/composer.json +0 -55
  72. package/project-skills/tdd-guard/reporters/phpunit/phpunit.xml.dist +0 -19
  73. package/project-skills/tdd-guard/reporters/phpunit/psalm.xml +0 -44
  74. package/project-skills/tdd-guard/reporters/phpunit/src/Event/ErroredTestSubscriber.php +0 -28
  75. package/project-skills/tdd-guard/reporters/phpunit/src/Event/FailedTestSubscriber.php +0 -28
  76. package/project-skills/tdd-guard/reporters/phpunit/src/Event/IncompleteTestSubscriber.php +0 -28
  77. package/project-skills/tdd-guard/reporters/phpunit/src/Event/PassedTestSubscriber.php +0 -27
  78. package/project-skills/tdd-guard/reporters/phpunit/src/Event/SkippedTestSubscriber.php +0 -28
  79. package/project-skills/tdd-guard/reporters/phpunit/src/Event/TestRunnerFinishedSubscriber.php +0 -24
  80. package/project-skills/tdd-guard/reporters/phpunit/src/PathValidator.php +0 -88
  81. package/project-skills/tdd-guard/reporters/phpunit/src/Storage.php +0 -26
  82. package/project-skills/tdd-guard/reporters/phpunit/src/TddGuardExtension.php +0 -33
  83. package/project-skills/tdd-guard/reporters/phpunit/src/TddGuardListener.php +0 -158
  84. package/project-skills/tdd-guard/reporters/phpunit/src/TddGuardSubscriber.php +0 -35
  85. package/project-skills/tdd-guard/reporters/phpunit/src/TestResultCollector.php +0 -105
  86. package/project-skills/tdd-guard/reporters/phpunit/tests/PathValidatorTest.php +0 -74
  87. package/project-skills/tdd-guard/reporters/phpunit/tests/TddGuardExtensionFailedTest.php +0 -241
  88. package/project-skills/tdd-guard/reporters/phpunit/tests/TddGuardExtensionTest.php +0 -84
  89. package/project-skills/tdd-guard/reporters/phpunit/tests/TddGuardStorageLocationTest.php +0 -71
  90. package/project-skills/tdd-guard/reporters/pytest/README.md +0 -77
  91. package/project-skills/tdd-guard/reporters/pytest/pyproject.toml +0 -43
  92. package/project-skills/tdd-guard/reporters/pytest/pytest.ini.example +0 -7
  93. package/project-skills/tdd-guard/reporters/pytest/tdd_guard_pytest/__init__.py +0 -1
  94. package/project-skills/tdd-guard/reporters/pytest/tdd_guard_pytest/pytest_reporter.py +0 -134
  95. package/project-skills/tdd-guard/reporters/pytest/tests/__init__.py +0 -1
  96. package/project-skills/tdd-guard/reporters/pytest/tests/conftest.py +0 -3
  97. package/project-skills/tdd-guard/reporters/pytest/tests/helpers.py +0 -293
  98. package/project-skills/tdd-guard/reporters/pytest/tests/test_config_option.py +0 -38
  99. package/project-skills/tdd-guard/reporters/pytest/tests/test_path_validation.py +0 -59
  100. package/project-skills/tdd-guard/reporters/pytest/tests/test_plugin_config.py +0 -32
  101. package/project-skills/tdd-guard/reporters/pytest/tests/test_project_root.py +0 -296
  102. package/project-skills/tdd-guard/reporters/pytest/tests/test_pytest_reporter.py +0 -137
  103. package/project-skills/tdd-guard/reporters/rspec/Gemfile +0 -3
  104. package/project-skills/tdd-guard/reporters/rust/Cargo.lock +0 -458
  105. package/project-skills/tdd-guard/reporters/rust/Cargo.toml +0 -33
  106. package/project-skills/tdd-guard/reporters/rust/Makefile.example +0 -95
  107. package/project-skills/tdd-guard/reporters/rust/README.md +0 -88
  108. package/project-skills/tdd-guard/reporters/rust/src/error_parser.rs +0 -309
  109. package/project-skills/tdd-guard/reporters/rust/src/main.rs +0 -464
  110. package/project-skills/tdd-guard/reporters/rust/src/parser.rs +0 -225
  111. package/project-skills/tdd-guard/reporters/rust/src/transformer.rs +0 -409
  112. package/project-skills/tdd-guard/reporters/storybook/README.md +0 -108
  113. package/project-skills/tdd-guard/reporters/storybook/package-lock.json +0 -9482
  114. package/project-skills/tdd-guard/reporters/storybook/package.json +0 -43
  115. package/project-skills/tdd-guard/reporters/storybook/src/StorybookReporter.test-data.ts +0 -22
  116. package/project-skills/tdd-guard/reporters/storybook/src/StorybookReporter.test.ts +0 -190
  117. package/project-skills/tdd-guard/reporters/storybook/src/StorybookReporter.ts +0 -88
  118. package/project-skills/tdd-guard/reporters/storybook/src/index.ts +0 -12
  119. package/project-skills/tdd-guard/reporters/storybook/src/types.ts +0 -37
  120. package/project-skills/tdd-guard/reporters/storybook/tsconfig.json +0 -11
  121. package/project-skills/tdd-guard/reporters/test/artifacts/go/failing/go.mod +0 -3
  122. package/project-skills/tdd-guard/reporters/test/artifacts/go/failing/single_failing_test.go +0 -13
  123. package/project-skills/tdd-guard/reporters/test/artifacts/go/import/go.mod +0 -3
  124. package/project-skills/tdd-guard/reporters/test/artifacts/go/import/single_import_error_test.go +0 -17
  125. package/project-skills/tdd-guard/reporters/test/artifacts/go/passing/go.mod +0 -3
  126. package/project-skills/tdd-guard/reporters/test/artifacts/go/passing/single_passing_test.go +0 -13
  127. package/project-skills/tdd-guard/reporters/test/artifacts/jest/single-failing.test.js +0 -5
  128. package/project-skills/tdd-guard/reporters/test/artifacts/jest/single-import-error.test.js +0 -8
  129. package/project-skills/tdd-guard/reporters/test/artifacts/jest/single-passing.test.js +0 -5
  130. package/project-skills/tdd-guard/reporters/test/artifacts/phpunit/SingleFailingTest.php +0 -11
  131. package/project-skills/tdd-guard/reporters/test/artifacts/phpunit/SingleImportErrorTest.php +0 -14
  132. package/project-skills/tdd-guard/reporters/test/artifacts/phpunit/SinglePassingTest.php +0 -11
  133. package/project-skills/tdd-guard/reporters/test/artifacts/pytest/test_single_failing.py +0 -3
  134. package/project-skills/tdd-guard/reporters/test/artifacts/pytest/test_single_import_error.py +0 -6
  135. package/project-skills/tdd-guard/reporters/test/artifacts/pytest/test_single_passing.py +0 -3
  136. package/project-skills/tdd-guard/reporters/test/artifacts/rust/failing/Cargo.lock +0 -7
  137. package/project-skills/tdd-guard/reporters/test/artifacts/rust/failing/Cargo.toml +0 -4
  138. package/project-skills/tdd-guard/reporters/test/artifacts/rust/failing/src/lib.rs +0 -14
  139. package/project-skills/tdd-guard/reporters/test/artifacts/rust/import/Cargo.lock +0 -7
  140. package/project-skills/tdd-guard/reporters/test/artifacts/rust/import/Cargo.toml +0 -4
  141. package/project-skills/tdd-guard/reporters/test/artifacts/rust/import/src/lib.rs +0 -13
  142. package/project-skills/tdd-guard/reporters/test/artifacts/rust/passing/Cargo.lock +0 -7
  143. package/project-skills/tdd-guard/reporters/test/artifacts/rust/passing/Cargo.toml +0 -4
  144. package/project-skills/tdd-guard/reporters/test/artifacts/rust/passing/src/lib.rs +0 -14
  145. package/project-skills/tdd-guard/reporters/test/artifacts/storybook/Calculator.js +0 -4
  146. package/project-skills/tdd-guard/reporters/test/artifacts/storybook/single-failing.stories.js +0 -15
  147. package/project-skills/tdd-guard/reporters/test/artifacts/storybook/single-import-error.stories.js +0 -14
  148. package/project-skills/tdd-guard/reporters/test/artifacts/storybook/single-passing.stories.js +0 -15
  149. package/project-skills/tdd-guard/reporters/test/artifacts/vitest/single-failing.test.js +0 -7
  150. package/project-skills/tdd-guard/reporters/test/artifacts/vitest/single-import-error.test.js +0 -9
  151. package/project-skills/tdd-guard/reporters/test/artifacts/vitest/single-passing.test.js +0 -7
  152. package/project-skills/tdd-guard/reporters/test/factories/go.ts +0 -59
  153. package/project-skills/tdd-guard/reporters/test/factories/helpers.ts +0 -48
  154. package/project-skills/tdd-guard/reporters/test/factories/index.ts +0 -7
  155. package/project-skills/tdd-guard/reporters/test/factories/jest.ts +0 -51
  156. package/project-skills/tdd-guard/reporters/test/factories/phpunit.ts +0 -63
  157. package/project-skills/tdd-guard/reporters/test/factories/pytest.ts +0 -41
  158. package/project-skills/tdd-guard/reporters/test/factories/rust.ts +0 -158
  159. package/project-skills/tdd-guard/reporters/test/factories/storybook.ts +0 -198
  160. package/project-skills/tdd-guard/reporters/test/factories/vitest.ts +0 -51
  161. package/project-skills/tdd-guard/reporters/test/reporters.integration.test.ts +0 -735
  162. package/project-skills/tdd-guard/reporters/test/types.ts +0 -28
  163. package/project-skills/tdd-guard/reporters/vitest/README.md +0 -64
  164. package/project-skills/tdd-guard/reporters/vitest/package.json +0 -35
  165. package/project-skills/tdd-guard/reporters/vitest/src/VitestReporter.test-data.ts +0 -85
  166. package/project-skills/tdd-guard/reporters/vitest/src/VitestReporter.test.ts +0 -446
  167. package/project-skills/tdd-guard/reporters/vitest/src/VitestReporter.ts +0 -110
  168. package/project-skills/tdd-guard/reporters/vitest/src/index.ts +0 -4
  169. package/project-skills/tdd-guard/reporters/vitest/src/types.ts +0 -39
  170. package/project-skills/tdd-guard/reporters/vitest/tsconfig.json +0 -11
  171. package/project-skills/tdd-guard/src/cli/buildContext.test.ts +0 -200
  172. package/project-skills/tdd-guard/src/cli/buildContext.ts +0 -48
  173. package/project-skills/tdd-guard/src/cli/tdd-guard.test.ts +0 -159
  174. package/project-skills/tdd-guard/src/cli/tdd-guard.ts +0 -48
  175. package/project-skills/tdd-guard/src/config/Config.test.ts +0 -538
  176. package/project-skills/tdd-guard/src/config/Config.ts +0 -172
  177. package/project-skills/tdd-guard/src/contracts/schemas/guardSchemas.test.ts +0 -58
  178. package/project-skills/tdd-guard/src/contracts/schemas/guardSchemas.ts +0 -8
  179. package/project-skills/tdd-guard/src/contracts/schemas/lintSchemas.test.ts +0 -347
  180. package/project-skills/tdd-guard/src/contracts/schemas/lintSchemas.ts +0 -61
  181. package/project-skills/tdd-guard/src/contracts/schemas/pytestSchemas.test.ts +0 -24
  182. package/project-skills/tdd-guard/src/contracts/schemas/pytestSchemas.ts +0 -7
  183. package/project-skills/tdd-guard/src/contracts/schemas/reporterSchemas.test.ts +0 -377
  184. package/project-skills/tdd-guard/src/contracts/schemas/reporterSchemas.ts +0 -75
  185. package/project-skills/tdd-guard/src/contracts/schemas/toolSchemas.test.ts +0 -563
  186. package/project-skills/tdd-guard/src/contracts/schemas/toolSchemas.ts +0 -140
  187. package/project-skills/tdd-guard/src/contracts/types/ClientType.ts +0 -1
  188. package/project-skills/tdd-guard/src/contracts/types/ConfigOptions.ts +0 -12
  189. package/project-skills/tdd-guard/src/contracts/types/Context.ts +0 -16
  190. package/project-skills/tdd-guard/src/contracts/types/ModelClient.ts +0 -3
  191. package/project-skills/tdd-guard/src/contracts/types/ValidationResult.ts +0 -6
  192. package/project-skills/tdd-guard/src/guard/GuardManager.test.ts +0 -336
  193. package/project-skills/tdd-guard/src/guard/GuardManager.ts +0 -83
  194. package/project-skills/tdd-guard/src/hooks/HookEvents.test.ts +0 -107
  195. package/project-skills/tdd-guard/src/hooks/HookEvents.ts +0 -39
  196. package/project-skills/tdd-guard/src/hooks/fileTypeDetection.ts +0 -16
  197. package/project-skills/tdd-guard/src/hooks/postToolLint.test.ts +0 -327
  198. package/project-skills/tdd-guard/src/hooks/postToolLint.ts +0 -165
  199. package/project-skills/tdd-guard/src/hooks/processHookData.test.ts +0 -465
  200. package/project-skills/tdd-guard/src/hooks/processHookData.ts +0 -203
  201. package/project-skills/tdd-guard/src/hooks/sessionHandler.test.ts +0 -136
  202. package/project-skills/tdd-guard/src/hooks/sessionHandler.ts +0 -31
  203. package/project-skills/tdd-guard/src/hooks/userPromptHandler.test.ts +0 -131
  204. package/project-skills/tdd-guard/src/hooks/userPromptHandler.ts +0 -55
  205. package/project-skills/tdd-guard/src/index.ts +0 -19
  206. package/project-skills/tdd-guard/src/linters/Linter.ts +0 -5
  207. package/project-skills/tdd-guard/src/linters/eslint/ESLint.test.ts +0 -183
  208. package/project-skills/tdd-guard/src/linters/eslint/ESLint.ts +0 -82
  209. package/project-skills/tdd-guard/src/linters/golangci/GolangciLint.test.ts +0 -170
  210. package/project-skills/tdd-guard/src/linters/golangci/GolangciLint.ts +0 -148
  211. package/project-skills/tdd-guard/src/processors/index.ts +0 -1
  212. package/project-skills/tdd-guard/src/processors/lintProcessor.ts +0 -77
  213. package/project-skills/tdd-guard/src/processors/testResults/TestResultsProcessor.test.ts +0 -303
  214. package/project-skills/tdd-guard/src/processors/testResults/TestResultsProcessor.ts +0 -255
  215. package/project-skills/tdd-guard/src/providers/LinterProvider.test.ts +0 -43
  216. package/project-skills/tdd-guard/src/providers/LinterProvider.ts +0 -20
  217. package/project-skills/tdd-guard/src/providers/ModelClientProvider.test.ts +0 -68
  218. package/project-skills/tdd-guard/src/providers/ModelClientProvider.ts +0 -22
  219. package/project-skills/tdd-guard/src/storage/FileStorage.test.ts +0 -76
  220. package/project-skills/tdd-guard/src/storage/FileStorage.ts +0 -108
  221. package/project-skills/tdd-guard/src/storage/MemoryStorage.ts +0 -57
  222. package/project-skills/tdd-guard/src/storage/Storage.test.ts +0 -227
  223. package/project-skills/tdd-guard/src/storage/Storage.ts +0 -17
  224. package/project-skills/tdd-guard/src/validation/context/context.test.ts +0 -364
  225. package/project-skills/tdd-guard/src/validation/context/context.ts +0 -155
  226. package/project-skills/tdd-guard/src/validation/models/AnthropicApi.test.ts +0 -171
  227. package/project-skills/tdd-guard/src/validation/models/AnthropicApi.ts +0 -49
  228. package/project-skills/tdd-guard/src/validation/models/ClaudeAgentSdk.test.ts +0 -167
  229. package/project-skills/tdd-guard/src/validation/models/ClaudeAgentSdk.ts +0 -54
  230. package/project-skills/tdd-guard/src/validation/models/ClaudeCli.test.ts +0 -239
  231. package/project-skills/tdd-guard/src/validation/models/ClaudeCli.ts +0 -57
  232. package/project-skills/tdd-guard/src/validation/prompts/file-types.ts +0 -52
  233. package/project-skills/tdd-guard/src/validation/prompts/operations/edit.ts +0 -58
  234. package/project-skills/tdd-guard/src/validation/prompts/operations/multi-edit.ts +0 -54
  235. package/project-skills/tdd-guard/src/validation/prompts/operations/write.ts +0 -54
  236. package/project-skills/tdd-guard/src/validation/prompts/response.ts +0 -40
  237. package/project-skills/tdd-guard/src/validation/prompts/rules.ts +0 -51
  238. package/project-skills/tdd-guard/src/validation/prompts/system-prompt.ts +0 -10
  239. package/project-skills/tdd-guard/src/validation/prompts/tools/lint-results.ts +0 -15
  240. package/project-skills/tdd-guard/src/validation/prompts/tools/test-output.ts +0 -14
  241. package/project-skills/tdd-guard/src/validation/prompts/tools/todos.ts +0 -9
  242. package/project-skills/tdd-guard/src/validation/validator.test.ts +0 -268
  243. package/project-skills/tdd-guard/src/validation/validator.ts +0 -159
  244. package/project-skills/tdd-guard/test/artifacts/go/.golangci.yml +0 -6
  245. package/project-skills/tdd-guard/test/artifacts/go/with-issues/file-with-issues.go +0 -12
  246. package/project-skills/tdd-guard/test/artifacts/go/with-issues/go.mod +0 -3
  247. package/project-skills/tdd-guard/test/artifacts/go/without-issues/file-without-issues.go +0 -7
  248. package/project-skills/tdd-guard/test/artifacts/go/without-issues/go.mod +0 -3
  249. package/project-skills/tdd-guard/test/artifacts/javascript/eslint.config.js +0 -20
  250. package/project-skills/tdd-guard/test/artifacts/javascript/file-with-issues.js +0 -12
  251. package/project-skills/tdd-guard/test/artifacts/javascript/file-without-issues.js +0 -10
  252. package/project-skills/tdd-guard/test/hooks/fileTypeDetection.test.ts +0 -26
  253. package/project-skills/tdd-guard/test/hooks/processHookData.fileType.test.ts +0 -46
  254. package/project-skills/tdd-guard/test/hooks/processHookData.python.test.ts +0 -68
  255. package/project-skills/tdd-guard/test/integration/test-context.test.ts +0 -66
  256. package/project-skills/tdd-guard/test/integration/validator.core.test.ts +0 -96
  257. package/project-skills/tdd-guard/test/integration/validator.scenarios.test.ts +0 -497
  258. package/project-skills/tdd-guard/test/utils/assertions.ts +0 -29
  259. package/project-skills/tdd-guard/test/utils/factories/contextFactory.ts +0 -30
  260. package/project-skills/tdd-guard/test/utils/factories/editFactory.ts +0 -82
  261. package/project-skills/tdd-guard/test/utils/factories/helpers.test.ts +0 -46
  262. package/project-skills/tdd-guard/test/utils/factories/helpers.ts +0 -46
  263. package/project-skills/tdd-guard/test/utils/factories/lintFactory.ts +0 -352
  264. package/project-skills/tdd-guard/test/utils/factories/modelClientProviderFactory.ts +0 -21
  265. package/project-skills/tdd-guard/test/utils/factories/multiEditFactory.ts +0 -79
  266. package/project-skills/tdd-guard/test/utils/factories/operations.ts +0 -57
  267. package/project-skills/tdd-guard/test/utils/factories/reporterFactory.ts +0 -55
  268. package/project-skills/tdd-guard/test/utils/factories/scenarios/index.ts +0 -22
  269. package/project-skills/tdd-guard/test/utils/factories/scenarios/languages/python.ts +0 -745
  270. package/project-skills/tdd-guard/test/utils/factories/scenarios/languages/typescript.ts +0 -767
  271. package/project-skills/tdd-guard/test/utils/factories/scenarios/types.ts +0 -77
  272. package/project-skills/tdd-guard/test/utils/factories/scenarios/utils.ts +0 -15
  273. package/project-skills/tdd-guard/test/utils/factories/sessionStartFactory.ts +0 -36
  274. package/project-skills/tdd-guard/test/utils/factories/testDefaults.ts +0 -90
  275. package/project-skills/tdd-guard/test/utils/factories/testResultsFactory.ts +0 -234
  276. package/project-skills/tdd-guard/test/utils/factories/todoFactory.ts +0 -99
  277. package/project-skills/tdd-guard/test/utils/factories/userPromptSubmitFactory.ts +0 -39
  278. package/project-skills/tdd-guard/test/utils/factories/writeFactory.ts +0 -70
  279. package/project-skills/tdd-guard/test/utils/index.ts +0 -131
  280. package/project-skills/tdd-guard/tsconfig.build.json +0 -16
  281. package/project-skills/tdd-guard/tsconfig.eslint.json +0 -17
  282. package/project-skills/tdd-guard/tsconfig.json +0 -32
  283. package/project-skills/tdd-guard/tsconfig.node.json +0 -10
  284. 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
- })