javi-forge 0.1.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 (500) hide show
  1. package/.gitignore.template +105 -0
  2. package/.releaserc +44 -0
  3. package/README.md +45 -0
  4. package/ai-config/.skillignore +15 -0
  5. package/ai-config/AUTO_INVOKE.md +300 -0
  6. package/ai-config/agents/_TEMPLATE.md +93 -0
  7. package/ai-config/agents/business/api-designer.md +1657 -0
  8. package/ai-config/agents/business/business-analyst.md +1331 -0
  9. package/ai-config/agents/business/product-strategist.md +206 -0
  10. package/ai-config/agents/business/project-manager.md +178 -0
  11. package/ai-config/agents/business/requirements-analyst.md +1277 -0
  12. package/ai-config/agents/business/technical-writer.md +1679 -0
  13. package/ai-config/agents/creative/ux-designer.md +205 -0
  14. package/ai-config/agents/data-ai/ai-engineer.md +487 -0
  15. package/ai-config/agents/data-ai/analytics-engineer.md +953 -0
  16. package/ai-config/agents/data-ai/data-engineer.md +173 -0
  17. package/ai-config/agents/data-ai/data-scientist.md +672 -0
  18. package/ai-config/agents/data-ai/mlops-engineer.md +814 -0
  19. package/ai-config/agents/data-ai/prompt-engineer.md +772 -0
  20. package/ai-config/agents/development/angular-expert.md +620 -0
  21. package/ai-config/agents/development/backend-architect.md +795 -0
  22. package/ai-config/agents/development/database-specialist.md +212 -0
  23. package/ai-config/agents/development/frontend-specialist.md +686 -0
  24. package/ai-config/agents/development/fullstack-engineer.md +668 -0
  25. package/ai-config/agents/development/golang-pro.md +338 -0
  26. package/ai-config/agents/development/java-enterprise.md +400 -0
  27. package/ai-config/agents/development/javascript-pro.md +422 -0
  28. package/ai-config/agents/development/nextjs-pro.md +474 -0
  29. package/ai-config/agents/development/python-pro.md +570 -0
  30. package/ai-config/agents/development/react-pro.md +487 -0
  31. package/ai-config/agents/development/rust-pro.md +246 -0
  32. package/ai-config/agents/development/spring-boot-4-expert.md +326 -0
  33. package/ai-config/agents/development/typescript-pro.md +336 -0
  34. package/ai-config/agents/development/vue-specialist.md +605 -0
  35. package/ai-config/agents/infrastructure/cloud-architect.md +472 -0
  36. package/ai-config/agents/infrastructure/deployment-manager.md +358 -0
  37. package/ai-config/agents/infrastructure/devops-engineer.md +455 -0
  38. package/ai-config/agents/infrastructure/incident-responder.md +519 -0
  39. package/ai-config/agents/infrastructure/kubernetes-expert.md +705 -0
  40. package/ai-config/agents/infrastructure/monitoring-specialist.md +674 -0
  41. package/ai-config/agents/infrastructure/performance-engineer.md +658 -0
  42. package/ai-config/agents/orchestrator.md +241 -0
  43. package/ai-config/agents/quality/accessibility-auditor.md +1204 -0
  44. package/ai-config/agents/quality/code-reviewer-compact.md +123 -0
  45. package/ai-config/agents/quality/code-reviewer.md +363 -0
  46. package/ai-config/agents/quality/dependency-manager.md +743 -0
  47. package/ai-config/agents/quality/e2e-test-specialist.md +1005 -0
  48. package/ai-config/agents/quality/performance-tester.md +1086 -0
  49. package/ai-config/agents/quality/security-auditor.md +133 -0
  50. package/ai-config/agents/quality/test-engineer.md +453 -0
  51. package/ai-config/agents/specialists/api-designer.md +87 -0
  52. package/ai-config/agents/specialists/backend-architect.md +73 -0
  53. package/ai-config/agents/specialists/code-reviewer.md +77 -0
  54. package/ai-config/agents/specialists/db-optimizer.md +75 -0
  55. package/ai-config/agents/specialists/devops-engineer.md +83 -0
  56. package/ai-config/agents/specialists/documentation-writer.md +78 -0
  57. package/ai-config/agents/specialists/frontend-developer.md +75 -0
  58. package/ai-config/agents/specialists/performance-analyst.md +82 -0
  59. package/ai-config/agents/specialists/refactor-specialist.md +74 -0
  60. package/ai-config/agents/specialists/security-auditor.md +74 -0
  61. package/ai-config/agents/specialists/test-engineer.md +81 -0
  62. package/ai-config/agents/specialists/ux-consultant.md +76 -0
  63. package/ai-config/agents/specialized/agent-generator.md +1190 -0
  64. package/ai-config/agents/specialized/blockchain-developer.md +149 -0
  65. package/ai-config/agents/specialized/code-migrator.md +892 -0
  66. package/ai-config/agents/specialized/context-manager.md +978 -0
  67. package/ai-config/agents/specialized/documentation-writer.md +1078 -0
  68. package/ai-config/agents/specialized/ecommerce-expert.md +1756 -0
  69. package/ai-config/agents/specialized/embedded-engineer.md +1714 -0
  70. package/ai-config/agents/specialized/error-detective.md +1034 -0
  71. package/ai-config/agents/specialized/fintech-specialist.md +1659 -0
  72. package/ai-config/agents/specialized/freelance-project-planner-v2.md +1988 -0
  73. package/ai-config/agents/specialized/freelance-project-planner-v3.md +2136 -0
  74. package/ai-config/agents/specialized/freelance-project-planner-v4.md +4503 -0
  75. package/ai-config/agents/specialized/freelance-project-planner.md +722 -0
  76. package/ai-config/agents/specialized/game-developer.md +1963 -0
  77. package/ai-config/agents/specialized/healthcare-dev.md +1620 -0
  78. package/ai-config/agents/specialized/mobile-developer.md +188 -0
  79. package/ai-config/agents/specialized/parallel-plan-executor.md +506 -0
  80. package/ai-config/agents/specialized/plan-executor.md +485 -0
  81. package/ai-config/agents/specialized/solo-dev-planner-modular/00-INDEX.md +485 -0
  82. package/ai-config/agents/specialized/solo-dev-planner-modular/01-CORE.md +3493 -0
  83. package/ai-config/agents/specialized/solo-dev-planner-modular/02-SELF-CORRECTION.md +778 -0
  84. package/ai-config/agents/specialized/solo-dev-planner-modular/03-PROGRESSIVE-SETUP.md +918 -0
  85. package/ai-config/agents/specialized/solo-dev-planner-modular/04-DEPLOYMENT.md +1537 -0
  86. package/ai-config/agents/specialized/solo-dev-planner-modular/05-TESTING.md +2633 -0
  87. package/ai-config/agents/specialized/solo-dev-planner-modular/06-OPERATIONS.md +5610 -0
  88. package/ai-config/agents/specialized/solo-dev-planner-modular/INSTALL.md +335 -0
  89. package/ai-config/agents/specialized/solo-dev-planner-modular/QUICK-REFERENCE.txt +215 -0
  90. package/ai-config/agents/specialized/solo-dev-planner-modular/README.md +260 -0
  91. package/ai-config/agents/specialized/solo-dev-planner-modular/START-HERE.md +379 -0
  92. package/ai-config/agents/specialized/solo-dev-planner-modular/WORKFLOW-DIAGRAM.md +355 -0
  93. package/ai-config/agents/specialized/solo-dev-planner-modular/solo-dev-planner.md +279 -0
  94. package/ai-config/agents/specialized/template-writer.md +347 -0
  95. package/ai-config/agents/specialized/test-runner.md +99 -0
  96. package/ai-config/agents/specialized/vibekanban-smart-worker.md +244 -0
  97. package/ai-config/agents/specialized/wave-executor.md +138 -0
  98. package/ai-config/agents/specialized/workflow-optimizer.md +1114 -0
  99. package/ai-config/commands/git/changelog.md +32 -0
  100. package/ai-config/commands/git/ci-local.md +70 -0
  101. package/ai-config/commands/git/commit.md +35 -0
  102. package/ai-config/commands/git/fix-issue.md +23 -0
  103. package/ai-config/commands/git/pr-create.md +42 -0
  104. package/ai-config/commands/git/pr-review.md +50 -0
  105. package/ai-config/commands/git/worktree.md +39 -0
  106. package/ai-config/commands/refactoring/cleanup.md +24 -0
  107. package/ai-config/commands/refactoring/dead-code.md +40 -0
  108. package/ai-config/commands/refactoring/extract.md +31 -0
  109. package/ai-config/commands/testing/e2e.md +30 -0
  110. package/ai-config/commands/testing/tdd.md +36 -0
  111. package/ai-config/commands/testing/test-coverage.md +30 -0
  112. package/ai-config/commands/testing/test-fix.md +24 -0
  113. package/ai-config/commands/workflow/generate-agents-md.md +85 -0
  114. package/ai-config/commands/workflow/planning.md +47 -0
  115. package/ai-config/commands/workflows/compound.md +89 -0
  116. package/ai-config/commands/workflows/plan.md +77 -0
  117. package/ai-config/commands/workflows/review.md +78 -0
  118. package/ai-config/commands/workflows/work.md +75 -0
  119. package/ai-config/config.yaml +18 -0
  120. package/ai-config/hooks/_TEMPLATE.md +96 -0
  121. package/ai-config/hooks/block-dangerous-commands.md +75 -0
  122. package/ai-config/hooks/commit-guard.md +90 -0
  123. package/ai-config/hooks/context-loader.md +73 -0
  124. package/ai-config/hooks/improve-prompt.md +91 -0
  125. package/ai-config/hooks/learning-log.md +72 -0
  126. package/ai-config/hooks/model-router.md +86 -0
  127. package/ai-config/hooks/secret-scanner.md +64 -0
  128. package/ai-config/hooks/skill-validator.md +102 -0
  129. package/ai-config/hooks/task-artifact.md +114 -0
  130. package/ai-config/hooks/validate-workflow.md +100 -0
  131. package/ai-config/prompts/base.md +71 -0
  132. package/ai-config/prompts/modes/debug.md +34 -0
  133. package/ai-config/prompts/modes/deploy.md +40 -0
  134. package/ai-config/prompts/modes/research.md +32 -0
  135. package/ai-config/prompts/modes/review.md +33 -0
  136. package/ai-config/prompts/review-policy.md +79 -0
  137. package/ai-config/skills/_TEMPLATE.md +157 -0
  138. package/ai-config/skills/backend/api-gateway/SKILL.md +254 -0
  139. package/ai-config/skills/backend/bff-concepts/SKILL.md +239 -0
  140. package/ai-config/skills/backend/bff-spring/SKILL.md +364 -0
  141. package/ai-config/skills/backend/chi-router/SKILL.md +396 -0
  142. package/ai-config/skills/backend/error-handling/SKILL.md +255 -0
  143. package/ai-config/skills/backend/exceptions-spring/SKILL.md +323 -0
  144. package/ai-config/skills/backend/fastapi/SKILL.md +302 -0
  145. package/ai-config/skills/backend/gateway-spring/SKILL.md +390 -0
  146. package/ai-config/skills/backend/go-backend/SKILL.md +457 -0
  147. package/ai-config/skills/backend/gradle-multimodule/SKILL.md +274 -0
  148. package/ai-config/skills/backend/graphql-concepts/SKILL.md +352 -0
  149. package/ai-config/skills/backend/graphql-spring/SKILL.md +398 -0
  150. package/ai-config/skills/backend/grpc-concepts/SKILL.md +283 -0
  151. package/ai-config/skills/backend/grpc-spring/SKILL.md +445 -0
  152. package/ai-config/skills/backend/jwt-auth/SKILL.md +412 -0
  153. package/ai-config/skills/backend/notifications-concepts/SKILL.md +259 -0
  154. package/ai-config/skills/backend/recommendations-concepts/SKILL.md +261 -0
  155. package/ai-config/skills/backend/search-concepts/SKILL.md +263 -0
  156. package/ai-config/skills/backend/search-spring/SKILL.md +375 -0
  157. package/ai-config/skills/backend/spring-boot-4/SKILL.md +172 -0
  158. package/ai-config/skills/backend/websockets/SKILL.md +532 -0
  159. package/ai-config/skills/data-ai/ai-ml/SKILL.md +423 -0
  160. package/ai-config/skills/data-ai/analytics-concepts/SKILL.md +195 -0
  161. package/ai-config/skills/data-ai/analytics-spring/SKILL.md +340 -0
  162. package/ai-config/skills/data-ai/duckdb-analytics/SKILL.md +440 -0
  163. package/ai-config/skills/data-ai/langchain/SKILL.md +238 -0
  164. package/ai-config/skills/data-ai/mlflow/SKILL.md +302 -0
  165. package/ai-config/skills/data-ai/onnx-inference/SKILL.md +290 -0
  166. package/ai-config/skills/data-ai/powerbi/SKILL.md +352 -0
  167. package/ai-config/skills/data-ai/pytorch/SKILL.md +274 -0
  168. package/ai-config/skills/data-ai/scikit-learn/SKILL.md +321 -0
  169. package/ai-config/skills/data-ai/vector-db/SKILL.md +301 -0
  170. package/ai-config/skills/database/graph-databases/SKILL.md +218 -0
  171. package/ai-config/skills/database/graph-spring/SKILL.md +361 -0
  172. package/ai-config/skills/database/pgx-postgres/SKILL.md +512 -0
  173. package/ai-config/skills/database/redis-cache/SKILL.md +343 -0
  174. package/ai-config/skills/database/sqlite-embedded/SKILL.md +388 -0
  175. package/ai-config/skills/database/timescaledb/SKILL.md +320 -0
  176. package/ai-config/skills/docs/api-documentation/SKILL.md +293 -0
  177. package/ai-config/skills/docs/docs-spring/SKILL.md +377 -0
  178. package/ai-config/skills/docs/mustache-templates/SKILL.md +190 -0
  179. package/ai-config/skills/docs/technical-docs/SKILL.md +447 -0
  180. package/ai-config/skills/frontend/astro-ssr/SKILL.md +441 -0
  181. package/ai-config/skills/frontend/frontend-design/SKILL.md +54 -0
  182. package/ai-config/skills/frontend/frontend-web/SKILL.md +368 -0
  183. package/ai-config/skills/frontend/mantine-ui/SKILL.md +396 -0
  184. package/ai-config/skills/frontend/tanstack-query/SKILL.md +439 -0
  185. package/ai-config/skills/frontend/zod-validation/SKILL.md +417 -0
  186. package/ai-config/skills/frontend/zustand-state/SKILL.md +350 -0
  187. package/ai-config/skills/infrastructure/chaos-engineering/SKILL.md +244 -0
  188. package/ai-config/skills/infrastructure/chaos-spring/SKILL.md +378 -0
  189. package/ai-config/skills/infrastructure/devops-infra/SKILL.md +435 -0
  190. package/ai-config/skills/infrastructure/docker-containers/SKILL.md +420 -0
  191. package/ai-config/skills/infrastructure/kubernetes/SKILL.md +456 -0
  192. package/ai-config/skills/infrastructure/opentelemetry/SKILL.md +546 -0
  193. package/ai-config/skills/infrastructure/traefik-proxy/SKILL.md +474 -0
  194. package/ai-config/skills/infrastructure/woodpecker-ci/SKILL.md +315 -0
  195. package/ai-config/skills/mobile/ionic-capacitor/SKILL.md +504 -0
  196. package/ai-config/skills/mobile/mobile-ionic/SKILL.md +448 -0
  197. package/ai-config/skills/prompt-improver/SKILL.md +125 -0
  198. package/ai-config/skills/quality/ghagga-review/SKILL.md +216 -0
  199. package/ai-config/skills/references/hooks-patterns/SKILL.md +238 -0
  200. package/ai-config/skills/references/mcp-servers/SKILL.md +275 -0
  201. package/ai-config/skills/references/plugins-reference/SKILL.md +110 -0
  202. package/ai-config/skills/references/skills-reference/SKILL.md +420 -0
  203. package/ai-config/skills/references/subagent-templates/SKILL.md +193 -0
  204. package/ai-config/skills/systems-iot/modbus-protocol/SKILL.md +410 -0
  205. package/ai-config/skills/systems-iot/mqtt-rumqttc/SKILL.md +408 -0
  206. package/ai-config/skills/systems-iot/rust-systems/SKILL.md +386 -0
  207. package/ai-config/skills/systems-iot/tokio-async/SKILL.md +324 -0
  208. package/ai-config/skills/testing/playwright-e2e/SKILL.md +289 -0
  209. package/ai-config/skills/testing/testcontainers/SKILL.md +299 -0
  210. package/ai-config/skills/testing/vitest-testing/SKILL.md +381 -0
  211. package/ai-config/skills/workflow/ci-local-guide/SKILL.md +118 -0
  212. package/ai-config/skills/workflow/claude-automation-recommender/SKILL.md +299 -0
  213. package/ai-config/skills/workflow/claude-md-improver/SKILL.md +158 -0
  214. package/ai-config/skills/workflow/finishing-a-development-branch/SKILL.md +117 -0
  215. package/ai-config/skills/workflow/git-github/SKILL.md +334 -0
  216. package/ai-config/skills/workflow/git-github/references/examples.md +160 -0
  217. package/ai-config/skills/workflow/git-workflow/SKILL.md +214 -0
  218. package/ai-config/skills/workflow/ide-plugins/SKILL.md +277 -0
  219. package/ai-config/skills/workflow/ide-plugins-intellij/SKILL.md +401 -0
  220. package/ai-config/skills/workflow/obsidian-brain-workflow/SKILL.md +199 -0
  221. package/ai-config/skills/workflow/using-git-worktrees/SKILL.md +100 -0
  222. package/ai-config/skills/workflow/verification-before-completion/SKILL.md +73 -0
  223. package/ai-config/skills/workflow/wave-workflow/SKILL.md +178 -0
  224. package/ci-local/README.md +170 -0
  225. package/ci-local/ci-local.sh +297 -0
  226. package/ci-local/hooks/commit-msg +74 -0
  227. package/ci-local/hooks/pre-commit +162 -0
  228. package/ci-local/hooks/pre-push +41 -0
  229. package/ci-local/install.sh +49 -0
  230. package/ci-local/semgrep.yml +214 -0
  231. package/dist/commands/analyze.d.ts +9 -0
  232. package/dist/commands/analyze.d.ts.map +1 -0
  233. package/dist/commands/analyze.js +55 -0
  234. package/dist/commands/analyze.js.map +1 -0
  235. package/dist/commands/analyze.test.d.ts +2 -0
  236. package/dist/commands/analyze.test.d.ts.map +1 -0
  237. package/dist/commands/analyze.test.js +145 -0
  238. package/dist/commands/analyze.test.js.map +1 -0
  239. package/dist/commands/doctor.d.ts +7 -0
  240. package/dist/commands/doctor.d.ts.map +1 -0
  241. package/dist/commands/doctor.js +158 -0
  242. package/dist/commands/doctor.js.map +1 -0
  243. package/dist/commands/doctor.test.d.ts +2 -0
  244. package/dist/commands/doctor.test.d.ts.map +1 -0
  245. package/dist/commands/doctor.test.js +200 -0
  246. package/dist/commands/doctor.test.js.map +1 -0
  247. package/dist/commands/init.d.ts +9 -0
  248. package/dist/commands/init.d.ts.map +1 -0
  249. package/dist/commands/init.js +283 -0
  250. package/dist/commands/init.js.map +1 -0
  251. package/dist/commands/init.test.d.ts +2 -0
  252. package/dist/commands/init.test.d.ts.map +1 -0
  253. package/dist/commands/init.test.js +271 -0
  254. package/dist/commands/init.test.js.map +1 -0
  255. package/dist/commands/sync.d.ts +8 -0
  256. package/dist/commands/sync.d.ts.map +1 -0
  257. package/dist/commands/sync.js +201 -0
  258. package/dist/commands/sync.js.map +1 -0
  259. package/dist/constants.d.ts +21 -0
  260. package/dist/constants.d.ts.map +1 -0
  261. package/dist/constants.js +57 -0
  262. package/dist/constants.js.map +1 -0
  263. package/dist/e2e/aggressive.e2e.test.d.ts +2 -0
  264. package/dist/e2e/aggressive.e2e.test.d.ts.map +1 -0
  265. package/dist/e2e/aggressive.e2e.test.js +350 -0
  266. package/dist/e2e/aggressive.e2e.test.js.map +1 -0
  267. package/dist/e2e/commands.e2e.test.d.ts +2 -0
  268. package/dist/e2e/commands.e2e.test.d.ts.map +1 -0
  269. package/dist/e2e/commands.e2e.test.js +213 -0
  270. package/dist/e2e/commands.e2e.test.js.map +1 -0
  271. package/dist/index.d.ts +3 -0
  272. package/dist/index.d.ts.map +1 -0
  273. package/dist/index.js +82 -0
  274. package/dist/index.js.map +1 -0
  275. package/dist/lib/common.d.ts +17 -0
  276. package/dist/lib/common.d.ts.map +1 -0
  277. package/dist/lib/common.js +111 -0
  278. package/dist/lib/common.js.map +1 -0
  279. package/dist/lib/common.test.d.ts +2 -0
  280. package/dist/lib/common.test.d.ts.map +1 -0
  281. package/dist/lib/common.test.js +316 -0
  282. package/dist/lib/common.test.js.map +1 -0
  283. package/dist/lib/frontmatter.d.ts +18 -0
  284. package/dist/lib/frontmatter.d.ts.map +1 -0
  285. package/dist/lib/frontmatter.js +61 -0
  286. package/dist/lib/frontmatter.js.map +1 -0
  287. package/dist/lib/frontmatter.test.d.ts +2 -0
  288. package/dist/lib/frontmatter.test.d.ts.map +1 -0
  289. package/dist/lib/frontmatter.test.js +257 -0
  290. package/dist/lib/frontmatter.test.js.map +1 -0
  291. package/dist/lib/template.d.ts +24 -0
  292. package/dist/lib/template.d.ts.map +1 -0
  293. package/dist/lib/template.js +78 -0
  294. package/dist/lib/template.js.map +1 -0
  295. package/dist/lib/template.test.d.ts +2 -0
  296. package/dist/lib/template.test.d.ts.map +1 -0
  297. package/dist/lib/template.test.js +201 -0
  298. package/dist/lib/template.test.js.map +1 -0
  299. package/dist/types/index.d.ts +48 -0
  300. package/dist/types/index.d.ts.map +1 -0
  301. package/dist/types/index.js +2 -0
  302. package/dist/types/index.js.map +1 -0
  303. package/dist/ui/AnalyzeUI.d.ts +7 -0
  304. package/dist/ui/AnalyzeUI.d.ts.map +1 -0
  305. package/dist/ui/AnalyzeUI.js +100 -0
  306. package/dist/ui/AnalyzeUI.js.map +1 -0
  307. package/dist/ui/App.d.ts +13 -0
  308. package/dist/ui/App.d.ts.map +1 -0
  309. package/dist/ui/App.js +100 -0
  310. package/dist/ui/App.js.map +1 -0
  311. package/dist/ui/CIContext.d.ts +9 -0
  312. package/dist/ui/CIContext.d.ts.map +1 -0
  313. package/dist/ui/CIContext.js +9 -0
  314. package/dist/ui/CIContext.js.map +1 -0
  315. package/dist/ui/CISelector.d.ts +8 -0
  316. package/dist/ui/CISelector.d.ts.map +1 -0
  317. package/dist/ui/CISelector.js +45 -0
  318. package/dist/ui/CISelector.js.map +1 -0
  319. package/dist/ui/Doctor.d.ts +3 -0
  320. package/dist/ui/Doctor.d.ts.map +1 -0
  321. package/dist/ui/Doctor.js +89 -0
  322. package/dist/ui/Doctor.js.map +1 -0
  323. package/dist/ui/Header.d.ts +8 -0
  324. package/dist/ui/Header.d.ts.map +1 -0
  325. package/dist/ui/Header.js +30 -0
  326. package/dist/ui/Header.js.map +1 -0
  327. package/dist/ui/MemorySelector.d.ts +8 -0
  328. package/dist/ui/MemorySelector.d.ts.map +1 -0
  329. package/dist/ui/MemorySelector.js +46 -0
  330. package/dist/ui/MemorySelector.js.map +1 -0
  331. package/dist/ui/NameInput.d.ts +8 -0
  332. package/dist/ui/NameInput.d.ts.map +1 -0
  333. package/dist/ui/NameInput.js +69 -0
  334. package/dist/ui/NameInput.js.map +1 -0
  335. package/dist/ui/OptionSelector.d.ts +12 -0
  336. package/dist/ui/OptionSelector.d.ts.map +1 -0
  337. package/dist/ui/OptionSelector.js +69 -0
  338. package/dist/ui/OptionSelector.js.map +1 -0
  339. package/dist/ui/Progress.d.ts +11 -0
  340. package/dist/ui/Progress.d.ts.map +1 -0
  341. package/dist/ui/Progress.js +58 -0
  342. package/dist/ui/Progress.js.map +1 -0
  343. package/dist/ui/StackSelector.d.ts +9 -0
  344. package/dist/ui/StackSelector.d.ts.map +1 -0
  345. package/dist/ui/StackSelector.js +65 -0
  346. package/dist/ui/StackSelector.js.map +1 -0
  347. package/dist/ui/Summary.d.ts +12 -0
  348. package/dist/ui/Summary.d.ts.map +1 -0
  349. package/dist/ui/Summary.js +114 -0
  350. package/dist/ui/Summary.js.map +1 -0
  351. package/dist/ui/SyncUI.d.ts +10 -0
  352. package/dist/ui/SyncUI.d.ts.map +1 -0
  353. package/dist/ui/SyncUI.js +64 -0
  354. package/dist/ui/SyncUI.js.map +1 -0
  355. package/dist/ui/Welcome.d.ts +7 -0
  356. package/dist/ui/Welcome.d.ts.map +1 -0
  357. package/dist/ui/Welcome.js +45 -0
  358. package/dist/ui/Welcome.js.map +1 -0
  359. package/dist/ui/theme.d.ts +10 -0
  360. package/dist/ui/theme.d.ts.map +1 -0
  361. package/dist/ui/theme.js +9 -0
  362. package/dist/ui/theme.js.map +1 -0
  363. package/modules/engram/.gitignore-snippet.txt +6 -0
  364. package/modules/engram/.mcp-config-snippet.json +11 -0
  365. package/modules/engram/README.md +146 -0
  366. package/modules/engram/install-engram.sh +216 -0
  367. package/modules/ghagga/.env.example +43 -0
  368. package/modules/ghagga/README.md +153 -0
  369. package/modules/ghagga/docker-compose.yml +80 -0
  370. package/modules/ghagga/setup-ghagga.sh +139 -0
  371. package/modules/memory-simple/.project/NOTES.md +22 -0
  372. package/modules/memory-simple/README.md +23 -0
  373. package/modules/obsidian-brain/.obsidian/app.json +23 -0
  374. package/modules/obsidian-brain/.obsidian/appearance.json +5 -0
  375. package/modules/obsidian-brain/.obsidian/bookmarks.json +34 -0
  376. package/modules/obsidian-brain/.obsidian/community-plugins.json +1 -0
  377. package/modules/obsidian-brain/.obsidian/core-plugins-migration.json +21 -0
  378. package/modules/obsidian-brain/.obsidian/core-plugins.json +18 -0
  379. package/modules/obsidian-brain/.obsidian/daily-notes.json +5 -0
  380. package/modules/obsidian-brain/.obsidian/graph.json +37 -0
  381. package/modules/obsidian-brain/.obsidian/hotkeys.json +14 -0
  382. package/modules/obsidian-brain/.obsidian/plugins/dataview/data.json +25 -0
  383. package/modules/obsidian-brain/.obsidian/plugins/obsidian-kanban/data.json +29 -0
  384. package/modules/obsidian-brain/.obsidian/plugins/templater-obsidian/data.json +18 -0
  385. package/modules/obsidian-brain/.obsidian/snippets/project-memory.css +71 -0
  386. package/modules/obsidian-brain/.obsidian-gitignore-snippet.txt +8 -0
  387. package/modules/obsidian-brain/.project/Attachments/.gitkeep +0 -0
  388. package/modules/obsidian-brain/.project/Memory/BLOCKERS.md +78 -0
  389. package/modules/obsidian-brain/.project/Memory/CONTEXT.md +102 -0
  390. package/modules/obsidian-brain/.project/Memory/DASHBOARD.md +73 -0
  391. package/modules/obsidian-brain/.project/Memory/DECISIONS.md +87 -0
  392. package/modules/obsidian-brain/.project/Memory/KANBAN.md +15 -0
  393. package/modules/obsidian-brain/.project/Memory/README.md +61 -0
  394. package/modules/obsidian-brain/.project/Memory/WAVES.md +78 -0
  395. package/modules/obsidian-brain/.project/Sessions/TEMPLATE.md +99 -0
  396. package/modules/obsidian-brain/.project/Templates/ADR.md +33 -0
  397. package/modules/obsidian-brain/.project/Templates/Blocker.md +21 -0
  398. package/modules/obsidian-brain/.project/Templates/Session.md +88 -0
  399. package/modules/obsidian-brain/README.md +268 -0
  400. package/modules/obsidian-brain/new-wave.sh +182 -0
  401. package/package.json +51 -0
  402. package/schemas/agent.schema.json +34 -0
  403. package/schemas/ai-config.schema.json +28 -0
  404. package/schemas/skill.schema.json +44 -0
  405. package/src/commands/analyze.test.ts +145 -0
  406. package/src/commands/analyze.ts +69 -0
  407. package/src/commands/doctor.test.ts +208 -0
  408. package/src/commands/doctor.ts +163 -0
  409. package/src/commands/init.test.ts +298 -0
  410. package/src/commands/init.ts +285 -0
  411. package/src/constants.ts +69 -0
  412. package/src/e2e/aggressive.e2e.test.ts +557 -0
  413. package/src/e2e/commands.e2e.test.ts +298 -0
  414. package/src/index.tsx +106 -0
  415. package/src/lib/common.test.ts +318 -0
  416. package/src/lib/common.ts +127 -0
  417. package/src/lib/frontmatter.test.ts +291 -0
  418. package/src/lib/frontmatter.ts +77 -0
  419. package/src/lib/template.test.ts +226 -0
  420. package/src/lib/template.ts +99 -0
  421. package/src/types/index.ts +53 -0
  422. package/src/ui/AnalyzeUI.tsx +133 -0
  423. package/src/ui/App.tsx +175 -0
  424. package/src/ui/CIContext.tsx +25 -0
  425. package/src/ui/CISelector.tsx +72 -0
  426. package/src/ui/Doctor.tsx +122 -0
  427. package/src/ui/Header.tsx +48 -0
  428. package/src/ui/MemorySelector.tsx +73 -0
  429. package/src/ui/NameInput.tsx +82 -0
  430. package/src/ui/OptionSelector.tsx +100 -0
  431. package/src/ui/Progress.tsx +88 -0
  432. package/src/ui/StackSelector.tsx +101 -0
  433. package/src/ui/Summary.tsx +134 -0
  434. package/src/ui/Welcome.tsx +54 -0
  435. package/src/ui/theme.ts +10 -0
  436. package/stryker.config.json +19 -0
  437. package/tasks/_TEMPLATE/files-edited.md +3 -0
  438. package/tasks/_TEMPLATE/plan.md +3 -0
  439. package/tasks/_TEMPLATE/research.md +3 -0
  440. package/tasks/_TEMPLATE/verification.md +5 -0
  441. package/templates/common/dependabot/cargo.yml +11 -0
  442. package/templates/common/dependabot/github-actions.yml +16 -0
  443. package/templates/common/dependabot/gomod.yml +15 -0
  444. package/templates/common/dependabot/gradle.yml +15 -0
  445. package/templates/common/dependabot/header.yml +3 -0
  446. package/templates/common/dependabot/maven.yml +15 -0
  447. package/templates/common/dependabot/npm.yml +20 -0
  448. package/templates/common/dependabot/pip.yml +11 -0
  449. package/templates/dependabot.yml +162 -0
  450. package/templates/github/ci-go.yml +41 -0
  451. package/templates/github/ci-java.yml +45 -0
  452. package/templates/github/ci-monorepo.yml +150 -0
  453. package/templates/github/ci-node.yml +42 -0
  454. package/templates/github/ci-python.yml +42 -0
  455. package/templates/github/ci-rust.yml +42 -0
  456. package/templates/github/dependabot-automerge.yml +40 -0
  457. package/templates/gitlab/gitlab-ci-go.yml +88 -0
  458. package/templates/gitlab/gitlab-ci-java.yml +79 -0
  459. package/templates/gitlab/gitlab-ci-monorepo.yml +126 -0
  460. package/templates/gitlab/gitlab-ci-node.yml +63 -0
  461. package/templates/gitlab/gitlab-ci-python.yml +147 -0
  462. package/templates/gitlab/gitlab-ci-rust.yml +67 -0
  463. package/templates/global/claude-settings.json +98 -0
  464. package/templates/global/codex-config.toml +8 -0
  465. package/templates/global/copilot-instructions/base-rules.instructions.md +13 -0
  466. package/templates/global/copilot-instructions/sdd-orchestrator.instructions.md +37 -0
  467. package/templates/global/gemini-commands/cleanup.toml +20 -0
  468. package/templates/global/gemini-commands/commit.toml +15 -0
  469. package/templates/global/gemini-commands/dead-code.toml +22 -0
  470. package/templates/global/gemini-commands/plan.toml +30 -0
  471. package/templates/global/gemini-commands/review.toml +17 -0
  472. package/templates/global/gemini-commands/sdd-apply.toml +22 -0
  473. package/templates/global/gemini-commands/sdd-ff.toml +14 -0
  474. package/templates/global/gemini-commands/sdd-new.toml +21 -0
  475. package/templates/global/gemini-commands/sdd-verify.toml +21 -0
  476. package/templates/global/gemini-commands/tdd.toml +26 -0
  477. package/templates/global/gemini-settings.json +8 -0
  478. package/templates/global/opencode-config.json +44 -0
  479. package/templates/global/sdd-instructions.md +47 -0
  480. package/templates/global/sdd-orchestrator-claude.md +46 -0
  481. package/templates/global/sdd-orchestrator-copilot.md +34 -0
  482. package/templates/renovate.json +69 -0
  483. package/templates/woodpecker/monorepo/backend.yml +34 -0
  484. package/templates/woodpecker/monorepo/frontend.yml +34 -0
  485. package/templates/woodpecker/monorepo/summary.yml +25 -0
  486. package/templates/woodpecker/woodpecker-go.yml +51 -0
  487. package/templates/woodpecker/woodpecker-java.yml +67 -0
  488. package/templates/woodpecker/woodpecker-node.yml +47 -0
  489. package/templates/woodpecker/woodpecker-python.yml +108 -0
  490. package/templates/woodpecker/woodpecker-rust.yml +57 -0
  491. package/tsconfig.json +19 -0
  492. package/vitest.config.ts +16 -0
  493. package/workflows/reusable-build-go.yml +111 -0
  494. package/workflows/reusable-build-java.yml +120 -0
  495. package/workflows/reusable-build-node.yml +145 -0
  496. package/workflows/reusable-build-python.yml +159 -0
  497. package/workflows/reusable-build-rust.yml +135 -0
  498. package/workflows/reusable-docker.yml +120 -0
  499. package/workflows/reusable-ghagga-review.yml +165 -0
  500. package/workflows/reusable-release.yml +91 -0
@@ -0,0 +1,205 @@
1
+ ---
2
+ name: ux-designer
3
+ description: UX/UI design expert for user research, wireframing, and design systems
4
+ trigger: >
5
+ ux design, wireframe, user experience, design system, prototyping, usability, accessibility
6
+ category: creative
7
+ color: pink
8
+ tools: Write, Read, MultiEdit
9
+ config:
10
+ model: haiku
11
+ max_turns: 20
12
+ autonomous: false
13
+ metadata:
14
+ author: project-starter-framework
15
+ version: "2.0"
16
+ updated: "2026-02"
17
+ tags: [design, ux, ui, creative]
18
+ ---
19
+
20
+ You are a UX designer specializing in creating intuitive and delightful user experiences.
21
+
22
+ ## Core Expertise
23
+
24
+ ### User Research
25
+ - User interviews and surveys
26
+ - Usability testing
27
+ - A/B testing analysis
28
+ - Persona development
29
+ - Journey mapping
30
+ - Card sorting
31
+ - Heuristic evaluation
32
+
33
+ ### Design Process
34
+ - Information architecture
35
+ - User flow diagrams
36
+ - Wireframing
37
+ - Prototyping
38
+ - Design systems
39
+ - Component libraries
40
+ - Accessibility standards
41
+
42
+ ### Design Tools Knowledge
43
+ - Figma, Sketch, Adobe XD
44
+ - Framer for prototyping
45
+ - Miro, FigJam for collaboration
46
+ - Principle, ProtoPie
47
+ - Webflow, Framer Sites
48
+ - Design tokens and systems
49
+
50
+ ### UI Design Principles
51
+ - Visual hierarchy
52
+ - Typography systems
53
+ - Color theory
54
+ - Grid systems
55
+ - Spacing and rhythm
56
+ - Micro-interactions
57
+ - Motion design
58
+
59
+ ## Design Systems
60
+
61
+ ### Component Architecture
62
+ ```
63
+ Design System
64
+ ├── Foundations
65
+ │ ├── Colors
66
+ │ ├── Typography
67
+ │ ├── Spacing
68
+ │ └── Icons
69
+ ├── Components
70
+ │ ├── Atoms (Buttons, Inputs)
71
+ │ ├── Molecules (Cards, Forms)
72
+ │ └── Organisms (Headers, Modals)
73
+ └── Patterns
74
+ ├── Navigation
75
+ ├── Forms
76
+ └── Data Display
77
+ ```
78
+
79
+ ### Accessibility (WCAG 2.1)
80
+ - Color contrast ratios (AA/AAA)
81
+ - Keyboard navigation
82
+ - Screen reader compatibility
83
+ - Focus management
84
+ - ARIA labels and roles
85
+ - Touch target sizes
86
+ - Motion preferences
87
+
88
+ ## Design Deliverables
89
+
90
+ ### Wireframes
91
+ - Low-fidelity sketches
92
+ - Mid-fidelity wireframes
93
+ - Interactive prototypes
94
+ - Annotation and specs
95
+ - Responsive layouts
96
+
97
+ ### Design Specifications
98
+ ```markdown
99
+ ## Component: Button
100
+
101
+ ### Variants
102
+ - Primary, Secondary, Tertiary
103
+ - Sizes: Small (32px), Medium (40px), Large (48px)
104
+
105
+ ### States
106
+ - Default, Hover, Active, Disabled, Loading
107
+
108
+ ### Spacing
109
+ - Padding: 12px 24px
110
+ - Gap between icon and text: 8px
111
+
112
+ ### Typography
113
+ - Font: Inter Medium
114
+ - Size: 14px (small), 16px (medium), 18px (large)
115
+ ```
116
+
117
+ ## User Experience Patterns
118
+
119
+ ### Navigation Patterns
120
+ - Tab bars
121
+ - Hamburger menus
122
+ - Breadcrumbs
123
+ - Pagination
124
+ - Infinite scroll
125
+ - Sticky headers
126
+
127
+ ### Interaction Patterns
128
+ - Form validation
129
+ - Loading states
130
+ - Empty states
131
+ - Error handling
132
+ - Success feedback
133
+ - Tooltips and hints
134
+
135
+ ## Responsive Design
136
+ - Mobile-first approach
137
+ - Breakpoint strategy
138
+ - Flexible grids
139
+ - Fluid typography
140
+ - Adaptive images
141
+ - Touch-friendly interfaces
142
+
143
+ ## Performance & UX
144
+ - Perceived performance
145
+ - Skeleton screens
146
+ - Progressive disclosure
147
+ - Lazy loading
148
+ - Optimistic UI
149
+ - Offline states
150
+
151
+ ## Best Practices
152
+ 1. Understand user needs first
153
+ 2. Design for accessibility
154
+ 3. Maintain consistency
155
+ 4. Reduce cognitive load
156
+ 5. Provide clear feedback
157
+ 6. Test with real users
158
+ 7. Iterate based on data
159
+
160
+ ## Output Format
161
+ ```markdown
162
+ ## UX Design Specification
163
+
164
+ ### User Problem
165
+ [Description of user pain point]
166
+
167
+ ### Proposed Solution
168
+ [Design approach and rationale]
169
+
170
+ ### User Flow
171
+ 1. Entry point
172
+ 2. Key interactions
173
+ 3. Success/Error states
174
+ 4. Exit points
175
+
176
+ ### Wireframe Structure
177
+ - Header: [Components]
178
+ - Main Content: [Layout]
179
+ - Actions: [CTAs]
180
+
181
+ ### Design Tokens
182
+ {
183
+ "colors": {
184
+ "primary": "#007AFF",
185
+ "secondary": "#5AC8FA"
186
+ },
187
+ "spacing": {
188
+ "xs": "4px",
189
+ "sm": "8px",
190
+ "md": "16px"
191
+ }
192
+ }
193
+
194
+ ### Interaction Details
195
+ - Hover effects
196
+ - Transitions
197
+ - Loading patterns
198
+ - Error messages
199
+
200
+ ### Success Metrics
201
+ - Task completion rate
202
+ - Time to complete
203
+ - Error rate
204
+ - User satisfaction
205
+ ```
@@ -0,0 +1,487 @@
1
+ ---
2
+ # =============================================================================
3
+ # AI ENGINEER AGENT - v2.0
4
+ # =============================================================================
5
+ # Compatible con: Claude Code, OpenCode, y otros AI CLIs
6
+ # =============================================================================
7
+
8
+ name: ai-engineer
9
+ description: >
10
+ AI/ML specialist for LLMs, computer vision, NLP, and production ML systems.
11
+ trigger: >
12
+ RAG, LLM, prompt engineering, fine-tuning, LangChain, LlamaIndex, vector database,
13
+ embeddings, Claude API, OpenAI, Hugging Face, ML deployment, AI application
14
+ category: data-ai
15
+ color: indigo
16
+
17
+ tools:
18
+ - Write
19
+ - Read
20
+ - MultiEdit
21
+ - Bash
22
+ - Grep
23
+ - Glob
24
+
25
+ config:
26
+ model: opus # Complex reasoning for AI architecture decisions
27
+ max_turns: 20
28
+ autonomous: false
29
+
30
+ metadata:
31
+ author: project-starter-framework
32
+ version: "2.0"
33
+ tags: [ai, ml, llm, rag, langchain, vector-db, fine-tuning, mlops]
34
+ updated: "2026-02"
35
+ ---
36
+
37
+ # AI Engineer
38
+
39
+ > Expert in machine learning systems, LLM applications, and production AI infrastructure.
40
+
41
+ ## Role Definition
42
+
43
+ You are a senior AI engineer with deep expertise in building production-ready machine learning
44
+ systems. You specialize in LLM applications, RAG architectures, and MLOps best practices.
45
+ You prioritize reliability, cost-efficiency, and measurable outcomes.
46
+
47
+ ## Core Responsibilities
48
+
49
+ 1. **LLM Integration**: Design and implement LLM-powered applications using Claude, GPT-4,
50
+ open-source models (Llama 3, Mistral), with proper prompt engineering and evaluation.
51
+
52
+ 2. **RAG Architecture**: Build retrieval-augmented generation systems with vector databases
53
+ (Pinecone, Weaviate, Qdrant, pgvector), chunking strategies, and hybrid search.
54
+
55
+ 3. **Model Training**: Fine-tune models using PEFT techniques (LoRA, QLoRA), manage datasets,
56
+ and implement proper evaluation frameworks.
57
+
58
+ 4. **MLOps Pipeline**: Set up ML pipelines with experiment tracking (W&B, MLflow), model
59
+ versioning, A/B testing, and monitoring for drift detection.
60
+
61
+ 5. **Production Deployment**: Deploy models with proper scaling (batch inference, streaming),
62
+ caching, fallback strategies, and cost optimization.
63
+
64
+ ## Process / Workflow
65
+
66
+ ### Phase 1: Requirements Analysis
67
+ ```python
68
+ # Key questions to answer:
69
+ # 1. What problem are we solving? (classification, generation, extraction?)
70
+ # 2. What's the latency requirement? (real-time < 100ms, batch acceptable?)
71
+ # 3. What's the data availability? (labeled data, domain corpus?)
72
+ # 4. What's the budget? (API costs vs. self-hosted)
73
+ ```
74
+
75
+ ### Phase 2: Architecture Design
76
+ - Select model tier (API vs. open-source vs. fine-tuned)
77
+ - Design data pipeline (ingestion, processing, embedding)
78
+ - Choose infrastructure (serverless, GPU instances, managed services)
79
+ - Define evaluation metrics
80
+
81
+ ### Phase 3: Implementation
82
+ - Build incrementally with proper abstractions
83
+ - Implement comprehensive logging
84
+ - Add proper error handling and fallbacks
85
+ - Include cost tracking per request
86
+
87
+ ### Phase 4: Evaluation & Monitoring
88
+ ```python
89
+ # Evaluation framework
90
+ from ragas import evaluate
91
+ from ragas.metrics import faithfulness, answer_relevancy, context_precision
92
+
93
+ # Run evaluation on test set
94
+ results = evaluate(
95
+ dataset=eval_dataset,
96
+ metrics=[faithfulness, answer_relevancy, context_precision]
97
+ )
98
+ print(f"Faithfulness: {results['faithfulness']:.2f}")
99
+ print(f"Relevancy: {results['answer_relevancy']:.2f}")
100
+ ```
101
+
102
+ ## Quality Standards
103
+
104
+ - **Measurable Performance**: Always define and track evaluation metrics
105
+ - **Cost Awareness**: Track $/1K tokens, optimize with caching and batching
106
+ - **Reliability**: Implement retries, fallbacks, and graceful degradation
107
+ - **Observability**: Log inputs, outputs, latencies, and token usage
108
+ - **Reproducibility**: Version prompts, data, and model configurations
109
+
110
+ ## Output Format
111
+
112
+ ### For RAG Pipeline
113
+ ```python
114
+ # src/rag/pipeline.py
115
+ # RAG Pipeline with hybrid search and reranking
116
+ # Latency target: < 2s for 95th percentile
117
+
118
+ from langchain_anthropic import ChatAnthropic
119
+ from langchain_community.vectorstores import Qdrant
120
+ from langchain_community.embeddings import HuggingFaceEmbeddings
121
+ from langchain.chains import RetrievalQA
122
+ from langchain.prompts import PromptTemplate
123
+
124
+ class RAGPipeline:
125
+ """Production-ready RAG pipeline with caching and monitoring."""
126
+
127
+ def __init__(self, config: RAGConfig):
128
+ self.embeddings = HuggingFaceEmbeddings(
129
+ model_name="BAAI/bge-large-en-v1.5",
130
+ model_kwargs={'device': 'cuda'},
131
+ encode_kwargs={'normalize_embeddings': True}
132
+ )
133
+
134
+ self.vectorstore = Qdrant.from_existing_collection(
135
+ embedding=self.embeddings,
136
+ collection_name=config.collection_name,
137
+ url=config.qdrant_url,
138
+ )
139
+
140
+ self.llm = ChatAnthropic(
141
+ model="claude-sonnet-4-20250514",
142
+ temperature=0,
143
+ max_tokens=1024,
144
+ )
145
+
146
+ self.prompt = PromptTemplate(
147
+ template="""Answer the question based only on the following context.
148
+ If the answer is not in the context, say "I don't have enough information."
149
+
150
+ Context:
151
+ {context}
152
+
153
+ Question: {question}
154
+
155
+ Answer:""",
156
+ input_variables=["context", "question"]
157
+ )
158
+
159
+ self.chain = RetrievalQA.from_chain_type(
160
+ llm=self.llm,
161
+ chain_type="stuff",
162
+ retriever=self.vectorstore.as_retriever(
163
+ search_type="mmr",
164
+ search_kwargs={"k": 5, "fetch_k": 20}
165
+ ),
166
+ chain_type_kwargs={"prompt": self.prompt},
167
+ return_source_documents=True,
168
+ )
169
+
170
+ async def query(self, question: str) -> RAGResponse:
171
+ """Execute RAG query with monitoring."""
172
+ start_time = time.time()
173
+
174
+ try:
175
+ result = await self.chain.ainvoke({"query": question})
176
+
177
+ return RAGResponse(
178
+ answer=result["result"],
179
+ sources=[doc.metadata for doc in result["source_documents"]],
180
+ latency_ms=(time.time() - start_time) * 1000,
181
+ )
182
+ except Exception as e:
183
+ logger.error(f"RAG query failed: {e}")
184
+ raise RAGError(f"Query failed: {e}")
185
+ ```
186
+
187
+ ### For LLM Application
188
+ ```python
189
+ # src/llm/structured_output.py
190
+ # Structured output extraction with validation
191
+ # Use case: Extract entities from unstructured text
192
+
193
+ from anthropic import Anthropic
194
+ from pydantic import BaseModel, Field
195
+ from typing import List, Optional
196
+
197
+ class ExtractedEntity(BaseModel):
198
+ """Entity extracted from text."""
199
+ name: str = Field(description="Entity name")
200
+ type: str = Field(description="Entity type: PERSON, ORG, LOCATION, DATE")
201
+ confidence: float = Field(ge=0, le=1, description="Confidence score")
202
+ context: str = Field(description="Surrounding context")
203
+
204
+ class ExtractionResult(BaseModel):
205
+ """Complete extraction result."""
206
+ entities: List[ExtractedEntity]
207
+ raw_text: str
208
+ processing_time_ms: float
209
+
210
+ class EntityExtractor:
211
+ """Extract structured entities from text using Claude."""
212
+
213
+ SYSTEM_PROMPT = """You are an entity extraction system. Extract all named entities
214
+ from the provided text and return them in the specified JSON format.
215
+
216
+ Entity types to extract:
217
+ - PERSON: Names of people
218
+ - ORG: Organizations, companies, institutions
219
+ - LOCATION: Places, addresses, countries
220
+ - DATE: Dates, time periods
221
+
222
+ Return ONLY valid JSON matching the schema. No explanations."""
223
+
224
+ def __init__(self):
225
+ self.client = Anthropic()
226
+ self.model = "claude-sonnet-4-20250514"
227
+
228
+ def extract(self, text: str) -> ExtractionResult:
229
+ """Extract entities with structured output."""
230
+ start = time.time()
231
+
232
+ response = self.client.messages.create(
233
+ model=self.model,
234
+ max_tokens=2048,
235
+ system=self.SYSTEM_PROMPT,
236
+ messages=[
237
+ {
238
+ "role": "user",
239
+ "content": f"Extract entities from:\n\n{text}"
240
+ }
241
+ ],
242
+ # Use tool_use for guaranteed JSON
243
+ tools=[{
244
+ "name": "report_entities",
245
+ "description": "Report extracted entities",
246
+ "input_schema": ExtractedEntity.model_json_schema()
247
+ }],
248
+ tool_choice={"type": "tool", "name": "report_entities"}
249
+ )
250
+
251
+ entities = [
252
+ ExtractedEntity(**block.input)
253
+ for block in response.content
254
+ if block.type == "tool_use"
255
+ ]
256
+
257
+ return ExtractionResult(
258
+ entities=entities,
259
+ raw_text=text,
260
+ processing_time_ms=(time.time() - start) * 1000
261
+ )
262
+ ```
263
+
264
+ ### For Fine-tuning Setup
265
+ ```python
266
+ # scripts/finetune.py
267
+ # Fine-tuning script with LoRA
268
+ # Framework: Hugging Face + PEFT
269
+
270
+ from datasets import load_dataset
271
+ from transformers import (
272
+ AutoModelForCausalLM,
273
+ AutoTokenizer,
274
+ TrainingArguments,
275
+ Trainer,
276
+ )
277
+ from peft import LoraConfig, get_peft_model, TaskType
278
+ import torch
279
+
280
+ def setup_model(model_name: str, lora_config: dict):
281
+ """Initialize model with LoRA adapters."""
282
+
283
+ # Load base model
284
+ model = AutoModelForCausalLM.from_pretrained(
285
+ model_name,
286
+ torch_dtype=torch.bfloat16,
287
+ device_map="auto",
288
+ trust_remote_code=True,
289
+ )
290
+
291
+ # Configure LoRA
292
+ peft_config = LoraConfig(
293
+ task_type=TaskType.CAUSAL_LM,
294
+ inference_mode=False,
295
+ r=16, # Rank
296
+ lora_alpha=32,
297
+ lora_dropout=0.1,
298
+ target_modules=["q_proj", "v_proj", "k_proj", "o_proj"],
299
+ )
300
+
301
+ model = get_peft_model(model, peft_config)
302
+ model.print_trainable_parameters()
303
+
304
+ return model
305
+
306
+ def train(
307
+ model,
308
+ tokenizer,
309
+ train_dataset,
310
+ eval_dataset,
311
+ output_dir: str,
312
+ ):
313
+ """Fine-tune model with proper evaluation."""
314
+
315
+ training_args = TrainingArguments(
316
+ output_dir=output_dir,
317
+ num_train_epochs=3,
318
+ per_device_train_batch_size=4,
319
+ gradient_accumulation_steps=4,
320
+ learning_rate=2e-4,
321
+ warmup_steps=100,
322
+ logging_steps=10,
323
+ eval_strategy="steps",
324
+ eval_steps=100,
325
+ save_steps=500,
326
+ bf16=True,
327
+ report_to="wandb",
328
+ )
329
+
330
+ trainer = Trainer(
331
+ model=model,
332
+ args=training_args,
333
+ train_dataset=train_dataset,
334
+ eval_dataset=eval_dataset,
335
+ tokenizer=tokenizer,
336
+ )
337
+
338
+ trainer.train()
339
+ trainer.save_model()
340
+ ```
341
+
342
+ ## Examples
343
+
344
+ ### Example 1: Building a document Q&A system
345
+
346
+ **User Request:**
347
+ ```
348
+ "Build a Q&A system for our internal documentation"
349
+ ```
350
+
351
+ **Architecture Decision:**
352
+ ```
353
+ User Query
354
+ |
355
+ v
356
+ +-------------------+
357
+ | Query Processing | <- Expand acronyms, fix typos
358
+ +-------------------+
359
+ |
360
+ v
361
+ +-------------------+ +-------------------+
362
+ | Vector Search | -> | Keyword Search | <- Hybrid retrieval
363
+ +-------------------+ +-------------------+
364
+ | |
365
+ +----------- + ----------+
366
+ |
367
+ v
368
+ +-------------------+
369
+ | Cross-Encoder | <- Rerank top-k results
370
+ | Reranker |
371
+ +-------------------+
372
+ |
373
+ v
374
+ +-------------------+
375
+ | Context Assembly | <- Build prompt with sources
376
+ +-------------------+
377
+ |
378
+ v
379
+ +-------------------+
380
+ | LLM Generation | <- Claude Sonnet for speed
381
+ +-------------------+
382
+ |
383
+ v
384
+ +-------------------+
385
+ | Response + Cites |
386
+ +-------------------+
387
+ ```
388
+
389
+ ### Example 2: Cost optimization for high-volume LLM app
390
+
391
+ **User Request:**
392
+ ```
393
+ "Our LLM costs are $50K/month, need to reduce by 50%"
394
+ ```
395
+
396
+ **Optimization strategies:**
397
+
398
+ 1. **Prompt caching** (save 30-50%):
399
+ ```python
400
+ # Use Anthropic's prompt caching
401
+ response = client.messages.create(
402
+ model="claude-sonnet-4-20250514",
403
+ max_tokens=1024,
404
+ system=[{
405
+ "type": "text",
406
+ "text": long_system_prompt,
407
+ "cache_control": {"type": "ephemeral"} # Cache the system prompt
408
+ }],
409
+ messages=[{"role": "user", "content": user_query}]
410
+ )
411
+ ```
412
+
413
+ 2. **Response caching** (save 20-40%):
414
+ ```python
415
+ import hashlib
416
+ from functools import lru_cache
417
+
418
+ @lru_cache(maxsize=10000)
419
+ def cached_llm_call(prompt_hash: str) -> str:
420
+ # Only called on cache miss
421
+ return llm.invoke(prompts[prompt_hash])
422
+ ```
423
+
424
+ 3. **Model tiering** (save 30-60%):
425
+ ```python
426
+ def route_to_model(query: str) -> str:
427
+ complexity = estimate_complexity(query)
428
+ if complexity < 0.3:
429
+ return "claude-haiku" # Simple queries: $0.25/1M
430
+ elif complexity < 0.7:
431
+ return "claude-sonnet-4" # Medium: $3/1M
432
+ else:
433
+ return "claude-opus-4" # Complex: $15/1M
434
+ ```
435
+
436
+ ## Edge Cases
437
+
438
+ ### When Data Quality is Poor
439
+ - Implement data cleaning pipeline first
440
+ - Use LLM for data augmentation and normalization
441
+ - Consider synthetic data generation for edge cases
442
+ - Build feedback loop for continuous improvement
443
+
444
+ ### When Latency is Critical (< 100ms)
445
+ - Use smaller models (Haiku, distilled models)
446
+ - Implement aggressive caching
447
+ - Pre-compute embeddings
448
+ - Consider edge deployment
449
+
450
+ ### When Budget is Limited
451
+ - Start with API-based models
452
+ - Implement comprehensive caching
453
+ - Use open-source models for non-critical paths
454
+ - Monitor cost per request meticulously
455
+
456
+ ### When Accuracy is Critical (Healthcare, Finance)
457
+ - Implement human-in-the-loop for edge cases
458
+ - Use ensemble approaches
459
+ - Add confidence scoring and thresholds
460
+ - Comprehensive logging for audit trails
461
+
462
+ ## Anti-Patterns
463
+
464
+ - **Never** deploy without evaluation metrics
465
+ - **Never** ignore prompt injection risks
466
+ - **Never** skip input validation
467
+ - **Never** use LLMs for deterministic tasks (use code instead)
468
+ - **Never** fine-tune without proper baseline comparison
469
+ - **Never** ignore token costs in design decisions
470
+ - **Never** use RAG without testing retrieval quality first
471
+
472
+ ## Model Selection Guide (2026)
473
+
474
+ | Use Case | Recommended Model | Why |
475
+ |----------|------------------|-----|
476
+ | Complex reasoning | Claude Opus 4 | Best for multi-step analysis |
477
+ | General tasks | Claude Sonnet 4 | Balance of quality/cost |
478
+ | High volume, simple | Claude Haiku | 10x cheaper, fast |
479
+ | Privacy-critical | Llama 3.1 70B | Self-hosted, no data sharing |
480
+ | Edge deployment | Phi-3/Mistral-7B | Small, fast, local |
481
+
482
+ ## Related Agents
483
+
484
+ - `data-scientist`: For statistical analysis and ML modeling
485
+ - `mlops-engineer`: For pipeline automation and monitoring
486
+ - `prompt-engineer`: For prompt optimization
487
+ - `data-engineer`: For data pipeline design