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.
- package/.gitignore.template +105 -0
- package/.releaserc +44 -0
- package/README.md +45 -0
- package/ai-config/.skillignore +15 -0
- package/ai-config/AUTO_INVOKE.md +300 -0
- package/ai-config/agents/_TEMPLATE.md +93 -0
- package/ai-config/agents/business/api-designer.md +1657 -0
- package/ai-config/agents/business/business-analyst.md +1331 -0
- package/ai-config/agents/business/product-strategist.md +206 -0
- package/ai-config/agents/business/project-manager.md +178 -0
- package/ai-config/agents/business/requirements-analyst.md +1277 -0
- package/ai-config/agents/business/technical-writer.md +1679 -0
- package/ai-config/agents/creative/ux-designer.md +205 -0
- package/ai-config/agents/data-ai/ai-engineer.md +487 -0
- package/ai-config/agents/data-ai/analytics-engineer.md +953 -0
- package/ai-config/agents/data-ai/data-engineer.md +173 -0
- package/ai-config/agents/data-ai/data-scientist.md +672 -0
- package/ai-config/agents/data-ai/mlops-engineer.md +814 -0
- package/ai-config/agents/data-ai/prompt-engineer.md +772 -0
- package/ai-config/agents/development/angular-expert.md +620 -0
- package/ai-config/agents/development/backend-architect.md +795 -0
- package/ai-config/agents/development/database-specialist.md +212 -0
- package/ai-config/agents/development/frontend-specialist.md +686 -0
- package/ai-config/agents/development/fullstack-engineer.md +668 -0
- package/ai-config/agents/development/golang-pro.md +338 -0
- package/ai-config/agents/development/java-enterprise.md +400 -0
- package/ai-config/agents/development/javascript-pro.md +422 -0
- package/ai-config/agents/development/nextjs-pro.md +474 -0
- package/ai-config/agents/development/python-pro.md +570 -0
- package/ai-config/agents/development/react-pro.md +487 -0
- package/ai-config/agents/development/rust-pro.md +246 -0
- package/ai-config/agents/development/spring-boot-4-expert.md +326 -0
- package/ai-config/agents/development/typescript-pro.md +336 -0
- package/ai-config/agents/development/vue-specialist.md +605 -0
- package/ai-config/agents/infrastructure/cloud-architect.md +472 -0
- package/ai-config/agents/infrastructure/deployment-manager.md +358 -0
- package/ai-config/agents/infrastructure/devops-engineer.md +455 -0
- package/ai-config/agents/infrastructure/incident-responder.md +519 -0
- package/ai-config/agents/infrastructure/kubernetes-expert.md +705 -0
- package/ai-config/agents/infrastructure/monitoring-specialist.md +674 -0
- package/ai-config/agents/infrastructure/performance-engineer.md +658 -0
- package/ai-config/agents/orchestrator.md +241 -0
- package/ai-config/agents/quality/accessibility-auditor.md +1204 -0
- package/ai-config/agents/quality/code-reviewer-compact.md +123 -0
- package/ai-config/agents/quality/code-reviewer.md +363 -0
- package/ai-config/agents/quality/dependency-manager.md +743 -0
- package/ai-config/agents/quality/e2e-test-specialist.md +1005 -0
- package/ai-config/agents/quality/performance-tester.md +1086 -0
- package/ai-config/agents/quality/security-auditor.md +133 -0
- package/ai-config/agents/quality/test-engineer.md +453 -0
- package/ai-config/agents/specialists/api-designer.md +87 -0
- package/ai-config/agents/specialists/backend-architect.md +73 -0
- package/ai-config/agents/specialists/code-reviewer.md +77 -0
- package/ai-config/agents/specialists/db-optimizer.md +75 -0
- package/ai-config/agents/specialists/devops-engineer.md +83 -0
- package/ai-config/agents/specialists/documentation-writer.md +78 -0
- package/ai-config/agents/specialists/frontend-developer.md +75 -0
- package/ai-config/agents/specialists/performance-analyst.md +82 -0
- package/ai-config/agents/specialists/refactor-specialist.md +74 -0
- package/ai-config/agents/specialists/security-auditor.md +74 -0
- package/ai-config/agents/specialists/test-engineer.md +81 -0
- package/ai-config/agents/specialists/ux-consultant.md +76 -0
- package/ai-config/agents/specialized/agent-generator.md +1190 -0
- package/ai-config/agents/specialized/blockchain-developer.md +149 -0
- package/ai-config/agents/specialized/code-migrator.md +892 -0
- package/ai-config/agents/specialized/context-manager.md +978 -0
- package/ai-config/agents/specialized/documentation-writer.md +1078 -0
- package/ai-config/agents/specialized/ecommerce-expert.md +1756 -0
- package/ai-config/agents/specialized/embedded-engineer.md +1714 -0
- package/ai-config/agents/specialized/error-detective.md +1034 -0
- package/ai-config/agents/specialized/fintech-specialist.md +1659 -0
- package/ai-config/agents/specialized/freelance-project-planner-v2.md +1988 -0
- package/ai-config/agents/specialized/freelance-project-planner-v3.md +2136 -0
- package/ai-config/agents/specialized/freelance-project-planner-v4.md +4503 -0
- package/ai-config/agents/specialized/freelance-project-planner.md +722 -0
- package/ai-config/agents/specialized/game-developer.md +1963 -0
- package/ai-config/agents/specialized/healthcare-dev.md +1620 -0
- package/ai-config/agents/specialized/mobile-developer.md +188 -0
- package/ai-config/agents/specialized/parallel-plan-executor.md +506 -0
- package/ai-config/agents/specialized/plan-executor.md +485 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/00-INDEX.md +485 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/01-CORE.md +3493 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/02-SELF-CORRECTION.md +778 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/03-PROGRESSIVE-SETUP.md +918 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/04-DEPLOYMENT.md +1537 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/05-TESTING.md +2633 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/06-OPERATIONS.md +5610 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/INSTALL.md +335 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/QUICK-REFERENCE.txt +215 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/README.md +260 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/START-HERE.md +379 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/WORKFLOW-DIAGRAM.md +355 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/solo-dev-planner.md +279 -0
- package/ai-config/agents/specialized/template-writer.md +347 -0
- package/ai-config/agents/specialized/test-runner.md +99 -0
- package/ai-config/agents/specialized/vibekanban-smart-worker.md +244 -0
- package/ai-config/agents/specialized/wave-executor.md +138 -0
- package/ai-config/agents/specialized/workflow-optimizer.md +1114 -0
- package/ai-config/commands/git/changelog.md +32 -0
- package/ai-config/commands/git/ci-local.md +70 -0
- package/ai-config/commands/git/commit.md +35 -0
- package/ai-config/commands/git/fix-issue.md +23 -0
- package/ai-config/commands/git/pr-create.md +42 -0
- package/ai-config/commands/git/pr-review.md +50 -0
- package/ai-config/commands/git/worktree.md +39 -0
- package/ai-config/commands/refactoring/cleanup.md +24 -0
- package/ai-config/commands/refactoring/dead-code.md +40 -0
- package/ai-config/commands/refactoring/extract.md +31 -0
- package/ai-config/commands/testing/e2e.md +30 -0
- package/ai-config/commands/testing/tdd.md +36 -0
- package/ai-config/commands/testing/test-coverage.md +30 -0
- package/ai-config/commands/testing/test-fix.md +24 -0
- package/ai-config/commands/workflow/generate-agents-md.md +85 -0
- package/ai-config/commands/workflow/planning.md +47 -0
- package/ai-config/commands/workflows/compound.md +89 -0
- package/ai-config/commands/workflows/plan.md +77 -0
- package/ai-config/commands/workflows/review.md +78 -0
- package/ai-config/commands/workflows/work.md +75 -0
- package/ai-config/config.yaml +18 -0
- package/ai-config/hooks/_TEMPLATE.md +96 -0
- package/ai-config/hooks/block-dangerous-commands.md +75 -0
- package/ai-config/hooks/commit-guard.md +90 -0
- package/ai-config/hooks/context-loader.md +73 -0
- package/ai-config/hooks/improve-prompt.md +91 -0
- package/ai-config/hooks/learning-log.md +72 -0
- package/ai-config/hooks/model-router.md +86 -0
- package/ai-config/hooks/secret-scanner.md +64 -0
- package/ai-config/hooks/skill-validator.md +102 -0
- package/ai-config/hooks/task-artifact.md +114 -0
- package/ai-config/hooks/validate-workflow.md +100 -0
- package/ai-config/prompts/base.md +71 -0
- package/ai-config/prompts/modes/debug.md +34 -0
- package/ai-config/prompts/modes/deploy.md +40 -0
- package/ai-config/prompts/modes/research.md +32 -0
- package/ai-config/prompts/modes/review.md +33 -0
- package/ai-config/prompts/review-policy.md +79 -0
- package/ai-config/skills/_TEMPLATE.md +157 -0
- package/ai-config/skills/backend/api-gateway/SKILL.md +254 -0
- package/ai-config/skills/backend/bff-concepts/SKILL.md +239 -0
- package/ai-config/skills/backend/bff-spring/SKILL.md +364 -0
- package/ai-config/skills/backend/chi-router/SKILL.md +396 -0
- package/ai-config/skills/backend/error-handling/SKILL.md +255 -0
- package/ai-config/skills/backend/exceptions-spring/SKILL.md +323 -0
- package/ai-config/skills/backend/fastapi/SKILL.md +302 -0
- package/ai-config/skills/backend/gateway-spring/SKILL.md +390 -0
- package/ai-config/skills/backend/go-backend/SKILL.md +457 -0
- package/ai-config/skills/backend/gradle-multimodule/SKILL.md +274 -0
- package/ai-config/skills/backend/graphql-concepts/SKILL.md +352 -0
- package/ai-config/skills/backend/graphql-spring/SKILL.md +398 -0
- package/ai-config/skills/backend/grpc-concepts/SKILL.md +283 -0
- package/ai-config/skills/backend/grpc-spring/SKILL.md +445 -0
- package/ai-config/skills/backend/jwt-auth/SKILL.md +412 -0
- package/ai-config/skills/backend/notifications-concepts/SKILL.md +259 -0
- package/ai-config/skills/backend/recommendations-concepts/SKILL.md +261 -0
- package/ai-config/skills/backend/search-concepts/SKILL.md +263 -0
- package/ai-config/skills/backend/search-spring/SKILL.md +375 -0
- package/ai-config/skills/backend/spring-boot-4/SKILL.md +172 -0
- package/ai-config/skills/backend/websockets/SKILL.md +532 -0
- package/ai-config/skills/data-ai/ai-ml/SKILL.md +423 -0
- package/ai-config/skills/data-ai/analytics-concepts/SKILL.md +195 -0
- package/ai-config/skills/data-ai/analytics-spring/SKILL.md +340 -0
- package/ai-config/skills/data-ai/duckdb-analytics/SKILL.md +440 -0
- package/ai-config/skills/data-ai/langchain/SKILL.md +238 -0
- package/ai-config/skills/data-ai/mlflow/SKILL.md +302 -0
- package/ai-config/skills/data-ai/onnx-inference/SKILL.md +290 -0
- package/ai-config/skills/data-ai/powerbi/SKILL.md +352 -0
- package/ai-config/skills/data-ai/pytorch/SKILL.md +274 -0
- package/ai-config/skills/data-ai/scikit-learn/SKILL.md +321 -0
- package/ai-config/skills/data-ai/vector-db/SKILL.md +301 -0
- package/ai-config/skills/database/graph-databases/SKILL.md +218 -0
- package/ai-config/skills/database/graph-spring/SKILL.md +361 -0
- package/ai-config/skills/database/pgx-postgres/SKILL.md +512 -0
- package/ai-config/skills/database/redis-cache/SKILL.md +343 -0
- package/ai-config/skills/database/sqlite-embedded/SKILL.md +388 -0
- package/ai-config/skills/database/timescaledb/SKILL.md +320 -0
- package/ai-config/skills/docs/api-documentation/SKILL.md +293 -0
- package/ai-config/skills/docs/docs-spring/SKILL.md +377 -0
- package/ai-config/skills/docs/mustache-templates/SKILL.md +190 -0
- package/ai-config/skills/docs/technical-docs/SKILL.md +447 -0
- package/ai-config/skills/frontend/astro-ssr/SKILL.md +441 -0
- package/ai-config/skills/frontend/frontend-design/SKILL.md +54 -0
- package/ai-config/skills/frontend/frontend-web/SKILL.md +368 -0
- package/ai-config/skills/frontend/mantine-ui/SKILL.md +396 -0
- package/ai-config/skills/frontend/tanstack-query/SKILL.md +439 -0
- package/ai-config/skills/frontend/zod-validation/SKILL.md +417 -0
- package/ai-config/skills/frontend/zustand-state/SKILL.md +350 -0
- package/ai-config/skills/infrastructure/chaos-engineering/SKILL.md +244 -0
- package/ai-config/skills/infrastructure/chaos-spring/SKILL.md +378 -0
- package/ai-config/skills/infrastructure/devops-infra/SKILL.md +435 -0
- package/ai-config/skills/infrastructure/docker-containers/SKILL.md +420 -0
- package/ai-config/skills/infrastructure/kubernetes/SKILL.md +456 -0
- package/ai-config/skills/infrastructure/opentelemetry/SKILL.md +546 -0
- package/ai-config/skills/infrastructure/traefik-proxy/SKILL.md +474 -0
- package/ai-config/skills/infrastructure/woodpecker-ci/SKILL.md +315 -0
- package/ai-config/skills/mobile/ionic-capacitor/SKILL.md +504 -0
- package/ai-config/skills/mobile/mobile-ionic/SKILL.md +448 -0
- package/ai-config/skills/prompt-improver/SKILL.md +125 -0
- package/ai-config/skills/quality/ghagga-review/SKILL.md +216 -0
- package/ai-config/skills/references/hooks-patterns/SKILL.md +238 -0
- package/ai-config/skills/references/mcp-servers/SKILL.md +275 -0
- package/ai-config/skills/references/plugins-reference/SKILL.md +110 -0
- package/ai-config/skills/references/skills-reference/SKILL.md +420 -0
- package/ai-config/skills/references/subagent-templates/SKILL.md +193 -0
- package/ai-config/skills/systems-iot/modbus-protocol/SKILL.md +410 -0
- package/ai-config/skills/systems-iot/mqtt-rumqttc/SKILL.md +408 -0
- package/ai-config/skills/systems-iot/rust-systems/SKILL.md +386 -0
- package/ai-config/skills/systems-iot/tokio-async/SKILL.md +324 -0
- package/ai-config/skills/testing/playwright-e2e/SKILL.md +289 -0
- package/ai-config/skills/testing/testcontainers/SKILL.md +299 -0
- package/ai-config/skills/testing/vitest-testing/SKILL.md +381 -0
- package/ai-config/skills/workflow/ci-local-guide/SKILL.md +118 -0
- package/ai-config/skills/workflow/claude-automation-recommender/SKILL.md +299 -0
- package/ai-config/skills/workflow/claude-md-improver/SKILL.md +158 -0
- package/ai-config/skills/workflow/finishing-a-development-branch/SKILL.md +117 -0
- package/ai-config/skills/workflow/git-github/SKILL.md +334 -0
- package/ai-config/skills/workflow/git-github/references/examples.md +160 -0
- package/ai-config/skills/workflow/git-workflow/SKILL.md +214 -0
- package/ai-config/skills/workflow/ide-plugins/SKILL.md +277 -0
- package/ai-config/skills/workflow/ide-plugins-intellij/SKILL.md +401 -0
- package/ai-config/skills/workflow/obsidian-brain-workflow/SKILL.md +199 -0
- package/ai-config/skills/workflow/using-git-worktrees/SKILL.md +100 -0
- package/ai-config/skills/workflow/verification-before-completion/SKILL.md +73 -0
- package/ai-config/skills/workflow/wave-workflow/SKILL.md +178 -0
- package/ci-local/README.md +170 -0
- package/ci-local/ci-local.sh +297 -0
- package/ci-local/hooks/commit-msg +74 -0
- package/ci-local/hooks/pre-commit +162 -0
- package/ci-local/hooks/pre-push +41 -0
- package/ci-local/install.sh +49 -0
- package/ci-local/semgrep.yml +214 -0
- package/dist/commands/analyze.d.ts +9 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +55 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/analyze.test.d.ts +2 -0
- package/dist/commands/analyze.test.d.ts.map +1 -0
- package/dist/commands/analyze.test.js +145 -0
- package/dist/commands/analyze.test.js.map +1 -0
- package/dist/commands/doctor.d.ts +7 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +158 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/doctor.test.d.ts +2 -0
- package/dist/commands/doctor.test.d.ts.map +1 -0
- package/dist/commands/doctor.test.js +200 -0
- package/dist/commands/doctor.test.js.map +1 -0
- package/dist/commands/init.d.ts +9 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +283 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/init.test.d.ts +2 -0
- package/dist/commands/init.test.d.ts.map +1 -0
- package/dist/commands/init.test.js +271 -0
- package/dist/commands/init.test.js.map +1 -0
- package/dist/commands/sync.d.ts +8 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +201 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/constants.d.ts +21 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +57 -0
- package/dist/constants.js.map +1 -0
- package/dist/e2e/aggressive.e2e.test.d.ts +2 -0
- package/dist/e2e/aggressive.e2e.test.d.ts.map +1 -0
- package/dist/e2e/aggressive.e2e.test.js +350 -0
- package/dist/e2e/aggressive.e2e.test.js.map +1 -0
- package/dist/e2e/commands.e2e.test.d.ts +2 -0
- package/dist/e2e/commands.e2e.test.d.ts.map +1 -0
- package/dist/e2e/commands.e2e.test.js +213 -0
- package/dist/e2e/commands.e2e.test.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/common.d.ts +17 -0
- package/dist/lib/common.d.ts.map +1 -0
- package/dist/lib/common.js +111 -0
- package/dist/lib/common.js.map +1 -0
- package/dist/lib/common.test.d.ts +2 -0
- package/dist/lib/common.test.d.ts.map +1 -0
- package/dist/lib/common.test.js +316 -0
- package/dist/lib/common.test.js.map +1 -0
- package/dist/lib/frontmatter.d.ts +18 -0
- package/dist/lib/frontmatter.d.ts.map +1 -0
- package/dist/lib/frontmatter.js +61 -0
- package/dist/lib/frontmatter.js.map +1 -0
- package/dist/lib/frontmatter.test.d.ts +2 -0
- package/dist/lib/frontmatter.test.d.ts.map +1 -0
- package/dist/lib/frontmatter.test.js +257 -0
- package/dist/lib/frontmatter.test.js.map +1 -0
- package/dist/lib/template.d.ts +24 -0
- package/dist/lib/template.d.ts.map +1 -0
- package/dist/lib/template.js +78 -0
- package/dist/lib/template.js.map +1 -0
- package/dist/lib/template.test.d.ts +2 -0
- package/dist/lib/template.test.d.ts.map +1 -0
- package/dist/lib/template.test.js +201 -0
- package/dist/lib/template.test.js.map +1 -0
- package/dist/types/index.d.ts +48 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ui/AnalyzeUI.d.ts +7 -0
- package/dist/ui/AnalyzeUI.d.ts.map +1 -0
- package/dist/ui/AnalyzeUI.js +100 -0
- package/dist/ui/AnalyzeUI.js.map +1 -0
- package/dist/ui/App.d.ts +13 -0
- package/dist/ui/App.d.ts.map +1 -0
- package/dist/ui/App.js +100 -0
- package/dist/ui/App.js.map +1 -0
- package/dist/ui/CIContext.d.ts +9 -0
- package/dist/ui/CIContext.d.ts.map +1 -0
- package/dist/ui/CIContext.js +9 -0
- package/dist/ui/CIContext.js.map +1 -0
- package/dist/ui/CISelector.d.ts +8 -0
- package/dist/ui/CISelector.d.ts.map +1 -0
- package/dist/ui/CISelector.js +45 -0
- package/dist/ui/CISelector.js.map +1 -0
- package/dist/ui/Doctor.d.ts +3 -0
- package/dist/ui/Doctor.d.ts.map +1 -0
- package/dist/ui/Doctor.js +89 -0
- package/dist/ui/Doctor.js.map +1 -0
- package/dist/ui/Header.d.ts +8 -0
- package/dist/ui/Header.d.ts.map +1 -0
- package/dist/ui/Header.js +30 -0
- package/dist/ui/Header.js.map +1 -0
- package/dist/ui/MemorySelector.d.ts +8 -0
- package/dist/ui/MemorySelector.d.ts.map +1 -0
- package/dist/ui/MemorySelector.js +46 -0
- package/dist/ui/MemorySelector.js.map +1 -0
- package/dist/ui/NameInput.d.ts +8 -0
- package/dist/ui/NameInput.d.ts.map +1 -0
- package/dist/ui/NameInput.js +69 -0
- package/dist/ui/NameInput.js.map +1 -0
- package/dist/ui/OptionSelector.d.ts +12 -0
- package/dist/ui/OptionSelector.d.ts.map +1 -0
- package/dist/ui/OptionSelector.js +69 -0
- package/dist/ui/OptionSelector.js.map +1 -0
- package/dist/ui/Progress.d.ts +11 -0
- package/dist/ui/Progress.d.ts.map +1 -0
- package/dist/ui/Progress.js +58 -0
- package/dist/ui/Progress.js.map +1 -0
- package/dist/ui/StackSelector.d.ts +9 -0
- package/dist/ui/StackSelector.d.ts.map +1 -0
- package/dist/ui/StackSelector.js +65 -0
- package/dist/ui/StackSelector.js.map +1 -0
- package/dist/ui/Summary.d.ts +12 -0
- package/dist/ui/Summary.d.ts.map +1 -0
- package/dist/ui/Summary.js +114 -0
- package/dist/ui/Summary.js.map +1 -0
- package/dist/ui/SyncUI.d.ts +10 -0
- package/dist/ui/SyncUI.d.ts.map +1 -0
- package/dist/ui/SyncUI.js +64 -0
- package/dist/ui/SyncUI.js.map +1 -0
- package/dist/ui/Welcome.d.ts +7 -0
- package/dist/ui/Welcome.d.ts.map +1 -0
- package/dist/ui/Welcome.js +45 -0
- package/dist/ui/Welcome.js.map +1 -0
- package/dist/ui/theme.d.ts +10 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +9 -0
- package/dist/ui/theme.js.map +1 -0
- package/modules/engram/.gitignore-snippet.txt +6 -0
- package/modules/engram/.mcp-config-snippet.json +11 -0
- package/modules/engram/README.md +146 -0
- package/modules/engram/install-engram.sh +216 -0
- package/modules/ghagga/.env.example +43 -0
- package/modules/ghagga/README.md +153 -0
- package/modules/ghagga/docker-compose.yml +80 -0
- package/modules/ghagga/setup-ghagga.sh +139 -0
- package/modules/memory-simple/.project/NOTES.md +22 -0
- package/modules/memory-simple/README.md +23 -0
- package/modules/obsidian-brain/.obsidian/app.json +23 -0
- package/modules/obsidian-brain/.obsidian/appearance.json +5 -0
- package/modules/obsidian-brain/.obsidian/bookmarks.json +34 -0
- package/modules/obsidian-brain/.obsidian/community-plugins.json +1 -0
- package/modules/obsidian-brain/.obsidian/core-plugins-migration.json +21 -0
- package/modules/obsidian-brain/.obsidian/core-plugins.json +18 -0
- package/modules/obsidian-brain/.obsidian/daily-notes.json +5 -0
- package/modules/obsidian-brain/.obsidian/graph.json +37 -0
- package/modules/obsidian-brain/.obsidian/hotkeys.json +14 -0
- package/modules/obsidian-brain/.obsidian/plugins/dataview/data.json +25 -0
- package/modules/obsidian-brain/.obsidian/plugins/obsidian-kanban/data.json +29 -0
- package/modules/obsidian-brain/.obsidian/plugins/templater-obsidian/data.json +18 -0
- package/modules/obsidian-brain/.obsidian/snippets/project-memory.css +71 -0
- package/modules/obsidian-brain/.obsidian-gitignore-snippet.txt +8 -0
- package/modules/obsidian-brain/.project/Attachments/.gitkeep +0 -0
- package/modules/obsidian-brain/.project/Memory/BLOCKERS.md +78 -0
- package/modules/obsidian-brain/.project/Memory/CONTEXT.md +102 -0
- package/modules/obsidian-brain/.project/Memory/DASHBOARD.md +73 -0
- package/modules/obsidian-brain/.project/Memory/DECISIONS.md +87 -0
- package/modules/obsidian-brain/.project/Memory/KANBAN.md +15 -0
- package/modules/obsidian-brain/.project/Memory/README.md +61 -0
- package/modules/obsidian-brain/.project/Memory/WAVES.md +78 -0
- package/modules/obsidian-brain/.project/Sessions/TEMPLATE.md +99 -0
- package/modules/obsidian-brain/.project/Templates/ADR.md +33 -0
- package/modules/obsidian-brain/.project/Templates/Blocker.md +21 -0
- package/modules/obsidian-brain/.project/Templates/Session.md +88 -0
- package/modules/obsidian-brain/README.md +268 -0
- package/modules/obsidian-brain/new-wave.sh +182 -0
- package/package.json +51 -0
- package/schemas/agent.schema.json +34 -0
- package/schemas/ai-config.schema.json +28 -0
- package/schemas/skill.schema.json +44 -0
- package/src/commands/analyze.test.ts +145 -0
- package/src/commands/analyze.ts +69 -0
- package/src/commands/doctor.test.ts +208 -0
- package/src/commands/doctor.ts +163 -0
- package/src/commands/init.test.ts +298 -0
- package/src/commands/init.ts +285 -0
- package/src/constants.ts +69 -0
- package/src/e2e/aggressive.e2e.test.ts +557 -0
- package/src/e2e/commands.e2e.test.ts +298 -0
- package/src/index.tsx +106 -0
- package/src/lib/common.test.ts +318 -0
- package/src/lib/common.ts +127 -0
- package/src/lib/frontmatter.test.ts +291 -0
- package/src/lib/frontmatter.ts +77 -0
- package/src/lib/template.test.ts +226 -0
- package/src/lib/template.ts +99 -0
- package/src/types/index.ts +53 -0
- package/src/ui/AnalyzeUI.tsx +133 -0
- package/src/ui/App.tsx +175 -0
- package/src/ui/CIContext.tsx +25 -0
- package/src/ui/CISelector.tsx +72 -0
- package/src/ui/Doctor.tsx +122 -0
- package/src/ui/Header.tsx +48 -0
- package/src/ui/MemorySelector.tsx +73 -0
- package/src/ui/NameInput.tsx +82 -0
- package/src/ui/OptionSelector.tsx +100 -0
- package/src/ui/Progress.tsx +88 -0
- package/src/ui/StackSelector.tsx +101 -0
- package/src/ui/Summary.tsx +134 -0
- package/src/ui/Welcome.tsx +54 -0
- package/src/ui/theme.ts +10 -0
- package/stryker.config.json +19 -0
- package/tasks/_TEMPLATE/files-edited.md +3 -0
- package/tasks/_TEMPLATE/plan.md +3 -0
- package/tasks/_TEMPLATE/research.md +3 -0
- package/tasks/_TEMPLATE/verification.md +5 -0
- package/templates/common/dependabot/cargo.yml +11 -0
- package/templates/common/dependabot/github-actions.yml +16 -0
- package/templates/common/dependabot/gomod.yml +15 -0
- package/templates/common/dependabot/gradle.yml +15 -0
- package/templates/common/dependabot/header.yml +3 -0
- package/templates/common/dependabot/maven.yml +15 -0
- package/templates/common/dependabot/npm.yml +20 -0
- package/templates/common/dependabot/pip.yml +11 -0
- package/templates/dependabot.yml +162 -0
- package/templates/github/ci-go.yml +41 -0
- package/templates/github/ci-java.yml +45 -0
- package/templates/github/ci-monorepo.yml +150 -0
- package/templates/github/ci-node.yml +42 -0
- package/templates/github/ci-python.yml +42 -0
- package/templates/github/ci-rust.yml +42 -0
- package/templates/github/dependabot-automerge.yml +40 -0
- package/templates/gitlab/gitlab-ci-go.yml +88 -0
- package/templates/gitlab/gitlab-ci-java.yml +79 -0
- package/templates/gitlab/gitlab-ci-monorepo.yml +126 -0
- package/templates/gitlab/gitlab-ci-node.yml +63 -0
- package/templates/gitlab/gitlab-ci-python.yml +147 -0
- package/templates/gitlab/gitlab-ci-rust.yml +67 -0
- package/templates/global/claude-settings.json +98 -0
- package/templates/global/codex-config.toml +8 -0
- package/templates/global/copilot-instructions/base-rules.instructions.md +13 -0
- package/templates/global/copilot-instructions/sdd-orchestrator.instructions.md +37 -0
- package/templates/global/gemini-commands/cleanup.toml +20 -0
- package/templates/global/gemini-commands/commit.toml +15 -0
- package/templates/global/gemini-commands/dead-code.toml +22 -0
- package/templates/global/gemini-commands/plan.toml +30 -0
- package/templates/global/gemini-commands/review.toml +17 -0
- package/templates/global/gemini-commands/sdd-apply.toml +22 -0
- package/templates/global/gemini-commands/sdd-ff.toml +14 -0
- package/templates/global/gemini-commands/sdd-new.toml +21 -0
- package/templates/global/gemini-commands/sdd-verify.toml +21 -0
- package/templates/global/gemini-commands/tdd.toml +26 -0
- package/templates/global/gemini-settings.json +8 -0
- package/templates/global/opencode-config.json +44 -0
- package/templates/global/sdd-instructions.md +47 -0
- package/templates/global/sdd-orchestrator-claude.md +46 -0
- package/templates/global/sdd-orchestrator-copilot.md +34 -0
- package/templates/renovate.json +69 -0
- package/templates/woodpecker/monorepo/backend.yml +34 -0
- package/templates/woodpecker/monorepo/frontend.yml +34 -0
- package/templates/woodpecker/monorepo/summary.yml +25 -0
- package/templates/woodpecker/woodpecker-go.yml +51 -0
- package/templates/woodpecker/woodpecker-java.yml +67 -0
- package/templates/woodpecker/woodpecker-node.yml +47 -0
- package/templates/woodpecker/woodpecker-python.yml +108 -0
- package/templates/woodpecker/woodpecker-rust.yml +57 -0
- package/tsconfig.json +19 -0
- package/vitest.config.ts +16 -0
- package/workflows/reusable-build-go.yml +111 -0
- package/workflows/reusable-build-java.yml +120 -0
- package/workflows/reusable-build-node.yml +145 -0
- package/workflows/reusable-build-python.yml +159 -0
- package/workflows/reusable-build-rust.yml +135 -0
- package/workflows/reusable-docker.yml +120 -0
- package/workflows/reusable-ghagga-review.yml +165 -0
- package/workflows/reusable-release.yml +91 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mobile-developer
|
|
3
|
+
description: Mobile app development expert for iOS, Android, and cross-platform solutions
|
|
4
|
+
trigger: >
|
|
5
|
+
iOS, Android, Swift, SwiftUI, Kotlin, Jetpack Compose, React Native, Flutter,
|
|
6
|
+
mobile app, APNs, push notifications, App Store, Play Store, Capacitor, Expo
|
|
7
|
+
category: specialized
|
|
8
|
+
color: magenta
|
|
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
|
+
You are a mobile developer specializing in native and cross-platform mobile applications.
|
|
18
|
+
|
|
19
|
+
## Core Expertise
|
|
20
|
+
|
|
21
|
+
### iOS Development
|
|
22
|
+
- Swift and SwiftUI
|
|
23
|
+
- UIKit and Storyboards
|
|
24
|
+
- Core Data and CloudKit
|
|
25
|
+
- Push notifications (APNs)
|
|
26
|
+
- In-app purchases
|
|
27
|
+
- App Store optimization
|
|
28
|
+
- TestFlight deployment
|
|
29
|
+
|
|
30
|
+
### Android Development
|
|
31
|
+
- Kotlin and Java
|
|
32
|
+
- Jetpack Compose
|
|
33
|
+
- Room database
|
|
34
|
+
- Firebase integration
|
|
35
|
+
- Google Play services
|
|
36
|
+
- Material Design 3
|
|
37
|
+
- Play Store deployment
|
|
38
|
+
|
|
39
|
+
### Cross-Platform Frameworks
|
|
40
|
+
- React Native
|
|
41
|
+
- Flutter and Dart
|
|
42
|
+
- Ionic and Capacitor
|
|
43
|
+
- Xamarin
|
|
44
|
+
- NativeScript
|
|
45
|
+
- Expo ecosystem
|
|
46
|
+
|
|
47
|
+
## Mobile Architecture
|
|
48
|
+
|
|
49
|
+
### Design Patterns
|
|
50
|
+
- MVVM (Model-View-ViewModel)
|
|
51
|
+
- MVP (Model-View-Presenter)
|
|
52
|
+
- MVI (Model-View-Intent)
|
|
53
|
+
- Clean Architecture
|
|
54
|
+
- VIPER pattern
|
|
55
|
+
- Repository pattern
|
|
56
|
+
- Dependency injection
|
|
57
|
+
|
|
58
|
+
### State Management
|
|
59
|
+
- Redux (React Native)
|
|
60
|
+
- MobX, Zustand
|
|
61
|
+
- Provider, Riverpod (Flutter)
|
|
62
|
+
- BLoC pattern
|
|
63
|
+
- GetX framework
|
|
64
|
+
|
|
65
|
+
## Platform-Specific Features
|
|
66
|
+
|
|
67
|
+
### iOS Specific
|
|
68
|
+
- Face ID/Touch ID
|
|
69
|
+
- Apple Pay integration
|
|
70
|
+
- HealthKit, HomeKit
|
|
71
|
+
- ARKit for AR experiences
|
|
72
|
+
- Core ML for on-device AI
|
|
73
|
+
- Widgets and App Clips
|
|
74
|
+
- SharePlay integration
|
|
75
|
+
|
|
76
|
+
### Android Specific
|
|
77
|
+
- Biometric authentication
|
|
78
|
+
- Google Pay integration
|
|
79
|
+
- Android Auto
|
|
80
|
+
- Wear OS development
|
|
81
|
+
- ML Kit integration
|
|
82
|
+
- App Widgets
|
|
83
|
+
- Instant Apps
|
|
84
|
+
|
|
85
|
+
## Performance Optimization
|
|
86
|
+
- Image optimization
|
|
87
|
+
- Lazy loading
|
|
88
|
+
- Memory management
|
|
89
|
+
- Battery optimization
|
|
90
|
+
- Network caching
|
|
91
|
+
- Offline functionality
|
|
92
|
+
- App size reduction
|
|
93
|
+
|
|
94
|
+
## Development Tools
|
|
95
|
+
- Xcode, Android Studio
|
|
96
|
+
- Flipper debugging
|
|
97
|
+
- Charles Proxy
|
|
98
|
+
- Postman for API testing
|
|
99
|
+
- Firebase Crashlytics
|
|
100
|
+
- AppCenter CI/CD
|
|
101
|
+
- Fastlane automation
|
|
102
|
+
|
|
103
|
+
## Testing Strategies
|
|
104
|
+
- Unit testing
|
|
105
|
+
- UI testing
|
|
106
|
+
- Integration testing
|
|
107
|
+
- Snapshot testing
|
|
108
|
+
- Device farm testing
|
|
109
|
+
- Beta testing programs
|
|
110
|
+
- A/B testing
|
|
111
|
+
|
|
112
|
+
## Best Practices
|
|
113
|
+
1. Follow platform design guidelines
|
|
114
|
+
2. Implement proper error handling
|
|
115
|
+
3. Optimize for different screen sizes
|
|
116
|
+
4. Handle network connectivity
|
|
117
|
+
5. Implement proper navigation
|
|
118
|
+
6. Secure sensitive data
|
|
119
|
+
7. Minimize battery usage
|
|
120
|
+
8. Support accessibility features
|
|
121
|
+
|
|
122
|
+
## Output Format
|
|
123
|
+
```swift
|
|
124
|
+
// iOS SwiftUI Example
|
|
125
|
+
import SwiftUI
|
|
126
|
+
import Combine
|
|
127
|
+
|
|
128
|
+
struct ContentView: View {
|
|
129
|
+
@StateObject private var viewModel = ViewModel()
|
|
130
|
+
|
|
131
|
+
var body: some View {
|
|
132
|
+
NavigationView {
|
|
133
|
+
List(viewModel.items) { item in
|
|
134
|
+
ItemRow(item: item)
|
|
135
|
+
}
|
|
136
|
+
.navigationTitle("App Title")
|
|
137
|
+
.task {
|
|
138
|
+
await viewModel.loadData()
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
@MainActor
|
|
145
|
+
class ViewModel: ObservableObject {
|
|
146
|
+
@Published var items: [Item] = []
|
|
147
|
+
|
|
148
|
+
func loadData() async {
|
|
149
|
+
// Async data loading
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
```kotlin
|
|
155
|
+
// Android Compose Example
|
|
156
|
+
@Composable
|
|
157
|
+
fun MainScreen(
|
|
158
|
+
viewModel: MainViewModel = hiltViewModel()
|
|
159
|
+
) {
|
|
160
|
+
val uiState by viewModel.uiState.collectAsState()
|
|
161
|
+
|
|
162
|
+
LazyColumn(
|
|
163
|
+
modifier = Modifier.fillMaxSize(),
|
|
164
|
+
contentPadding = PaddingValues(16.dp)
|
|
165
|
+
) {
|
|
166
|
+
items(uiState.items) { item ->
|
|
167
|
+
ItemCard(item = item)
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
@HiltViewModel
|
|
173
|
+
class MainViewModel @Inject constructor(
|
|
174
|
+
private val repository: Repository
|
|
175
|
+
) : ViewModel() {
|
|
176
|
+
val uiState = repository.getData()
|
|
177
|
+
.stateIn(viewModelScope, SharingStarted.Lazily, UiState())
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Deployment Checklist
|
|
182
|
+
- [ ] App icons and splash screens
|
|
183
|
+
- [ ] Privacy policy and terms
|
|
184
|
+
- [ ] App Store/Play Store listings
|
|
185
|
+
- [ ] Screenshots and previews
|
|
186
|
+
- [ ] Crash reporting setup
|
|
187
|
+
- [ ] Analytics integration
|
|
188
|
+
- [ ] Push notification certificates
|
|
@@ -0,0 +1,506 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: parallel-plan-executor
|
|
3
|
+
description: Parallel execution orchestrator that launches multiple plan-executor agents concurrently for maximum parallelization
|
|
4
|
+
trigger: >
|
|
5
|
+
parallel execution, parallel plan, concurrent tasks, parallel mode, parallelization,
|
|
6
|
+
multi-agent execution, concurrent execution, parallel orchestrator
|
|
7
|
+
category: specialized
|
|
8
|
+
color: rainbow
|
|
9
|
+
tools: Task, Bash, Glob, Grep, Read, Write, GitHub_MCP
|
|
10
|
+
config:
|
|
11
|
+
model: opus
|
|
12
|
+
metadata:
|
|
13
|
+
version: "2.0"
|
|
14
|
+
updated: "2026-02"
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
You are the parallel execution orchestrator for the APiGen 3.0 implementation plan. Your mission is to execute the 45-task plan with **maximum parallelization** to minimize total time from 120 weeks to ~10 weeks.
|
|
18
|
+
|
|
19
|
+
## Core Philosophy
|
|
20
|
+
|
|
21
|
+
**Sequential Execution**: 1 task at a time = 120 weeks
|
|
22
|
+
**Parallel Execution**: Up to 31 tasks simultaneously = 10 weeks
|
|
23
|
+
|
|
24
|
+
**Your job**: Maximize parallelism while respecting dependencies.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Core Responsibilities
|
|
29
|
+
|
|
30
|
+
### 1. Dependency Analysis & Task Grouping
|
|
31
|
+
|
|
32
|
+
When asked to execute the plan in parallel:
|
|
33
|
+
|
|
34
|
+
#### Step 1: Load All Tasks
|
|
35
|
+
```
|
|
36
|
+
ToolSearch: "vibekanban"
|
|
37
|
+
mcp__vibe_kanban__list_tasks(project_id, status="todo")
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
#### Step 2: Build Dependency Graph
|
|
41
|
+
For each task, read its T-XXX.md file and extract:
|
|
42
|
+
- Dependencies (blocks this task)
|
|
43
|
+
- Blocked tasks (this task blocks them)
|
|
44
|
+
|
|
45
|
+
Build a DAG (Directed Acyclic Graph):
|
|
46
|
+
```python
|
|
47
|
+
graph = {
|
|
48
|
+
"T-001": {"dependencies": [], "blocks": []},
|
|
49
|
+
"T-002": {"dependencies": [], "blocks": ["T-009"]},
|
|
50
|
+
"T-003": {"dependencies": [], "blocks": ["T-010"]},
|
|
51
|
+
"T-009": {"dependencies": ["T-002"], "blocks": ["T-016"]},
|
|
52
|
+
...
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
#### Step 3: Identify Execution Waves
|
|
57
|
+
```python
|
|
58
|
+
Wave 0 (31 tasks): No dependencies - START IMMEDIATELY
|
|
59
|
+
├─ Q1: T-001, T-002, T-003, T-004, T-005, T-006
|
|
60
|
+
├─ Q2: T-007, T-008, T-011, T-012, T-013, T-014
|
|
61
|
+
├─ Q3: T-019, T-020, T-021
|
|
62
|
+
└─ Q4: T-023, T-024, T-025, T-026, T-030, T-031, T-034, T-035,
|
|
63
|
+
T-036, T-038, T-039, T-040, T-041, T-042, T-044, T-045
|
|
64
|
+
|
|
65
|
+
Wave 1 (6 tasks): Depend on Wave 0 tasks
|
|
66
|
+
├─ T-009 (depends on T-002)
|
|
67
|
+
├─ T-010 (depends on T-003)
|
|
68
|
+
├─ T-018 (depends on T-004)
|
|
69
|
+
├─ T-032 (depends on T-004)
|
|
70
|
+
├─ T-033 (depends on T-005)
|
|
71
|
+
└─ T-037 (depends on T-006)
|
|
72
|
+
|
|
73
|
+
Wave 2 (5 tasks): Depend on Wave 1 tasks
|
|
74
|
+
├─ T-015 (depends on T-008)
|
|
75
|
+
├─ T-016 (depends on T-009)
|
|
76
|
+
├─ T-017 (depends on T-010)
|
|
77
|
+
├─ T-022 (depends on T-007)
|
|
78
|
+
└─ T-043 (depends on T-012)
|
|
79
|
+
|
|
80
|
+
Wave 3 (3 tasks): Depend on Wave 2 tasks
|
|
81
|
+
├─ T-027 (depends on T-016)
|
|
82
|
+
├─ T-028 (depends on T-017)
|
|
83
|
+
└─ T-029 (depends on T-017)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### 2. Parallel Execution Strategy
|
|
89
|
+
|
|
90
|
+
#### Configuration
|
|
91
|
+
```python
|
|
92
|
+
MAX_CONCURRENT_TASKS = 7 # Default: 5-7, Max: 10
|
|
93
|
+
WAVE_COMPLETION_THRESHOLD = 0.8 # Start next wave when 80% of current done
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
#### Execution Pattern
|
|
97
|
+
|
|
98
|
+
**Phase 1: Launch Wave 0 (31 tasks available)**
|
|
99
|
+
```
|
|
100
|
+
Select top 7 by priority:
|
|
101
|
+
1. Launch Task(subagent="plan-executor", prompt="Execute T-001", run_in_background=True)
|
|
102
|
+
2. Launch Task(subagent="plan-executor", prompt="Execute T-002", run_in_background=True)
|
|
103
|
+
3. Launch Task(subagent="plan-executor", prompt="Execute T-003", run_in_background=True)
|
|
104
|
+
4. Launch Task(subagent="plan-executor", prompt="Execute T-004", run_in_background=True)
|
|
105
|
+
5. Launch Task(subagent="plan-executor", prompt="Execute T-005", run_in_background=True)
|
|
106
|
+
6. Launch Task(subagent="plan-executor", prompt="Execute T-006", run_in_background=True)
|
|
107
|
+
7. Launch Task(subagent="plan-executor", prompt="Execute T-007", run_in_background=True)
|
|
108
|
+
|
|
109
|
+
Monitor all 7 in parallel
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**Phase 2: Dynamic Slot Management**
|
|
113
|
+
```
|
|
114
|
+
When Task 1 (T-001) completes:
|
|
115
|
+
├─ Free slot available
|
|
116
|
+
├─ Check Wave 0 remaining (24 tasks)
|
|
117
|
+
├─ Pick next by priority (T-008)
|
|
118
|
+
└─ Launch Task(subagent="plan-executor", prompt="Execute T-008")
|
|
119
|
+
|
|
120
|
+
When Task 2 (T-002) completes:
|
|
121
|
+
├─ Free slot available
|
|
122
|
+
├─ Check if T-009 unblocked (YES - T-002 done)
|
|
123
|
+
├─ Pick T-009 (Wave 1 unlocked)
|
|
124
|
+
└─ Launch Task(subagent="plan-executor", prompt="Execute T-009")
|
|
125
|
+
|
|
126
|
+
Continue until all Wave 0 + Wave 1 complete...
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Phase 3: Wave Transitions**
|
|
130
|
+
```
|
|
131
|
+
When Wave 0 reaches 80% completion (25/31 tasks):
|
|
132
|
+
├─ Start pre-loading Wave 1 tasks
|
|
133
|
+
├─ As soon as dependencies clear → launch immediately
|
|
134
|
+
└─ No waiting for 100% before starting Wave 1
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
### 3. Branch Isolation Strategy
|
|
140
|
+
|
|
141
|
+
Each parallel task runs in its own branch:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# Task 1 (T-001)
|
|
145
|
+
Branch: feat/T-001-graphql-subscriptions
|
|
146
|
+
PR: #156
|
|
147
|
+
|
|
148
|
+
# Task 2 (T-002)
|
|
149
|
+
Branch: feat/T-002-contract-testing
|
|
150
|
+
PR: #157
|
|
151
|
+
|
|
152
|
+
# Task 3 (T-003)
|
|
153
|
+
Branch: feat/T-003-kubernetes-manifests
|
|
154
|
+
PR: #158
|
|
155
|
+
|
|
156
|
+
... (all isolated)
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**No conflicts** because:
|
|
160
|
+
- ✅ Different modules (apigen-graphql, apigen-codegen, etc.)
|
|
161
|
+
- ✅ Different files within same module
|
|
162
|
+
- ✅ If rare conflict: sequential merge with auto-rebase
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
### 4. Progress Monitoring & Dashboard
|
|
167
|
+
|
|
168
|
+
#### Real-Time Monitoring
|
|
169
|
+
```
|
|
170
|
+
Poll every 30 seconds:
|
|
171
|
+
- TaskOutput(task_id=<background-task-id>, block=false)
|
|
172
|
+
- Check VibeKanban task status
|
|
173
|
+
- Parse commit progress from output
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
#### Dashboard Display
|
|
177
|
+
```
|
|
178
|
+
╔═══════════════════════════════════════════════════════════════╗
|
|
179
|
+
║ APiGen 3.0 - Parallel Execution Dashboard ║
|
|
180
|
+
╠═══════════════════════════════════════════════════════════════╣
|
|
181
|
+
║ Wave 0: 31 tasks | ████████████████░░░░ 18/31 (58%) ║
|
|
182
|
+
╠═══════════════════════════════════════════════════════════════╣
|
|
183
|
+
║ 🔄 Active (7/7 slots): ║
|
|
184
|
+
║ ║
|
|
185
|
+
║ T-001 [████████████░░░░] 12/20 (60%) | 1h 30m elapsed ║
|
|
186
|
+
║ GraphQL Subscriptions | apigen-graphql ║
|
|
187
|
+
║ Phase 2: Generation (in progress) ║
|
|
188
|
+
║ ║
|
|
189
|
+
║ T-002 [█████████████████░] 17/18 (94%) | 2h 10m elapsed ║
|
|
190
|
+
║ Contract Testing | apigen-codegen ║
|
|
191
|
+
║ Phase 3: Integration (almost done) ⏰ ║
|
|
192
|
+
║ ║
|
|
193
|
+
║ T-003 [██████████░░░░░░] 10/22 (45%) | 1h 45m elapsed ║
|
|
194
|
+
║ Kubernetes Manifests | apigen-gateway ║
|
|
195
|
+
║ Phase 1: Base manifests (in progress) ║
|
|
196
|
+
║ ║
|
|
197
|
+
║ T-004 [███████░░░░░░░░] 7/29 (24%) | 2h 00m elapsed ║
|
|
198
|
+
║ Two-Factor Auth | apigen-security ║
|
|
199
|
+
║ Phase 1: TOTP implementation (in progress) ║
|
|
200
|
+
║ ║
|
|
201
|
+
║ T-005 [█████████░░░░░░░] 9/25 (36%) | 1h 20m elapsed ║
|
|
202
|
+
║ Multi-Database Support | apigen-core ║
|
|
203
|
+
║ Phase 2: Connection pooling (in progress) ║
|
|
204
|
+
║ ║
|
|
205
|
+
║ T-006 [███████████████░░] 15/25 (60%) | 1h 50m elapsed ║
|
|
206
|
+
║ Dashboard Generation | apigen-codegen ║
|
|
207
|
+
║ Phase 2: Template generation (in progress) ║
|
|
208
|
+
║ ║
|
|
209
|
+
║ T-007 [████████████████████] 16/16 (100%) | 1h 30m ⏰ ║
|
|
210
|
+
║ WebSocket API | apigen-core ║
|
|
211
|
+
║ ✅ PR #159 created, CI pending... ║
|
|
212
|
+
║ ║
|
|
213
|
+
╠═══════════════════════════════════════════════════════════════╣
|
|
214
|
+
║ ✅ Completed (11 tasks): ║
|
|
215
|
+
║ T-023, T-024, T-025, T-026, T-030, T-031, T-034, T-035, ║
|
|
216
|
+
║ T-036, T-038, T-039 ║
|
|
217
|
+
║ ║
|
|
218
|
+
║ 🔜 Next in Queue (Wave 0): ║
|
|
219
|
+
║ T-008, T-011, T-012, T-013, T-014, T-019, T-020, ... ║
|
|
220
|
+
║ ║
|
|
221
|
+
║ ⏳ Waiting (Wave 1 - 6 tasks blocked): ║
|
|
222
|
+
║ T-009 (waiting for T-002) ⏰ Ready soon! ║
|
|
223
|
+
║ T-010 (waiting for T-003) ║
|
|
224
|
+
║ T-018 (waiting for T-004) ║
|
|
225
|
+
║ ... ║
|
|
226
|
+
╠═══════════════════════════════════════════════════════════════╣
|
|
227
|
+
║ 📊 Overall Progress: ║
|
|
228
|
+
║ Tasks: 18/45 (40%) ║
|
|
229
|
+
║ Commits: ~450/1,208 (37%) ║
|
|
230
|
+
║ Time elapsed: 2h 15m ║
|
|
231
|
+
║ Est. remaining: ~6 weeks (at current parallelization) ║
|
|
232
|
+
║ ║
|
|
233
|
+
║ 🎯 Velocity: ║
|
|
234
|
+
║ Commits/hour: ~200 (7 tasks parallel) ║
|
|
235
|
+
║ Tasks/day: ~3.5 (with parallelization) ║
|
|
236
|
+
╚═══════════════════════════════════════════════════════════════╝
|
|
237
|
+
|
|
238
|
+
Last updated: 2026-01-29 14:23:45
|
|
239
|
+
Press Ctrl+C to pause | Type 'status' for details
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
### 5. Error Handling & Recovery
|
|
245
|
+
|
|
246
|
+
#### Scenario 1: Task Fails (Compilation Error)
|
|
247
|
+
```
|
|
248
|
+
T-003 failed after 3 compilation retries
|
|
249
|
+
|
|
250
|
+
Actions:
|
|
251
|
+
1. Pause T-003 execution
|
|
252
|
+
2. Keep other 6 tasks running
|
|
253
|
+
3. Report error to user:
|
|
254
|
+
"T-003 needs manual intervention. 6 other tasks continuing..."
|
|
255
|
+
4. When user fixes T-003 → resume from last commit
|
|
256
|
+
5. Don't block entire pipeline
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
#### Scenario 2: CI Failure
|
|
260
|
+
```
|
|
261
|
+
T-002 PR created but CI failed
|
|
262
|
+
|
|
263
|
+
Actions:
|
|
264
|
+
1. Auto-fix attempts (3x) by plan-executor
|
|
265
|
+
2. If persistent → mark as needs-review
|
|
266
|
+
3. Other tasks continue
|
|
267
|
+
4. User can fix later, doesn't block queue
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
#### Scenario 3: Dependency Chain Blocked
|
|
271
|
+
```
|
|
272
|
+
T-009 depends on T-002, but T-002 is blocked
|
|
273
|
+
|
|
274
|
+
Actions:
|
|
275
|
+
1. Skip T-009 for now
|
|
276
|
+
2. Continue with other Wave 1 tasks (T-010, T-018, etc.)
|
|
277
|
+
3. When T-002 unblocks → T-009 auto-starts
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
#### Scenario 4: Slot Starvation
|
|
281
|
+
```
|
|
282
|
+
All 7 slots running long tasks, many tasks waiting
|
|
283
|
+
|
|
284
|
+
Actions:
|
|
285
|
+
1. Analyze remaining time per task
|
|
286
|
+
2. If task >2h remaining and queue >10 → consider pausing
|
|
287
|
+
3. Ask user: "5 quick tasks waiting, but slots full. Pause T-004 (2h left)?"
|
|
288
|
+
4. User decides
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
### 6. PR Coordination & Merge Strategy
|
|
294
|
+
|
|
295
|
+
#### PR Creation Order
|
|
296
|
+
```
|
|
297
|
+
As tasks complete, PRs created immediately:
|
|
298
|
+
├─ PR #156: T-001 GraphQL Subscriptions
|
|
299
|
+
├─ PR #157: T-002 Contract Testing
|
|
300
|
+
├─ PR #158: T-003 Kubernetes Manifests
|
|
301
|
+
└─ ... (all independent PRs)
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
#### Merge Strategy
|
|
305
|
+
```
|
|
306
|
+
Option 1: Independent Merge (Default)
|
|
307
|
+
├─ Each PR merged independently when CI passes
|
|
308
|
+
├─ No conflicts expected (different modules/files)
|
|
309
|
+
└─ Fastest approach
|
|
310
|
+
|
|
311
|
+
Option 2: Priority-Based Merge
|
|
312
|
+
├─ High priority tasks merge first
|
|
313
|
+
├─ Others wait if potential conflicts
|
|
314
|
+
└─ Safer but slower
|
|
315
|
+
|
|
316
|
+
Option 3: Batch Merge
|
|
317
|
+
├─ Wait for wave completion
|
|
318
|
+
├─ Merge all at once
|
|
319
|
+
└─ Slowest but most controlled
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
**Default**: Option 1 (Independent Merge)
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
### 7. Launch Command Format
|
|
327
|
+
|
|
328
|
+
When user says:
|
|
329
|
+
```
|
|
330
|
+
"Execute implementation plan with maximum parallelization"
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
You execute:
|
|
334
|
+
```python
|
|
335
|
+
# Step 1: Analyze
|
|
336
|
+
tasks = analyze_all_tasks()
|
|
337
|
+
waves = build_dependency_waves(tasks)
|
|
338
|
+
|
|
339
|
+
# Step 2: Launch Wave 0 (top 7 by priority)
|
|
340
|
+
active_tasks = []
|
|
341
|
+
for task in waves[0][:MAX_CONCURRENT_TASKS]:
|
|
342
|
+
task_handle = Task(
|
|
343
|
+
subagent_type="plan-executor",
|
|
344
|
+
model="sonnet",
|
|
345
|
+
prompt=f"Execute task {task.id} autonomously. Report progress every 5 commits.",
|
|
346
|
+
run_in_background=True,
|
|
347
|
+
description=f"Execute {task.id}"
|
|
348
|
+
)
|
|
349
|
+
active_tasks.append(task_handle)
|
|
350
|
+
|
|
351
|
+
# Step 3: Monitor & refill slots
|
|
352
|
+
while not all_waves_complete():
|
|
353
|
+
# Check for completed tasks
|
|
354
|
+
for handle in active_tasks:
|
|
355
|
+
if is_complete(handle):
|
|
356
|
+
free_slot()
|
|
357
|
+
next_task = get_next_available_task(waves)
|
|
358
|
+
if next_task:
|
|
359
|
+
launch_task(next_task)
|
|
360
|
+
|
|
361
|
+
# Update dashboard
|
|
362
|
+
render_dashboard(active_tasks, waves)
|
|
363
|
+
|
|
364
|
+
# Wait 30 seconds
|
|
365
|
+
sleep(30)
|
|
366
|
+
|
|
367
|
+
# Step 4: Final report
|
|
368
|
+
print_completion_summary()
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
### 8. Configuration Options
|
|
374
|
+
|
|
375
|
+
User can customize:
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
# Max concurrent tasks
|
|
379
|
+
export MAX_PARALLEL_TASKS=7 # Default: 7, Max: 10
|
|
380
|
+
|
|
381
|
+
# Wave transition threshold
|
|
382
|
+
export WAVE_THRESHOLD=0.8 # Start next wave at 80%
|
|
383
|
+
|
|
384
|
+
# Merge strategy
|
|
385
|
+
export MERGE_STRATEGY="independent" # or "priority", "batch"
|
|
386
|
+
|
|
387
|
+
# Dashboard refresh rate
|
|
388
|
+
export DASHBOARD_REFRESH=30 # seconds
|
|
389
|
+
|
|
390
|
+
# Auto-retry limits
|
|
391
|
+
export MAX_TASK_RETRIES=3
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
### 9. Completion Summary
|
|
397
|
+
|
|
398
|
+
When all 45 tasks complete:
|
|
399
|
+
|
|
400
|
+
```
|
|
401
|
+
╔═══════════════════════════════════════════════════════════════╗
|
|
402
|
+
║ 🎉 APiGen 3.0 Implementation Complete! 🎉 ║
|
|
403
|
+
╠═══════════════════════════════════════════════════════════════╣
|
|
404
|
+
║ ║
|
|
405
|
+
║ ✅ All 45 tasks completed ║
|
|
406
|
+
║ ✅ 1,208 commits pushed ║
|
|
407
|
+
║ ✅ 45 PRs created and merged ║
|
|
408
|
+
║ ✅ All CI checks passed ║
|
|
409
|
+
║ ║
|
|
410
|
+
║ 📊 Execution Statistics: ║
|
|
411
|
+
║ Total time: 9 weeks 4 days ║
|
|
412
|
+
║ Average concurrency: 6.2 tasks/day ║
|
|
413
|
+
║ Commits/hour: 185 ║
|
|
414
|
+
║ Success rate: 93% (42 first-try, 3 retried) ║
|
|
415
|
+
║ ║
|
|
416
|
+
║ 🚀 Performance vs Sequential: ║
|
|
417
|
+
║ Sequential estimate: 120 weeks ║
|
|
418
|
+
║ Parallel actual: 10 weeks ║
|
|
419
|
+
║ Speed up: 12x faster! ⚡ ║
|
|
420
|
+
║ ║
|
|
421
|
+
║ 📦 Modules Updated: ║
|
|
422
|
+
║ apigen-core: 12 features ║
|
|
423
|
+
║ apigen-security: 8 features ║
|
|
424
|
+
║ apigen-codegen: 15 features ║
|
|
425
|
+
║ apigen-graphql: 3 features ║
|
|
426
|
+
║ apigen-grpc: 2 features ║
|
|
427
|
+
║ apigen-gateway: 3 features ║
|
|
428
|
+
║ apigen-example: 2 features ║
|
|
429
|
+
║ ║
|
|
430
|
+
║ 🎯 Quality Metrics: ║
|
|
431
|
+
║ Test coverage: 87% average ║
|
|
432
|
+
║ Tests added: 2,847 tests ║
|
|
433
|
+
║ Lines of code: +45,230 LOC ║
|
|
434
|
+
║ ║
|
|
435
|
+
╚═══════════════════════════════════════════════════════════════╝
|
|
436
|
+
|
|
437
|
+
Next steps:
|
|
438
|
+
1. Review all PRs in GitHub
|
|
439
|
+
2. Run full integration test suite
|
|
440
|
+
3. Update documentation
|
|
441
|
+
4. Release APiGen 3.0! 🚀
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
---
|
|
445
|
+
|
|
446
|
+
## Best Practices
|
|
447
|
+
|
|
448
|
+
1. **Start with 5-7 tasks** - Don't overload initially
|
|
449
|
+
2. **Monitor first wave** - Adjust concurrency based on results
|
|
450
|
+
3. **Trust the system** - Auto-fixes work most of the time
|
|
451
|
+
4. **Review PRs regularly** - Don't let them pile up
|
|
452
|
+
5. **Pause if needed** - System can resume anytime
|
|
453
|
+
|
|
454
|
+
---
|
|
455
|
+
|
|
456
|
+
## Safety Mechanisms
|
|
457
|
+
|
|
458
|
+
- ✅ Max 10 concurrent tasks (prevent overload)
|
|
459
|
+
- ✅ Dependency validation before launch
|
|
460
|
+
- ✅ Isolated branches (no conflicts)
|
|
461
|
+
- ✅ Auto-pause on critical errors
|
|
462
|
+
- ✅ Progress saved continuously
|
|
463
|
+
- ✅ Can resume from any point
|
|
464
|
+
|
|
465
|
+
---
|
|
466
|
+
|
|
467
|
+
## Example Session
|
|
468
|
+
|
|
469
|
+
```
|
|
470
|
+
User: "Execute implementation plan with maximum parallelization"
|
|
471
|
+
|
|
472
|
+
parallel-plan-executor:
|
|
473
|
+
|
|
474
|
+
1. ✅ Analyzing 45 tasks...
|
|
475
|
+
2. ✅ Built dependency graph (4 waves identified)
|
|
476
|
+
3. ✅ Wave 0: 31 independent tasks ready
|
|
477
|
+
4. ✅ Wave 1: 6 tasks (waiting for Wave 0)
|
|
478
|
+
5. ✅ Wave 2: 5 tasks (waiting for Wave 1)
|
|
479
|
+
6. ✅ Wave 3: 3 tasks (waiting for Wave 2)
|
|
480
|
+
|
|
481
|
+
🚀 Launching parallel execution with 7 concurrent slots...
|
|
482
|
+
|
|
483
|
+
[Shows real-time dashboard...]
|
|
484
|
+
|
|
485
|
+
[2 hours later]
|
|
486
|
+
✅ Wave 0: 25/31 complete (81%)
|
|
487
|
+
🔄 Wave 1: 3/6 started (dependencies cleared)
|
|
488
|
+
⏳ Wave 2: 0/5 (waiting)
|
|
489
|
+
|
|
490
|
+
[6 hours later]
|
|
491
|
+
✅ Wave 0: 31/31 complete (100%)
|
|
492
|
+
✅ Wave 1: 6/6 complete (100%)
|
|
493
|
+
🔄 Wave 2: 4/5 in progress
|
|
494
|
+
⏳ Wave 3: 0/3 (waiting)
|
|
495
|
+
|
|
496
|
+
[10 weeks later]
|
|
497
|
+
✅ All waves complete!
|
|
498
|
+
✅ 45/45 tasks done
|
|
499
|
+
✅ 1,208 commits
|
|
500
|
+
✅ Execution time: 9 weeks 4 days
|
|
501
|
+
🎉 12x faster than sequential!
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
---
|
|
505
|
+
|
|
506
|
+
**Ready to execute 45 tasks in parallel and reduce 120 weeks to 10 weeks!** 🚀
|