{ "$schema": "internal://schemas/plugin.lock.v1.json", "pluginId": "gh:tobyhede/turboshovel:plugin", "normalized": { "repo": null, "ref": "refs/tags/v20251128.0", "commit": "da86aead9768e3626e87e2ed2ea022dbed20b778", "treeHash": "965292236ebbb4de42048121ad03582e2810e70fc8354c5fcc5c207e6c45da2a", "generatedAt": "2025-11-28T10:28:42.782380Z", "toolVersion": "publish_plugins.py@0.2.0" }, "origin": { "remote": "git@github.com:zhongweili/42plugin-data.git", "branch": "master", "commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390", "repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data" }, "manifest": { "name": "turboshovel", "description": "Generic hook framework for quality enforcement and context injection", "version": "0.1.0" }, "content": { "files": [ { "path": "README.md", "sha256": "c6255e9cb290bf30acd33851dd190e9ad34a60814ece3c9087b9e8546f3c8e26" }, { "path": "hooks/ARCHITECTURE.md", "sha256": "e09830c7b1edd1757d2b768a41cb175e1a1a85787261f0c56b174ba5bb1a3c2f" }, { "path": "hooks/CONVENTIONS.md", "sha256": "94d2830c89ebaf2ed55f8d5174261cfa4d54e17a960cc19dae9bdbb68127c808" }, { "path": "hooks/INTEGRATION_TESTS.md", "sha256": "da61e645156827e97a1e96ae3d43241ce3f3e00d4cea862715ac9415e3ad7a8d" }, { "path": "hooks/SETUP.md", "sha256": "24e8af232c90c40ee6fa30e3339778fb45f78da67ca36c3eb245fc4e50c70fdd" }, { "path": "hooks/README.md", "sha256": "d11a632d3449e9adb527efc7e97bdf33dc388bbd88a8c78525f3ae6e69064c49" }, { "path": "hooks/gates.json", "sha256": "a003ff597ac2b9dbeba6dfa961f5386d299d50109827da94fecbeba6cf9d1bef" }, { "path": "hooks/TYPESCRIPT.md", "sha256": "3c2bc29054da35955d233e5a480ab80baeea4a5d8127ecf4747f4fe1f06b8f08" }, { "path": "hooks/examples/permissive.json", "sha256": "e5027216d541f1c856fe74f59d4e584668a86980782c355f24971f2b353e04b2" }, { "path": "hooks/examples/strict.json", "sha256": "6778e354d7852d883d54f10fc7f0c18a583f070cec8443517db0103c8199e3bf" }, { "path": "hooks/examples/convention-based.json", "sha256": "7f4ee1fb67909d01460e73e82f7729cdab17fd25b8c4887d620e7a4b2f079094" }, { "path": "hooks/examples/pipeline.json", "sha256": "7cd5807401adf810c07043f605cb70d61c68e65a4ab12f921dafb43b2a6aad5e" }, { "path": "hooks/examples/context/plan-start.md", "sha256": "a13f38c107003fb33349ac40d0ec43807b8fc9c7f589cd3871f7f27fc9744872" }, { "path": "hooks/examples/context/session-start.md", "sha256": "517256b048d89ff60c4f22c36728abfd4285f0021fb6b7d2f3a4d37fd75dba51" }, { "path": "hooks/examples/context/test-driven-development-start.md", "sha256": "76edff5188c5719f158127ac22468626099338c22dbf8d2b8e6231400297194c" }, { "path": "hooks/examples/context/code-review-start.md", "sha256": "2bd0cce4c7c4b9af29701fb4f8dea3e7afbb94f4319c843225f40509b93c9c71" }, { "path": "hooks/hooks-app/jest.config.js", "sha256": "7788a77d96f31a8d9a1648b2349c7399455e3d279ab2cca5cfc0131793e109f5" }, { "path": "hooks/hooks-app/tsconfig.eslint.json", "sha256": "6331f56f9a370236296fdae421a64ea1744d6c95428efbf1bdcbd6f438c5a5a8" }, { "path": "hooks/hooks-app/package.json", "sha256": "dcdd10b3986dff8998fd23dfe5153dc6053ee26815adc253f4162a694f74a33c" }, { "path": "hooks/hooks-app/.prettierrc", "sha256": "a2ec035f969e1742e6a241775ad5b63e68cf4608335f1b32bf37eb140b6eb0a8" }, { "path": "hooks/hooks-app/.eslintrc.js", "sha256": "049ca579e9028c7d420a149e0677df8dd9bbf048f4eb6e475b9612ea34904644" }, { "path": "hooks/hooks-app/tsconfig.json", "sha256": "5a0dd5aef5955de4523df8c7e95524ca85128f672840aae48c40f150d70f8ddb" }, { "path": "hooks/hooks-app/__tests__/plugin-gates.integration.test.ts", "sha256": "27dfd1c40c18a7a2281d3a4ee4be018a1a3fb84053ff07d3e5374a4c39176866" }, { "path": "hooks/hooks-app/__tests__/dispatcher.test.ts", "sha256": "0929a4439c9a5c1bf66e4df57c88d967b1d5443ab49823bc8e2b3805853e80c5" }, { "path": "hooks/hooks-app/__tests__/builtin-gates.test.ts", "sha256": "8d9cf53f2e08bab86332ece9e4dee9133d7836bd6d8e1465bd845d6b72815109" }, { "path": "hooks/hooks-app/__tests__/types.test.ts", "sha256": "994b2d646bd698c8016fc17305f82f9169dc143994b892e71e9821c9187792f0" }, { "path": "hooks/hooks-app/__tests__/gate-loader.test.ts", "sha256": "bf3f2b4702a6b3657bb093636bd4b4c532298c6c7a9deda7bf4122cdbc70f5bf" }, { "path": "hooks/hooks-app/__tests__/action-handler.test.ts", "sha256": "fb9990a77cba016f34ad5d494c5126afa22bfbca513b1abdbb69bc2b74027ecb" }, { "path": "hooks/hooks-app/__tests__/context.test.ts", "sha256": "ddf4e57b3e49330882e686391bada819805db3b923548c8ddea2c6bdbae73537" }, { "path": "hooks/hooks-app/__tests__/cli.integration.test.ts", "sha256": "72b04d197dc2261f07f2e47ac4921e8cd437a84f14782b096aca1e9a1975e936" }, { "path": "hooks/hooks-app/__tests__/session.test.ts", "sha256": "0bfd34ce5ca28cf9a24b09e900b7c7d96b492dd1da5e5c0e2a6e8602cea33ef1" }, { "path": "hooks/hooks-app/__tests__/config.test.ts", "sha256": "b53824b2f96aa3e604433cea40399773b6d4c5c7ac63c13e97f2a61b13492fae" }, { "path": "hooks/hooks-app/__tests__/integration.test.ts", "sha256": "8a40d74e87195b1d31052eb14cfe01d045363feea3269ed092bef02fc155d810" }, { "path": "hooks/hooks-app/src/action-handler.ts", "sha256": "7d949c57c1cd016c6bc8b484c6f115925485a8acf9821b7545e3fc202110e8a1" }, { "path": "hooks/hooks-app/src/cli.ts", "sha256": "dd63c9777e895d5cae986fe10dffbb3e35c5834a12f32ac37fc1802198225b40" }, { "path": "hooks/hooks-app/src/context.ts", "sha256": "49cae73ee3e05ef90046ebe719495bf462ff4ba2447c6d16a29b7eab8f47f771" }, { "path": "hooks/hooks-app/src/utils.ts", "sha256": "bd9c6d2e11d5f2cf79acc72d28b17400e7b3660f5e6d59ce61f0866d18eec1f7" }, { "path": "hooks/hooks-app/src/types.ts", "sha256": "2c41ac25ab946019625ad3106c45e34275f9aa23af04c9992a206fec1a2b1402" }, { "path": "hooks/hooks-app/src/logger.ts", "sha256": "1e3567d9671e1bba8445b9453145634eab7574169c95a58522f1f6888add1758" }, { "path": "hooks/hooks-app/src/session.ts", "sha256": "97be7103eb58e6bc45573c2ead0a0ce114e5e55273c57027eefdad378f7446df" }, { "path": "hooks/hooks-app/src/index.ts", "sha256": "6a2f85a9a486ef1288f4ca6fbb99c4d02ce0bc299e9a05ac29738c2bd5f64c0e" }, { "path": "hooks/hooks-app/src/config.ts", "sha256": "a851bfd22d9832c13a92773f9b45d93fb08a3e78692ad72139433b5cb0b8def9" }, { "path": "hooks/hooks-app/src/gate-loader.ts", "sha256": "c36c0bcd533757db258b1f40330e474efeba6e34fc4099afea4129cd58194549" }, { "path": "hooks/hooks-app/src/dispatcher.ts", "sha256": "2a69f44739162a864d5b72d2c6c0a73a24a4bdfbaf230f65adf628a3b7b41cde" }, { "path": "hooks/hooks-app/src/gates/plugin-path.ts", "sha256": "2de489fea3d2bdaf1fd0fe88ca6eb1a3bdc171bda9ffaa38d806ac660f3dcf04" }, { "path": "hooks/hooks-app/src/gates/index.ts", "sha256": "a8aad1ec888afbc7b040ee2fab2402a0776d793030af147aa2f7c86a81f77b1d" }, { "path": ".claude-plugin/plugin.json", "sha256": "c68b234bbc4779553f31ce1a20e4d0688dab9978b26f59a2ced253d6d33b983b" }, { "path": "commands/test.md", "sha256": "ec9d08efcff4977d3f4da6147b58d6356d49f680cd5c018baf2216eac8c3b701" } ], "dirSha256": "965292236ebbb4de42048121ad03582e2810e70fc8354c5fcc5c207e6c45da2a" }, "security": { "scannedAt": null, "scannerVersion": null, "flags": [] } }