kodelyth-ecc 1.2.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 (846) hide show
  1. package/.agent/rules/README.md +108 -0
  2. package/.agent/rules/agents.md +94 -0
  3. package/.agent/rules/code-review.md +124 -0
  4. package/.agent/rules/coding-style.md +122 -0
  5. package/.agent/rules/design-quality.md +63 -0
  6. package/.agent/rules/development-workflow.md +44 -0
  7. package/.agent/rules/git-mastery.md +366 -0
  8. package/.agent/rules/git-workflow.md +24 -0
  9. package/.agent/rules/hooks.md +25 -0
  10. package/.agent/rules/kodelyth-always-on.md +63 -0
  11. package/.agent/rules/kodelyth-quickstart.md +207 -0
  12. package/.agent/rules/observability.md +390 -0
  13. package/.agent/rules/patterns.md +50 -0
  14. package/.agent/rules/performance.md +178 -0
  15. package/.agent/rules/security.md +58 -0
  16. package/.agent/rules/smart-debug.md +241 -0
  17. package/.agent/rules/soul.md +32 -0
  18. package/.agent/rules/testing.md +46 -0
  19. package/.agent/skills/api-guardian.md +279 -0
  20. package/.agent/skills/architect.md +211 -0
  21. package/.agent/skills/build-error-resolver.md +114 -0
  22. package/.agent/skills/chief-of-staff.md +151 -0
  23. package/.agent/skills/code-architect.md +71 -0
  24. package/.agent/skills/code-explorer.md +69 -0
  25. package/.agent/skills/code-reviewer.md +237 -0
  26. package/.agent/skills/code-simplifier.md +47 -0
  27. package/.agent/skills/comment-analyzer.md +45 -0
  28. package/.agent/skills/conversation-analyzer.md +52 -0
  29. package/.agent/skills/cpp-build-resolver.md +90 -0
  30. package/.agent/skills/cpp-reviewer.md +72 -0
  31. package/.agent/skills/csharp-reviewer.md +101 -0
  32. package/.agent/skills/dart-build-resolver.md +201 -0
  33. package/.agent/skills/database-reviewer.md +91 -0
  34. package/.agent/skills/debug-detective.md +409 -0
  35. package/.agent/skills/doc-updater.md +107 -0
  36. package/.agent/skills/docs-lookup.md +68 -0
  37. package/.agent/skills/e2e-runner.md +107 -0
  38. package/.agent/skills/flutter-reviewer.md +243 -0
  39. package/.agent/skills/gan-evaluator.md +209 -0
  40. package/.agent/skills/gan-generator.md +131 -0
  41. package/.agent/skills/gan-planner.md +99 -0
  42. package/.agent/skills/go-build-resolver.md +94 -0
  43. package/.agent/skills/go-reviewer.md +76 -0
  44. package/.agent/skills/harness-optimizer.md +35 -0
  45. package/.agent/skills/healthcare-reviewer.md +83 -0
  46. package/.agent/skills/java-build-resolver.md +153 -0
  47. package/.agent/skills/java-reviewer.md +92 -0
  48. package/.agent/skills/kodelyth-advisor.md +172 -0
  49. package/.agent/skills/kotlin-build-resolver.md +118 -0
  50. package/.agent/skills/kotlin-reviewer.md +159 -0
  51. package/.agent/skills/loop-operator.md +36 -0
  52. package/.agent/skills/migration-guide.md +368 -0
  53. package/.agent/skills/opensource-forker.md +198 -0
  54. package/.agent/skills/opensource-packager.md +249 -0
  55. package/.agent/skills/opensource-sanitizer.md +188 -0
  56. package/.agent/skills/pair-programmer.md +260 -0
  57. package/.agent/skills/performance-optimizer.md +446 -0
  58. package/.agent/skills/planner.md +212 -0
  59. package/.agent/skills/pr-test-analyzer.md +45 -0
  60. package/.agent/skills/python-reviewer.md +98 -0
  61. package/.agent/skills/pytorch-build-resolver.md +120 -0
  62. package/.agent/skills/refactor-cleaner.md +85 -0
  63. package/.agent/skills/rust-build-resolver.md +148 -0
  64. package/.agent/skills/rust-reviewer.md +94 -0
  65. package/.agent/skills/security-reviewer.md +108 -0
  66. package/.agent/skills/seo-specialist.md +62 -0
  67. package/.agent/skills/silent-failure-hunter.md +50 -0
  68. package/.agent/skills/tdd-guide.md +91 -0
  69. package/.agent/skills/type-design-analyzer.md +41 -0
  70. package/.agent/skills/typescript-reviewer.md +112 -0
  71. package/.agent/skills/ux-reviewer.md +483 -0
  72. package/.agent/workflows/agent-sort.md +23 -0
  73. package/.agent/workflows/aside.md +164 -0
  74. package/.agent/workflows/build-fix.md +62 -0
  75. package/.agent/workflows/checkpoint.md +74 -0
  76. package/.agent/workflows/claw.md +23 -0
  77. package/.agent/workflows/code-review.md +289 -0
  78. package/.agent/workflows/context-budget.md +23 -0
  79. package/.agent/workflows/cpp-build.md +173 -0
  80. package/.agent/workflows/cpp-review.md +132 -0
  81. package/.agent/workflows/cpp-test.md +251 -0
  82. package/.agent/workflows/devfleet.md +23 -0
  83. package/.agent/workflows/docs.md +23 -0
  84. package/.agent/workflows/e2e.md +268 -0
  85. package/.agent/workflows/eval.md +23 -0
  86. package/.agent/workflows/evolve.md +178 -0
  87. package/.agent/workflows/feature-dev.md +49 -0
  88. package/.agent/workflows/flutter-build.md +164 -0
  89. package/.agent/workflows/flutter-review.md +116 -0
  90. package/.agent/workflows/flutter-test.md +144 -0
  91. package/.agent/workflows/gan-build.md +99 -0
  92. package/.agent/workflows/gan-design.md +35 -0
  93. package/.agent/workflows/go-build.md +183 -0
  94. package/.agent/workflows/go-review.md +148 -0
  95. package/.agent/workflows/go-test.md +268 -0
  96. package/.agent/workflows/gradle-build.md +70 -0
  97. package/.agent/workflows/harness-audit.md +73 -0
  98. package/.agent/workflows/hookify-configure.md +14 -0
  99. package/.agent/workflows/hookify-help.md +46 -0
  100. package/.agent/workflows/hookify-list.md +21 -0
  101. package/.agent/workflows/hookify.md +50 -0
  102. package/.agent/workflows/instinct-export.md +66 -0
  103. package/.agent/workflows/instinct-import.md +114 -0
  104. package/.agent/workflows/instinct-status.md +59 -0
  105. package/.agent/workflows/jira.md +106 -0
  106. package/.agent/workflows/kotlin-build.md +174 -0
  107. package/.agent/workflows/kotlin-review.md +140 -0
  108. package/.agent/workflows/kotlin-test.md +312 -0
  109. package/.agent/workflows/learn-eval.md +116 -0
  110. package/.agent/workflows/learn.md +70 -0
  111. package/.agent/workflows/loop-start.md +32 -0
  112. package/.agent/workflows/loop-status.md +24 -0
  113. package/.agent/workflows/model-route.md +26 -0
  114. package/.agent/workflows/multi-backend.md +158 -0
  115. package/.agent/workflows/multi-execute.md +315 -0
  116. package/.agent/workflows/multi-frontend.md +158 -0
  117. package/.agent/workflows/multi-plan.md +268 -0
  118. package/.agent/workflows/multi-workflow.md +191 -0
  119. package/.agent/workflows/orchestrate.md +135 -0
  120. package/.agent/workflows/plan.md +117 -0
  121. package/.agent/workflows/pm2.md +272 -0
  122. package/.agent/workflows/projects.md +39 -0
  123. package/.agent/workflows/promote.md +41 -0
  124. package/.agent/workflows/prompt-optimize.md +23 -0
  125. package/.agent/workflows/prp-commit.md +112 -0
  126. package/.agent/workflows/prp-implement.md +385 -0
  127. package/.agent/workflows/prp-plan.md +502 -0
  128. package/.agent/workflows/prp-pr.md +184 -0
  129. package/.agent/workflows/prp-prd.md +447 -0
  130. package/.agent/workflows/prune.md +31 -0
  131. package/.agent/workflows/python-review.md +297 -0
  132. package/.agent/workflows/quality-gate.md +29 -0
  133. package/.agent/workflows/refactor-clean.md +80 -0
  134. package/.agent/workflows/resume-session.md +156 -0
  135. package/.agent/workflows/review-pr.md +37 -0
  136. package/.agent/workflows/rules-distill.md +20 -0
  137. package/.agent/workflows/rust-build.md +187 -0
  138. package/.agent/workflows/rust-review.md +142 -0
  139. package/.agent/workflows/rust-test.md +308 -0
  140. package/.agent/workflows/santa-loop.md +175 -0
  141. package/.agent/workflows/save-session.md +275 -0
  142. package/.agent/workflows/sessions.md +333 -0
  143. package/.agent/workflows/setup-pm.md +80 -0
  144. package/.agent/workflows/skill-create.md +174 -0
  145. package/.agent/workflows/skill-health.md +54 -0
  146. package/.agent/workflows/tdd.md +231 -0
  147. package/.agent/workflows/test-coverage.md +69 -0
  148. package/.agent/workflows/update-codemaps.md +72 -0
  149. package/.agent/workflows/update-docs.md +84 -0
  150. package/.agent/workflows/verify.md +23 -0
  151. package/.github/workflows/ci.yml +46 -0
  152. package/.github/workflows/publish.yml +41 -0
  153. package/AGENTS.md +209 -0
  154. package/CHANGELOG.md +236 -0
  155. package/CLAUDE.md +90 -0
  156. package/CONTRIBUTING.md +255 -0
  157. package/KODELYTH.md +74 -0
  158. package/LICENSE +21 -0
  159. package/README.md +414 -0
  160. package/SECURITY.md +77 -0
  161. package/SOUL.md +32 -0
  162. package/VERSION +1 -0
  163. package/agents/api-guardian.md +279 -0
  164. package/agents/architect.md +211 -0
  165. package/agents/build-error-resolver.md +114 -0
  166. package/agents/chief-of-staff.md +151 -0
  167. package/agents/code-architect.md +71 -0
  168. package/agents/code-explorer.md +69 -0
  169. package/agents/code-reviewer.md +237 -0
  170. package/agents/code-simplifier.md +47 -0
  171. package/agents/comment-analyzer.md +45 -0
  172. package/agents/conversation-analyzer.md +52 -0
  173. package/agents/cpp-build-resolver.md +90 -0
  174. package/agents/cpp-reviewer.md +72 -0
  175. package/agents/csharp-reviewer.md +101 -0
  176. package/agents/dart-build-resolver.md +201 -0
  177. package/agents/database-reviewer.md +91 -0
  178. package/agents/debug-detective.md +409 -0
  179. package/agents/doc-updater.md +107 -0
  180. package/agents/docs-lookup.md +68 -0
  181. package/agents/e2e-runner.md +107 -0
  182. package/agents/flutter-reviewer.md +243 -0
  183. package/agents/gan-evaluator.md +209 -0
  184. package/agents/gan-generator.md +131 -0
  185. package/agents/gan-planner.md +99 -0
  186. package/agents/go-build-resolver.md +94 -0
  187. package/agents/go-reviewer.md +76 -0
  188. package/agents/harness-optimizer.md +35 -0
  189. package/agents/healthcare-reviewer.md +83 -0
  190. package/agents/java-build-resolver.md +153 -0
  191. package/agents/java-reviewer.md +92 -0
  192. package/agents/kodelyth-advisor.md +172 -0
  193. package/agents/kotlin-build-resolver.md +118 -0
  194. package/agents/kotlin-reviewer.md +159 -0
  195. package/agents/loop-operator.md +36 -0
  196. package/agents/migration-guide.md +368 -0
  197. package/agents/opensource-forker.md +198 -0
  198. package/agents/opensource-packager.md +249 -0
  199. package/agents/opensource-sanitizer.md +188 -0
  200. package/agents/pair-programmer.md +260 -0
  201. package/agents/performance-optimizer.md +446 -0
  202. package/agents/planner.md +212 -0
  203. package/agents/pr-test-analyzer.md +45 -0
  204. package/agents/python-reviewer.md +98 -0
  205. package/agents/pytorch-build-resolver.md +120 -0
  206. package/agents/refactor-cleaner.md +85 -0
  207. package/agents/rust-build-resolver.md +148 -0
  208. package/agents/rust-reviewer.md +94 -0
  209. package/agents/security-reviewer.md +108 -0
  210. package/agents/seo-specialist.md +62 -0
  211. package/agents/silent-failure-hunter.md +50 -0
  212. package/agents/tdd-guide.md +91 -0
  213. package/agents/type-design-analyzer.md +41 -0
  214. package/agents/typescript-reviewer.md +112 -0
  215. package/agents/ux-reviewer.md +483 -0
  216. package/bin/kodelyth-ecc.js +87 -0
  217. package/commands/agent-sort.md +23 -0
  218. package/commands/aside.md +164 -0
  219. package/commands/build-fix.md +62 -0
  220. package/commands/checkpoint.md +74 -0
  221. package/commands/claw.md +23 -0
  222. package/commands/code-review.md +289 -0
  223. package/commands/context-budget.md +23 -0
  224. package/commands/cpp-build.md +173 -0
  225. package/commands/cpp-review.md +132 -0
  226. package/commands/cpp-test.md +251 -0
  227. package/commands/devfleet.md +23 -0
  228. package/commands/docs.md +23 -0
  229. package/commands/e2e.md +268 -0
  230. package/commands/eval.md +23 -0
  231. package/commands/evolve.md +178 -0
  232. package/commands/feature-dev.md +49 -0
  233. package/commands/flutter-build.md +164 -0
  234. package/commands/flutter-review.md +116 -0
  235. package/commands/flutter-test.md +144 -0
  236. package/commands/gan-build.md +99 -0
  237. package/commands/gan-design.md +35 -0
  238. package/commands/go-build.md +183 -0
  239. package/commands/go-review.md +148 -0
  240. package/commands/go-test.md +268 -0
  241. package/commands/gradle-build.md +70 -0
  242. package/commands/harness-audit.md +73 -0
  243. package/commands/hookify-configure.md +14 -0
  244. package/commands/hookify-help.md +46 -0
  245. package/commands/hookify-list.md +21 -0
  246. package/commands/hookify.md +50 -0
  247. package/commands/instinct-export.md +66 -0
  248. package/commands/instinct-import.md +114 -0
  249. package/commands/instinct-status.md +59 -0
  250. package/commands/jira.md +106 -0
  251. package/commands/kotlin-build.md +174 -0
  252. package/commands/kotlin-review.md +140 -0
  253. package/commands/kotlin-test.md +312 -0
  254. package/commands/learn-eval.md +116 -0
  255. package/commands/learn.md +70 -0
  256. package/commands/loop-start.md +32 -0
  257. package/commands/loop-status.md +24 -0
  258. package/commands/model-route.md +26 -0
  259. package/commands/multi-backend.md +158 -0
  260. package/commands/multi-execute.md +315 -0
  261. package/commands/multi-frontend.md +158 -0
  262. package/commands/multi-plan.md +268 -0
  263. package/commands/multi-workflow.md +191 -0
  264. package/commands/orchestrate.md +135 -0
  265. package/commands/plan.md +117 -0
  266. package/commands/pm2.md +272 -0
  267. package/commands/projects.md +39 -0
  268. package/commands/promote.md +41 -0
  269. package/commands/prompt-optimize.md +23 -0
  270. package/commands/prp-commit.md +112 -0
  271. package/commands/prp-implement.md +385 -0
  272. package/commands/prp-plan.md +502 -0
  273. package/commands/prp-pr.md +184 -0
  274. package/commands/prp-prd.md +447 -0
  275. package/commands/prune.md +31 -0
  276. package/commands/python-review.md +297 -0
  277. package/commands/quality-gate.md +29 -0
  278. package/commands/refactor-clean.md +80 -0
  279. package/commands/resume-session.md +156 -0
  280. package/commands/review-pr.md +37 -0
  281. package/commands/rules-distill.md +20 -0
  282. package/commands/rust-build.md +187 -0
  283. package/commands/rust-review.md +142 -0
  284. package/commands/rust-test.md +308 -0
  285. package/commands/santa-loop.md +175 -0
  286. package/commands/save-session.md +275 -0
  287. package/commands/sessions.md +333 -0
  288. package/commands/setup-pm.md +80 -0
  289. package/commands/skill-create.md +174 -0
  290. package/commands/skill-health.md +54 -0
  291. package/commands/tdd.md +231 -0
  292. package/commands/test-coverage.md +69 -0
  293. package/commands/update-codemaps.md +72 -0
  294. package/commands/update-docs.md +84 -0
  295. package/commands/verify.md +23 -0
  296. package/contexts/dev.md +20 -0
  297. package/contexts/research.md +26 -0
  298. package/contexts/review.md +22 -0
  299. package/dashboard/lib/agent-tracker.js +366 -0
  300. package/dashboard/lib/aggregator.js +118 -0
  301. package/dashboard/lib/cost-calculator.js +50 -0
  302. package/dashboard/lib/platform-detector.js +89 -0
  303. package/dashboard/lib/readers/antigravity-reader.js +113 -0
  304. package/dashboard/lib/readers/claude-reader.js +135 -0
  305. package/dashboard/lib/readers/codex-reader.js +192 -0
  306. package/dashboard/lib/readers/cursor-reader.js +135 -0
  307. package/dashboard/lib/readers/opencode-reader.js +201 -0
  308. package/dashboard/lib/readers/windsurf-reader.js +126 -0
  309. package/dashboard/package.json +24 -0
  310. package/dashboard/public/index.html +1147 -0
  311. package/dashboard/server.js +119 -0
  312. package/hooks/README.md +220 -0
  313. package/hooks/hooks.json +420 -0
  314. package/install.ps1 +190 -0
  315. package/install.sh +583 -0
  316. package/package.json +33 -0
  317. package/rules/README.md +111 -0
  318. package/rules/common/agents.md +50 -0
  319. package/rules/common/code-review.md +124 -0
  320. package/rules/common/coding-style.md +122 -0
  321. package/rules/common/development-workflow.md +44 -0
  322. package/rules/common/git-workflow.md +24 -0
  323. package/rules/common/hooks.md +30 -0
  324. package/rules/common/patterns.md +31 -0
  325. package/rules/common/performance.md +178 -0
  326. package/rules/common/security.md +29 -0
  327. package/rules/common/testing.md +57 -0
  328. package/rules/cpp/coding-style.md +44 -0
  329. package/rules/cpp/hooks.md +39 -0
  330. package/rules/cpp/patterns.md +51 -0
  331. package/rules/cpp/security.md +51 -0
  332. package/rules/cpp/testing.md +44 -0
  333. package/rules/csharp/coding-style.md +72 -0
  334. package/rules/csharp/hooks.md +25 -0
  335. package/rules/csharp/patterns.md +50 -0
  336. package/rules/csharp/security.md +58 -0
  337. package/rules/csharp/testing.md +46 -0
  338. package/rules/dart/coding-style.md +159 -0
  339. package/rules/dart/hooks.md +66 -0
  340. package/rules/dart/patterns.md +261 -0
  341. package/rules/dart/security.md +135 -0
  342. package/rules/dart/testing.md +215 -0
  343. package/rules/golang/coding-style.md +32 -0
  344. package/rules/golang/hooks.md +17 -0
  345. package/rules/golang/patterns.md +45 -0
  346. package/rules/golang/security.md +34 -0
  347. package/rules/golang/testing.md +31 -0
  348. package/rules/java/coding-style.md +114 -0
  349. package/rules/java/hooks.md +18 -0
  350. package/rules/java/patterns.md +146 -0
  351. package/rules/java/security.md +100 -0
  352. package/rules/java/testing.md +131 -0
  353. package/rules/kotlin/coding-style.md +86 -0
  354. package/rules/kotlin/hooks.md +17 -0
  355. package/rules/kotlin/patterns.md +146 -0
  356. package/rules/kotlin/security.md +82 -0
  357. package/rules/kotlin/testing.md +128 -0
  358. package/rules/perl/coding-style.md +46 -0
  359. package/rules/perl/hooks.md +22 -0
  360. package/rules/perl/patterns.md +76 -0
  361. package/rules/perl/security.md +69 -0
  362. package/rules/perl/testing.md +54 -0
  363. package/rules/php/coding-style.md +40 -0
  364. package/rules/php/hooks.md +24 -0
  365. package/rules/php/patterns.md +33 -0
  366. package/rules/php/security.md +37 -0
  367. package/rules/php/testing.md +39 -0
  368. package/rules/python/coding-style.md +42 -0
  369. package/rules/python/hooks.md +19 -0
  370. package/rules/python/patterns.md +39 -0
  371. package/rules/python/security.md +30 -0
  372. package/rules/python/testing.md +38 -0
  373. package/rules/rust/coding-style.md +151 -0
  374. package/rules/rust/hooks.md +16 -0
  375. package/rules/rust/patterns.md +168 -0
  376. package/rules/rust/security.md +141 -0
  377. package/rules/rust/testing.md +154 -0
  378. package/rules/swift/coding-style.md +47 -0
  379. package/rules/swift/hooks.md +20 -0
  380. package/rules/swift/patterns.md +66 -0
  381. package/rules/swift/security.md +33 -0
  382. package/rules/swift/testing.md +45 -0
  383. package/rules/typescript/coding-style.md +199 -0
  384. package/rules/typescript/hooks.md +22 -0
  385. package/rules/typescript/patterns.md +52 -0
  386. package/rules/typescript/security.md +28 -0
  387. package/rules/typescript/testing.md +18 -0
  388. package/rules/web/coding-style.md +96 -0
  389. package/rules/web/design-quality.md +63 -0
  390. package/rules/web/hooks.md +120 -0
  391. package/rules/web/patterns.md +79 -0
  392. package/rules/web/performance.md +64 -0
  393. package/rules/web/security.md +57 -0
  394. package/rules/web/testing.md +55 -0
  395. package/rules/zh/README.md +108 -0
  396. package/rules/zh/agents.md +50 -0
  397. package/rules/zh/code-review.md +124 -0
  398. package/rules/zh/coding-style.md +48 -0
  399. package/rules/zh/development-workflow.md +44 -0
  400. package/rules/zh/git-workflow.md +24 -0
  401. package/rules/zh/hooks.md +30 -0
  402. package/rules/zh/patterns.md +31 -0
  403. package/rules/zh/performance.md +55 -0
  404. package/rules/zh/security.md +29 -0
  405. package/rules/zh/testing.md +29 -0
  406. package/scripts/agent-tracker-hook.js +81 -0
  407. package/scripts/build-opencode.js +26 -0
  408. package/scripts/catalog.js +186 -0
  409. package/scripts/ci/catalog.js +648 -0
  410. package/scripts/ci/check-unicode-safety.js +246 -0
  411. package/scripts/ci/validate-agents.js +81 -0
  412. package/scripts/ci/validate-commands.js +136 -0
  413. package/scripts/ci/validate-hooks.js +239 -0
  414. package/scripts/ci/validate-install-manifests.js +214 -0
  415. package/scripts/ci/validate-no-personal-paths.js +63 -0
  416. package/scripts/ci/validate-rules.js +81 -0
  417. package/scripts/ci/validate-skills.js +56 -0
  418. package/scripts/claw.js +468 -0
  419. package/scripts/codemaps/generate.ts +330 -0
  420. package/scripts/codex/check-codex-global-state.sh +250 -0
  421. package/scripts/codex/install-global-git-hooks.sh +65 -0
  422. package/scripts/codex/merge-codex-config.js +317 -0
  423. package/scripts/codex/merge-mcp-config.js +335 -0
  424. package/scripts/codex-git-hooks/pre-commit +77 -0
  425. package/scripts/codex-git-hooks/pre-push +124 -0
  426. package/scripts/doctor.js +111 -0
  427. package/scripts/ecc.js +216 -0
  428. package/scripts/gan-harness.sh +299 -0
  429. package/scripts/harness-audit.js +735 -0
  430. package/scripts/hooks/auto-tmux-dev.js +88 -0
  431. package/scripts/hooks/branch-name-check.js +163 -0
  432. package/scripts/hooks/check-console-log.js +71 -0
  433. package/scripts/hooks/check-hook-enabled.js +12 -0
  434. package/scripts/hooks/config-protection.js +140 -0
  435. package/scripts/hooks/cost-tracker.js +78 -0
  436. package/scripts/hooks/design-quality-check.js +131 -0
  437. package/scripts/hooks/desktop-notify.js +168 -0
  438. package/scripts/hooks/doc-file-warning.js +90 -0
  439. package/scripts/hooks/evaluate-session.js +100 -0
  440. package/scripts/hooks/governance-capture.js +334 -0
  441. package/scripts/hooks/mcp-health-check.js +619 -0
  442. package/scripts/hooks/post-bash-build-complete.js +27 -0
  443. package/scripts/hooks/post-bash-command-log.js +73 -0
  444. package/scripts/hooks/post-bash-pr-created.js +36 -0
  445. package/scripts/hooks/post-edit-accumulator.js +78 -0
  446. package/scripts/hooks/post-edit-console-warn.js +54 -0
  447. package/scripts/hooks/post-edit-format.js +109 -0
  448. package/scripts/hooks/post-edit-typecheck.js +96 -0
  449. package/scripts/hooks/pre-bash-commit-quality.js +405 -0
  450. package/scripts/hooks/pre-bash-dev-server-block.js +187 -0
  451. package/scripts/hooks/pre-bash-git-push-reminder.js +28 -0
  452. package/scripts/hooks/pre-bash-tmux-reminder.js +33 -0
  453. package/scripts/hooks/pre-compact.js +48 -0
  454. package/scripts/hooks/pre-write-doc-warn.js +9 -0
  455. package/scripts/hooks/quality-gate.js +168 -0
  456. package/scripts/hooks/run-with-flags-shell.sh +36 -0
  457. package/scripts/hooks/run-with-flags.js +181 -0
  458. package/scripts/hooks/session-end-marker.js +67 -0
  459. package/scripts/hooks/session-end.js +301 -0
  460. package/scripts/hooks/session-start-bootstrap.js +161 -0
  461. package/scripts/hooks/session-start.js +492 -0
  462. package/scripts/hooks/smart-suggest.js +138 -0
  463. package/scripts/hooks/stop-format-typecheck.js +209 -0
  464. package/scripts/hooks/suggest-compact.js +80 -0
  465. package/scripts/hooks/test-reminder.js +128 -0
  466. package/scripts/install-apply.js +150 -0
  467. package/scripts/install-plan.js +266 -0
  468. package/scripts/lib/agent-compress.js +244 -0
  469. package/scripts/lib/hook-flags.js +74 -0
  470. package/scripts/lib/inspection.js +212 -0
  471. package/scripts/lib/install/apply.js +265 -0
  472. package/scripts/lib/install/config.js +89 -0
  473. package/scripts/lib/install/request.js +120 -0
  474. package/scripts/lib/install/runtime.js +54 -0
  475. package/scripts/lib/install-executor.js +672 -0
  476. package/scripts/lib/install-lifecycle.js +1226 -0
  477. package/scripts/lib/install-manifests.js +551 -0
  478. package/scripts/lib/install-state.js +313 -0
  479. package/scripts/lib/install-targets/antigravity-project.js +85 -0
  480. package/scripts/lib/install-targets/claude-home.js +10 -0
  481. package/scripts/lib/install-targets/codebuddy-project.js +50 -0
  482. package/scripts/lib/install-targets/codex-home.js +10 -0
  483. package/scripts/lib/install-targets/cursor-project.js +50 -0
  484. package/scripts/lib/install-targets/gemini-project.js +10 -0
  485. package/scripts/lib/install-targets/helpers.js +340 -0
  486. package/scripts/lib/install-targets/opencode-home.js +10 -0
  487. package/scripts/lib/install-targets/registry.js +70 -0
  488. package/scripts/lib/mcp-config.js +56 -0
  489. package/scripts/lib/observer-sessions.js +175 -0
  490. package/scripts/lib/orchestration-session.js +299 -0
  491. package/scripts/lib/package-manager.d.ts +119 -0
  492. package/scripts/lib/package-manager.js +431 -0
  493. package/scripts/lib/project-detect.js +428 -0
  494. package/scripts/lib/resolve-ecc-root.js +118 -0
  495. package/scripts/lib/resolve-formatter.js +185 -0
  496. package/scripts/lib/session-adapters/canonical-session.js +531 -0
  497. package/scripts/lib/session-adapters/claude-history.js +160 -0
  498. package/scripts/lib/session-adapters/dmux-tmux.js +90 -0
  499. package/scripts/lib/session-adapters/registry.js +127 -0
  500. package/scripts/lib/session-aliases.d.ts +136 -0
  501. package/scripts/lib/session-aliases.js +481 -0
  502. package/scripts/lib/session-manager.d.ts +132 -0
  503. package/scripts/lib/session-manager.js +533 -0
  504. package/scripts/lib/shell-split.js +86 -0
  505. package/scripts/lib/skill-evolution/dashboard.js +401 -0
  506. package/scripts/lib/skill-evolution/health.js +263 -0
  507. package/scripts/lib/skill-evolution/index.js +20 -0
  508. package/scripts/lib/skill-evolution/provenance.js +187 -0
  509. package/scripts/lib/skill-evolution/tracker.js +146 -0
  510. package/scripts/lib/skill-evolution/versioning.js +237 -0
  511. package/scripts/lib/skill-improvement/amendify.js +89 -0
  512. package/scripts/lib/skill-improvement/evaluate.js +59 -0
  513. package/scripts/lib/skill-improvement/health.js +118 -0
  514. package/scripts/lib/skill-improvement/observations.js +108 -0
  515. package/scripts/lib/state-store/index.js +191 -0
  516. package/scripts/lib/state-store/migrations.js +178 -0
  517. package/scripts/lib/state-store/queries.js +697 -0
  518. package/scripts/lib/state-store/schema.js +92 -0
  519. package/scripts/lib/tmux-worktree-orchestrator.js +598 -0
  520. package/scripts/lib/utils.d.ts +196 -0
  521. package/scripts/lib/utils.js +629 -0
  522. package/scripts/list-installed.js +91 -0
  523. package/scripts/orchestrate-codex-worker.sh +107 -0
  524. package/scripts/orchestrate-worktrees.js +108 -0
  525. package/scripts/orchestration-status.js +62 -0
  526. package/scripts/release.sh +83 -0
  527. package/scripts/repair.js +98 -0
  528. package/scripts/session-inspect.js +150 -0
  529. package/scripts/sessions-cli.js +178 -0
  530. package/scripts/setup-package-manager.js +204 -0
  531. package/scripts/skill-create-output.js +244 -0
  532. package/scripts/skills-health.js +132 -0
  533. package/scripts/status.js +177 -0
  534. package/scripts/sync-ecc-to-codex.sh +534 -0
  535. package/scripts/uninstall.js +97 -0
  536. package/skills/agent-eval/SKILL.md +145 -0
  537. package/skills/agent-harness-construction/SKILL.md +73 -0
  538. package/skills/agent-introspection-debugging/SKILL.md +153 -0
  539. package/skills/agent-payment-x402/SKILL.md +178 -0
  540. package/skills/agent-sort/SKILL.md +215 -0
  541. package/skills/agentic-engineering/SKILL.md +63 -0
  542. package/skills/ai-first-engineering/SKILL.md +51 -0
  543. package/skills/ai-regression-testing/SKILL.md +385 -0
  544. package/skills/android-clean-architecture/SKILL.md +339 -0
  545. package/skills/api-connector-builder/SKILL.md +121 -0
  546. package/skills/api-design/SKILL.md +523 -0
  547. package/skills/architecture-decision-records/SKILL.md +179 -0
  548. package/skills/article-writing/SKILL.md +79 -0
  549. package/skills/automation-audit-ops/SKILL.md +142 -0
  550. package/skills/autonomous-agent-harness/SKILL.md +267 -0
  551. package/skills/autonomous-loops/SKILL.md +610 -0
  552. package/skills/backend-patterns/SKILL.md +598 -0
  553. package/skills/benchmark/SKILL.md +93 -0
  554. package/skills/blueprint/SKILL.md +105 -0
  555. package/skills/brand-voice/SKILL.md +97 -0
  556. package/skills/brand-voice/references/voice-profile-schema.md +55 -0
  557. package/skills/browser-qa/SKILL.md +87 -0
  558. package/skills/bun-runtime/SKILL.md +84 -0
  559. package/skills/canary-watch/SKILL.md +99 -0
  560. package/skills/carrier-relationship-management/SKILL.md +212 -0
  561. package/skills/ck/SKILL.md +147 -0
  562. package/skills/ck/commands/forget.mjs +44 -0
  563. package/skills/ck/commands/info.mjs +24 -0
  564. package/skills/ck/commands/init.mjs +143 -0
  565. package/skills/ck/commands/list.mjs +40 -0
  566. package/skills/ck/commands/migrate.mjs +202 -0
  567. package/skills/ck/commands/resume.mjs +36 -0
  568. package/skills/ck/commands/save.mjs +210 -0
  569. package/skills/ck/commands/shared.mjs +387 -0
  570. package/skills/ck/hooks/session-start.mjs +224 -0
  571. package/skills/claude-api/SKILL.md +337 -0
  572. package/skills/claude-devfleet/SKILL.md +103 -0
  573. package/skills/click-path-audit/SKILL.md +244 -0
  574. package/skills/clickhouse-io/SKILL.md +439 -0
  575. package/skills/code-tour/SKILL.md +236 -0
  576. package/skills/codebase-onboarding/SKILL.md +233 -0
  577. package/skills/coding-standards/SKILL.md +549 -0
  578. package/skills/compose-multiplatform-patterns/SKILL.md +299 -0
  579. package/skills/configure-ecc/SKILL.md +367 -0
  580. package/skills/connections-optimizer/SKILL.md +189 -0
  581. package/skills/content-engine/SKILL.md +131 -0
  582. package/skills/content-hash-cache-pattern/SKILL.md +161 -0
  583. package/skills/context-budget/SKILL.md +135 -0
  584. package/skills/continuous-agent-loop/SKILL.md +45 -0
  585. package/skills/continuous-learning/SKILL.md +123 -0
  586. package/skills/continuous-learning/config.json +18 -0
  587. package/skills/continuous-learning/evaluate-session.sh +69 -0
  588. package/skills/continuous-learning-v2/SKILL.md +365 -0
  589. package/skills/continuous-learning-v2/agents/observer-loop.sh +271 -0
  590. package/skills/continuous-learning-v2/agents/observer.md +198 -0
  591. package/skills/continuous-learning-v2/agents/session-guardian.sh +150 -0
  592. package/skills/continuous-learning-v2/agents/start-observer.sh +244 -0
  593. package/skills/continuous-learning-v2/config.json +8 -0
  594. package/skills/continuous-learning-v2/hooks/observe.sh +428 -0
  595. package/skills/continuous-learning-v2/scripts/detect-project.sh +228 -0
  596. package/skills/continuous-learning-v2/scripts/instinct-cli.py +1426 -0
  597. package/skills/continuous-learning-v2/scripts/test_parse_instinct.py +984 -0
  598. package/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
  599. package/skills/council/SKILL.md +203 -0
  600. package/skills/cpp-coding-standards/SKILL.md +723 -0
  601. package/skills/cpp-testing/SKILL.md +324 -0
  602. package/skills/crosspost/SKILL.md +111 -0
  603. package/skills/csharp-testing/SKILL.md +321 -0
  604. package/skills/customer-billing-ops/SKILL.md +140 -0
  605. package/skills/customs-trade-compliance/SKILL.md +263 -0
  606. package/skills/dart-flutter-patterns/SKILL.md +563 -0
  607. package/skills/dashboard-builder/SKILL.md +109 -0
  608. package/skills/data-scraper-agent/SKILL.md +764 -0
  609. package/skills/database-migrations/SKILL.md +429 -0
  610. package/skills/deep-research/SKILL.md +155 -0
  611. package/skills/defi-amm-security/SKILL.md +160 -0
  612. package/skills/deployment-patterns/SKILL.md +427 -0
  613. package/skills/design-system/SKILL.md +82 -0
  614. package/skills/django-patterns/SKILL.md +734 -0
  615. package/skills/django-security/SKILL.md +593 -0
  616. package/skills/django-tdd/SKILL.md +729 -0
  617. package/skills/django-verification/SKILL.md +469 -0
  618. package/skills/dmux-workflows/SKILL.md +191 -0
  619. package/skills/docker-patterns/SKILL.md +364 -0
  620. package/skills/documentation-lookup/SKILL.md +90 -0
  621. package/skills/dotnet-patterns/SKILL.md +321 -0
  622. package/skills/e2e-testing/SKILL.md +326 -0
  623. package/skills/ecc-tools-cost-audit/SKILL.md +160 -0
  624. package/skills/email-ops/SKILL.md +121 -0
  625. package/skills/energy-procurement/SKILL.md +228 -0
  626. package/skills/enterprise-agent-ops/SKILL.md +50 -0
  627. package/skills/eval-harness/SKILL.md +270 -0
  628. package/skills/evm-token-decimals/SKILL.md +130 -0
  629. package/skills/exa-search/SKILL.md +103 -0
  630. package/skills/fal-ai-media/SKILL.md +284 -0
  631. package/skills/finance-billing-ops/SKILL.md +127 -0
  632. package/skills/flutter-dart-code-review/SKILL.md +435 -0
  633. package/skills/foundation-models-on-device/SKILL.md +243 -0
  634. package/skills/frontend-design/SKILL.md +145 -0
  635. package/skills/frontend-patterns/SKILL.md +642 -0
  636. package/skills/frontend-slides/SKILL.md +184 -0
  637. package/skills/frontend-slides/STYLE_PRESETS.md +330 -0
  638. package/skills/gan-style-harness/SKILL.md +278 -0
  639. package/skills/git-mastery/SKILL.md +366 -0
  640. package/skills/git-workflow/SKILL.md +715 -0
  641. package/skills/github-ops/SKILL.md +144 -0
  642. package/skills/golang-patterns/SKILL.md +674 -0
  643. package/skills/golang-testing/SKILL.md +720 -0
  644. package/skills/google-workspace-ops/SKILL.md +95 -0
  645. package/skills/healthcare-cdss-patterns/SKILL.md +245 -0
  646. package/skills/healthcare-emr-patterns/SKILL.md +159 -0
  647. package/skills/healthcare-eval-harness/SKILL.md +207 -0
  648. package/skills/healthcare-phi-compliance/SKILL.md +145 -0
  649. package/skills/hexagonal-architecture/SKILL.md +276 -0
  650. package/skills/hipaa-compliance/SKILL.md +78 -0
  651. package/skills/hookify-rules/SKILL.md +128 -0
  652. package/skills/inventory-demand-planning/SKILL.md +247 -0
  653. package/skills/investor-materials/SKILL.md +96 -0
  654. package/skills/investor-outreach/SKILL.md +91 -0
  655. package/skills/iterative-retrieval/SKILL.md +211 -0
  656. package/skills/java-coding-standards/SKILL.md +147 -0
  657. package/skills/jira-integration/SKILL.md +293 -0
  658. package/skills/jpa-patterns/SKILL.md +151 -0
  659. package/skills/knowledge-ops/SKILL.md +154 -0
  660. package/skills/kodelyth-quickstart/SKILL.md +207 -0
  661. package/skills/kotlin-coroutines-flows/SKILL.md +284 -0
  662. package/skills/kotlin-exposed-patterns/SKILL.md +719 -0
  663. package/skills/kotlin-ktor-patterns/SKILL.md +689 -0
  664. package/skills/kotlin-patterns/SKILL.md +711 -0
  665. package/skills/kotlin-testing/SKILL.md +824 -0
  666. package/skills/laravel-patterns/SKILL.md +415 -0
  667. package/skills/laravel-plugin-discovery/SKILL.md +229 -0
  668. package/skills/laravel-security/SKILL.md +285 -0
  669. package/skills/laravel-tdd/SKILL.md +283 -0
  670. package/skills/laravel-verification/SKILL.md +179 -0
  671. package/skills/lead-intelligence/SKILL.md +321 -0
  672. package/skills/lead-intelligence/agents/enrichment-agent.md +85 -0
  673. package/skills/lead-intelligence/agents/mutual-mapper.md +75 -0
  674. package/skills/lead-intelligence/agents/outreach-drafter.md +98 -0
  675. package/skills/lead-intelligence/agents/signal-scorer.md +60 -0
  676. package/skills/liquid-glass-design/SKILL.md +279 -0
  677. package/skills/llm-trading-agent-security/SKILL.md +146 -0
  678. package/skills/logistics-exception-management/SKILL.md +222 -0
  679. package/skills/manim-video/SKILL.md +89 -0
  680. package/skills/manim-video/assets/network_graph_scene.py +52 -0
  681. package/skills/market-research/SKILL.md +75 -0
  682. package/skills/mcp-server-patterns/SKILL.md +67 -0
  683. package/skills/messages-ops/SKILL.md +104 -0
  684. package/skills/nanoclaw-repl/SKILL.md +33 -0
  685. package/skills/nestjs-patterns/SKILL.md +230 -0
  686. package/skills/nextjs-turbopack/SKILL.md +44 -0
  687. package/skills/nodejs-keccak256/SKILL.md +102 -0
  688. package/skills/nutrient-document-processing/SKILL.md +167 -0
  689. package/skills/nuxt4-patterns/SKILL.md +100 -0
  690. package/skills/observability/SKILL.md +390 -0
  691. package/skills/openclaw-persona-forge/SKILL.md +296 -0
  692. package/skills/openclaw-persona-forge/gacha.py +224 -0
  693. package/skills/openclaw-persona-forge/gacha.sh +5 -0
  694. package/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
  695. package/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
  696. package/skills/openclaw-persona-forge/references/error-handling.md +53 -0
  697. package/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
  698. package/skills/openclaw-persona-forge/references/naming-system.md +39 -0
  699. package/skills/openclaw-persona-forge/references/output-template.md +166 -0
  700. package/skills/opensource-pipeline/SKILL.md +255 -0
  701. package/skills/perl-patterns/SKILL.md +504 -0
  702. package/skills/perl-security/SKILL.md +503 -0
  703. package/skills/perl-testing/SKILL.md +475 -0
  704. package/skills/plankton-code-quality/SKILL.md +236 -0
  705. package/skills/postgres-patterns/SKILL.md +147 -0
  706. package/skills/product-capability/SKILL.md +141 -0
  707. package/skills/product-lens/SKILL.md +92 -0
  708. package/skills/production-scheduling/SKILL.md +238 -0
  709. package/skills/project-flow-ops/SKILL.md +111 -0
  710. package/skills/prompt-optimizer/SKILL.md +397 -0
  711. package/skills/python-patterns/SKILL.md +750 -0
  712. package/skills/python-testing/SKILL.md +816 -0
  713. package/skills/pytorch-patterns/SKILL.md +396 -0
  714. package/skills/quality-nonconformance/SKILL.md +260 -0
  715. package/skills/ralphinho-rfc-pipeline/SKILL.md +67 -0
  716. package/skills/regex-vs-llm-structured-text/SKILL.md +220 -0
  717. package/skills/remotion-video-creation/SKILL.md +43 -0
  718. package/skills/remotion-video-creation/rules/3d.md +86 -0
  719. package/skills/remotion-video-creation/rules/animations.md +29 -0
  720. package/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
  721. package/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
  722. package/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
  723. package/skills/remotion-video-creation/rules/assets.md +78 -0
  724. package/skills/remotion-video-creation/rules/audio.md +172 -0
  725. package/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
  726. package/skills/remotion-video-creation/rules/can-decode.md +75 -0
  727. package/skills/remotion-video-creation/rules/charts.md +58 -0
  728. package/skills/remotion-video-creation/rules/compositions.md +146 -0
  729. package/skills/remotion-video-creation/rules/display-captions.md +126 -0
  730. package/skills/remotion-video-creation/rules/extract-frames.md +229 -0
  731. package/skills/remotion-video-creation/rules/fonts.md +152 -0
  732. package/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
  733. package/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
  734. package/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
  735. package/skills/remotion-video-creation/rules/gifs.md +138 -0
  736. package/skills/remotion-video-creation/rules/images.md +130 -0
  737. package/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
  738. package/skills/remotion-video-creation/rules/lottie.md +67 -0
  739. package/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
  740. package/skills/remotion-video-creation/rules/measuring-text.md +143 -0
  741. package/skills/remotion-video-creation/rules/sequencing.md +106 -0
  742. package/skills/remotion-video-creation/rules/tailwind.md +11 -0
  743. package/skills/remotion-video-creation/rules/text-animations.md +20 -0
  744. package/skills/remotion-video-creation/rules/timing.md +179 -0
  745. package/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
  746. package/skills/remotion-video-creation/rules/transitions.md +122 -0
  747. package/skills/remotion-video-creation/rules/trimming.md +52 -0
  748. package/skills/remotion-video-creation/rules/videos.md +171 -0
  749. package/skills/repo-scan/SKILL.md +78 -0
  750. package/skills/research-ops/SKILL.md +112 -0
  751. package/skills/returns-reverse-logistics/SKILL.md +240 -0
  752. package/skills/rules-distill/SKILL.md +264 -0
  753. package/skills/rules-distill/scripts/scan-rules.sh +58 -0
  754. package/skills/rules-distill/scripts/scan-skills.sh +129 -0
  755. package/skills/rust-patterns/SKILL.md +499 -0
  756. package/skills/rust-testing/SKILL.md +500 -0
  757. package/skills/safety-guard/SKILL.md +75 -0
  758. package/skills/santa-method/SKILL.md +306 -0
  759. package/skills/search-first/SKILL.md +161 -0
  760. package/skills/security-bounty-hunter/SKILL.md +99 -0
  761. package/skills/security-review/SKILL.md +495 -0
  762. package/skills/security-review/cloud-infrastructure-security.md +361 -0
  763. package/skills/security-scan/SKILL.md +165 -0
  764. package/skills/seo/SKILL.md +154 -0
  765. package/skills/skill-comply/SKILL.md +58 -0
  766. package/skills/skill-comply/fixtures/compliant_trace.jsonl +5 -0
  767. package/skills/skill-comply/fixtures/noncompliant_trace.jsonl +3 -0
  768. package/skills/skill-comply/fixtures/tdd_spec.yaml +44 -0
  769. package/skills/skill-comply/prompts/classifier.md +24 -0
  770. package/skills/skill-comply/prompts/scenario_generator.md +62 -0
  771. package/skills/skill-comply/prompts/spec_generator.md +42 -0
  772. package/skills/skill-comply/pyproject.toml +15 -0
  773. package/skills/skill-comply/scripts/__init__.py +0 -0
  774. package/skills/skill-comply/scripts/classifier.py +85 -0
  775. package/skills/skill-comply/scripts/grader.py +122 -0
  776. package/skills/skill-comply/scripts/parser.py +107 -0
  777. package/skills/skill-comply/scripts/report.py +170 -0
  778. package/skills/skill-comply/scripts/run.py +127 -0
  779. package/skills/skill-comply/scripts/runner.py +161 -0
  780. package/skills/skill-comply/scripts/scenario_generator.py +70 -0
  781. package/skills/skill-comply/scripts/spec_generator.py +72 -0
  782. package/skills/skill-comply/scripts/utils.py +13 -0
  783. package/skills/skill-comply/tests/test_grader.py +137 -0
  784. package/skills/skill-comply/tests/test_parser.py +90 -0
  785. package/skills/skill-stocktake/SKILL.md +193 -0
  786. package/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
  787. package/skills/skill-stocktake/scripts/save-results.sh +56 -0
  788. package/skills/skill-stocktake/scripts/scan.sh +170 -0
  789. package/skills/smart-debug/SKILL.md +241 -0
  790. package/skills/social-graph-ranker/SKILL.md +154 -0
  791. package/skills/springboot-patterns/SKILL.md +314 -0
  792. package/skills/springboot-security/SKILL.md +272 -0
  793. package/skills/springboot-tdd/SKILL.md +158 -0
  794. package/skills/springboot-verification/SKILL.md +231 -0
  795. package/skills/strategic-compact/SKILL.md +131 -0
  796. package/skills/strategic-compact/suggest-compact.sh +54 -0
  797. package/skills/swift-actor-persistence/SKILL.md +143 -0
  798. package/skills/swift-concurrency-6-2/SKILL.md +216 -0
  799. package/skills/swift-protocol-di-testing/SKILL.md +190 -0
  800. package/skills/swiftui-patterns/SKILL.md +259 -0
  801. package/skills/tdd-workflow/SKILL.md +463 -0
  802. package/skills/team-builder/SKILL.md +168 -0
  803. package/skills/terminal-ops/SKILL.md +109 -0
  804. package/skills/token-budget-advisor/SKILL.md +133 -0
  805. package/skills/ui-demo/SKILL.md +465 -0
  806. package/skills/unified-notifications-ops/SKILL.md +187 -0
  807. package/skills/verification-loop/SKILL.md +126 -0
  808. package/skills/video-editing/SKILL.md +310 -0
  809. package/skills/videodb/SKILL.md +374 -0
  810. package/skills/videodb/reference/api-reference.md +550 -0
  811. package/skills/videodb/reference/capture-reference.md +407 -0
  812. package/skills/videodb/reference/capture.md +101 -0
  813. package/skills/videodb/reference/editor.md +443 -0
  814. package/skills/videodb/reference/generative.md +331 -0
  815. package/skills/videodb/reference/rtstream-reference.md +564 -0
  816. package/skills/videodb/reference/rtstream.md +65 -0
  817. package/skills/videodb/reference/search.md +230 -0
  818. package/skills/videodb/reference/streaming.md +406 -0
  819. package/skills/videodb/reference/use-cases.md +118 -0
  820. package/skills/videodb/scripts/ws_listener.py +282 -0
  821. package/skills/visa-doc-translate/README.md +86 -0
  822. package/skills/visa-doc-translate/SKILL.md +117 -0
  823. package/skills/workspace-surface-audit/SKILL.md +125 -0
  824. package/skills/x-api/SKILL.md +230 -0
  825. package/social/card-agents.svg +96 -0
  826. package/social/card-install.svg +99 -0
  827. package/social/card-main.svg +133 -0
  828. package/social/github-social-preview.svg +147 -0
  829. package/social/readme-agents.svg +139 -0
  830. package/social/readme-hero.svg +131 -0
  831. package/social/readme-lens.svg +140 -0
  832. package/social/readme-savings.svg +56 -0
  833. package/social/x-card-agents-grid.svg +94 -0
  834. package/social/x-card-free.svg +95 -0
  835. package/social/x-card-hook.svg +77 -0
  836. package/tests/hooks/branch-name-check.test.js +184 -0
  837. package/tests/hooks/smart-suggest.test.js +149 -0
  838. package/tests/hooks/test-reminder.test.js +181 -0
  839. package/tests/run-all.js +55 -0
  840. package/wiki/Agent-Reference.md +199 -0
  841. package/wiki/FAQ.md +142 -0
  842. package/wiki/Home.md +50 -0
  843. package/wiki/Hook-Reference.md +101 -0
  844. package/wiki/Installation-Guide.md +126 -0
  845. package/wiki/Platform-Support.md +106 -0
  846. package/wiki/Skill-Reference.md +103 -0
@@ -0,0 +1,390 @@
1
+ ---
2
+ name: observability
3
+ description: Production observability patterns — structured logging, distributed tracing, metrics, health checks, alerting, and error budgets. Build systems you can understand when they break. Powered by Kodelyth.
4
+ origin: Kodelyth
5
+ ---
6
+
7
+ # Observability — See Everything in Production
8
+
9
+ The three pillars of observability — Logs, Metrics, and Traces — plus health checks, alerting, and error budgets. Powered by Kodelyth.
10
+
11
+ ## When to Use
12
+
13
+ - Setting up logging for a new service
14
+ - Adding tracing to an API or background job
15
+ - Designing a metrics + alerting strategy
16
+ - Debugging a production issue you can't reproduce locally
17
+ - Setting up health check endpoints
18
+ - Building SLOs and error budgets
19
+
20
+ ---
21
+
22
+ ## The Three Pillars
23
+
24
+ ```
25
+ Logs → What happened (events, errors, audit trail)
26
+ Metrics → How much / how often (counts, rates, durations)
27
+ Traces → Why it was slow (request flow across services)
28
+ ```
29
+
30
+ You need all three. Metrics tell you *something is wrong*. Traces tell you *where*. Logs tell you *why*.
31
+
32
+ ---
33
+
34
+ ## Structured Logging
35
+
36
+ ### Never use console.log in production
37
+
38
+ ```typescript
39
+ // BAD: Unstructured — impossible to query, filter, or alert on
40
+ console.log("User logged in: " + userId)
41
+ console.log("Error: " + error.message)
42
+
43
+ // GOOD: Structured — every field is queryable
44
+ logger.info("user.login", {
45
+ userId,
46
+ email: user.email,
47
+ ip: request.ip,
48
+ userAgent: request.headers["user-agent"],
49
+ durationMs: Date.now() - startTime,
50
+ })
51
+
52
+ logger.error("payment.charge.failed", {
53
+ userId,
54
+ orderId,
55
+ amount,
56
+ currency,
57
+ errorCode: error.code,
58
+ errorMessage: error.message,
59
+ stripeErrorType: error.type,
60
+ })
61
+ ```
62
+
63
+ ### Log Levels — Use the Right Level
64
+
65
+ ```typescript
66
+ logger.debug("cache.hit", { key, ttlRemaining }) // Dev only, verbose
67
+ logger.info("order.created", { orderId, amount }) // Normal business events
68
+ logger.warn("rate.limit.approaching", { userId, count, limit }) // Potential problem
69
+ logger.error("db.query.failed", { query, error }) // Needs attention
70
+ logger.fatal("service.crashed", { reason }) // Immediate action required
71
+ ```
72
+
73
+ **Rule:** INFO is for things you'd want to search in production. DEBUG is noise you turn on temporarily.
74
+
75
+ ### TypeScript Logging Setup (Pino — fastest Node.js logger)
76
+
77
+ ```typescript
78
+ // lib/logger.ts
79
+ import pino from 'pino'
80
+
81
+ export const logger = pino({
82
+ level: process.env.LOG_LEVEL ?? 'info',
83
+ base: {
84
+ service: 'api',
85
+ version: process.env.npm_package_version,
86
+ env: process.env.NODE_ENV,
87
+ },
88
+ // Pretty print in dev, JSON in production
89
+ transport: process.env.NODE_ENV === 'development'
90
+ ? { target: 'pino-pretty', options: { colorize: true } }
91
+ : undefined,
92
+ })
93
+
94
+ // Child logger with request context
95
+ export function requestLogger(requestId: string, userId?: string) {
96
+ return logger.child({ requestId, userId })
97
+ }
98
+ ```
99
+
100
+ ### Python Logging Setup (structlog)
101
+
102
+ ```python
103
+ # lib/logging.py
104
+ import structlog
105
+ import logging
106
+
107
+ structlog.configure(
108
+ processors=[
109
+ structlog.stdlib.filter_by_level,
110
+ structlog.stdlib.add_logger_name,
111
+ structlog.stdlib.add_log_level,
112
+ structlog.processors.TimeStamper(fmt="iso"),
113
+ structlog.processors.StackInfoRenderer(),
114
+ structlog.processors.format_exc_info,
115
+ structlog.processors.JSONRenderer(),
116
+ ],
117
+ wrapper_class=structlog.stdlib.BoundLogger,
118
+ context_class=dict,
119
+ logger_factory=structlog.stdlib.LoggerFactory(),
120
+ )
121
+
122
+ log = structlog.get_logger()
123
+
124
+ # Usage:
125
+ log.info("order.created", order_id=order_id, amount=amount, user_id=user_id)
126
+ log.error("payment.failed", error=str(e), order_id=order_id)
127
+ ```
128
+
129
+ ---
130
+
131
+ ## Metrics
132
+
133
+ ### Naming Convention
134
+
135
+ ```
136
+ # Format: namespace_subsystem_name_unit
137
+ http_requests_total # counter
138
+ http_request_duration_seconds # histogram
139
+ db_connections_active # gauge
140
+ cache_hits_total # counter
141
+ cache_misses_total # counter
142
+ queue_depth_messages # gauge
143
+ payment_amount_dollars # histogram
144
+ ```
145
+
146
+ ### Three Metric Types
147
+
148
+ ```typescript
149
+ // Counter — only goes up (requests, errors, events)
150
+ const requestsTotal = new Counter({
151
+ name: 'http_requests_total',
152
+ help: 'Total HTTP requests',
153
+ labelNames: ['method', 'route', 'status_code'],
154
+ })
155
+ requestsTotal.inc({ method: 'POST', route: '/api/orders', status_code: '201' })
156
+
157
+ // Gauge — goes up and down (active connections, queue depth, memory)
158
+ const activeConnections = new Gauge({
159
+ name: 'db_connections_active',
160
+ help: 'Active database connections',
161
+ })
162
+ activeConnections.set(pool.totalCount)
163
+
164
+ // Histogram — distribution of values (latency, request size)
165
+ const requestDuration = new Histogram({
166
+ name: 'http_request_duration_seconds',
167
+ help: 'HTTP request duration',
168
+ labelNames: ['method', 'route'],
169
+ buckets: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5],
170
+ })
171
+ const end = requestDuration.startTimer({ method, route })
172
+ // ... handle request ...
173
+ end() // records duration automatically
174
+ ```
175
+
176
+ ### The Four Golden Signals (Google SRE)
177
+
178
+ ```
179
+ 1. Latency → How long do requests take? (p50, p95, p99)
180
+ 2. Traffic → How many requests/sec?
181
+ 3. Errors → What % of requests fail?
182
+ 4. Saturation → How full is the system? (CPU, memory, queue depth)
183
+ ```
184
+
185
+ Alert on these four before anything else.
186
+
187
+ ---
188
+
189
+ ## Distributed Tracing (OpenTelemetry)
190
+
191
+ ```typescript
192
+ // setup/tracing.ts
193
+ import { NodeSDK } from '@opentelemetry/sdk-node'
194
+ import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'
195
+ import { Resource } from '@opentelemetry/resources'
196
+ import { SEMRESATTRS_SERVICE_NAME } from '@opentelemetry/semantic-conventions'
197
+
198
+ const sdk = new NodeSDK({
199
+ resource: new Resource({
200
+ [SEMRESATTRS_SERVICE_NAME]: 'payment-service',
201
+ }),
202
+ traceExporter: new OTLPTraceExporter({
203
+ url: process.env.OTEL_EXPORTER_OTLP_ENDPOINT,
204
+ }),
205
+ })
206
+
207
+ sdk.start() // call before importing anything else
208
+
209
+ // Usage — spans are created automatically for HTTP requests
210
+ // Add custom spans for important operations:
211
+ import { trace } from '@opentelemetry/api'
212
+
213
+ const tracer = trace.getTracer('payment-service')
214
+
215
+ async function processPayment(orderId: string) {
216
+ const span = tracer.startSpan('payment.process')
217
+ span.setAttributes({ 'order.id': orderId })
218
+
219
+ try {
220
+ const result = await chargeCard(orderId)
221
+ span.setStatus({ code: SpanStatusCode.OK })
222
+ return result
223
+ } catch (error) {
224
+ span.setStatus({ code: SpanStatusCode.ERROR, message: error.message })
225
+ span.recordException(error)
226
+ throw error
227
+ } finally {
228
+ span.end()
229
+ }
230
+ }
231
+ ```
232
+
233
+ ---
234
+
235
+ ## Health Check Endpoints
236
+
237
+ ### Basic Structure
238
+
239
+ ```typescript
240
+ // Every service must expose /health and /ready
241
+ // /health → is the process alive? (used by load balancer)
242
+ // /ready → is the process ready to serve traffic? (used by k8s)
243
+
244
+ app.get('/health', (req, res) => {
245
+ res.json({ status: 'ok', uptime: process.uptime() })
246
+ })
247
+
248
+ app.get('/ready', async (req, res) => {
249
+ const checks = await Promise.allSettled([
250
+ checkDatabase(),
251
+ checkRedis(),
252
+ checkExternalApi(),
253
+ ])
254
+
255
+ const results = {
256
+ database: checks[0].status === 'fulfilled' ? 'ok' : 'error',
257
+ redis: checks[1].status === 'fulfilled' ? 'ok' : 'error',
258
+ external: checks[2].status === 'fulfilled' ? 'ok' : 'error',
259
+ }
260
+
261
+ const allHealthy = Object.values(results).every(v => v === 'ok')
262
+
263
+ res.status(allHealthy ? 200 : 503).json({
264
+ status: allHealthy ? 'ready' : 'degraded',
265
+ checks: results,
266
+ timestamp: new Date().toISOString(),
267
+ })
268
+ })
269
+ ```
270
+
271
+ ---
272
+
273
+ ## Alerting — What to Alert On
274
+
275
+ ### Alert Design Rules
276
+
277
+ ```
278
+ 1. Alert on SYMPTOMS, not causes
279
+ BAD: Alert when CPU > 80%
280
+ GOOD: Alert when p99 latency > 2s (the symptom users feel)
281
+
282
+ 2. Every alert must be actionable
283
+ BAD: "High error rate" with no runbook
284
+ GOOD: "Error rate > 1% — check Datadog dashboard, likely DB issue"
285
+
286
+ 3. Alert on SLOs, not arbitrary thresholds
287
+ BAD: Alert when error rate > 5% (where does 5% come from?)
288
+ GOOD: Alert when error budget burn rate > 2x (based on SLO math)
289
+
290
+ 4. Avoid alert fatigue
291
+ BAD: 50 alerts, most noise
292
+ GOOD: 5 alerts, all critical, all actionable
293
+ ```
294
+
295
+ ### The Four Alerts Every Service Needs
296
+
297
+ ```yaml
298
+ # 1. High error rate
299
+ alert: HighErrorRate
300
+ expr: rate(http_requests_total{status_code=~"5.."}[5m]) /
301
+ rate(http_requests_total[5m]) > 0.01
302
+ for: 2m
303
+ annotations:
304
+ summary: "Error rate above 1% for 2 minutes"
305
+ runbook: "https://runbooks.example.com/high-error-rate"
306
+
307
+ # 2. High latency
308
+ alert: HighLatency
309
+ expr: histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m])) > 2
310
+ for: 5m
311
+ annotations:
312
+ summary: "p99 latency above 2s for 5 minutes"
313
+
314
+ # 3. Service down
315
+ alert: ServiceDown
316
+ expr: up{job="my-service"} == 0
317
+ for: 1m
318
+ annotations:
319
+ summary: "Service has been down for 1 minute"
320
+
321
+ # 4. High queue depth
322
+ alert: QueueBacklog
323
+ expr: queue_depth_messages > 10000
324
+ for: 10m
325
+ annotations:
326
+ summary: "Queue depth above 10k for 10 minutes — consumers may be stuck"
327
+ ```
328
+
329
+ ---
330
+
331
+ ## Error Budgets & SLOs
332
+
333
+ ```
334
+ SLO: Service Level Objective — the target you're trying to hit
335
+ SLA: Service Level Agreement — the contract with consequences
336
+ SLI: Service Level Indicator — the measurement
337
+
338
+ Example:
339
+ SLO: 99.9% of requests succeed within 500ms over 30 days
340
+ SLI: (successful_requests_under_500ms / total_requests) over 30 days
341
+ Error budget: 0.1% of requests can fail = ~43 minutes of downtime/month
342
+ ```
343
+
344
+ ```typescript
345
+ // Error budget calculation
346
+ const sloTarget = 0.999 // 99.9%
347
+ const errorBudget = 1 - sloTarget // 0.001 = 0.1%
348
+ const minutesPerMonth = 30 * 24 * 60 // 43,200 minutes
349
+ const allowedDowntime = errorBudget * minutesPerMonth // 43.2 minutes
350
+
351
+ // Burn rate alert: if you're consuming budget 2x faster than allowed
352
+ const burnRateThreshold = 2
353
+ // Alert if current_error_rate > burn_rate * (1 - slo_target)
354
+ ```
355
+
356
+ ---
357
+
358
+ ## Correlation IDs — Connect Logs Across Services
359
+
360
+ ```typescript
361
+ // Middleware: generate or propagate request ID
362
+ app.use((req, res, next) => {
363
+ const requestId = req.headers['x-request-id'] as string
364
+ ?? crypto.randomUUID()
365
+
366
+ // Set on response so clients can reference it in support tickets
367
+ res.setHeader('x-request-id', requestId)
368
+
369
+ // Make available for the duration of the request
370
+ req.requestId = requestId
371
+ req.log = logger.child({ requestId })
372
+
373
+ next()
374
+ })
375
+
376
+ // Pass downstream to every service call
377
+ async function callPaymentService(orderId: string, requestId: string) {
378
+ return fetch('https://payment-service/charge', {
379
+ headers: {
380
+ 'x-request-id': requestId, // ← propagate to child services
381
+ 'Content-Type': 'application/json',
382
+ },
383
+ body: JSON.stringify({ orderId }),
384
+ })
385
+ }
386
+ ```
387
+
388
+ ---
389
+
390
+ > Powered by Kodelyth — you can't fix what you can't see.
@@ -0,0 +1,50 @@
1
+ ---
2
+ paths:
3
+ - "**/*.cs"
4
+ - "**/*.csx"
5
+ ---
6
+ # C# Patterns
7
+
8
+ > This file extends [common/patterns.md](../common/patterns.md) with C#-specific content.
9
+
10
+ ## API Response Pattern
11
+
12
+ ```csharp
13
+ public sealed record ApiResponse<T>(
14
+ bool Success,
15
+ T? Data = default,
16
+ string? Error = null,
17
+ object? Meta = null);
18
+ ```
19
+
20
+ ## Repository Pattern
21
+
22
+ ```csharp
23
+ public interface IRepository<T>
24
+ {
25
+ Task<IReadOnlyList<T>> FindAllAsync(CancellationToken cancellationToken);
26
+ Task<T?> FindByIdAsync(Guid id, CancellationToken cancellationToken);
27
+ Task<T> CreateAsync(T entity, CancellationToken cancellationToken);
28
+ Task<T> UpdateAsync(T entity, CancellationToken cancellationToken);
29
+ Task DeleteAsync(Guid id, CancellationToken cancellationToken);
30
+ }
31
+ ```
32
+
33
+ ## Options Pattern
34
+
35
+ Use strongly typed options for config instead of reading raw strings throughout the codebase.
36
+
37
+ ```csharp
38
+ public sealed class PaymentsOptions
39
+ {
40
+ public const string SectionName = "Payments";
41
+ public required string BaseUrl { get; init; }
42
+ public required string ApiKeySecretName { get; init; }
43
+ }
44
+ ```
45
+
46
+ ## Dependency Injection
47
+
48
+ - Depend on interfaces at service boundaries
49
+ - Keep constructors focused; if a service needs too many dependencies, split responsibilities
50
+ - Register lifetimes intentionally: singleton for stateless/shared services, scoped for request data, transient for lightweight pure workers
@@ -0,0 +1,178 @@
1
+ # Performance & Cost Optimization
2
+
3
+ ## Budget-First Principle (CRITICAL)
4
+
5
+ **Every token costs money. Every agent invocation costs money. Treat both as finite resources.**
6
+
7
+ Match the model to the task complexity. Do not default to the heaviest model — that wastes money. Do not default to the lightest model on complex work — that wastes time and produces worse output. Pick the right tier for the actual task in front of you.
8
+
9
+ ---
10
+
11
+ ## Model Selection by Platform
12
+
13
+ ### Claude Code (Anthropic Models)
14
+
15
+ | Tier | Model | Task Examples |
16
+ |---|---|---|
17
+ | **Trivial** | Claude Haiku | Rename, format, autocomplete, write a single test, update a comment |
18
+ | **Standard** | Claude Sonnet 4.6 | Build a component, write an API route, debug a bug, refactor a module — **most real coding work** |
19
+ | **Maximum** | Claude Opus 4.6 | Architect a system, plan a large migration, analyze cross-cutting security issues, hardest problems |
20
+
21
+ **Most sessions run on Sonnet 4.6.** Haiku is for genuinely trivial edits. Opus 4.6 is for decisions that would take a senior engineer an hour of deep thinking.
22
+
23
+ ---
24
+
25
+ ### Google Antigravity — Approved Model Stack
26
+
27
+ The approved stack is 4 models. **Gemini 3 Flash and GPT-OSS 120B are not used** — they are insufficient for production-grade, multi-language, 300B-scale work.
28
+
29
+ | Tier | Model | Task Examples |
30
+ |---|---|---|
31
+ | **Standard** | Gemini 3.1 Pro (Low) | Build components, write API routes, server actions, debug rendering issues, write tests, everyday refactoring — **most real coding work** |
32
+ | **Complex** | Gemini 3.1 Pro (High) | Deep multi-file reasoning, architecture decisions, hard bugs spanning many files, security audits, migration planning |
33
+ | **Claude Standard** | Claude Sonnet 4.6 (Thinking) | When Claude agent behavior is needed, extended thinking on difficult problems, complex agent orchestration |
34
+ | **Claude Maximum** | Claude Opus 4.6 (Thinking) | Hardest architectural decisions, maximum reasoning — use when Pro (High) and Sonnet both fall short |
35
+
36
+ **Do not use:**
37
+ - Gemini 3 Flash — insufficient depth for production work
38
+ - GPT-OSS 120B (Medium) — not part of the Kodelyth ECC stack
39
+
40
+ ---
41
+
42
+ ### Antigravity Task Mapping — Any Language, Any Scale
43
+
44
+ | What you are doing | Right model |
45
+ |---|---|
46
+ | Building a React/Next.js component | Gemini 3.1 Pro (Low) |
47
+ | Writing an API route or server action | Gemini 3.1 Pro (Low) |
48
+ | Writing tests | Gemini 3.1 Pro (Low) |
49
+ | Debugging a rendering or logic bug | Gemini 3.1 Pro (Low) |
50
+ | Go service implementation | Gemini 3.1 Pro (Low) |
51
+ | Python API endpoint | Gemini 3.1 Pro (Low) |
52
+ | Kotlin Android feature | Gemini 3.1 Pro (Low) |
53
+ | Rust systems code | Gemini 3.1 Pro (Low) |
54
+ | Java Spring Boot service | Gemini 3.1 Pro (Low) |
55
+ | Hard bug spanning 8+ files | Gemini 3.1 Pro (High) |
56
+ | Auth system architecture | Gemini 3.1 Pro (High) |
57
+ | Security audit across codebase | Gemini 3.1 Pro (High) |
58
+ | Cross-service debugging | Gemini 3.1 Pro (High) |
59
+ | Database schema and query design | Gemini 3.1 Pro (High) |
60
+ | Migration planning (framework, language) | Gemini 3.1 Pro (High) |
61
+ | Deep agent reasoning needed | Claude Sonnet 4.6 (Thinking) |
62
+ | Complex multi-agent orchestration | Claude Sonnet 4.6 (Thinking) |
63
+ | Hardest architectural decisions | Claude Opus 4.6 (Thinking) |
64
+ | Problem that Pro (High) could not solve | Claude Opus 4.6 (Thinking) |
65
+
66
+ **Gemini 3.1 Pro (High) vs (Low) — choose High when:**
67
+ - Task spans 10+ files and requires cross-file reasoning
68
+ - A bug has resisted Pro (Low)'s analysis
69
+ - Security or compliance audit needs full codebase context
70
+ - Architecture decision has significant long-term trade-offs
71
+ - Migration involves complex dependency trees across the project
72
+
73
+ **Claude Sonnet 4.6 (Thinking) — choose when:**
74
+ - You need Claude-specific agent behaviors from ECC
75
+ - The problem requires extended thinking beyond Gemini's reasoning
76
+ - You are orchestrating multiple agents and need deep coordination logic
77
+
78
+ **Claude Opus 4.6 (Thinking) — last resort:**
79
+ - Only when Gemini 3.1 Pro (High) and Claude Sonnet 4.6 have both been tried and fallen short
80
+ - Maximum reasoning on the hardest architectural problems
81
+ - Never open with Opus on a task Pro (Low) can handle
82
+
83
+ ---
84
+
85
+ ## Token Efficiency Rules
86
+
87
+ ### Keep Context Lean
88
+
89
+ - Read only the function or section needed — never feed entire files when a targeted read works
90
+ - Summarize long conversations before continuing deep sessions (`/compact` in Claude Code)
91
+ - Avoid the last 20% of the context window for large operations — start a fresh session instead
92
+ - Clear context between unrelated tasks — stale context adds noise and cost
93
+
94
+ ### Low-Context Tasks — safe at any point in a session
95
+
96
+ - Single-file edits
97
+ - Standalone utility creation
98
+ - Documentation updates
99
+ - Simple bug fixes
100
+ - Writing a test for a function that already exists
101
+
102
+ ### High-Context Tasks — start fresh or compact first
103
+
104
+ - Large-scale refactoring across many files
105
+ - Feature implementation spanning multiple modules
106
+ - Debugging complex multi-service interactions
107
+ - Any task requiring reading 10+ files simultaneously
108
+
109
+ ---
110
+
111
+ ## Agent Invocation Cost Discipline
112
+
113
+ - **Don't spawn agents for trivial tasks** — a one-liner fix does not need a code-reviewer agent
114
+ - **Batch related changes** before invoking a reviewer — review once after a logical unit of work, not after every single edit
115
+ - **Use `async: true` for all non-blocking hooks** — never let a hook add latency to tool execution (Claude Code)
116
+ - **Set hook timeouts aggressively** — hooks must complete in under 5 seconds; anything longer gets killed
117
+ - **Disable hooks you don't use** (Claude Code):
118
+ ```bash
119
+ export ECC_DISABLED_HOOKS=kodelyth:smart-suggest,kodelyth:test-reminder
120
+ ```
121
+
122
+ ---
123
+
124
+ ## Thinking Mode — Use Surgically
125
+
126
+ Claude Sonnet 4.6 (Thinking) and Claude Opus 4.6 (Thinking) reserve large token budgets for internal reasoning. Gemini 3.1 Pro (High) activates deep reasoning mode. Both are expensive. Use deliberately.
127
+
128
+ **Enable thinking / Pro (High) for:**
129
+ - Architectural decisions with significant trade-offs
130
+ - Security analysis of sensitive code paths
131
+ - Debugging that has resisted standard analysis
132
+ - Migration planning across a large, complex codebase
133
+
134
+ **Stay on Pro (Low) for:**
135
+ - Routine code generation
136
+ - Documentation and comment updates
137
+ - Standard refactoring with a clear path
138
+ - Any task where the answer is immediately obvious from context
139
+
140
+ **Claude Code — cap thinking budget to control cost:**
141
+ ```bash
142
+ export MAX_THINKING_TOKENS=5000
143
+
144
+ # Toggle extended thinking: Option+T (macOS) / Alt+T (Windows/Linux)
145
+ ```
146
+
147
+ **Antigravity — select at model picker:**
148
+ - Gemini 3.1 Pro (Low) = fast, capable, handles most work
149
+ - Gemini 3.1 Pro (High) = deep reasoning mode, costs more
150
+ - Claude Sonnet 4.6 (Thinking) = Claude agent behavior + thinking
151
+ - Claude Opus 4.6 (Thinking) = maximum, last resort
152
+
153
+ ---
154
+
155
+ ## Cost Tracking (Claude Code)
156
+
157
+ The cost-tracker hook logs token usage per session to `~/.claude/logs/token-usage.jsonl`.
158
+
159
+ ```bash
160
+ # Top 10 most expensive sessions
161
+ cat ~/.claude/logs/token-usage.jsonl | jq -s 'sort_by(.tokens) | reverse | .[0:10]'
162
+
163
+ # Average tokens per session
164
+ cat ~/.claude/logs/token-usage.jsonl | jq -s '[.[].tokens] | add / length'
165
+ ```
166
+
167
+ High-cost sessions signal one of three problems: wrong model selection, poor context hygiene, or over-spawning agents. Fix the habit, not just the session.
168
+
169
+ ---
170
+
171
+ ## Build Troubleshooting
172
+
173
+ Build errors are pattern-matching tasks, not deep reasoning tasks.
174
+
175
+ 1. Use **build-error-resolver** agent — Pro (Low) or Sonnet tier, not Opus
176
+ 2. Feed the exact error message, not the entire build log
177
+ 3. Fix one error at a time
178
+ 4. Verify after each fix before continuing
@@ -0,0 +1,58 @@
1
+ ---
2
+ paths:
3
+ - "**/*.cs"
4
+ - "**/*.csx"
5
+ - "**/*.csproj"
6
+ - "**/appsettings*.json"
7
+ ---
8
+ # C# Security
9
+
10
+ > This file extends [common/security.md](../common/security.md) with C#-specific content.
11
+
12
+ ## Secret Management
13
+
14
+ - Never hardcode API keys, tokens, or connection strings in source code
15
+ - Use environment variables, user secrets for local development, and a secret manager in production
16
+ - Keep `appsettings.*.json` free of real credentials
17
+
18
+ ```csharp
19
+ // BAD
20
+ const string ApiKey = "sk-live-123";
21
+
22
+ // GOOD
23
+ var apiKey = builder.Configuration["OpenAI:ApiKey"]
24
+ ?? throw new InvalidOperationException("OpenAI:ApiKey is not configured.");
25
+ ```
26
+
27
+ ## SQL Injection Prevention
28
+
29
+ - Always use parameterized queries with ADO.NET, Dapper, or EF Core
30
+ - Never concatenate user input into SQL strings
31
+ - Validate sort fields and filter operators before using dynamic query composition
32
+
33
+ ```csharp
34
+ const string sql = "SELECT * FROM Orders WHERE CustomerId = @customerId";
35
+ await connection.QueryAsync<Order>(sql, new { customerId });
36
+ ```
37
+
38
+ ## Input Validation
39
+
40
+ - Validate DTOs at the application boundary
41
+ - Use data annotations, FluentValidation, or explicit guard clauses
42
+ - Reject invalid model state before running business logic
43
+
44
+ ## Authentication and Authorization
45
+
46
+ - Prefer framework auth handlers instead of custom token parsing
47
+ - Enforce authorization policies at endpoint or handler boundaries
48
+ - Never log raw tokens, passwords, or PII
49
+
50
+ ## Error Handling
51
+
52
+ - Return safe client-facing messages
53
+ - Log detailed exceptions with structured context server-side
54
+ - Do not expose stack traces, SQL text, or filesystem paths in API responses
55
+
56
+ ## References
57
+
58
+ See skill: `security-review` for broader application security review checklists.