xtrm-tools 2.0.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 (447) hide show
  1. package/CHANGELOG.md +496 -0
  2. package/README.md +762 -0
  3. package/cli/dist/index.cjs +55245 -0
  4. package/cli/dist/index.cjs.map +1 -0
  5. package/cli/dist/index.d.cts +2 -0
  6. package/cli/package.json +43 -0
  7. package/config/.env.example +40 -0
  8. package/config/hooks.json +36 -0
  9. package/config/mcp_servers.json +46 -0
  10. package/config/mcp_servers_optional.json +53 -0
  11. package/config/settings.json +70 -0
  12. package/hooks/README.md +156 -0
  13. package/hooks/__pycache__/agent_context.cpython-314.pyc +0 -0
  14. package/hooks/agent_context.py +105 -0
  15. package/hooks/gitnexus/gitnexus-hook.cjs +133 -0
  16. package/hooks/serena-workflow-reminder.py +74 -0
  17. package/hooks/skill-discovery.py +90 -0
  18. package/hooks/skill-suggestion.py +112 -0
  19. package/hooks/test_agent_context.py +112 -0
  20. package/hooks/type-safety-enforcement.py +107 -0
  21. package/package.json +48 -0
  22. package/project-skills/main-guard/.claude/hooks/main-guard.cjs +188 -0
  23. package/project-skills/main-guard/.claude/settings.json +16 -0
  24. package/project-skills/main-guard/.claude/skills/using-main-guard/SKILL.md +135 -0
  25. package/project-skills/main-guard/README.md +163 -0
  26. package/project-skills/py-quality-gate/.claude/hooks/quality-check.py +311 -0
  27. package/project-skills/py-quality-gate/.claude/settings.json +16 -0
  28. package/project-skills/py-quality-gate/.claude/skills/using-py-quality-gate/SKILL.md +112 -0
  29. package/project-skills/py-quality-gate/README.md +147 -0
  30. package/project-skills/service-skills-set/.claude/git-hooks/__pycache__/doc_reminder.cpython-314.pyc +0 -0
  31. package/project-skills/service-skills-set/.claude/git-hooks/__pycache__/skill_staleness.cpython-314.pyc +0 -0
  32. package/project-skills/service-skills-set/.claude/git-hooks/doc_reminder.py +67 -0
  33. package/project-skills/service-skills-set/.claude/git-hooks/skill_staleness.py +194 -0
  34. package/project-skills/service-skills-set/.claude/service-registry.json +4 -0
  35. package/project-skills/service-skills-set/.claude/settings.json +37 -0
  36. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/SKILL.md +433 -0
  37. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/references/script_quality_standards.md +412 -0
  38. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/references/service_skill_system_guide.md +264 -0
  39. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/scripts/bootstrap.py +308 -0
  40. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/scripts/deep_dive.py +304 -0
  41. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/scripts/scaffolder.py +482 -0
  42. package/project-skills/service-skills-set/.claude/skills/scoping-service-skills/SKILL.md +231 -0
  43. package/project-skills/service-skills-set/.claude/skills/scoping-service-skills/scripts/scope.py +74 -0
  44. package/project-skills/service-skills-set/.claude/skills/updating-service-skills/SKILL.md +136 -0
  45. package/project-skills/service-skills-set/.claude/skills/updating-service-skills/scripts/__pycache__/drift_detector.cpython-314.pyc +0 -0
  46. package/project-skills/service-skills-set/.claude/skills/updating-service-skills/scripts/drift_detector.py +222 -0
  47. package/project-skills/service-skills-set/.claude/skills/using-service-skills/SKILL.md +108 -0
  48. package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/__pycache__/cataloger.cpython-314.pyc +0 -0
  49. package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/__pycache__/skill_activator.cpython-314.pyc +0 -0
  50. package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/cataloger.py +74 -0
  51. package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/skill_activator.py +152 -0
  52. package/project-skills/service-skills-set/README.md +93 -0
  53. package/project-skills/service-skills-set/__pycache__/install-service-skills.cpython-314.pyc +0 -0
  54. package/project-skills/service-skills-set/install-service-skills.py +163 -0
  55. package/project-skills/service-skills-set/service-skills-readme.md +236 -0
  56. package/project-skills/tdd-guard/.claude/settings.json +38 -0
  57. package/project-skills/tdd-guard/.claude/skills/using-tdd-guard/SKILL.md +74 -0
  58. package/project-skills/tdd-guard/CLAUDE.md +98 -0
  59. package/project-skills/tdd-guard/CONTRIBUTING.md +38 -0
  60. package/project-skills/tdd-guard/DEVELOPMENT.md +127 -0
  61. package/project-skills/tdd-guard/LICENSE +21 -0
  62. package/project-skills/tdd-guard/README.md +396 -0
  63. package/project-skills/tdd-guard/docs/adr/001-claude-session-subdirectory.md +52 -0
  64. package/project-skills/tdd-guard/docs/adr/002-secure-claude-binary-path.md +56 -0
  65. package/project-skills/tdd-guard/docs/adr/003-remove-configurable-data-directory.md +56 -0
  66. package/project-skills/tdd-guard/docs/adr/004-monorepo-architecture.md +64 -0
  67. package/project-skills/tdd-guard/docs/adr/005-claude-project-dir-support.md +55 -0
  68. package/project-skills/tdd-guard/docs/adr/006-phpunit-separate-repository.md +93 -0
  69. package/project-skills/tdd-guard/docs/adr/007-golangci-lint-path-support.md +83 -0
  70. package/project-skills/tdd-guard/docs/adr/008-storybook-reporter-design.md +182 -0
  71. package/project-skills/tdd-guard/docs/assets/tdd-guard-demo-screenshot.gif +0 -0
  72. package/project-skills/tdd-guard/docs/config-migration.md +143 -0
  73. package/project-skills/tdd-guard/docs/configuration.md +137 -0
  74. package/project-skills/tdd-guard/docs/custom-instructions.md +43 -0
  75. package/project-skills/tdd-guard/docs/enforcement.md +46 -0
  76. package/project-skills/tdd-guard/docs/ignore-patterns.md +81 -0
  77. package/project-skills/tdd-guard/docs/linting.md +109 -0
  78. package/project-skills/tdd-guard/docs/quick-commands.md +52 -0
  79. package/project-skills/tdd-guard/docs/session-management.md +75 -0
  80. package/project-skills/tdd-guard/docs/storybook-vitest-addon.md +120 -0
  81. package/project-skills/tdd-guard/docs/validation-model.md +63 -0
  82. package/project-skills/tdd-guard/eslint.config.mjs +140 -0
  83. package/project-skills/tdd-guard/package-lock.json +16937 -0
  84. package/project-skills/tdd-guard/package.json +102 -0
  85. package/project-skills/tdd-guard/reporters/go/README.md +67 -0
  86. package/project-skills/tdd-guard/reporters/go/cmd/tdd-guard-go/main.go +127 -0
  87. package/project-skills/tdd-guard/reporters/go/cmd/tdd-guard-go/main_test.go +280 -0
  88. package/project-skills/tdd-guard/reporters/go/go.mod +3 -0
  89. package/project-skills/tdd-guard/reporters/go/go.sum +0 -0
  90. package/project-skills/tdd-guard/reporters/go/internal/formatter/formatter.go +126 -0
  91. package/project-skills/tdd-guard/reporters/go/internal/formatter/formatter_test.go +264 -0
  92. package/project-skills/tdd-guard/reporters/go/internal/io/tee_reader.go +26 -0
  93. package/project-skills/tdd-guard/reporters/go/internal/io/tee_reader_test.go +37 -0
  94. package/project-skills/tdd-guard/reporters/go/internal/parser/mixed_reader.go +94 -0
  95. package/project-skills/tdd-guard/reporters/go/internal/parser/mixed_reader_test.go +198 -0
  96. package/project-skills/tdd-guard/reporters/go/internal/parser/parser.go +245 -0
  97. package/project-skills/tdd-guard/reporters/go/internal/parser/parser_test.go +547 -0
  98. package/project-skills/tdd-guard/reporters/go/internal/storage/storage.go +35 -0
  99. package/project-skills/tdd-guard/reporters/go/internal/storage/storage_test.go +113 -0
  100. package/project-skills/tdd-guard/reporters/go/internal/transformer/transformer.go +103 -0
  101. package/project-skills/tdd-guard/reporters/go/internal/transformer/transformer_test.go +303 -0
  102. package/project-skills/tdd-guard/reporters/jest/README.md +102 -0
  103. package/project-skills/tdd-guard/reporters/jest/package.json +38 -0
  104. package/project-skills/tdd-guard/reporters/phpunit/.php-cs-fixer.php +28 -0
  105. package/project-skills/tdd-guard/reporters/phpunit/README.md +97 -0
  106. package/project-skills/tdd-guard/reporters/phpunit/SYNC_README.md +29 -0
  107. package/project-skills/tdd-guard/reporters/phpunit/composer.json +55 -0
  108. package/project-skills/tdd-guard/reporters/phpunit/phpunit.xml.dist +19 -0
  109. package/project-skills/tdd-guard/reporters/phpunit/psalm.xml +44 -0
  110. package/project-skills/tdd-guard/reporters/phpunit/src/Event/ErroredTestSubscriber.php +28 -0
  111. package/project-skills/tdd-guard/reporters/phpunit/src/Event/FailedTestSubscriber.php +28 -0
  112. package/project-skills/tdd-guard/reporters/phpunit/src/Event/IncompleteTestSubscriber.php +28 -0
  113. package/project-skills/tdd-guard/reporters/phpunit/src/Event/PassedTestSubscriber.php +27 -0
  114. package/project-skills/tdd-guard/reporters/phpunit/src/Event/SkippedTestSubscriber.php +28 -0
  115. package/project-skills/tdd-guard/reporters/phpunit/src/Event/TestRunnerFinishedSubscriber.php +24 -0
  116. package/project-skills/tdd-guard/reporters/phpunit/src/PathValidator.php +88 -0
  117. package/project-skills/tdd-guard/reporters/phpunit/src/Storage.php +26 -0
  118. package/project-skills/tdd-guard/reporters/phpunit/src/TddGuardExtension.php +33 -0
  119. package/project-skills/tdd-guard/reporters/phpunit/src/TddGuardListener.php +158 -0
  120. package/project-skills/tdd-guard/reporters/phpunit/src/TddGuardSubscriber.php +35 -0
  121. package/project-skills/tdd-guard/reporters/phpunit/src/TestResultCollector.php +105 -0
  122. package/project-skills/tdd-guard/reporters/phpunit/tests/PathValidatorTest.php +74 -0
  123. package/project-skills/tdd-guard/reporters/phpunit/tests/TddGuardExtensionFailedTest.php +241 -0
  124. package/project-skills/tdd-guard/reporters/phpunit/tests/TddGuardExtensionTest.php +84 -0
  125. package/project-skills/tdd-guard/reporters/phpunit/tests/TddGuardStorageLocationTest.php +71 -0
  126. package/project-skills/tdd-guard/reporters/pytest/README.md +77 -0
  127. package/project-skills/tdd-guard/reporters/pytest/pyproject.toml +43 -0
  128. package/project-skills/tdd-guard/reporters/pytest/pytest.ini.example +7 -0
  129. package/project-skills/tdd-guard/reporters/pytest/tdd_guard_pytest/__init__.py +1 -0
  130. package/project-skills/tdd-guard/reporters/pytest/tdd_guard_pytest/pytest_reporter.py +134 -0
  131. package/project-skills/tdd-guard/reporters/pytest/tests/__init__.py +1 -0
  132. package/project-skills/tdd-guard/reporters/pytest/tests/conftest.py +3 -0
  133. package/project-skills/tdd-guard/reporters/pytest/tests/helpers.py +293 -0
  134. package/project-skills/tdd-guard/reporters/pytest/tests/test_config_option.py +38 -0
  135. package/project-skills/tdd-guard/reporters/pytest/tests/test_path_validation.py +59 -0
  136. package/project-skills/tdd-guard/reporters/pytest/tests/test_plugin_config.py +32 -0
  137. package/project-skills/tdd-guard/reporters/pytest/tests/test_project_root.py +296 -0
  138. package/project-skills/tdd-guard/reporters/pytest/tests/test_pytest_reporter.py +137 -0
  139. package/project-skills/tdd-guard/reporters/rspec/Gemfile +3 -0
  140. package/project-skills/tdd-guard/reporters/rust/Cargo.lock +458 -0
  141. package/project-skills/tdd-guard/reporters/rust/Cargo.toml +33 -0
  142. package/project-skills/tdd-guard/reporters/rust/Makefile.example +95 -0
  143. package/project-skills/tdd-guard/reporters/rust/README.md +88 -0
  144. package/project-skills/tdd-guard/reporters/rust/src/error_parser.rs +309 -0
  145. package/project-skills/tdd-guard/reporters/rust/src/main.rs +464 -0
  146. package/project-skills/tdd-guard/reporters/rust/src/parser.rs +225 -0
  147. package/project-skills/tdd-guard/reporters/rust/src/transformer.rs +409 -0
  148. package/project-skills/tdd-guard/reporters/storybook/README.md +108 -0
  149. package/project-skills/tdd-guard/reporters/storybook/package-lock.json +9482 -0
  150. package/project-skills/tdd-guard/reporters/storybook/package.json +43 -0
  151. package/project-skills/tdd-guard/reporters/storybook/src/StorybookReporter.test-data.ts +22 -0
  152. package/project-skills/tdd-guard/reporters/storybook/src/StorybookReporter.test.ts +190 -0
  153. package/project-skills/tdd-guard/reporters/storybook/src/StorybookReporter.ts +88 -0
  154. package/project-skills/tdd-guard/reporters/storybook/src/index.ts +12 -0
  155. package/project-skills/tdd-guard/reporters/storybook/src/types.ts +37 -0
  156. package/project-skills/tdd-guard/reporters/storybook/tsconfig.json +11 -0
  157. package/project-skills/tdd-guard/reporters/test/artifacts/go/failing/go.mod +3 -0
  158. package/project-skills/tdd-guard/reporters/test/artifacts/go/failing/single_failing_test.go +13 -0
  159. package/project-skills/tdd-guard/reporters/test/artifacts/go/import/go.mod +3 -0
  160. package/project-skills/tdd-guard/reporters/test/artifacts/go/import/single_import_error_test.go +17 -0
  161. package/project-skills/tdd-guard/reporters/test/artifacts/go/passing/go.mod +3 -0
  162. package/project-skills/tdd-guard/reporters/test/artifacts/go/passing/single_passing_test.go +13 -0
  163. package/project-skills/tdd-guard/reporters/test/artifacts/jest/single-failing.test.js +5 -0
  164. package/project-skills/tdd-guard/reporters/test/artifacts/jest/single-import-error.test.js +8 -0
  165. package/project-skills/tdd-guard/reporters/test/artifacts/jest/single-passing.test.js +5 -0
  166. package/project-skills/tdd-guard/reporters/test/artifacts/phpunit/SingleFailingTest.php +11 -0
  167. package/project-skills/tdd-guard/reporters/test/artifacts/phpunit/SingleImportErrorTest.php +14 -0
  168. package/project-skills/tdd-guard/reporters/test/artifacts/phpunit/SinglePassingTest.php +11 -0
  169. package/project-skills/tdd-guard/reporters/test/artifacts/pytest/test_single_failing.py +3 -0
  170. package/project-skills/tdd-guard/reporters/test/artifacts/pytest/test_single_import_error.py +6 -0
  171. package/project-skills/tdd-guard/reporters/test/artifacts/pytest/test_single_passing.py +3 -0
  172. package/project-skills/tdd-guard/reporters/test/artifacts/rust/failing/Cargo.lock +7 -0
  173. package/project-skills/tdd-guard/reporters/test/artifacts/rust/failing/Cargo.toml +4 -0
  174. package/project-skills/tdd-guard/reporters/test/artifacts/rust/failing/src/lib.rs +14 -0
  175. package/project-skills/tdd-guard/reporters/test/artifacts/rust/import/Cargo.lock +7 -0
  176. package/project-skills/tdd-guard/reporters/test/artifacts/rust/import/Cargo.toml +4 -0
  177. package/project-skills/tdd-guard/reporters/test/artifacts/rust/import/src/lib.rs +13 -0
  178. package/project-skills/tdd-guard/reporters/test/artifacts/rust/passing/Cargo.lock +7 -0
  179. package/project-skills/tdd-guard/reporters/test/artifacts/rust/passing/Cargo.toml +4 -0
  180. package/project-skills/tdd-guard/reporters/test/artifacts/rust/passing/src/lib.rs +14 -0
  181. package/project-skills/tdd-guard/reporters/test/artifacts/storybook/Calculator.js +4 -0
  182. package/project-skills/tdd-guard/reporters/test/artifacts/storybook/single-failing.stories.js +15 -0
  183. package/project-skills/tdd-guard/reporters/test/artifacts/storybook/single-import-error.stories.js +14 -0
  184. package/project-skills/tdd-guard/reporters/test/artifacts/storybook/single-passing.stories.js +15 -0
  185. package/project-skills/tdd-guard/reporters/test/artifacts/vitest/single-failing.test.js +7 -0
  186. package/project-skills/tdd-guard/reporters/test/artifacts/vitest/single-import-error.test.js +9 -0
  187. package/project-skills/tdd-guard/reporters/test/artifacts/vitest/single-passing.test.js +7 -0
  188. package/project-skills/tdd-guard/reporters/test/factories/go.ts +59 -0
  189. package/project-skills/tdd-guard/reporters/test/factories/helpers.ts +48 -0
  190. package/project-skills/tdd-guard/reporters/test/factories/index.ts +7 -0
  191. package/project-skills/tdd-guard/reporters/test/factories/jest.ts +51 -0
  192. package/project-skills/tdd-guard/reporters/test/factories/phpunit.ts +63 -0
  193. package/project-skills/tdd-guard/reporters/test/factories/pytest.ts +41 -0
  194. package/project-skills/tdd-guard/reporters/test/factories/rust.ts +158 -0
  195. package/project-skills/tdd-guard/reporters/test/factories/storybook.ts +198 -0
  196. package/project-skills/tdd-guard/reporters/test/factories/vitest.ts +51 -0
  197. package/project-skills/tdd-guard/reporters/test/reporters.integration.test.ts +735 -0
  198. package/project-skills/tdd-guard/reporters/test/types.ts +28 -0
  199. package/project-skills/tdd-guard/reporters/vitest/README.md +64 -0
  200. package/project-skills/tdd-guard/reporters/vitest/package.json +35 -0
  201. package/project-skills/tdd-guard/src/cli/buildContext.test.ts +200 -0
  202. package/project-skills/tdd-guard/src/cli/buildContext.ts +48 -0
  203. package/project-skills/tdd-guard/src/cli/tdd-guard.test.ts +159 -0
  204. package/project-skills/tdd-guard/src/cli/tdd-guard.ts +48 -0
  205. package/project-skills/tdd-guard/src/config/Config.test.ts +538 -0
  206. package/project-skills/tdd-guard/src/config/Config.ts +172 -0
  207. package/project-skills/tdd-guard/src/contracts/schemas/guardSchemas.test.ts +58 -0
  208. package/project-skills/tdd-guard/src/contracts/schemas/guardSchemas.ts +8 -0
  209. package/project-skills/tdd-guard/src/contracts/schemas/lintSchemas.test.ts +347 -0
  210. package/project-skills/tdd-guard/src/contracts/schemas/lintSchemas.ts +61 -0
  211. package/project-skills/tdd-guard/src/contracts/schemas/pytestSchemas.test.ts +24 -0
  212. package/project-skills/tdd-guard/src/contracts/schemas/pytestSchemas.ts +7 -0
  213. package/project-skills/tdd-guard/src/contracts/schemas/reporterSchemas.test.ts +377 -0
  214. package/project-skills/tdd-guard/src/contracts/schemas/reporterSchemas.ts +75 -0
  215. package/project-skills/tdd-guard/src/contracts/schemas/toolSchemas.test.ts +563 -0
  216. package/project-skills/tdd-guard/src/contracts/schemas/toolSchemas.ts +140 -0
  217. package/project-skills/tdd-guard/src/contracts/types/ClientType.ts +1 -0
  218. package/project-skills/tdd-guard/src/contracts/types/ConfigOptions.ts +12 -0
  219. package/project-skills/tdd-guard/src/contracts/types/Context.ts +16 -0
  220. package/project-skills/tdd-guard/src/contracts/types/ModelClient.ts +3 -0
  221. package/project-skills/tdd-guard/src/contracts/types/ValidationResult.ts +6 -0
  222. package/project-skills/tdd-guard/src/guard/GuardManager.test.ts +336 -0
  223. package/project-skills/tdd-guard/src/guard/GuardManager.ts +83 -0
  224. package/project-skills/tdd-guard/src/hooks/HookEvents.test.ts +107 -0
  225. package/project-skills/tdd-guard/src/hooks/HookEvents.ts +39 -0
  226. package/project-skills/tdd-guard/src/hooks/fileTypeDetection.ts +16 -0
  227. package/project-skills/tdd-guard/src/hooks/postToolLint.test.ts +327 -0
  228. package/project-skills/tdd-guard/src/hooks/postToolLint.ts +165 -0
  229. package/project-skills/tdd-guard/src/hooks/processHookData.test.ts +465 -0
  230. package/project-skills/tdd-guard/src/hooks/processHookData.ts +203 -0
  231. package/project-skills/tdd-guard/src/hooks/sessionHandler.test.ts +136 -0
  232. package/project-skills/tdd-guard/src/hooks/sessionHandler.ts +31 -0
  233. package/project-skills/tdd-guard/src/hooks/userPromptHandler.test.ts +131 -0
  234. package/project-skills/tdd-guard/src/hooks/userPromptHandler.ts +55 -0
  235. package/project-skills/tdd-guard/src/index.ts +19 -0
  236. package/project-skills/tdd-guard/src/linters/Linter.ts +5 -0
  237. package/project-skills/tdd-guard/src/linters/eslint/ESLint.test.ts +183 -0
  238. package/project-skills/tdd-guard/src/linters/eslint/ESLint.ts +82 -0
  239. package/project-skills/tdd-guard/src/linters/golangci/GolangciLint.test.ts +170 -0
  240. package/project-skills/tdd-guard/src/linters/golangci/GolangciLint.ts +148 -0
  241. package/project-skills/tdd-guard/src/processors/index.ts +1 -0
  242. package/project-skills/tdd-guard/src/processors/lintProcessor.ts +77 -0
  243. package/project-skills/tdd-guard/src/processors/testResults/TestResultsProcessor.test.ts +303 -0
  244. package/project-skills/tdd-guard/src/processors/testResults/TestResultsProcessor.ts +255 -0
  245. package/project-skills/tdd-guard/src/providers/LinterProvider.test.ts +43 -0
  246. package/project-skills/tdd-guard/src/providers/LinterProvider.ts +20 -0
  247. package/project-skills/tdd-guard/src/providers/ModelClientProvider.test.ts +68 -0
  248. package/project-skills/tdd-guard/src/providers/ModelClientProvider.ts +22 -0
  249. package/project-skills/tdd-guard/src/storage/FileStorage.test.ts +76 -0
  250. package/project-skills/tdd-guard/src/storage/FileStorage.ts +108 -0
  251. package/project-skills/tdd-guard/src/storage/MemoryStorage.ts +57 -0
  252. package/project-skills/tdd-guard/src/storage/Storage.test.ts +227 -0
  253. package/project-skills/tdd-guard/src/storage/Storage.ts +17 -0
  254. package/project-skills/tdd-guard/src/validation/context/context.test.ts +364 -0
  255. package/project-skills/tdd-guard/src/validation/context/context.ts +155 -0
  256. package/project-skills/tdd-guard/src/validation/models/AnthropicApi.test.ts +171 -0
  257. package/project-skills/tdd-guard/src/validation/models/AnthropicApi.ts +49 -0
  258. package/project-skills/tdd-guard/src/validation/models/ClaudeAgentSdk.test.ts +167 -0
  259. package/project-skills/tdd-guard/src/validation/models/ClaudeAgentSdk.ts +54 -0
  260. package/project-skills/tdd-guard/src/validation/models/ClaudeCli.test.ts +239 -0
  261. package/project-skills/tdd-guard/src/validation/models/ClaudeCli.ts +57 -0
  262. package/project-skills/tdd-guard/src/validation/prompts/file-types.ts +52 -0
  263. package/project-skills/tdd-guard/src/validation/prompts/operations/edit.ts +58 -0
  264. package/project-skills/tdd-guard/src/validation/prompts/operations/multi-edit.ts +54 -0
  265. package/project-skills/tdd-guard/src/validation/prompts/operations/write.ts +54 -0
  266. package/project-skills/tdd-guard/src/validation/prompts/response.ts +40 -0
  267. package/project-skills/tdd-guard/src/validation/prompts/rules.ts +51 -0
  268. package/project-skills/tdd-guard/src/validation/prompts/system-prompt.ts +10 -0
  269. package/project-skills/tdd-guard/src/validation/prompts/tools/lint-results.ts +15 -0
  270. package/project-skills/tdd-guard/src/validation/prompts/tools/test-output.ts +14 -0
  271. package/project-skills/tdd-guard/src/validation/prompts/tools/todos.ts +9 -0
  272. package/project-skills/tdd-guard/src/validation/validator.test.ts +268 -0
  273. package/project-skills/tdd-guard/src/validation/validator.ts +159 -0
  274. package/project-skills/tdd-guard/test/artifacts/go/.golangci.yml +6 -0
  275. package/project-skills/tdd-guard/test/artifacts/go/with-issues/file-with-issues.go +12 -0
  276. package/project-skills/tdd-guard/test/artifacts/go/with-issues/go.mod +3 -0
  277. package/project-skills/tdd-guard/test/artifacts/go/without-issues/file-without-issues.go +7 -0
  278. package/project-skills/tdd-guard/test/artifacts/go/without-issues/go.mod +3 -0
  279. package/project-skills/tdd-guard/test/artifacts/javascript/eslint.config.js +20 -0
  280. package/project-skills/tdd-guard/test/artifacts/javascript/file-with-issues.js +12 -0
  281. package/project-skills/tdd-guard/test/artifacts/javascript/file-without-issues.js +10 -0
  282. package/project-skills/tdd-guard/test/hooks/fileTypeDetection.test.ts +26 -0
  283. package/project-skills/tdd-guard/test/hooks/processHookData.fileType.test.ts +46 -0
  284. package/project-skills/tdd-guard/test/hooks/processHookData.python.test.ts +68 -0
  285. package/project-skills/tdd-guard/test/integration/test-context.test.ts +66 -0
  286. package/project-skills/tdd-guard/test/integration/validator.core.test.ts +96 -0
  287. package/project-skills/tdd-guard/test/integration/validator.scenarios.test.ts +497 -0
  288. package/project-skills/tdd-guard/test/utils/assertions.ts +29 -0
  289. package/project-skills/tdd-guard/test/utils/factories/contextFactory.ts +30 -0
  290. package/project-skills/tdd-guard/test/utils/factories/editFactory.ts +82 -0
  291. package/project-skills/tdd-guard/test/utils/factories/helpers.test.ts +46 -0
  292. package/project-skills/tdd-guard/test/utils/factories/helpers.ts +46 -0
  293. package/project-skills/tdd-guard/test/utils/factories/lintFactory.ts +352 -0
  294. package/project-skills/tdd-guard/test/utils/factories/modelClientProviderFactory.ts +21 -0
  295. package/project-skills/tdd-guard/test/utils/factories/multiEditFactory.ts +79 -0
  296. package/project-skills/tdd-guard/test/utils/factories/operations.ts +57 -0
  297. package/project-skills/tdd-guard/test/utils/factories/reporterFactory.ts +55 -0
  298. package/project-skills/tdd-guard/test/utils/factories/scenarios/index.ts +22 -0
  299. package/project-skills/tdd-guard/test/utils/factories/scenarios/languages/python.ts +745 -0
  300. package/project-skills/tdd-guard/test/utils/factories/scenarios/languages/typescript.ts +767 -0
  301. package/project-skills/tdd-guard/test/utils/factories/scenarios/types.ts +77 -0
  302. package/project-skills/tdd-guard/test/utils/factories/scenarios/utils.ts +15 -0
  303. package/project-skills/tdd-guard/test/utils/factories/sessionStartFactory.ts +36 -0
  304. package/project-skills/tdd-guard/test/utils/factories/testDefaults.ts +90 -0
  305. package/project-skills/tdd-guard/test/utils/factories/testResultsFactory.ts +234 -0
  306. package/project-skills/tdd-guard/test/utils/factories/todoFactory.ts +99 -0
  307. package/project-skills/tdd-guard/test/utils/factories/userPromptSubmitFactory.ts +39 -0
  308. package/project-skills/tdd-guard/test/utils/factories/writeFactory.ts +70 -0
  309. package/project-skills/tdd-guard/test/utils/index.ts +131 -0
  310. package/project-skills/tdd-guard/tsconfig.build.json +16 -0
  311. package/project-skills/tdd-guard/tsconfig.eslint.json +17 -0
  312. package/project-skills/tdd-guard/tsconfig.json +32 -0
  313. package/project-skills/tdd-guard/tsconfig.node.json +10 -0
  314. package/project-skills/tdd-guard/vitest.config.ts +85 -0
  315. package/project-skills/ts-quality-gate/.claude/hooks/hook-config.json +66 -0
  316. package/project-skills/ts-quality-gate/.claude/hooks/quality-check.cjs +1251 -0
  317. package/project-skills/ts-quality-gate/.claude/settings.json +16 -0
  318. package/project-skills/ts-quality-gate/.claude/skills/using-ts-quality-gate/SKILL.md +81 -0
  319. package/project-skills/ts-quality-gate/README.md +115 -0
  320. package/skills/README.txt +31 -0
  321. package/skills/clean-code/SKILL.md +201 -0
  322. package/skills/delegating/SKILL.md +196 -0
  323. package/skills/delegating/config.yaml +210 -0
  324. package/skills/delegating/references/orchestration-protocols.md +41 -0
  325. package/skills/docker-expert/SKILL.md +409 -0
  326. package/skills/documenting/CHANGELOG.md +23 -0
  327. package/skills/documenting/README.md +148 -0
  328. package/skills/documenting/SKILL.md +113 -0
  329. package/skills/documenting/examples/example_pattern.md +70 -0
  330. package/skills/documenting/examples/example_reference.md +70 -0
  331. package/skills/documenting/examples/example_ssot_analytics.md +64 -0
  332. package/skills/documenting/examples/example_workflow.md +141 -0
  333. package/skills/documenting/references/changelog-format.md +97 -0
  334. package/skills/documenting/references/metadata-schema.md +136 -0
  335. package/skills/documenting/references/taxonomy.md +81 -0
  336. package/skills/documenting/references/versioning-rules.md +78 -0
  337. package/skills/documenting/scripts/__pycache__/drift_detector.cpython-314.pyc +0 -0
  338. package/skills/documenting/scripts/__pycache__/orchestrator.cpython-314.pyc +0 -0
  339. package/skills/documenting/scripts/__pycache__/validate_metadata.cpython-314.pyc +0 -0
  340. package/skills/documenting/scripts/bump_version.sh +60 -0
  341. package/skills/documenting/scripts/changelog/__init__.py +0 -0
  342. package/skills/documenting/scripts/changelog/__pycache__/__init__.cpython-314.pyc +0 -0
  343. package/skills/documenting/scripts/changelog/__pycache__/add_entry.cpython-314.pyc +0 -0
  344. package/skills/documenting/scripts/changelog/__pycache__/bump_release.cpython-314.pyc +0 -0
  345. package/skills/documenting/scripts/changelog/__pycache__/validate_changelog.cpython-314.pyc +0 -0
  346. package/skills/documenting/scripts/changelog/add_entry.py +216 -0
  347. package/skills/documenting/scripts/changelog/bump_release.py +117 -0
  348. package/skills/documenting/scripts/changelog/init_changelog.py +54 -0
  349. package/skills/documenting/scripts/changelog/validate_changelog.py +128 -0
  350. package/skills/documenting/scripts/drift_detector.py +266 -0
  351. package/skills/documenting/scripts/generate_template.py +311 -0
  352. package/skills/documenting/scripts/list_by_category.sh +84 -0
  353. package/skills/documenting/scripts/orchestrator.py +255 -0
  354. package/skills/documenting/scripts/validate_metadata.py +242 -0
  355. package/skills/documenting/templates/CHANGELOG.md.template +13 -0
  356. package/skills/documenting/tests/__pycache__/test_changelog.cpython-314-pytest-9.0.2.pyc +0 -0
  357. package/skills/documenting/tests/__pycache__/test_drift_detector.cpython-314-pytest-9.0.2.pyc +0 -0
  358. package/skills/documenting/tests/__pycache__/test_orchestrator.cpython-314-pytest-9.0.2.pyc +0 -0
  359. package/skills/documenting/tests/__pycache__/test_validate_metadata.cpython-314-pytest-9.0.2.pyc +0 -0
  360. package/skills/documenting/tests/integration_test.sh +70 -0
  361. package/skills/documenting/tests/test_changelog.py +201 -0
  362. package/skills/documenting/tests/test_drift_detector.py +80 -0
  363. package/skills/documenting/tests/test_orchestrator.py +52 -0
  364. package/skills/documenting/tests/test_validate_metadata.py +64 -0
  365. package/skills/find-skills/SKILL.md +133 -0
  366. package/skills/gitnexus-debugging/SKILL.md +85 -0
  367. package/skills/gitnexus-exploring/SKILL.md +75 -0
  368. package/skills/gitnexus-impact-analysis/SKILL.md +94 -0
  369. package/skills/gitnexus-refactoring/SKILL.md +113 -0
  370. package/skills/hook-development/SKILL.md +797 -0
  371. package/skills/hook-development/examples/load-context.sh +55 -0
  372. package/skills/hook-development/examples/quality-check.js +1168 -0
  373. package/skills/hook-development/examples/validate-bash.sh +43 -0
  374. package/skills/hook-development/examples/validate-write.sh +38 -0
  375. package/skills/hook-development/references/advanced.md +527 -0
  376. package/skills/hook-development/references/migration.md +369 -0
  377. package/skills/hook-development/references/patterns.md +412 -0
  378. package/skills/hook-development/scripts/README.md +164 -0
  379. package/skills/hook-development/scripts/hook-linter.sh +153 -0
  380. package/skills/hook-development/scripts/test-hook.sh +252 -0
  381. package/skills/hook-development/scripts/validate-hook-schema.sh +159 -0
  382. package/skills/obsidian-cli/SKILL.md +106 -0
  383. package/skills/orchestrating-agents/SKILL.md +135 -0
  384. package/skills/orchestrating-agents/config.yaml +45 -0
  385. package/skills/orchestrating-agents/references/agent-context-integration.md +37 -0
  386. package/skills/orchestrating-agents/references/examples.md +45 -0
  387. package/skills/orchestrating-agents/references/handover-protocol.md +31 -0
  388. package/skills/orchestrating-agents/references/workflows.md +42 -0
  389. package/skills/orchestrating-agents/scripts/detect_neighbors.py +23 -0
  390. package/skills/prompt-improving/README.md +162 -0
  391. package/skills/prompt-improving/SKILL.md +74 -0
  392. package/skills/prompt-improving/references/analysis_commands.md +24 -0
  393. package/skills/prompt-improving/references/chain_of_thought.md +24 -0
  394. package/skills/prompt-improving/references/mcp_definitions.md +20 -0
  395. package/skills/prompt-improving/references/multishot.md +23 -0
  396. package/skills/prompt-improving/references/xml_core.md +60 -0
  397. package/skills/python-testing/SKILL.md +815 -0
  398. package/skills/senior-backend/SKILL.md +209 -0
  399. package/skills/senior-backend/references/api_design_patterns.md +103 -0
  400. package/skills/senior-backend/references/backend_security_practices.md +103 -0
  401. package/skills/senior-backend/references/database_optimization_guide.md +103 -0
  402. package/skills/senior-backend/scripts/api_load_tester.py +114 -0
  403. package/skills/senior-backend/scripts/api_scaffolder.py +114 -0
  404. package/skills/senior-backend/scripts/database_migration_tool.py +114 -0
  405. package/skills/senior-data-scientist/SKILL.md +226 -0
  406. package/skills/senior-data-scientist/references/experiment_design_frameworks.md +80 -0
  407. package/skills/senior-data-scientist/references/feature_engineering_patterns.md +80 -0
  408. package/skills/senior-data-scientist/references/statistical_methods_advanced.md +80 -0
  409. package/skills/senior-data-scientist/scripts/experiment_designer.py +100 -0
  410. package/skills/senior-data-scientist/scripts/feature_engineering_pipeline.py +100 -0
  411. package/skills/senior-data-scientist/scripts/model_evaluation_suite.py +100 -0
  412. package/skills/senior-devops/SKILL.md +209 -0
  413. package/skills/senior-devops/references/cicd_pipeline_guide.md +103 -0
  414. package/skills/senior-devops/references/deployment_strategies.md +103 -0
  415. package/skills/senior-devops/references/infrastructure_as_code.md +103 -0
  416. package/skills/senior-devops/scripts/deployment_manager.py +114 -0
  417. package/skills/senior-devops/scripts/pipeline_generator.py +114 -0
  418. package/skills/senior-devops/scripts/terraform_scaffolder.py +114 -0
  419. package/skills/senior-security/SKILL.md +209 -0
  420. package/skills/senior-security/references/cryptography_implementation.md +103 -0
  421. package/skills/senior-security/references/penetration_testing_guide.md +103 -0
  422. package/skills/senior-security/references/security_architecture_patterns.md +103 -0
  423. package/skills/senior-security/scripts/pentest_automator.py +114 -0
  424. package/skills/senior-security/scripts/security_auditor.py +114 -0
  425. package/skills/senior-security/scripts/threat_modeler.py +114 -0
  426. package/skills/skill-creator/LICENSE.txt +202 -0
  427. package/skills/skill-creator/SKILL.md +479 -0
  428. package/skills/skill-creator/agents/analyzer.md +274 -0
  429. package/skills/skill-creator/agents/comparator.md +202 -0
  430. package/skills/skill-creator/agents/grader.md +223 -0
  431. package/skills/skill-creator/assets/eval_review.html +146 -0
  432. package/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  433. package/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  434. package/skills/skill-creator/references/schemas.md +430 -0
  435. package/skills/skill-creator/scripts/__init__.py +0 -0
  436. package/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  437. package/skills/skill-creator/scripts/generate_report.py +326 -0
  438. package/skills/skill-creator/scripts/improve_description.py +248 -0
  439. package/skills/skill-creator/scripts/package_skill.py +136 -0
  440. package/skills/skill-creator/scripts/quick_validate.py +103 -0
  441. package/skills/skill-creator/scripts/run_eval.py +310 -0
  442. package/skills/skill-creator/scripts/run_loop.py +332 -0
  443. package/skills/skill-creator/scripts/utils.py +47 -0
  444. package/skills/using-TDD/SKILL.md +410 -0
  445. package/skills/using-serena-lsp/README.md +8 -0
  446. package/skills/using-serena-lsp/REFERENCE.md +194 -0
  447. package/skills/using-serena-lsp/SKILL.md +82 -0
@@ -0,0 +1,148 @@
1
+ # Documenting Skill
2
+
3
+ Comprehensive documentation management for projects using:
4
+ - **Serena SSOT** (.serena/memories/)
5
+ - **CHANGELOG.md** (Keep a Changelog format)
6
+ - **README.md**
7
+ - **CLAUDE.md / AGENT.md**
8
+
9
+ ## Quick Start
10
+
11
+ ### Initialize Project Documentation
12
+
13
+ ```bash
14
+ # Create CHANGELOG.md
15
+ python3 scripts/changelog/init_changelog.py ./CHANGELOG.md
16
+
17
+ # Create .serena/memories directory
18
+ mkdir -p .serena/memories
19
+ ```
20
+
21
+ ### Document a Change
22
+
23
+ **Using Orchestrator (Recommended)**:
24
+
25
+ ```bash
26
+ python3 scripts/orchestrator.py . feature "Add new search feature" \
27
+ --scope=search \
28
+ --category=backend
29
+ ```
30
+
31
+ **Manual Workflow**:
32
+
33
+ 1. Update CHANGELOG:
34
+ ```bash
35
+ python3 scripts/changelog/add_entry.py CHANGELOG.md Added "New feature"
36
+ ```
37
+
38
+ 2. Create SSOT (if needed):
39
+ ```bash
40
+ python3 scripts/generate_template.py ssot .serena/memories/ssot_search_engine_2026-02-01.md \
41
+ title="Search Engine SSOT" \
42
+ scope="search-engine" \
43
+ domain="backend"
44
+ ```
45
+
46
+ 3. Update README.md and CLAUDE.md manually
47
+
48
+ 4. Validate:
49
+ ```bash
50
+ python3 scripts/changelog/validate_changelog.py CHANGELOG.md
51
+ python3 scripts/validate_metadata.py .serena/memories/ssot_*.md
52
+ ```
53
+
54
+ ### Release a Version
55
+
56
+ ```bash
57
+ # Bump CHANGELOG
58
+ python3 scripts/changelog/bump_release.py CHANGELOG.md 1.2.0
59
+
60
+ # Validate
61
+ python3 scripts/changelog/validate_changelog.py CHANGELOG.md
62
+
63
+ # Commit and tag
64
+ git add CHANGELOG.md
65
+ git commit -m "chore: release v1.2.0"
66
+ git tag -a v1.2.0 -m "Release 1.2.0"
67
+ ```
68
+
69
+ ## Scripts Reference
70
+
71
+ ### CHANGELOG Management
72
+
73
+ | Script | Purpose | Example |
74
+ |--------|---------|---------|
75
+ | `init_changelog.py` | Create new CHANGELOG.md | `init_changelog.py ./CHANGELOG.md` |
76
+ | `add_entry.py` | Add entry to [Unreleased] | `add_entry.py CHANGELOG.md Added "Feature X"` |
77
+ | `bump_release.py` | Release new version | `bump_release.py CHANGELOG.md 1.2.0` |
78
+ | `validate_changelog.py` | Validate format | `validate_changelog.py CHANGELOG.md` |
79
+
80
+ ### SSOT Management
81
+
82
+ | Script | Purpose | Example |
83
+ |--------|---------|---------|
84
+ | `generate_template.py` | Create new SSOT | `generate_template.py ssot file.md title="X"` |
85
+ | `validate_metadata.py` | Validate SSOT metadata | `validate_metadata.py file.md` |
86
+ | `bump_version.sh` | Calculate next version | `bump_version.sh 1.0.0 patch` |
87
+
88
+ ### Orchestration
89
+
90
+ | Script | Purpose | Example |
91
+ |--------|---------|---------|
92
+ | `orchestrator.py` | Coordinate all docs | `orchestrator.py . feature "X"` |
93
+
94
+ ## File Structure
95
+
96
+ ```
97
+ ~/.claude/skills/documenting/
98
+ ├── SKILL.md # Skill definition
99
+ ├── README.md # This file
100
+ ├── scripts/
101
+ │ ├── changelog/
102
+ │ │ ├── init_changelog.py # Create CHANGELOG
103
+ │ │ ├── add_entry.py # Add entries
104
+ │ │ ├── bump_release.py # Release versions
105
+ │ │ └── validate_changelog.py # Validate format
106
+ │ ├── orchestrator.py # Coordination
107
+ │ ├── generate_template.py # SSOT templates
108
+ │ ├── validate_metadata.py # SSOT validation
109
+ │ └── bump_version.sh # Version bumping
110
+ ├── templates/
111
+ │ └── CHANGELOG.md.template # CHANGELOG template
112
+ ├── references/
113
+ │ ├── metadata-schema.md # SSOT schema
114
+ │ ├── changelog-format.md # Keep a Changelog guide
115
+ │ └── taxonomy.md # SSOT taxonomy
116
+ └── tests/
117
+ ├── test_changelog.py # CHANGELOG tests
118
+ └── test_orchestrator.py # Orchestrator tests
119
+ ```
120
+
121
+ ## Change Type Guide
122
+
123
+ - **feature**: New functionality → CHANGELOG: Added
124
+ - **bugfix**: Bug fixes → CHANGELOG: Fixed
125
+ - **refactor**: Code restructuring → CHANGELOG: Changed
126
+ - **breaking**: Breaking changes → CHANGELOG: Changed (with **BREAKING** prefix)
127
+ - **docs**: Documentation → CHANGELOG: Changed
128
+ - **chore**: Maintenance → CHANGELOG: Changed
129
+
130
+ ## Validation
131
+
132
+ All scripts validate before modifying files:
133
+ - CHANGELOG: Keep a Changelog 1.0.0 format
134
+ - SSOT: Serena metadata schema
135
+ - Versions: Semantic Versioning 2.0.0
136
+
137
+ ## Testing
138
+
139
+ ```bash
140
+ # Run all tests
141
+ python -m pytest tests/
142
+
143
+ # Test specific module
144
+ python -m pytest tests/test_changelog.py -v
145
+
146
+ # Integration test
147
+ bash tests/integration_test.sh
148
+ ```
@@ -0,0 +1,113 @@
1
+ ---
2
+ name: documenting
3
+ description: >-
4
+ Maintain SSOT documentation with drift detection. Runs drift_detector.py scan
5
+ on invoke to identify stale memories. Creates/updates Serena memories with
6
+ auto-generated INDEX blocks. MUST be suggested after any feature, refactor,
7
+ or architecture change is verified complete.
8
+ gemini-command: document
9
+ gemini-prompt: |
10
+ 1. Identify the task: Create new memory, Update existing, or Validate compliance.
11
+ 2. For finalizing changes, use the orchestrator script to update CHANGELOG.md and README.md.
12
+ 3. Ensure SSOT memories are stored in .serena/memories/ with correct naming conventions.
13
+ 4. Validate YAML frontmatter metadata before completing the task.
14
+ version: 2.0.0
15
+ ---
16
+
17
+ # Documenting Skill
18
+
19
+ This skill provides workflows and tools for maintaining the Serena Single Source of Truth (SSOT) documentation system/memories.
20
+
21
+ ## 🚨 AGENT GUIDANCE: When to Suggest This Skill
22
+
23
+ **MANDATORY: Suggest or Use this skill in the following scenarios:**
24
+
25
+ ### ✅ Explicit Triggers:
26
+ - User asks to "document this", "create memory", "update ssot".
27
+ - User asks to "validate documentation", "check metadata".
28
+ - User asks to "list memories", "show patterns".
29
+ - User asks to "bump version" of a document.
30
+
31
+ ### 🤖 Autonomous Triggers (End of Task):
32
+ - **Condition**: A task (feature, refactor, bugfix) is **completed** and **verified** (tests passed).
33
+ - **Action**: The agent MUST check if SSOT documentation needs creation or update.
34
+ - **Guideline**: "Is this a new component? Update `_ssot`. Is this a new pattern? Create `_pattern`. Did I change architecture? Update `_ssot`."
35
+
36
+ ### 📋 Detection Pattern:
37
+ ```javascript
38
+ const shouldDocument =
39
+ /(document|ssot|memory|metadata|changelog|bump version)/i.test(userMessage) ||
40
+ (taskCompleted && (newFeature || refactor || architectureChange));
41
+ ```
42
+
43
+ ---
44
+
45
+ ## Core Capabilities
46
+
47
+ 1. **Create Memories**: Generate new SSOT documents with correct metadata and structure.
48
+ 2. **Update Memories**: Bump versions and maintain changelogs.
49
+ 3. **Validate Compliance**: Ensure files follow naming conventions and metadata schemas.
50
+ 4. **Navigate**: List and find memories by category.
51
+
52
+ ## Workflows
53
+
54
+ **🚨 MANDATORY FIRST STEP FOR ALL WORKFLOWS:**
55
+
56
+ Before using ANY Serena tools, activate the project:
57
+
58
+ ```javascript
59
+ mcp__plugin_serena_serena__activate_project({ project: "/path/to/current/working/directory" })
60
+ ```
61
+
62
+ ---
63
+
64
+ ### Step 1: Detect drift
65
+
66
+ ```bash
67
+ python3 "$HOME/.claude/skills/documenting/scripts/drift_detector.py" scan
68
+ ```
69
+
70
+ Review the output. If nothing is stale and no explicit documentation request was made → confirm to user and stop.
71
+
72
+ ### Step 2: Decide action
73
+
74
+ | Situation | Action |
75
+ |---|---|
76
+ | New feature shipped | Create new SSOT memory OR update existing |
77
+ | Refactor / architecture change | Update relevant SSOT, bump minor version |
78
+ | Bug fix only | CHANGELOG entry only (skip memory update unless behaviour changed) |
79
+ | SKILL.md drift flagged | Update skill + run `validate_metadata.py` on it |
80
+
81
+ ### Step 3: Create or update memory
82
+
83
+ **Creating a new memory:**
84
+ ```bash
85
+ python3 "$HOME/.claude/skills/documenting/scripts/generate_template.py" \
86
+ ssot <name>_ssot.md title="..." domain="..." subcategory="..."
87
+ ```
88
+ Fill `[PENDING]` placeholders. Add `tracks:` globs pointing to the files this memory documents.
89
+
90
+ **Updating an existing memory:**
91
+ 1. Read the `<!-- INDEX -->` block only — identify which sections need updating
92
+ 2. Use `search_for_pattern` to jump directly to stale sections (avoids reading the full file)
93
+ 3. Bump `version:` (patch = content fix, minor = new section, major = full rewrite)
94
+ 4. Update `updated:` timestamp to today
95
+
96
+ ### Step 4: Regenerate INDEX
97
+
98
+ ```bash
99
+ python3 "$HOME/.claude/skills/documenting/scripts/validate_metadata.py" <memory-file>
100
+ ```
101
+
102
+ This regenerates the `<!-- INDEX -->` block automatically from the current `##` headings.
103
+
104
+ ### Step 5: Update CHANGELOG
105
+
106
+ ```bash
107
+ python3 "$HOME/.claude/skills/documenting/scripts/changelog/add_entry.py" \
108
+ <changelog_file> <type> "<summary>"
109
+ ```
110
+
111
+ > `<changelog_file>`: path to target CHANGELOG.md (e.g. `CHANGELOG.md` or `.serena/memories/CHANGELOG.md`)
112
+
113
+ Types: `Added`, `Changed`, `Fixed`, `Removed`.
@@ -0,0 +1,70 @@
1
+ ---
2
+ title: Circuit Breaker Pattern
3
+ version: 1.1.0
4
+ updated: 2026-01-20T10:00:00Z
5
+ scope: pattern-circuit-breaker
6
+ category: pattern
7
+ subcategory: reliability
8
+ domain: [infra, reliability, resiliency]
9
+ changelog:
10
+ - 1.1.0 (2026-01-20): Added exponential backoff configuration.
11
+ - 1.0.0 (2025-12-01): Initial pattern definition.
12
+ ---
13
+
14
+ ## Purpose
15
+ Standardize the implementation of the Circuit Breaker pattern to prevent cascading failures when external services are unavailable.
16
+
17
+ ## Pattern Description
18
+ Wrap calls to external services (CME API, Database, Redis) in a circuit breaker that tracks failure rates. When failures exceed a threshold, the breaker "trips" (opens) and immediately fails subsequent calls for a cooldown period, allowing the downstream system to recover.
19
+
20
+ ## When to Apply
21
+ - Any HTTP call to external APIs
22
+ - Database connections
23
+ - RPC calls between internal microservices
24
+
25
+ ## Implementation
26
+
27
+ ### Standard Configuration
28
+ We use `pybreaker` or the internal `ResiliencyClient` wrapper.
29
+
30
+ **Default Thresholds:**
31
+ - `fail_max`: 5 failures
32
+ - `reset_timeout`: 60 seconds
33
+
34
+ ### Example
35
+
36
+ ```python
37
+ import pybreaker
38
+ from mercury.core.resiliency import circuit_breaker
39
+
40
+ # Define breaker
41
+ api_breaker = pybreaker.CircuitBreaker(
42
+ fail_max=5,
43
+ reset_timeout=60
44
+ )
45
+
46
+ @api_breaker
47
+ def call_external_api():
48
+ # ... implementation ...
49
+ pass
50
+
51
+ # Or using our wrapper
52
+ @circuit_breaker(service="market_data")
53
+ def fetch_quotes():
54
+ pass
55
+ ```
56
+
57
+ ## Trade-offs
58
+
59
+ ### Benefits
60
+ - Prevents resource exhaustion (thread pools, connections)
61
+ - Fails fast, improving user experience during outages
62
+ - Allows self-healing of downstream systems
63
+
64
+ ### Costs
65
+ - Adds complexity to testing (need to mock failures)
66
+ - Can mask intermittent network blips if calibrated too sensitively
67
+
68
+ ## Related Patterns
69
+ - `pattern_retry_logic_2025-11.md` - Use Retries with Circuit Breaker, not instead of.
70
+ - `pattern_bulkhead_2025-12.md` - Isolating failure domains.
@@ -0,0 +1,70 @@
1
+ ---
2
+ title: Database Query Patterns Reference
3
+ scope: reference-db-queries
4
+ category: reference
5
+ subcategory: database
6
+ domain: [data, sql, performance]
7
+ ---
8
+
9
+ ## Purpose
10
+ Reference guide for standard SQL query patterns used in the Mercury project to ensure performance and maintainability.
11
+
12
+ ## Naming Conventions
13
+
14
+ | Object Type | Convention | Example |
15
+ |-------------|------------|---------|
16
+ | Table | `snake_case`, plural | `market_orders` |
17
+ | Column | `snake_case` | `created_at` |
18
+ | Primary Key | `id` | `id` |
19
+ | Foreign Key | `[table_singular]_id` | `user_id` |
20
+ | Index | `idx_[table]_[columns]` | `idx_orders_user_id` |
21
+
22
+ ## Standard Queries
23
+
24
+ ### Time-Series Selection
25
+ Efficiently selecting time-series data using the timescaleDB hypertables.
26
+
27
+ ```sql
28
+ -- GOOD: Uses partition key (time)
29
+ SELECT * FROM ticks
30
+ WHERE symbol = 'ES'
31
+ AND time >= NOW() - INTERVAL '1 hour'
32
+ ORDER BY time DESC;
33
+
34
+ -- BAD: Missing time constraint (scans all partitions)
35
+ SELECT * FROM ticks
36
+ WHERE symbol = 'ES'
37
+ ORDER BY time DESC;
38
+ ```
39
+
40
+ ### Pagination
41
+ Keyset pagination is preferred over OFFSET/LIMIT for large datasets.
42
+
43
+ ```sql
44
+ -- GOOD: Keyset pagination
45
+ SELECT * FROM orders
46
+ WHERE id < :last_seen_id
47
+ ORDER BY id DESC
48
+ LIMIT 50;
49
+
50
+ -- BAD: Offset pagination
51
+ SELECT * FROM orders
52
+ ORDER BY id DESC
53
+ LIMIT 50 OFFSET 10000;
54
+ ```
55
+
56
+ ### Upsert Pattern
57
+ Standard pattern for inserting or updating records.
58
+
59
+ ```sql
60
+ INSERT INTO volatility_surfaces (expiry, strike, vol, updated_at)
61
+ VALUES (:expiry, :strike, :vol, NOW())
62
+ ON CONFLICT (expiry, strike)
63
+ DO UPDATE SET
64
+ vol = EXCLUDED.vol,
65
+ updated_at = NOW();
66
+ ```
67
+
68
+ ## Additional Resources
69
+ - [PostgreSQL Documentation](https://www.postgresql.org/docs/)
70
+ - [TimescaleDB Best Practices](https://docs.timescale.com/)
@@ -0,0 +1,64 @@
1
+ ---
2
+ title: Analytics Volatility SSOT
3
+ version: 1.0.0
4
+ updated: 2026-01-20T12:00:00Z
5
+ scope: analytics-volatility
6
+ category: ssot
7
+ subcategory: volatility
8
+ domain: [analytics, options, math]
9
+ applicability: core-pricing-engine
10
+ changelog:
11
+ - 1.0.0 (2026-01-20): Initial baseline creation.
12
+ ---
13
+
14
+ ## Purpose
15
+ Define the Single Source of Truth for the Volatility Analytics component, including surface construction, interpolation methods, and smile dynamics.
16
+
17
+ ## Overview
18
+ The Volatility component is responsible for constructing implied volatility surfaces from market data (CME options) and providing interpolation services for the pricing engine.
19
+
20
+ ## Architecture
21
+
22
+ ### Data Flow
23
+ 1. **Ingestion**: Raw option ticks -> `ingestion_tick`
24
+ 2. **Processing**: Strike alignment and filtering -> `VolatilityProcessor`
25
+ 3. **Construction**: Spline fitting -> `SurfaceBuilder`
26
+ 4. **Storage**: Coefficients stored in Postgres -> `volatility_surfaces` table
27
+
28
+ ### Key Classes
29
+ - `VolatilitySurface`: Main interface for querying vol at (expiry, strike)
30
+ - `SABRModel`: Implementation of the SABR stochastic volatility model
31
+ - `CubicSplineInterpolator`: Fallback interpolation method
32
+
33
+ ## Current State
34
+
35
+ ### What Works
36
+ - Real-time surface updates for major expirations (Quarterly)
37
+ - SABR calibration for liquid strikes
38
+ - Persistence to database
39
+
40
+ ### Known Limitations
41
+ - Weekly options often have insufficient liquidity for stable calibration
42
+ - Wings (deep OTM) extrapolation can be unstable in high vol environments
43
+ - No support for negative strikes (required for some rates products)
44
+
45
+ ## Configuration
46
+
47
+ ### Environment Variables
48
+ ```bash
49
+ VOL_SURFACE_UPDATE_FREQ=60 # seconds
50
+ VOL_MODEL_TYPE=sabr # or 'spline'
51
+ ```
52
+
53
+ ## Related SSOTs
54
+ - `ssot_data_ingestion_tick_2026-01-14.md` - Upstream data source
55
+ - `ssot_analytics_pricing_2025-12-10.md` - Downstream consumer
56
+
57
+ ## Next Steps
58
+ - [ ] Implement wing dampening for deep OTM strikes
59
+ - [ ] Add support for negative strikes (Shifted Lognormal)
60
+ - [ ] Optimize recalibration trigger to ignore noise
61
+
62
+ ## References
63
+ - [Hagan et al. (2002) Managing Smile Risk](https://link-to-paper)
64
+ - `reference_volatility_math.md` (Internal Math Spec)
@@ -0,0 +1,141 @@
1
+ # Example Workflow: Documenting a New Feature
2
+
3
+ This example shows the complete workflow for documenting a new feature in a project.
4
+
5
+ ## Scenario
6
+
7
+ You've just completed a new "semantic search" feature for your project:
8
+ - Added new API endpoint `/api/search`
9
+ - Implemented vector search with ChromaDB
10
+ - Added new configuration options
11
+ - Created comprehensive tests
12
+
13
+ ## Step 1: Document with Orchestrator
14
+
15
+ ```bash
16
+ cd ~/projects/my-project
17
+
18
+ python3 ~/.claude/skills/documenting/scripts/orchestrator.py . feature
19
+ "Semantic search with vector embeddings"
20
+ --scope=search
21
+ --category=backend
22
+ ```
23
+
24
+ **Output:**
25
+ ```
26
+ 📝 Documentation Update Results
27
+ ============================================================
28
+ ✅ CHANGELOG.md updated
29
+
30
+ 💡 README.md suggestions:
31
+ - Consider adding to ## Features section: Semantic search with vector embeddings
32
+ - Update ## Usage section with new example
33
+
34
+ 💡 CLAUDE.md suggestions:
35
+ - Review ## Architecture section for: Semantic search with vector embeddings
36
+
37
+ ✅ All documentation validated
38
+ ```
39
+
40
+ ## Step 2: Review CHANGELOG
41
+
42
+ ```bash
43
+ grep -A 10 "\[Unreleased\]" CHANGELOG.md
44
+ ```
45
+
46
+ **Output:**
47
+ ```markdown
48
+ ## [Unreleased]
49
+
50
+ ### Added
51
+ - Semantic search with vector embeddings
52
+ ```
53
+
54
+ ## Step 3: Update README.md
55
+
56
+ Based on orchestrator suggestions, update README:
57
+
58
+ ```markdown
59
+ ## Features
60
+
61
+ - **Semantic Search**: Natural language search using vector embeddings
62
+ - Powered by OpenAI embeddings and ChromaDB
63
+ - Fast approximate nearest neighbor search
64
+ - Configurable similarity threshold
65
+ ```
66
+
67
+ ```markdown
68
+ ## Usage
69
+
70
+ ### Semantic Search
71
+
72
+ ```python
73
+ from search import SearchEngine
74
+
75
+ engine = SearchEngine()
76
+ results = engine.search("find documents about machine learning")
77
+
78
+ for result in results:
79
+ print(f"{result.title} (similarity: {result.score})")
80
+ ```
81
+ ```
82
+
83
+ ## Step 4: Update CLAUDE.md
84
+
85
+ Based on suggestions, update architecture:
86
+
87
+ ```markdown
88
+ ## Architecture
89
+
90
+ - **Search Layer**: `services/search_service.py` - Vector search implementation
91
+ - Uses ChromaDB for vector storage
92
+ - OpenAI embeddings via `embedding_service`
93
+ - Configurable reranking with FlashRank
94
+ ```
95
+
96
+ ## Step 5: Create SSOT Memory
97
+
98
+ For significant architectural additions:
99
+
100
+ ```bash
101
+ python3 ~/.claude/skills/documenting/scripts/generate_template.py ssot
102
+ .serena/memories/ssot_search_semantic_2026-02-01.md
103
+ title="Semantic Search SSOT"
104
+ scope="search-semantic"
105
+ subcategory="search"
106
+ domain="backend,ml"
107
+ ```
108
+
109
+ Edit the generated file to document:
110
+ - Search algorithm design
111
+ - Vector storage architecture
112
+ - Embedding strategy
113
+ - Performance characteristics
114
+
115
+ ## Step 6: Validate Everything
116
+
117
+ ```bash
118
+ # Validate CHANGELOG
119
+ python3 ~/.claude/skills/documenting/scripts/changelog/validate_changelog.py CHANGELOG.md
120
+
121
+ # Validate SSOT
122
+ python3 ~/.claude/skills/documenting/scripts/validate_metadata.py
123
+ .serena/memories/ssot_search_semantic_2026-02-01.md
124
+
125
+ # Or use orchestrator validation
126
+ python3 ~/.claude/skills/documenting/scripts/orchestrator.py . validate
127
+ ```
128
+
129
+ ## Step 7: Commit
130
+
131
+ ```bash
132
+ git add
133
+ CHANGELOG.md
134
+ README.md
135
+ CLAUDE.md
136
+ .serena/memories/ssot_search_semantic_2026-02-01.md
137
+
138
+ git commit -m "feat(search): add semantic search with vector embeddings
139
+
140
+ - Implement vector search using ChromaDB
141
+ - Add OpenAI embedding generation
@@ -0,0 +1,97 @@
1
+ # CHANGELOG Format Reference
2
+
3
+ This project uses [Keep a Changelog 1.0.0](https://keepachangelog.com/en/1.0.0/) format.
4
+
5
+ ## Structure
6
+
7
+ ```markdown
8
+ # Changelog
9
+
10
+ All notable changes to this project will be documented in this file.
11
+
12
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
13
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
14
+
15
+ ## [Unreleased]
16
+
17
+ ### Added
18
+ - New features
19
+
20
+ ### Changed
21
+ - Changes to existing functionality
22
+
23
+ ### Deprecated
24
+ - Soon-to-be removed features
25
+
26
+ ### Removed
27
+ - Removed features
28
+
29
+ ### Fixed
30
+ - Bug fixes
31
+
32
+ ### Security
33
+ - Security fixes
34
+
35
+ ## [1.0.0] - 2026-02-01
36
+
37
+ ### Added
38
+ - Initial release
39
+ ```
40
+
41
+ ## Categories (in order)
42
+
43
+ 1. **Added** - New features
44
+ 2. **Changed** - Changes to existing functionality
45
+ 3. **Deprecated** - Soon-to-be removed features
46
+ 4. **Removed** - Removed features
47
+ 5. **Fixed** - Bug fixes
48
+ 6. **Security** - Security vulnerabilities fixed
49
+
50
+ ## Version Format
51
+
52
+ - Use [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
53
+ - Format: `[X.Y.Z] - YYYY-MM-DD`
54
+ - Example: `[1.2.3] - 2026-02-01`
55
+
56
+ ## Entry Guidelines
57
+
58
+ - Start with action verb
59
+ - Be specific and concise
60
+ - Include context if needed
61
+ - Use bullet points (-)
62
+ - Sub-bullets for details (indented)
63
+
64
+ ### Examples
65
+
66
+ **Good:**
67
+ ```markdown
68
+ ### Added
69
+ - **Universal Context**: Support for indexing multiple sources simultaneously
70
+ - Zero-Config Auto-Discovery for current project
71
+ - Context-Aware Search with source filtering
72
+ - Reranking with FlashRank (ms-marco-TinyBERT-L-2-v2 model)
73
+ ```
74
+
75
+ **Bad:**
76
+ ```markdown
77
+ ### Added
78
+ - Added stuff
79
+ - Fixed things
80
+ - Improvements
81
+ ```
82
+
83
+ ## Breaking Changes
84
+
85
+ Mark breaking changes with **BREAKING**: prefix:
86
+
87
+ ```markdown
88
+ ### Changed
89
+ - **BREAKING**: Renamed `old_function()` to `new_function()`
90
+ ```
91
+
92
+ ## Scripts
93
+
94
+ - `init_changelog.py` - Create new CHANGELOG.md
95
+ - `add_entry.py` - Add entry to [Unreleased]
96
+ - `bump_release.py` - Move [Unreleased] to version
97
+ - `validate_changelog.py` - Validate format