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,176 @@
1
+ # Naming Conventions
2
+
3
+ > Reference document for go-reviewer. Loaded on demand via Read tool.
4
+
5
+ ## MixedCaps Rules
6
+
7
+ Go uses MixedCaps (exported) and mixedCaps (unexported). Never use snake_case or SCREAMING_SNAKE_CASE for any identifier.
8
+
9
+ ```go
10
+ // CORRECT
11
+ type UserService struct{}
12
+ func (s *UserService) FindByID(id int64) (*User, error)
13
+ var maxRetryCount = 3
14
+
15
+ // WRONG
16
+ type user_service struct{} // snake_case
17
+ func find_by_id() // snake_case
18
+ var MAX_RETRY_COUNT = 3 // screaming snake
19
+ ```
20
+
21
+ ## Package Naming
22
+
23
+ | Rule | Good | Bad | Why |
24
+ |------|------|-----|-----|
25
+ | Lowercase, single word | `user`, `auth`, `store` | `userStore`, `user_store` | Go convention |
26
+ | No util/common/base/misc | `strings`, `bytes` | `util`, `common`, `helpers` | Names should describe what, not how |
27
+ | No plural unless collection | `user` (package) | `users` (package) | Package name joins with exported names |
28
+ | Short, concise | `io`, `os`, `fmt` | `inputoutput`, `operatingsystem` | Brevity is a Go value |
29
+ | No stuttering with exports | `http.Client` | `http.HTTPClient` | Package name is already context |
30
+
31
+ ```go
32
+ // CORRECT — package name provides context
33
+ package user
34
+ type Service struct{} // used as user.Service
35
+ type Repository struct{} // used as user.Repository
36
+
37
+ // WRONG — stuttering
38
+ package user
39
+ type UserService struct{} // user.UserService stutters
40
+ type UserRepository struct{} // user.UserRepository stutters
41
+ ```
42
+
43
+ ## Interface Naming
44
+
45
+ Interfaces follow the **-er** suffix convention and should be **small** (1-3 methods). Define interfaces on the **consumer side**, not the provider side.
46
+
47
+ ```go
48
+ // CORRECT — small, -er suffix, consumer-defined
49
+ type Reader interface {
50
+ Read(p []byte) (n int, err error)
51
+ }
52
+
53
+ type Stringer interface {
54
+ String() string
55
+ }
56
+
57
+ type UserFinder interface {
58
+ FindByID(ctx context.Context, id int64) (*User, error)
59
+ }
60
+
61
+ // WRONG — too large, provider-side, no -er suffix
62
+ type UserOperations interface {
63
+ Create(ctx context.Context, u *User) error
64
+ Update(ctx context.Context, u *User) error
65
+ Delete(ctx context.Context, id int64) error
66
+ FindByID(ctx context.Context, id int64) (*User, error)
67
+ FindAll(ctx context.Context) ([]*User, error)
68
+ Search(ctx context.Context, q string) ([]*User, error)
69
+ }
70
+ ```
71
+
72
+ **Decision table — interface size:**
73
+
74
+ | Methods | Pattern | Example |
75
+ |---------|---------|---------|
76
+ | 1 | `-er` suffix | `Reader`, `Writer`, `Closer` |
77
+ | 2-3 | Compound `-er` or descriptive | `ReadWriter`, `UserFinder` |
78
+ | 4+ | Split into smaller interfaces | Compose via embedding |
79
+
80
+ ## Error Variable Naming
81
+
82
+ ```go
83
+ // Sentinel errors: Err + condition
84
+ var ErrNotFound = errors.New("not found")
85
+ var ErrAlreadyExists = errors.New("already exists")
86
+ var ErrInvalidInput = errors.New("invalid input")
87
+
88
+ // Error types: suffix with Error
89
+ type ValidationError struct {
90
+ Field string
91
+ Message string
92
+ }
93
+
94
+ type NotFoundError struct {
95
+ Entity string
96
+ ID int64
97
+ }
98
+ ```
99
+
100
+ ## Receiver Naming
101
+
102
+ Receivers use **1-2 character** abbreviations derived from the type name. Never use `this` or `self`.
103
+
104
+ ```go
105
+ // CORRECT
106
+ func (s *UserService) FindByID(id int64) (*User, error)
107
+ func (r *Repository) Save(u *User) error
108
+ func (c *Client) Do(req *Request) (*Response, error)
109
+ func (b *Builder) WithTimeout(d time.Duration) *Builder
110
+
111
+ // WRONG
112
+ func (self *UserService) FindByID(id int64) (*User, error)
113
+ func (this *Repository) Save(u *User) error
114
+ func (userService *UserService) FindByID(id int64) (*User, error)
115
+ ```
116
+
117
+ **Receiver abbreviation rules:**
118
+ - First letter of type: `s` for `Service`, `r` for `Repository`
119
+ - Two letters if ambiguous: `us` for `UserService` if `s` is taken
120
+ - Consistent across all methods of the same type
121
+
122
+ ## Acronym Rules
123
+
124
+ Acronyms are **all caps** regardless of position. Never mix case within an acronym.
125
+
126
+ | Acronym | Exported | Unexported | Wrong |
127
+ |---------|----------|------------|-------|
128
+ | ID | `UserID` | `userID` | `UserId`, `userId` |
129
+ | URL | `ServerURL` | `serverURL` | `ServerUrl`, `serverUrl` |
130
+ | HTTP | `HTTPClient` | `httpClient` | `HttpClient`, `httpClient` (when exported) |
131
+ | API | `APIServer` | `apiServer` | `ApiServer` |
132
+ | SQL | `SQLQuery` | `sqlQuery` | `SqlQuery` |
133
+ | JSON | `JSONEncoder` | `jsonEncoder` | `JsonEncoder` |
134
+ | XML | `XMLParser` | `xmlParser` | `XmlParser` |
135
+ | TCP | `TCPConn` | `tcpConn` | `TcpConn` |
136
+
137
+ ```go
138
+ // CORRECT
139
+ func ParseURL(rawURL string) (*URL, error)
140
+ func (c *Client) SetHTTPTimeout(d time.Duration)
141
+ type JSONResponse struct {
142
+ UserID int64 `json:"user_id"`
143
+ APIURL string `json:"api_url"`
144
+ }
145
+
146
+ // WRONG
147
+ func ParseUrl(rawUrl string) (*Url, error)
148
+ func (c *Client) SetHttpTimeout(d time.Duration)
149
+ ```
150
+
151
+ ## Stuttering Avoidance
152
+
153
+ The package name is part of every qualified reference. Never repeat it in exported names.
154
+
155
+ ```go
156
+ // Package http
157
+ http.Client // not http.HTTPClient
158
+ http.Server // not http.HTTPServer
159
+ http.Request // not http.HTTPRequest
160
+
161
+ // Package user
162
+ user.Service // not user.UserService
163
+ user.Repository // not user.UserRepository
164
+ user.NotFoundError // not user.UserNotFoundError
165
+
166
+ // Package config
167
+ config.Load() // not config.LoadConfig()
168
+ config.Default() // not config.DefaultConfig()
169
+ ```
170
+
171
+ ## When to Use
172
+
173
+ Apply these rules when reviewing any Go code for naming issues. Flag violations as:
174
+ - **CRITICAL**: Stuttering in public API, snake_case in exported names
175
+ - **WARNING**: Wrong acronym casing, receiver named `self`/`this`, large interfaces
176
+ - **SUGGESTION**: Verbose package names, receiver names longer than 2 chars
@@ -0,0 +1,352 @@
1
+ # Observability Pipeline
2
+
3
+ > Reference document for go-observability-reviewer. Loaded on demand via Read tool.
4
+
5
+ ## slog Handler Chain
6
+
7
+ Handlers process log records in a chain. Order matters for performance: cheap filters first, expensive operations last.
8
+
9
+ ```
10
+ Record → Sampling → Formatting → Routing → Sinks
11
+ ↓ ↓ ↓ ↓
12
+ Drop 90% of Add JSON Split by File, stdout,
13
+ DEBUG records format level network
14
+ ```
15
+
16
+ ### Handler Setup
17
+
18
+ ```go
19
+ import (
20
+ "log/slog"
21
+ "os"
22
+ )
23
+
24
+ // Production: JSON to stdout (container logs → log aggregator)
25
+ func NewProductionLogger() *slog.Logger {
26
+ handler := slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
27
+ Level: slog.LevelInfo,
28
+ AddSource: true, // adds source file:line
29
+ })
30
+ return slog.New(handler)
31
+ }
32
+
33
+ // Development: human-readable text
34
+ func NewDevLogger() *slog.Logger {
35
+ handler := slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{
36
+ Level: slog.LevelDebug,
37
+ })
38
+ return slog.New(handler)
39
+ }
40
+ ```
41
+
42
+ ### Custom Sampling Handler
43
+
44
+ ```go
45
+ type SamplingHandler struct {
46
+ inner slog.Handler
47
+ rate float64 // 0.0 to 1.0
48
+ minLevel slog.Level
49
+ }
50
+
51
+ func (h *SamplingHandler) Enabled(ctx context.Context, level slog.Level) bool {
52
+ if level >= h.minLevel {
53
+ return true // always log WARN+
54
+ }
55
+ return rand.Float64() < h.rate // sample DEBUG/INFO
56
+ }
57
+
58
+ func (h *SamplingHandler) Handle(ctx context.Context, r slog.Record) error {
59
+ return h.inner.Handle(ctx, r)
60
+ }
61
+
62
+ func (h *SamplingHandler) WithAttrs(attrs []slog.Attr) slog.Handler {
63
+ return &SamplingHandler{inner: h.inner.WithAttrs(attrs), rate: h.rate, minLevel: h.minLevel}
64
+ }
65
+
66
+ func (h *SamplingHandler) WithGroup(name string) slog.Handler {
67
+ return &SamplingHandler{inner: h.inner.WithGroup(name), rate: h.rate, minLevel: h.minLevel}
68
+ }
69
+ ```
70
+
71
+ ### Structured Logging Best Practices
72
+
73
+ ```go
74
+ // CORRECT — structured key-value pairs
75
+ logger.Info("user created",
76
+ "user_id", user.ID,
77
+ "email", user.Email,
78
+ "duration_ms", time.Since(start).Milliseconds(),
79
+ )
80
+
81
+ // CORRECT — with group
82
+ logger.WithGroup("request").Info("handled",
83
+ "method", r.Method,
84
+ "path", r.URL.Path,
85
+ "status", status,
86
+ "latency_ms", latency.Milliseconds(),
87
+ )
88
+
89
+ // WRONG — unstructured string formatting
90
+ logger.Info(fmt.Sprintf("user %d created in %v", user.ID, elapsed))
91
+
92
+ // WRONG — sensitive data in logs
93
+ logger.Info("auth", "password", req.Password, "token", token)
94
+ ```
95
+
96
+ ## Prometheus Patterns
97
+
98
+ ### Metric Types
99
+
100
+ | Type | Use When | Example |
101
+ |------|----------|---------|
102
+ | Counter | Monotonically increasing | Total requests, errors, bytes sent |
103
+ | Gauge | Can go up and down | Active connections, queue depth |
104
+ | Histogram | Distribution of values | Request duration, response size |
105
+ | Summary | Client-side quantiles | Rarely used — prefer Histogram |
106
+
107
+ ### Registration and Usage
108
+
109
+ ```go
110
+ import "github.com/prometheus/client_golang/prometheus"
111
+
112
+ var (
113
+ requestsTotal = prometheus.NewCounterVec(
114
+ prometheus.CounterOpts{
115
+ Namespace: "myapp",
116
+ Subsystem: "http",
117
+ Name: "requests_total",
118
+ Help: "Total HTTP requests by method, path, and status.",
119
+ },
120
+ []string{"method", "path", "status"},
121
+ )
122
+
123
+ requestDuration = prometheus.NewHistogramVec(
124
+ prometheus.HistogramOpts{
125
+ Namespace: "myapp",
126
+ Subsystem: "http",
127
+ Name: "request_duration_seconds",
128
+ Help: "HTTP request duration in seconds.",
129
+ Buckets: []float64{.001, .005, .01, .025, .05, .1, .25, .5, 1, 2.5, 5, 10},
130
+ },
131
+ []string{"method", "path"},
132
+ )
133
+
134
+ activeConnections = prometheus.NewGauge(
135
+ prometheus.GaugeOpts{
136
+ Namespace: "myapp",
137
+ Subsystem: "server",
138
+ Name: "active_connections",
139
+ Help: "Number of active connections.",
140
+ },
141
+ )
142
+ )
143
+
144
+ func init() {
145
+ prometheus.MustRegister(requestsTotal, requestDuration, activeConnections)
146
+ }
147
+ ```
148
+
149
+ ### Middleware Integration
150
+
151
+ ```go
152
+ func MetricsMiddleware(next http.Handler) http.Handler {
153
+ return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
154
+ start := time.Now()
155
+ wrapped := &statusRecorder{ResponseWriter: w, status: 200}
156
+
157
+ next.ServeHTTP(wrapped, r)
158
+
159
+ duration := time.Since(start).Seconds()
160
+ path := normalizePath(r.URL.Path) // prevent cardinality explosion
161
+
162
+ requestsTotal.WithLabelValues(r.Method, path, strconv.Itoa(wrapped.status)).Inc()
163
+ requestDuration.WithLabelValues(r.Method, path).Observe(duration)
164
+ })
165
+ }
166
+ ```
167
+
168
+ ### Label Cardinality Rules
169
+
170
+ | Rule | Good | Bad |
171
+ |------|------|-----|
172
+ | Bounded label values | `method: GET/POST/PUT/DELETE` | `user_id: 1, 2, ..., 1M` |
173
+ | Normalize paths | `/api/users/{id}` | `/api/users/12345` |
174
+ | Max ~10 values per label | `status: 2xx, 3xx, 4xx, 5xx` | `status: 200, 201, 204, 301, ...` |
175
+ | No UUIDs or IDs in labels | Use log correlation instead | `request_id` as label |
176
+
177
+ ### Histogram Bucket Selection
178
+
179
+ | Use Case | Buckets |
180
+ |----------|---------|
181
+ | Fast API (p99 < 100ms) | `.001, .005, .01, .025, .05, .1, .25, .5, 1` |
182
+ | Standard API (p99 < 1s) | `.005, .01, .025, .05, .1, .25, .5, 1, 2.5, 5, 10` |
183
+ | Batch/background jobs | `.1, .5, 1, 5, 10, 30, 60, 120, 300` |
184
+ | File upload/download | `.1, .5, 1, 5, 10, 30, 60, 120, 300, 600` |
185
+
186
+ ## OpenTelemetry Setup
187
+
188
+ ### Tracer Provider
189
+
190
+ ```go
191
+ import (
192
+ "go.opentelemetry.io/otel"
193
+ "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
194
+ "go.opentelemetry.io/otel/sdk/resource"
195
+ sdktrace "go.opentelemetry.io/otel/sdk/trace"
196
+ semconv "go.opentelemetry.io/otel/semconv/v1.24.0"
197
+ )
198
+
199
+ func initTracer(ctx context.Context) (func(context.Context) error, error) {
200
+ exporter, err := otlptracegrpc.New(ctx,
201
+ otlptracegrpc.WithEndpoint("otel-collector:4317"),
202
+ otlptracegrpc.WithInsecure(),
203
+ )
204
+ if err != nil {
205
+ return nil, fmt.Errorf("create exporter: %w", err)
206
+ }
207
+
208
+ tp := sdktrace.NewTracerProvider(
209
+ sdktrace.WithBatcher(exporter),
210
+ sdktrace.WithResource(resource.NewWithAttributes(
211
+ semconv.SchemaURL,
212
+ semconv.ServiceNameKey.String("myapp"),
213
+ semconv.ServiceVersionKey.String("1.0.0"),
214
+ semconv.DeploymentEnvironmentKey.String("production"),
215
+ )),
216
+ sdktrace.WithSampler(sdktrace.ParentBased(
217
+ sdktrace.TraceIDRatioBased(0.1), // sample 10%
218
+ )),
219
+ )
220
+
221
+ otel.SetTracerProvider(tp)
222
+ return tp.Shutdown, nil
223
+ }
224
+ ```
225
+
226
+ ### Context Propagation in HTTP
227
+
228
+ ```go
229
+ import "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
230
+
231
+ // Client — inject trace context into outgoing requests
232
+ client := &http.Client{
233
+ Transport: otelhttp.NewTransport(http.DefaultTransport),
234
+ }
235
+
236
+ // Server — extract trace context from incoming requests
237
+ handler := otelhttp.NewHandler(mux, "server")
238
+ ```
239
+
240
+ ### Manual Span Creation
241
+
242
+ ```go
243
+ func (s *Service) ProcessOrder(ctx context.Context, orderID int64) error {
244
+ ctx, span := otel.Tracer("myapp").Start(ctx, "ProcessOrder")
245
+ defer span.End()
246
+
247
+ span.SetAttributes(
248
+ attribute.Int64("order.id", orderID),
249
+ )
250
+
251
+ if err := s.validate(ctx, orderID); err != nil {
252
+ span.RecordError(err)
253
+ span.SetStatus(codes.Error, err.Error())
254
+ return err
255
+ }
256
+
257
+ return s.execute(ctx, orderID)
258
+ }
259
+ ```
260
+
261
+ ## pprof Endpoints
262
+
263
+ ```go
264
+ import "net/http/pprof"
265
+
266
+ // Separate debug server (recommended for production)
267
+ go func() {
268
+ debugMux := http.NewServeMux()
269
+ debugMux.HandleFunc("/debug/pprof/", pprof.Index)
270
+ debugMux.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline)
271
+ debugMux.HandleFunc("/debug/pprof/profile", pprof.Profile)
272
+ debugMux.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
273
+ debugMux.HandleFunc("/debug/pprof/trace", pprof.Trace)
274
+ http.ListenAndServe("localhost:6060", debugMux) // localhost only!
275
+ }()
276
+ ```
277
+
278
+ **Enable block/mutex profiling (off by default):**
279
+
280
+ ```go
281
+ runtime.SetBlockProfileRate(1) // 1 = every block event
282
+ runtime.SetMutexProfileFraction(5) // 1/5 of mutex events
283
+ ```
284
+
285
+ ## Health Checks
286
+
287
+ ### Liveness vs Readiness
288
+
289
+ | Endpoint | Purpose | Checks | K8s Probe |
290
+ |----------|---------|--------|-----------|
291
+ | `/health` | Is the process alive? | Process up, not deadlocked | `livenessProbe` |
292
+ | `/ready` | Can it serve traffic? | DB connected, cache warm, deps OK | `readinessProbe` |
293
+
294
+ ```go
295
+ func (s *Server) healthHandler(w http.ResponseWriter, r *http.Request) {
296
+ w.Header().Set("Content-Type", "application/json")
297
+ w.WriteHeader(http.StatusOK)
298
+ json.NewEncoder(w).Encode(map[string]string{"status": "ok"})
299
+ }
300
+
301
+ func (s *Server) readyHandler(w http.ResponseWriter, r *http.Request) {
302
+ ctx, cancel := context.WithTimeout(r.Context(), 2*time.Second)
303
+ defer cancel()
304
+
305
+ checks := map[string]error{
306
+ "database": s.db.Ping(ctx),
307
+ "cache": s.cache.Ping(ctx),
308
+ }
309
+
310
+ status := http.StatusOK
311
+ result := make(map[string]string)
312
+ for name, err := range checks {
313
+ if err != nil {
314
+ status = http.StatusServiceUnavailable
315
+ result[name] = err.Error()
316
+ } else {
317
+ result[name] = "ok"
318
+ }
319
+ }
320
+
321
+ w.Header().Set("Content-Type", "application/json")
322
+ w.WriteHeader(status)
323
+ json.NewEncoder(w).Encode(result)
324
+ }
325
+ ```
326
+
327
+ ### Kubernetes Probe Config
328
+
329
+ ```yaml
330
+ livenessProbe:
331
+ httpGet:
332
+ path: /health
333
+ port: 8080
334
+ initialDelaySeconds: 5
335
+ periodSeconds: 10
336
+ failureThreshold: 3
337
+
338
+ readinessProbe:
339
+ httpGet:
340
+ path: /ready
341
+ port: 8080
342
+ initialDelaySeconds: 10
343
+ periodSeconds: 5
344
+ failureThreshold: 3
345
+ ```
346
+
347
+ ## When to Use
348
+
349
+ Apply when reviewing observability setup and instrumentation. Flag violations as:
350
+ - **CRITICAL**: No structured logging (fmt.Printf in production), unbounded label cardinality, sensitive data in logs/metrics
351
+ - **WARNING**: Missing health/readiness endpoints, no request duration metrics, pprof exposed publicly
352
+ - **SUGGESTION**: Could add sampling handler, trace context propagation, histogram bucket tuning