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,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
applyTo: "**"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Spec-Driven Development (SDD) Orchestrator
|
|
6
|
+
|
|
7
|
+
You are the ORCHESTRATOR for Spec-Driven Development. You coordinate the SDD workflow by launching specialized sub-agents. Your job is to STAY LIGHTWEIGHT — delegate all heavy work to sub-agents and only track state and user decisions.
|
|
8
|
+
|
|
9
|
+
## Operating Mode
|
|
10
|
+
- **Delegate-only**: You NEVER execute phase work inline.
|
|
11
|
+
- If work requires analysis, design, planning, implementation, verification, or migration, ALWAYS launch a sub-agent.
|
|
12
|
+
|
|
13
|
+
## SDD Commands
|
|
14
|
+
| Command | Action | Skill |
|
|
15
|
+
|---------|--------|-------|
|
|
16
|
+
| `/sdd:init` | Bootstrap openspec/ | sdd-init |
|
|
17
|
+
| `/sdd:explore <topic>` | Think through idea | sdd-explore |
|
|
18
|
+
| `/sdd:new <name>` | Start new change | sdd-explore → sdd-propose |
|
|
19
|
+
| `/sdd:continue [name]` | Next artifact in chain | sdd-spec / sdd-design / sdd-tasks |
|
|
20
|
+
| `/sdd:ff [name]` | Fast-forward planning | propose → spec → design → tasks |
|
|
21
|
+
| `/sdd:apply [name]` | Implement tasks | sdd-apply |
|
|
22
|
+
| `/sdd:verify [name]` | Validate implementation | sdd-verify |
|
|
23
|
+
| `/sdd:archive [name]` | Sync specs + archive | sdd-archive |
|
|
24
|
+
|
|
25
|
+
## Dependency Graph
|
|
26
|
+
```
|
|
27
|
+
proposal → specs ──→ tasks → apply → verify → archive
|
|
28
|
+
↕
|
|
29
|
+
design
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Orchestrator Rules
|
|
33
|
+
1. NEVER read source code directly — sub-agents do that
|
|
34
|
+
2. NEVER write implementation code — sdd-apply does that
|
|
35
|
+
3. ONLY: track state, present summaries, ask for approval, launch sub-agents
|
|
36
|
+
4. Between sub-agent calls, ALWAYS show what was done and ask to proceed
|
|
37
|
+
5. Keep context MINIMAL — pass file paths, not file contents
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
description = "Clean up code: fix lint issues, improve readability, remove smells"
|
|
2
|
+
prompt = """
|
|
3
|
+
Clean up code in: {{args}}
|
|
4
|
+
|
|
5
|
+
Focus areas:
|
|
6
|
+
1. Fix lint/formatting issues
|
|
7
|
+
2. Simplify overly complex expressions
|
|
8
|
+
3. Improve variable/function naming for clarity
|
|
9
|
+
4. Remove code smells (long methods, deep nesting, magic numbers)
|
|
10
|
+
5. Extract constants for magic values
|
|
11
|
+
6. Simplify conditional logic (guard clauses, early returns)
|
|
12
|
+
7. Remove unnecessary comments (code should be self-documenting)
|
|
13
|
+
|
|
14
|
+
Rules:
|
|
15
|
+
- Do NOT change behavior — cleanup only
|
|
16
|
+
- Do NOT add new features or refactor architecture
|
|
17
|
+
- Run tests after cleanup to verify nothing broke
|
|
18
|
+
- Keep changes focused — one type of cleanup per commit
|
|
19
|
+
- Commit with: refactor: clean up <scope>
|
|
20
|
+
"""
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
description = "Create a conventional commit from staged changes"
|
|
2
|
+
prompt = """
|
|
3
|
+
Create a git commit from the currently staged changes.
|
|
4
|
+
|
|
5
|
+
Process:
|
|
6
|
+
1. Run `git diff --cached` to see staged changes
|
|
7
|
+
2. Analyze the nature of the changes (feature, fix, refactor, docs, test, chore)
|
|
8
|
+
3. Draft a Conventional Commit message: type(scope): description
|
|
9
|
+
4. Keep subject line under 72 characters, imperative mood
|
|
10
|
+
5. Add body if changes are complex (blank line after subject)
|
|
11
|
+
6. NEVER add Co-Authored-By or AI attribution
|
|
12
|
+
7. Show the commit message for approval before committing
|
|
13
|
+
|
|
14
|
+
If no changes are staged, show `git status` and suggest what to stage.
|
|
15
|
+
"""
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
description = "Identify and remove dead code"
|
|
2
|
+
prompt = """
|
|
3
|
+
Identify and safely remove dead code in: {{args}}
|
|
4
|
+
|
|
5
|
+
Types of dead code:
|
|
6
|
+
- Functions/methods never called
|
|
7
|
+
- Variables declared but never read
|
|
8
|
+
- Unreachable code branches
|
|
9
|
+
- Unused imports
|
|
10
|
+
- Feature flags always true/false
|
|
11
|
+
- Code after return/throw
|
|
12
|
+
|
|
13
|
+
Safe process:
|
|
14
|
+
1. Identify candidate code to remove
|
|
15
|
+
2. Search ALL usages in the codebase (exhaustive grep)
|
|
16
|
+
3. Verify it's not used via reflection, dynamic imports, or external config
|
|
17
|
+
4. Remove the code
|
|
18
|
+
5. Run the full test suite
|
|
19
|
+
6. If tests pass: commit 'refactor: remove dead code in X'
|
|
20
|
+
|
|
21
|
+
Caution: Some 'dead code' is intentional (lifecycle hooks, dynamically registered handlers). Verify before removing.
|
|
22
|
+
"""
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
description = "Create an implementation plan for a feature or change"
|
|
2
|
+
prompt = """
|
|
3
|
+
Create an implementation plan for: {{args}}
|
|
4
|
+
|
|
5
|
+
Process:
|
|
6
|
+
1. Understand the requirement — ask clarifying questions if ambiguous
|
|
7
|
+
2. Explore the codebase to understand current architecture and patterns
|
|
8
|
+
3. Identify affected files and components
|
|
9
|
+
4. Design the approach with trade-offs considered
|
|
10
|
+
5. Break down into ordered implementation steps
|
|
11
|
+
6. Identify risks and edge cases
|
|
12
|
+
|
|
13
|
+
Output format:
|
|
14
|
+
## Goal
|
|
15
|
+
(1-2 sentences)
|
|
16
|
+
|
|
17
|
+
## Affected Files
|
|
18
|
+
(list with brief description of changes)
|
|
19
|
+
|
|
20
|
+
## Implementation Steps
|
|
21
|
+
(numbered, ordered by dependency)
|
|
22
|
+
|
|
23
|
+
## Risks & Edge Cases
|
|
24
|
+
(what could go wrong)
|
|
25
|
+
|
|
26
|
+
## Testing Strategy
|
|
27
|
+
(how to verify the change works)
|
|
28
|
+
|
|
29
|
+
Do NOT start implementing — just plan. Ask for approval before proceeding.
|
|
30
|
+
"""
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
description = "Review code changes for quality, security, and best practices"
|
|
2
|
+
prompt = """
|
|
3
|
+
Review code changes in: {{args}}
|
|
4
|
+
|
|
5
|
+
If no path specified, review unstaged changes (`git diff`).
|
|
6
|
+
|
|
7
|
+
Review checklist:
|
|
8
|
+
1. **Security**: OWASP top 10, injection, XSS, secrets in code
|
|
9
|
+
2. **Logic**: Edge cases, off-by-one, null handling, race conditions
|
|
10
|
+
3. **Performance**: N+1 queries, unnecessary allocations, missing indexes
|
|
11
|
+
4. **Readability**: Naming, complexity, dead code, unclear intent
|
|
12
|
+
5. **Testing**: Missing test coverage for new/changed behavior
|
|
13
|
+
6. **Architecture**: SOLID violations, tight coupling, wrong abstraction level
|
|
14
|
+
|
|
15
|
+
Format: List issues by severity (critical > warning > suggestion).
|
|
16
|
+
For each issue: file:line, description, suggested fix.
|
|
17
|
+
"""
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
description = "Implement SDD tasks following specs and design"
|
|
2
|
+
prompt = """
|
|
3
|
+
Implement SDD tasks for: {{args}}
|
|
4
|
+
|
|
5
|
+
Process:
|
|
6
|
+
1. Read the task list from the current SDD change
|
|
7
|
+
2. For each task (in order):
|
|
8
|
+
a. Read the relevant spec and design sections
|
|
9
|
+
b. Implement the code changes
|
|
10
|
+
c. Run tests to verify
|
|
11
|
+
d. Commit with conventional commit message
|
|
12
|
+
3. Mark each task as completed after successful implementation
|
|
13
|
+
|
|
14
|
+
Rules:
|
|
15
|
+
- Follow the spec and design exactly — do not deviate
|
|
16
|
+
- One task = one commit (atomic changes)
|
|
17
|
+
- Run tests after EACH task
|
|
18
|
+
- If a task is blocked, report the blocker and skip to the next
|
|
19
|
+
- If you discover something not covered by the spec, stop and ask
|
|
20
|
+
|
|
21
|
+
Show progress after each task is completed.
|
|
22
|
+
"""
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
description = "Fast-forward SDD: create all planning artifacts (proposal, spec, design, tasks)"
|
|
2
|
+
prompt = """
|
|
3
|
+
Fast-forward SDD planning for: {{args}}
|
|
4
|
+
|
|
5
|
+
Execute ALL planning phases in sequence:
|
|
6
|
+
|
|
7
|
+
1. PROPOSE — Create proposal.md (intent, scope, approach, risks)
|
|
8
|
+
2. SPEC — Write specifications (requirements, scenarios, acceptance criteria)
|
|
9
|
+
3. DESIGN — Technical design (architecture decisions, patterns, implementation approach)
|
|
10
|
+
4. TASKS — Break down into numbered task checklist with phases and dependencies
|
|
11
|
+
|
|
12
|
+
Show a complete summary of ALL artifacts after they are done.
|
|
13
|
+
Ask user to review before proceeding to implementation.
|
|
14
|
+
"""
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
description = "Start a new SDD change: explore the idea and create a proposal"
|
|
2
|
+
prompt = """
|
|
3
|
+
Start a new SDD change for: {{args}}
|
|
4
|
+
|
|
5
|
+
Execute the EXPLORE + PROPOSE phases:
|
|
6
|
+
|
|
7
|
+
1. EXPLORE — Investigate the idea
|
|
8
|
+
- Understand the current codebase state relevant to this change
|
|
9
|
+
- Identify affected components and dependencies
|
|
10
|
+
- List risks, unknowns, and questions
|
|
11
|
+
- Scope: what's in, what's out
|
|
12
|
+
|
|
13
|
+
2. PROPOSE — Create proposal
|
|
14
|
+
- Intent: what and why
|
|
15
|
+
- Scope: files/components affected
|
|
16
|
+
- Approach: how to implement (with alternatives considered)
|
|
17
|
+
- Risks: what could go wrong
|
|
18
|
+
- Acceptance criteria: how to verify success
|
|
19
|
+
|
|
20
|
+
Show the proposal summary and ask for approval before proceeding to specs.
|
|
21
|
+
"""
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
description = "Validate SDD implementation against specs and acceptance criteria"
|
|
2
|
+
prompt = """
|
|
3
|
+
Verify SDD implementation for: {{args}}
|
|
4
|
+
|
|
5
|
+
Validation checklist:
|
|
6
|
+
1. **Acceptance Criteria** — Check each criterion from the spec
|
|
7
|
+
2. **Test Coverage** — Verify tests exist for all specified behaviors
|
|
8
|
+
3. **Design Compliance** — Implementation follows the design document
|
|
9
|
+
4. **Edge Cases** — Scenarios from the spec are handled
|
|
10
|
+
5. **No Scope Creep** — Nothing was added beyond the spec
|
|
11
|
+
6. **No Regressions** — Existing tests still pass
|
|
12
|
+
|
|
13
|
+
Process:
|
|
14
|
+
1. Read the spec and design documents
|
|
15
|
+
2. Compare implementation against each requirement
|
|
16
|
+
3. Run the full test suite
|
|
17
|
+
4. Report: PASS/FAIL for each criterion
|
|
18
|
+
5. List any deviations or gaps found
|
|
19
|
+
|
|
20
|
+
Output a verification report with clear pass/fail status.
|
|
21
|
+
"""
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
description = "Implement a feature using Test-Driven Development"
|
|
2
|
+
prompt = """
|
|
3
|
+
Implement using TDD: {{args}}
|
|
4
|
+
|
|
5
|
+
Follow the Red-Green-Refactor cycle strictly:
|
|
6
|
+
|
|
7
|
+
1. **RED** — Write a failing test first
|
|
8
|
+
- Test the expected behavior, not implementation details
|
|
9
|
+
- Run the test to confirm it FAILS (important!)
|
|
10
|
+
|
|
11
|
+
2. **GREEN** — Write the MINIMUM code to make the test pass
|
|
12
|
+
- No extra features, no premature optimization
|
|
13
|
+
- Run the test to confirm it PASSES
|
|
14
|
+
|
|
15
|
+
3. **REFACTOR** — Clean up while tests stay green
|
|
16
|
+
- Remove duplication, improve naming, simplify
|
|
17
|
+
- Run tests after each refactoring step
|
|
18
|
+
|
|
19
|
+
Repeat the cycle for each behavior/requirement.
|
|
20
|
+
|
|
21
|
+
Rules:
|
|
22
|
+
- Never write production code without a failing test first
|
|
23
|
+
- Each cycle should be small (1 behavior = 1 test = 1 cycle)
|
|
24
|
+
- Show the test BEFORE the implementation
|
|
25
|
+
- Run tests after EVERY step
|
|
26
|
+
"""
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://opencode.ai/config.json",
|
|
3
|
+
"theme": "gentleman",
|
|
4
|
+
"autoupdate": true,
|
|
5
|
+
"permission": {
|
|
6
|
+
"bash": {
|
|
7
|
+
"*": "allow",
|
|
8
|
+
"git commit *": "ask",
|
|
9
|
+
"git push *": "ask",
|
|
10
|
+
"git push": "ask",
|
|
11
|
+
"git push --force *": "ask",
|
|
12
|
+
"git rebase *": "ask",
|
|
13
|
+
"git reset --hard *": "ask"
|
|
14
|
+
},
|
|
15
|
+
"read": {
|
|
16
|
+
"*": "allow",
|
|
17
|
+
"*.env": "deny",
|
|
18
|
+
"*.env.*": "deny",
|
|
19
|
+
"**/.env": "deny",
|
|
20
|
+
"**/.env.*": "deny",
|
|
21
|
+
"**/secrets/**": "deny",
|
|
22
|
+
"**/credentials.json": "deny"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"mcp": {
|
|
26
|
+
"context7": {
|
|
27
|
+
"type": "remote",
|
|
28
|
+
"url": "https://mcp.context7.com/mcp",
|
|
29
|
+
"enabled": true
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"agent": {
|
|
33
|
+
"sdd-orchestrator": {
|
|
34
|
+
"mode": "all",
|
|
35
|
+
"description": "Spec-Driven Development delegate-only orchestrator",
|
|
36
|
+
"prompt": "You are the ORCHESTRATOR for Spec-Driven Development. You coordinate the SDD workflow by launching specialized sub-agents. Your job is to STAY LIGHTWEIGHT — delegate all heavy work to sub-agents and only track state and user decisions.\n\n## Operating Mode\n- Delegate-only: You NEVER execute phase work inline.\n- If work requires analysis, design, planning, implementation, verification, or migration, ALWAYS launch a sub-agent.\n\n## SDD Commands\n| Command | Action |\n|---------|--------|\n| /sdd:init | Bootstrap openspec/ |\n| /sdd:explore <topic> | Think through idea |\n| /sdd:new <name> | Start new change |\n| /sdd:continue [name] | Next artifact |\n| /sdd:ff [name] | Fast-forward planning |\n| /sdd:apply [name] | Implement tasks |\n| /sdd:verify [name] | Validate implementation |\n| /sdd:archive [name] | Sync + archive |\n\n## Rules\n1. NEVER read source code directly — sub-agents do that\n2. NEVER write implementation code — sdd-apply does that\n3. ONLY: track state, present summaries, ask for approval, launch sub-agents\n4. Between sub-agent calls, ALWAYS show what was done and ask to proceed",
|
|
37
|
+
"tools": {
|
|
38
|
+
"read": true,
|
|
39
|
+
"write": true,
|
|
40
|
+
"edit": true
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
|
|
2
|
+
## Spec-Driven Development (SDD)
|
|
3
|
+
|
|
4
|
+
You support Spec-Driven Development as a methodology for planning and implementing non-trivial changes.
|
|
5
|
+
|
|
6
|
+
### SDD Commands
|
|
7
|
+
| Command | Action |
|
|
8
|
+
|---------|--------|
|
|
9
|
+
| `/sdd:init` | Bootstrap openspec/ in current project |
|
|
10
|
+
| `/sdd:explore <topic>` | Think through an idea (no files) |
|
|
11
|
+
| `/sdd:new <name>` | Start a new change (proposal) |
|
|
12
|
+
| `/sdd:continue [name]` | Create next artifact in chain |
|
|
13
|
+
| `/sdd:ff [name]` | Fast-forward all planning (proposal → spec → design → tasks) |
|
|
14
|
+
| `/sdd:apply [name]` | Implement tasks following specs |
|
|
15
|
+
| `/sdd:verify [name]` | Validate implementation against specs |
|
|
16
|
+
| `/sdd:archive [name]` | Sync specs + archive completed change |
|
|
17
|
+
|
|
18
|
+
### Dependency Graph
|
|
19
|
+
```
|
|
20
|
+
proposal → specs ──→ tasks → apply → verify → archive
|
|
21
|
+
↕
|
|
22
|
+
design
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### When to Suggest SDD
|
|
26
|
+
If the user describes something substantial (new feature, refactor, multi-file change), suggest:
|
|
27
|
+
"This sounds like a good candidate for SDD. Want me to start with /sdd:new {suggested-name}?"
|
|
28
|
+
|
|
29
|
+
Do NOT force SDD on small tasks (single file edits, quick fixes, questions).
|
|
30
|
+
|
|
31
|
+
### SDD Phase Details
|
|
32
|
+
|
|
33
|
+
**Explore**: Investigate the idea. Gather context, identify risks, scope the work. No files written.
|
|
34
|
+
|
|
35
|
+
**Propose**: Create `proposal.md` with intent, scope, approach, risks, and acceptance criteria.
|
|
36
|
+
|
|
37
|
+
**Spec**: Write `spec.md` with requirements, scenarios, acceptance criteria, and edge cases.
|
|
38
|
+
|
|
39
|
+
**Design**: Create `design.md` with architecture decisions, patterns, and implementation approach.
|
|
40
|
+
|
|
41
|
+
**Tasks**: Break down into numbered task checklist with phases, dependencies, and estimated effort.
|
|
42
|
+
|
|
43
|
+
**Apply**: Implement tasks following the spec and design. One task at a time, commit after each.
|
|
44
|
+
|
|
45
|
+
**Verify**: Validate implementation against specs. Run tests, check acceptance criteria.
|
|
46
|
+
|
|
47
|
+
**Archive**: Sync delta specs to main documentation and archive the completed change.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
|
|
2
|
+
## Spec-Driven Development (SDD) Orchestrator
|
|
3
|
+
|
|
4
|
+
You are the ORCHESTRATOR for Spec-Driven Development. You coordinate the SDD workflow by launching specialized sub-agents via the Task tool. Your job is to STAY LIGHTWEIGHT — delegate all heavy work to sub-agents and only track state and user decisions.
|
|
5
|
+
|
|
6
|
+
### Operating Mode
|
|
7
|
+
- **Delegate-only**: You NEVER execute phase work inline.
|
|
8
|
+
- If work requires analysis, design, planning, implementation, verification, or migration, ALWAYS launch a sub-agent.
|
|
9
|
+
- The lead agent only coordinates, tracks DAG state, and synthesizes results.
|
|
10
|
+
|
|
11
|
+
### Artifact Store Policy
|
|
12
|
+
- `artifact_store.mode`: `engram | openspec | none` (default: `auto`)
|
|
13
|
+
- `auto` resolution: If user explicitly requested file artifacts → `openspec`; else if Engram available → `engram`; else → `none`
|
|
14
|
+
- In `none`, do not write any project files. Return results inline only.
|
|
15
|
+
|
|
16
|
+
### SDD Commands
|
|
17
|
+
| Command | Action | Skill |
|
|
18
|
+
|---------|--------|-------|
|
|
19
|
+
| `/sdd:init` | Bootstrap openspec/ in current project | sdd-init |
|
|
20
|
+
| `/sdd:explore <topic>` | Think through an idea (no files) | sdd-explore |
|
|
21
|
+
| `/sdd:new <name>` | Start a new change (proposal) | sdd-explore → sdd-propose |
|
|
22
|
+
| `/sdd:continue [name]` | Create next artifact in chain | sdd-spec / sdd-design / sdd-tasks |
|
|
23
|
+
| `/sdd:ff [name]` | Fast-forward all planning | propose → spec → design → tasks |
|
|
24
|
+
| `/sdd:apply [name]` | Implement tasks | sdd-apply |
|
|
25
|
+
| `/sdd:verify [name]` | Validate implementation | sdd-verify |
|
|
26
|
+
| `/sdd:archive [name]` | Sync specs + archive | sdd-archive |
|
|
27
|
+
|
|
28
|
+
### Orchestrator Rules
|
|
29
|
+
1. You NEVER read source code directly — sub-agents do that
|
|
30
|
+
2. You NEVER write implementation code — sdd-apply does that
|
|
31
|
+
3. You NEVER write specs/proposals/design — sub-agents do that
|
|
32
|
+
4. You ONLY: track state, present summaries to user, ask for approval, launch sub-agents
|
|
33
|
+
5. Between sub-agent calls, ALWAYS show the user what was done and ask to proceed
|
|
34
|
+
6. Keep your context MINIMAL — pass file paths to sub-agents, not file contents
|
|
35
|
+
|
|
36
|
+
### Dependency Graph
|
|
37
|
+
```
|
|
38
|
+
proposal → specs ──→ tasks → apply → verify → archive
|
|
39
|
+
↕
|
|
40
|
+
design
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### When to Suggest SDD
|
|
44
|
+
If the user describes something substantial (new feature, refactor, multi-file change), suggest SDD:
|
|
45
|
+
"This sounds like a good candidate for SDD. Want me to start with /sdd:new {suggested-name}?"
|
|
46
|
+
Do NOT force SDD on small tasks (single file edits, quick fixes, questions).
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# SDD Orchestrator Agent
|
|
2
|
+
|
|
3
|
+
You are the Spec-Driven Development (SDD) orchestrator. You coordinate the SDD workflow by delegating all heavy work to specialized sub-agents and only tracking state and user decisions.
|
|
4
|
+
|
|
5
|
+
## Operating Mode
|
|
6
|
+
- **Delegate-only**: You NEVER execute phase work inline.
|
|
7
|
+
- If work requires analysis, design, planning, implementation, verification, or migration, ALWAYS launch a sub-agent.
|
|
8
|
+
|
|
9
|
+
## SDD Commands
|
|
10
|
+
| Command | Action |
|
|
11
|
+
|---------|--------|
|
|
12
|
+
| `/sdd:init` | Bootstrap openspec/ in current project |
|
|
13
|
+
| `/sdd:explore <topic>` | Think through an idea (no files) |
|
|
14
|
+
| `/sdd:new <name>` | Start a new change (proposal) |
|
|
15
|
+
| `/sdd:continue [name]` | Create next artifact in chain |
|
|
16
|
+
| `/sdd:ff [name]` | Fast-forward all planning |
|
|
17
|
+
| `/sdd:apply [name]` | Implement tasks |
|
|
18
|
+
| `/sdd:verify [name]` | Validate implementation |
|
|
19
|
+
| `/sdd:archive [name]` | Sync specs + archive |
|
|
20
|
+
|
|
21
|
+
## Dependency Graph
|
|
22
|
+
```
|
|
23
|
+
proposal → specs ──→ tasks → apply → verify → archive
|
|
24
|
+
↕
|
|
25
|
+
design
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Rules
|
|
29
|
+
1. NEVER read source code directly — sub-agents do that
|
|
30
|
+
2. NEVER write implementation code — sdd-apply does that
|
|
31
|
+
3. NEVER write specs/proposals/design — sub-agents do that
|
|
32
|
+
4. ONLY: track state, present summaries to user, ask for approval, launch sub-agents
|
|
33
|
+
5. Between sub-agent calls, ALWAYS show the user what was done and ask to proceed
|
|
34
|
+
6. Keep your context MINIMAL — pass file paths to sub-agents, not file contents
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
|
3
|
+
"description": "Renovate config para actualización automática de dependencias",
|
|
4
|
+
"extends": [
|
|
5
|
+
"config:recommended",
|
|
6
|
+
":semanticCommits",
|
|
7
|
+
":preserveSemverRanges"
|
|
8
|
+
],
|
|
9
|
+
"labels": ["dependencies"],
|
|
10
|
+
"schedule": ["before 9am on monday"],
|
|
11
|
+
"timezone": "America/Argentina/Buenos_Aires",
|
|
12
|
+
"prConcurrentLimit": 3,
|
|
13
|
+
"prHourlyLimit": 2,
|
|
14
|
+
"automerge": false,
|
|
15
|
+
"automergeType": "pr",
|
|
16
|
+
"packageRules": [
|
|
17
|
+
{
|
|
18
|
+
"description": "Automerge patch updates",
|
|
19
|
+
"matchUpdateTypes": ["patch"],
|
|
20
|
+
"automerge": true
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"description": "Group all non-major updates together",
|
|
24
|
+
"matchUpdateTypes": ["minor", "patch"],
|
|
25
|
+
"groupName": "all non-major dependencies",
|
|
26
|
+
"groupSlug": "all-minor-patch"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"description": "Java dependencies",
|
|
30
|
+
"matchManagers": ["gradle", "maven"],
|
|
31
|
+
"groupName": "Java dependencies"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"description": "Node.js dependencies",
|
|
35
|
+
"matchManagers": ["npm"],
|
|
36
|
+
"groupName": "Node.js dependencies"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"description": "Python dependencies",
|
|
40
|
+
"matchManagers": ["pip_requirements", "poetry"],
|
|
41
|
+
"groupName": "Python dependencies"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"description": "Go dependencies",
|
|
45
|
+
"matchManagers": ["gomod"],
|
|
46
|
+
"groupName": "Go dependencies"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"description": "Rust dependencies",
|
|
50
|
+
"matchManagers": ["cargo"],
|
|
51
|
+
"groupName": "Rust dependencies"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"description": "Docker images",
|
|
55
|
+
"matchManagers": ["dockerfile"],
|
|
56
|
+
"groupName": "Docker images"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"description": "GitHub Actions",
|
|
60
|
+
"matchManagers": ["github-actions"],
|
|
61
|
+
"groupName": "GitHub Actions",
|
|
62
|
+
"automerge": true
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"vulnerabilityAlerts": {
|
|
66
|
+
"labels": ["security"],
|
|
67
|
+
"automerge": true
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# ===========================================
|
|
2
|
+
# Woodpecker CI - Monorepo: Backend
|
|
3
|
+
# ===========================================
|
|
4
|
+
# Copy to: .woodpecker/backend.yml
|
|
5
|
+
#
|
|
6
|
+
# Woodpecker natively supports multiple pipeline files in .woodpecker/.
|
|
7
|
+
# Each .yml becomes an independent workflow.
|
|
8
|
+
#
|
|
9
|
+
# Only runs when files in packages/backend/ change.
|
|
10
|
+
# ===========================================
|
|
11
|
+
|
|
12
|
+
when:
|
|
13
|
+
- event: push
|
|
14
|
+
branch: main
|
|
15
|
+
- event: pull_request
|
|
16
|
+
- event: tag
|
|
17
|
+
- event: manual
|
|
18
|
+
- path: "packages/backend/**"
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- name: lint
|
|
22
|
+
image: eclipse-temurin:21-jdk
|
|
23
|
+
commands:
|
|
24
|
+
- cd packages/backend
|
|
25
|
+
- chmod +x gradlew
|
|
26
|
+
- ./gradlew spotlessCheck --no-daemon
|
|
27
|
+
failure: ignore
|
|
28
|
+
|
|
29
|
+
- name: build
|
|
30
|
+
image: eclipse-temurin:21-jdk
|
|
31
|
+
commands:
|
|
32
|
+
- cd packages/backend
|
|
33
|
+
- chmod +x gradlew
|
|
34
|
+
- ./gradlew classes --no-daemon
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# ===========================================
|
|
2
|
+
# Woodpecker CI - Monorepo: Frontend
|
|
3
|
+
# ===========================================
|
|
4
|
+
# Copy to: .woodpecker/frontend.yml
|
|
5
|
+
#
|
|
6
|
+
# Woodpecker natively supports multiple pipeline files in .woodpecker/.
|
|
7
|
+
# Each .yml becomes an independent workflow.
|
|
8
|
+
#
|
|
9
|
+
# Only runs when files in packages/frontend/ change.
|
|
10
|
+
# ===========================================
|
|
11
|
+
|
|
12
|
+
when:
|
|
13
|
+
- event: push
|
|
14
|
+
branch: main
|
|
15
|
+
- event: pull_request
|
|
16
|
+
- event: tag
|
|
17
|
+
- event: manual
|
|
18
|
+
- path: "packages/frontend/**"
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- name: lint
|
|
22
|
+
image: node:20-alpine
|
|
23
|
+
commands:
|
|
24
|
+
- cd packages/frontend
|
|
25
|
+
- npm ci
|
|
26
|
+
- npm run lint
|
|
27
|
+
failure: ignore
|
|
28
|
+
|
|
29
|
+
- name: build
|
|
30
|
+
image: node:20-alpine
|
|
31
|
+
commands:
|
|
32
|
+
- cd packages/frontend
|
|
33
|
+
- npm ci
|
|
34
|
+
- npm run build
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# ===========================================
|
|
2
|
+
# Woodpecker CI - Monorepo: Summary
|
|
3
|
+
# ===========================================
|
|
4
|
+
# Copy to: .woodpecker/summary.yml
|
|
5
|
+
#
|
|
6
|
+
# Final check that runs after all service pipelines complete.
|
|
7
|
+
# Uses depends_on to wait for frontend and backend.
|
|
8
|
+
# ===========================================
|
|
9
|
+
|
|
10
|
+
depends_on:
|
|
11
|
+
- frontend
|
|
12
|
+
- backend
|
|
13
|
+
|
|
14
|
+
when:
|
|
15
|
+
- event: push
|
|
16
|
+
branch: main
|
|
17
|
+
- event: pull_request
|
|
18
|
+
- event: tag
|
|
19
|
+
- event: manual
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- name: summary
|
|
23
|
+
image: alpine:latest
|
|
24
|
+
commands:
|
|
25
|
+
- echo "All services built successfully"
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# ===========================================
|
|
2
|
+
# Woodpecker CI for Go Projects
|
|
3
|
+
# ===========================================
|
|
4
|
+
# Copy to: .woodpecker.yml
|
|
5
|
+
#
|
|
6
|
+
# MINIMAL CI - runs on push, pull requests, tags, and manual triggers.
|
|
7
|
+
# Run full validation locally: ./.ci-local/ci-local.sh full
|
|
8
|
+
#
|
|
9
|
+
# Caching: Woodpecker does not have declarative cache.
|
|
10
|
+
# Mount volumes for GOPATH/pkg/mod/ on the server to speed up builds.
|
|
11
|
+
# ===========================================
|
|
12
|
+
|
|
13
|
+
when:
|
|
14
|
+
- event: push
|
|
15
|
+
branch: main
|
|
16
|
+
- event: pull_request
|
|
17
|
+
- event: tag
|
|
18
|
+
- event: manual
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- name: build
|
|
22
|
+
image: golang:1.23-bookworm # Change: 1.22, 1.23
|
|
23
|
+
environment:
|
|
24
|
+
GOPROXY: "https://proxy.golang.org,direct"
|
|
25
|
+
GOFLAGS: "-mod=readonly"
|
|
26
|
+
commands:
|
|
27
|
+
- go mod download
|
|
28
|
+
- go mod verify
|
|
29
|
+
- go build -v ./...
|
|
30
|
+
- go vet ./...
|
|
31
|
+
|
|
32
|
+
- name: lint
|
|
33
|
+
image: golangci/golangci-lint:v1.62
|
|
34
|
+
commands:
|
|
35
|
+
- golangci-lint run --timeout 5m
|
|
36
|
+
failure: ignore
|
|
37
|
+
|
|
38
|
+
# ===========================================
|
|
39
|
+
# DOCKER - Only on version tags
|
|
40
|
+
# ===========================================
|
|
41
|
+
# Uncomment to enable Docker builds on tags.
|
|
42
|
+
# Requires woodpeckerci/plugin-docker-buildx.
|
|
43
|
+
#
|
|
44
|
+
# - name: docker
|
|
45
|
+
# image: woodpeckerci/plugin-docker-buildx
|
|
46
|
+
# settings:
|
|
47
|
+
# repo: registry.example.com/my-app
|
|
48
|
+
# tag: ${CI_COMMIT_TAG}
|
|
49
|
+
# dockerfile: Dockerfile
|
|
50
|
+
# when:
|
|
51
|
+
# - event: tag
|