@ngxtm/devkit 2.0.2 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (534) hide show
  1. package/cli/detect.js +292 -0
  2. package/cli/index.js +205 -80
  3. package/cli/init.js +245 -0
  4. package/cli/install.js +231 -53
  5. package/cli/update.js +243 -0
  6. package/cli/utils.js +195 -0
  7. package/package.json +16 -20
  8. package/rules-index.json +76 -0
  9. package/scripts/generate-index.js +223 -0
  10. package/scripts/merge-commands.js +290 -0
  11. package/scripts/organize-rules.js +226 -0
  12. package/templates/base/hooks/lib/ck-config-utils.cjs +769 -0
  13. package/templates/base/hooks/lib/ck-paths.cjs +110 -0
  14. package/templates/base/hooks/lib/colors.cjs +95 -0
  15. package/templates/base/hooks/lib/config-counter.cjs +103 -0
  16. package/templates/base/hooks/lib/context-builder.cjs +600 -0
  17. package/templates/base/hooks/lib/context-tracker.cjs +335 -0
  18. package/templates/base/hooks/lib/privacy-checker.cjs +297 -0
  19. package/templates/base/hooks/lib/project-detector.cjs +430 -0
  20. package/templates/base/hooks/lib/scout-checker.cjs +172 -0
  21. package/templates/base/hooks/lib/transcript-parser.cjs +164 -0
  22. package/templates/base/hooks/privacy-block.cjs +145 -0
  23. package/agents/backend-engineer.md +0 -154
  24. package/agents/brainstormer.md +0 -169
  25. package/agents/business-analyst.md +0 -166
  26. package/agents/database-architect.md +0 -159
  27. package/agents/debugger.md +0 -155
  28. package/agents/designer.md +0 -150
  29. package/agents/devops-engineer.md +0 -155
  30. package/agents/docs-manager.md +0 -171
  31. package/agents/frontend-engineer.md +0 -159
  32. package/agents/game-engineer.md +0 -148
  33. package/agents/mobile-engineer.md +0 -149
  34. package/agents/performance-engineer.md +0 -152
  35. package/agents/planner.md +0 -161
  36. package/agents/project-manager.md +0 -160
  37. package/agents/researcher.md +0 -146
  38. package/agents/reviewer.md +0 -155
  39. package/agents/scouter.md +0 -157
  40. package/agents/security-engineer.md +0 -154
  41. package/agents/tech-lead.md +0 -159
  42. package/agents/tester.md +0 -157
  43. package/agents-claudekit/brainstormer.md +0 -113
  44. package/agents-claudekit/code-reviewer.md +0 -157
  45. package/agents-claudekit/code-simplifier.md +0 -42
  46. package/agents-claudekit/copywriter.md +0 -110
  47. package/agents-claudekit/database-admin.md +0 -92
  48. package/agents-claudekit/debugger.md +0 -137
  49. package/agents-claudekit/docs-manager.md +0 -208
  50. package/agents-claudekit/fullstack-developer.md +0 -95
  51. package/agents-claudekit/git-manager.md +0 -394
  52. package/agents-claudekit/journal-writer.md +0 -113
  53. package/agents-claudekit/mcp-manager.md +0 -93
  54. package/agents-claudekit/planner.md +0 -108
  55. package/agents-claudekit/project-manager.md +0 -125
  56. package/agents-claudekit/researcher.md +0 -38
  57. package/agents-claudekit/scout-external.md +0 -141
  58. package/agents-claudekit/scout.md +0 -107
  59. package/agents-claudekit/tester.md +0 -105
  60. package/agents-claudekit/ui-ux-designer.md +0 -236
  61. package/commands/ask.md +0 -64
  62. package/commands/brainstorm.md +0 -64
  63. package/commands/code.md +0 -64
  64. package/commands/cook.md +0 -64
  65. package/commands/debug.md +0 -64
  66. package/commands/design/fast.md +0 -134
  67. package/commands/fix/fast.md +0 -84
  68. package/commands/fix/hard.md +0 -116
  69. package/commands/fix.md +0 -64
  70. package/commands/plan/fast.md +0 -78
  71. package/commands/plan/hard.md +0 -131
  72. package/commands/plan.md +0 -64
  73. package/commands/test.md +0 -64
  74. package/matrix-skills/_index.yaml +0 -275
  75. package/matrix-skills/ai-ml.yaml +0 -353
  76. package/matrix-skills/architecture.yaml +0 -93
  77. package/matrix-skills/backend.yaml +0 -280
  78. package/matrix-skills/cloud.yaml +0 -112
  79. package/matrix-skills/data.yaml +0 -74
  80. package/matrix-skills/design.yaml +0 -98
  81. package/matrix-skills/devops.yaml +0 -200
  82. package/matrix-skills/frontend.yaml +0 -200
  83. package/matrix-skills/gaming.yaml +0 -39
  84. package/matrix-skills/languages.yaml +0 -160
  85. package/matrix-skills/management.yaml +0 -50
  86. package/matrix-skills/mcp.yaml +0 -82
  87. package/matrix-skills/mobile.yaml +0 -85
  88. package/matrix-skills/performance.yaml +0 -23
  89. package/matrix-skills/planning.yaml +0 -117
  90. package/matrix-skills/quality.yaml +0 -195
  91. package/matrix-skills/research.yaml +0 -106
  92. package/matrix-skills/security.yaml +0 -293
  93. package/matrix-skills/tools.yaml +0 -352
  94. package/output-styles/coding-level-0-eli5.md +0 -103
  95. package/output-styles/coding-level-1-junior.md +0 -124
  96. package/output-styles/coding-level-2-mid.md +0 -146
  97. package/output-styles/coding-level-3-senior.md +0 -148
  98. package/output-styles/coding-level-4-lead.md +0 -159
  99. package/output-styles/coding-level-5-god.md +0 -91
  100. package/rules/README.md +0 -141
  101. package/rules/metadata.json +0 -54
  102. package/settings.json +0 -3
  103. package/statusline.cjs +0 -500
  104. package/statusline.ps1 +0 -307
  105. package/statusline.sh +0 -237
  106. package/workflows/development-rules.md +0 -42
  107. package/workflows/documentation-management.md +0 -121
  108. package/workflows/orchestration-protocol.md +0 -16
  109. package/workflows/primary-workflow.md +0 -45
  110. /package/{commands → merged-commands}/ask/fast.md +0 -0
  111. /package/{commands → merged-commands}/ask/hard.md +0 -0
  112. /package/{commands-claudekit → merged-commands}/ask.md +0 -0
  113. /package/{commands → merged-commands}/auto.md +0 -0
  114. /package/{commands-claudekit → merged-commands}/bootstrap/auto/fast.md +0 -0
  115. /package/{commands-claudekit → merged-commands}/bootstrap/auto/parallel.md +0 -0
  116. /package/{commands-claudekit → merged-commands}/bootstrap/auto.md +0 -0
  117. /package/{commands-claudekit → merged-commands}/bootstrap.md +0 -0
  118. /package/{commands → merged-commands}/brainstorm/fast.md +0 -0
  119. /package/{commands → merged-commands}/brainstorm/hard.md +0 -0
  120. /package/{commands-claudekit → merged-commands}/brainstorm.md +0 -0
  121. /package/{commands-claudekit → merged-commands}/ck-help.md +0 -0
  122. /package/{commands-claudekit → merged-commands}/code/auto.md +0 -0
  123. /package/{commands → merged-commands}/code/fast.md +0 -0
  124. /package/{commands → merged-commands}/code/hard.md +0 -0
  125. /package/{commands-claudekit → merged-commands}/code/no-test.md +0 -0
  126. /package/{commands-claudekit → merged-commands}/code/parallel.md +0 -0
  127. /package/{commands-claudekit → merged-commands}/code.md +0 -0
  128. /package/{commands-claudekit → merged-commands}/coding-level.md +0 -0
  129. /package/{commands-claudekit → merged-commands}/content/cro.md +0 -0
  130. /package/{commands-claudekit → merged-commands}/content/enhance.md +0 -0
  131. /package/{commands-claudekit → merged-commands}/content/fast.md +0 -0
  132. /package/{commands-claudekit → merged-commands}/content/good.md +0 -0
  133. /package/{commands-claudekit → merged-commands}/cook/auto/fast.md +0 -0
  134. /package/{commands-claudekit → merged-commands}/cook/auto/parallel.md +0 -0
  135. /package/{commands-claudekit → merged-commands}/cook/auto.md +0 -0
  136. /package/{commands → merged-commands}/cook/fast.md +0 -0
  137. /package/{commands → merged-commands}/cook/hard.md +0 -0
  138. /package/{commands-claudekit → merged-commands}/cook.md +0 -0
  139. /package/{commands → merged-commands}/debug/fast.md +0 -0
  140. /package/{commands → merged-commands}/debug/hard.md +0 -0
  141. /package/{commands-claudekit → merged-commands}/debug.md +0 -0
  142. /package/{commands → merged-commands}/deploy/check.md +0 -0
  143. /package/{commands → merged-commands}/deploy/preview.md +0 -0
  144. /package/{commands → merged-commands}/deploy/production.md +0 -0
  145. /package/{commands → merged-commands}/deploy/rollback.md +0 -0
  146. /package/{commands → merged-commands}/deploy.md +0 -0
  147. /package/{commands-claudekit → merged-commands}/design/3d.md +0 -0
  148. /package/{commands-claudekit → merged-commands}/design/describe.md +0 -0
  149. /package/{commands-claudekit → merged-commands}/design/fast.md +0 -0
  150. /package/{commands-claudekit → merged-commands}/design/good.md +0 -0
  151. /package/{commands → merged-commands}/design/hard.md +0 -0
  152. /package/{commands-claudekit → merged-commands}/design/screenshot.md +0 -0
  153. /package/{commands-claudekit → merged-commands}/design/video.md +0 -0
  154. /package/{commands → merged-commands}/design.md +0 -0
  155. /package/{commands → merged-commands}/docs/audit.md +0 -0
  156. /package/{commands → merged-commands}/docs/business.md +0 -0
  157. /package/{commands → merged-commands}/docs/core.md +0 -0
  158. /package/{commands-claudekit → merged-commands}/docs/init.md +0 -0
  159. /package/{commands-claudekit → merged-commands}/docs/summarize.md +0 -0
  160. /package/{commands-claudekit → merged-commands}/docs/update.md +0 -0
  161. /package/{commands → merged-commands}/docs.md +0 -0
  162. /package/{commands-claudekit → merged-commands}/fix/ci.md +0 -0
  163. /package/{commands-claudekit → merged-commands}/fix/fast.md +0 -0
  164. /package/{commands-claudekit → merged-commands}/fix/hard.md +0 -0
  165. /package/{commands-claudekit → merged-commands}/fix/logs.md +0 -0
  166. /package/{commands-claudekit → merged-commands}/fix/parallel.md +0 -0
  167. /package/{commands-claudekit → merged-commands}/fix/test.md +0 -0
  168. /package/{commands-claudekit → merged-commands}/fix/types.md +0 -0
  169. /package/{commands-claudekit → merged-commands}/fix/ui.md +0 -0
  170. /package/{commands-claudekit → merged-commands}/fix.md +0 -0
  171. /package/{commands-claudekit → merged-commands}/git/cm.md +0 -0
  172. /package/{commands-claudekit → merged-commands}/git/cp.md +0 -0
  173. /package/{commands-claudekit → merged-commands}/git/merge.md +0 -0
  174. /package/{commands-claudekit → merged-commands}/git/pr.md +0 -0
  175. /package/{commands-claudekit → merged-commands}/integrate/polar.md +0 -0
  176. /package/{commands-claudekit → merged-commands}/integrate/sepay.md +0 -0
  177. /package/{commands-claudekit → merged-commands}/journal.md +0 -0
  178. /package/{commands-claudekit → merged-commands}/kanban.md +0 -0
  179. /package/{commands-claudekit → merged-commands}/plan/archive.md +0 -0
  180. /package/{commands-claudekit → merged-commands}/plan/ci.md +0 -0
  181. /package/{commands-claudekit → merged-commands}/plan/cro.md +0 -0
  182. /package/{commands-claudekit → merged-commands}/plan/fast.md +0 -0
  183. /package/{commands-claudekit → merged-commands}/plan/hard.md +0 -0
  184. /package/{commands-claudekit → merged-commands}/plan/parallel.md +0 -0
  185. /package/{commands-claudekit → merged-commands}/plan/two.md +0 -0
  186. /package/{commands-claudekit → merged-commands}/plan/validate.md +0 -0
  187. /package/{commands-claudekit → merged-commands}/plan.md +0 -0
  188. /package/{commands-claudekit → merged-commands}/preview.md +0 -0
  189. /package/{commands-claudekit → merged-commands}/review/codebase/parallel.md +0 -0
  190. /package/{commands-claudekit → merged-commands}/review/codebase.md +0 -0
  191. /package/{commands → merged-commands}/review/fast.md +0 -0
  192. /package/{commands → merged-commands}/review/hard.md +0 -0
  193. /package/{commands → merged-commands}/review.md +0 -0
  194. /package/{commands-claudekit → merged-commands}/scout/ext.md +0 -0
  195. /package/{commands-claudekit → merged-commands}/scout.md +0 -0
  196. /package/{commands-claudekit → merged-commands}/skill/add.md +0 -0
  197. /package/{commands-claudekit → merged-commands}/skill/create.md +0 -0
  198. /package/{commands-claudekit → merged-commands}/skill/fix-logs.md +0 -0
  199. /package/{commands-claudekit → merged-commands}/skill/optimize/auto.md +0 -0
  200. /package/{commands-claudekit → merged-commands}/skill/optimize.md +0 -0
  201. /package/{commands-claudekit → merged-commands}/skill/plan.md +0 -0
  202. /package/{commands-claudekit → merged-commands}/skill/update.md +0 -0
  203. /package/{commands → merged-commands}/test/fast.md +0 -0
  204. /package/{commands → merged-commands}/test/hard.md +0 -0
  205. /package/{commands-claudekit → merged-commands}/test/ui.md +0 -0
  206. /package/{commands-claudekit → merged-commands}/test.md +0 -0
  207. /package/{commands-claudekit → merged-commands}/use-mcp.md +0 -0
  208. /package/{commands-claudekit → merged-commands}/watzup.md +0 -0
  209. /package/{commands-claudekit → merged-commands}/worktree.md +0 -0
  210. /package/{rules → templates/dart/rules}/dart/best-practices/SKILL.md +0 -0
  211. /package/{rules → templates/dart/rules}/dart/language/SKILL.md +0 -0
  212. /package/{rules → templates/dart/rules}/dart/tooling/SKILL.md +0 -0
  213. /package/{rules → templates/flutter/rules}/flutter/auto-route-navigation/SKILL.md +0 -0
  214. /package/{rules → templates/flutter/rules}/flutter/auto-route-navigation/references/REFERENCE.md +0 -0
  215. /package/{rules → templates/flutter/rules}/flutter/auto-route-navigation/references/router-config.md +0 -0
  216. /package/{rules → templates/flutter/rules}/flutter/bloc-state-management/SKILL.md +0 -0
  217. /package/{rules → templates/flutter/rules}/flutter/bloc-state-management/references/REFERENCE.md +0 -0
  218. /package/{rules → templates/flutter/rules}/flutter/bloc-state-management/references/auth-bloc-example.md +0 -0
  219. /package/{rules → templates/flutter/rules}/flutter/bloc-state-management/references/equatable-usage.md +0 -0
  220. /package/{rules → templates/flutter/rules}/flutter/bloc-state-management/references/property-based-state.md +0 -0
  221. /package/{rules → templates/flutter/rules}/flutter/bloc.rule.md +0 -0
  222. /package/{rules → templates/flutter/rules}/flutter/cicd/SKILL.md +0 -0
  223. /package/{rules → templates/flutter/rules}/flutter/cicd/references/advanced-workflow.md +0 -0
  224. /package/{rules → templates/flutter/rules}/flutter/cicd/references/fastlane.md +0 -0
  225. /package/{rules → templates/flutter/rules}/flutter/cicd/references/github-actions.md +0 -0
  226. /package/{rules → templates/flutter/rules}/flutter/dependency-injection/SKILL.md +0 -0
  227. /package/{rules → templates/flutter/rules}/flutter/dependency-injection/references/REFERENCE.md +0 -0
  228. /package/{rules → templates/flutter/rules}/flutter/dependency-injection/references/modules.md +0 -0
  229. /package/{rules → templates/flutter/rules}/flutter/error-handling/SKILL.md +0 -0
  230. /package/{rules → templates/flutter/rules}/flutter/error-handling/references/REFERENCE.md +0 -0
  231. /package/{rules → templates/flutter/rules}/flutter/error-handling/references/error-mapping.md +0 -0
  232. /package/{rules → templates/flutter/rules}/flutter/feature-based-clean-architecture/SKILL.md +0 -0
  233. /package/{rules → templates/flutter/rules}/flutter/feature-based-clean-architecture/references/REFERENCE.md +0 -0
  234. /package/{rules → templates/flutter/rules}/flutter/feature-based-clean-architecture/references/folder-structure.md +0 -0
  235. /package/{rules → templates/flutter/rules}/flutter/getx-navigation/SKILL.md +0 -0
  236. /package/{rules → templates/flutter/rules}/flutter/getx-navigation/references/app-pages.md +0 -0
  237. /package/{rules → templates/flutter/rules}/flutter/getx-navigation/references/middleware-example.md +0 -0
  238. /package/{rules → templates/flutter/rules}/flutter/getx-state-management/SKILL.md +0 -0
  239. /package/{rules → templates/flutter/rules}/flutter/getx-state-management/references/binding-example.md +0 -0
  240. /package/{rules → templates/flutter/rules}/flutter/getx-state-management/references/reactive-vs-simple.md +0 -0
  241. /package/{rules → templates/flutter/rules}/flutter/go-router-navigation/SKILL.md +0 -0
  242. /package/{rules → templates/flutter/rules}/flutter/idiomatic-flutter/SKILL.md +0 -0
  243. /package/{rules → templates/flutter/rules}/flutter/layer-based-clean-architecture/SKILL.md +0 -0
  244. /package/{rules → templates/flutter/rules}/flutter/layer-based-clean-architecture/references/REFERENCE.md +0 -0
  245. /package/{rules → templates/flutter/rules}/flutter/layer-based-clean-architecture/references/repository-mapping.md +0 -0
  246. /package/{rules → templates/flutter/rules}/flutter/localization/SKILL.md +0 -0
  247. /package/{rules → templates/flutter/rules}/flutter/localization/references/REFERENCE.md +0 -0
  248. /package/{rules → templates/flutter/rules}/flutter/localization/references/sheet-loader.md +0 -0
  249. /package/{rules → templates/flutter/rules}/flutter/navigator-v1-navigation/SKILL.md +0 -0
  250. /package/{rules → templates/flutter/rules}/flutter/navigator-v1-navigation/references/on-generate-route.md +0 -0
  251. /package/{rules → templates/flutter/rules}/flutter/performance/SKILL.md +0 -0
  252. /package/{rules → templates/flutter/rules}/flutter/retrofit-networking/SKILL.md +0 -0
  253. /package/{rules → templates/flutter/rules}/flutter/retrofit-networking/references/REFERENCE.md +0 -0
  254. /package/{rules → templates/flutter/rules}/flutter/retrofit-networking/references/token-refresh.md +0 -0
  255. /package/{rules → templates/flutter/rules}/flutter/riverpod-state-management/SKILL.md +0 -0
  256. /package/{rules → templates/flutter/rules}/flutter/riverpod-state-management/references/architecture.md +0 -0
  257. /package/{rules → templates/flutter/rules}/flutter/riverpod-state-management/references/best-practices.md +0 -0
  258. /package/{rules → templates/flutter/rules}/flutter/riverpod-state-management/references/testing.md +0 -0
  259. /package/{rules → templates/flutter/rules}/flutter/riverpod.rule.md +0 -0
  260. /package/{rules → templates/flutter/rules}/flutter/security/SKILL.md +0 -0
  261. /package/{rules → templates/flutter/rules}/flutter/security/references/REFERENCE.md +0 -0
  262. /package/{rules → templates/flutter/rules}/flutter/security/references/network-security.md +0 -0
  263. /package/{rules → templates/flutter/rules}/flutter/testing/SKILL.md +0 -0
  264. /package/{rules → templates/flutter/rules}/flutter/testing/references/REFERENCE.md +0 -0
  265. /package/{rules → templates/flutter/rules}/flutter/testing/references/bloc-testing.md +0 -0
  266. /package/{rules → templates/flutter/rules}/flutter/testing/references/integration-testing.md +0 -0
  267. /package/{rules → templates/flutter/rules}/flutter/testing/references/robot-pattern.md +0 -0
  268. /package/{rules → templates/flutter/rules}/flutter/testing/references/unit-testing.md +0 -0
  269. /package/{rules → templates/flutter/rules}/flutter/testing/references/widget-testing.md +0 -0
  270. /package/{rules → templates/flutter/rules}/flutter/widgets/SKILL.md +0 -0
  271. /package/{rules → templates/golang/rules}/golang/chi-router/SKILL.md +0 -0
  272. /package/{rules → templates/golang/rules}/golang/chi-router/references/REFERENCE.md +0 -0
  273. /package/{rules → templates/golang/rules}/golang/chi-router/references/routing-patterns.md +0 -0
  274. /package/{rules → templates/golang/rules}/golang/cobra-cli/SKILL.md +0 -0
  275. /package/{rules → templates/golang/rules}/golang/cobra-cli/references/REFERENCE.md +0 -0
  276. /package/{rules → templates/golang/rules}/golang/cobra-cli/references/command-patterns.md +0 -0
  277. /package/{rules → templates/golang/rules}/golang/core/SKILL.md +0 -0
  278. /package/{rules → templates/golang/rules}/golang/core/references/REFERENCE.md +0 -0
  279. /package/{rules → templates/golang/rules}/golang/core/references/concurrency-patterns.md +0 -0
  280. /package/{rules → templates/golang/rules}/golang/core/references/error-handling.md +0 -0
  281. /package/{rules → templates/golang/rules}/golang/echo-framework/SKILL.md +0 -0
  282. /package/{rules → templates/golang/rules}/golang/echo-framework/references/REFERENCE.md +0 -0
  283. /package/{rules → templates/golang/rules}/golang/echo-framework/references/middleware-patterns.md +0 -0
  284. /package/{rules → templates/golang/rules}/golang/echo-framework/references/routing-patterns.md +0 -0
  285. /package/{rules → templates/golang/rules}/golang/ent-orm/SKILL.md +0 -0
  286. /package/{rules → templates/golang/rules}/golang/ent-orm/references/REFERENCE.md +0 -0
  287. /package/{rules → templates/golang/rules}/golang/ent-orm/references/schema-patterns.md +0 -0
  288. /package/{rules → templates/golang/rules}/golang/fiber-framework/SKILL.md +0 -0
  289. /package/{rules → templates/golang/rules}/golang/fiber-framework/references/REFERENCE.md +0 -0
  290. /package/{rules → templates/golang/rules}/golang/fiber-framework/references/routing-patterns.md +0 -0
  291. /package/{rules → templates/golang/rules}/golang/gin-framework/SKILL.md +0 -0
  292. /package/{rules → templates/golang/rules}/golang/gin-framework/references/REFERENCE.md +0 -0
  293. /package/{rules → templates/golang/rules}/golang/gin-framework/references/middleware-patterns.md +0 -0
  294. /package/{rules → templates/golang/rules}/golang/gorm-orm/SKILL.md +0 -0
  295. /package/{rules → templates/golang/rules}/golang/gorm-orm/references/REFERENCE.md +0 -0
  296. /package/{rules → templates/golang/rules}/golang/gorm-orm/references/model-definitions.md +0 -0
  297. /package/{rules → templates/golang/rules}/golang/gorm-orm/references/query-patterns.md +0 -0
  298. /package/{rules → templates/golang/rules}/golang/grpc/SKILL.md +0 -0
  299. /package/{rules → templates/golang/rules}/golang/grpc/references/REFERENCE.md +0 -0
  300. /package/{rules → templates/golang/rules}/golang/grpc/references/service-patterns.md +0 -0
  301. /package/{rules → templates/golang/rules}/golang/testify/SKILL.md +0 -0
  302. /package/{rules → templates/golang/rules}/golang/testify/references/REFERENCE.md +0 -0
  303. /package/{rules → templates/golang/rules}/golang/testify/references/assert-patterns.md +0 -0
  304. /package/{rules → templates/golang/rules}/golang/validator/SKILL.md +0 -0
  305. /package/{rules → templates/golang/rules}/golang/validator/references/REFERENCE.md +0 -0
  306. /package/{rules → templates/golang/rules}/golang/validator/references/validation-tags.md +0 -0
  307. /package/{rules → templates/golang/rules}/golang/viper-config/SKILL.md +0 -0
  308. /package/{rules → templates/golang/rules}/golang/viper-config/references/REFERENCE.md +0 -0
  309. /package/{rules → templates/golang/rules}/golang/viper-config/references/config-loading.md +0 -0
  310. /package/{rules → templates/golang/rules}/golang/wire-di/SKILL.md +0 -0
  311. /package/{rules → templates/golang/rules}/golang/wire-di/references/REFERENCE.md +0 -0
  312. /package/{rules → templates/golang/rules}/golang/wire-di/references/provider-patterns.md +0 -0
  313. /package/{rules → templates/golang/rules}/golang/zap-logging/SKILL.md +0 -0
  314. /package/{rules → templates/golang/rules}/golang/zap-logging/references/REFERENCE.md +0 -0
  315. /package/{rules → templates/golang/rules}/golang/zap-logging/references/logger-config.md +0 -0
  316. /package/{rules → templates/java/rules}/java/build-gradle/SKILL.md +0 -0
  317. /package/{rules → templates/java/rules}/java/build-gradle/references/REFERENCE.md +0 -0
  318. /package/{rules → templates/java/rules}/java/build-gradle/references/kotlin-dsl.md +0 -0
  319. /package/{rules → templates/java/rules}/java/build-gradle/references/task-configuration.md +0 -0
  320. /package/{rules → templates/java/rules}/java/build-maven/SKILL.md +0 -0
  321. /package/{rules → templates/java/rules}/java/build-maven/references/REFERENCE.md +0 -0
  322. /package/{rules → templates/java/rules}/java/build-maven/references/dependency-management.md +0 -0
  323. /package/{rules → templates/java/rules}/java/build-maven/references/lifecycle-phases.md +0 -0
  324. /package/{rules → templates/java/rules}/java/graalvm-native/SKILL.md +0 -0
  325. /package/{rules → templates/java/rules}/java/graalvm-native/references/REFERENCE.md +0 -0
  326. /package/{rules → templates/java/rules}/java/java-collections-streams/SKILL.md +0 -0
  327. /package/{rules → templates/java/rules}/java/java-collections-streams/references/REFERENCE.md +0 -0
  328. /package/{rules → templates/java/rules}/java/java-collections-streams/references/collectors-patterns.md +0 -0
  329. /package/{rules → templates/java/rules}/java/java-collections-streams/references/stream-pipelines.md +0 -0
  330. /package/{rules → templates/java/rules}/java/java-concurrency/SKILL.md +0 -0
  331. /package/{rules → templates/java/rules}/java/java-concurrency/references/REFERENCE.md +0 -0
  332. /package/{rules → templates/java/rules}/java/java-concurrency/references/completable-future.md +0 -0
  333. /package/{rules → templates/java/rules}/java/java-concurrency/references/executor-patterns.md +0 -0
  334. /package/{rules → templates/java/rules}/java/java-concurrency/references/virtual-threads.md +0 -0
  335. /package/{rules → templates/java/rules}/java/java-core-language/SKILL.md +0 -0
  336. /package/{rules → templates/java/rules}/java/java-core-language/references/REFERENCE.md +0 -0
  337. /package/{rules → templates/java/rules}/java/java-core-language/references/jvm-memory-model.md +0 -0
  338. /package/{rules → templates/java/rules}/java/java-core-language/references/modern-java-features.md +0 -0
  339. /package/{rules → templates/java/rules}/java/java-project-structure/SKILL.md +0 -0
  340. /package/{rules → templates/java/rules}/java/java-project-structure/references/REFERENCE.md +0 -0
  341. /package/{rules → templates/java/rules}/java/java-project-structure/references/maven-project-layout.md +0 -0
  342. /package/{rules → templates/java/rules}/java/java-project-structure/references/module-system.md +0 -0
  343. /package/{rules → templates/java/rules}/java/micronaut-core/SKILL.md +0 -0
  344. /package/{rules → templates/java/rules}/java/micronaut-core/references/REFERENCE.md +0 -0
  345. /package/{rules → templates/java/rules}/java/micronaut-reactive/SKILL.md +0 -0
  346. /package/{rules → templates/java/rules}/java/micronaut-reactive/references/REFERENCE.md +0 -0
  347. /package/{rules → templates/java/rules}/java/quarkus-core/SKILL.md +0 -0
  348. /package/{rules → templates/java/rules}/java/quarkus-core/references/REFERENCE.md +0 -0
  349. /package/{rules → templates/java/rules}/java/quarkus-reactive/SKILL.md +0 -0
  350. /package/{rules → templates/java/rules}/java/quarkus-reactive/references/REFERENCE.md +0 -0
  351. /package/{rules → templates/java/rules}/java/spring-batch/SKILL.md +0 -0
  352. /package/{rules → templates/java/rules}/java/spring-batch/references/REFERENCE.md +0 -0
  353. /package/{rules → templates/java/rules}/java/spring-boot-architecture/SKILL.md +0 -0
  354. /package/{rules → templates/java/rules}/java/spring-boot-architecture/references/REFERENCE.md +0 -0
  355. /package/{rules → templates/java/rules}/java/spring-boot-architecture/references/auto-configuration.md +0 -0
  356. /package/{rules → templates/java/rules}/java/spring-boot-architecture/references/configuration-properties.md +0 -0
  357. /package/{rules → templates/java/rules}/java/spring-boot-web/SKILL.md +0 -0
  358. /package/{rules → templates/java/rules}/java/spring-boot-web/references/REFERENCE.md +0 -0
  359. /package/{rules → templates/java/rules}/java/spring-cloud/SKILL.md +0 -0
  360. /package/{rules → templates/java/rules}/java/spring-cloud/references/REFERENCE.md +0 -0
  361. /package/{rules → templates/java/rules}/java/spring-data-jpa/SKILL.md +0 -0
  362. /package/{rules → templates/java/rules}/java/spring-data-jpa/references/REFERENCE.md +0 -0
  363. /package/{rules → templates/java/rules}/java/spring-security/SKILL.md +0 -0
  364. /package/{rules → templates/java/rules}/java/spring-security/references/REFERENCE.md +0 -0
  365. /package/{rules → templates/java/rules}/java/spring-security/references/jwt-auth-flow.md +0 -0
  366. /package/{rules → templates/java/rules}/java/testing-junit-mockito/SKILL.md +0 -0
  367. /package/{rules → templates/java/rules}/java/testing-junit-mockito/references/REFERENCE.md +0 -0
  368. /package/{rules → templates/java/rules}/java/testing-junit-mockito/references/junit5-patterns.md +0 -0
  369. /package/{rules → templates/java/rules}/java/testing-junit-mockito/references/mockito-patterns.md +0 -0
  370. /package/{rules → templates/java/rules}/java/testing-junit-mockito/references/spring-boot-testing.md +0 -0
  371. /package/{rules → templates/javascript/rules}/javascript/best-practices/SKILL.md +0 -0
  372. /package/{rules → templates/javascript/rules}/javascript/best-practices/references/REFERENCE.md +0 -0
  373. /package/{rules → templates/javascript/rules}/javascript/language/SKILL.md +0 -0
  374. /package/{rules → templates/javascript/rules}/javascript/language/references/REFERENCE.md +0 -0
  375. /package/{rules → templates/javascript/rules}/javascript/tooling/SKILL.md +0 -0
  376. /package/{rules → templates/javascript/rules}/javascript/tooling/references/REFERENCE.md +0 -0
  377. /package/{rules → templates/nestjs/rules}/nestjs/api-standards/SKILL.md +0 -0
  378. /package/{rules → templates/nestjs/rules}/nestjs/api-standards/references/pagination-wrapper.md +0 -0
  379. /package/{rules → templates/nestjs/rules}/nestjs/architecture/SKILL.md +0 -0
  380. /package/{rules → templates/nestjs/rules}/nestjs/architecture/references/dynamic-module.md +0 -0
  381. /package/{rules → templates/nestjs/rules}/nestjs/caching/SKILL.md +0 -0
  382. /package/{rules → templates/nestjs/rules}/nestjs/caching/references/REFERENCE.md +0 -0
  383. /package/{rules → templates/nestjs/rules}/nestjs/caching/references/cache-patterns.md +0 -0
  384. /package/{rules → templates/nestjs/rules}/nestjs/configuration/SKILL.md +0 -0
  385. /package/{rules → templates/nestjs/rules}/nestjs/configuration/references/REFERENCE.md +0 -0
  386. /package/{rules → templates/nestjs/rules}/nestjs/configuration/references/config-patterns.md +0 -0
  387. /package/{rules → templates/nestjs/rules}/nestjs/controllers-services/SKILL.md +0 -0
  388. /package/{rules → templates/nestjs/rules}/nestjs/controllers-services/references/REFERENCE.md +0 -0
  389. /package/{rules → templates/nestjs/rules}/nestjs/controllers-services/references/controller-patterns.md +0 -0
  390. /package/{rules → templates/nestjs/rules}/nestjs/controllers-services/references/service-patterns.md +0 -0
  391. /package/{rules → templates/nestjs/rules}/nestjs/database/SKILL.md +0 -0
  392. /package/{rules → templates/nestjs/rules}/nestjs/database/references/REFERENCE.md +0 -0
  393. /package/{rules → templates/nestjs/rules}/nestjs/database/references/typeorm-patterns.md +0 -0
  394. /package/{rules → templates/nestjs/rules}/nestjs/deployment/SKILL.md +0 -0
  395. /package/{rules → templates/nestjs/rules}/nestjs/deployment/references/REFERENCE.md +0 -0
  396. /package/{rules → templates/nestjs/rules}/nestjs/deployment/references/deployment-patterns.md +0 -0
  397. /package/{rules → templates/nestjs/rules}/nestjs/documentation/SKILL.md +0 -0
  398. /package/{rules → templates/nestjs/rules}/nestjs/documentation/references/REFERENCE.md +0 -0
  399. /package/{rules → templates/nestjs/rules}/nestjs/documentation/references/swagger-patterns.md +0 -0
  400. /package/{rules → templates/nestjs/rules}/nestjs/error-handling/SKILL.md +0 -0
  401. /package/{rules → templates/nestjs/rules}/nestjs/error-handling/references/REFERENCE.md +0 -0
  402. /package/{rules → templates/nestjs/rules}/nestjs/error-handling/references/exception-filters.md +0 -0
  403. /package/{rules → templates/nestjs/rules}/nestjs/file-uploads/SKILL.md +0 -0
  404. /package/{rules → templates/nestjs/rules}/nestjs/file-uploads/references/REFERENCE.md +0 -0
  405. /package/{rules → templates/nestjs/rules}/nestjs/file-uploads/references/upload-patterns.md +0 -0
  406. /package/{rules → templates/nestjs/rules}/nestjs/observability/SKILL.md +0 -0
  407. /package/{rules → templates/nestjs/rules}/nestjs/observability/references/REFERENCE.md +0 -0
  408. /package/{rules → templates/nestjs/rules}/nestjs/observability/references/logging-metrics.md +0 -0
  409. /package/{rules → templates/nestjs/rules}/nestjs/performance/SKILL.md +0 -0
  410. /package/{rules → templates/nestjs/rules}/nestjs/performance/references/REFERENCE.md +0 -0
  411. /package/{rules → templates/nestjs/rules}/nestjs/performance/references/performance-patterns.md +0 -0
  412. /package/{rules → templates/nestjs/rules}/nestjs/real-time/SKILL.md +0 -0
  413. /package/{rules → templates/nestjs/rules}/nestjs/real-time/references/REFERENCE.md +0 -0
  414. /package/{rules → templates/nestjs/rules}/nestjs/real-time/references/websocket-patterns.md +0 -0
  415. /package/{rules → templates/nestjs/rules}/nestjs/scheduling/SKILL.md +0 -0
  416. /package/{rules → templates/nestjs/rules}/nestjs/scheduling/references/REFERENCE.md +0 -0
  417. /package/{rules → templates/nestjs/rules}/nestjs/scheduling/references/scheduling-patterns.md +0 -0
  418. /package/{rules → templates/nestjs/rules}/nestjs/search/SKILL.md +0 -0
  419. /package/{rules → templates/nestjs/rules}/nestjs/search/references/REFERENCE.md +0 -0
  420. /package/{rules → templates/nestjs/rules}/nestjs/search/references/search-patterns.md +0 -0
  421. /package/{rules → templates/nestjs/rules}/nestjs/security/SKILL.md +0 -0
  422. /package/{rules → templates/nestjs/rules}/nestjs/security/references/REFERENCE.md +0 -0
  423. /package/{rules → templates/nestjs/rules}/nestjs/security/references/authentication.md +0 -0
  424. /package/{rules → templates/nestjs/rules}/nestjs/testing/SKILL.md +0 -0
  425. /package/{rules → templates/nestjs/rules}/nestjs/testing/references/REFERENCE.md +0 -0
  426. /package/{rules → templates/nestjs/rules}/nestjs/testing/references/unit-testing.md +0 -0
  427. /package/{rules → templates/nestjs/rules}/nestjs/transport/SKILL.md +0 -0
  428. /package/{rules → templates/nestjs/rules}/nestjs/transport/references/REFERENCE.md +0 -0
  429. /package/{rules → templates/nestjs/rules}/nestjs/transport/references/microservices-patterns.md +0 -0
  430. /package/{rules → templates/nextjs/rules}/nextjs/app-router/SKILL.md +0 -0
  431. /package/{rules → templates/nextjs/rules}/nextjs/app-router/references/REFERENCE.md +0 -0
  432. /package/{rules → templates/nextjs/rules}/nextjs/app-router/references/routing-patterns.md +0 -0
  433. /package/{rules → templates/nextjs/rules}/nextjs/architecture/SKILL.md +0 -0
  434. /package/{rules → templates/nextjs/rules}/nextjs/architecture/references/fsd-structure.md +0 -0
  435. /package/{rules → templates/nextjs/rules}/nextjs/authentication/SKILL.md +0 -0
  436. /package/{rules → templates/nextjs/rules}/nextjs/authentication/references/auth-implementation.md +0 -0
  437. /package/{rules → templates/nextjs/rules}/nextjs/caching/SKILL.md +0 -0
  438. /package/{rules → templates/nextjs/rules}/nextjs/caching/references/REFERENCE.md +0 -0
  439. /package/{rules → templates/nextjs/rules}/nextjs/caching/references/cache-strategies.md +0 -0
  440. /package/{rules → templates/nextjs/rules}/nextjs/data-access-layer/SKILL.md +0 -0
  441. /package/{rules → templates/nextjs/rules}/nextjs/data-access-layer/references/patterns.md +0 -0
  442. /package/{rules → templates/nextjs/rules}/nextjs/data-fetching/SKILL.md +0 -0
  443. /package/{rules → templates/nextjs/rules}/nextjs/data-fetching/references/REFERENCE.md +0 -0
  444. /package/{rules → templates/nextjs/rules}/nextjs/data-fetching/references/fetch-patterns.md +0 -0
  445. /package/{rules → templates/nextjs/rules}/nextjs/internationalization/SKILL.md +0 -0
  446. /package/{rules → templates/nextjs/rules}/nextjs/internationalization/references/REFERENCE.md +0 -0
  447. /package/{rules → templates/nextjs/rules}/nextjs/internationalization/references/i18n-patterns.md +0 -0
  448. /package/{rules → templates/nextjs/rules}/nextjs/optimization/SKILL.md +0 -0
  449. /package/{rules → templates/nextjs/rules}/nextjs/optimization/references/REFERENCE.md +0 -0
  450. /package/{rules → templates/nextjs/rules}/nextjs/optimization/references/optimization-patterns.md +0 -0
  451. /package/{rules → templates/nextjs/rules}/nextjs/rendering/SKILL.md +0 -0
  452. /package/{rules → templates/nextjs/rules}/nextjs/rendering/references/REFERENCE.md +0 -0
  453. /package/{rules → templates/nextjs/rules}/nextjs/rendering/references/rendering-modes.md +0 -0
  454. /package/{rules → templates/nextjs/rules}/nextjs/server-actions/SKILL.md +0 -0
  455. /package/{rules → templates/nextjs/rules}/nextjs/server-actions/references/REFERENCE.md +0 -0
  456. /package/{rules → templates/nextjs/rules}/nextjs/server-actions/references/action-patterns.md +0 -0
  457. /package/{rules → templates/nextjs/rules}/nextjs/server-components/SKILL.md +0 -0
  458. /package/{rules → templates/nextjs/rules}/nextjs/server-components/references/REFERENCE.md +0 -0
  459. /package/{rules → templates/nextjs/rules}/nextjs/server-components/references/component-patterns.md +0 -0
  460. /package/{rules → templates/nextjs/rules}/nextjs/state-management/SKILL.md +0 -0
  461. /package/{rules → templates/nextjs/rules}/nextjs/state-management/references/REFERENCE.md +0 -0
  462. /package/{rules → templates/nextjs/rules}/nextjs/state-management/references/state-patterns.md +0 -0
  463. /package/{rules → templates/nextjs/rules}/nextjs/styling/SKILL.md +0 -0
  464. /package/{rules → templates/nextjs/rules}/nextjs/styling/references/implementation.md +0 -0
  465. /package/{rules → templates/react/rules}/react/component-patterns/SKILL.md +0 -0
  466. /package/{rules → templates/react/rules}/react/component-patterns/references/REFERENCE.md +0 -0
  467. /package/{rules → templates/react/rules}/react/hooks/SKILL.md +0 -0
  468. /package/{rules → templates/react/rules}/react/hooks/references/REFERENCE.md +0 -0
  469. /package/{rules → templates/react/rules}/react/hooks.rule.md +0 -0
  470. /package/{rules → templates/react/rules}/react/performance/SKILL.md +0 -0
  471. /package/{rules → templates/react/rules}/react/performance/references/REFERENCE.md +0 -0
  472. /package/{rules → templates/react/rules}/react/security/SKILL.md +0 -0
  473. /package/{rules → templates/react/rules}/react/security/references/REFERENCE.md +0 -0
  474. /package/{rules → templates/react/rules}/react/state-management/SKILL.md +0 -0
  475. /package/{rules → templates/react/rules}/react/state-management/references/REFERENCE.md +0 -0
  476. /package/{rules → templates/react/rules}/react/testing/SKILL.md +0 -0
  477. /package/{rules → templates/react/rules}/react/testing/references/REFERENCE.md +0 -0
  478. /package/{rules → templates/react/rules}/react/tooling/SKILL.md +0 -0
  479. /package/{rules → templates/react/rules}/react/typescript/SKILL.md +0 -0
  480. /package/{rules → templates/rust/rules}/rust/actix-web/SKILL.md +0 -0
  481. /package/{rules → templates/rust/rules}/rust/actix-web/references/REFERENCE.md +0 -0
  482. /package/{rules → templates/rust/rules}/rust/actix-web/references/handler-patterns.md +0 -0
  483. /package/{rules → templates/rust/rules}/rust/async-graphql/SKILL.md +0 -0
  484. /package/{rules → templates/rust/rules}/rust/async-graphql/references/REFERENCE.md +0 -0
  485. /package/{rules → templates/rust/rules}/rust/async-graphql/references/schema-patterns.md +0 -0
  486. /package/{rules → templates/rust/rules}/rust/axum/SKILL.md +0 -0
  487. /package/{rules → templates/rust/rules}/rust/axum/references/REFERENCE.md +0 -0
  488. /package/{rules → templates/rust/rules}/rust/axum/references/handler-patterns.md +0 -0
  489. /package/{rules → templates/rust/rules}/rust/bevy/SKILL.md +0 -0
  490. /package/{rules → templates/rust/rules}/rust/bevy/references/REFERENCE.md +0 -0
  491. /package/{rules → templates/rust/rules}/rust/bevy/references/ecs-patterns.md +0 -0
  492. /package/{rules → templates/rust/rules}/rust/clap/SKILL.md +0 -0
  493. /package/{rules → templates/rust/rules}/rust/clap/references/REFERENCE.md +0 -0
  494. /package/{rules → templates/rust/rules}/rust/clap/references/derive-patterns.md +0 -0
  495. /package/{rules → templates/rust/rules}/rust/core/SKILL.md +0 -0
  496. /package/{rules → templates/rust/rules}/rust/core/references/REFERENCE.md +0 -0
  497. /package/{rules → templates/rust/rules}/rust/core/references/error-handling.md +0 -0
  498. /package/{rules → templates/rust/rules}/rust/diesel-orm/SKILL.md +0 -0
  499. /package/{rules → templates/rust/rules}/rust/diesel-orm/references/REFERENCE.md +0 -0
  500. /package/{rules → templates/rust/rules}/rust/diesel-orm/references/schema-patterns.md +0 -0
  501. /package/{rules → templates/rust/rules}/rust/rocket/SKILL.md +0 -0
  502. /package/{rules → templates/rust/rules}/rust/rocket/references/REFERENCE.md +0 -0
  503. /package/{rules → templates/rust/rules}/rust/rocket/references/handler-patterns.md +0 -0
  504. /package/{rules → templates/rust/rules}/rust/sea-orm/SKILL.md +0 -0
  505. /package/{rules → templates/rust/rules}/rust/sea-orm/references/REFERENCE.md +0 -0
  506. /package/{rules → templates/rust/rules}/rust/sea-orm/references/entity-patterns.md +0 -0
  507. /package/{rules → templates/rust/rules}/rust/serde-serialization/SKILL.md +0 -0
  508. /package/{rules → templates/rust/rules}/rust/serde-serialization/references/REFERENCE.md +0 -0
  509. /package/{rules → templates/rust/rules}/rust/serde-serialization/references/serialization-patterns.md +0 -0
  510. /package/{rules → templates/rust/rules}/rust/sqlx-database/SKILL.md +0 -0
  511. /package/{rules → templates/rust/rules}/rust/sqlx-database/references/REFERENCE.md +0 -0
  512. /package/{rules → templates/rust/rules}/rust/sqlx-database/references/query-patterns.md +0 -0
  513. /package/{rules → templates/rust/rules}/rust/tauri/SKILL.md +0 -0
  514. /package/{rules → templates/rust/rules}/rust/tauri/references/REFERENCE.md +0 -0
  515. /package/{rules → templates/rust/rules}/rust/tauri/references/command-patterns.md +0 -0
  516. /package/{rules → templates/rust/rules}/rust/tokio-runtime/SKILL.md +0 -0
  517. /package/{rules → templates/rust/rules}/rust/tokio-runtime/references/REFERENCE.md +0 -0
  518. /package/{rules → templates/rust/rules}/rust/tokio-runtime/references/async-patterns.md +0 -0
  519. /package/{rules → templates/rust/rules}/rust/tokio-runtime/references/synchronization.md +0 -0
  520. /package/{rules → templates/rust/rules}/rust/tonic/SKILL.md +0 -0
  521. /package/{rules → templates/rust/rules}/rust/tonic/references/REFERENCE.md +0 -0
  522. /package/{rules → templates/rust/rules}/rust/tonic/references/service-patterns.md +0 -0
  523. /package/{rules → templates/rust/rules}/rust/tracing/SKILL.md +0 -0
  524. /package/{rules → templates/rust/rules}/rust/tracing/references/REFERENCE.md +0 -0
  525. /package/{rules → templates/rust/rules}/rust/tracing/references/instrumentation.md +0 -0
  526. /package/{rules → templates/typescript/rules}/typescript/best-practices/SKILL.md +0 -0
  527. /package/{rules → templates/typescript/rules}/typescript/best-practices/references/REFERENCE.md +0 -0
  528. /package/{rules → templates/typescript/rules}/typescript/language/SKILL.md +0 -0
  529. /package/{rules → templates/typescript/rules}/typescript/language/references/REFERENCE.md +0 -0
  530. /package/{rules → templates/typescript/rules}/typescript/patterns.rule.md +0 -0
  531. /package/{rules → templates/typescript/rules}/typescript/security/SKILL.md +0 -0
  532. /package/{rules → templates/typescript/rules}/typescript/security/references/REFERENCE.md +0 -0
  533. /package/{rules → templates/typescript/rules}/typescript/tooling/SKILL.md +0 -0
  534. /package/{rules → templates/typescript/rules}/typescript/tooling/references/REFERENCE.md +0 -0
package/statusline.ps1 DELETED
@@ -1,307 +0,0 @@
1
- #Requires -Version 5.1
2
- # Custom Claude Code statusline for PowerShell
3
- # Cross-platform support: Windows PowerShell 5.1+, PowerShell Core 7+
4
- # Theme: detailed | Features: directory, git, model, usage, session, tokens
5
- #
6
- # Context Window Calculation:
7
- # - 100% = compaction threshold (not model limit)
8
- # - Self-calibrates via PreCompact hook
9
- # - Falls back to smart defaults based on window size
10
-
11
- # Set UTF-8 encoding
12
- [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
13
- $OutputEncoding = [System.Text.Encoding]::UTF8
14
-
15
- # Calibration file path (now in ck/ namespace - fixes #178)
16
- $CalibrationPath = Join-Path (Join-Path $env:TEMP "ck") "calibration.json"
17
-
18
- # Time conversion functions
19
- function ConvertTo-Epoch {
20
- param([string]$Timestamp)
21
-
22
- try {
23
- $dt = [DateTime]::Parse($Timestamp).ToUniversalTime()
24
- $epoch = [DateTimeOffset]::new($dt).ToUnixTimeSeconds()
25
- return $epoch
26
- }
27
- catch {
28
- return 0
29
- }
30
- }
31
-
32
- function Format-TimeHM {
33
- param([long]$Epoch)
34
-
35
- try {
36
- $dt = [DateTimeOffset]::FromUnixTimeSeconds($Epoch).LocalDateTime
37
- return $dt.ToString("HH:mm")
38
- }
39
- catch {
40
- return "00:00"
41
- }
42
- }
43
-
44
- # Get smart default compact threshold based on context window size
45
- # Research-based defaults:
46
- # - 200k window: ~80% (160k) - confirmed from GitHub issues
47
- # - 500k window: ~60% (300k) - estimated
48
- # - 1M window: ~33% (330k) - derived from user observations
49
- function Get-DefaultCompactThreshold {
50
- param([int]$ContextWindowSize)
51
-
52
- # Known thresholds (autocompact buffer = 22.5% for 200k)
53
- $KnownThresholds = @{
54
- 200000 = 155000 # 77.5% - confirmed via /context
55
- 1000000 = 330000 # 33% - 1M beta window
56
- }
57
-
58
- # Exact match
59
- if ($KnownThresholds.ContainsKey($ContextWindowSize)) {
60
- return $KnownThresholds[$ContextWindowSize]
61
- }
62
-
63
- # Tiered defaults based on window size
64
- if ($ContextWindowSize -ge 1000000) {
65
- return [Math]::Floor($ContextWindowSize * 0.33)
66
- }
67
- else {
68
- # Default: ~77.5% for standard windows (200k confirmed)
69
- return [Math]::Floor($ContextWindowSize * 0.775)
70
- }
71
- }
72
-
73
- # Read calibrated threshold from file if available
74
- function Get-CompactThreshold {
75
- param([int]$ContextWindowSize)
76
-
77
- # Try to read calibration file
78
- if (Test-Path $CalibrationPath) {
79
- try {
80
- $calibration = Get-Content $CalibrationPath -Raw | ConvertFrom-Json
81
- $key = [string]$ContextWindowSize
82
- if ($calibration.$key -and $calibration.$key.threshold -gt 0) {
83
- return [int]$calibration.$key.threshold
84
- }
85
- }
86
- catch {
87
- # Silent fail - use defaults
88
- }
89
- }
90
-
91
- # Fall back to smart defaults
92
- return Get-DefaultCompactThreshold $ContextWindowSize
93
- }
94
-
95
- function Get-ProgressBar {
96
- param(
97
- [int]$Percent = 0,
98
- [int]$Width = 12
99
- )
100
-
101
- if ($Percent -lt 0) { $Percent = 0 }
102
- if ($Percent -gt 100) { $Percent = 100 }
103
-
104
- $filled = [Math]::Round($Percent * $Width / 100)
105
- $empty = $Width - $filled
106
-
107
- # ▰ (U+25B0) filled, ▱ (U+25B1) empty - smooth horizontal rectangles
108
- $bar = ("▰" * $filled) + ("▱" * $empty)
109
- return $bar
110
- }
111
-
112
- # Get severity emoji based on percentage (no color codes)
113
- function Get-SeverityEmoji {
114
- param([int]$Percent)
115
-
116
- if ($Percent -ge 90) {
117
- return "🔴" # Critical
118
- }
119
- elseif ($Percent -ge 70) {
120
- return "🟡" # Warning
121
- }
122
- else {
123
- return "🟢" # Healthy
124
- }
125
- }
126
-
127
- # Read JSON from stdin
128
- try {
129
- $inputLines = @()
130
- while ($null -ne ($line = [Console]::In.ReadLine())) {
131
- $inputLines += $line
132
- }
133
- $inputJson = $inputLines -join "`n"
134
-
135
- if ([string]::IsNullOrWhiteSpace($inputJson)) {
136
- Write-Error "No input provided"
137
- exit 1
138
- }
139
-
140
- $data = $inputJson | ConvertFrom-Json
141
- }
142
- catch {
143
- Write-Error "Failed to parse JSON input: $_"
144
- exit 1
145
- }
146
-
147
- # Extract basic information
148
- $currentDir = "unknown"
149
- if ($data.workspace.current_dir) {
150
- $currentDir = $data.workspace.current_dir
151
- }
152
- elseif ($data.cwd) {
153
- $currentDir = $data.cwd
154
- }
155
-
156
- # Replace home directory with ~
157
- $homeDir = $env:USERPROFILE
158
- if (-not $homeDir) {
159
- $homeDir = $env:HOME
160
- }
161
- if ($homeDir -and $currentDir.StartsWith($homeDir)) {
162
- $currentDir = $currentDir.Replace($homeDir, "~")
163
- }
164
-
165
- $modelName = "Claude"
166
- if ($data.model.display_name) {
167
- $modelName = $data.model.display_name
168
- }
169
-
170
- $modelVersion = ""
171
- if ($data.model.version -and $data.model.version -ne "null") {
172
- $modelVersion = $data.model.version
173
- }
174
-
175
- # Git branch detection
176
- $gitBranch = ""
177
- try {
178
- $null = git rev-parse --git-dir 2>$null
179
- if ($LASTEXITCODE -eq 0) {
180
- $gitBranch = git branch --show-current 2>$null
181
- if ([string]::IsNullOrWhiteSpace($gitBranch)) {
182
- $gitBranch = git rev-parse --short HEAD 2>$null
183
- }
184
- }
185
- }
186
- catch {
187
- # Not in a git repository
188
- }
189
-
190
- # Context window usage (Claude Code v2.0.65+)
191
- # Calculate percentage against COMPACT THRESHOLD, not model limit
192
- # 100% = compaction imminent
193
- $contextPercent = 0
194
- $contextText = ""
195
-
196
- $contextInput = 0
197
- $contextOutput = 0
198
- $contextSize = 0
199
-
200
- if ($data.context_window) {
201
- $contextInput = [int]($data.context_window.total_input_tokens ?? 0)
202
- $contextOutput = [int]($data.context_window.total_output_tokens ?? 0)
203
- $contextSize = [int]($data.context_window.context_window_size ?? 0)
204
- }
205
-
206
- if ($contextSize -gt 0) {
207
- $contextTotal = $contextInput + $contextOutput
208
- $compactThreshold = Get-CompactThreshold $contextSize
209
-
210
- # Calculate percentage against compact threshold
211
- $contextPercent = [Math]::Floor($contextTotal * 100 / $compactThreshold)
212
- # Clamp to 100% max to handle edge cases
213
- if ($contextPercent -gt 100) { $contextPercent = 100 }
214
-
215
- # Get severity emoji and progress bar
216
- $severityEmoji = Get-SeverityEmoji $contextPercent
217
- $bar = Get-ProgressBar $contextPercent 12
218
- $contextText = "$severityEmoji $bar ${contextPercent}%"
219
- }
220
-
221
- # Session timer
222
- $sessionText = ""
223
-
224
- try {
225
- # Try npx first, then ccusage
226
- $blocksOutput = $null
227
- try {
228
- $blocksOutput = npx ccusage@latest blocks --json 2>$null
229
- }
230
- catch {
231
- try {
232
- $blocksOutput = ccusage blocks --json 2>$null
233
- }
234
- catch {
235
- # ccusage not available
236
- }
237
- }
238
-
239
- if ($blocksOutput) {
240
- $blocks = $blocksOutput | ConvertFrom-Json
241
- $activeBlock = $blocks.blocks | Where-Object { $_.isActive -eq $true } | Select-Object -First 1
242
-
243
- if ($activeBlock) {
244
- # Session time calculation
245
- $resetTimeStr = $activeBlock.usageLimitResetTime
246
- if (-not $resetTimeStr) {
247
- $resetTimeStr = $activeBlock.endTime
248
- }
249
- $startTimeStr = $activeBlock.startTime
250
-
251
- if ($resetTimeStr -and $startTimeStr) {
252
- $startSec = ConvertTo-Epoch $startTimeStr
253
- $endSec = ConvertTo-Epoch $resetTimeStr
254
- $nowSec = [DateTimeOffset]::UtcNow.ToUnixTimeSeconds()
255
-
256
- $total = $endSec - $startSec
257
- if ($total -lt 1) { $total = 1 }
258
-
259
- $elapsed = $nowSec - $startSec
260
- if ($elapsed -lt 0) { $elapsed = 0 }
261
- if ($elapsed -gt $total) { $elapsed = $total }
262
-
263
- $remaining = $endSec - $nowSec
264
- if ($remaining -lt 0) { $remaining = 0 }
265
-
266
- if ($remaining -gt 0 -and $remaining -lt 18000) {
267
- $rh = [Math]::Floor($remaining / 3600)
268
- $rm = [Math]::Floor(($remaining % 3600) / 60)
269
- $endHM = Format-TimeHM $endSec
270
- $sessionText = "${rh}h ${rm}m until reset at ${endHM}"
271
- }
272
- }
273
- }
274
- }
275
- }
276
- catch {
277
- # Silent fail - ccusage not available
278
- }
279
-
280
- # Render statusline (no ANSI colors - emoji only)
281
- $output = ""
282
- $output += "📁 ${currentDir}"
283
-
284
- # Git branch
285
- if ($gitBranch) {
286
- $output += " 🌿 ${gitBranch}"
287
- }
288
-
289
- # Model
290
- $output += " 🤖 ${modelName}"
291
-
292
- # Model version
293
- if ($modelVersion) {
294
- $output += " ${modelVersion}"
295
- }
296
-
297
- # Session time
298
- if ($sessionText) {
299
- $output += " ⌛ ${sessionText}"
300
- }
301
-
302
- # Context window usage (Claude Code v2.0.65+)
303
- if ($contextText) {
304
- $output += " $contextText"
305
- }
306
-
307
- Write-Host $output
package/statusline.sh DELETED
@@ -1,237 +0,0 @@
1
- #!/bin/bash
2
- # Custom Claude Code statusline for Bash
3
- # Cross-platform support: macOS, Linux
4
- # Theme: detailed | Features: directory, git, model, usage, session, tokens
5
- #
6
- # Context Window Calculation:
7
- # - 100% = compaction threshold (not model limit)
8
- # - Self-calibrates via PreCompact hook
9
- # - Falls back to smart defaults based on window size
10
-
11
- input=$(cat)
12
-
13
- # Calibration file path (now in /tmp/ck/ namespace - fixes #178)
14
- CALIBRATION_PATH="${TMPDIR:-/tmp}/ck/calibration.json"
15
-
16
- # ---- time helpers ----
17
- to_epoch() {
18
- ts="$1"
19
- if command -v gdate >/dev/null 2>&1; then gdate -d "$ts" +%s 2>/dev/null && return; fi
20
- date -u -j -f "%Y-%m-%dT%H:%M:%S%z" "${ts/Z/+0000}" +%s 2>/dev/null && return
21
- python3 - "$ts" <<'PY' 2>/dev/null
22
- import sys, datetime
23
- s=sys.argv[1].replace('Z','+00:00')
24
- print(int(datetime.datetime.fromisoformat(s).timestamp()))
25
- PY
26
- }
27
-
28
- fmt_time_hm() {
29
- epoch="$1"
30
- if date -r 0 +%s >/dev/null 2>&1; then date -r "$epoch" +"%H:%M"; else date -d "@$epoch" +"%H:%M"; fi
31
- }
32
-
33
- # ---- compact threshold calculation ----
34
- # Get smart default compact threshold based on context window size
35
- # Research-based defaults:
36
- # - 200k window: ~80% (160k) - confirmed from GitHub issues
37
- # - 500k window: ~60% (300k) - estimated
38
- # - 1M window: ~33% (330k) - derived from user observations
39
- get_default_compact_threshold() {
40
- local context_size="$1"
41
-
42
- # Known thresholds (autocompact buffer = 22.5% for 200k)
43
- case "$context_size" in
44
- 200000) echo 155000; return ;; # 77.5% - confirmed via /context
45
- 1000000) echo 330000; return ;; # 33% - 1M beta window
46
- esac
47
-
48
- # Tiered defaults based on window size
49
- if [ "$context_size" -ge 1000000 ] 2>/dev/null; then
50
- echo $((context_size * 33 / 100))
51
- else
52
- # Default: ~77.5% for standard windows (200k confirmed)
53
- echo $((context_size * 775 / 1000))
54
- fi
55
- }
56
-
57
- # Read calibrated threshold from file if available
58
- get_compact_threshold() {
59
- local context_size="$1"
60
-
61
- # Try to read calibration file
62
- if [ -f "$CALIBRATION_PATH" ] && command -v jq >/dev/null 2>&1; then
63
- local calibrated
64
- calibrated=$(jq -r --arg key "$context_size" '.[$key].threshold // empty' "$CALIBRATION_PATH" 2>/dev/null)
65
- if [ -n "$calibrated" ] && [ "$calibrated" -gt 0 ] 2>/dev/null; then
66
- echo "$calibrated"
67
- return
68
- fi
69
- fi
70
-
71
- # Fall back to smart defaults
72
- get_default_compact_threshold "$context_size"
73
- }
74
-
75
- # ---- progress bar ----
76
- progress_bar() {
77
- pct="${1:-0}"; width="${2:-12}"
78
- [[ "$pct" =~ ^[0-9]+$ ]] || pct=0; ((pct<0))&&pct=0; ((pct>100))&&pct=100
79
- filled=$(( pct * width / 100 )); empty=$(( width - filled ))
80
- # ▰ (U+25B0) filled, ▱ (U+25B1) empty - smooth horizontal rectangles
81
- for ((i=0; i<filled; i++)); do printf '▰'; done
82
- for ((i=0; i<empty; i++)); do printf '▱'; done
83
- }
84
-
85
- # ---- severity emoji (no colors) ----
86
- get_severity_emoji() {
87
- local pct="$1"
88
- if [ "$pct" -ge 90 ] 2>/dev/null; then
89
- echo "🔴" # Critical
90
- elif [ "$pct" -ge 70 ] 2>/dev/null; then
91
- echo "🟡" # Warning
92
- else
93
- echo "🟢" # Healthy
94
- fi
95
- }
96
-
97
- # git utilities
98
- num_or_zero() { v="$1"; [[ "$v" =~ ^[0-9]+$ ]] && echo "$v" || echo 0; }
99
-
100
- # ---- git (detect early for fallback mode) ----
101
- git_branch=""
102
- if git rev-parse --git-dir >/dev/null 2>&1; then
103
- git_branch=$(git branch --show-current 2>/dev/null || git rev-parse --short HEAD 2>/dev/null)
104
- fi
105
-
106
- # ---- basics ----
107
- if command -v jq >/dev/null 2>&1; then
108
- current_dir=$(echo "$input" | jq -r '.workspace.current_dir // .cwd // "unknown"' 2>/dev/null | sed "s|^$HOME|~|g")
109
- model_name=$(echo "$input" | jq -r '.model.display_name // "Claude"' 2>/dev/null)
110
- model_version=$(echo "$input" | jq -r '.model.version // ""' 2>/dev/null)
111
- else
112
- # Fallback: Extract basic info without jq using grep/sed
113
- current_dir=$(echo "$input" | grep -o '"current_dir"[[:space:]]*:[[:space:]]*"[^"]*"' | head -1 | sed 's/.*:.*"\([^"]*\)".*/\1/' | sed "s|^$HOME|~|g")
114
- [ -z "$current_dir" ] && current_dir=$(pwd | sed "s|^$HOME|~|g")
115
- model_name=$(echo "$input" | grep -o '"display_name"[[:space:]]*:[[:space:]]*"[^"]*"' | head -1 | sed 's/.*:.*"\([^"]*\)".*/\1/')
116
- [ -z "$model_name" ] && model_name="Claude"
117
- model_version=""
118
- # Render minimal statusline without jq and exit
119
- printf '📁 %s' "$current_dir"
120
- if [ -n "$git_branch" ]; then
121
- printf ' 🌿 %s' "$git_branch"
122
- fi
123
- printf ' 🤖 %s' "$model_name"
124
- printf '\n'
125
- exit 0
126
- fi
127
-
128
- # ---- Native Claude Code data integration ----
129
- session_txt=""
130
- cost_usd=""; lines_added=0; lines_removed=0
131
- context_pct=0; context_txt=""
132
- BILLING_MODE="${CLAUDE_BILLING_MODE:-api}"
133
-
134
- # Extract native cost data from Claude Code
135
- cost_usd=$(echo "$input" | jq -r '.cost.total_cost_usd // empty' 2>/dev/null)
136
- lines_added=$(echo "$input" | jq -r '.cost.total_lines_added // 0' 2>/dev/null)
137
- lines_removed=$(echo "$input" | jq -r '.cost.total_lines_removed // 0' 2>/dev/null)
138
-
139
- # Extract context window usage (Claude Code v2.0.65+)
140
- # Calculate percentage against COMPACT THRESHOLD, not model limit
141
- # 100% = compaction imminent
142
- context_input=$(echo "$input" | jq -r '.context_window.total_input_tokens // 0' 2>/dev/null)
143
- context_output=$(echo "$input" | jq -r '.context_window.total_output_tokens // 0' 2>/dev/null)
144
- context_size=$(echo "$input" | jq -r '.context_window.context_window_size // 0' 2>/dev/null)
145
-
146
- if [ -n "$context_size" ] && [ "$context_size" -gt 0 ] 2>/dev/null; then
147
- context_total=$((context_input + context_output))
148
- compact_threshold=$(get_compact_threshold "$context_size")
149
-
150
- # Calculate percentage against compact threshold
151
- context_pct=$((context_total * 100 / compact_threshold))
152
- # Clamp to 100% max to handle edge cases
153
- ((context_pct > 100)) && context_pct=100
154
-
155
- # Get severity emoji and progress bar
156
- severity_emoji=$(get_severity_emoji "$context_pct")
157
- bar=$(progress_bar "$context_pct" 12)
158
- context_txt="${severity_emoji} ${bar} ${context_pct}%"
159
- fi
160
-
161
- # Session timer - parse local transcript JSONL (zero external dependencies)
162
- transcript_path=$(echo "$input" | jq -r '.transcript_path // empty' 2>/dev/null)
163
-
164
- if [ -n "$transcript_path" ] && [ -f "$transcript_path" ]; then
165
- # Get first API call timestamp from session JSONL
166
- first_api_call=$(grep -m1 '"usage"' "$transcript_path" 2>/dev/null | jq -r '.timestamp // empty' 2>/dev/null)
167
-
168
- if [ -n "$first_api_call" ]; then
169
- # Calculate 5-hour billing block (Anthropic windows)
170
- # Blocks: 00:00-05:00, 05:00-10:00, 10:00-15:00, 15:00-20:00, 20:00-01:00 UTC
171
- current_utc_hour=$(date -u +%H)
172
- block_start=$((10#$current_utc_hour / 5 * 5))
173
- block_end=$((block_start + 5))
174
-
175
- # Handle day wraparound (e.g., 20:00 UTC block ends at 01:00 UTC next day)
176
- if [ $block_end -ge 24 ]; then
177
- block_end=$((block_end - 24))
178
- block_end_date="tomorrow"
179
- else
180
- block_end_date="today"
181
- fi
182
-
183
- # Calculate remaining time until block reset
184
- now_sec=$(date +%s)
185
- block_end_sec=$(date -u -d "${block_end_date} ${block_end}:00 UTC" +%s 2>/dev/null)
186
-
187
- if [ -n "$block_end_sec" ] && [ "$block_end_sec" -gt 0 ]; then
188
- remaining=$((block_end_sec - now_sec))
189
-
190
- if [ $remaining -gt 0 ] && [ $remaining -lt 18000 ]; then
191
- rh=$((remaining / 3600))
192
- rm=$(((remaining % 3600) / 60))
193
- block_end_local=$(date -d "@${block_end_sec}" +"%H:%M" 2>/dev/null)
194
- session_txt="${rh}h ${rm}m until reset at ${block_end_local}"
195
- fi
196
- fi
197
- fi
198
- fi
199
-
200
- # ---- render statusline (no ANSI colors - emoji only) ----
201
- printf '📁 %s' "$current_dir"
202
-
203
- # git display
204
- if [ -n "$git_branch" ]; then
205
- printf ' 🌿 %s' "$git_branch"
206
- fi
207
-
208
- printf ' 🤖 %s' "$model_name"
209
-
210
- if [ -n "$model_version" ] && [ "$model_version" != "null" ]; then
211
- printf ' %s' "$model_version"
212
- fi
213
-
214
- # session time
215
- if [ -n "$session_txt" ]; then
216
- printf ' ⌛ %s' "$session_txt"
217
- fi
218
-
219
- # cost (only show for API billing mode)
220
- if [ "$BILLING_MODE" = "api" ] && [ -n "$cost_usd" ] && [[ "$cost_usd" =~ ^[0-9.]+$ ]]; then
221
- printf ' 💵 $%.4f' "$cost_usd"
222
- fi
223
-
224
- # lines changed
225
- if [ -n "$lines_added" ] && [ -n "$lines_removed" ] && [[ "$lines_added" =~ ^[0-9]+$ ]] && [[ "$lines_removed" =~ ^[0-9]+$ ]]; then
226
- if [ "$lines_added" -gt 0 ] || [ "$lines_removed" -gt 0 ]; then
227
- printf ' 📝 +%d -%d' "$lines_added" "$lines_removed"
228
- fi
229
- fi
230
-
231
- # context window usage (Claude Code v2.0.65+)
232
- if [ -n "$context_txt" ]; then
233
- printf ' %s' "$context_txt"
234
- fi
235
-
236
- # trailing newline (POSIX compliance)
237
- printf '\n'
@@ -1,42 +0,0 @@
1
- # Development Rules
2
-
3
- **IMPORTANT:** Analyze the skills catalog and activate the skills that are needed for the task during the process.
4
- **IMPORTANT:** You ALWAYS follow these principles: **YAGNI (You Aren't Gonna Need It) - KISS (Keep It Simple, Stupid) - DRY (Don't Repeat Yourself)**
5
-
6
- ## General
7
- - **File Naming**: Use kebab-case for file names with a meaningful name that describes the purpose of the file, doesn't matter if the file name is long, just make sure when LLMs read the file names while using Grep or other tools, they can understand the purpose of the file right away without reading the file content.
8
- - **File Size Management**: Keep individual code files under 200 lines for optimal context management
9
- - Split large files into smaller, focused components/modules
10
- - Use composition over inheritance for complex widgets
11
- - Extract utility functions into separate modules
12
- - Create dedicated service classes for business logic
13
- - When looking for docs, activate `docs-seeker` skill (`context7` reference) for exploring latest docs.
14
- - Use `gh` bash command to interact with Github features if needed
15
- - Use `psql` bash command to query Postgres database for debugging if needed
16
- - Use `ai-multimodal` skill for describing details of images, videos, documents, etc. if needed
17
- - Use `ai-multimodal` skill and `imagemagick` skill for generating and editing images, videos, documents, etc. if needed
18
- - Use `sequential-thinking` and `debugging` skills for sequential thinking, analyzing code, debugging, etc. if needed
19
- - **[IMPORTANT]** Follow the codebase structure and code standards in `./docs` during implementation.
20
- - **[IMPORTANT]** Do not just simulate the implementation or mocking them, always implement the real code.
21
-
22
- ## Code Quality Guidelines
23
- - Read and follow codebase structure and code standards in `./docs`
24
- - Don't be too harsh on code linting, but **make sure there are no syntax errors and code are compilable**
25
- - Prioritize functionality and readability over strict style enforcement and code formatting
26
- - Use reasonable code quality standards that enhance developer productivity
27
- - Use try catch error handling & cover security standards
28
- - Use `code-reviewer` agent to review code after every implementation
29
-
30
- ## Pre-commit/Push Rules
31
- - Run linting before commit
32
- - Run tests before push (DO NOT ignore failed tests just to pass the build or github actions)
33
- - Keep commits focused on the actual code changes
34
- - **DO NOT** commit and push any confidential information (such as dotenv files, API keys, database credentials, etc.) to git repository!
35
- - Create clean, professional commit messages without AI references. Use conventional commit format.
36
-
37
- ## Code Implementation
38
- - Write clean, readable, and maintainable code
39
- - Follow established architectural patterns
40
- - Implement features according to specifications
41
- - Handle edge cases and error scenarios
42
- - **DO NOT** create new enhanced files, update to the existing files directly.