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,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: compound
|
|
3
|
+
description: Post-completion workflow — summarize what was learned, append to learnings.md, and suggest CLAUDE.md improvements. Triggered after significant task completion.
|
|
4
|
+
category: workflows
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /workflows:compound
|
|
8
|
+
|
|
9
|
+
Capture learnings after completing significant work and improve project AI configuration.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/workflows:compound [<feature-name>]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Run this after completing a feature, fixing a complex bug, or finishing a refactoring session.
|
|
18
|
+
|
|
19
|
+
## What It Does
|
|
20
|
+
|
|
21
|
+
1. **Summarizes the work**: What was built, changed, or discovered
|
|
22
|
+
2. **Extracts learnings**: Patterns found, mistakes made, approaches that worked
|
|
23
|
+
3. **Appends to learnings.md**: Persistent knowledge base at project root
|
|
24
|
+
4. **Suggests CLAUDE.md improvements**: 1-3 specific, actionable improvements
|
|
25
|
+
|
|
26
|
+
## PostToolUse Pattern
|
|
27
|
+
|
|
28
|
+
This command is designed to trigger after significant task completion. Add to your workflow:
|
|
29
|
+
```
|
|
30
|
+
After every /workflows:work completion → run /workflows:compound
|
|
31
|
+
After every major debugging session → run /workflows:compound
|
|
32
|
+
After every architecture decision → run /workflows:compound
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Process
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
STEP 1: Review what was just completed
|
|
39
|
+
→ Read tasks/<feature-name>/plan.md (if exists)
|
|
40
|
+
→ Read tasks/<feature-name>/files-edited.md (if exists)
|
|
41
|
+
→ Reflect on the conversation/session
|
|
42
|
+
|
|
43
|
+
STEP 2: Synthesize learnings
|
|
44
|
+
→ What patterns were discovered?
|
|
45
|
+
→ What went wrong and how was it resolved?
|
|
46
|
+
→ What would you do differently next time?
|
|
47
|
+
→ What project-specific context would help future sessions?
|
|
48
|
+
|
|
49
|
+
STEP 3: Append to learnings.md
|
|
50
|
+
→ Create if it doesn't exist
|
|
51
|
+
→ Add dated entry with feature name
|
|
52
|
+
|
|
53
|
+
STEP 4: Suggest CLAUDE.md improvements
|
|
54
|
+
→ Review current CLAUDE.md
|
|
55
|
+
→ Propose 1-3 specific additions or changes
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## learnings.md Format
|
|
59
|
+
|
|
60
|
+
```markdown
|
|
61
|
+
## YYYY-MM-DD — <feature-name or topic>
|
|
62
|
+
|
|
63
|
+
### What Was Done
|
|
64
|
+
[Brief summary of work completed]
|
|
65
|
+
|
|
66
|
+
### Key Learnings
|
|
67
|
+
- [Learning 1: specific and reusable]
|
|
68
|
+
- [Learning 2: specific and reusable]
|
|
69
|
+
|
|
70
|
+
### What Went Wrong
|
|
71
|
+
- [Issue encountered and how it was resolved]
|
|
72
|
+
|
|
73
|
+
### Patterns to Reuse
|
|
74
|
+
- [Approach that worked well and should be applied again]
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## CLAUDE.md Suggestion Format
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Suggested CLAUDE.md improvements:
|
|
81
|
+
|
|
82
|
+
1. **Add command to run tests**: `npm test` — discovered during this session that
|
|
83
|
+
tests need to be run with --watch=false in CI context
|
|
84
|
+
|
|
85
|
+
2. **Document auth pattern**: Project uses custom JWT middleware — add to CLAUDE.md
|
|
86
|
+
so future sessions don't re-discover this
|
|
87
|
+
|
|
88
|
+
3. **Note environment variables**: DATABASE_URL must be set — add to setup section
|
|
89
|
+
```
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan
|
|
3
|
+
description: Decompose a feature into structured tasks with goal, acceptance criteria, estimates, risks, and dependencies. Saves to tasks/<feature-name>/plan.md
|
|
4
|
+
category: workflows
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /workflows:plan
|
|
8
|
+
|
|
9
|
+
Decompose a feature or task into a structured, actionable plan before writing any code.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/workflows:plan <feature-name>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## What It Does
|
|
18
|
+
|
|
19
|
+
1. **Clarifies the goal**: What problem does this solve? What's the success state?
|
|
20
|
+
2. **Defines acceptance criteria**: Concrete, testable conditions for "done"
|
|
21
|
+
3. **Breaks down tasks**: Ordered list with time estimates and dependencies
|
|
22
|
+
4. **Identifies risks**: What could go wrong and how to mitigate it
|
|
23
|
+
5. **Saves the plan**: Writes to `tasks/<feature-name>/plan.md`
|
|
24
|
+
|
|
25
|
+
## Process
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
STEP 1: Ask clarifying questions if the feature is ambiguous
|
|
29
|
+
STEP 2: Draft the plan using the template below
|
|
30
|
+
STEP 3: Save to tasks/<feature-name>/plan.md
|
|
31
|
+
STEP 4: Confirm with user before starting implementation
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Plan Template
|
|
35
|
+
|
|
36
|
+
```markdown
|
|
37
|
+
# Plan: <feature-name>
|
|
38
|
+
|
|
39
|
+
## Goal
|
|
40
|
+
[One paragraph: what this feature does and why it matters]
|
|
41
|
+
|
|
42
|
+
## Acceptance Criteria
|
|
43
|
+
- [ ] [Testable condition 1]
|
|
44
|
+
- [ ] [Testable condition 2]
|
|
45
|
+
- [ ] [Testable condition 3]
|
|
46
|
+
|
|
47
|
+
## Task List
|
|
48
|
+
|
|
49
|
+
| # | Task | Estimate | Depends On | Status |
|
|
50
|
+
|---|------|----------|------------|--------|
|
|
51
|
+
| 1 | [Task description] | 30m | — | pending |
|
|
52
|
+
| 2 | [Task description] | 1h | 1 | pending |
|
|
53
|
+
| 3 | [Task description] | 45m | 2 | pending |
|
|
54
|
+
|
|
55
|
+
## Risks
|
|
56
|
+
|
|
57
|
+
| Risk | Probability | Impact | Mitigation |
|
|
58
|
+
|------|-------------|--------|------------|
|
|
59
|
+
| [Risk 1] | Low/Med/High | Low/Med/High | [How to handle it] |
|
|
60
|
+
|
|
61
|
+
## Dependencies
|
|
62
|
+
- External services: [list any]
|
|
63
|
+
- Other features/branches: [list any]
|
|
64
|
+
- Team: [list any people/approvals needed]
|
|
65
|
+
|
|
66
|
+
## Notes
|
|
67
|
+
[Anything else relevant to implementation]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Output Location
|
|
71
|
+
|
|
72
|
+
Plan is saved to: `tasks/<feature-name>/plan.md`
|
|
73
|
+
|
|
74
|
+
If the directory doesn't exist, create it:
|
|
75
|
+
```bash
|
|
76
|
+
mkdir -p tasks/<feature-name>
|
|
77
|
+
```
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review
|
|
3
|
+
description: Multi-perspective code review using code-reviewer and security-auditor agents on staged changes. Reads review policy before reviewing. Outputs inline comments with severity.
|
|
4
|
+
category: workflows
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /workflows:review
|
|
8
|
+
|
|
9
|
+
Run a multi-perspective review on staged changes before committing or opening a PR.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/workflows:review [--scope staged|branch|<file-path>]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## What It Does
|
|
18
|
+
|
|
19
|
+
1. **Loads review policy**: Reads `.ai-config/prompts/review-policy.md` for project standards
|
|
20
|
+
2. **Gathers changes**: Gets staged diff or branch diff depending on scope
|
|
21
|
+
3. **Runs code-reviewer perspective**: Quality, SOLID, DRY, naming, test coverage
|
|
22
|
+
4. **Runs security-auditor perspective**: OWASP, injection, auth/authz, secrets
|
|
23
|
+
5. **Outputs consolidated report**: Inline comments grouped by file with severity
|
|
24
|
+
|
|
25
|
+
## Process
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
STEP 1: Load .ai-config/prompts/review-policy.md (if exists)
|
|
29
|
+
→ Use project-specific standards for what constitutes a violation
|
|
30
|
+
|
|
31
|
+
STEP 2: Gather diff
|
|
32
|
+
git diff --staged # for staged changes
|
|
33
|
+
git diff main...HEAD # for branch changes
|
|
34
|
+
|
|
35
|
+
STEP 3: Code Quality Review (code-reviewer agent)
|
|
36
|
+
→ Check each changed file for quality issues
|
|
37
|
+
|
|
38
|
+
STEP 4: Security Review (security-auditor agent)
|
|
39
|
+
→ Check for vulnerabilities, secrets, auth issues
|
|
40
|
+
|
|
41
|
+
STEP 5: Consolidate and output report
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Output Format
|
|
45
|
+
|
|
46
|
+
### Per-file findings:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
## src/path/to/file.ts
|
|
50
|
+
|
|
51
|
+
🔴 [CRITICAL] line 42 — Hardcoded secret in source
|
|
52
|
+
Problem: API key visible in source code
|
|
53
|
+
Fix: Move to environment variable, add to .gitignore
|
|
54
|
+
|
|
55
|
+
🟡 [WARNING] line 87 — Function violates Single Responsibility
|
|
56
|
+
Problem: processPayment() handles validation + DB + email
|
|
57
|
+
Fix: Extract into validatePayment(), savePayment(), notifyUser()
|
|
58
|
+
|
|
59
|
+
🔵 [SUGGESTION] line 103 — Variable name is unclear
|
|
60
|
+
Problem: `d` is not descriptive
|
|
61
|
+
Fix: Rename to `durationMs` or `delaySeconds`
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Summary block:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
## Review Summary
|
|
68
|
+
Critical: N | Warnings: N | Suggestions: N
|
|
69
|
+
Recommendation: ✅ APPROVE | ⚠️ APPROVE WITH NOTES | ❌ REQUEST CHANGES
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Severity Guide
|
|
73
|
+
|
|
74
|
+
| Severity | Symbol | Meaning | Action |
|
|
75
|
+
|----------|--------|---------|--------|
|
|
76
|
+
| Critical | 🔴 | Bug, security, data loss | Must fix before merge |
|
|
77
|
+
| Warning | 🟡 | Quality, SOLID, test gap | Should fix |
|
|
78
|
+
| Suggestion | 🔵 | Style, naming, minor | Consider fixing |
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: work
|
|
3
|
+
description: Execute the current plan by creating a git worktree, checking off tasks, and tracking files edited. Reads plan from tasks/<feature-name>/plan.md
|
|
4
|
+
category: workflows
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /workflows:work
|
|
8
|
+
|
|
9
|
+
Execute the plan for a feature, tracking progress and edited files as you go.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/workflows:work <feature-name>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## What It Does
|
|
18
|
+
|
|
19
|
+
1. **Reads the plan**: Loads `tasks/<feature-name>/plan.md`
|
|
20
|
+
2. **Creates git worktree**: Isolates work in a dedicated branch/worktree
|
|
21
|
+
3. **Executes tasks in order**: Respects task dependencies from the plan
|
|
22
|
+
4. **Tracks progress**: Checks off tasks as they complete
|
|
23
|
+
5. **Records file changes**: Appends to `tasks/<feature-name>/files-edited.md`
|
|
24
|
+
|
|
25
|
+
## Process
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
STEP 1: Read tasks/<feature-name>/plan.md
|
|
29
|
+
→ If not found, prompt user to run /workflows:plan first
|
|
30
|
+
|
|
31
|
+
STEP 2: Create git worktree
|
|
32
|
+
git worktree add ../worktrees/<feature-name> -b feature/<feature-name>
|
|
33
|
+
|
|
34
|
+
STEP 3: For each task in the plan (in dependency order):
|
|
35
|
+
a. Mark task as "in-progress" in the plan
|
|
36
|
+
b. Implement the task
|
|
37
|
+
c. Run tests if applicable
|
|
38
|
+
d. Mark task as "done" ✅ in plan.md
|
|
39
|
+
e. Append edited files to files-edited.md
|
|
40
|
+
|
|
41
|
+
STEP 4: When all tasks complete, summarize what was done
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## files-edited.md Format
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
## Files Changed — <feature-name>
|
|
48
|
+
|
|
49
|
+
### <task-name>
|
|
50
|
+
- `src/path/to/file.ts` — [what changed]
|
|
51
|
+
- `tests/path/to/file.test.ts` — [what changed]
|
|
52
|
+
|
|
53
|
+
### <next-task>
|
|
54
|
+
- ...
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Git Worktree Commands
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Create worktree for the feature
|
|
61
|
+
git worktree add ../worktrees/<feature-name> -b feature/<feature-name>
|
|
62
|
+
|
|
63
|
+
# List active worktrees
|
|
64
|
+
git worktree list
|
|
65
|
+
|
|
66
|
+
# Remove worktree after merging
|
|
67
|
+
git worktree remove ../worktrees/<feature-name>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Rules
|
|
71
|
+
|
|
72
|
+
- Do not skip tasks unless they're blocked (document why in the plan)
|
|
73
|
+
- Commit after each logical unit of work: `git commit -m "feat: <task-name>"`
|
|
74
|
+
- Update `tasks/<feature-name>/plan.md` task statuses in real time
|
|
75
|
+
- If a task reveals new sub-tasks, add them to the plan before proceeding
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# .ai-config/config.yaml
|
|
2
|
+
# Declarative configuration for sync-ai-config.sh
|
|
3
|
+
# Run: ./scripts/sync-ai-config.sh (no args = reads this file)
|
|
4
|
+
#
|
|
5
|
+
# yaml-language-server: $schema=../schemas/ai-config.schema.json
|
|
6
|
+
|
|
7
|
+
# Targets to sync when running without arguments
|
|
8
|
+
targets:
|
|
9
|
+
- claude
|
|
10
|
+
- opencode
|
|
11
|
+
- cursor
|
|
12
|
+
- aider
|
|
13
|
+
- gemini
|
|
14
|
+
|
|
15
|
+
# Sync options
|
|
16
|
+
sync:
|
|
17
|
+
# Claude mode: 'overwrite' or 'merge' (merge appends/updates generated section)
|
|
18
|
+
claude_mode: overwrite
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
# =============================================================================
|
|
3
|
+
# HOOK TEMPLATE
|
|
4
|
+
# =============================================================================
|
|
5
|
+
# Hooks se ejecutan en respuesta a eventos del AI CLI
|
|
6
|
+
# =============================================================================
|
|
7
|
+
|
|
8
|
+
name: mi-hook
|
|
9
|
+
description: Descripción del hook
|
|
10
|
+
|
|
11
|
+
# Evento que dispara el hook
|
|
12
|
+
# Opciones: PreToolUse, PostToolUse, Stop, SessionStart, SessionEnd
|
|
13
|
+
event: PreToolUse
|
|
14
|
+
|
|
15
|
+
# Filtrar por herramientas específicas (opcional)
|
|
16
|
+
# Si no se especifica, aplica a todas
|
|
17
|
+
tools:
|
|
18
|
+
- Bash
|
|
19
|
+
- Write
|
|
20
|
+
|
|
21
|
+
# Filtrar por patrón en el contenido (opcional)
|
|
22
|
+
match_pattern: "rm -rf|drop table|delete from"
|
|
23
|
+
|
|
24
|
+
# Acción: block | warn | log | execute
|
|
25
|
+
action: block
|
|
26
|
+
|
|
27
|
+
metadata:
|
|
28
|
+
author: tu-usuario
|
|
29
|
+
version: "1.0"
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
# [Nombre del Hook]
|
|
33
|
+
|
|
34
|
+
> [Descripción de una línea]
|
|
35
|
+
|
|
36
|
+
## Propósito
|
|
37
|
+
|
|
38
|
+
[Qué hace este hook y por qué existe]
|
|
39
|
+
|
|
40
|
+
## Evento
|
|
41
|
+
|
|
42
|
+
- **Trigger:** [PreToolUse | PostToolUse | Stop | etc.]
|
|
43
|
+
- **Herramientas:** [Lista de herramientas o "todas"]
|
|
44
|
+
- **Condición:** [Cuándo se activa]
|
|
45
|
+
|
|
46
|
+
## Lógica
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
SI [condición]
|
|
50
|
+
ENTONCES [acción]
|
|
51
|
+
SINO [alternativa]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Implementación
|
|
55
|
+
|
|
56
|
+
### Para Claude Code
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"hooks": {
|
|
61
|
+
"PreToolUse": [
|
|
62
|
+
{
|
|
63
|
+
"matcher": "Bash",
|
|
64
|
+
"command": "echo 'Validating...'"
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Para OpenCode
|
|
72
|
+
|
|
73
|
+
```yaml
|
|
74
|
+
hooks:
|
|
75
|
+
pre_tool_use:
|
|
76
|
+
- tool: Bash
|
|
77
|
+
action: validate
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Ejemplos
|
|
81
|
+
|
|
82
|
+
### Ejemplo 1: Hook activa
|
|
83
|
+
|
|
84
|
+
**Contexto:**
|
|
85
|
+
```
|
|
86
|
+
[Descripción del contexto]
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Resultado:**
|
|
90
|
+
```
|
|
91
|
+
[Qué hace el hook]
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Notas
|
|
95
|
+
|
|
96
|
+
[Consideraciones adicionales]
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: block-dangerous-commands
|
|
3
|
+
description: Bloquea comandos peligrosos antes de ejecutar
|
|
4
|
+
event: PreToolUse
|
|
5
|
+
tools:
|
|
6
|
+
- Bash
|
|
7
|
+
match_pattern: "rm -rf /|rm -rf ~|drop database|truncate table|:(){ :|:& };:|mkfs|dd if=|> /dev/sd|chmod -R 777 /|curl.*| bash|wget.*| sh"
|
|
8
|
+
action: block
|
|
9
|
+
metadata:
|
|
10
|
+
author: project-starter-framework
|
|
11
|
+
version: "1.0"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Block Dangerous Commands Hook
|
|
15
|
+
|
|
16
|
+
> Previene ejecución de comandos potencialmente destructivos.
|
|
17
|
+
|
|
18
|
+
## Propósito
|
|
19
|
+
|
|
20
|
+
Interceptar comandos de Bash que podrían causar daño irreversible al sistema o datos.
|
|
21
|
+
|
|
22
|
+
## Comandos Bloqueados
|
|
23
|
+
|
|
24
|
+
| Patrón | Riesgo |
|
|
25
|
+
|--------|--------|
|
|
26
|
+
| `rm -rf /` | Borrar sistema completo |
|
|
27
|
+
| `rm -rf ~` | Borrar home directory |
|
|
28
|
+
| `drop database` | Eliminar base de datos |
|
|
29
|
+
| `truncate table` | Vaciar tablas |
|
|
30
|
+
| `:(){ :|:& };:` | Fork bomb |
|
|
31
|
+
| `mkfs` | Formatear disco |
|
|
32
|
+
| `dd if=` | Escritura directa a disco |
|
|
33
|
+
| `> /dev/sd*` | Sobrescribir disco |
|
|
34
|
+
| `chmod -R 777 /` | Permisos inseguros |
|
|
35
|
+
| `curl \| bash` | Ejecución remota |
|
|
36
|
+
| `wget \| sh` | Ejecución remota |
|
|
37
|
+
|
|
38
|
+
## Comportamiento
|
|
39
|
+
|
|
40
|
+
1. **Detecta** comando peligroso en input de Bash
|
|
41
|
+
2. **Bloquea** ejecución
|
|
42
|
+
3. **Notifica** al usuario con explicación
|
|
43
|
+
4. **Sugiere** alternativa segura si existe
|
|
44
|
+
|
|
45
|
+
## Implementación Claude Code
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"hooks": {
|
|
50
|
+
"PreToolUse": [
|
|
51
|
+
{
|
|
52
|
+
"matcher": "Bash",
|
|
53
|
+
"hooks": [
|
|
54
|
+
{
|
|
55
|
+
"type": "command",
|
|
56
|
+
"command": "echo '$TOOL_INPUT' | grep -qE 'rm -rf /|rm -rf ~|drop database' && echo 'BLOCKED: Dangerous command detected' && exit 1 || exit 0"
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Excepciones
|
|
66
|
+
|
|
67
|
+
Si necesitás ejecutar un comando bloqueado legítimamente:
|
|
68
|
+
|
|
69
|
+
1. Revisar el comando manualmente
|
|
70
|
+
2. Usar `--no-verify` o equivalente
|
|
71
|
+
3. Documentar la razón
|
|
72
|
+
|
|
73
|
+
## Notas
|
|
74
|
+
|
|
75
|
+
Este hook es una capa de seguridad adicional, no reemplaza el sentido común.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: commit-guard
|
|
3
|
+
description: Valida que los mensajes de commit sigan el formato Conventional Commits antes de ejecutar git commit. Trigger: PreToolUse Bash
|
|
4
|
+
event: PreToolUse
|
|
5
|
+
tools:
|
|
6
|
+
- Bash
|
|
7
|
+
match_pattern: "git commit"
|
|
8
|
+
action: warn
|
|
9
|
+
metadata:
|
|
10
|
+
author: project-starter-framework
|
|
11
|
+
version: "1.0"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Commit Guard Hook
|
|
15
|
+
|
|
16
|
+
> Valida el formato Conventional Commits antes de ejecutar `git commit`.
|
|
17
|
+
|
|
18
|
+
## Propósito
|
|
19
|
+
|
|
20
|
+
Garantizar que todos los commits sigan el estándar Conventional Commits (`feat`, `fix`, `refactor`, etc.) para mantener un historial limpio y semver automático.
|
|
21
|
+
|
|
22
|
+
## Formato Válido
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
type(scope): descripción en imperativo
|
|
26
|
+
|
|
27
|
+
[cuerpo opcional]
|
|
28
|
+
|
|
29
|
+
[footer opcional]
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Tipos Permitidos
|
|
33
|
+
|
|
34
|
+
| Tipo | Cuándo usarlo |
|
|
35
|
+
|------|---------------|
|
|
36
|
+
| `feat` | Nueva funcionalidad |
|
|
37
|
+
| `fix` | Corrección de bug |
|
|
38
|
+
| `refactor` | Reestructuración sin cambio de comportamiento |
|
|
39
|
+
| `docs` | Solo documentación |
|
|
40
|
+
| `test` | Añadir o actualizar tests |
|
|
41
|
+
| `chore` | Build, CI, dependencias |
|
|
42
|
+
| `perf` | Mejora de performance |
|
|
43
|
+
| `style` | Formato, espacios (sin cambio lógico) |
|
|
44
|
+
| `ci` | Cambios en CI/CD |
|
|
45
|
+
| `revert` | Revertir commit anterior |
|
|
46
|
+
|
|
47
|
+
## Comportamiento
|
|
48
|
+
|
|
49
|
+
1. **Intercepta** comandos que contienen `git commit`
|
|
50
|
+
2. **Extrae** el mensaje de commit (`-m "..."`)
|
|
51
|
+
3. **Valida** contra el patrón `^(feat|fix|refactor|docs|test|chore|perf|style|ci|revert)(\(.+\))?: .{1,72}$`
|
|
52
|
+
4. **Alerta** si no cumple, muestra ejemplo correcto
|
|
53
|
+
5. **Permite** continuar (es warning, no block)
|
|
54
|
+
|
|
55
|
+
## Implementación Claude Code
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"hooks": {
|
|
60
|
+
"PreToolUse": [
|
|
61
|
+
{
|
|
62
|
+
"matcher": "Bash",
|
|
63
|
+
"hooks": [{ "type": "command", "command": "echo \"$TOOL_INPUT\" | grep -q 'git commit' && echo \"$TOOL_INPUT\" | grep -oP '(?<=-m \")[^\"]+' | grep -qP '^(feat|fix|refactor|docs|test|chore|perf|style|ci|revert)(\\(.+\\))?: .{1,72}$' || (echo 'WARN: Mensaje no sigue Conventional Commits. Ejemplo: feat(auth): add login endpoint' && exit 0)" }]
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Ejemplos
|
|
71
|
+
|
|
72
|
+
### ✅ Válidos
|
|
73
|
+
```
|
|
74
|
+
feat(auth): add JWT refresh token endpoint
|
|
75
|
+
fix(api): handle null response from external service
|
|
76
|
+
refactor(db): extract query builder into separate module
|
|
77
|
+
docs: update README with new setup instructions
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### ❌ Inválidos
|
|
81
|
+
```
|
|
82
|
+
"fixed stuff"
|
|
83
|
+
"WIP"
|
|
84
|
+
"update"
|
|
85
|
+
"Added new feature for the user authentication system"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Notas
|
|
89
|
+
|
|
90
|
+
No bloquea el commit — es un recordatorio. Para enforcement estricto cambiar `action: warn` a `action: block`.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: context-loader
|
|
3
|
+
description: Al iniciar sesión, carga el estado del proyecto (git, TODOs pendientes, últimos cambios). Trigger: SessionStart
|
|
4
|
+
event: SessionStart
|
|
5
|
+
action: execute
|
|
6
|
+
metadata:
|
|
7
|
+
author: project-starter-framework
|
|
8
|
+
version: "1.0"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Context Loader Hook
|
|
12
|
+
|
|
13
|
+
> Carga contexto del proyecto automáticamente al iniciar cada sesión AI.
|
|
14
|
+
|
|
15
|
+
## Propósito
|
|
16
|
+
|
|
17
|
+
Proporcionar contexto inmediato al AI sobre el estado actual del proyecto sin necesidad de preguntarlo manualmente cada vez.
|
|
18
|
+
|
|
19
|
+
## Información Cargada
|
|
20
|
+
|
|
21
|
+
### Estado Git
|
|
22
|
+
- Branch actual y commits recientes (`git log --oneline -5`)
|
|
23
|
+
- Cambios sin commitear (`git status --short`)
|
|
24
|
+
- Archivos modificados recientemente
|
|
25
|
+
|
|
26
|
+
### TODOs y Tasks
|
|
27
|
+
- Busca archivos `TODO.md`, `TASKS.md`, `.todo`
|
|
28
|
+
- Extrae líneas con `TODO:`, `FIXME:`, `HACK:` del código
|
|
29
|
+
|
|
30
|
+
### Config del Proyecto
|
|
31
|
+
- `package.json` → nombre, versión, scripts principales
|
|
32
|
+
- Lenguaje/runtime detectado (Go, Python, Node, Rust, Java)
|
|
33
|
+
- Stack inferido de archivos presentes
|
|
34
|
+
|
|
35
|
+
## Comportamiento
|
|
36
|
+
|
|
37
|
+
1. **Ejecuta** al inicio de cada sesión Claude Code
|
|
38
|
+
2. **Recopila** información de estado en menos de 2 segundos
|
|
39
|
+
3. **Inyecta** un resumen compacto al contexto inicial
|
|
40
|
+
4. **No bloquea** ni modifica archivos
|
|
41
|
+
|
|
42
|
+
## Implementación Claude Code
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"hooks": {
|
|
47
|
+
"SessionStart": [
|
|
48
|
+
{
|
|
49
|
+
"hooks": [{ "type": "command", "command": "echo '=== PROJECT CONTEXT ===' && git branch --show-current 2>/dev/null && git log --oneline -3 2>/dev/null && echo '--- Status ---' && git status --short 2>/dev/null | head -10 && echo '--- Recent TODOs ---' && grep -r 'TODO:\\|FIXME:' --include='*.go' --include='*.ts' --include='*.py' -l 2>/dev/null | head -5 && echo '=== END CONTEXT ===' || true" }]
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Configuración
|
|
57
|
+
|
|
58
|
+
Puedes personalizar qué información se carga editando el comando según el stack del proyecto:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# Para proyectos Go
|
|
62
|
+
grep -r 'TODO:\|FIXME:' --include='*.go' .
|
|
63
|
+
|
|
64
|
+
# Para proyectos TypeScript/Node
|
|
65
|
+
cat package.json | jq '{name,version,scripts}' 2>/dev/null
|
|
66
|
+
|
|
67
|
+
# Para proyectos Python
|
|
68
|
+
cat pyproject.toml 2>/dev/null | head -20
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Notas
|
|
72
|
+
|
|
73
|
+
Este hook es read-only — nunca modifica archivos. El overhead es mínimo (< 500ms en proyectos normales).
|