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,334 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-github
|
|
3
|
+
description: >
|
|
4
|
+
Git version control and GitHub collaboration workflows with conventional commits, branch strategies, and CI/CD.
|
|
5
|
+
Trigger: git, github, version control, branching, commits, pull request, CI/CD
|
|
6
|
+
tools:
|
|
7
|
+
- Read
|
|
8
|
+
- Write
|
|
9
|
+
- Bash
|
|
10
|
+
- Grep
|
|
11
|
+
metadata:
|
|
12
|
+
author: plataforma-industrial
|
|
13
|
+
version: "2.0"
|
|
14
|
+
tags: [git, github, version-control, ci-cd]
|
|
15
|
+
updated: "2026-02"
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Git & GitHub Workflow
|
|
19
|
+
|
|
20
|
+
## Branching Strategy: GitHub Flow
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
main (production)
|
|
24
|
+
|
|
|
25
|
+
+-- feature/TASK-123-description
|
|
26
|
+
| └── (merge via PR)
|
|
27
|
+
|
|
|
28
|
+
+-- fix/TASK-456-bug-fix
|
|
29
|
+
| └── (merge via PR)
|
|
30
|
+
|
|
|
31
|
+
└── hotfix/TASK-789-critical
|
|
32
|
+
└── (merge via PR, immediate deploy)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Rules
|
|
36
|
+
1. `main` always deployable
|
|
37
|
+
2. Features in short-lived branches (< 1 week)
|
|
38
|
+
3. PRs small (< 400 lines)
|
|
39
|
+
4. Hotfixes direct to main via express PR
|
|
40
|
+
|
|
41
|
+
## Conventional Commits
|
|
42
|
+
|
|
43
|
+
### Format
|
|
44
|
+
```
|
|
45
|
+
<type>(<scope>): <description>
|
|
46
|
+
|
|
47
|
+
[body]
|
|
48
|
+
|
|
49
|
+
[footer]
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Types
|
|
53
|
+
|
|
54
|
+
| Type | Use | Example |
|
|
55
|
+
|------|-----|---------|
|
|
56
|
+
| `feat` | New feature | `feat(auth): add social login` |
|
|
57
|
+
| `fix` | Bug fix | `fix(api): resolve token expiration` |
|
|
58
|
+
| `docs` | Documentation | `docs(readme): update setup guide` |
|
|
59
|
+
| `style` | Formatting | `style: format with prettier` |
|
|
60
|
+
| `refactor` | Code refactor | `refactor(db): simplify queries` |
|
|
61
|
+
| `perf` | Performance | `perf(cache): reduce latency` |
|
|
62
|
+
| `test` | Tests | `test(auth): add unit tests` |
|
|
63
|
+
| `build` | Build/deps | `build: upgrade to node 20` |
|
|
64
|
+
| `ci` | CI/CD | `ci: add e2e tests` |
|
|
65
|
+
| `chore` | Maintenance | `chore: update .gitignore` |
|
|
66
|
+
|
|
67
|
+
### Examples
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Simple feature
|
|
71
|
+
git commit -m "feat(sensors): add validation"
|
|
72
|
+
|
|
73
|
+
# With body
|
|
74
|
+
git commit -m "fix(auth): resolve token race condition
|
|
75
|
+
|
|
76
|
+
Added mutex lock around token refresh.
|
|
77
|
+
|
|
78
|
+
Fixes #234"
|
|
79
|
+
|
|
80
|
+
# Breaking change
|
|
81
|
+
git commit -m "feat(api)!: change response format
|
|
82
|
+
|
|
83
|
+
BREAKING CHANGE: 'items' field is now an object."
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Git Workflow
|
|
87
|
+
|
|
88
|
+
### Start Feature
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
git checkout main
|
|
92
|
+
git pull origin main
|
|
93
|
+
git checkout -b feature/TASK-123-description
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### During Development
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# Frequent small commits
|
|
100
|
+
git add src/feature/
|
|
101
|
+
git commit -m "feat(feature): add component"
|
|
102
|
+
|
|
103
|
+
# Sync with main
|
|
104
|
+
git fetch origin main
|
|
105
|
+
git rebase origin/main
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Prepare PR
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# Clean up commits
|
|
112
|
+
git rebase -i origin/main
|
|
113
|
+
|
|
114
|
+
# Push
|
|
115
|
+
git push origin feature/TASK-123 --force-with-lease
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### After Merge
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
git checkout main
|
|
122
|
+
git pull origin main
|
|
123
|
+
git branch -d feature/TASK-123
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Pull Request Template
|
|
127
|
+
|
|
128
|
+
```markdown
|
|
129
|
+
## Description
|
|
130
|
+
[Brief description of changes]
|
|
131
|
+
|
|
132
|
+
## Type of Change
|
|
133
|
+
- [ ] Bug fix
|
|
134
|
+
- [ ] New feature
|
|
135
|
+
- [ ] Breaking change
|
|
136
|
+
- [ ] Documentation
|
|
137
|
+
|
|
138
|
+
## Changes
|
|
139
|
+
- [Change 1]
|
|
140
|
+
- [Change 2]
|
|
141
|
+
|
|
142
|
+
## How to Test
|
|
143
|
+
1. [Step 1]
|
|
144
|
+
2. [Step 2]
|
|
145
|
+
|
|
146
|
+
## Checklist
|
|
147
|
+
- [ ] Tests added/updated
|
|
148
|
+
- [ ] Documentation updated
|
|
149
|
+
- [ ] Self-review completed
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Git Hooks (Husky)
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# Install
|
|
156
|
+
npm install -D husky
|
|
157
|
+
npx husky init
|
|
158
|
+
|
|
159
|
+
# Pre-commit
|
|
160
|
+
echo 'npm run lint-staged' > .husky/pre-commit
|
|
161
|
+
|
|
162
|
+
# Commit-msg
|
|
163
|
+
echo 'npx commitlint --edit "$1"' > .husky/commit-msg
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### lint-staged config
|
|
167
|
+
|
|
168
|
+
```json
|
|
169
|
+
{
|
|
170
|
+
"lint-staged": {
|
|
171
|
+
"*.{ts,tsx}": ["eslint --fix", "prettier --write"],
|
|
172
|
+
"*.{md,json,yaml}": ["prettier --write"]
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### commitlint config
|
|
178
|
+
|
|
179
|
+
```javascript
|
|
180
|
+
// commitlint.config.js
|
|
181
|
+
module.exports = {
|
|
182
|
+
extends: ['@commitlint/config-conventional'],
|
|
183
|
+
rules: {
|
|
184
|
+
'subject-case': [2, 'always', 'lower-case'],
|
|
185
|
+
'header-max-length': [2, 'always', 72],
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## GitHub Actions CI
|
|
191
|
+
|
|
192
|
+
```yaml
|
|
193
|
+
# .github/workflows/ci.yml
|
|
194
|
+
name: CI
|
|
195
|
+
|
|
196
|
+
on:
|
|
197
|
+
push:
|
|
198
|
+
branches: [main]
|
|
199
|
+
pull_request:
|
|
200
|
+
branches: [main]
|
|
201
|
+
|
|
202
|
+
jobs:
|
|
203
|
+
test:
|
|
204
|
+
runs-on: ubuntu-latest
|
|
205
|
+
steps:
|
|
206
|
+
- uses: actions/checkout@v4
|
|
207
|
+
- uses: actions/setup-node@v4
|
|
208
|
+
with:
|
|
209
|
+
node-version: '20'
|
|
210
|
+
cache: 'npm'
|
|
211
|
+
- run: npm ci
|
|
212
|
+
- run: npm run lint
|
|
213
|
+
- run: npm run test
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## Dependabot
|
|
217
|
+
|
|
218
|
+
```yaml
|
|
219
|
+
# .github/dependabot.yml
|
|
220
|
+
version: 2
|
|
221
|
+
updates:
|
|
222
|
+
- package-ecosystem: npm
|
|
223
|
+
directory: /
|
|
224
|
+
schedule:
|
|
225
|
+
interval: weekly
|
|
226
|
+
groups:
|
|
227
|
+
npm-deps:
|
|
228
|
+
patterns: ["*"]
|
|
229
|
+
commit-message:
|
|
230
|
+
prefix: "build(deps)"
|
|
231
|
+
|
|
232
|
+
- package-ecosystem: github-actions
|
|
233
|
+
directory: /
|
|
234
|
+
schedule:
|
|
235
|
+
interval: weekly
|
|
236
|
+
commit-message:
|
|
237
|
+
prefix: "ci"
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
## Useful Commands
|
|
241
|
+
|
|
242
|
+
### History
|
|
243
|
+
```bash
|
|
244
|
+
git log --oneline --graph --all
|
|
245
|
+
git log --follow -p -- path/to/file
|
|
246
|
+
git log --grep="keyword"
|
|
247
|
+
git log -S "functionName" --source --all
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Undo
|
|
251
|
+
```bash
|
|
252
|
+
git checkout -- path/to/file # Discard changes
|
|
253
|
+
git reset HEAD path/to/file # Unstage
|
|
254
|
+
git reset --soft HEAD~1 # Undo commit, keep changes
|
|
255
|
+
git reset --hard HEAD~1 # Undo commit, discard changes
|
|
256
|
+
git revert abc1234 # Revert specific commit
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### Stash
|
|
260
|
+
```bash
|
|
261
|
+
git stash push -m "WIP"
|
|
262
|
+
git stash list
|
|
263
|
+
git stash pop
|
|
264
|
+
git stash apply stash@{2}
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Bisect
|
|
268
|
+
```bash
|
|
269
|
+
git bisect start
|
|
270
|
+
git bisect bad # Current is broken
|
|
271
|
+
git bisect good v1.0.0 # Known good
|
|
272
|
+
# Test each commit, mark good/bad
|
|
273
|
+
git bisect reset # When done
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
## .gitignore
|
|
277
|
+
|
|
278
|
+
```gitignore
|
|
279
|
+
# OS
|
|
280
|
+
.DS_Store
|
|
281
|
+
Thumbs.db
|
|
282
|
+
|
|
283
|
+
# IDEs
|
|
284
|
+
.idea/
|
|
285
|
+
.vscode/
|
|
286
|
+
|
|
287
|
+
# Dependencies
|
|
288
|
+
node_modules/
|
|
289
|
+
vendor/
|
|
290
|
+
|
|
291
|
+
# Build
|
|
292
|
+
dist/
|
|
293
|
+
build/
|
|
294
|
+
|
|
295
|
+
# Environment
|
|
296
|
+
.env
|
|
297
|
+
.env.local
|
|
298
|
+
!.env.example
|
|
299
|
+
|
|
300
|
+
# Logs
|
|
301
|
+
*.log
|
|
302
|
+
logs/
|
|
303
|
+
|
|
304
|
+
# Secrets (NEVER commit)
|
|
305
|
+
*.pem
|
|
306
|
+
*.key
|
|
307
|
+
credentials.json
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
## CODEOWNERS
|
|
311
|
+
|
|
312
|
+
```
|
|
313
|
+
# .github/CODEOWNERS
|
|
314
|
+
|
|
315
|
+
* @tech-lead
|
|
316
|
+
|
|
317
|
+
/apps/backend/ @backend-team
|
|
318
|
+
/apps/frontend/ @frontend-team
|
|
319
|
+
/.github/ @devops-team
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
## Best Practices
|
|
323
|
+
|
|
324
|
+
1. **Atomic commits** - One logical change per commit
|
|
325
|
+
2. **Descriptive branch names** - `feature/TASK-123-add-auth`
|
|
326
|
+
3. **Rebase before merge** - Keep history clean
|
|
327
|
+
4. **Never force push to main**
|
|
328
|
+
5. **Protect main branch** - Require reviews and CI
|
|
329
|
+
|
|
330
|
+
## Related Skills
|
|
331
|
+
|
|
332
|
+
- `git-workflow`: Branch strategies
|
|
333
|
+
- `devops-infra`: GitHub Actions
|
|
334
|
+
- `technical-docs`: PR documentation
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# Git Workflow Examples
|
|
2
|
+
|
|
3
|
+
> Concrete command sequences for common git scenarios.
|
|
4
|
+
> Referenced from [../SKILL.md](../SKILL.md) — load this file when you need step-by-step examples.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. Feature Branch Workflow
|
|
9
|
+
|
|
10
|
+
Full cycle from starting a feature to opening a pull request:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# 1. Start from up-to-date main
|
|
14
|
+
git checkout main
|
|
15
|
+
git pull origin main
|
|
16
|
+
|
|
17
|
+
# 2. Create feature branch
|
|
18
|
+
git checkout -b feat/user-authentication
|
|
19
|
+
|
|
20
|
+
# 3. Work and commit incrementally
|
|
21
|
+
git add src/auth/
|
|
22
|
+
git commit -m "feat(auth): add JWT token generation"
|
|
23
|
+
|
|
24
|
+
git add src/auth/ tests/auth/
|
|
25
|
+
git commit -m "feat(auth): add login endpoint with validation"
|
|
26
|
+
|
|
27
|
+
git add tests/auth/
|
|
28
|
+
git commit -m "test(auth): add unit tests for JWT service"
|
|
29
|
+
|
|
30
|
+
# 4. Keep branch up to date (rebase preferred over merge)
|
|
31
|
+
git fetch origin
|
|
32
|
+
git rebase origin/main
|
|
33
|
+
|
|
34
|
+
# 5. Push and open PR
|
|
35
|
+
git push origin feat/user-authentication
|
|
36
|
+
gh pr create --title "feat: user authentication" --body "Closes #42"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 2. Hotfix Workflow
|
|
42
|
+
|
|
43
|
+
Emergency fix that needs to go to production immediately:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# 1. Branch from main (production state)
|
|
47
|
+
git checkout main
|
|
48
|
+
git pull origin main
|
|
49
|
+
git checkout -b hotfix/null-pointer-login
|
|
50
|
+
|
|
51
|
+
# 2. Make the minimal fix
|
|
52
|
+
git add src/auth/login.ts
|
|
53
|
+
git commit -m "fix(auth): handle null user object on failed login"
|
|
54
|
+
|
|
55
|
+
# 3. Merge to main
|
|
56
|
+
git checkout main
|
|
57
|
+
git merge --no-ff hotfix/null-pointer-login
|
|
58
|
+
git tag -a v1.2.1 -m "Hotfix: null pointer on login"
|
|
59
|
+
git push origin main --tags
|
|
60
|
+
|
|
61
|
+
# 4. Also merge to develop to keep branches in sync
|
|
62
|
+
git checkout develop
|
|
63
|
+
git merge --no-ff hotfix/null-pointer-login
|
|
64
|
+
git push origin develop
|
|
65
|
+
|
|
66
|
+
# 5. Clean up
|
|
67
|
+
git branch -d hotfix/null-pointer-login
|
|
68
|
+
git push origin --delete hotfix/null-pointer-login
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 3. Conventional Commit Examples
|
|
74
|
+
|
|
75
|
+
Reference for commit message format: `<type>(<scope>): <description>`
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# Features
|
|
79
|
+
git commit -m "feat(auth): add OAuth2 login with Google"
|
|
80
|
+
git commit -m "feat(api): add cursor-based pagination to /users endpoint"
|
|
81
|
+
|
|
82
|
+
# Bug fixes
|
|
83
|
+
git commit -m "fix(auth): prevent session fixation after login"
|
|
84
|
+
git commit -m "fix(db): handle connection timeout with retry logic"
|
|
85
|
+
|
|
86
|
+
# Chores (non-functional changes)
|
|
87
|
+
git commit -m "chore(deps): bump express from 4.18.1 to 4.19.2"
|
|
88
|
+
git commit -m "chore(ci): add node 20 to test matrix"
|
|
89
|
+
|
|
90
|
+
# Documentation
|
|
91
|
+
git commit -m "docs(api): add OpenAPI examples for /orders endpoint"
|
|
92
|
+
git commit -m "docs(readme): update setup instructions for M1 Mac"
|
|
93
|
+
|
|
94
|
+
# Refactoring
|
|
95
|
+
git commit -m "refactor(auth): extract token validation into TokenService"
|
|
96
|
+
git commit -m "refactor(orders): replace callback chain with async/await"
|
|
97
|
+
|
|
98
|
+
# Tests
|
|
99
|
+
git commit -m "test(auth): add integration tests for refresh token flow"
|
|
100
|
+
|
|
101
|
+
# Breaking changes (note the ! or BREAKING CHANGE footer)
|
|
102
|
+
git commit -m "feat(api)!: change /users pagination from offset to cursor"
|
|
103
|
+
git commit -m "feat(auth): require email verification
|
|
104
|
+
|
|
105
|
+
BREAKING CHANGE: users without verified email can no longer access protected routes"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 4. Resolving Merge Conflicts
|
|
111
|
+
|
|
112
|
+
Step-by-step guide for resolving conflicts cleanly:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# 1. Start the merge/rebase that triggers conflicts
|
|
116
|
+
git rebase origin/main
|
|
117
|
+
# → CONFLICT (content): Merge conflict in src/users/service.ts
|
|
118
|
+
|
|
119
|
+
# 2. See which files have conflicts
|
|
120
|
+
git status
|
|
121
|
+
# → both modified: src/users/service.ts
|
|
122
|
+
|
|
123
|
+
# 3. Open the conflicting file — look for conflict markers:
|
|
124
|
+
# <<<<<<< HEAD (your changes)
|
|
125
|
+
# const timeout = 5000;
|
|
126
|
+
# =======
|
|
127
|
+
# const timeout = 3000;
|
|
128
|
+
# >>>>>>> origin/main (incoming changes)
|
|
129
|
+
|
|
130
|
+
# 4. Edit the file to resolve — remove markers, keep correct code:
|
|
131
|
+
# const timeout = 5000; # or merge both intentions if needed
|
|
132
|
+
|
|
133
|
+
# 5. Stage the resolved file
|
|
134
|
+
git add src/users/service.ts
|
|
135
|
+
|
|
136
|
+
# 6. Continue the rebase (or merge)
|
|
137
|
+
git rebase --continue
|
|
138
|
+
# (use --abort to cancel and return to pre-rebase state)
|
|
139
|
+
|
|
140
|
+
# 7. Verify the result
|
|
141
|
+
git log --oneline -5
|
|
142
|
+
git diff origin/main
|
|
143
|
+
|
|
144
|
+
# 8. Push (force-with-lease is safer than --force after rebase)
|
|
145
|
+
git push origin feat/my-branch --force-with-lease
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Conflict prevention tips
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
# Rebase frequently to minimize divergence
|
|
152
|
+
git fetch origin && git rebase origin/main
|
|
153
|
+
|
|
154
|
+
# Use rerere to remember conflict resolutions
|
|
155
|
+
git config --global rerere.enabled true
|
|
156
|
+
|
|
157
|
+
# See what will conflict before merging
|
|
158
|
+
git merge --no-commit --no-ff origin/main
|
|
159
|
+
git merge --abort # undo the dry run
|
|
160
|
+
```
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-workflow
|
|
3
|
+
description: >
|
|
4
|
+
Git workflow guide for feature branches, PRs, and releases.
|
|
5
|
+
Trigger: branching, commits, PRs, git workflow, merge, release, conventional commits
|
|
6
|
+
tools:
|
|
7
|
+
- Bash
|
|
8
|
+
- Read
|
|
9
|
+
metadata:
|
|
10
|
+
author: project-starter-framework
|
|
11
|
+
version: "2.0"
|
|
12
|
+
tags: [git, workflow, branching, pr, commits]
|
|
13
|
+
updated: "2026-02"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Git Workflow
|
|
17
|
+
|
|
18
|
+
GitHub Flow with develop branch for integration.
|
|
19
|
+
|
|
20
|
+
## Branch Strategy
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
main (production)
|
|
24
|
+
↑ PR (release)
|
|
25
|
+
develop (integration)
|
|
26
|
+
↑ PR (feature complete)
|
|
27
|
+
feature/xxx (work)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Branch Naming
|
|
31
|
+
|
|
32
|
+
| Type | Pattern | Example |
|
|
33
|
+
|------|---------|---------|
|
|
34
|
+
| Feature | `feature/t-xxx-description` | `feature/t-001-add-auth` |
|
|
35
|
+
| Fix | `fix/t-xxx-description` | `fix/t-015-login-bug` |
|
|
36
|
+
| Hotfix | `hotfix/xxx` | `hotfix/critical-security` |
|
|
37
|
+
| Release | `release/vX.Y.Z` | `release/v2.1.0` |
|
|
38
|
+
|
|
39
|
+
## Daily Workflow
|
|
40
|
+
|
|
41
|
+
### Start Work
|
|
42
|
+
```bash
|
|
43
|
+
# Update develop
|
|
44
|
+
git checkout develop
|
|
45
|
+
git pull origin develop
|
|
46
|
+
|
|
47
|
+
# Create feature branch
|
|
48
|
+
git checkout -b feature/t-001-description
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### During Work
|
|
52
|
+
```bash
|
|
53
|
+
# Stage changes
|
|
54
|
+
git add <specific-files>
|
|
55
|
+
|
|
56
|
+
# Commit (conventional format)
|
|
57
|
+
git commit -m "feat(scope): description"
|
|
58
|
+
|
|
59
|
+
# Push (CI-Local validates first)
|
|
60
|
+
git push -u origin feature/t-001-description
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Create PR
|
|
64
|
+
```bash
|
|
65
|
+
gh pr create --base develop --title "feat: T-001 description" --body "
|
|
66
|
+
## Summary
|
|
67
|
+
- What this PR does
|
|
68
|
+
|
|
69
|
+
## Test Plan
|
|
70
|
+
- How to test
|
|
71
|
+
|
|
72
|
+
## Related
|
|
73
|
+
- Closes #123
|
|
74
|
+
"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### After Review
|
|
78
|
+
```bash
|
|
79
|
+
# Merge PR (squash recommended)
|
|
80
|
+
gh pr merge <number> --squash
|
|
81
|
+
|
|
82
|
+
# Delete local branch
|
|
83
|
+
git checkout develop
|
|
84
|
+
git branch -d feature/t-001-description
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Commit Convention
|
|
88
|
+
|
|
89
|
+
Format: `type(scope): description`
|
|
90
|
+
|
|
91
|
+
### Types
|
|
92
|
+
| Type | Use |
|
|
93
|
+
|------|-----|
|
|
94
|
+
| `feat` | New feature |
|
|
95
|
+
| `fix` | Bug fix |
|
|
96
|
+
| `refactor` | Code change (no feature/fix) |
|
|
97
|
+
| `docs` | Documentation only |
|
|
98
|
+
| `test` | Tests only |
|
|
99
|
+
| `chore` | Maintenance |
|
|
100
|
+
| `style` | Formatting |
|
|
101
|
+
| `perf` | Performance |
|
|
102
|
+
|
|
103
|
+
### Examples
|
|
104
|
+
```
|
|
105
|
+
feat(auth): add JWT token refresh
|
|
106
|
+
fix(api): handle null response
|
|
107
|
+
refactor(core): simplify validation logic
|
|
108
|
+
docs(readme): update installation steps
|
|
109
|
+
test(auth): add login edge cases
|
|
110
|
+
chore(deps): update Spring Boot to 4.0
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## AI Attribution Rules
|
|
114
|
+
|
|
115
|
+
**NEVER include in commits/PRs:**
|
|
116
|
+
- `Co-authored-by: Claude`
|
|
117
|
+
- `Made by Claude/GPT/AI`
|
|
118
|
+
- `Generated by AI`
|
|
119
|
+
- `@anthropic.com` / `@openai.com`
|
|
120
|
+
- Model names (claude, gpt-4, etc.)
|
|
121
|
+
|
|
122
|
+
Git hooks automatically block these patterns.
|
|
123
|
+
|
|
124
|
+
## Release Process
|
|
125
|
+
|
|
126
|
+
### Prepare Release
|
|
127
|
+
```bash
|
|
128
|
+
git checkout develop
|
|
129
|
+
git pull
|
|
130
|
+
|
|
131
|
+
# Create release branch
|
|
132
|
+
git checkout -b release/v2.1.0
|
|
133
|
+
|
|
134
|
+
# Update version, changelog
|
|
135
|
+
# ...
|
|
136
|
+
|
|
137
|
+
git commit -m "chore(release): prepare v2.1.0"
|
|
138
|
+
git push -u origin release/v2.1.0
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Merge to Main
|
|
142
|
+
```bash
|
|
143
|
+
gh pr create --base main --title "Release v2.1.0"
|
|
144
|
+
# After approval:
|
|
145
|
+
gh pr merge --merge
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Tag Release
|
|
149
|
+
```bash
|
|
150
|
+
git checkout main
|
|
151
|
+
git pull
|
|
152
|
+
git tag -a v2.1.0 -m "Release v2.1.0"
|
|
153
|
+
git push origin v2.1.0
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Back-merge to Develop
|
|
157
|
+
```bash
|
|
158
|
+
git checkout develop
|
|
159
|
+
git merge main
|
|
160
|
+
git push
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Emergency Hotfix
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
# Branch from main
|
|
167
|
+
git checkout main
|
|
168
|
+
git checkout -b hotfix/critical-fix
|
|
169
|
+
|
|
170
|
+
# Fix and commit
|
|
171
|
+
git commit -m "fix(critical): description"
|
|
172
|
+
|
|
173
|
+
# PR directly to main
|
|
174
|
+
gh pr create --base main
|
|
175
|
+
|
|
176
|
+
# After merge, back-merge to develop
|
|
177
|
+
git checkout develop
|
|
178
|
+
git merge main
|
|
179
|
+
git push
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Useful Commands
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
# View branch status
|
|
186
|
+
git branch -vv
|
|
187
|
+
|
|
188
|
+
# Clean merged branches
|
|
189
|
+
git branch --merged develop | grep -v develop | xargs git branch -d
|
|
190
|
+
|
|
191
|
+
# Interactive rebase (before PR)
|
|
192
|
+
git rebase -i develop
|
|
193
|
+
|
|
194
|
+
# Amend last commit
|
|
195
|
+
git commit --amend
|
|
196
|
+
|
|
197
|
+
# Stash changes
|
|
198
|
+
git stash
|
|
199
|
+
git stash pop
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## Pre-Push Checklist
|
|
203
|
+
|
|
204
|
+
1. ✅ Code formatted (`./gradlew spotlessApply`)
|
|
205
|
+
2. ✅ Tests pass locally
|
|
206
|
+
3. ✅ No AI attribution in commits
|
|
207
|
+
4. ✅ Commit messages follow convention
|
|
208
|
+
5. ✅ CI-Local passes (`./ci-local.sh full`)
|
|
209
|
+
|
|
210
|
+
## Related Skills
|
|
211
|
+
|
|
212
|
+
- `git-github`: GitHub CLI and API
|
|
213
|
+
- `devops-infra`: CI/CD integration
|
|
214
|
+
- `technical-docs`: Commit documentation
|