claude-code-superkit 0.0.0-stage → 1.5.3

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 (353) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +374 -2
  3. package/bin/cli.js +153 -0
  4. package/bin/inject-tokens.js +224 -0
  5. package/bin/measure-tokens.js +17 -0
  6. package/bin/superkit-counts-verify.sh +30 -0
  7. package/lib/codex.js +246 -0
  8. package/lib/docs-scaffold.js +147 -0
  9. package/lib/installer.js +499 -0
  10. package/lib/prompts.js +51 -0
  11. package/lib/settings-builder.js +51 -0
  12. package/lib/superpowers.js +99 -0
  13. package/lib/utils.js +117 -0
  14. package/lib/validator.js +84 -0
  15. package/package.json +49 -4
  16. package/packages/codex/AGENTS.md +396 -0
  17. package/packages/codex/INSTALL.md +342 -0
  18. package/packages/codex/config.toml +22 -0
  19. package/packages/codex/hooks/superkit.mjs +203 -0
  20. package/packages/codex/hooks.json +30 -0
  21. package/packages/codex/legacy-baseline.json +88 -0
  22. package/packages/codex/native-skills.txt +65 -0
  23. package/packages/codex/rules/default.rules +565 -0
  24. package/packages/codex/skills/ai-slop-cleaner/SKILL.md +44 -0
  25. package/packages/codex/skills/api-contract-sync/SKILL.md +96 -0
  26. package/packages/codex/skills/architect/SKILL.md +49 -0
  27. package/packages/codex/skills/audit-backend/SKILL.md +80 -0
  28. package/packages/codex/skills/audit-frontend/SKILL.md +82 -0
  29. package/packages/codex/skills/audit-infra/SKILL.md +87 -0
  30. package/packages/codex/skills/audit-orchestrator/SKILL.md +114 -0
  31. package/packages/codex/skills/behavioral-nudge-engine/SKILL.md +110 -0
  32. package/packages/codex/skills/benchmark/SKILL.md +49 -0
  33. package/packages/codex/skills/bot-reviewer/SKILL.md +94 -0
  34. package/packages/codex/skills/code-reviewer/SKILL.md +67 -0
  35. package/packages/codex/skills/codebase-onboarding-engineer/SKILL.md +46 -0
  36. package/packages/codex/skills/comment-rot-analyzer/SKILL.md +75 -0
  37. package/packages/codex/skills/commit-helper/SKILL.md +101 -0
  38. package/packages/codex/skills/critic/SKILL.md +56 -0
  39. package/packages/codex/skills/database-reviewer/SKILL.md +79 -0
  40. package/packages/codex/skills/debug-observer/SKILL.md +107 -0
  41. package/packages/codex/skills/dependency-checker/SKILL.md +69 -0
  42. package/packages/codex/skills/design-system-reviewer/SKILL.md +121 -0
  43. package/packages/codex/skills/dev-orchestrator/SKILL.md +304 -0
  44. package/packages/codex/skills/docs-reviewer/SKILL.md +86 -0
  45. package/packages/codex/skills/drizzle-orm-expert/SKILL.md +246 -0
  46. package/packages/codex/skills/e2e-test-generator/SKILL.md +95 -0
  47. package/packages/codex/skills/evaluator/SKILL.md +63 -0
  48. package/packages/codex/skills/frontend-perf-reviewer/SKILL.md +95 -0
  49. package/packages/codex/skills/frontend-ui-color-reviewer/SKILL.md +68 -0
  50. package/packages/codex/skills/frontend-ui-design-critic/SKILL.md +99 -0
  51. package/packages/codex/skills/frontend-ui-interaction-reviewer/SKILL.md +102 -0
  52. package/packages/codex/skills/frontend-ui-motion-reviewer/SKILL.md +85 -0
  53. package/packages/codex/skills/frontend-ui-reviewer/SKILL.md +81 -0
  54. package/packages/codex/skills/frontend-ui-typography-reviewer/SKILL.md +62 -0
  55. package/packages/codex/skills/gltf-debugging/SKILL.md +128 -0
  56. package/packages/codex/skills/go-benchmark/SKILL.md +217 -0
  57. package/packages/codex/skills/go-concurrency-reviewer/SKILL.md +113 -0
  58. package/packages/codex/skills/go-error-reviewer/SKILL.md +107 -0
  59. package/packages/codex/skills/go-grpc-patterns/SKILL.md +285 -0
  60. package/packages/codex/skills/go-modernizer/SKILL.md +111 -0
  61. package/packages/codex/skills/go-observability-reviewer/SKILL.md +121 -0
  62. package/packages/codex/skills/go-performance-reviewer/SKILL.md +112 -0
  63. package/packages/codex/skills/go-reviewer/SKILL.md +109 -0
  64. package/packages/codex/skills/go-samber-do/SKILL.md +158 -0
  65. package/packages/codex/skills/go-samber-lo/SKILL.md +178 -0
  66. package/packages/codex/skills/go-samber-oops/SKILL.md +174 -0
  67. package/packages/codex/skills/goal-verifier/SKILL.md +53 -0
  68. package/packages/codex/skills/health-checker/SKILL.md +109 -0
  69. package/packages/codex/skills/html-to-3d-texture/SKILL.md +153 -0
  70. package/packages/codex/skills/impeccable-craft/SKILL.md +101 -0
  71. package/packages/codex/skills/lint-runner/SKILL.md +85 -0
  72. package/packages/codex/skills/migrate/SKILL.md +60 -0
  73. package/packages/codex/skills/migration-reviewer/SKILL.md +88 -0
  74. package/packages/codex/skills/minimal-change-engineer/SKILL.md +44 -0
  75. package/packages/codex/skills/new-migration/SKILL.md +59 -0
  76. package/packages/codex/skills/nextjs-supabase-auth/SKILL.md +227 -0
  77. package/packages/codex/skills/output-enforcement/SKILL.md +71 -0
  78. package/packages/codex/skills/plan-checker/SKILL.md +53 -0
  79. package/packages/codex/skills/postgresql-optimization/SKILL.md +159 -0
  80. package/packages/codex/skills/pre-deploy-validator/SKILL.md +111 -0
  81. package/packages/codex/skills/presentation-reviewer/SKILL.md +88 -0
  82. package/packages/codex/skills/product-3d-lighting/SKILL.md +137 -0
  83. package/packages/codex/skills/project-architecture/SKILL.md +52 -0
  84. package/packages/codex/skills/py-reviewer/SKILL.md +100 -0
  85. package/packages/codex/skills/r3f-scene-reviewer/SKILL.md +88 -0
  86. package/packages/codex/skills/r3f-scroll-driven-3d/SKILL.md +162 -0
  87. package/packages/codex/skills/reality-checker/SKILL.md +61 -0
  88. package/packages/codex/skills/redis-patterns/SKILL.md +260 -0
  89. package/packages/codex/skills/review-orchestrator/SKILL.md +151 -0
  90. package/packages/codex/skills/rs-reviewer/SKILL.md +98 -0
  91. package/packages/codex/skills/ru-text/SKILL.md +132 -0
  92. package/packages/codex/skills/scaffold-endpoint/SKILL.md +44 -0
  93. package/packages/codex/skills/security-scanner/SKILL.md +94 -0
  94. package/packages/codex/skills/silent-failure-hunter/SKILL.md +176 -0
  95. package/packages/codex/skills/telegram-bot-builder/SKILL.md +120 -0
  96. package/packages/codex/skills/test-generator/SKILL.md +79 -0
  97. package/packages/codex/skills/test-runner/SKILL.md +101 -0
  98. package/packages/codex/skills/threejs-color-management/SKILL.md +97 -0
  99. package/packages/codex/skills/tree-generator/SKILL.md +63 -0
  100. package/packages/codex/skills/ts-reviewer/SKILL.md +90 -0
  101. package/packages/codex/skills/ui-design-reviewer/SKILL.md +89 -0
  102. package/packages/codex/skills/ui-reviewer/SKILL.md +103 -0
  103. package/packages/codex/skills/visual-reviewer/SKILL.md +85 -0
  104. package/packages/codex/skills/writing-agents/SKILL.md +165 -0
  105. package/packages/codex/skills/writing-commands/SKILL.md +173 -0
  106. package/packages/core/CLAUDE.md +118 -0
  107. package/packages/core/INTERNAL-FILES +16 -0
  108. package/packages/core/agents/ai-slop-cleaner.md +187 -0
  109. package/packages/core/agents/api-contract-sync.md +127 -0
  110. package/packages/core/agents/architect.md +205 -0
  111. package/packages/core/agents/audit-backend.md +137 -0
  112. package/packages/core/agents/audit-frontend.md +129 -0
  113. package/packages/core/agents/audit-infra.md +182 -0
  114. package/packages/core/agents/behavioral-nudge-engine.md +170 -0
  115. package/packages/core/agents/code-reviewer.md +195 -0
  116. package/packages/core/agents/codebase-onboarding-engineer.md +172 -0
  117. package/packages/core/agents/comment-rot-analyzer.md +115 -0
  118. package/packages/core/agents/critic.md +172 -0
  119. package/packages/core/agents/database-reviewer.md +201 -0
  120. package/packages/core/agents/debug-observer.md +261 -0
  121. package/packages/core/agents/dependency-checker.md +199 -0
  122. package/packages/core/agents/docs-reviewer.md +206 -0
  123. package/packages/core/agents/e2e-test-generator.md +261 -0
  124. package/packages/core/agents/evaluator.md +141 -0
  125. package/packages/core/agents/goal-verifier.md +130 -0
  126. package/packages/core/agents/health-checker.md +194 -0
  127. package/packages/core/agents/migration-reviewer.md +161 -0
  128. package/packages/core/agents/minimal-change-engineer.md +219 -0
  129. package/packages/core/agents/plan-checker.md +139 -0
  130. package/packages/core/agents/pre-deploy-validator.md +189 -0
  131. package/packages/core/agents/reality-checker.md +175 -0
  132. package/packages/core/agents/scaffold-endpoint.md +162 -0
  133. package/packages/core/agents/security-scanner.md +236 -0
  134. package/packages/core/agents/silent-failure-hunter.md +276 -0
  135. package/packages/core/agents/test-generator.md +146 -0
  136. package/packages/core/agents/tree-generator.md +141 -0
  137. package/packages/core/agents/ui-reviewer.md +172 -0
  138. package/packages/core/agents/visual-reviewer.md +211 -0
  139. package/packages/core/commands/audit.md +166 -0
  140. package/packages/core/commands/benchmark.md +130 -0
  141. package/packages/core/commands/commit.md +148 -0
  142. package/packages/core/commands/dev.md +302 -0
  143. package/packages/core/commands/docs-init.md +75 -0
  144. package/packages/core/commands/lint.md +137 -0
  145. package/packages/core/commands/migrate.md +146 -0
  146. package/packages/core/commands/new-migration.md +182 -0
  147. package/packages/core/commands/pair.md +209 -0
  148. package/packages/core/commands/review.md +195 -0
  149. package/packages/core/commands/security-scan.md +142 -0
  150. package/packages/core/commands/superkit-evolve.md +231 -0
  151. package/packages/core/commands/superkit-init.md +274 -0
  152. package/packages/core/commands/test.md +108 -0
  153. package/packages/core/commands/workflow.md +150 -0
  154. package/packages/core/docs/guide/01-getting-started.md +41 -0
  155. package/packages/core/docs-templates/README.md +33 -0
  156. package/packages/core/docs-templates/adr-template.md +62 -0
  157. package/packages/core/docs-templates/architecture/api-contracts.md +26 -0
  158. package/packages/core/docs-templates/architecture/api-reference.md +48 -0
  159. package/packages/core/docs-templates/architecture/auth-and-sessions.md +38 -0
  160. package/packages/core/docs-templates/architecture/backend-layers.md +42 -0
  161. package/packages/core/docs-templates/architecture/data-flow.md +26 -0
  162. package/packages/core/docs-templates/architecture/database-schema.md +51 -0
  163. package/packages/core/docs-templates/architecture/deployment.md +41 -0
  164. package/packages/core/docs-templates/architecture/frontend-state.md +46 -0
  165. package/packages/core/helpers/statusline.cjs +370 -0
  166. package/packages/core/hooks/CHAIN-SEMANTICS.md +84 -0
  167. package/packages/core/hooks/audit-settings-source.sh +98 -0
  168. package/packages/core/hooks/audit-trail.sh +120 -0
  169. package/packages/core/hooks/block-dangerous-git.sh +189 -0
  170. package/packages/core/hooks/bundle-import-check.sh +64 -0
  171. package/packages/core/hooks/compact-state-inject.sh +84 -0
  172. package/packages/core/hooks/config-protection.sh +68 -0
  173. package/packages/core/hooks/console-log-warning.sh +28 -0
  174. package/packages/core/hooks/context-monitor.sh +35 -0
  175. package/packages/core/hooks/dev-edit-counter.sh +59 -0
  176. package/packages/core/hooks/dev-marker-set.sh +55 -0
  177. package/packages/core/hooks/dev-required-on-commit.sh +426 -0
  178. package/packages/core/hooks/doc-check-on-commit.sh +396 -0
  179. package/packages/core/hooks/edit-streak-check.sh +63 -0
  180. package/packages/core/hooks/evolve-check.sh +78 -0
  181. package/packages/core/hooks/gateguard-pre-edit.sh +154 -0
  182. package/packages/core/hooks/gateguard-record-facts.sh +37 -0
  183. package/packages/core/hooks/intake-classifier.py +449 -0
  184. package/packages/core/hooks/lib/profile.sh +141 -0
  185. package/packages/core/hooks/loop-guard.sh +75 -0
  186. package/packages/core/hooks/migration-safety.sh +56 -0
  187. package/packages/core/hooks/plan-completion-gate.sh +61 -0
  188. package/packages/core/hooks/pre-compact-save.sh +89 -0
  189. package/packages/core/hooks/security-patterns.sh +119 -0
  190. package/packages/core/hooks/session-context-restore.sh +76 -0
  191. package/packages/core/hooks/subagent-stop-validate.sh +73 -0
  192. package/packages/core/hooks/superkit-counts-verify.sh +346 -0
  193. package/packages/core/hooks/superkit-update.sh +367 -0
  194. package/packages/core/hooks/tests/README.md +42 -0
  195. package/packages/core/hooks/tests/audit-trail-chain_test.sh +62 -0
  196. package/packages/core/hooks/tests/block-dangerous-git_test.sh +144 -0
  197. package/packages/core/hooks/tests/chain-semantics/h1.sh +11 -0
  198. package/packages/core/hooks/tests/chain-semantics/h2.sh +9 -0
  199. package/packages/core/hooks/tests/chain-semantics/h3.sh +11 -0
  200. package/packages/core/hooks/tests/chain-semantics/run-experiment.sh +65 -0
  201. package/packages/core/hooks/tests/chain-semantics/settings-experiment.json +15 -0
  202. package/packages/core/hooks/tests/counts-verify_test.sh +118 -0
  203. package/packages/core/hooks/tests/dev-required-on-commit_test.sh +207 -0
  204. package/packages/core/hooks/tests/dev-required-wip-on-main_test.sh +20 -0
  205. package/packages/core/hooks/tests/doc-check-on-commit_test.sh +122 -0
  206. package/packages/core/hooks/tests/edit-streak-check_test.sh +106 -0
  207. package/packages/core/hooks/tests/internal-manifest_test.sh +130 -0
  208. package/packages/core/hooks/tests/json-path_test.sh +108 -0
  209. package/packages/core/hooks/tests/mirror-invariants_test.sh +139 -0
  210. package/packages/core/hooks/tests/nudge-throttle_test.sh +95 -0
  211. package/packages/core/hooks/tests/profile-helper_test.sh +21 -0
  212. package/packages/core/hooks/tests/run-all.sh +47 -0
  213. package/packages/core/hooks/tests/session-key-helper_test.sh +17 -0
  214. package/packages/core/hooks/tests/superkit-update_test.sh +311 -0
  215. package/packages/core/hooks/tests/warn-visibility_test.sh +59 -0
  216. package/packages/core/hooks/user-intent-detect.sh +44 -0
  217. package/packages/core/hooks/verify-hooks.sh +69 -0
  218. package/packages/core/rules/auto-commands.md +124 -0
  219. package/packages/core/rules/coding-style.md +68 -0
  220. package/packages/core/rules/dev-workflow.md +77 -0
  221. package/packages/core/rules/documentation.md +106 -0
  222. package/packages/core/rules/frontend-aesthetics.md +53 -0
  223. package/packages/core/rules/git-workflow.md +14 -0
  224. package/packages/core/rules/security.md +29 -0
  225. package/packages/core/rules/superkit-integrity.md +114 -0
  226. package/packages/core/settings.json +229 -0
  227. package/packages/core/skills/drizzle-orm-expert/SKILL.md +260 -0
  228. package/packages/core/skills/nextjs-supabase-auth/SKILL.md +259 -0
  229. package/packages/core/skills/postgresql-optimization/SKILL.md +150 -0
  230. package/packages/core/skills/project-architecture/SKILL.md +31 -0
  231. package/packages/core/skills/project-scanner/SKILL.md +132 -0
  232. package/packages/core/skills/redis-patterns/SKILL.md +261 -0
  233. package/packages/core/skills/ru-text/SKILL.md +156 -0
  234. package/packages/core/skills/telegram-bot-builder/SKILL.md +145 -0
  235. package/packages/core/skills/writing-agents/SKILL.md +220 -0
  236. package/packages/core/skills/writing-commands/SKILL.md +176 -0
  237. package/packages/core/skills/writing-hooks/SKILL.md +335 -0
  238. package/packages/extras/bot-reviewer.md +279 -0
  239. package/packages/extras/design-system-reviewer.md +234 -0
  240. package/packages/extras/red-blue-auditor/README.md +117 -0
  241. package/packages/extras/red-blue-auditor/agent.md +128 -0
  242. package/packages/extras/red-blue-auditor/patterns/agent-config.txt +4 -0
  243. package/packages/extras/red-blue-auditor/patterns/hook-injection.txt +8 -0
  244. package/packages/extras/red-blue-auditor/patterns/mcp-risk.txt +5 -0
  245. package/packages/extras/red-blue-auditor/patterns/permission-abuse.txt +6 -0
  246. package/packages/extras/red-blue-auditor/patterns/secrets.txt +17 -0
  247. package/packages/extras/red-blue-auditor/scan.sh +88 -0
  248. package/packages/extras/skillsmp-search/SKILL.md +134 -0
  249. package/packages/frontend-3d/README.md +62 -0
  250. package/packages/frontend-3d/agents/frontend-perf-reviewer.md +164 -0
  251. package/packages/frontend-3d/agents/presentation-reviewer.md +146 -0
  252. package/packages/frontend-3d/agents/r3f-scene-reviewer.md +128 -0
  253. package/packages/frontend-3d/agents/ui-design-reviewer.md +169 -0
  254. package/packages/frontend-3d/commands/capture-screen.md +166 -0
  255. package/packages/frontend-3d/hooks/bundle-size-warn.sh +93 -0
  256. package/packages/frontend-3d/hooks/gsap-pattern-check.sh +74 -0
  257. package/packages/frontend-3d/hooks/r3f-color-check.sh +76 -0
  258. package/packages/frontend-3d/hooks/tailwind-version-guard.sh +98 -0
  259. package/packages/frontend-3d/rules/frontend-aesthetics-3d.md +81 -0
  260. package/packages/frontend-3d/rules/gsap-conventions.md +129 -0
  261. package/packages/frontend-3d/rules/threejs-conventions.md +116 -0
  262. package/packages/frontend-3d/skills/gltf-debugging/SKILL.md +145 -0
  263. package/packages/frontend-3d/skills/html-to-3d-texture/SKILL.md +183 -0
  264. package/packages/frontend-3d/skills/output-enforcement/SKILL.md +79 -0
  265. package/packages/frontend-3d/skills/product-3d-lighting/SKILL.md +166 -0
  266. package/packages/frontend-3d/skills/r3f-scroll-driven-3d/SKILL.md +209 -0
  267. package/packages/frontend-3d/skills/threejs-color-management/SKILL.md +111 -0
  268. package/packages/frontend-ui/NOTICE.md +99 -0
  269. package/packages/frontend-ui/README.md +59 -0
  270. package/packages/frontend-ui/agents/ui-color-reviewer.md +174 -0
  271. package/packages/frontend-ui/agents/ui-design-critic.md +198 -0
  272. package/packages/frontend-ui/agents/ui-interaction-reviewer.md +259 -0
  273. package/packages/frontend-ui/agents/ui-motion-reviewer.md +266 -0
  274. package/packages/frontend-ui/agents/ui-reviewer.md +251 -0
  275. package/packages/frontend-ui/agents/ui-typography-reviewer.md +222 -0
  276. package/packages/frontend-ui/hooks/tests/ui-animation-easing-check_test.sh +78 -0
  277. package/packages/frontend-ui/hooks/tests/ui-banned-fonts-check_test.sh +77 -0
  278. package/packages/frontend-ui/hooks/tests/ui-color-check_test.sh +75 -0
  279. package/packages/frontend-ui/hooks/ui-animation-easing-check.sh +86 -0
  280. package/packages/frontend-ui/hooks/ui-banned-fonts-check.sh +90 -0
  281. package/packages/frontend-ui/hooks/ui-color-check.sh +102 -0
  282. package/packages/frontend-ui/rules/color-and-contrast.md +230 -0
  283. package/packages/frontend-ui/rules/frontend-design-aesthetics.md +124 -0
  284. package/packages/frontend-ui/rules/interaction-polish.md +335 -0
  285. package/packages/frontend-ui/rules/motion-and-animation.md +283 -0
  286. package/packages/frontend-ui/rules/spatial-and-layout.md +212 -0
  287. package/packages/frontend-ui/rules/typography-guidelines.md +185 -0
  288. package/packages/frontend-ui/rules/ui-anti-patterns.md +309 -0
  289. package/packages/frontend-ui/settings.json +24 -0
  290. package/packages/frontend-ui/skills/impeccable-craft/SKILL.md +187 -0
  291. package/packages/gan/README.md +232 -0
  292. package/packages/gan/agents/gan-evaluator.md +214 -0
  293. package/packages/gan/agents/gan-generator.md +171 -0
  294. package/packages/gan/agents/gan-planner.md +206 -0
  295. package/packages/gan/rubrics/functionality.md +66 -0
  296. package/packages/gan/rubrics/ui-quality.md +77 -0
  297. package/packages/gan/skills/gan-evaluator/SKILL.md +91 -0
  298. package/packages/gan/skills/gan-generator/SKILL.md +72 -0
  299. package/packages/gan/skills/gan-planner/SKILL.md +93 -0
  300. package/packages/stack-agents/go/go-concurrency-reviewer.md +210 -0
  301. package/packages/stack-agents/go/go-error-reviewer.md +187 -0
  302. package/packages/stack-agents/go/go-modernizer.md +160 -0
  303. package/packages/stack-agents/go/go-observability-reviewer.md +185 -0
  304. package/packages/stack-agents/go/go-performance-reviewer.md +160 -0
  305. package/packages/stack-agents/go/go-reviewer.md +277 -0
  306. package/packages/stack-agents/go/references/benchmark-methodology.md +280 -0
  307. package/packages/stack-agents/go/references/channel-patterns.md +384 -0
  308. package/packages/stack-agents/go/references/cli-cobra-viper.md +190 -0
  309. package/packages/stack-agents/go/references/code-style.md +262 -0
  310. package/packages/stack-agents/go/references/context-propagation.md +317 -0
  311. package/packages/stack-agents/go/references/data-structures.md +315 -0
  312. package/packages/stack-agents/go/references/database-patterns.md +334 -0
  313. package/packages/stack-agents/go/references/design-patterns.md +411 -0
  314. package/packages/stack-agents/go/references/di-frameworks.md +146 -0
  315. package/packages/stack-agents/go/references/error-creation.md +251 -0
  316. package/packages/stack-agents/go/references/error-inspection.md +348 -0
  317. package/packages/stack-agents/go/references/error-wrapping.md +230 -0
  318. package/packages/stack-agents/go/references/gopls-driving.md +62 -0
  319. package/packages/stack-agents/go/references/goroutine-lifecycle.md +351 -0
  320. package/packages/stack-agents/go/references/graphql-patterns.md +221 -0
  321. package/packages/stack-agents/go/references/grpc-patterns.md +373 -0
  322. package/packages/stack-agents/go/references/modernize-guide.md +522 -0
  323. package/packages/stack-agents/go/references/module-management.md +191 -0
  324. package/packages/stack-agents/go/references/naming-conventions.md +176 -0
  325. package/packages/stack-agents/go/references/observability-pipeline.md +352 -0
  326. package/packages/stack-agents/go/references/performance-profiling.md +250 -0
  327. package/packages/stack-agents/go/references/refactoring-mechanics.md +127 -0
  328. package/packages/stack-agents/go/references/rest-openapi-patterns.md +160 -0
  329. package/packages/stack-agents/go/references/samber-do.md +201 -0
  330. package/packages/stack-agents/go/references/samber-libraries.md +363 -0
  331. package/packages/stack-agents/go/references/samber-lo.md +260 -0
  332. package/packages/stack-agents/go/references/samber-oops.md +200 -0
  333. package/packages/stack-agents/go/references/security-checklist.md +441 -0
  334. package/packages/stack-agents/go/references/standard-stdlib-now.md +181 -0
  335. package/packages/stack-agents/go/references/stay-updated.md +147 -0
  336. package/packages/stack-agents/go/references/structs-interfaces.md +312 -0
  337. package/packages/stack-agents/go/references/sync-primitives.md +395 -0
  338. package/packages/stack-agents/go/references/testing-patterns.md +483 -0
  339. package/packages/stack-agents/go/references/troubleshooting.md +98 -0
  340. package/packages/stack-agents/python/py-reviewer.md +194 -0
  341. package/packages/stack-agents/rust/rs-reviewer.md +188 -0
  342. package/packages/stack-agents/typescript/ts-reviewer.md +135 -0
  343. package/packages/stack-hooks/go/go-context-check-on-edit.sh +56 -0
  344. package/packages/stack-hooks/go/go-error-check-on-edit.sh +54 -0
  345. package/packages/stack-hooks/go/go-format-on-edit.sh +32 -0
  346. package/packages/stack-hooks/go/go-safety-check-on-edit.sh +54 -0
  347. package/packages/stack-hooks/go/go-vet-on-edit.sh +61 -0
  348. package/packages/stack-hooks/go/golangci-lint-on-edit.sh +54 -0
  349. package/packages/stack-hooks/python/ruff-on-edit.sh +67 -0
  350. package/packages/stack-hooks/rust/cargo-check-on-edit.sh +64 -0
  351. package/packages/stack-hooks/typescript/typecheck-on-edit.sh +76 -0
  352. package/packages/stack-rules/go/go-conventions.md +44 -0
  353. package/packages/stack-rules/go/go-safety.md +35 -0
@@ -0,0 +1,565 @@
1
+ # default.rules — Codex CLI approval policy for claude-code-superkit
2
+ #
3
+ # DSL format (adapted from VKirill/codex-starter-kit, MIT):
4
+ # prefix_rule(pattern=[...], decision="allow|forbidden|prompt", justification="...", match=[...])
5
+ #
6
+ # Decisions:
7
+ # allow — permits at the execution-rule layer
8
+ # prompt — requires approval, subject to the active approval policy
9
+ # forbidden — forbids the matching command
10
+ # Rules apply outside the sandbox; they do not grant task authority.
11
+ #
12
+ # Pattern matching is a prefix tuple match against the command argv.
13
+ # Most restrictive matching decision wins: forbidden > prompt > allow.
14
+ #
15
+ # Philosophy: maximize developer flow for safe commands; require approval
16
+ # for state-changing operations; forbid destructive system calls.
17
+
18
+ # =============================================================================
19
+ # DESTRUCTIVE — never allowed
20
+ # =============================================================================
21
+
22
+ prefix_rule(
23
+ pattern = ["rm", "-rf", "/"],
24
+ decision = "forbidden",
25
+ justification = "Recursive deletion of root filesystem is irrecoverable.",
26
+ )
27
+
28
+ prefix_rule(
29
+ pattern = ["rm", "-rf", "/*"],
30
+ decision = "forbidden",
31
+ justification = "Recursive deletion of root filesystem is irrecoverable.",
32
+ )
33
+
34
+ prefix_rule(
35
+ pattern = ["sudo"],
36
+ decision = "forbidden",
37
+ justification = "Privilege escalation is blocked. Ask the user for an explicit one-off elevated command if needed.",
38
+ )
39
+
40
+ prefix_rule(
41
+ pattern = ["dd"],
42
+ decision = "forbidden",
43
+ justification = "Raw disk writes can destroy data. Use a safer file-level tool.",
44
+ match = ["dd if=/dev/zero of=/dev/sda", "dd if=image.iso of=/dev/disk2"],
45
+ )
46
+
47
+ prefix_rule(
48
+ pattern = ["mkfs"],
49
+ decision = "forbidden",
50
+ justification = "Formatting filesystems must be performed manually by the user.",
51
+ )
52
+
53
+ prefix_rule(
54
+ pattern = ["wipefs"],
55
+ decision = "forbidden",
56
+ justification = "Filesystem signature wiping must be performed manually by the user.",
57
+ )
58
+
59
+ prefix_rule(
60
+ pattern = ["shutdown"],
61
+ decision = "forbidden",
62
+ justification = "System shutdown must be performed manually by the user.",
63
+ )
64
+
65
+ prefix_rule(
66
+ pattern = ["reboot"],
67
+ decision = "forbidden",
68
+ justification = "System reboot must be performed manually by the user.",
69
+ )
70
+
71
+ prefix_rule(
72
+ pattern = ["halt"],
73
+ decision = "forbidden",
74
+ justification = "System halt must be performed manually by the user.",
75
+ )
76
+
77
+ prefix_rule(
78
+ pattern = ["shred"],
79
+ decision = "forbidden",
80
+ justification = "Secure deletion is irreversible. Use trash or ask for explicit approval.",
81
+ )
82
+
83
+ # =============================================================================
84
+ # PERMISSION / OWNERSHIP — always ask
85
+ # =============================================================================
86
+
87
+ prefix_rule(
88
+ pattern = ["chmod"],
89
+ decision = "prompt",
90
+ justification = "Permission changes can expose secrets or break apps. Ask for exact target + mode.",
91
+ match = ["chmod -R 777 .", "chmod 600 .env"],
92
+ )
93
+
94
+ prefix_rule(
95
+ pattern = ["chown"],
96
+ decision = "prompt",
97
+ justification = "Ownership changes can break workspace permissions.",
98
+ )
99
+
100
+ # =============================================================================
101
+ # RM — case-by-case (root forbidden above, named paths require prompt)
102
+ # =============================================================================
103
+
104
+ prefix_rule(
105
+ pattern = ["rm"],
106
+ decision = "prompt",
107
+ justification = "Confirm exact target before deletion. Prefer trash where available.",
108
+ match = ["rm node_modules", "rm -rf .next/cache"],
109
+ )
110
+
111
+ # =============================================================================
112
+ # GIT — most allowed; force-push and reset --hard require approval upstream
113
+ # =============================================================================
114
+
115
+ prefix_rule(pattern=["git", "status"], decision="allow")
116
+ prefix_rule(pattern=["git", "log"], decision="allow")
117
+ prefix_rule(pattern=["git", "diff"], decision="allow")
118
+ prefix_rule(pattern=["git", "show"], decision="allow")
119
+ prefix_rule(pattern=["git", "blame"], decision="allow")
120
+ prefix_rule(pattern=["git", "branch"], decision="allow")
121
+ prefix_rule(pattern=["git", "switch"], decision="allow")
122
+ prefix_rule(pattern=["git", "checkout"], decision="allow")
123
+ prefix_rule(pattern=["git", "add"], decision="allow")
124
+ prefix_rule(pattern=["git", "commit"], decision="allow")
125
+ prefix_rule(pattern=["git", "fetch"], decision="allow")
126
+ prefix_rule(pattern=["git", "pull"], decision="allow")
127
+ prefix_rule(pattern=["git", "merge"], decision="allow")
128
+ prefix_rule(pattern=["git", "rebase"], decision="allow")
129
+ prefix_rule(pattern=["git", "stash"], decision="allow")
130
+ prefix_rule(pattern=["git", "tag"], decision="allow")
131
+ prefix_rule(pattern=["git", "rev-parse"], decision="allow")
132
+ prefix_rule(pattern=["git", "config"], decision="allow")
133
+ prefix_rule(pattern=["git", "remote"], decision="allow")
134
+
135
+ # NOTE on git push --force coverage:
136
+ # prefix_rule matches as an argv prefix tuple. `git push --force origin main`
137
+ # matches ["git", "push", "--force"], but `git push origin main --force`
138
+ # does NOT — the flag lands on position 4, not 2. Codex CLI's rule engine
139
+ # does not support substring/regex on argv tails. So `git push` is left
140
+ # as decision="prompt" rather than "allow" so the user is asked for every
141
+ # push (one extra confirmation is the price of not getting silently
142
+ # force-pushed by argv-position trickery). Real protection of main branch
143
+ # happens at the host (GitHub branch protection rules), not here.
144
+ prefix_rule(
145
+ pattern = ["git", "push", "--force"],
146
+ decision = "prompt",
147
+ justification = "Force-push rewrites remote history. Confirm branch and target.",
148
+ )
149
+ prefix_rule(
150
+ pattern = ["git", "push", "-f"],
151
+ decision = "prompt",
152
+ justification = "Force-push rewrites remote history. Confirm branch and target.",
153
+ )
154
+ prefix_rule(
155
+ pattern = ["git", "push", "--force-with-lease"],
156
+ decision = "prompt",
157
+ justification = "Force-push (safer variant) still rewrites remote history.",
158
+ )
159
+ prefix_rule(
160
+ pattern = ["git", "push"],
161
+ decision = "prompt",
162
+ justification = "Push touches remote state and may carry a --force flag after the ref. Confirm.",
163
+ )
164
+
165
+ # Same argv-position caveat for reset --hard. We keep `git reset` at prompt
166
+ # rather than allow so `git reset HEAD --hard` (--hard at position 3) still
167
+ # triggers a confirmation.
168
+ prefix_rule(
169
+ pattern = ["git", "reset", "--hard"],
170
+ decision = "prompt",
171
+ justification = "Hard reset discards uncommitted work. Confirm target ref.",
172
+ )
173
+ prefix_rule(
174
+ pattern = ["git", "reset"],
175
+ decision = "prompt",
176
+ justification = "Reset may include --hard after the ref. Confirm.",
177
+ )
178
+
179
+ prefix_rule(
180
+ pattern = ["git", "clean", "-fdx"],
181
+ decision = "prompt",
182
+ justification = "git clean -fdx removes untracked files and ignored dirs (incl. node_modules). Confirm.",
183
+ )
184
+
185
+ # History-rewriting tools — irreversible without an external backup. Always prompt.
186
+ prefix_rule(
187
+ pattern = ["git", "filter-repo"],
188
+ decision = "prompt",
189
+ justification = "filter-repo rewrites entire repo history. Confirm refs and replacements.",
190
+ )
191
+ prefix_rule(
192
+ pattern = ["git", "filter-branch"],
193
+ decision = "prompt",
194
+ justification = "filter-branch rewrites history (slower / less safe than filter-repo). Confirm.",
195
+ )
196
+ prefix_rule(
197
+ pattern = ["git", "rebase", "-i"],
198
+ decision = "prompt",
199
+ justification = "Interactive rebase rewrites local history. Confirm target ref.",
200
+ )
201
+ prefix_rule(
202
+ pattern = ["git", "rebase", "--root"],
203
+ decision = "prompt",
204
+ justification = "Rebasing from root rewrites all history. Confirm.",
205
+ )
206
+ prefix_rule(
207
+ pattern = ["git", "update-ref", "-d"],
208
+ decision = "prompt",
209
+ justification = "Deletes a ref directly. Confirm.",
210
+ )
211
+ prefix_rule(
212
+ pattern = ["git", "reflog", "expire"],
213
+ decision = "prompt",
214
+ justification = "Expiring reflog removes the safety net for recently-rewritten history.",
215
+ )
216
+ prefix_rule(
217
+ pattern = ["git", "clean", "-fd"],
218
+ decision = "prompt",
219
+ justification = "git clean -fd removes untracked files. Confirm.",
220
+ )
221
+
222
+ # =============================================================================
223
+ # GH CLI — most allowed
224
+ # =============================================================================
225
+
226
+ prefix_rule(pattern=["gh", "pr"], decision="allow")
227
+ prefix_rule(pattern=["gh", "issue"], decision="allow")
228
+ prefix_rule(pattern=["gh", "repo", "view"], decision="allow")
229
+ prefix_rule(pattern=["gh", "repo", "list"], decision="allow")
230
+ prefix_rule(pattern=["gh", "release"], decision="allow")
231
+ prefix_rule(pattern=["gh", "workflow"], decision="allow")
232
+ prefix_rule(pattern=["gh", "run"], decision="allow")
233
+ prefix_rule(pattern=["gh", "api"], decision="allow")
234
+ prefix_rule(pattern=["gh", "auth", "status"], decision="allow")
235
+
236
+ prefix_rule(
237
+ pattern = ["gh", "repo", "delete"],
238
+ decision = "forbidden",
239
+ justification = "Repository deletion is permanent. Must be done by the user manually.",
240
+ )
241
+
242
+ # =============================================================================
243
+ # NPM / PNPM / YARN — installs and reads allowed, publish/unpublish prompt
244
+ # =============================================================================
245
+
246
+ prefix_rule(pattern=["npm", "view"], decision="allow")
247
+ prefix_rule(pattern=["npm", "info"], decision="allow")
248
+ prefix_rule(pattern=["npm", "search"], decision="allow")
249
+ prefix_rule(pattern=["npm", "ping"], decision="allow")
250
+ prefix_rule(pattern=["npm", "config", "get"], decision="allow")
251
+ prefix_rule(pattern=["npm", "list"], decision="allow")
252
+ prefix_rule(pattern=["npm", "ls"], decision="allow")
253
+ prefix_rule(pattern=["npm", "install"], decision="allow")
254
+ prefix_rule(pattern=["npm", "ci"], decision="allow")
255
+ prefix_rule(pattern=["npm", "run"], decision="allow")
256
+ prefix_rule(pattern=["npm", "test"], decision="allow")
257
+ prefix_rule(pattern=["npm", "audit"], decision="allow")
258
+ prefix_rule(pattern=["npm", "outdated"], decision="allow")
259
+
260
+ prefix_rule(
261
+ pattern = ["npm", "publish"],
262
+ decision = "prompt",
263
+ justification = "Publishing pushes a package to the registry. Confirm version, scope, and tag.",
264
+ )
265
+ prefix_rule(
266
+ pattern = ["npm", "unpublish"],
267
+ decision = "prompt",
268
+ justification = "Unpublishing is mostly irreversible and breaks dependents.",
269
+ )
270
+
271
+ prefix_rule(pattern=["pnpm"], decision="allow")
272
+ prefix_rule(pattern=["yarn"], decision="allow")
273
+ prefix_rule(pattern=["bun"], decision="allow")
274
+ prefix_rule(pattern=["npx"], decision="allow")
275
+
276
+ # =============================================================================
277
+ # PYTHON / PIP / UV
278
+ # =============================================================================
279
+
280
+ prefix_rule(pattern=["python"], decision="allow")
281
+ prefix_rule(pattern=["python3"], decision="allow")
282
+ prefix_rule(pattern=["pip"], decision="allow")
283
+ prefix_rule(pattern=["pip3"], decision="allow")
284
+ prefix_rule(pattern=["uv"], decision="allow")
285
+ prefix_rule(pattern=["poetry"], decision="allow")
286
+ prefix_rule(pattern=["pipx"], decision="allow")
287
+
288
+ # =============================================================================
289
+ # GO / RUST / OTHER COMPILERS
290
+ # =============================================================================
291
+
292
+ prefix_rule(pattern=["go"], decision="allow")
293
+ prefix_rule(pattern=["cargo"], decision="allow")
294
+ prefix_rule(pattern=["rustc"], decision="allow")
295
+ prefix_rule(pattern=["javac"], decision="allow")
296
+ prefix_rule(pattern=["mvn"], decision="allow")
297
+ prefix_rule(pattern=["gradle"], decision="allow")
298
+ prefix_rule(pattern=["./gradlew"], decision="allow")
299
+
300
+ # =============================================================================
301
+ # DOCKER / KUBERNETES — read allowed, destructive prompt
302
+ # =============================================================================
303
+
304
+ prefix_rule(pattern=["docker", "ps"], decision="allow")
305
+ prefix_rule(pattern=["docker", "logs"], decision="allow")
306
+ prefix_rule(pattern=["docker", "inspect"], decision="allow")
307
+ prefix_rule(pattern=["docker", "images"], decision="allow")
308
+ prefix_rule(pattern=["docker", "build"], decision="allow")
309
+ prefix_rule(pattern=["docker", "run"], decision="allow")
310
+ prefix_rule(pattern=["docker", "compose"], decision="allow")
311
+ prefix_rule(pattern=["docker-compose"], decision="allow")
312
+
313
+ prefix_rule(
314
+ pattern = ["docker", "system", "prune"],
315
+ decision = "prompt",
316
+ justification = "Prune deletes containers, images, networks, and build cache. Confirm scope.",
317
+ )
318
+ prefix_rule(
319
+ pattern = ["docker", "volume", "prune"],
320
+ decision = "prompt",
321
+ justification = "Volume prune deletes anonymous volumes — possibly with data.",
322
+ )
323
+
324
+ prefix_rule(pattern=["kubectl", "get"], decision="allow")
325
+ prefix_rule(pattern=["kubectl", "describe"], decision="allow")
326
+ prefix_rule(pattern=["kubectl", "logs"], decision="allow")
327
+ prefix_rule(pattern=["kubectl", "exec"], decision="allow")
328
+ prefix_rule(pattern=["kubectl", "apply"], decision="allow")
329
+ prefix_rule(pattern=["kubectl", "rollout"], decision="allow")
330
+
331
+ prefix_rule(
332
+ pattern = ["kubectl", "delete"],
333
+ decision = "prompt",
334
+ justification = "kubectl delete removes cluster resources. Confirm namespace + resource.",
335
+ )
336
+
337
+ # =============================================================================
338
+ # SYSTEMD / SERVICE MANAGERS — restart allowed, enable/disable prompt
339
+ # =============================================================================
340
+
341
+ prefix_rule(pattern=["systemctl", "status"], decision="allow")
342
+ prefix_rule(pattern=["systemctl", "start"], decision="allow")
343
+ prefix_rule(pattern=["systemctl", "stop"], decision="allow")
344
+ prefix_rule(pattern=["systemctl", "restart"], decision="allow")
345
+ prefix_rule(pattern=["systemctl", "reload"], decision="allow")
346
+
347
+ prefix_rule(
348
+ pattern = ["systemctl", "enable"],
349
+ decision = "prompt",
350
+ justification = "Changing boot-time service state affects the host.",
351
+ )
352
+ prefix_rule(
353
+ pattern = ["systemctl", "disable"],
354
+ decision = "prompt",
355
+ justification = "Changing boot-time service state affects the host.",
356
+ )
357
+ prefix_rule(
358
+ pattern = ["systemctl", "mask"],
359
+ decision = "prompt",
360
+ justification = "Masking services can break host behavior.",
361
+ )
362
+
363
+ prefix_rule(pattern=["pm2", "list"], decision="allow")
364
+ prefix_rule(pattern=["pm2", "logs"], decision="allow")
365
+ prefix_rule(pattern=["pm2", "describe"], decision="allow")
366
+ prefix_rule(pattern=["pm2", "start"], decision="allow")
367
+ prefix_rule(pattern=["pm2", "restart"], decision="allow")
368
+ prefix_rule(pattern=["pm2", "reload"], decision="allow")
369
+ prefix_rule(pattern=["pm2", "stop"], decision="allow")
370
+ prefix_rule(
371
+ pattern = ["pm2", "delete"],
372
+ decision = "prompt",
373
+ justification = "pm2 delete removes a process from the manager — confirm name.",
374
+ )
375
+
376
+ prefix_rule(pattern=["supervisorctl", "status"], decision="allow")
377
+ prefix_rule(pattern=["supervisorctl", "restart"], decision="allow")
378
+ prefix_rule(pattern=["supervisorctl", "start"], decision="allow")
379
+ prefix_rule(pattern=["supervisorctl", "stop"], decision="allow")
380
+
381
+ # =============================================================================
382
+ # WEB SERVERS — config check + reload allowed; full restart prompt
383
+ # =============================================================================
384
+
385
+ prefix_rule(pattern=["nginx", "-t"], decision="allow")
386
+ prefix_rule(pattern=["nginx", "-s", "reload"], decision="allow")
387
+ prefix_rule(pattern=["caddy", "validate"], decision="allow")
388
+ prefix_rule(pattern=["caddy", "reload"], decision="allow")
389
+ prefix_rule(pattern=["apachectl", "configtest"], decision="allow")
390
+ prefix_rule(pattern=["apachectl", "graceful"], decision="allow")
391
+
392
+ # =============================================================================
393
+ # OBSERVABILITY / SHELL UTILS — universally safe reads
394
+ # =============================================================================
395
+
396
+ prefix_rule(pattern=["ls"], decision="allow")
397
+ prefix_rule(pattern=["pwd"], decision="allow")
398
+ prefix_rule(pattern=["cat"], decision="allow")
399
+ prefix_rule(pattern=["head"], decision="allow")
400
+ prefix_rule(pattern=["tail"], decision="allow")
401
+ prefix_rule(pattern=["less"], decision="allow")
402
+ prefix_rule(pattern=["wc"], decision="allow")
403
+ prefix_rule(pattern=["grep"], decision="allow")
404
+ prefix_rule(pattern=["rg"], decision="allow")
405
+ prefix_rule(pattern=["find"], decision="allow")
406
+ prefix_rule(pattern=["fd"], decision="allow")
407
+ prefix_rule(pattern=["which"], decision="allow")
408
+ prefix_rule(pattern=["whoami"], decision="allow")
409
+ prefix_rule(pattern=["hostname"], decision="allow")
410
+ prefix_rule(pattern=["env"], decision="allow")
411
+ prefix_rule(pattern=["date"], decision="allow")
412
+ prefix_rule(pattern=["uname"], decision="allow")
413
+ prefix_rule(pattern=["ps"], decision="allow")
414
+ prefix_rule(pattern=["top"], decision="allow")
415
+ prefix_rule(pattern=["htop"], decision="allow")
416
+ prefix_rule(pattern=["df"], decision="allow")
417
+ prefix_rule(pattern=["du"], decision="allow")
418
+ prefix_rule(pattern=["free"], decision="allow")
419
+ prefix_rule(pattern=["jq"], decision="allow")
420
+ prefix_rule(pattern=["yq"], decision="allow")
421
+ prefix_rule(pattern=["sed"], decision="allow")
422
+ prefix_rule(pattern=["awk"], decision="allow")
423
+ prefix_rule(pattern=["echo"], decision="allow")
424
+ prefix_rule(pattern=["printf"], decision="allow")
425
+ prefix_rule(pattern=["http"], decision="allow")
426
+
427
+ # NOTE on curl | bash:
428
+ # Simple compound shell commands may be split into individual commands for
429
+ # checking; complex shell syntax may be checked as the whole invocation.
430
+ # These prefix rules request approval for curl/wget and inline bash/sh. They
431
+ # do not provide a blanket prohibition of download-and-execute pipelines.
432
+ prefix_rule(
433
+ pattern = ["curl"],
434
+ decision = "prompt",
435
+ justification = "Curl may be piped into a shell. Confirm URL and target.",
436
+ )
437
+ prefix_rule(
438
+ pattern = ["wget"],
439
+ decision = "prompt",
440
+ justification = "Wget may be piped into a shell. Confirm URL and target.",
441
+ )
442
+ prefix_rule(
443
+ pattern = ["bash", "-c"],
444
+ decision = "prompt",
445
+ justification = "Arbitrary inline shell. Inspect the command before running.",
446
+ )
447
+ prefix_rule(
448
+ pattern = ["sh", "-c"],
449
+ decision = "prompt",
450
+ justification = "Arbitrary inline shell. Inspect the command before running.",
451
+ )
452
+
453
+ # =============================================================================
454
+ # DATABASE CLIENTS — read allowed, destructive prompt
455
+ # =============================================================================
456
+
457
+ prefix_rule(pattern=["psql"], decision="allow")
458
+ # mysql -e and sqlite3 inline statements share the psql -c caveat —
459
+ # the SQL ends up as a single argv token that prefix_rule cannot inspect.
460
+ prefix_rule(
461
+ pattern = ["mysql", "-e"],
462
+ decision = "prompt",
463
+ justification = "Inline SQL via mysql -e — text is in a single argv token, cannot be inspected by prefix matching.",
464
+ )
465
+ prefix_rule(
466
+ pattern = ["mysql", "--execute"],
467
+ decision = "prompt",
468
+ justification = "Inline SQL via mysql --execute — same caveat as -e.",
469
+ )
470
+ prefix_rule(pattern=["mysql"], decision="allow")
471
+ prefix_rule(pattern=["redis-cli"], decision="allow")
472
+ prefix_rule(pattern=["sqlite3"], decision="allow")
473
+ prefix_rule(pattern=["mongosh"], decision="allow")
474
+
475
+ prefix_rule(
476
+ pattern = ["pg_dump"],
477
+ decision = "allow",
478
+ justification = "Read-only backup operation.",
479
+ )
480
+ prefix_rule(
481
+ pattern = ["dropdb"],
482
+ decision = "prompt",
483
+ justification = "dropdb removes a database. Confirm name.",
484
+ )
485
+
486
+ # NOTE on psql -c:
487
+ # When user runs `psql -c "DROP TABLE x"`, argv[2] is the full string
488
+ # "DROP TABLE x", not the token "DROP". A prefix_rule pattern
489
+ # ["psql", "-c", "DROP"] only matches when argv[2] == "DROP" exactly,
490
+ # which never happens — the SQL statement is always at least 2 words.
491
+ # Codex's rule engine does not support substring/regex on argv tails.
492
+ #
493
+ # Therefore: any psql -c (inline SQL) lands at "prompt", since we cannot
494
+ # selectively match destructive SQL within argv[2]. The user sees the
495
+ # full SQL string before execution. Read-only interactive psql sessions
496
+ # (without -c) remain at the broader "psql" allow rule.
497
+ prefix_rule(
498
+ pattern = ["psql", "-c"],
499
+ decision = "prompt",
500
+ justification = "Inline SQL via psql -c — text is in a single argv token, cannot be inspected by prefix matching. Confirm the SQL.",
501
+ )
502
+ prefix_rule(
503
+ pattern = ["psql", "--command"],
504
+ decision = "prompt",
505
+ justification = "Inline SQL via psql --command — same caveat as -c.",
506
+ )
507
+ prefix_rule(
508
+ pattern = ["psql", "-f"],
509
+ decision = "prompt",
510
+ justification = "psql -f runs a SQL file. Confirm path before execution.",
511
+ )
512
+ prefix_rule(
513
+ pattern = ["psql", "--file"],
514
+ decision = "prompt",
515
+ justification = "psql --file runs a SQL file. Confirm path before execution.",
516
+ )
517
+ prefix_rule(
518
+ pattern = ["kubectl", "drain"],
519
+ decision = "prompt",
520
+ justification = "kubectl drain evicts pods from a node. Confirm.",
521
+ )
522
+ prefix_rule(
523
+ pattern = ["terraform", "destroy"],
524
+ decision = "prompt",
525
+ justification = "terraform destroy tears down infrastructure. Confirm targets.",
526
+ )
527
+ prefix_rule(
528
+ pattern = ["terraform", "apply"],
529
+ decision = "prompt",
530
+ justification = "terraform apply mutates infrastructure. Confirm plan.",
531
+ )
532
+ prefix_rule(
533
+ pattern = ["redis-cli", "FLUSHDB"],
534
+ decision = "prompt",
535
+ justification = "FLUSHDB wipes the current Redis DB.",
536
+ )
537
+ prefix_rule(
538
+ pattern = ["redis-cli", "FLUSHALL"],
539
+ decision = "prompt",
540
+ justification = "FLUSHALL wipes ALL Redis DBs.",
541
+ )
542
+
543
+ # =============================================================================
544
+ # TEST RUNNERS / LINTERS — all allowed
545
+ # =============================================================================
546
+
547
+ prefix_rule(pattern=["pytest"], decision="allow")
548
+ prefix_rule(pattern=["jest"], decision="allow")
549
+ prefix_rule(pattern=["vitest"], decision="allow")
550
+ prefix_rule(pattern=["mocha"], decision="allow")
551
+ prefix_rule(pattern=["eslint"], decision="allow")
552
+ prefix_rule(pattern=["prettier"], decision="allow")
553
+ prefix_rule(pattern=["ruff"], decision="allow")
554
+ prefix_rule(pattern=["black"], decision="allow")
555
+ prefix_rule(pattern=["mypy"], decision="allow")
556
+ prefix_rule(pattern=["tsc"], decision="allow")
557
+ prefix_rule(pattern=["golangci-lint"], decision="allow")
558
+ prefix_rule(pattern=["gofmt"], decision="allow")
559
+ prefix_rule(pattern=["clippy"], decision="allow")
560
+ prefix_rule(pattern=["rustfmt"], decision="allow")
561
+
562
+ # =============================================================================
563
+ # FALLBACK
564
+ # =============================================================================
565
+ # Anything not matched above falls through to Codex CLI's own approval policy.
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: ai-slop-cleaner
3
+ description: Review or remove evidence-backed redundant code and commentary within an authorized scope while preserving behavior. Use for a focused cleanup after implementation or before review, not feature work or logic fixes.
4
+ user-invocable: false
5
+ tokens: 1221
6
+ ---
7
+
8
+ # AI Slop Cleaner
9
+
10
+ Improve readability by removing demonstrated redundancy without changing behavior. “AI-generated” appearance is a search hint, not evidence that code is wrong or disposable. A clean result with no changes is valid. Use after implementation or before review; in `dev-orchestrator`, these are Phase 7 — Implement and Phase 12 — Review, not a substitute for its intervening acceptance gates.
11
+
12
+ ## Scope and authority
13
+
14
+ Start with the request, target diff/paths, applicable project instructions, relevant style/lint configuration, and tests/contracts. Review requests are read-only; cleanup requests permit only authorized behavior-preserving edits. Inspect relevant callers, exports, generated-code markers, and framework use before deciding something is redundant. Preserve dirty work owned by others.
15
+
16
+ If the scope or evidence is ambiguous, ask the question that resolves it and leave the uncertain code unchanged. Do not sweep the repository, reformat unrelated code, rename public APIs, add features, change configuration, or make external writes because of this role. Report logic/security defects separately for bounded authorized follow-up.
17
+
18
+ ## Assess candidates, not quotas
19
+
20
+ - **Comments:** remove prose that adds no information beyond nearby code when project conventions allow. Preserve rationale, warnings, meaningful TODOs, API documentation, licenses, directives, generated markers, compiler/linter controls, and tooling annotations. A comment describing “what” can still document a public contract.
21
+ - **Helpers and abstractions:** consider simplifying wrappers, factories, strategies, generic types, interfaces, or speculative flags only when their purpose and consumers are understood. One-use helpers may express a domain, testing, transaction, resource-lifetime, or side-effect boundary; one implementation can still justify an interface. Neither count is a deletion rule.
22
+ - **Compatibility and apparent dead code:** inspect public exports, indirect/reflection-based consumers, serialization, framework callbacks, and generated uses. Preserve required parameter positions, `_` placeholders, default arms, and re-exports unless evidence establishes removal is safe within scope. Type exhaustiveness does not prove external/runtime inputs cannot reach a branch.
23
+ - **Template residue:** identify unnecessary assertions, unreachable scaffolding, empty handlers, and incomplete TODOs, but distinguish redundancy from missing behavior. Changing a swallowed error into logging, propagation, retry, or failure handling changes behavior and is not cleanup; report it separately.
24
+ - **Style:** simplify needless locals, prefixes, boolean wrappers, or verbose names only when supported by local idiom and language semantics. Preserve return types, truthiness/coercion, evaluation order, side effects, resource cleanup, public signatures, and observable behavior. A shorter expression is not automatically equivalent.
25
+
26
+ For each candidate, explain what makes it redundant and what evidence supports equivalence. Keep uncertain candidates as observations rather than labeling them safe to delete. In edit mode, apply a coherent bounded set of justified changes; no category, finding, line-reduction, or renaming quotas.
27
+
28
+ ## Verification and stopping
29
+
30
+ Inspect the final diff and use focused regression evidence for affected behavior plus applicable compiler/linter checks and mandatory project gates. Compilation/lint success alone does not prove semantic equivalence. Where equivalence is uncertain and no adequate check exists, retain the original code and state the gap.
31
+
32
+ Reuse checks only when their command, result, relevant code, inputs, and environment are recorded and unchanged. Rerun for relevant changes or concrete uncertainty, not after every cleanup category by ritual. Stop once the authorized scope is assessed and supported edits are verified, or report the specific blocker without broadening the task.
33
+
34
+ ## Output
35
+
36
+ Return a compact cleanup report:
37
+
38
+ - Mode and examined scope; changed paths or “no justified cleanup.”
39
+ - Applied/proposed changes with locations, rationale, and equivalence evidence.
40
+ - Uncertain candidates left unchanged, reasons they may be intentional, and separate behavior-changing findings with impact/confidence.
41
+ - Check commands/results or applicable prior evidence; not-run checks, coverage gaps, and exact remaining action.
42
+ - Execution as independent worker or inline/self-review. Follow explicit model/effort routing; report requested or labeled configured model/effort separately from observed runtime model/effort with evidence. Use UNSPECIFIED for an absent request/default and UNVERIFIED for unavailable runtime evidence. The latter is a reporting limitation, not a new acceptance gate.
43
+
44
+ Do not claim behavior preservation beyond the inspected scope and supporting evidence, or present a proposed edit as already applied.