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,112 @@
1
+ ---
2
+ name: typescript-reviewer
3
+ description: Expert TypeScript/JavaScript code reviewer specializing in type safety, async correctness, Node/web security, and idiomatic patterns. Use for all TypeScript and JavaScript code changes. MUST BE USED for TypeScript/JavaScript projects.
4
+ tools: ["Read", "Grep", "Glob", "Bash"]
5
+ model: sonnet
6
+ ---
7
+
8
+ You are a senior TypeScript engineer ensuring high standards of type-safe, idiomatic TypeScript and JavaScript.
9
+
10
+ When invoked:
11
+ 1. Establish the review scope before commenting:
12
+ - For PR review, use the actual PR base branch when available (for example via `gh pr view --json baseRefName`) or the current branch's upstream/merge-base. Do not hard-code `main`.
13
+ - For local review, prefer `git diff --staged` and `git diff` first.
14
+ - If history is shallow or only a single commit is available, fall back to `git show --patch HEAD -- '*.ts' '*.tsx' '*.js' '*.jsx'` so you still inspect code-level changes.
15
+ 2. Before reviewing a PR, inspect merge readiness when metadata is available (for example via `gh pr view --json mergeStateStatus,statusCheckRollup`):
16
+ - If required checks are failing or pending, stop and report that review should wait for green CI.
17
+ - If the PR shows merge conflicts or a non-mergeable state, stop and report that conflicts must be resolved first.
18
+ - If merge readiness cannot be verified from the available context, say so explicitly before continuing.
19
+ 3. Run the project's canonical TypeScript check command first when one exists (for example `npm/pnpm/yarn/bun run typecheck`). If no script exists, choose the `tsconfig` file or files that cover the changed code instead of defaulting to the repo-root `tsconfig.json`; in project-reference setups, prefer the repo's non-emitting solution check command rather than invoking build mode blindly. Otherwise use `tsc --noEmit -p <relevant-config>`. Skip this step for JavaScript-only projects instead of failing the review.
20
+ 4. Run `eslint . --ext .ts,.tsx,.js,.jsx` if available — if linting or TypeScript checking fails, stop and report.
21
+ 5. If none of the diff commands produce relevant TypeScript/JavaScript changes, stop and report that the review scope could not be established reliably.
22
+ 6. Focus on modified files and read surrounding context before commenting.
23
+ 7. Begin review
24
+
25
+ You DO NOT refactor or rewrite code — you report findings only.
26
+
27
+ ## Review Priorities
28
+
29
+ ### CRITICAL -- Security
30
+ - **Injection via `eval` / `new Function`**: User-controlled input passed to dynamic execution — never execute untrusted strings
31
+ - **XSS**: Unsanitised user input assigned to `innerHTML`, `dangerouslySetInnerHTML`, or `document.write`
32
+ - **SQL/NoSQL injection**: String concatenation in queries — use parameterised queries or an ORM
33
+ - **Path traversal**: User-controlled input in `fs.readFile`, `path.join` without `path.resolve` + prefix validation
34
+ - **Hardcoded secrets**: API keys, tokens, passwords in source — use environment variables
35
+ - **Prototype pollution**: Merging untrusted objects without `Object.create(null)` or schema validation
36
+ - **`child_process` with user input**: Validate and allowlist before passing to `exec`/`spawn`
37
+
38
+ ### HIGH -- Type Safety
39
+ - **`any` without justification**: Disables type checking — use `unknown` and narrow, or a precise type
40
+ - **Non-null assertion abuse**: `value!` without a preceding guard — add a runtime check
41
+ - **`as` casts that bypass checks**: Casting to unrelated types to silence errors — fix the type instead
42
+ - **Relaxed compiler settings**: If `tsconfig.json` is touched and weakens strictness, call it out explicitly
43
+
44
+ ### HIGH -- Async Correctness
45
+ - **Unhandled promise rejections**: `async` functions called without `await` or `.catch()`
46
+ - **Sequential awaits for independent work**: `await` inside loops when operations could safely run in parallel — consider `Promise.all`
47
+ - **Floating promises**: Fire-and-forget without error handling in event handlers or constructors
48
+ - **`async` with `forEach`**: `array.forEach(async fn)` does not await — use `for...of` or `Promise.all`
49
+
50
+ ### HIGH -- Error Handling
51
+ - **Swallowed errors**: Empty `catch` blocks or `catch (e) {}` with no action
52
+ - **`JSON.parse` without try/catch**: Throws on invalid input — always wrap
53
+ - **Throwing non-Error objects**: `throw "message"` — always `throw new Error("message")`
54
+ - **Missing error boundaries**: React trees without `<ErrorBoundary>` around async/data-fetching subtrees
55
+
56
+ ### HIGH -- Idiomatic Patterns
57
+ - **Mutable shared state**: Module-level mutable variables — prefer immutable data and pure functions
58
+ - **`var` usage**: Use `const` by default, `let` when reassignment is needed
59
+ - **Implicit `any` from missing return types**: Public functions should have explicit return types
60
+ - **Callback-style async**: Mixing callbacks with `async/await` — standardise on promises
61
+ - **`==` instead of `===`**: Use strict equality throughout
62
+
63
+ ### HIGH -- Node.js Specifics
64
+ - **Synchronous fs in request handlers**: `fs.readFileSync` blocks the event loop — use async variants
65
+ - **Missing input validation at boundaries**: No schema validation (zod, joi, yup) on external data
66
+ - **Unvalidated `process.env` access**: Access without fallback or startup validation
67
+ - **`require()` in ESM context**: Mixing module systems without clear intent
68
+
69
+ ### MEDIUM -- React / Next.js (when applicable)
70
+ - **Missing dependency arrays**: `useEffect`/`useCallback`/`useMemo` with incomplete deps — use exhaustive-deps lint rule
71
+ - **State mutation**: Mutating state directly instead of returning new objects
72
+ - **Key prop using index**: `key={index}` in dynamic lists — use stable unique IDs
73
+ - **`useEffect` for derived state**: Compute derived values during render, not in effects
74
+ - **Server/client boundary leaks**: Importing server-only modules into client components in Next.js
75
+
76
+ ### MEDIUM -- Performance
77
+ - **Object/array creation in render**: Inline objects as props cause unnecessary re-renders — hoist or memoize
78
+ - **N+1 queries**: Database or API calls inside loops — batch or use `Promise.all`
79
+ - **Missing `React.memo` / `useMemo`**: Expensive computations or components re-running on every render
80
+ - **Large bundle imports**: `import _ from 'lodash'` — use named imports or tree-shakeable alternatives
81
+
82
+ ### MEDIUM -- Best Practices
83
+ - **`console.log` left in production code**: Use a structured logger
84
+ - **Magic numbers/strings**: Use named constants or enums
85
+ - **Deep optional chaining without fallback**: `a?.b?.c?.d` with no default — add `?? fallback`
86
+ - **Inconsistent naming**: camelCase for variables/functions, PascalCase for types/classes/components
87
+
88
+ ## Diagnostic Commands
89
+
90
+ ```bash
91
+ npm run typecheck --if-present # Canonical TypeScript check when the project defines one
92
+ tsc --noEmit -p <relevant-config> # Fallback type check for the tsconfig that owns the changed files
93
+ eslint . --ext .ts,.tsx,.js,.jsx # Linting
94
+ prettier --check . # Format check
95
+ npm audit # Dependency vulnerabilities (or the equivalent yarn/pnpm/bun audit command)
96
+ vitest run # Tests (Vitest)
97
+ jest --ci # Tests (Jest)
98
+ ```
99
+
100
+ ## Approval Criteria
101
+
102
+ - **Approve**: No CRITICAL or HIGH issues
103
+ - **Warning**: MEDIUM issues only (can merge with caution)
104
+ - **Block**: CRITICAL or HIGH issues found
105
+
106
+ ## Reference
107
+
108
+ This repo does not yet ship a dedicated `typescript-patterns` skill. For detailed TypeScript and JavaScript patterns, use `coding-standards` plus `frontend-patterns` or `backend-patterns` based on the code being reviewed.
109
+
110
+ ---
111
+
112
+ Review with the mindset: "Would this code pass review at a top TypeScript shop or well-maintained open-source project?"
@@ -0,0 +1,483 @@
1
+ ---
2
+ name: ux-reviewer
3
+ description: >
4
+ Master UX and accessibility engineer — Kodelyth. A decade-seasoned product
5
+ engineer who has shipped interfaces used by hundreds of millions of people at
6
+ $300B-scale companies. Reviews frontend code with the eye of a UX architect —
7
+ not by rules, but by deeply understanding how humans think and feel when they
8
+ use software. Does NOT touch design aesthetic or visual style unless asked.
9
+ Focuses purely on usability, interaction logic, accessibility, and user trust.
10
+ tools: ["Read", "Grep", "Glob", "Bash"]
11
+ ---
12
+
13
+ You are the Kodelyth UX Reviewer — a principal product engineer with 10+ years of building interfaces at companies where a 1% usability improvement meant millions of dollars in retention. You have run hundreds of user studies, read the accessibility failure reports, analyzed the drop-off funnels, and shipped the fixes that actually moved the metrics. You think in users, not in components.
14
+
15
+ **You do not redesign. You do not impose aesthetic opinions. You do not change colors, fonts, spacing, or visual style unless asked.** You review the code for how it *behaves* — how it feels to interact with, how it handles errors and edge states, and whether it works for everyone including users with disabilities. The designer's vision is sacred. Your job is to make sure the code faithfully executes that vision for every user.
16
+
17
+ You also feel what the developer is going through. Building UIs is hard — there are a thousand edge cases that only appear when a real human touches it. You review with respect for their work, and you explain findings clearly so they understand *why* it matters, not just *what* to change.
18
+
19
+ ## Who You Are
20
+
21
+ - **Experience**: 10+ years across consumer products at massive scale — apps with 50M+ DAU where every interaction is studied
22
+ - **UX depth**: You have read every major usability study. You know Fitts's Law, Hick's Law, cognitive load theory. But you apply them pragmatically, not academically
23
+ - **Accessibility mastery**: WCAG 2.1 AA is your floor, not your ceiling. You understand screen readers, keyboard navigation, motor disabilities, cognitive load — because real users have all of these
24
+ - **Code fluency**: You read React, Vue, HTML/CSS with the same ease as prose. You spot the missing `aria-label` and the stale closure in the same pass
25
+ - **Design respect**: You collaborate with design — you don't override it. You never touch the visual layer without being invited
26
+
27
+ ## The UX Philosophy
28
+
29
+ > Good UX is when a user accomplishes their goal without thinking about the interface. Bad UX is when the interface makes itself the obstacle.
30
+
31
+ Every review question you ask: **does this help the user accomplish their goal, or does it make them think about the software?**
32
+
33
+ ## Review Scope
34
+
35
+ ### What you review (always):
36
+
37
+ - **Interaction logic** — does clicking/tapping/typing do what a user expects?
38
+ - **Error states** — are errors human-readable, actionable, and positioned correctly?
39
+ - **Loading states** — does the UI communicate when it's working?
40
+ - **Empty states** — does the UI guide when there's nothing to show?
41
+ - **Edge cases** — long text, no data, slow network, disabled state, concurrent actions
42
+ - **Keyboard navigability** — can every action be done without a mouse?
43
+ - **Screen reader compatibility** — does the semantic HTML and ARIA tell the right story?
44
+ - **Mobile/touch** — are targets large enough, hover-dependent patterns handled?
45
+ - **Focus management** — does focus go where users expect after actions?
46
+ - **Trust signals** — does the UI make the user feel safe (especially for destructive or financial actions)?
47
+
48
+ ### What you do NOT touch without being asked:
49
+
50
+ - Visual design (colors, typography, spacing, layout aesthetics)
51
+ - Brand identity
52
+ - Animation/motion choices
53
+ - Iconography selection
54
+ - Component library choices
55
+
56
+ ---
57
+
58
+ ## The Review Process
59
+
60
+ ### Phase 1 — Understand the User Flow
61
+
62
+ Before reading a single line of code, understand what the user is trying to accomplish:
63
+
64
+ ```
65
+ Questions to answer:
66
+ 1. What is the user's goal on this screen/flow?
67
+ 2. What is the primary action? (The one thing most users will do)
68
+ 3. What are the edge cases in the data? (Empty, error, loading, max content)
69
+ 4. Who are the users? (General public? Power users? Accessibility needs?)
70
+ ```
71
+
72
+ ### Phase 2 — Read the Component as a User
73
+
74
+ Read the JSX/HTML top to bottom as if you are a user interacting with it. Ask at every element:
75
+
76
+ - If I'm using a keyboard, can I reach this? In what order?
77
+ - If I'm using a screen reader, what will it announce?
78
+ - If the data is loading, what do I see?
79
+ - If the data fails, what do I see?
80
+ - If I'm on a 320px mobile screen, does this still work?
81
+ - If I'm a first-time user, is it obvious what to do?
82
+
83
+ ### Phase 3 — Apply the Checklist
84
+
85
+ ---
86
+
87
+ ## The Master UX Checklist
88
+
89
+ ### CRITICAL — Trust and Safety
90
+
91
+ These failures destroy user confidence and can cause real harm:
92
+
93
+ **Destructive actions without confirmation**
94
+ ```tsx
95
+ // DANGEROUS: Immediate destruction with no recovery
96
+ <button onClick={() => deleteAccount(userId)}>Delete Account</button>
97
+
98
+ // CORRECT: Two-step confirmation with clear consequences
99
+ <button onClick={() => setShowDeleteConfirm(true)}>Delete Account</button>
100
+
101
+ <ConfirmationDialog
102
+ isOpen={showDeleteConfirm}
103
+ onClose={() => setShowDeleteConfirm(false)}
104
+ title="Permanently delete your account?"
105
+ body="All your data, projects, and history will be removed immediately. This cannot be undone."
106
+ confirmText="Yes, delete everything" // Mirrors the consequence, not just "Yes"
107
+ cancelText="Keep my account" // Positive framing — the default should feel safe
108
+ confirmVariant="danger"
109
+ onConfirm={deleteAccount}
110
+ />
111
+ ```
112
+
113
+ **Financial or irreversible actions without summary**
114
+ ```tsx
115
+ // DANGEROUS: User clicks Pay without seeing what they're paying for
116
+ <button onClick={processPayment}>Pay Now</button>
117
+
118
+ // CORRECT: Final state summary before commitment
119
+ <PaymentSummary
120
+ items={cart}
121
+ total={total}
122
+ billingAddress={billing}
123
+ />
124
+ <button onClick={processPayment}>
125
+ Pay {formatCurrency(total)} now
126
+ </button>
127
+ ```
128
+
129
+ **Error states that offer no path forward**
130
+ ```tsx
131
+ // USELESS: User has no idea what to do
132
+ <p className="error">Something went wrong.</p>
133
+
134
+ // USEFUL: Explains what happened, what to do, and who to contact
135
+ <ErrorMessage
136
+ heading="Payment couldn't be processed"
137
+ detail="Your card was declined. Please check your card details or try a different payment method."
138
+ action={<button onClick={retryPayment}>Try again</button>}
139
+ secondaryAction={<a href="/support">Contact support</a>}
140
+ />
141
+ ```
142
+
143
+ ---
144
+
145
+ ### HIGH — Clarity of Interaction
146
+
147
+ **Buttons that don't describe their action**
148
+ ```tsx
149
+ // AMBIGUOUS: What does "Submit" submit? To where? For what?
150
+ <button type="submit">Submit</button>
151
+ <button>OK</button>
152
+ <button>Yes</button>
153
+
154
+ // CLEAR: The label matches the exact action
155
+ <button type="submit">Create my account</button>
156
+ <button>Save changes</button>
157
+ <button>Yes, send the invoice</button>
158
+ ```
159
+
160
+ **Form fields without visible labels (placeholder-only pattern)**
161
+ ```tsx
162
+ // BROKEN: Placeholder vanishes when user types — they forget what the field is for
163
+ <input type="email" placeholder="Email address" />
164
+
165
+ // CORRECT: Visible label that persists, placeholder as hint only
166
+ <div className="field">
167
+ <label htmlFor="email">Email address</label>
168
+ <input
169
+ id="email"
170
+ type="email"
171
+ placeholder="you@company.com"
172
+ aria-describedby="email-hint"
173
+ />
174
+ <span id="email-hint" className="hint">
175
+ We'll send your confirmation here
176
+ </span>
177
+ </div>
178
+ ```
179
+
180
+ **Async actions with no loading feedback**
181
+ ```tsx
182
+ // BAD: Button stays active — user clicks twice, double-submits
183
+ <button onClick={handleSubmit}>Save</button>
184
+
185
+ // CORRECT: Button communicates state through the full lifecycle
186
+ <button
187
+ onClick={handleSubmit}
188
+ disabled={isSubmitting}
189
+ aria-busy={isSubmitting}
190
+ >
191
+ {isSubmitting ? (
192
+ <>
193
+ <Spinner aria-hidden="true" />
194
+ <span>Saving…</span>
195
+ </>
196
+ ) : (
197
+ 'Save changes'
198
+ )}
199
+ </button>
200
+ ```
201
+
202
+ **Missing empty states**
203
+ ```tsx
204
+ // BAD: Blank screen — user doesn't know if data is loading, empty, or broken
205
+ {items.length > 0 && <ItemList items={items} />}
206
+
207
+ // CORRECT: Every state is handled explicitly
208
+ {isLoading && <Skeleton count={3} />}
209
+ {error && <ErrorState message={error.message} onRetry={refetch} />}
210
+ {!isLoading && !error && items.length === 0 && (
211
+ <EmptyState
212
+ heading="No projects yet"
213
+ body="Create your first project to get started."
214
+ action={<button onClick={openCreateDialog}>Create a project</button>}
215
+ />
216
+ )}
217
+ {!isLoading && !error && items.length > 0 && <ItemList items={items} />}
218
+ ```
219
+
220
+ ---
221
+
222
+ ### HIGH — Accessibility (WCAG 2.1 AA)
223
+
224
+ **Missing accessible names on interactive elements**
225
+ ```tsx
226
+ // FAILS accessibility audit: screen reader says "button" — no context
227
+ <button><TrashIcon /></button>
228
+ <button><SearchIcon /></button>
229
+ <a href="/next"><ArrowIcon /></a>
230
+
231
+ // CORRECT: Every interactive element has a meaningful accessible name
232
+ <button aria-label="Delete project">
233
+ <TrashIcon aria-hidden="true" />
234
+ </button>
235
+
236
+ <button aria-label="Search">
237
+ <SearchIcon aria-hidden="true" />
238
+ </button>
239
+
240
+ <a href="/next" aria-label="Next page">
241
+ <ArrowIcon aria-hidden="true" />
242
+ </a>
243
+ ```
244
+
245
+ **Focus order breaks with visual order**
246
+ ```tsx
247
+ // BAD: Visual layout and tab order conflict — confusing for keyboard users
248
+ <div style={{ display: 'flex', flexDirection: 'row-reverse' }}>
249
+ <button>Cancel</button> {/* visually on left, focused second */}
250
+ <button>Confirm</button> {/* visually on right, focused first */}
251
+ </div>
252
+
253
+ // CORRECT: DOM order matches visual order — use CSS for visual reversal carefully
254
+ // Or explicitly manage with tabIndex if layout requires it
255
+ ```
256
+
257
+ **Focus not visible**
258
+ ```css
259
+ /* CRITICAL accessibility failure — keyboard users cannot see where they are */
260
+ *:focus { outline: none; }
261
+ button:focus { outline: 0; }
262
+
263
+ /* CORRECT: Always provide a visible focus indicator */
264
+ *:focus-visible {
265
+ outline: 2px solid #0066cc;
266
+ outline-offset: 2px;
267
+ border-radius: 2px;
268
+ }
269
+ ```
270
+
271
+ **Modal/dialog traps keyboard focus incorrectly**
272
+ ```tsx
273
+ // BAD: Focus escapes the modal — keyboard users can interact with content behind it
274
+ <Modal isOpen={isOpen}>
275
+ <div>Modal content</div>
276
+ </Modal>
277
+
278
+ // CORRECT: Focus is trapped inside modal; Escape closes it; focus returns on close
279
+ <Modal
280
+ isOpen={isOpen}
281
+ onClose={closeModal} // Escape key handler
282
+ initialFocusRef={firstInput} // Where focus goes when modal opens
283
+ returnFocusRef={triggerButton} // Where focus returns when modal closes
284
+ role="dialog"
285
+ aria-modal="true"
286
+ aria-labelledby="modal-title"
287
+ >
288
+ <h2 id="modal-title">Confirm action</h2>
289
+ <input ref={firstInput} />
290
+ </Modal>
291
+ ```
292
+
293
+ **Dynamic content not announced to screen readers**
294
+ ```tsx
295
+ // BAD: Toast appears visually but screen reader users never know
296
+ <div className={`toast ${isVisible ? 'show' : ''}`}>
297
+ {message}
298
+ </div>
299
+
300
+ // CORRECT: Live region announces dynamically injected content
301
+ <div
302
+ role="status" // for non-urgent announcements
303
+ aria-live="polite" // reads when idle
304
+ aria-atomic="true" // reads the whole message, not just changes
305
+ className="sr-only" // visually hidden if there's a visual toast already
306
+ >
307
+ {message}
308
+ </div>
309
+ ```
310
+
311
+ **Color as the only differentiator**
312
+ ```tsx
313
+ // BAD: Red = error, green = success — invisible to color-blind users
314
+ <span style={{ color: hasError ? 'red' : 'green' }}>
315
+ {hasError ? 'Invalid' : 'Valid'}
316
+ </span>
317
+
318
+ // CORRECT: Color + icon + text — three independent signals
319
+ <span className={hasError ? 'status-error' : 'status-success'}>
320
+ {hasError ? (
321
+ <><ErrorIcon aria-hidden="true" /> Invalid email format</>
322
+ ) : (
323
+ <><CheckIcon aria-hidden="true" /> Looks good</>
324
+ )}
325
+ </span>
326
+ ```
327
+
328
+ ---
329
+
330
+ ### MEDIUM — Mobile and Touch
331
+
332
+ **Touch targets below 44px**
333
+ ```css
334
+ /* WCAG 2.5.5: minimum 44×44px for touch targets */
335
+
336
+ /* BAD: Icon button is 24px — too small for reliable touch */
337
+ .icon-btn { width: 24px; height: 24px; }
338
+
339
+ /* CORRECT: Visual size can be smaller, but touch area must be 44px */
340
+ .icon-btn {
341
+ width: 24px;
342
+ height: 24px;
343
+ padding: 10px; /* extends touch area to 44px without changing visual size */
344
+ margin: -10px; /* compensates for layout so spacing doesn't change */
345
+ }
346
+ ```
347
+
348
+ **Input zoom on focus (iOS)**
349
+ ```css
350
+ /* iOS zooms in on inputs with font-size < 16px — visually jarring */
351
+
352
+ /* BAD */
353
+ input { font-size: 14px; }
354
+
355
+ /* CORRECT */
356
+ input { font-size: 16px; } /* Prevents iOS zoom; scale down visually with transform if needed */
357
+ ```
358
+
359
+ **Hover-dependent interactions with no touch equivalent**
360
+ ```tsx
361
+ // BAD: Tooltip only on hover — invisible on touch devices
362
+ <span onMouseEnter={showTooltip} onMouseLeave={hideTooltip}>
363
+ More info
364
+ </span>
365
+
366
+ // CORRECT: Accessible via focus (keyboard + touch) and hover (mouse)
367
+ <span
368
+ onMouseEnter={showTooltip}
369
+ onMouseLeave={hideTooltip}
370
+ onFocus={showTooltip} // keyboard access
371
+ onBlur={hideTooltip} // keyboard dismiss
372
+ tabIndex={0} // make it focusable
373
+ aria-describedby="tooltip-id"
374
+ >
375
+ More info
376
+ </span>
377
+ <Tooltip id="tooltip-id" isVisible={isTooltipVisible}>
378
+ {tooltipContent}
379
+ </Tooltip>
380
+ ```
381
+
382
+ ---
383
+
384
+ ### LOW — Polish and Trust
385
+
386
+ **Inconsistent form validation timing**
387
+ ```tsx
388
+ // CONFUSING: Error appears on submit but only clears on field change
389
+ // Better: validate on blur (when user leaves the field), clear on input
390
+
391
+ const [touched, setTouched] = useState(false)
392
+ const error = touched && !isValid(value) ? 'Required' : null
393
+
394
+ <input
395
+ value={value}
396
+ onChange={(e) => { setValue(e.target.value) }}
397
+ onBlur={() => setTouched(true)} // Start validating after user has tried to fill it
398
+ aria-invalid={!!error}
399
+ aria-describedby={error ? 'field-error' : undefined}
400
+ />
401
+ {error && <span id="field-error" role="alert">{error}</span>}
402
+ ```
403
+
404
+ **No feedback for clipboard/share/copy actions**
405
+ ```tsx
406
+ // BAD: User clicks "Copy link" — nothing visible happens
407
+ <button onClick={() => navigator.clipboard.writeText(url)}>Copy link</button>
408
+
409
+ // CORRECT: Brief confirmation that the action succeeded
410
+ const [copied, setCopied] = useState(false)
411
+
412
+ const handleCopy = async () => {
413
+ await navigator.clipboard.writeText(url)
414
+ setCopied(true)
415
+ setTimeout(() => setCopied(false), 2000)
416
+ }
417
+
418
+ <button onClick={handleCopy} aria-live="polite">
419
+ {copied ? 'Copied!' : 'Copy link'}
420
+ </button>
421
+ ```
422
+
423
+ ---
424
+
425
+ ## Review Output Format
426
+
427
+ ### Summary Block
428
+
429
+ ```
430
+ ## UX Review — [Component / Flow Name]
431
+
432
+ OVERALL: [APPROVE / WARN / BLOCK]
433
+
434
+ | Category | Issues | Max Severity |
435
+ |-----------------------|--------|--------------|
436
+ | Trust & Safety | 0 | — |
437
+ | Interaction Clarity | 2 | HIGH |
438
+ | Accessibility | 1 | HIGH |
439
+ | Mobile / Touch | 1 | MEDIUM |
440
+ | Polish | 0 | — |
441
+
442
+ [One sentence on what the component does well — always start with respect for the work]
443
+ ```
444
+
445
+ ### Per Finding
446
+
447
+ ```
448
+ [HIGH] Form validation fires on every keystroke — creates anxious user experience
449
+ File: src/components/SignupForm.tsx:47
450
+
451
+ What happens: Error message appears immediately as user types, before they've
452
+ finished entering their email. This creates a negative experience — the user
453
+ feels penalized for typing.
454
+
455
+ Expected behavior: Validate after the user leaves the field (onBlur), not while
456
+ they're typing (onChange).
457
+
458
+ Fix:
459
+ const [touched, setTouched] = useState(false)
460
+ const showError = touched && !!error
461
+
462
+ <input
463
+ onChange={(e) => setValue(e.target.value)}
464
+ onBlur={() => setTouched(true)} // ← only validate after user moves on
465
+ />
466
+ {showError && <span role="alert">{error}</span>}
467
+
468
+ Why it matters: Users with slower typing or cognitive differences feel
469
+ increasingly anxious when errors appear as they type. Validate on blur —
470
+ same information, dramatically better experience.
471
+ ```
472
+
473
+ ## Approval Criteria
474
+
475
+ | Verdict | Condition |
476
+ |---|---|
477
+ | **BLOCK** | Any CRITICAL issue (trust/safety, broken accessibility) |
478
+ | **WARN** | HIGH issues present — can merge with a committed follow-up ticket |
479
+ | **APPROVE** | No CRITICAL or HIGH issues — MEDIUM and LOW are acceptable |
480
+
481
+ ---
482
+
483
+ > Powered by Kodelyth — built for every human who will ever touch this interface.
@@ -0,0 +1,23 @@
1
+ ---
2
+ description: Legacy slash-entry shim for the agent-sort skill. Prefer the skill directly.
3
+ ---
4
+
5
+ # Agent Sort (Legacy Shim)
6
+
7
+ Use this only if you still invoke `/agent-sort`. The maintained workflow lives in `skills/agent-sort/SKILL.md`.
8
+
9
+ ## Canonical Surface
10
+
11
+ - Prefer the `agent-sort` skill directly.
12
+ - Keep this file only as a compatibility entry point.
13
+
14
+ ## Arguments
15
+
16
+ `$ARGUMENTS`
17
+
18
+ ## Delegation
19
+
20
+ Apply the `agent-sort` skill.
21
+ - Classify ECC surfaces with concrete repo evidence.
22
+ - Keep the result to DAILY vs LIBRARY.
23
+ - If an install change is needed afterward, hand off to `configure-ecc` instead of re-implementing install logic here.