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,61 @@
|
|
|
1
|
+
# Project Memory (Obsidian Brain)
|
|
2
|
+
|
|
3
|
+
> Archivos de memoria persistente para AI CLIs y documentacion del proyecto.
|
|
4
|
+
> Funciona como markdown plano sin Obsidian. Con Obsidian, agrega Kanban visual, queries Dataview y templates Templater.
|
|
5
|
+
|
|
6
|
+
## Estructura
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
Memory/
|
|
10
|
+
├── CONTEXT.md <- Estado actual del proyecto (leer al inicio)
|
|
11
|
+
├── DECISIONS.md <- ADRs (Architecture Decision Records)
|
|
12
|
+
├── BLOCKERS.md <- Problemas encontrados y soluciones
|
|
13
|
+
├── WAVES.md <- Historial de oleadas de trabajo
|
|
14
|
+
├── KANBAN.md <- Board visual de tareas (plugin Kanban)
|
|
15
|
+
├── DASHBOARD.md <- Metricas y queries (plugin Dataview)
|
|
16
|
+
└── README.md <- Este archivo
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Flujo de Trabajo
|
|
20
|
+
|
|
21
|
+
### Al iniciar sesion:
|
|
22
|
+
1. Leer `CONTEXT.md` para recordar estado
|
|
23
|
+
2. Revisar `KANBAN.md` para tareas activas
|
|
24
|
+
3. Revisar `BLOCKERS.md` para issues pendientes
|
|
25
|
+
4. Crear sesion: copiar `../Sessions/TEMPLATE.md` como `../Sessions/YYYY-MM-DD.md`
|
|
26
|
+
- Con Obsidian: usar Templater (Ctrl+T > Session) que auto-llena fecha y prompts
|
|
27
|
+
- Sin Obsidian: copiar TEMPLATE.md y reemplazar placeholders manualmente
|
|
28
|
+
|
|
29
|
+
### Durante la sesion:
|
|
30
|
+
5. Mover tareas en `KANBAN.md` entre lanes
|
|
31
|
+
6. Documentar blockers si aparecen (usar inline fields: `type:: blocker`, `status:: open`)
|
|
32
|
+
7. Registrar decisiones importantes como ADRs (usar inline fields: `type:: adr`, `status::`)
|
|
33
|
+
|
|
34
|
+
### Al finalizar:
|
|
35
|
+
8. Actualizar `CONTEXT.md`
|
|
36
|
+
9. Completar sesion del dia
|
|
37
|
+
|
|
38
|
+
## Templates disponibles
|
|
39
|
+
|
|
40
|
+
En `../Templates/` hay templates de Templater (requieren plugin):
|
|
41
|
+
- **Session.md** - Sesion con fecha automatica y prompts
|
|
42
|
+
- **ADR.md** - Decision de arquitectura con prompts
|
|
43
|
+
- **Blocker.md** - Blocker con prompts
|
|
44
|
+
|
|
45
|
+
Sin Templater, usar los templates inline que estan al final de DECISIONS.md y BLOCKERS.md.
|
|
46
|
+
|
|
47
|
+
## Con Obsidian
|
|
48
|
+
|
|
49
|
+
Si abres el proyecto como vault de Obsidian:
|
|
50
|
+
- **KANBAN.md** se renderiza como board visual (drag & drop)
|
|
51
|
+
- **DASHBOARD.md** ejecuta queries Dataview automaticamente
|
|
52
|
+
- **Templates/** permite crear sesiones y ADRs con Templater
|
|
53
|
+
- Los links `[[ARCHIVO]]` navegan entre notas
|
|
54
|
+
|
|
55
|
+
## Sin Obsidian
|
|
56
|
+
|
|
57
|
+
Todo funciona como markdown plano:
|
|
58
|
+
- **KANBAN.md** se edita moviendo lineas entre secciones H2
|
|
59
|
+
- **DASHBOARD.md** muestra bloques de codigo (sin ejecutar)
|
|
60
|
+
- Las sesiones se crean copiando TEMPLATE.md manualmente
|
|
61
|
+
- Los links `[[ARCHIVO]]` se ven como texto plano (no navegables)
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: waves
|
|
3
|
+
updated: "[FECHA]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Oleadas de Trabajo
|
|
7
|
+
|
|
8
|
+
> Registro historico de oleadas de tareas paralelas.
|
|
9
|
+
> Para gestion dia a dia, usar [[KANBAN]]. WAVES.md es el historial de oleadas completadas.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Oleada Actual
|
|
14
|
+
|
|
15
|
+
**Numero:** 0
|
|
16
|
+
**Estado:** Ninguna activa
|
|
17
|
+
**Tareas:** -
|
|
18
|
+
**Branches:** -
|
|
19
|
+
**Inicio:** -
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Como usar oleadas
|
|
24
|
+
|
|
25
|
+
### 1. Analizar dependencias
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Tareas disponibles:
|
|
29
|
+
- T-001: Setup monorepo (sin deps)
|
|
30
|
+
- T-002: Configurar CI (depende de T-001)
|
|
31
|
+
- T-003: Agregar linters (depende de T-001)
|
|
32
|
+
- T-004: Docker compose (sin deps)
|
|
33
|
+
- T-005: Integrar linters en CI (depende de T-002, T-003)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 2. Agrupar en oleadas
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
Oleada 1: T-001, T-004 (sin dependencias entre si)
|
|
40
|
+
Oleada 2: T-002, T-003 (dependen solo de T-001)
|
|
41
|
+
Oleada 3: T-005 (depende de oleada 2)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 3. Ejecutar
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Crear oleada
|
|
48
|
+
./scripts/new-wave.sh "T-001 T-004"
|
|
49
|
+
|
|
50
|
+
# Crear branches
|
|
51
|
+
./scripts/new-wave.sh --create-branches
|
|
52
|
+
|
|
53
|
+
# Trabajar en paralelo...
|
|
54
|
+
|
|
55
|
+
# Completar y merge
|
|
56
|
+
./scripts/new-wave.sh --complete
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Historial
|
|
62
|
+
|
|
63
|
+
| # | Tareas | Inicio | Fin | Estado |
|
|
64
|
+
|---|--------|--------|-----|--------|
|
|
65
|
+
| - | - | - | - | - |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Tips
|
|
70
|
+
|
|
71
|
+
- **Maximo recomendado:** 5-7 tareas por oleada para mantener foco
|
|
72
|
+
- **Sin limite tecnico:** El sistema soporta cualquier cantidad
|
|
73
|
+
- **Merge order:** Mergear a develop cuando todas las tareas de la oleada esten listas
|
|
74
|
+
- **Conflictos:** Si hay conflictos entre branches de la misma oleada, revisar dependencias
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
*Ultima actualizacion: [FECHA]*
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: session
|
|
3
|
+
date: "[YYYY-MM-DD]"
|
|
4
|
+
phase: "[Foundation/MVP/Alpha/Beta]"
|
|
5
|
+
wave: "[N]"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Sesion - [YYYY-MM-DD]
|
|
9
|
+
|
|
10
|
+
> Copiar este archivo como `YYYY-MM-DD.md` para cada sesion
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Contexto Inicial
|
|
15
|
+
|
|
16
|
+
| Campo | Valor |
|
|
17
|
+
|-------|-------|
|
|
18
|
+
| **Fase** | [Foundation/MVP/...] |
|
|
19
|
+
| **Oleada** | [N] |
|
|
20
|
+
| **Branch** | [branch-name] |
|
|
21
|
+
| **Tiempo Disponible** | [X] horas |
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Objetivos
|
|
26
|
+
|
|
27
|
+
- [ ] Objetivo 1
|
|
28
|
+
- [ ] Objetivo 2
|
|
29
|
+
- [ ] Objetivo 3
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Tareas Trabajadas
|
|
34
|
+
|
|
35
|
+
### [T-XXX] - [Titulo]
|
|
36
|
+
|
|
37
|
+
| Campo | Valor |
|
|
38
|
+
|-------|-------|
|
|
39
|
+
| Inicio | HH:MM |
|
|
40
|
+
| Fin | HH:MM |
|
|
41
|
+
| Estado | Completada / En progreso / Bloqueada |
|
|
42
|
+
|
|
43
|
+
**Cambios:**
|
|
44
|
+
- [Cambio 1]
|
|
45
|
+
- [Cambio 2]
|
|
46
|
+
|
|
47
|
+
**Commits:**
|
|
48
|
+
- `abc1234` - mensaje
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Problemas
|
|
53
|
+
|
|
54
|
+
### Problema 1
|
|
55
|
+
- **Que paso:** [descripcion]
|
|
56
|
+
- **Solucion:** [como se resolvio]
|
|
57
|
+
- **Documentado en:** [[BLOCKERS#BLOCKER-XXX]]
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Decisiones
|
|
62
|
+
|
|
63
|
+
- **Decision:** [que se decidio]
|
|
64
|
+
- **Razon:** [por que]
|
|
65
|
+
- **Documentado en:** [[DECISIONS#ADR-XXX]]
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Aprendizajes
|
|
70
|
+
|
|
71
|
+
- [Aprendi X sobre Y]
|
|
72
|
+
- [Descubri que Z]
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Proxima Sesion
|
|
77
|
+
|
|
78
|
+
### Continuar:
|
|
79
|
+
- [ ] Tarea pendiente 1
|
|
80
|
+
- [ ] Tarea pendiente 2
|
|
81
|
+
|
|
82
|
+
### Preparar:
|
|
83
|
+
- [ ] Leer documentacion de X
|
|
84
|
+
- [ ] Revisar Y
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Resumen
|
|
89
|
+
|
|
90
|
+
| Metrica | Valor |
|
|
91
|
+
|---------|-------|
|
|
92
|
+
| Tiempo total | X horas |
|
|
93
|
+
| Tareas completadas | X |
|
|
94
|
+
| Commits | X |
|
|
95
|
+
| Blockers | X |
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
*Fin de sesion: HH:MM*
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
## ADR-<% await tp.system.prompt("Numero de ADR (ej: 002)") %>: <% await tp.system.prompt("Titulo de la decision") %>
|
|
2
|
+
|
|
3
|
+
type:: adr
|
|
4
|
+
status:: pendiente
|
|
5
|
+
date:: <% tp.date.now("YYYY-MM-DD") %>
|
|
6
|
+
|
|
7
|
+
### Contexto
|
|
8
|
+
|
|
9
|
+
<% await tp.system.prompt("Que problema o necesidad motivo esta decision") %>
|
|
10
|
+
|
|
11
|
+
### Decision
|
|
12
|
+
|
|
13
|
+
<% await tp.system.prompt("Que se decidio hacer") %>
|
|
14
|
+
|
|
15
|
+
### Razones
|
|
16
|
+
|
|
17
|
+
1. <% await tp.system.prompt("Razon principal") %>
|
|
18
|
+
2.
|
|
19
|
+
3.
|
|
20
|
+
|
|
21
|
+
### Consecuencias
|
|
22
|
+
|
|
23
|
+
**Positivas:**
|
|
24
|
+
-
|
|
25
|
+
|
|
26
|
+
**Negativas:**
|
|
27
|
+
-
|
|
28
|
+
|
|
29
|
+
### Alternativas Consideradas
|
|
30
|
+
|
|
31
|
+
| Alternativa | Pros | Contras | Por que no |
|
|
32
|
+
|-------------|------|---------|------------|
|
|
33
|
+
| | | | |
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
### BLOCKER-<% await tp.system.prompt("Numero de blocker (ej: 002)") %>: <% await tp.system.prompt("Titulo del problema") %>
|
|
2
|
+
|
|
3
|
+
type:: blocker
|
|
4
|
+
status:: open
|
|
5
|
+
impact:: <% await tp.system.prompt("Impacto (alto/medio/bajo)") %>
|
|
6
|
+
date:: <% tp.date.now("YYYY-MM-DD") %>
|
|
7
|
+
|
|
8
|
+
**Descripcion:**
|
|
9
|
+
<% await tp.system.prompt("Que paso, como se manifesto") %>
|
|
10
|
+
|
|
11
|
+
**Impacto:**
|
|
12
|
+
-
|
|
13
|
+
|
|
14
|
+
**Investigacion:**
|
|
15
|
+
1.
|
|
16
|
+
|
|
17
|
+
**Solucion:**
|
|
18
|
+
_(Completar cuando se resuelva)_
|
|
19
|
+
|
|
20
|
+
**Lecciones:**
|
|
21
|
+
-
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: session
|
|
3
|
+
date: "<% tp.date.now("YYYY-MM-DD") %>"
|
|
4
|
+
phase: "<% await tp.system.prompt("Fase del proyecto (Foundation/MVP/Alpha/Beta)") %>"
|
|
5
|
+
wave: "<% await tp.system.prompt("Numero de oleada actual") %>"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Sesion - <% tp.date.now("YYYY-MM-DD") %>
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Contexto Inicial
|
|
13
|
+
|
|
14
|
+
| Campo | Valor |
|
|
15
|
+
|-------|-------|
|
|
16
|
+
| **Fase** | <% await tp.system.prompt("Fase del proyecto") %> |
|
|
17
|
+
| **Oleada** | <% await tp.system.prompt("Oleada actual") %> |
|
|
18
|
+
| **Branch** | <% await tp.system.prompt("Branch activo") %> |
|
|
19
|
+
| **Tiempo Disponible** | <% await tp.system.prompt("Tiempo disponible (ej: 2 horas)") %> |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Objetivos
|
|
24
|
+
|
|
25
|
+
- [ ] <% await tp.system.prompt("Objetivo principal de la sesion") %>
|
|
26
|
+
- [ ]
|
|
27
|
+
- [ ]
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Tareas Trabajadas
|
|
32
|
+
|
|
33
|
+
### [T-XXX] - [Titulo]
|
|
34
|
+
|
|
35
|
+
| Campo | Valor |
|
|
36
|
+
|-------|-------|
|
|
37
|
+
| Inicio | <% tp.date.now("HH:mm") %> |
|
|
38
|
+
| Fin | |
|
|
39
|
+
| Estado | En progreso |
|
|
40
|
+
|
|
41
|
+
**Cambios:**
|
|
42
|
+
-
|
|
43
|
+
|
|
44
|
+
**Commits:**
|
|
45
|
+
-
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Problemas
|
|
50
|
+
|
|
51
|
+
_(Completar si aparecen problemas)_
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Decisiones
|
|
56
|
+
|
|
57
|
+
_(Completar si se toman decisiones)_
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Aprendizajes
|
|
62
|
+
|
|
63
|
+
-
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Proxima Sesion
|
|
68
|
+
|
|
69
|
+
### Continuar:
|
|
70
|
+
- [ ]
|
|
71
|
+
|
|
72
|
+
### Preparar:
|
|
73
|
+
- [ ]
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Resumen
|
|
78
|
+
|
|
79
|
+
| Metrica | Valor |
|
|
80
|
+
|---------|-------|
|
|
81
|
+
| Tiempo total | |
|
|
82
|
+
| Tareas completadas | |
|
|
83
|
+
| Commits | |
|
|
84
|
+
| Blockers | |
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
*Fin de sesion: *
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
# Obsidian Brain
|
|
2
|
+
|
|
3
|
+
> Vault de Obsidian integrado al proyecto: Kanban visual, queries Dataview, templates Templater.
|
|
4
|
+
> Todo funciona como markdown plano sin Obsidian instalado.
|
|
5
|
+
|
|
6
|
+
## Instalacion
|
|
7
|
+
|
|
8
|
+
### Automatica (recomendado)
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
./scripts/init-project.sh
|
|
12
|
+
# Elegir opcion 1: obsidian-brain
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Manual
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# 1. Copiar estructura de memoria y config Obsidian
|
|
19
|
+
cp -r optional/obsidian-brain/.project tu-proyecto/
|
|
20
|
+
cp -r optional/obsidian-brain/.obsidian tu-proyecto/
|
|
21
|
+
|
|
22
|
+
# 2. Copiar scripts de oleadas
|
|
23
|
+
cp optional/obsidian-brain/new-wave.sh tu-proyecto/scripts/
|
|
24
|
+
cp optional/obsidian-brain/new-wave.ps1 tu-proyecto/scripts/
|
|
25
|
+
chmod +x tu-proyecto/scripts/new-wave.sh
|
|
26
|
+
|
|
27
|
+
# 3. Agregar lineas al .gitignore
|
|
28
|
+
cat optional/obsidian-brain/.obsidian-gitignore-snippet.txt >> tu-proyecto/.gitignore
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Estructura
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
proyecto/ <- Vault root
|
|
35
|
+
├── .obsidian/ <- Config Obsidian (pre-configurada)
|
|
36
|
+
│ ├── app.json <- Settings (relative links, ignore filters)
|
|
37
|
+
│ ├── appearance.json <- Tema, fuente, CSS snippets habilitados
|
|
38
|
+
│ ├── bookmarks.json <- Acceso rapido a CONTEXT, KANBAN, DASHBOARD
|
|
39
|
+
│ ├── core-plugins.json <- Core plugins habilitados
|
|
40
|
+
│ ├── core-plugins-migration.json
|
|
41
|
+
│ ├── community-plugins.json <- Kanban + Dataview + Templater
|
|
42
|
+
│ ├── daily-notes.json <- Auto-crear sesiones en Sessions/
|
|
43
|
+
│ ├── graph.json <- Filtros y colores para graph view
|
|
44
|
+
│ ├── hotkeys.json <- Ctrl+T = insertar template Templater
|
|
45
|
+
│ ├── snippets/
|
|
46
|
+
│ │ └── project-memory.css <- Estilos para inline fields y Kanban
|
|
47
|
+
│ └── plugins/
|
|
48
|
+
│ ├── obsidian-kanban/data.json
|
|
49
|
+
│ ├── dataview/data.json
|
|
50
|
+
│ └── templater-obsidian/data.json
|
|
51
|
+
├── .project/
|
|
52
|
+
│ ├── Attachments/ <- Imagenes y archivos adjuntos
|
|
53
|
+
│ ├── Memory/
|
|
54
|
+
│ │ ├── CONTEXT.md <- Estado actual del proyecto
|
|
55
|
+
│ │ ├── DECISIONS.md <- ADRs con inline fields Dataview
|
|
56
|
+
│ │ ├── BLOCKERS.md <- Problemas con inline fields Dataview
|
|
57
|
+
│ │ ├── WAVES.md <- Historial de oleadas
|
|
58
|
+
│ │ ├── KANBAN.md <- Board visual (plugin Kanban)
|
|
59
|
+
│ │ ├── DASHBOARD.md <- Queries automaticas (plugin Dataview)
|
|
60
|
+
│ │ └── README.md
|
|
61
|
+
│ ├── Sessions/
|
|
62
|
+
│ │ └── TEMPLATE.md <- Template manual para sesiones
|
|
63
|
+
│ └── Templates/
|
|
64
|
+
│ ├── Session.md <- Template Templater para sesiones
|
|
65
|
+
│ ├── ADR.md <- Template Templater para ADRs
|
|
66
|
+
│ └── Blocker.md <- Template Templater para blockers
|
|
67
|
+
└── scripts/
|
|
68
|
+
├── new-wave.sh <- Gestion de oleadas (bash)
|
|
69
|
+
└── new-wave.ps1 <- Gestion de oleadas (PowerShell)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Plugins Requeridos
|
|
73
|
+
|
|
74
|
+
Los `data.json` estan pre-configurados. Solo necesitas instalar los plugins desde Obsidian:
|
|
75
|
+
|
|
76
|
+
1. Abrir Obsidian > Settings > Community Plugins > Browse
|
|
77
|
+
2. Instalar: **Kanban**, **Dataview**, **Templater**
|
|
78
|
+
3. Habilitar los 3 plugins
|
|
79
|
+
|
|
80
|
+
La configuracion se aplica automaticamente desde los `data.json` ya incluidos.
|
|
81
|
+
|
|
82
|
+
### Pre-configurado
|
|
83
|
+
|
|
84
|
+
- **Ctrl+T** - Insertar template Templater (sesion, ADR, blocker)
|
|
85
|
+
- **Daily Notes** - Al hacer click en "Open today's daily note", crea sesion en `.project/Sessions/` usando el template de Templater
|
|
86
|
+
- **Bookmarks** - CONTEXT, KANBAN, DASHBOARD, DECISIONS, BLOCKERS en acceso rapido
|
|
87
|
+
- **Graph View** - Memory files en azul, Sessions en violeta, build artifacts filtrados
|
|
88
|
+
- **CSS Snippet** - `project-memory.css` activo: resalta inline fields y status badges
|
|
89
|
+
- **Core templates desactivado** - Se usa Templater en su lugar (mas potente, sin conflicto)
|
|
90
|
+
|
|
91
|
+
### Seguridad
|
|
92
|
+
|
|
93
|
+
- **Templater:** `enable_system_commands: false` (no ejecuta comandos del sistema)
|
|
94
|
+
- **Dataview:** `enableDataviewJs: false` (no ejecuta JavaScript arbitrario)
|
|
95
|
+
|
|
96
|
+
## Workflow
|
|
97
|
+
|
|
98
|
+
### Con Obsidian
|
|
99
|
+
|
|
100
|
+
1. Abrir proyecto como vault
|
|
101
|
+
2. Usar KANBAN.md como board visual (drag & drop entre lanes)
|
|
102
|
+
3. Crear sesiones con Templater (Ctrl+T > Session)
|
|
103
|
+
4. Ver DASHBOARD.md para metricas automaticas
|
|
104
|
+
5. Las oleadas se gestionan con `new-wave.sh` y se reflejan en WAVES.md
|
|
105
|
+
|
|
106
|
+
### Sin Obsidian (markdown plano)
|
|
107
|
+
|
|
108
|
+
1. Editar KANBAN.md moviendo lineas entre secciones H2
|
|
109
|
+
2. Copiar TEMPLATE.md para crear sesiones manualmente
|
|
110
|
+
3. DASHBOARD.md muestra bloques de codigo sin ejecutar
|
|
111
|
+
4. Todo el workflow funciona igual, solo sin la parte visual
|
|
112
|
+
|
|
113
|
+
## KANBAN.md
|
|
114
|
+
|
|
115
|
+
El board tiene 4 lanes:
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
## Backlog
|
|
119
|
+
- [ ] Tarea por hacer #wave
|
|
120
|
+
|
|
121
|
+
## En Progreso
|
|
122
|
+
- [ ] Tarea activa
|
|
123
|
+
|
|
124
|
+
## Review
|
|
125
|
+
- [ ] Tarea en revision
|
|
126
|
+
|
|
127
|
+
## Completado
|
|
128
|
+
- [x] Tarea terminada
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Mover tareas
|
|
132
|
+
- **Con Obsidian:** drag & drop entre lanes
|
|
133
|
+
- **Sin Obsidian:** cortar/pegar la linea `- [ ]` a la seccion correspondiente
|
|
134
|
+
- **Con AI CLI:** mover la linea entre secciones H2
|
|
135
|
+
|
|
136
|
+
### Tags utiles
|
|
137
|
+
- `#wave` - Pertenece a oleada activa
|
|
138
|
+
- `#blocker` - Tiene un blocker asociado
|
|
139
|
+
- `#review` - Necesita revision
|
|
140
|
+
|
|
141
|
+
## Oleadas (Waves)
|
|
142
|
+
|
|
143
|
+
KANBAN.md es para el dia a dia. WAVES.md es el historial de oleadas:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
# Ver oleada actual
|
|
147
|
+
./scripts/new-wave.sh --list
|
|
148
|
+
|
|
149
|
+
# Crear oleada
|
|
150
|
+
./scripts/new-wave.sh "T-001 T-002 T-003"
|
|
151
|
+
|
|
152
|
+
# Completar oleada
|
|
153
|
+
./scripts/new-wave.sh --complete
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Inline Fields vs Frontmatter
|
|
157
|
+
|
|
158
|
+
Obsidian Brain usa dos formatos de metadata segun el tipo de archivo:
|
|
159
|
+
|
|
160
|
+
- **Inline fields** (`key:: value`) - Para ADRs y Blockers dentro de DECISIONS.md y BLOCKERS.md.
|
|
161
|
+
Se usan porque multiples entradas conviven en el mismo archivo. Dataview los detecta como campos
|
|
162
|
+
de la seccion H2/H3 donde aparecen.
|
|
163
|
+
|
|
164
|
+
- **YAML frontmatter** (`key: value` en bloque `---`) - Para archivos individuales como sesiones
|
|
165
|
+
(un archivo por dia). Obsidian los muestra en el panel de propiedades.
|
|
166
|
+
|
|
167
|
+
No mezclar: usar inline fields dentro de secciones, frontmatter al inicio de archivos individuales.
|
|
168
|
+
|
|
169
|
+
## Inline Fields (Dataview)
|
|
170
|
+
|
|
171
|
+
Los archivos usan inline fields para queries automaticas. Formato: `key:: value`
|
|
172
|
+
|
|
173
|
+
### Campos obligatorios por tipo
|
|
174
|
+
|
|
175
|
+
| Tipo de entrada | Campos requeridos | Valores validos |
|
|
176
|
+
|-----------------|-------------------|-----------------|
|
|
177
|
+
| ADR | `type:: adr`, `status::`, `date::` | status: `pendiente`, `aceptada`, `rechazada`, `deprecada` |
|
|
178
|
+
| Blocker | `type:: blocker`, `status::`, `impact::`, `date::` | status: `open`, `investigating`, `resolved`, `workaround`. impact: `alto`, `medio`, `bajo` |
|
|
179
|
+
| Session | frontmatter `type: session`, `date`, `phase`, `wave` | phase: `Foundation`, `MVP`, `Alpha`, `Beta` |
|
|
180
|
+
|
|
181
|
+
### Ejemplo real (ADR)
|
|
182
|
+
|
|
183
|
+
```markdown
|
|
184
|
+
## ADR-002: Usar PostgreSQL en vez de SQLite
|
|
185
|
+
|
|
186
|
+
type:: adr
|
|
187
|
+
status:: aceptada
|
|
188
|
+
date:: 2026-01-15
|
|
189
|
+
|
|
190
|
+
### Contexto
|
|
191
|
+
Necesitamos soporte para queries concurrentes y full-text search.
|
|
192
|
+
|
|
193
|
+
### Decision
|
|
194
|
+
Usar PostgreSQL 16 con pgx driver.
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Ejemplo real (Blocker)
|
|
198
|
+
|
|
199
|
+
```markdown
|
|
200
|
+
### BLOCKER-002: Docker build falla en CI
|
|
201
|
+
|
|
202
|
+
type:: blocker
|
|
203
|
+
status:: open
|
|
204
|
+
impact:: alto
|
|
205
|
+
date:: 2026-01-20
|
|
206
|
+
|
|
207
|
+
**Descripcion:**
|
|
208
|
+
El build de Docker falla con error de memoria en GitHub Actions.
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Estos campos permiten a Dataview generar tablas automaticas en DASHBOARD.md. Sin los campos, las queries devuelven resultados vacios.
|
|
212
|
+
|
|
213
|
+
## Git
|
|
214
|
+
|
|
215
|
+
### Se commitea
|
|
216
|
+
- `.obsidian/app.json` - Settings compartidos
|
|
217
|
+
- `.obsidian/appearance.json` - Tema y CSS snippets
|
|
218
|
+
- `.obsidian/bookmarks.json` - Bookmarks compartidos
|
|
219
|
+
- `.obsidian/core-plugins.json` - Core plugins
|
|
220
|
+
- `.obsidian/core-plugins-migration.json` - Migration flags
|
|
221
|
+
- `.obsidian/community-plugins.json` - Lista de plugins
|
|
222
|
+
- `.obsidian/daily-notes.json` - Config de daily notes
|
|
223
|
+
- `.obsidian/graph.json` - Config del graph view
|
|
224
|
+
- `.obsidian/hotkeys.json` - Atajos de teclado
|
|
225
|
+
- `.obsidian/snippets/*.css` - CSS snippets del proyecto
|
|
226
|
+
- `.obsidian/plugins/*/data.json` - Configuracion de plugins
|
|
227
|
+
|
|
228
|
+
### Se ignora (.gitignore)
|
|
229
|
+
- `.obsidian/workspace.json` - Layout personal
|
|
230
|
+
- `.obsidian/workspace/` - Workspace data
|
|
231
|
+
- `.obsidian/cache/` - Cache
|
|
232
|
+
- `.obsidian/plugins/*/main.js` - Binarios de plugins
|
|
233
|
+
- `.obsidian/plugins/*/styles.css` - Estilos de plugins
|
|
234
|
+
- `.obsidian/plugins/*/manifest.json` - Manifiestos de plugins
|
|
235
|
+
- `.trash/` - Papelera de Obsidian
|
|
236
|
+
|
|
237
|
+
## Verificacion Post-Instalacion
|
|
238
|
+
|
|
239
|
+
Despues de instalar, verificar que existan:
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
# Archivos de memoria
|
|
243
|
+
ls .project/Memory/CONTEXT.md .project/Memory/KANBAN.md .project/Memory/DASHBOARD.md
|
|
244
|
+
|
|
245
|
+
# Config Obsidian
|
|
246
|
+
ls .obsidian/app.json .obsidian/community-plugins.json
|
|
247
|
+
|
|
248
|
+
# Plugins pre-configurados
|
|
249
|
+
ls .obsidian/plugins/obsidian-kanban/data.json
|
|
250
|
+
ls .obsidian/plugins/dataview/data.json
|
|
251
|
+
ls .obsidian/plugins/templater-obsidian/data.json
|
|
252
|
+
|
|
253
|
+
# Scripts
|
|
254
|
+
ls scripts/new-wave.sh scripts/new-wave.ps1
|
|
255
|
+
|
|
256
|
+
# Gitignore (debe contener lineas de Obsidian)
|
|
257
|
+
grep "obsidian" .gitignore
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
## Migracion desde VibeKanban
|
|
261
|
+
|
|
262
|
+
Si ya usas vibekanban:
|
|
263
|
+
|
|
264
|
+
1. Copiar `.obsidian/` al proyecto
|
|
265
|
+
2. Crear `KANBAN.md` y `DASHBOARD.md` en `.project/Memory/`
|
|
266
|
+
3. Agregar frontmatter YAML a archivos existentes (CONTEXT, DECISIONS, etc.)
|
|
267
|
+
4. Agregar inline fields Dataview a ADRs y blockers existentes
|
|
268
|
+
5. Actualizar `.gitignore` con el snippet de Obsidian
|