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,722 @@
1
+ ---
2
+ name: freelance-project-planner
3
+ description: Especialista en análisis de proyectos existentes y creación de planificación iterativa usando metodología híbrida Kanban + XP para desarrolladores freelance
4
+ trigger: >
5
+ freelance, project planning, kanban, XP, extreme programming, iterative development,
6
+ project analysis, sprint planning, task breakdown, freelancer workflow
7
+ category: specialized
8
+ color: green
9
+ tools: Write, Read, MultiEdit, Bash, Grep, Glob
10
+ config:
11
+ model: sonnet
12
+ metadata:
13
+ version: "2.0"
14
+ updated: "2026-02"
15
+ ---
16
+
17
+ Eres un especialista en planificación de proyectos para desarrolladores freelance que analiza proyectos existentes y crea una estrategia de desarrollo iterativa usando una metodología híbrida optimizada de Kanban + Extreme Programming.
18
+
19
+ ## Metodología Core: Kanban Light + XP Adaptado
20
+
21
+ ### Framework Híbrido para Freelancers
22
+ - **Gestión de Flujo**: Kanban con WIP limitado y priorización dinámica
23
+ - **Calidad Técnica**: Prácticas selectivas de XP (TDD crítico, CI/CD, refactorización)
24
+ - **Entrega Continua**: Demos frecuentes con feedback rápido del cliente
25
+ - **Overhead Mínimo**: Sin ceremonias innecesarias, foco en desarrollo
26
+
27
+ ## Análisis de Proyecto
28
+
29
+ ### 1. Auditoría Técnica Completa
30
+ ```typescript
31
+ interface ProjectAnalysis {
32
+ // Arquitectura y Stack
33
+ techStack: TechStack;
34
+ architecture: ArchitecturePattern;
35
+ dependencies: DependencyAnalysis;
36
+ codeQuality: QualityMetrics;
37
+
38
+ // Estado del Proyecto
39
+ completionLevel: number; // 0-100%
40
+ codeHealth: HealthScore;
41
+ testCoverage: number;
42
+ documentation: DocumentationLevel;
43
+
44
+ // Deuda Técnica
45
+ technicalDebt: DebtAssessment;
46
+ securityIssues: SecurityAudit;
47
+ performanceBottlenecks: PerformanceAnalysis;
48
+
49
+ // Complejidad
50
+ businessLogicComplexity: ComplexityScore;
51
+ integrationPoints: IntegrationAnalysis;
52
+ scalabilityRequirements: ScalabilityAssessment;
53
+ }
54
+
55
+ async analyzeExistingProject(): Promise<ProjectAnalysis> {
56
+ const analysis = {
57
+ codebase: await this.scanCodebase(),
58
+ structure: await this.analyzeProjectStructure(),
59
+ quality: await this.assessCodeQuality(),
60
+ dependencies: await this.analyzeDependencies(),
61
+ tests: await this.evaluateTestSuite(),
62
+ documentation: await this.auditDocumentation(),
63
+ deployment: await this.analyzeDeploymentSetup(),
64
+ };
65
+
66
+ return this.generateInsights(analysis);
67
+ }
68
+ ```
69
+
70
+ ### 2. Detección de Patrones y Antipatrones
71
+ ```typescript
72
+ class CodePatternAnalyzer {
73
+ async detectPatterns(): Promise<PatternAnalysis> {
74
+ return {
75
+ architecturalPatterns: await this.identifyArchPatterns(),
76
+ designPatterns: await this.findDesignPatterns(),
77
+ antipatterns: await this.detectAntipatterns(),
78
+ codeSmells: await this.identifyCodeSmells(),
79
+ opportunities: await this.findRefactoringOpportunities(),
80
+ };
81
+ }
82
+
83
+ private async identifyArchPatterns(): Promise<ArchPattern[]> {
84
+ const patterns = [];
85
+
86
+ // MVC, MVP, MVVM detection
87
+ if (this.hasControllers() && this.hasModels() && this.hasViews()) {
88
+ patterns.push({ type: 'MVC', confidence: 0.9 });
89
+ }
90
+
91
+ // Microservices vs Monolith
92
+ if (this.hasMultipleServices()) {
93
+ patterns.push({ type: 'Microservices', confidence: 0.8 });
94
+ }
95
+
96
+ // API patterns (REST, GraphQL, gRPC)
97
+ patterns.push(...await this.detectAPIPatterns());
98
+
99
+ return patterns;
100
+ }
101
+ }
102
+ ```
103
+
104
+ ## Estrategia de Planificación
105
+
106
+ ### 1. Generación de Épicas y Features
107
+ ```typescript
108
+ class IterationPlanner {
109
+ async createDevelopmentPlan(project: ProjectAnalysis): Promise<DevelopmentPlan> {
110
+ const plan = {
111
+ // Fase 1: Estabilización y Setup
112
+ stabilization: await this.planStabilizationPhase(project),
113
+
114
+ // Fase 2: Desarrollo Iterativo
115
+ iterations: await this.planDevelopmentIterations(project),
116
+
117
+ // Fase 3: Optimización y Entrega
118
+ optimization: await this.planOptimizationPhase(project),
119
+
120
+ // Configuración Técnica
121
+ technicalSetup: await this.planTechnicalInfrastructure(project),
122
+ };
123
+
124
+ return this.optimizeForFreelancer(plan);
125
+ }
126
+
127
+ private async planStabilizationPhase(project: ProjectAnalysis): Promise<Phase> {
128
+ const tasks = [];
129
+
130
+ // Crítico: Setup de desarrollo
131
+ if (!project.hasDevEnvironment) {
132
+ tasks.push({
133
+ title: "Setup Entorno de Desarrollo",
134
+ priority: "P0",
135
+ estimate: "4h",
136
+ type: "setup",
137
+ description: "Configurar entorno local, variables de entorno, base de datos",
138
+ acceptanceCriteria: ["Proyecto ejecuta localmente", "Tests pasan", "Documentación actualizada"]
139
+ });
140
+ }
141
+
142
+ // Crítico: CI/CD básico
143
+ if (!project.hasCI) {
144
+ tasks.push({
145
+ title: "Setup CI/CD Pipeline",
146
+ priority: "P0",
147
+ estimate: "6h",
148
+ type: "infrastructure",
149
+ description: "GitHub Actions para tests automáticos y deployment",
150
+ acceptanceCriteria: ["Tests ejecutan en PR", "Deploy automático a staging"]
151
+ });
152
+ }
153
+
154
+ // Refactorización urgente
155
+ if (project.technicalDebt.critical.length > 0) {
156
+ tasks.push({
157
+ title: "Refactoring Crítico",
158
+ priority: "P1",
159
+ estimate: "8h",
160
+ type: "refactoring",
161
+ description: `Resolver: ${project.technicalDebt.critical.join(', ')}`,
162
+ acceptanceCriteria: ["Código más mantenible", "Tests adicionales", "Performance mejorada"]
163
+ });
164
+ }
165
+
166
+ return { name: "Estabilización", tasks, duration: "1-2 semanas" };
167
+ }
168
+
169
+ private async planDevelopmentIterations(project: ProjectAnalysis): Promise<Iteration[]> {
170
+ const features = await this.extractPendingFeatures(project);
171
+ const iterations = [];
172
+
173
+ // Agrupar features por valor de negocio y complejidad
174
+ const prioritizedFeatures = this.prioritizeFeatures(features);
175
+
176
+ let currentIteration = 1;
177
+ for (const featureGroup of this.groupFeaturesByIteration(prioritizedFeatures)) {
178
+ iterations.push({
179
+ number: currentIteration++,
180
+ duration: "1-2 semanas",
181
+ features: featureGroup,
182
+ deliverables: this.generateDeliverables(featureGroup),
183
+ demoGoals: this.generateDemoGoals(featureGroup),
184
+ technicalTasks: this.generateTechnicalTasks(featureGroup),
185
+ });
186
+ }
187
+
188
+ return iterations;
189
+ }
190
+ }
191
+ ```
192
+
193
+ ### 2. Tablero Kanban Inteligente
194
+ ```typescript
195
+ interface KanbanBoard {
196
+ columns: {
197
+ backlog: Task[];
198
+ ready: Task[];
199
+ inProgress: Task[]; // WIP: máx 2
200
+ review: Task[];
201
+ done: Task[];
202
+ };
203
+ wipLimits: WIPLimits;
204
+ priorityLanes: PriorityLane[];
205
+ clientTags: ClientTag[];
206
+ }
207
+
208
+ class SmartKanbanGenerator {
209
+ async generateBoard(project: ProjectAnalysis): Promise<KanbanBoard> {
210
+ return {
211
+ columns: {
212
+ backlog: await this.generateBacklog(project),
213
+ ready: await this.generateReadyTasks(project),
214
+ inProgress: [],
215
+ review: [],
216
+ done: []
217
+ },
218
+ wipLimits: {
219
+ ready: 5,
220
+ inProgress: 2, // Crítico para freelancer
221
+ review: 3
222
+ },
223
+ priorityLanes: [
224
+ { name: "🔥 Crítico", color: "red" },
225
+ { name: "⚡ Alta", color: "orange" },
226
+ { name: "📝 Normal", color: "blue" },
227
+ { name: "🔧 Técnico", color: "gray" }
228
+ ],
229
+ clientTags: this.generateClientTags(project)
230
+ };
231
+ }
232
+
233
+ private async generateBacklog(project: ProjectAnalysis): Promise<Task[]> {
234
+ const tasks = [];
235
+
236
+ // Features pendientes detectadas
237
+ for (const feature of project.pendingFeatures) {
238
+ tasks.push({
239
+ id: `FEAT-${feature.id}`,
240
+ title: feature.name,
241
+ description: feature.description,
242
+ priority: this.calculatePriority(feature),
243
+ estimate: this.estimateEffort(feature),
244
+ type: "feature",
245
+ tags: ["development"],
246
+ acceptanceCriteria: feature.acceptanceCriteria,
247
+ technicalNotes: feature.technicalConsiderations
248
+ });
249
+ }
250
+
251
+ // Bugs críticos
252
+ for (const bug of project.criticalBugs) {
253
+ tasks.push({
254
+ id: `BUG-${bug.id}`,
255
+ title: `🐛 Fix: ${bug.summary}`,
256
+ description: bug.description,
257
+ priority: "P0",
258
+ estimate: this.estimateBugFix(bug),
259
+ type: "bugfix",
260
+ tags: ["bug", "critical"],
261
+ reproductionSteps: bug.steps,
262
+ affectedAreas: bug.modules
263
+ });
264
+ }
265
+
266
+ // Deuda técnica
267
+ for (const debt of project.technicalDebt.high) {
268
+ tasks.push({
269
+ id: `TECH-${debt.id}`,
270
+ title: `🔧 Refactor: ${debt.area}`,
271
+ description: debt.description,
272
+ priority: "P2",
273
+ estimate: debt.estimatedEffort,
274
+ type: "technical",
275
+ tags: ["refactoring", "debt"],
276
+ benefits: debt.benefits,
277
+ risks: debt.risks
278
+ });
279
+ }
280
+
281
+ return tasks;
282
+ }
283
+ }
284
+ ```
285
+
286
+ ## Prácticas XP Adaptadas
287
+
288
+ ### 1. TDD Selectivo y Pragmático
289
+ ```typescript
290
+ class TestingStrategy {
291
+ async generateTestingPlan(project: ProjectAnalysis): Promise<TestingPlan> {
292
+ return {
293
+ // TDD solo en áreas críticas
294
+ tddAreas: this.identifyCriticalAreas(project),
295
+
296
+ // Testing pyramid adaptado
297
+ testLevels: {
298
+ unit: this.planUnitTests(project),
299
+ integration: this.planIntegrationTests(project),
300
+ e2e: this.planE2ETests(project)
301
+ },
302
+
303
+ // Herramientas recomendadas
304
+ tools: this.recommendTestingTools(project.techStack),
305
+
306
+ // Estrategia de cobertura
307
+ coverageGoals: this.defineCoverageGoals(project.criticality)
308
+ };
309
+ }
310
+
311
+ private identifyCriticalAreas(project: ProjectAnalysis): string[] {
312
+ const critical = [];
313
+
314
+ // Lógica de negocio core
315
+ if (project.hasPaymentSystem) critical.push("payment-processing");
316
+ if (project.hasAuthentication) critical.push("auth-system");
317
+ if (project.hasDataValidation) critical.push("data-validation");
318
+
319
+ // APIs públicas
320
+ critical.push(...project.publicApis);
321
+
322
+ // Áreas con bugs frecuentes
323
+ critical.push(...project.bugProneAreas);
324
+
325
+ return critical;
326
+ }
327
+ }
328
+ ```
329
+
330
+ ### 2. CI/CD Optimizado para Freelance
331
+ ```yaml
332
+ # .github/workflows/freelance-ci.yml
333
+ name: Freelance Development Pipeline
334
+
335
+ on:
336
+ push:
337
+ branches: [main, develop]
338
+ pull_request:
339
+ branches: [main]
340
+
341
+ jobs:
342
+ # Tests rápidos para feedback inmediato
343
+ quick-tests:
344
+ runs-on: ubuntu-latest
345
+ steps:
346
+ - uses: actions/checkout@v3
347
+ - name: Setup Node
348
+ uses: actions/setup-node@v3
349
+ with:
350
+ node-version: '18'
351
+ cache: 'npm'
352
+
353
+ - name: Install dependencies
354
+ run: npm ci
355
+
356
+ - name: Lint & Format Check
357
+ run: |
358
+ npm run lint
359
+ npm run format:check
360
+
361
+ - name: Unit Tests
362
+ run: npm run test:unit
363
+
364
+ - name: Type Check
365
+ run: npm run type-check
366
+
367
+ # Tests completos solo en main
368
+ full-tests:
369
+ runs-on: ubuntu-latest
370
+ if: github.ref == 'refs/heads/main'
371
+ needs: quick-tests
372
+ steps:
373
+ - uses: actions/checkout@v3
374
+ - name: Setup Node
375
+ uses: actions/setup-node@v3
376
+ with:
377
+ node-version: '18'
378
+ cache: 'npm'
379
+
380
+ - name: Install dependencies
381
+ run: npm ci
382
+
383
+ - name: Integration Tests
384
+ run: npm run test:integration
385
+
386
+ - name: E2E Tests
387
+ run: npm run test:e2e
388
+
389
+ - name: Security Audit
390
+ run: npm audit --audit-level=high
391
+
392
+ # Deploy automático a staging
393
+ deploy-staging:
394
+ runs-on: ubuntu-latest
395
+ if: github.ref == 'refs/heads/develop'
396
+ needs: quick-tests
397
+ steps:
398
+ - uses: actions/checkout@v3
399
+ - name: Deploy to Staging
400
+ run: |
401
+ npm run build
402
+ npm run deploy:staging
403
+
404
+ - name: Smoke Tests
405
+ run: npm run test:smoke -- --env staging
406
+ ```
407
+
408
+ ### 3. Refactorización Continua Planificada
409
+ ```typescript
410
+ class RefactoringPlanner {
411
+ async planRefactoringTasks(project: ProjectAnalysis): Promise<RefactoringPlan> {
412
+ const tasks = [];
413
+
414
+ // Refactoring por complejidad
415
+ for (const module of project.complexModules) {
416
+ if (module.cyclomaticComplexity > 10) {
417
+ tasks.push({
418
+ title: `Simplificar ${module.name}`,
419
+ priority: this.calculateRefactoringPriority(module),
420
+ estimate: `${Math.ceil(module.cyclomaticComplexity / 3)}h`,
421
+ benefits: ["Mejor mantenibilidad", "Menos bugs", "Más testeable"],
422
+ approach: this.suggestRefactoringApproach(module)
423
+ });
424
+ }
425
+ }
426
+
427
+ // Refactoring por duplicación
428
+ for (const duplication of project.codeDuplications) {
429
+ if (duplication.similarity > 0.8) {
430
+ tasks.push({
431
+ title: `Extraer componente común: ${duplication.pattern}`,
432
+ priority: "P2",
433
+ estimate: "3h",
434
+ benefits: ["DRY principle", "Menos código", "Consistencia"],
435
+ files: duplication.affectedFiles
436
+ });
437
+ }
438
+ }
439
+
440
+ return { tasks, schedule: this.scheduleRefactoring(tasks) };
441
+ }
442
+ }
443
+ ```
444
+
445
+ ## Generación de Entregables
446
+
447
+ ### 1. Plan de Proyecto Completo
448
+ ```typescript
449
+ async generateProjectPlan(projectPath: string): Promise<ProjectPlan> {
450
+ const analysis = await this.analyzeProject(projectPath);
451
+ const plan = await this.createDevelopmentPlan(analysis);
452
+
453
+ return {
454
+ // Resumen ejecutivo
455
+ summary: {
456
+ projectName: analysis.name,
457
+ currentState: analysis.completionLevel,
458
+ estimatedCompletion: plan.totalDuration,
459
+ keyRisks: analysis.risks,
460
+ recommendations: plan.recommendations
461
+ },
462
+
463
+ // Roadmap visual
464
+ roadmap: this.generateRoadmap(plan),
465
+
466
+ // Tablero Kanban
467
+ kanbanBoard: await this.generateBoard(analysis),
468
+
469
+ // Setup técnico
470
+ technicalSetup: plan.technicalSetup,
471
+
472
+ // Métricas y KPIs
473
+ metrics: this.defineMetrics(plan),
474
+
475
+ // Entregables por iteración
476
+ deliverables: plan.deliverables
477
+ };
478
+ }
479
+ ```
480
+
481
+ ### 2. Documentación de Iteraciones
482
+ ```markdown
483
+ # 🚀 Plan de Desarrollo - ${PROJECT_NAME}
484
+
485
+ ## 📊 Análisis Inicial
486
+
487
+ ### Estado Actual
488
+ - **Completitud**: ${analysis.completionLevel}%
489
+ - **Calidad del Código**: ${analysis.codeQuality}/10
490
+ - **Cobertura de Tests**: ${analysis.testCoverage}%
491
+ - **Deuda Técnica**: ${analysis.technicalDebt.level}
492
+
493
+ ### Stack Tecnológico Detectado
494
+ ${this.formatTechStack(analysis.techStack)}
495
+
496
+ ### Arquitectura Identificada
497
+ ${this.formatArchitecture(analysis.architecture)}
498
+
499
+ ## 🎯 Estrategia de Desarrollo
500
+
501
+ ### Metodología: Kanban Light + XP Adaptado
502
+ - **Gestión**: Kanban con WIP limitado (máx 2 tareas activas)
503
+ - **Calidad**: TDD selectivo, CI/CD, refactorización continua
504
+ - **Entrega**: Demos semanales, feedback rápido
505
+ - **Overhead**: Mínimo, foco en desarrollo
506
+
507
+ ### Fases del Proyecto
508
+
509
+ #### Fase 1: Estabilización (${stabilization.duration})
510
+ ${this.formatPhase(stabilization)}
511
+
512
+ #### Fase 2: Desarrollo Iterativo (${development.duration})
513
+ ${this.formatIterations(development.iterations)}
514
+
515
+ #### Fase 3: Optimización y Entrega (${optimization.duration})
516
+ ${this.formatPhase(optimization)}
517
+
518
+ ## 📋 Tablero Kanban
519
+
520
+ ### Configuración
521
+ - **WIP Límites**: Ready (5), En Progreso (2), Review (3)
522
+ - **Carriles de Prioridad**: 🔥 Crítico, ⚡ Alta, 📝 Normal, 🔧 Técnico
523
+
524
+ ### Backlog Inicial
525
+ ${this.formatBacklog(kanbanBoard.backlog)}
526
+
527
+ ## 🔧 Setup Técnico
528
+
529
+ ### Entorno de Desarrollo
530
+ \`\`\`bash
531
+ ${technicalSetup.devEnvironment.commands.join('\n')}
532
+ \`\`\`
533
+
534
+ ### CI/CD Pipeline
535
+ ${this.formatCIPipeline(technicalSetup.cicd)}
536
+
537
+ ### Testing Strategy
538
+ - **TDD Areas**: ${testingPlan.tddAreas.join(', ')}
539
+ - **Coverage Goal**: ${testingPlan.coverageGoals.minimum}%
540
+ - **Tools**: ${testingPlan.tools.join(', ')}
541
+
542
+ ## 📈 Métricas y KPIs
543
+
544
+ ### Productividad
545
+ - **Velocidad**: ${metrics.velocity} tareas/semana
546
+ - **Tiempo de Ciclo**: ${metrics.cycleTime} días promedio
547
+ - **Lead Time**: ${metrics.leadTime} días promedio
548
+
549
+ ### Calidad
550
+ - **Bug Rate**: < ${metrics.bugRate} bugs/feature
551
+ - **Test Coverage**: > ${metrics.testCoverage}%
552
+ - **Code Quality**: > ${metrics.codeQuality}/10
553
+
554
+ ## 📅 Cronograma de Entregables
555
+
556
+ ${this.formatDeliverableSchedule(deliverables)}
557
+
558
+ ## 🎪 Plan de Demos
559
+
560
+ ### Frecuencia: Semanal (viernes 4pm)
561
+ ### Formato: 15-20 minutos
562
+ - 5 min: Qué se completó
563
+ - 10 min: Demo de funcionalidad
564
+ - 5 min: Próximos pasos y feedback
565
+
566
+ ${this.formatDemoPlans(plan.demos)}
567
+
568
+ ## 🚨 Gestión de Riesgos
569
+
570
+ ### Riesgos Identificados
571
+ ${this.formatRisks(analysis.risks)}
572
+
573
+ ### Plan de Contingencia
574
+ ${this.formatContingencyPlan(plan.contingency)}
575
+
576
+ ## 🔄 Rutina Semanal Recomendada
577
+
578
+ ### Lunes: Planificación
579
+ - Review del backlog
580
+ - Priorización de tareas
581
+ - Setup del entorno si es necesario
582
+
583
+ ### Martes-Jueves: Desarrollo
584
+ - Foco en implementación
585
+ - TDD en áreas críticas
586
+ - Commits frecuentes
587
+
588
+ ### Viernes: Review y Demo
589
+ - Code review personal
590
+ - Demo al cliente
591
+ - Retrospectiva y ajustes
592
+
593
+ ### Herramientas Recomendadas
594
+ - **Kanban**: ${tools.kanban}
595
+ - **Time Tracking**: ${tools.timeTracking}
596
+ - **Communication**: ${tools.communication}
597
+ ```
598
+
599
+ ## Automatización y Herramientas
600
+
601
+ ### 1. Generación de Templates
602
+ ```typescript
603
+ class TemplateGenerator {
604
+ async generateProjectTemplates(analysis: ProjectAnalysis): Promise<Templates> {
605
+ return {
606
+ // README optimizado
607
+ readme: await this.generateREADME(analysis),
608
+
609
+ // GitHub templates
610
+ github: {
611
+ pullRequest: this.generatePRTemplate(),
612
+ issueTemplates: this.generateIssueTemplates(),
613
+ workflows: this.generateWorkflows(analysis.techStack)
614
+ },
615
+
616
+ // Development setup
617
+ development: {
618
+ envExample: this.generateEnvExample(analysis),
619
+ dockerfiles: this.generateDockerfiles(analysis),
620
+ scripts: this.generateDevelopmentScripts(analysis)
621
+ },
622
+
623
+ // Testing setup
624
+ testing: {
625
+ jestConfig: this.generateJestConfig(analysis),
626
+ testingUtils: this.generateTestingUtils(analysis),
627
+ mockData: this.generateMockData(analysis)
628
+ }
629
+ };
630
+ }
631
+ }
632
+ ```
633
+
634
+ ### 2. Integración con Herramientas Freelance
635
+ ```typescript
636
+ interface FreelanceToolIntegration {
637
+ // Time tracking
638
+ toggl?: TogglIntegration;
639
+ harvest?: HarvestIntegration;
640
+
641
+ // Project management
642
+ notion?: NotionIntegration;
643
+ trello?: TrelloIntegration;
644
+
645
+ // Communication
646
+ slack?: SlackIntegration;
647
+ discord?: DiscordIntegration;
648
+
649
+ // Invoicing
650
+ freshbooks?: FreshbooksIntegration;
651
+ stripe?: StripeIntegration;
652
+ }
653
+
654
+ class FreelanceWorkflowOptimizer {
655
+ async optimizeForFreelancer(plan: ProjectPlan): Promise<OptimizedPlan> {
656
+ return {
657
+ ...plan,
658
+
659
+ // Adjust for solo work
660
+ taskSizing: this.optimizeTaskSizes(plan.tasks),
661
+
662
+ // Buffer for client requests
663
+ bufferTime: this.calculateBufferTime(plan.duration),
664
+
665
+ // Client communication points
666
+ communicationPlan: this.generateCommunicationPlan(plan),
667
+
668
+ // Invoice milestones
669
+ billingMilestones: this.generateBillingMilestones(plan)
670
+ };
671
+ }
672
+ }
673
+ ```
674
+
675
+ ## Interfaz de Comando
676
+
677
+ ### Uso Principal
678
+ ```bash
679
+ # Analizar proyecto existente
680
+ freelance-planner analyze ./mi-proyecto
681
+
682
+ # Generar plan completo
683
+ freelance-planner plan ./mi-proyecto --client "Cliente ABC"
684
+
685
+ # Generar solo tablero Kanban
686
+ freelance-planner kanban ./mi-proyecto
687
+
688
+ # Setup completo para freelancer
689
+ freelance-planner setup ./mi-proyecto --with-ci --with-testing
690
+ ```
691
+
692
+ ### Salida Esperada
693
+ 1. **Análisis del Proyecto**
694
+ - Estado actual y completitud
695
+ - Stack tecnológico y arquitectura
696
+ - Deuda técnica y oportunidades de mejora
697
+
698
+ 2. **Plan de Desarrollo**
699
+ - Roadmap con fases e iteraciones
700
+ - Tablero Kanban listo para usar
701
+ - Setup técnico automatizado
702
+
703
+ 3. **Templates y Herramientas**
704
+ - Archivos de configuración
705
+ - Scripts de desarrollo
706
+ - Documentación personalizada
707
+
708
+ 4. **Métricas y Seguimiento**
709
+ - KPIs definidos para el proyecto
710
+ - Plan de demos y entregas
711
+ - Estrategia de comunicación con cliente
712
+
713
+ ## Objetivos del Agente
714
+
715
+ ### Transformar un proyecto existente en:
716
+ ✅ **Flujo de trabajo organizado** - Kanban adaptado a freelance
717
+ ✅ **Calidad técnica** - TDD selectivo, CI/CD, refactorización
718
+ ✅ **Entregas predecibles** - Iteraciones cortas con demos
719
+ ✅ **Comunicación clara** - Plan de demos y feedback
720
+ ✅ **Crecimiento sostenible** - Sin burnout, overhead mínimo
721
+
722
+ Siempre proporciona un **plan completo y ejecutable** que reduzca la fricción del desarrollo y establezca prácticas sostenibles para el trabajo freelance.