@dewtech/dare-cli 3.3.0 → 3.5.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/LICENSE +21 -0
- package/README.md +764 -764
- package/dist/__tests__/confidence.test.js +13 -13
- package/dist/__tests__/dag-converter.test.js +56 -56
- package/dist/__tests__/dag-runner/buildLocateContext.test.d.ts +2 -0
- package/dist/__tests__/dag-runner/buildLocateContext.test.d.ts.map +1 -0
- package/dist/__tests__/dag-runner/buildLocateContext.test.js +53 -0
- package/dist/__tests__/dag-runner/buildLocateContext.test.js.map +1 -0
- package/dist/__tests__/dual-graph.test.d.ts +2 -0
- package/dist/__tests__/dual-graph.test.d.ts.map +1 -0
- package/dist/__tests__/dual-graph.test.js +141 -0
- package/dist/__tests__/dual-graph.test.js.map +1 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.d.ts +9 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.d.ts.map +1 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.js +58 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.js.map +1 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.test.d.ts +2 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.test.d.ts.map +1 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.test.js +100 -0
- package/dist/__tests__/graphrag/contract/traverse.contract.test.js.map +1 -0
- package/dist/__tests__/graphrag/factory.test.js +10 -1
- package/dist/__tests__/graphrag/factory.test.js.map +1 -1
- package/dist/__tests__/graphrag/fixtures/dual-graph/build-fixture-graph.d.ts +11 -0
- package/dist/__tests__/graphrag/fixtures/dual-graph/build-fixture-graph.d.ts.map +1 -0
- package/dist/__tests__/graphrag/fixtures/dual-graph/build-fixture-graph.js +34 -0
- package/dist/__tests__/graphrag/fixtures/dual-graph/build-fixture-graph.js.map +1 -0
- package/dist/__tests__/graphrag/fixtures/dual-graph/fixtures.test.d.ts +2 -0
- package/dist/__tests__/graphrag/fixtures/dual-graph/fixtures.test.d.ts.map +1 -0
- package/dist/__tests__/graphrag/fixtures/dual-graph/fixtures.test.js +46 -0
- package/dist/__tests__/graphrag/fixtures/dual-graph/fixtures.test.js.map +1 -0
- package/dist/__tests__/graphrag/graph-rag.test.js +31 -0
- package/dist/__tests__/graphrag/graph-rag.test.js.map +1 -1
- package/dist/__tests__/graphrag/json-graph.test.js +57 -0
- package/dist/__tests__/graphrag/json-graph.test.js.map +1 -1
- package/dist/__tests__/graphrag/neo4j-graph.test.d.ts +2 -0
- package/dist/__tests__/graphrag/neo4j-graph.test.d.ts.map +1 -0
- package/dist/__tests__/graphrag/neo4j-graph.test.js +104 -0
- package/dist/__tests__/graphrag/neo4j-graph.test.js.map +1 -0
- package/dist/__tests__/graphrag/neo4j-persistence.test.d.ts +2 -0
- package/dist/__tests__/graphrag/neo4j-persistence.test.d.ts.map +1 -0
- package/dist/__tests__/graphrag/neo4j-persistence.test.js +110 -0
- package/dist/__tests__/graphrag/neo4j-persistence.test.js.map +1 -0
- package/dist/__tests__/mcp-server/server.test.js +3 -16
- package/dist/__tests__/mcp-server/server.test.js.map +1 -1
- package/dist/__tests__/project-generator.test.js +2 -2
- package/dist/__tests__/project-generator.test.js.map +1 -1
- package/dist/__tests__/refine.test.js +49 -49
- package/dist/__tests__/reverse-collection.test.js +6 -6
- package/dist/__tests__/review.test.js +38 -38
- package/dist/__tests__/security-hardening.test.d.ts +2 -0
- package/dist/__tests__/security-hardening.test.d.ts.map +1 -0
- package/dist/__tests__/security-hardening.test.js +101 -0
- package/dist/__tests__/security-hardening.test.js.map +1 -0
- package/dist/__tests__/validate.test.js +65 -65
- package/dist/bin/dare.js +0 -0
- package/dist/commands/__tests__/execute.telemetry.spec.js +9 -0
- package/dist/commands/__tests__/execute.telemetry.spec.js.map +1 -1
- package/dist/commands/__tests__/graph-viz-layers.test.d.ts +2 -0
- package/dist/commands/__tests__/graph-viz-layers.test.d.ts.map +1 -0
- package/dist/commands/__tests__/graph-viz-layers.test.js +36 -0
- package/dist/commands/__tests__/graph-viz-layers.test.js.map +1 -0
- package/dist/commands/__tests__/impact.test.d.ts +2 -0
- package/dist/commands/__tests__/impact.test.d.ts.map +1 -0
- package/dist/commands/__tests__/impact.test.js +26 -0
- package/dist/commands/__tests__/impact.test.js.map +1 -0
- package/dist/commands/__tests__/init-validation.test.d.ts +2 -0
- package/dist/commands/__tests__/init-validation.test.d.ts.map +1 -0
- package/dist/commands/__tests__/init-validation.test.js +81 -0
- package/dist/commands/__tests__/init-validation.test.js.map +1 -0
- package/dist/commands/__tests__/init.integration.spec.js +6 -4
- package/dist/commands/__tests__/init.integration.spec.js.map +1 -1
- package/dist/commands/__tests__/init.spec.d.ts +2 -0
- package/dist/commands/__tests__/init.spec.d.ts.map +1 -0
- package/dist/commands/__tests__/init.spec.js +88 -0
- package/dist/commands/__tests__/init.spec.js.map +1 -0
- package/dist/commands/__tests__/locate.test.d.ts +2 -0
- package/dist/commands/__tests__/locate.test.d.ts.map +1 -0
- package/dist/commands/__tests__/locate.test.js +35 -0
- package/dist/commands/__tests__/locate.test.js.map +1 -0
- package/dist/commands/__tests__/owners.test.d.ts +2 -0
- package/dist/commands/__tests__/owners.test.d.ts.map +1 -0
- package/dist/commands/__tests__/owners.test.js +34 -0
- package/dist/commands/__tests__/owners.test.js.map +1 -0
- package/dist/commands/__tests__/trace.test.d.ts +2 -0
- package/dist/commands/__tests__/trace.test.d.ts.map +1 -0
- package/dist/commands/__tests__/trace.test.js +29 -0
- package/dist/commands/__tests__/trace.test.js.map +1 -0
- package/dist/commands/blueprint.js +122 -122
- package/dist/commands/design.js +20 -20
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +11 -6
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/graph-queries.d.ts +48 -0
- package/dist/commands/graph-queries.d.ts.map +1 -0
- package/dist/commands/graph-queries.js +204 -0
- package/dist/commands/graph-queries.js.map +1 -0
- package/dist/commands/graph.d.ts +13 -0
- package/dist/commands/graph.d.ts.map +1 -1
- package/dist/commands/graph.js +212 -8
- package/dist/commands/graph.js.map +1 -1
- package/dist/commands/init-validation.d.ts +22 -0
- package/dist/commands/init-validation.d.ts.map +1 -0
- package/dist/commands/init-validation.js +54 -0
- package/dist/commands/init-validation.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +26 -10
- package/dist/commands/init.js.map +1 -1
- package/dist/dag-runner/__tests__/fixtures/src/math.d.ts +3 -0
- package/dist/dag-runner/__tests__/fixtures/src/math.d.ts.map +1 -0
- package/dist/dag-runner/__tests__/fixtures/src/math.js +7 -0
- package/dist/dag-runner/__tests__/fixtures/src/math.js.map +1 -0
- package/dist/dag-runner/__tests__/graph-ingest-symbols.test.d.ts +2 -0
- package/dist/dag-runner/__tests__/graph-ingest-symbols.test.d.ts.map +1 -0
- package/dist/dag-runner/__tests__/graph-ingest-symbols.test.js +81 -0
- package/dist/dag-runner/__tests__/graph-ingest-symbols.test.js.map +1 -0
- package/dist/dag-runner/graph-ingest.d.ts.map +1 -1
- package/dist/dag-runner/graph-ingest.js +46 -0
- package/dist/dag-runner/graph-ingest.js.map +1 -1
- package/dist/dag-runner/graph-locate.d.ts +11 -0
- package/dist/dag-runner/graph-locate.d.ts.map +1 -0
- package/dist/dag-runner/graph-locate.js +74 -0
- package/dist/dag-runner/graph-locate.js.map +1 -0
- package/dist/dag-runner/run_dag.d.ts +3 -1
- package/dist/dag-runner/run_dag.d.ts.map +1 -1
- package/dist/dag-runner/run_dag.js +2 -1
- package/dist/dag-runner/run_dag.js.map +1 -1
- package/dist/dag-runner/utils/stitch-context.d.ts +3 -1
- package/dist/dag-runner/utils/stitch-context.d.ts.map +1 -1
- package/dist/dag-runner/utils/stitch-context.js +8 -2
- package/dist/dag-runner/utils/stitch-context.js.map +1 -1
- package/dist/graphrag/__tests__/code-index.test.d.ts +2 -0
- package/dist/graphrag/__tests__/code-index.test.d.ts.map +1 -0
- package/dist/graphrag/__tests__/code-index.test.js +75 -0
- package/dist/graphrag/__tests__/code-index.test.js.map +1 -0
- package/dist/graphrag/__tests__/fixtures/code-index/sample.d.ts +5 -0
- package/dist/graphrag/__tests__/fixtures/code-index/sample.d.ts.map +1 -0
- package/dist/graphrag/__tests__/fixtures/code-index/sample.js +10 -0
- package/dist/graphrag/__tests__/fixtures/code-index/sample.js.map +1 -0
- package/dist/graphrag/__tests__/locate.test.d.ts +2 -0
- package/dist/graphrag/__tests__/locate.test.d.ts.map +1 -0
- package/dist/graphrag/__tests__/locate.test.js +43 -0
- package/dist/graphrag/__tests__/locate.test.js.map +1 -0
- package/dist/graphrag/__tests__/requirement-ingest.test.d.ts +2 -0
- package/dist/graphrag/__tests__/requirement-ingest.test.d.ts.map +1 -0
- package/dist/graphrag/__tests__/requirement-ingest.test.js +66 -0
- package/dist/graphrag/__tests__/requirement-ingest.test.js.map +1 -0
- package/dist/graphrag/__tests__/traverse.test.d.ts +2 -0
- package/dist/graphrag/__tests__/traverse.test.d.ts.map +1 -0
- package/dist/graphrag/__tests__/traverse.test.js +71 -0
- package/dist/graphrag/__tests__/traverse.test.js.map +1 -0
- package/dist/graphrag/__tests__/types.test.d.ts +2 -0
- package/dist/graphrag/__tests__/types.test.d.ts.map +1 -0
- package/dist/graphrag/__tests__/types.test.js +52 -0
- package/dist/graphrag/__tests__/types.test.js.map +1 -0
- package/dist/graphrag/code-index.d.ts +15 -0
- package/dist/graphrag/code-index.d.ts.map +1 -0
- package/dist/graphrag/code-index.js +205 -0
- package/dist/graphrag/code-index.js.map +1 -0
- package/dist/graphrag/factory.d.ts.map +1 -1
- package/dist/graphrag/factory.js +5 -0
- package/dist/graphrag/factory.js.map +1 -1
- package/dist/graphrag/graph-rag.d.ts +6 -2
- package/dist/graphrag/graph-rag.d.ts.map +1 -1
- package/dist/graphrag/graph-rag.js +64 -26
- package/dist/graphrag/graph-rag.js.map +1 -1
- package/dist/graphrag/index.d.ts +8 -2
- package/dist/graphrag/index.d.ts.map +1 -1
- package/dist/graphrag/index.js +5 -1
- package/dist/graphrag/index.js.map +1 -1
- package/dist/graphrag/json-graph.d.ts +8 -0
- package/dist/graphrag/json-graph.d.ts.map +1 -1
- package/dist/graphrag/json-graph.js +50 -4
- package/dist/graphrag/json-graph.js.map +1 -1
- package/dist/graphrag/knowledge-graph.d.ts +8 -3
- package/dist/graphrag/knowledge-graph.d.ts.map +1 -1
- package/dist/graphrag/neo4j-graph.d.ts +19 -18
- package/dist/graphrag/neo4j-graph.d.ts.map +1 -1
- package/dist/graphrag/neo4j-graph.js +164 -38
- package/dist/graphrag/neo4j-graph.js.map +1 -1
- package/dist/graphrag/requirement-ingest.d.ts +15 -0
- package/dist/graphrag/requirement-ingest.d.ts.map +1 -0
- package/dist/graphrag/requirement-ingest.js +158 -0
- package/dist/graphrag/requirement-ingest.js.map +1 -0
- package/dist/graphrag/traverse.d.ts +5 -0
- package/dist/graphrag/traverse.d.ts.map +1 -0
- package/dist/graphrag/traverse.js +139 -0
- package/dist/graphrag/traverse.js.map +1 -0
- package/dist/graphrag/types.d.ts +60 -2
- package/dist/graphrag/types.d.ts.map +1 -1
- package/dist/graphrag/types.js +34 -1
- package/dist/graphrag/types.js.map +1 -1
- package/dist/mcp-server/__tests__/auth.test.d.ts +2 -0
- package/dist/mcp-server/__tests__/auth.test.d.ts.map +1 -0
- package/dist/mcp-server/__tests__/auth.test.js +72 -0
- package/dist/mcp-server/__tests__/auth.test.js.map +1 -0
- package/dist/mcp-server/__tests__/boot-config.test.d.ts +2 -0
- package/dist/mcp-server/__tests__/boot-config.test.d.ts.map +1 -0
- package/dist/mcp-server/__tests__/boot-config.test.js +29 -0
- package/dist/mcp-server/__tests__/boot-config.test.js.map +1 -0
- package/dist/mcp-server/__tests__/error-sanitize.test.d.ts +2 -0
- package/dist/mcp-server/__tests__/error-sanitize.test.d.ts.map +1 -0
- package/dist/mcp-server/__tests__/error-sanitize.test.js +66 -0
- package/dist/mcp-server/__tests__/error-sanitize.test.js.map +1 -0
- package/dist/mcp-server/__tests__/mcp-graph.test.d.ts +2 -0
- package/dist/mcp-server/__tests__/mcp-graph.test.d.ts.map +1 -0
- package/dist/mcp-server/__tests__/mcp-graph.test.js +85 -0
- package/dist/mcp-server/__tests__/mcp-graph.test.js.map +1 -0
- package/dist/mcp-server/__tests__/path-confinement.test.d.ts +2 -0
- package/dist/mcp-server/__tests__/path-confinement.test.d.ts.map +1 -0
- package/dist/mcp-server/__tests__/path-confinement.test.js +135 -0
- package/dist/mcp-server/__tests__/path-confinement.test.js.map +1 -0
- package/dist/mcp-server/bin/server.js +18 -6
- package/dist/mcp-server/bin/server.js.map +1 -1
- package/dist/mcp-server/boot-config.d.ts +6 -0
- package/dist/mcp-server/boot-config.d.ts.map +1 -0
- package/dist/mcp-server/boot-config.js +17 -0
- package/dist/mcp-server/boot-config.js.map +1 -0
- package/dist/mcp-server/middleware/auth.d.ts +10 -0
- package/dist/mcp-server/middleware/auth.d.ts.map +1 -0
- package/dist/mcp-server/middleware/auth.js +44 -0
- package/dist/mcp-server/middleware/auth.js.map +1 -0
- package/dist/mcp-server/middleware/cors.d.ts +6 -0
- package/dist/mcp-server/middleware/cors.d.ts.map +1 -0
- package/dist/mcp-server/middleware/cors.js +30 -0
- package/dist/mcp-server/middleware/cors.js.map +1 -0
- package/dist/mcp-server/middleware/error-handler.d.ts +11 -0
- package/dist/mcp-server/middleware/error-handler.d.ts.map +1 -0
- package/dist/mcp-server/middleware/error-handler.js +14 -0
- package/dist/mcp-server/middleware/error-handler.js.map +1 -0
- package/dist/mcp-server/server.d.ts +7 -2
- package/dist/mcp-server/server.d.ts.map +1 -1
- package/dist/mcp-server/server.js +290 -105
- package/dist/mcp-server/server.js.map +1 -1
- package/dist/skills/registry-mock.json +109 -109
- package/dist/skills/tests/manifest.spec.js +20 -20
- package/dist/stacks/__tests__/dna-emitter.spec.js +6 -6
- package/dist/stacks/dna-emitter.js +69 -69
- package/dist/stacks/ruby-rails-8/scaffold.js +15 -15
- package/dist/utils/__tests__/static-analyzer-exports.test.d.ts +2 -0
- package/dist/utils/__tests__/static-analyzer-exports.test.d.ts.map +1 -0
- package/dist/utils/__tests__/static-analyzer-exports.test.js +21 -0
- package/dist/utils/__tests__/static-analyzer-exports.test.js.map +1 -0
- package/dist/utils/project-generator.d.ts.map +1 -1
- package/dist/utils/project-generator.js +266 -252
- package/dist/utils/project-generator.js.map +1 -1
- package/dist/utils/stack-bootstrap.js +371 -371
- package/dist/utils/static-analyzer.d.ts +9 -0
- package/dist/utils/static-analyzer.d.ts.map +1 -1
- package/dist/utils/static-analyzer.js +2 -2
- package/dist/utils/static-analyzer.js.map +1 -1
- package/dist/utils/templates.js +394 -394
- package/dist/verification/__tests__/anti-tamper.test.js +13 -13
- package/dist/verification/__tests__/telemetry.test.js +9 -0
- package/dist/verification/__tests__/telemetry.test.js.map +1 -1
- package/package.json +96 -93
- package/templates/DARE-dag-example.yaml +280 -280
- package/templates/UPDATE-MANIFEST.json +68 -68
- package/templates/backend/node-nestjs/.env.example +9 -9
- package/templates/backend/node-nestjs/nest-cli.json +8 -8
- package/templates/backend/node-nestjs/package.json +50 -50
- package/templates/backend/node-nestjs/src/app.controller.ts +12 -12
- package/templates/backend/node-nestjs/src/app.module.ts +15 -15
- package/templates/backend/node-nestjs/src/app.service.ts +8 -8
- package/templates/backend/node-nestjs/src/main.ts +24 -24
- package/templates/backend/node-nestjs/tsconfig.json +21 -21
- package/templates/backend/php-laravel/.env.example +22 -22
- package/templates/backend/php-laravel/app/Http/Controllers/HealthController.php +15 -15
- package/templates/backend/php-laravel/composer.json +40 -40
- package/templates/backend/python-fastapi/.env.example +4 -4
- package/templates/backend/python-fastapi/app/api/router.py +8 -8
- package/templates/backend/python-fastapi/app/core/config.py +20 -20
- package/templates/backend/python-fastapi/main.py +35 -35
- package/templates/backend/python-fastapi/requirements.txt +13 -13
- package/templates/backend/rust-axum/.env.example +3 -3
- package/templates/backend/rust-axum/Cargo.toml +23 -23
- package/templates/backend/rust-axum/src/errors.rs +30 -30
- package/templates/backend/rust-axum/src/main.rs +32 -32
- package/templates/backend/rust-axum/src/routes.rs +6 -6
- package/templates/frontend/leptos-csr/.cargo/config.toml +2 -2
- package/templates/frontend/leptos-csr/Cargo.toml +16 -16
- package/templates/frontend/leptos-csr/Trunk.toml +10 -10
- package/templates/frontend/leptos-csr/index.html +11 -11
- package/templates/frontend/leptos-csr/src/lib.rs +20 -20
- package/templates/frontend/leptos-csr/style/main.scss +19 -19
- package/templates/frontend/leptos-fullstack/.cargo/config.toml +4 -4
- package/templates/frontend/leptos-fullstack/Cargo.toml +56 -56
- package/templates/frontend/leptos-fullstack/src/app.rs +49 -49
- package/templates/frontend/leptos-fullstack/src/lib.rs +9 -9
- package/templates/frontend/leptos-fullstack/src/main.rs +29 -29
- package/templates/frontend/leptos-fullstack/style/main.scss +19 -19
- package/templates/frontend/react/index.html +12 -12
- package/templates/frontend/react/package.json +35 -35
- package/templates/frontend/react/src/App.tsx +25 -25
- package/templates/frontend/react/src/main.tsx +9 -9
- package/templates/frontend/vue/package.json +32 -32
- package/templates/frontend/vue/src/App.vue +7 -7
- package/templates/frontend/vue/src/main.ts +10 -10
- package/templates/frontend/vue/src/router/index.ts +14 -14
- package/templates/frontend/vue/src/views/HomeView.vue +6 -6
- package/templates/hooks/pre-commit-dare-validate +24 -24
- package/templates/ide/antigravity/.agents/skills/dare-ax/SKILL.md +152 -152
- package/templates/ide/antigravity/.agents/skills/dare-bench/SKILL.md +21 -21
- package/templates/ide/antigravity/.agents/skills/dare-blueprint/SKILL.md +368 -368
- package/templates/ide/antigravity/.agents/skills/dare-bootstrap/SKILL.md +32 -32
- package/templates/ide/antigravity/.agents/skills/dare-bugfix-design/SKILL.md +76 -76
- package/templates/ide/antigravity/.agents/skills/dare-dag/SKILL.md +32 -32
- package/templates/ide/antigravity/.agents/skills/dare-dag-build/SKILL.md +154 -154
- package/templates/ide/antigravity/.agents/skills/dare-dag-run/SKILL.md +130 -130
- package/templates/ide/antigravity/.agents/skills/dare-dag-runner/SKILL.md +203 -203
- package/templates/ide/antigravity/.agents/skills/dare-design/SKILL.md +180 -180
- package/templates/ide/antigravity/.agents/skills/dare-discover/SKILL.md +33 -33
- package/templates/ide/antigravity/.agents/skills/dare-dna/SKILL.md +63 -63
- package/templates/ide/antigravity/.agents/skills/dare-docker/SKILL.md +315 -315
- package/templates/ide/antigravity/.agents/skills/dare-execute/SKILL.md +264 -264
- package/templates/ide/antigravity/.agents/skills/dare-feature-design/SKILL.md +74 -74
- package/templates/ide/antigravity/.agents/skills/dare-frontend-design/SKILL.md +192 -192
- package/templates/ide/antigravity/.agents/skills/dare-graph/SKILL.md +35 -35
- package/templates/ide/antigravity/.agents/skills/dare-info/SKILL.md +31 -31
- package/templates/ide/antigravity/.agents/skills/dare-init/SKILL.md +35 -35
- package/templates/ide/antigravity/.agents/skills/dare-laravel-api/SKILL.md +337 -337
- package/templates/ide/antigravity/.agents/skills/dare-layered-design/SKILL.md +166 -166
- package/templates/ide/antigravity/.agents/skills/dare-llm-integration/SKILL.md +217 -217
- package/templates/ide/antigravity/.agents/skills/dare-migrate/SKILL.md +61 -61
- package/templates/ide/antigravity/.agents/skills/dare-quality-telemetry/SKILL.md +187 -187
- package/templates/ide/antigravity/.agents/skills/dare-realtime/SKILL.md +217 -217
- package/templates/ide/antigravity/.agents/skills/dare-refine/SKILL.md +114 -114
- package/templates/ide/antigravity/.agents/skills/dare-reverse/SKILL.md +108 -108
- package/templates/ide/antigravity/.agents/skills/dare-review/SKILL.md +111 -111
- package/templates/ide/antigravity/.agents/skills/dare-rust-leptos/SKILL.md +263 -263
- package/templates/ide/antigravity/.agents/skills/dare-rust-workspace/SKILL.md +275 -275
- package/templates/ide/antigravity/.agents/skills/dare-security/SKILL.md +274 -274
- package/templates/ide/antigravity/.agents/skills/dare-skill/SKILL.md +35 -35
- package/templates/ide/antigravity/.agents/skills/dare-tasks/SKILL.md +265 -265
- package/templates/ide/antigravity/.agents/skills/dare-telemetry/SKILL.md +188 -188
- package/templates/ide/antigravity/.agents/skills/dare-update/SKILL.md +33 -33
- package/templates/ide/antigravity/.agents/skills/dare-validate/SKILL.md +33 -33
- package/templates/ide/antigravity/.agents/skills/dare-welcome/SKILL.md +30 -30
- package/templates/ide/antigravity/.agents/skills/skill-fastapi-api/SKILL.md +343 -343
- package/templates/ide/antigravity/.agents/skills/skill-go-gin-api/SKILL.md +377 -377
- package/templates/ide/antigravity/.agents/skills/skill-mcp-server/SKILL.md +382 -382
- package/templates/ide/antigravity/.agents/skills/skill-nestjs-api/SKILL.md +326 -326
- package/templates/ide/antigravity/.agents/skills/skill-rails-api/SKILL.md +393 -393
- package/templates/ide/antigravity/templates/BLUEPRINT-template.md +193 -193
- package/templates/ide/antigravity/templates/DESIGN-template.md +129 -129
- package/templates/ide/antigravity/templates/TASK-SPEC-template.md +141 -141
- package/templates/ide/antigravity/templates/TASKS-template.md +26 -26
- package/templates/ide/antigravity/templates/TELEMETRY-template.md +125 -125
- package/templates/ide/claude/.claude/commands/dare-ax.md +131 -131
- package/templates/ide/claude/.claude/commands/dare-bench.md +18 -18
- package/templates/ide/claude/.claude/commands/dare-blueprint.md +134 -134
- package/templates/ide/claude/.claude/commands/dare-bootstrap.md +27 -27
- package/templates/ide/claude/.claude/commands/dare-bugfix-design.md +119 -119
- package/templates/ide/claude/.claude/commands/dare-dag-build.md +151 -151
- package/templates/ide/claude/.claude/commands/dare-dag-run.md +109 -109
- package/templates/ide/claude/.claude/commands/dare-dag-runner.md +117 -117
- package/templates/ide/claude/.claude/commands/dare-dag-viz.md +197 -197
- package/templates/ide/claude/.claude/commands/dare-dag.md +27 -27
- package/templates/ide/claude/.claude/commands/dare-design.md +69 -69
- package/templates/ide/claude/.claude/commands/dare-discover.md +28 -28
- package/templates/ide/claude/.claude/commands/dare-dna.md +75 -75
- package/templates/ide/claude/.claude/commands/dare-docker.md +207 -207
- package/templates/ide/claude/.claude/commands/dare-execute.md +152 -152
- package/templates/ide/claude/.claude/commands/dare-feature-design.md +147 -147
- package/templates/ide/claude/.claude/commands/dare-frontend-design.md +149 -149
- package/templates/ide/claude/.claude/commands/dare-graph.md +30 -30
- package/templates/ide/claude/.claude/commands/dare-info.md +26 -26
- package/templates/ide/claude/.claude/commands/dare-init.md +30 -30
- package/templates/ide/claude/.claude/commands/dare-laravel-api.md +211 -211
- package/templates/ide/claude/.claude/commands/dare-layered-design.md +124 -124
- package/templates/ide/claude/.claude/commands/dare-llm-integration.md +148 -148
- package/templates/ide/claude/.claude/commands/dare-migrate.md +72 -72
- package/templates/ide/claude/.claude/commands/dare-quality-telemetry.md +166 -166
- package/templates/ide/claude/.claude/commands/dare-realtime.md +159 -159
- package/templates/ide/claude/.claude/commands/dare-refine.md +145 -145
- package/templates/ide/claude/.claude/commands/dare-reverse.md +139 -139
- package/templates/ide/claude/.claude/commands/dare-review.md +113 -113
- package/templates/ide/claude/.claude/commands/dare-rust-leptos.md +269 -269
- package/templates/ide/claude/.claude/commands/dare-rust-workspace.md +209 -209
- package/templates/ide/claude/.claude/commands/dare-security.md +232 -232
- package/templates/ide/claude/.claude/commands/dare-skill.md +30 -30
- package/templates/ide/claude/.claude/commands/dare-tasks.md +70 -70
- package/templates/ide/claude/.claude/commands/dare-telemetry.md +132 -132
- package/templates/ide/claude/.claude/commands/dare-update.md +28 -28
- package/templates/ide/claude/.claude/commands/dare-validate.md +28 -28
- package/templates/ide/claude/.claude/commands/dare-welcome.md +25 -25
- package/templates/ide/claude/.claude/commands/skill-fastapi-api.md +205 -205
- package/templates/ide/claude/.claude/commands/skill-go-gin-api.md +232 -232
- package/templates/ide/claude/.claude/commands/skill-mcp-server.md +228 -228
- package/templates/ide/claude/.claude/commands/skill-nestjs-api.md +210 -210
- package/templates/ide/claude/.claude/commands/skill-rails-api.md +236 -236
- package/templates/ide/claude/.claude/settings.example.json +35 -35
- package/templates/ide/claude/CLAUDE.md +146 -146
- package/templates/ide/claude/templates/BLUEPRINT-template.md +193 -193
- package/templates/ide/claude/templates/DESIGN-template.md +129 -129
- package/templates/ide/claude/templates/TASK-SPEC-template.md +141 -141
- package/templates/ide/claude/templates/TASKS-template.md +26 -26
- package/templates/ide/claude/templates/TELEMETRY-template.md +125 -125
- package/templates/ide/cursor/.cursor/commands/dare-bench.md +18 -18
- package/templates/ide/cursor/.cursor/commands/dare-blueprint.md +86 -86
- package/templates/ide/cursor/.cursor/commands/dare-bootstrap.md +27 -27
- package/templates/ide/cursor/.cursor/commands/dare-bugfix-design.md +64 -64
- package/templates/ide/cursor/.cursor/commands/dare-dag-run.md +110 -110
- package/templates/ide/cursor/.cursor/commands/dare-dag-viz.md +139 -139
- package/templates/ide/cursor/.cursor/commands/dare-dag.md +27 -27
- package/templates/ide/cursor/.cursor/commands/dare-design.md +35 -35
- package/templates/ide/cursor/.cursor/commands/dare-discover.md +28 -28
- package/templates/ide/cursor/.cursor/commands/dare-dna.md +75 -75
- package/templates/ide/cursor/.cursor/commands/dare-docker-compose.md +18 -18
- package/templates/ide/cursor/.cursor/commands/dare-dockerfile.md +17 -17
- package/templates/ide/cursor/.cursor/commands/dare-execute.md +19 -19
- package/templates/ide/cursor/.cursor/commands/dare-feature-design.md +64 -64
- package/templates/ide/cursor/.cursor/commands/dare-graph.md +30 -30
- package/templates/ide/cursor/.cursor/commands/dare-info.md +26 -26
- package/templates/ide/cursor/.cursor/commands/dare-init.md +30 -30
- package/templates/ide/cursor/.cursor/commands/dare-migrate.md +72 -72
- package/templates/ide/cursor/.cursor/commands/dare-refine.md +107 -107
- package/templates/ide/cursor/.cursor/commands/dare-reverse.md +139 -139
- package/templates/ide/cursor/.cursor/commands/dare-review.md +91 -91
- package/templates/ide/cursor/.cursor/commands/dare-skill.md +30 -30
- package/templates/ide/cursor/.cursor/commands/dare-tasks.md +184 -184
- package/templates/ide/cursor/.cursor/commands/dare-telemetry.md +42 -42
- package/templates/ide/cursor/.cursor/commands/dare-update.md +28 -28
- package/templates/ide/cursor/.cursor/commands/dare-validate.md +28 -28
- package/templates/ide/cursor/.cursor/commands/dare-welcome.md +25 -25
- package/templates/ide/cursor/.cursor/rules/skill-ax.mdc +263 -263
- package/templates/ide/cursor/.cursor/rules/skill-bugfix-design.mdc +51 -51
- package/templates/ide/cursor/.cursor/rules/skill-dag-build.mdc +173 -173
- package/templates/ide/cursor/.cursor/rules/skill-dag-run.mdc +134 -134
- package/templates/ide/cursor/.cursor/rules/skill-dag-runner.mdc +221 -221
- package/templates/ide/cursor/.cursor/rules/skill-dna.mdc +63 -63
- package/templates/ide/cursor/.cursor/rules/skill-docker.mdc +33 -33
- package/templates/ide/cursor/.cursor/rules/skill-fastapi-api.mdc +352 -352
- package/templates/ide/cursor/.cursor/rules/skill-feature-design.mdc +43 -43
- package/templates/ide/cursor/.cursor/rules/skill-frontend-design.mdc +244 -244
- package/templates/ide/cursor/.cursor/rules/skill-go-gin-api.mdc +371 -371
- package/templates/ide/cursor/.cursor/rules/skill-laravel-api.mdc +44 -44
- package/templates/ide/cursor/.cursor/rules/skill-layered-design.mdc +266 -266
- package/templates/ide/cursor/.cursor/rules/skill-llm-integration.mdc +295 -295
- package/templates/ide/cursor/.cursor/rules/skill-mcp-server.mdc +367 -367
- package/templates/ide/cursor/.cursor/rules/skill-migrate.mdc +58 -58
- package/templates/ide/cursor/.cursor/rules/skill-nestjs-api.mdc +346 -346
- package/templates/ide/cursor/.cursor/rules/skill-quality-telemetry.mdc +248 -248
- package/templates/ide/cursor/.cursor/rules/skill-rails-api.mdc +400 -400
- package/templates/ide/cursor/.cursor/rules/skill-realtime.mdc +262 -262
- package/templates/ide/cursor/.cursor/rules/skill-reverse.mdc +107 -107
- package/templates/ide/cursor/.cursor/rules/skill-rust-leptos.mdc +281 -281
- package/templates/ide/cursor/.cursor/rules/skill-rust-workspace.mdc +312 -312
- package/templates/ide/cursor/.cursor/rules/skill-security.mdc +245 -245
- package/templates/ide/cursor/.cursor/rules/skill-telemetry.mdc +156 -156
- package/templates/ide/cursor/templates/BLUEPRINT-template.md +193 -193
- package/templates/ide/cursor/templates/DESIGN-template.md +129 -129
- package/templates/ide/cursor/templates/TASK-SPEC-template.md +141 -141
- package/templates/ide/cursor/templates/TASKS-template.md +26 -26
- package/templates/ide/cursor/templates/TELEMETRY-template.md +125 -125
- package/templates/shared/docker-compose.yml +41 -41
- package/templates/stacks/go-gin/.dare/skills.yml +11 -11
- package/templates/stacks/go-gin/.env.example +24 -24
- package/templates/stacks/go-gin/.github/workflows/dare-ci.yml +42 -42
- package/templates/stacks/go-gin/README.md.tpl +38 -38
- package/templates/stacks/go-gin/cmd/server/main.go.tpl +78 -78
- package/templates/stacks/go-gin/db/migrations/0001_create_users.down.sql +2 -2
- package/templates/stacks/go-gin/db/migrations/0001_create_users.up.sql +12 -12
- package/templates/stacks/go-gin/db/queries/users.sql +23 -23
- package/templates/stacks/go-gin/gitignore +7 -7
- package/templates/stacks/go-gin/go.mod.tpl +17 -17
- package/templates/stacks/go-gin/internal/config/config.go +41 -41
- package/templates/stacks/go-gin/internal/db/postgres.go.tpl +25 -25
- package/templates/stacks/go-gin/internal/handler/auth_handler.go.tpl +72 -72
- package/templates/stacks/go-gin/internal/handler/users_handler.go.tpl +72 -72
- package/templates/stacks/go-gin/internal/handler/ws_handler.go +37 -37
- package/templates/stacks/go-gin/internal/llm/dummy.go +14 -14
- package/templates/stacks/go-gin/internal/llm/provider.go +8 -8
- package/templates/stacks/go-gin/internal/middleware/jwt.go.tpl +58 -58
- package/templates/stacks/go-gin/internal/middleware/rate_limit.go +55 -55
- package/templates/stacks/go-gin/internal/model/user.go +17 -17
- package/templates/stacks/go-gin/internal/repository/users_repository.go.tpl +79 -79
- package/templates/stacks/go-gin/internal/service/auth_service.go.tpl +55 -55
- package/templates/stacks/go-gin/internal/service/users_service.go.tpl +53 -53
- package/templates/stacks/go-gin/llms.txt.tpl +54 -54
- package/templates/stacks/go-gin/openapi.json.tpl +46 -46
- package/templates/stacks/go-gin/sqlc.yaml +14 -14
- package/templates/stacks/go-gin/tests/smoke_test.go.tpl +22 -22
- package/templates/stacks/go-stdlib/.dare/skills.yml +11 -11
- package/templates/stacks/go-stdlib/.env.example +24 -24
- package/templates/stacks/go-stdlib/.github/workflows/dare-ci.yml +42 -42
- package/templates/stacks/go-stdlib/README.md.tpl +41 -41
- package/templates/stacks/go-stdlib/cmd/server/main.go.tpl +82 -82
- package/templates/stacks/go-stdlib/db/migrations/0001_create_users.down.sql +2 -2
- package/templates/stacks/go-stdlib/db/migrations/0001_create_users.up.sql +12 -12
- package/templates/stacks/go-stdlib/db/queries/users.sql +23 -23
- package/templates/stacks/go-stdlib/gitignore +6 -6
- package/templates/stacks/go-stdlib/go.mod.tpl +15 -15
- package/templates/stacks/go-stdlib/internal/config/config.go +41 -41
- package/templates/stacks/go-stdlib/internal/db/postgres.go.tpl +24 -24
- package/templates/stacks/go-stdlib/internal/handler/auth_handler.go.tpl +71 -71
- package/templates/stacks/go-stdlib/internal/handler/users_handler.go.tpl +84 -84
- package/templates/stacks/go-stdlib/internal/handler/ws_handler.go +36 -36
- package/templates/stacks/go-stdlib/internal/httpx/json.go +32 -32
- package/templates/stacks/go-stdlib/internal/llm/dummy.go +14 -14
- package/templates/stacks/go-stdlib/internal/llm/provider.go +8 -8
- package/templates/stacks/go-stdlib/internal/middleware/chain.go +21 -21
- package/templates/stacks/go-stdlib/internal/middleware/cors.go +27 -27
- package/templates/stacks/go-stdlib/internal/middleware/jwt.go.tpl +51 -51
- package/templates/stacks/go-stdlib/internal/middleware/rate_limit.go +81 -81
- package/templates/stacks/go-stdlib/internal/model/user.go +17 -17
- package/templates/stacks/go-stdlib/internal/repository/users_repository.go.tpl +75 -75
- package/templates/stacks/go-stdlib/internal/service/auth_service.go.tpl +55 -55
- package/templates/stacks/go-stdlib/internal/service/users_service.go.tpl +53 -53
- package/templates/stacks/go-stdlib/llms.txt.tpl +60 -60
- package/templates/stacks/go-stdlib/openapi.json.tpl +46 -46
- package/templates/stacks/go-stdlib/sqlc.yaml +14 -14
- package/templates/stacks/go-stdlib/tests/smoke_test.go.tpl +45 -45
- package/templates/stacks/mcp-go/.dare/skills.yml +8 -8
- package/templates/stacks/mcp-go/.env.example +14 -14
- package/templates/stacks/mcp-go/.github/workflows/dare-ci.yml +42 -42
- package/templates/stacks/mcp-go/README.md.tpl +50 -50
- package/templates/stacks/mcp-go/cmd/server/main.go.tpl +62 -62
- package/templates/stacks/mcp-go/gitignore +6 -6
- package/templates/stacks/mcp-go/go.mod.tpl +9 -9
- package/templates/stacks/mcp-go/internal/prompts/summarize.go +9 -9
- package/templates/stacks/mcp-go/internal/server/server.go.tpl +80 -80
- package/templates/stacks/mcp-go/internal/tools/echo.go +15 -15
- package/templates/stacks/mcp-go/internal/transports/http.go.tpl +21 -21
- package/templates/stacks/mcp-go/internal/transports/sse.go.tpl +17 -17
- package/templates/stacks/mcp-go/internal/transports/stdio.go.tpl +14 -14
- package/templates/stacks/mcp-go/llms.txt.tpl +60 -60
- package/templates/stacks/mcp-go/openapi.json.tpl +31 -31
- package/templates/stacks/mcp-go/tests/echo_test.go.tpl +37 -37
- package/templates/stacks/mcp-node-ts/.dare/skills.yml +8 -8
- package/templates/stacks/mcp-node-ts/.env.example +16 -16
- package/templates/stacks/mcp-node-ts/.github/workflows/dare-ci.yml +54 -54
- package/templates/stacks/mcp-node-ts/README.md.hbs +49 -49
- package/templates/stacks/mcp-node-ts/gitignore +7 -7
- package/templates/stacks/mcp-node-ts/llms.txt.hbs +61 -61
- package/templates/stacks/mcp-node-ts/openapi.json.hbs +39 -39
- package/templates/stacks/mcp-node-ts/package.json.hbs +35 -35
- package/templates/stacks/mcp-node-ts/src/cli.ts.hbs +71 -71
- package/templates/stacks/mcp-node-ts/src/prompts/index.ts +36 -36
- package/templates/stacks/mcp-node-ts/src/server.ts.hbs +45 -45
- package/templates/stacks/mcp-node-ts/src/tools/echo.ts +23 -23
- package/templates/stacks/mcp-node-ts/src/tools/index.ts +18 -18
- package/templates/stacks/mcp-node-ts/src/transports/http.ts +68 -68
- package/templates/stacks/mcp-node-ts/src/transports/sse.ts +58 -58
- package/templates/stacks/mcp-node-ts/src/transports/stdio.ts +5 -5
- package/templates/stacks/mcp-node-ts/tests/echo.test.ts +50 -50
- package/templates/stacks/mcp-node-ts/tsconfig.json +17 -17
- package/templates/stacks/mcp-python/.dare/skills.yml +8 -8
- package/templates/stacks/mcp-python/.env.example +14 -14
- package/templates/stacks/mcp-python/.github/workflows/dare-ci.yml +42 -42
- package/templates/stacks/mcp-python/README.md.j2 +49 -49
- package/templates/stacks/mcp-python/gitignore +12 -12
- package/templates/stacks/mcp-python/llms.txt.j2 +56 -56
- package/templates/stacks/mcp-python/openapi.json.j2 +33 -33
- package/templates/stacks/mcp-python/pyproject.toml.j2 +37 -37
- package/templates/stacks/mcp-python/src/cli.py.j2 +68 -68
- package/templates/stacks/mcp-python/src/prompts/summarize.py +10 -10
- package/templates/stacks/mcp-python/src/server.py.j2 +28 -28
- package/templates/stacks/mcp-python/src/tools/echo.py +12 -12
- package/templates/stacks/mcp-python/src/transports/http.py +12 -12
- package/templates/stacks/mcp-python/src/transports/sse.py +13 -13
- package/templates/stacks/mcp-python/src/transports/stdio.py +6 -6
- package/templates/stacks/mcp-python/tests/test_echo.py +28 -28
- package/templates/stacks/mcp-rust/.dare/skills.yml +8 -8
- package/templates/stacks/mcp-rust/.env.example +14 -14
- package/templates/stacks/mcp-rust/.github/workflows/dare-ci.yml +38 -38
- package/templates/stacks/mcp-rust/Cargo.toml.tera +35 -35
- package/templates/stacks/mcp-rust/README.md.tera +50 -50
- package/templates/stacks/mcp-rust/gitignore +5 -5
- package/templates/stacks/mcp-rust/llms.txt.tera +60 -60
- package/templates/stacks/mcp-rust/openapi.json.tera +31 -31
- package/templates/stacks/mcp-rust/src/cli.rs.tera +33 -33
- package/templates/stacks/mcp-rust/src/lib.rs +6 -6
- package/templates/stacks/mcp-rust/src/main.rs.tera +30 -30
- package/templates/stacks/mcp-rust/src/prompts/mod.rs +1 -1
- package/templates/stacks/mcp-rust/src/prompts/summarize.rs +5 -5
- package/templates/stacks/mcp-rust/src/server.rs.tera +38 -38
- package/templates/stacks/mcp-rust/src/tools/echo.rs +18 -18
- package/templates/stacks/mcp-rust/src/tools/mod.rs +22 -22
- package/templates/stacks/mcp-rust/src/transports/http.rs +27 -27
- package/templates/stacks/mcp-rust/src/transports/mod.rs +3 -3
- package/templates/stacks/mcp-rust/src/transports/sse.rs +33 -33
- package/templates/stacks/mcp-rust/src/transports/stdio.rs +14 -14
- package/templates/stacks/mcp-rust/tests/echo_test.rs.tera +27 -27
- package/templates/stacks/node-nestjs/.dare/skills.yml +11 -11
- package/templates/stacks/node-nestjs/.env.example +21 -21
- package/templates/stacks/node-nestjs/.github/workflows/dare-ci.yml +54 -54
- package/templates/stacks/node-nestjs/README.md.hbs +35 -35
- package/templates/stacks/node-nestjs/gitignore +7 -7
- package/templates/stacks/node-nestjs/llms.txt.hbs +47 -47
- package/templates/stacks/node-nestjs/nest-cli.json +16 -16
- package/templates/stacks/node-nestjs/openapi.json.hbs +75 -75
- package/templates/stacks/node-nestjs/package.json.hbs +57 -57
- package/templates/stacks/node-nestjs/prisma/schema.prisma +25 -25
- package/templates/stacks/node-nestjs/prisma/seed.ts.hbs +25 -25
- package/templates/stacks/node-nestjs/src/app.module.ts +39 -39
- package/templates/stacks/node-nestjs/src/auth/auth.controller.ts +29 -29
- package/templates/stacks/node-nestjs/src/auth/auth.module.ts +25 -25
- package/templates/stacks/node-nestjs/src/auth/auth.service.ts +36 -36
- package/templates/stacks/node-nestjs/src/auth/dto/login-response.dto.ts +9 -9
- package/templates/stacks/node-nestjs/src/auth/dto/login.dto.ts +17 -17
- package/templates/stacks/node-nestjs/src/auth/jwt.strategy.ts +25 -25
- package/templates/stacks/node-nestjs/src/common/filters/problem-details.filter.ts +38 -38
- package/templates/stacks/node-nestjs/src/common/interceptors/json-response.interceptor.ts +13 -13
- package/templates/stacks/node-nestjs/src/main.ts.hbs +44 -44
- package/templates/stacks/node-nestjs/src/prisma/prisma.module.ts +9 -9
- package/templates/stacks/node-nestjs/src/prisma/prisma.service.ts +9 -9
- package/templates/stacks/node-nestjs/src/users/dto/create-user.dto.ts +22 -22
- package/templates/stacks/node-nestjs/src/users/dto/user.dto.ts +15 -15
- package/templates/stacks/node-nestjs/src/users/users.controller.ts +41 -41
- package/templates/stacks/node-nestjs/src/users/users.module.ts +11 -11
- package/templates/stacks/node-nestjs/src/users/users.repository.ts +38 -38
- package/templates/stacks/node-nestjs/src/users/users.service.ts +38 -38
- package/templates/stacks/node-nestjs/tsconfig.build.json +4 -4
- package/templates/stacks/node-nestjs/tsconfig.json +28 -28
- package/templates/stacks/php-laravel/.dare/skills.yml +11 -11
- package/templates/stacks/php-laravel/.env.example +41 -41
- package/templates/stacks/php-laravel/.github/workflows/dare-ci.yml +43 -43
- package/templates/stacks/php-laravel/README.md.hbs +36 -36
- package/templates/stacks/php-laravel/app/Http/Controllers/Api/AuthController.php +36 -36
- package/templates/stacks/php-laravel/app/Http/Controllers/Api/UsersController.php +33 -33
- package/templates/stacks/php-laravel/app/Http/Requests/CreateUserRequest.php +26 -26
- package/templates/stacks/php-laravel/app/Http/Requests/LoginRequest.php +34 -34
- package/templates/stacks/php-laravel/app/Llm/Contracts/LlmProvider.php +12 -12
- package/templates/stacks/php-laravel/app/Llm/Providers/DummyProvider.php +13 -13
- package/templates/stacks/php-laravel/app/Llm/Providers/OpenAiProvider.php +33 -33
- package/templates/stacks/php-laravel/app/Models/User.php +44 -44
- package/templates/stacks/php-laravel/app/Repositories/UsersRepository.php +32 -32
- package/templates/stacks/php-laravel/app/Services/AuthService.php +37 -37
- package/templates/stacks/php-laravel/app/Services/UsersService.php +57 -57
- package/templates/stacks/php-laravel/artisan +12 -12
- package/templates/stacks/php-laravel/bootstrap/app.php +29 -29
- package/templates/stacks/php-laravel/bootstrap/providers.php +5 -5
- package/templates/stacks/php-laravel/composer.json.hbs +58 -58
- package/templates/stacks/php-laravel/config/l5-swagger.php +41 -41
- package/templates/stacks/php-laravel/config/reverb.php +34 -34
- package/templates/stacks/php-laravel/config/sanctum.php +15 -15
- package/templates/stacks/php-laravel/database/migrations/2026_06_01_000001_create_users_table.php +27 -27
- package/templates/stacks/php-laravel/database/seeders/DatabaseSeeder.php +21 -21
- package/templates/stacks/php-laravel/gitignore +23 -23
- package/templates/stacks/php-laravel/llms.txt.hbs +53 -53
- package/templates/stacks/php-laravel/openapi.json.hbs +43 -43
- package/templates/stacks/php-laravel/phpstan.neon +9 -9
- package/templates/stacks/php-laravel/routes/api.php +13 -13
- package/templates/stacks/php-laravel/routes/channels.php +7 -7
- package/templates/stacks/php-laravel/tests/Feature/AuthTest.php +35 -35
- package/templates/stacks/php-laravel/tests/Feature/UsersTest.php +30 -30
- package/templates/stacks/php-laravel/tests/Pest.php +5 -5
- package/templates/stacks/python-fastapi/.dare/skills.yml +11 -11
- package/templates/stacks/python-fastapi/.env.example +21 -21
- package/templates/stacks/python-fastapi/.github/workflows/dare-ci.yml +43 -43
- package/templates/stacks/python-fastapi/README.md.j2 +35 -35
- package/templates/stacks/python-fastapi/alembic/env.py +46 -46
- package/templates/stacks/python-fastapi/alembic/script.py.mako +26 -26
- package/templates/stacks/python-fastapi/alembic/versions/0001_create_users.py.j2 +37 -37
- package/templates/stacks/python-fastapi/alembic.ini.j2 +39 -39
- package/templates/stacks/python-fastapi/app/core/config.py +24 -24
- package/templates/stacks/python-fastapi/app/core/security.py +34 -34
- package/templates/stacks/python-fastapi/app/db/session.py +22 -22
- package/templates/stacks/python-fastapi/app/main.py.j2 +36 -36
- package/templates/stacks/python-fastapi/app/models/__init__.py +3 -3
- package/templates/stacks/python-fastapi/app/models/user.py +30 -30
- package/templates/stacks/python-fastapi/app/repositories/user_repository.py +34 -34
- package/templates/stacks/python-fastapi/app/routers/auth.py +37 -37
- package/templates/stacks/python-fastapi/app/routers/users.py +46 -46
- package/templates/stacks/python-fastapi/app/schemas/user.py +56 -56
- package/templates/stacks/python-fastapi/app/services/auth_service.py +22 -22
- package/templates/stacks/python-fastapi/app/services/user_service.py +31 -31
- package/templates/stacks/python-fastapi/gitignore +12 -12
- package/templates/stacks/python-fastapi/llms.txt.j2 +53 -53
- package/templates/stacks/python-fastapi/openapi.json.j2 +43 -43
- package/templates/stacks/python-fastapi/pyproject.toml.j2 +45 -45
- package/templates/stacks/python-fastapi/tests/test_auth.py +22 -22
- package/templates/stacks/ruby-rails-8/.dare/skills.yml +50 -50
- package/templates/stacks/ruby-rails-8/.env.example +20 -20
- package/templates/stacks/ruby-rails-8/.github/workflows/dare-ci.yml +112 -112
- package/templates/stacks/ruby-rails-8/Gemfile.erb +61 -61
- package/templates/stacks/ruby-rails-8/app/channels/application_cable/channel.rb +11 -11
- package/templates/stacks/ruby-rails-8/app/channels/application_cable/connection.rb +34 -34
- package/templates/stacks/ruby-rails-8/app/channels/dare_updates_channel.rb +18 -18
- package/templates/stacks/ruby-rails-8/app/channels/user_updates_channel.rb +23 -23
- package/templates/stacks/ruby-rails-8/app/controllers/application_controller.rb +44 -44
- package/templates/stacks/ruby-rails-8/app/controllers/concerns/problem_details.rb +93 -93
- package/templates/stacks/ruby-rails-8/app/handlers/summarize_handler.rb +33 -33
- package/templates/stacks/ruby-rails-8/app/handlers/users_handler.rb +68 -68
- package/templates/stacks/ruby-rails-8/app/llm/cache/llm_cache.rb +44 -44
- package/templates/stacks/ruby-rails-8/app/llm/prompts/prompt_loader.rb +54 -54
- package/templates/stacks/ruby-rails-8/app/llm/prompts/summarize_v1.jinja2 +12 -12
- package/templates/stacks/ruby-rails-8/app/llm/providers/dummy_provider.rb +35 -35
- package/templates/stacks/ruby-rails-8/app/llm/providers/llm_provider.rb +67 -67
- package/templates/stacks/ruby-rails-8/app/llm/providers/openai_provider.rb +62 -62
- package/templates/stacks/ruby-rails-8/app/llm/rate_limit/token_bucket.rb +82 -82
- package/templates/stacks/ruby-rails-8/app/llm/validators/summarize_output_schema.json +21 -21
- package/templates/stacks/ruby-rails-8/app/llm/validators/validator.rb +52 -52
- package/templates/stacks/ruby-rails-8/app/models/user.rb +36 -36
- package/templates/stacks/ruby-rails-8/app/presenters/user_presenter.rb +48 -48
- package/templates/stacks/ruby-rails-8/app/repositories/document_repository.rb +57 -57
- package/templates/stacks/ruby-rails-8/app/repositories/user_repository.rb +73 -73
- package/templates/stacks/ruby-rails-8/app/services/create_user_service.rb +67 -67
- package/templates/stacks/ruby-rails-8/app/services/realtime_service.rb +53 -53
- package/templates/stacks/ruby-rails-8/app/services/summarize_document_service.rb +57 -57
- package/templates/stacks/ruby-rails-8/config/dare.yml +42 -42
- package/templates/stacks/ruby-rails-8/config/initializers/dare.rb +31 -31
- package/templates/stacks/ruby-rails-8/config/initializers/rack_attack.rb +64 -64
- package/templates/stacks/ruby-rails-8/config/initializers/rswag_api.rb +12 -12
- package/templates/stacks/ruby-rails-8/lib/tasks/dare.rake +159 -159
- package/templates/stacks/ruby-rails-8/llms.txt.erb +69 -69
- package/templates/stacks/ruby-rails-8/spec/api/summarize_spec.rb +56 -56
- package/templates/stacks/ruby-rails-8/spec/api/users_spec.rb +72 -72
- package/templates/stacks/ruby-rails-8/spec/channels/dare_updates_channel_spec.rb +61 -61
- package/templates/stacks/ruby-rails-8/spec/channels/user_updates_channel_spec.rb +56 -56
- package/templates/stacks/ruby-rails-8/spec/factories/users.rb +27 -27
- package/templates/stacks/ruby-rails-8/spec/handlers/users_handler_spec.rb +88 -88
- package/templates/stacks/ruby-rails-8/spec/rails_helper.rb +31 -31
- package/templates/stacks/ruby-rails-8/spec/services/create_user_service_spec.rb +88 -88
- package/templates/stacks/ruby-rails-8/spec/services/summarize_document_service_spec.rb +142 -142
- package/templates/stacks/ruby-rails-8/spec/swagger_helper.rb +73 -73
- package/templates/stacks/rust-axum/.dare/skills.yml +11 -11
- package/templates/stacks/rust-axum/.env.example +26 -26
- package/templates/stacks/rust-axum/.github/workflows/dare-ci.yml +40 -40
- package/templates/stacks/rust-axum/Cargo.toml.tera +53 -53
- package/templates/stacks/rust-axum/README.md.tera +37 -37
- package/templates/stacks/rust-axum/gitignore +5 -5
- package/templates/stacks/rust-axum/llms.txt.tera +54 -54
- package/templates/stacks/rust-axum/migrations/0001_create_users.sql +13 -13
- package/templates/stacks/rust-axum/openapi.json.tera +46 -46
- package/templates/stacks/rust-axum/src/config.rs +45 -45
- package/templates/stacks/rust-axum/src/errors.rs +48 -48
- package/templates/stacks/rust-axum/src/handlers/auth.rs +48 -48
- package/templates/stacks/rust-axum/src/handlers/mod.rs +3 -3
- package/templates/stacks/rust-axum/src/handlers/users.rs +81 -81
- package/templates/stacks/rust-axum/src/handlers/ws.rs +24 -24
- package/templates/stacks/rust-axum/src/lib.rs +19 -19
- package/templates/stacks/rust-axum/src/llm/mod.rs +1 -1
- package/templates/stacks/rust-axum/src/llm/provider.rs +48 -48
- package/templates/stacks/rust-axum/src/main.rs.tera +64 -64
- package/templates/stacks/rust-axum/src/middleware/auth.rs +20 -20
- package/templates/stacks/rust-axum/src/middleware/mod.rs +2 -2
- package/templates/stacks/rust-axum/src/middleware/rate_limit.rs +27 -27
- package/templates/stacks/rust-axum/src/models/mod.rs +1 -1
- package/templates/stacks/rust-axum/src/models/user.rs +13 -13
- package/templates/stacks/rust-axum/src/repositories/mod.rs +1 -1
- package/templates/stacks/rust-axum/src/repositories/user_repository.rs +62 -62
- package/templates/stacks/rust-axum/src/services/auth_service.rs +50 -50
- package/templates/stacks/rust-axum/src/services/mod.rs +2 -2
- package/templates/stacks/rust-axum/src/services/user_service.rs +53 -53
- package/templates/stacks/rust-axum/tests/integration_test.rs.tera +13 -13
- package/dist/commands/new.d.ts +0 -16
- package/dist/commands/new.d.ts.map +0 -1
- package/dist/commands/new.js +0 -104
- package/dist/commands/new.js.map +0 -1
package/dist/utils/templates.js
CHANGED
|
@@ -1,473 +1,473 @@
|
|
|
1
1
|
export function generateCursorRules(config) {
|
|
2
2
|
const { backend, frontend, graphrag, mcp } = config;
|
|
3
3
|
const backendRules = {
|
|
4
|
-
'rust-axum': `## Backend: Rust/Axum
|
|
5
|
-
- Use Rust idioms and patterns (no unwrap in production)
|
|
6
|
-
- Prefer async/await with Tokio runtime
|
|
7
|
-
- Use Axum extractors for request handling
|
|
8
|
-
- Handle all errors with thiserror/anyhow
|
|
9
|
-
- Run \`cargo clippy\` and \`cargo test\` before completing any task (Ralph Loop)
|
|
4
|
+
'rust-axum': `## Backend: Rust/Axum
|
|
5
|
+
- Use Rust idioms and patterns (no unwrap in production)
|
|
6
|
+
- Prefer async/await with Tokio runtime
|
|
7
|
+
- Use Axum extractors for request handling
|
|
8
|
+
- Handle all errors with thiserror/anyhow
|
|
9
|
+
- Run \`cargo clippy\` and \`cargo test\` before completing any task (Ralph Loop)
|
|
10
10
|
- Use SQLx for database queries with compile-time verification`,
|
|
11
|
-
'node-nestjs': `## Backend: Node.js/NestJS
|
|
12
|
-
- Use NestJS decorators and dependency injection
|
|
13
|
-
- Define DTOs with class-validator for all inputs
|
|
14
|
-
- Use TypeORM or Prisma for database access
|
|
15
|
-
- Write Jest unit and e2e tests for all services
|
|
11
|
+
'node-nestjs': `## Backend: Node.js/NestJS
|
|
12
|
+
- Use NestJS decorators and dependency injection
|
|
13
|
+
- Define DTOs with class-validator for all inputs
|
|
14
|
+
- Use TypeORM or Prisma for database access
|
|
15
|
+
- Write Jest unit and e2e tests for all services
|
|
16
16
|
- Follow NestJS module structure`,
|
|
17
|
-
'python-fastapi': `## Backend: Python/FastAPI
|
|
18
|
-
- Use Pydantic v2 for all data validation
|
|
19
|
-
- Type all functions with PEP 484 type hints
|
|
20
|
-
- Use async/await for all IO operations
|
|
21
|
-
- Follow PEP 8 and use ruff for linting
|
|
17
|
+
'python-fastapi': `## Backend: Python/FastAPI
|
|
18
|
+
- Use Pydantic v2 for all data validation
|
|
19
|
+
- Type all functions with PEP 484 type hints
|
|
20
|
+
- Use async/await for all IO operations
|
|
21
|
+
- Follow PEP 8 and use ruff for linting
|
|
22
22
|
- Write pytest tests with coverage`,
|
|
23
|
-
'php-laravel': `## Backend: PHP/Laravel
|
|
24
|
-
- Follow PSR-12 coding standards
|
|
25
|
-
- Use FormRequests for all input validation
|
|
26
|
-
- Use API Resources for all responses
|
|
27
|
-
- Write PHPUnit feature and unit tests
|
|
23
|
+
'php-laravel': `## Backend: PHP/Laravel
|
|
24
|
+
- Follow PSR-12 coding standards
|
|
25
|
+
- Use FormRequests for all input validation
|
|
26
|
+
- Use API Resources for all responses
|
|
27
|
+
- Write PHPUnit feature and unit tests
|
|
28
28
|
- Use Eloquent ORM with proper relationships`,
|
|
29
29
|
};
|
|
30
30
|
const frontendRules = {
|
|
31
|
-
react: `## Frontend: React 18+
|
|
32
|
-
- Use functional components with hooks only
|
|
33
|
-
- TypeScript for all components and hooks
|
|
34
|
-
- Prefer React Query for server state management
|
|
35
|
-
- Use Zustand or Context API for client state
|
|
31
|
+
react: `## Frontend: React 18+
|
|
32
|
+
- Use functional components with hooks only
|
|
33
|
+
- TypeScript for all components and hooks
|
|
34
|
+
- Prefer React Query for server state management
|
|
35
|
+
- Use Zustand or Context API for client state
|
|
36
36
|
- Write Vitest + Testing Library tests`,
|
|
37
|
-
vue: `## Frontend: Vue 3+
|
|
38
|
-
- Use Composition API with <script setup> syntax
|
|
39
|
-
- TypeScript for all components
|
|
40
|
-
- Use Pinia for state management
|
|
41
|
-
- Use Vue Router for navigation
|
|
37
|
+
vue: `## Frontend: Vue 3+
|
|
38
|
+
- Use Composition API with <script setup> syntax
|
|
39
|
+
- TypeScript for all components
|
|
40
|
+
- Use Pinia for state management
|
|
41
|
+
- Use Vue Router for navigation
|
|
42
42
|
- Write Vitest + Vue Test Utils tests`,
|
|
43
|
-
'rust-leptos': `## Frontend: Leptos fullstack (Rust SSR + WASM)
|
|
44
|
-
- Use \`#[component]\` macro — no class components
|
|
45
|
-
- State: \`signal()\`, \`Resource\` for async, \`Action\` for mutations
|
|
46
|
-
- Loading: \`Suspense\`/\`Transition\` — never block the render
|
|
47
|
-
- Server functions: \`#[server]\` macro (ssr feature only)
|
|
48
|
-
- Shared types: \`#[cfg_attr(feature = "ssr", derive(sqlx::FromRow))]\`
|
|
49
|
-
- Avoid: \`tokio::spawn\` on client, \`panic!\` in components, \`Effect\` for fetch
|
|
43
|
+
'rust-leptos': `## Frontend: Leptos fullstack (Rust SSR + WASM)
|
|
44
|
+
- Use \`#[component]\` macro — no class components
|
|
45
|
+
- State: \`signal()\`, \`Resource\` for async, \`Action\` for mutations
|
|
46
|
+
- Loading: \`Suspense\`/\`Transition\` — never block the render
|
|
47
|
+
- Server functions: \`#[server]\` macro (ssr feature only)
|
|
48
|
+
- Shared types: \`#[cfg_attr(feature = "ssr", derive(sqlx::FromRow))]\`
|
|
49
|
+
- Avoid: \`tokio::spawn\` on client, \`panic!\` in components, \`Effect\` for fetch
|
|
50
50
|
- Build: \`cargo leptos build\` | Test: \`cargo test --workspace\` | Dev: \`cargo leptos watch\``,
|
|
51
|
-
'rust-leptos-csr': `## Frontend: Leptos CSR (Rust WASM + trunk)
|
|
52
|
-
- Pure client-side WASM — no SSR, no \`#[server]\` functions
|
|
53
|
-
- Use \`#[component]\` macro, \`signal()\` for state, \`Resource\` for async
|
|
54
|
-
- Build tool: \`trunk build\` (NOT cargo leptos) | Dev: \`trunk serve\`
|
|
51
|
+
'rust-leptos-csr': `## Frontend: Leptos CSR (Rust WASM + trunk)
|
|
52
|
+
- Pure client-side WASM — no SSR, no \`#[server]\` functions
|
|
53
|
+
- Use \`#[component]\` macro, \`signal()\` for state, \`Resource\` for async
|
|
54
|
+
- Build tool: \`trunk build\` (NOT cargo leptos) | Dev: \`trunk serve\`
|
|
55
55
|
- Test: \`cargo test --workspace\` | Deploy: \`dist/\` is fully static`,
|
|
56
56
|
};
|
|
57
|
-
return `# DARE Framework - Cursor Rules
|
|
58
|
-
|
|
59
|
-
## DARE Methodology
|
|
60
|
-
You are an AI assistant following the DARE methodology:
|
|
61
|
-
- **D**esign: Define requirements and architecture
|
|
62
|
-
- **A**rchitect: Create technical blueprint and task graph
|
|
63
|
-
- **R**eview: Validate implementation against blueprint
|
|
64
|
-
- **E**xecute: Implement tasks following the DAG
|
|
65
|
-
|
|
66
|
-
## Core Rules
|
|
67
|
-
- Always read DARE/BLUEPRINT.md before implementing any feature
|
|
68
|
-
- Update DARE/TASKS.md status after completing each task
|
|
69
|
-
- Never skip the Ralph Loop (build → test → lint) before marking a task as DONE
|
|
70
|
-
- Human approval is required before merging to main branch
|
|
71
|
-
- Context is king: use MCP Server queries instead of re-reading large files
|
|
72
|
-
|
|
73
|
-
## Project Structure
|
|
74
|
-
- DARE/ - Methodology files (DESIGN.md, BLUEPRINT.md, TASKS.md, dare-dag.yaml)
|
|
75
|
-
- DARE/EXECUTION/ - Task execution logs
|
|
76
|
-
|
|
77
|
-
${backend && backendRules[backend] ? backendRules[backend] : ''}
|
|
78
|
-
|
|
79
|
-
${frontend && frontendRules[frontend] ? frontendRules[frontend] : ''}
|
|
80
|
-
|
|
81
|
-
## GraphRAG Context (${graphrag})
|
|
82
|
-
${mcp ? `- Query MCP Server at http://localhost:3000 for context instead of reading full files
|
|
83
|
-
- Use POST /context/query with {"type": "file"|"task"|"dependency", "query": "..."}` : '- Use DARE/BLUEPRINT.md as the single source of truth for context'}
|
|
84
|
-
|
|
85
|
-
## Ralph Loop (Mandatory before DONE)
|
|
86
|
-
1. Build the project (cargo build / npm run build / etc)
|
|
87
|
-
2. Run tests (cargo test / npm test / pytest / etc)
|
|
88
|
-
3. Run linter (cargo clippy / eslint / ruff / phpstan)
|
|
89
|
-
4. Only mark task as DONE if all 3 steps pass
|
|
57
|
+
return `# DARE Framework - Cursor Rules
|
|
58
|
+
|
|
59
|
+
## DARE Methodology
|
|
60
|
+
You are an AI assistant following the DARE methodology:
|
|
61
|
+
- **D**esign: Define requirements and architecture
|
|
62
|
+
- **A**rchitect: Create technical blueprint and task graph
|
|
63
|
+
- **R**eview: Validate implementation against blueprint
|
|
64
|
+
- **E**xecute: Implement tasks following the DAG
|
|
65
|
+
|
|
66
|
+
## Core Rules
|
|
67
|
+
- Always read DARE/BLUEPRINT.md before implementing any feature
|
|
68
|
+
- Update DARE/TASKS.md status after completing each task
|
|
69
|
+
- Never skip the Ralph Loop (build → test → lint) before marking a task as DONE
|
|
70
|
+
- Human approval is required before merging to main branch
|
|
71
|
+
- Context is king: use MCP Server queries instead of re-reading large files
|
|
72
|
+
|
|
73
|
+
## Project Structure
|
|
74
|
+
- DARE/ - Methodology files (DESIGN.md, BLUEPRINT.md, TASKS.md, dare-dag.yaml)
|
|
75
|
+
- DARE/EXECUTION/ - Task execution logs
|
|
76
|
+
|
|
77
|
+
${backend && backendRules[backend] ? backendRules[backend] : ''}
|
|
78
|
+
|
|
79
|
+
${frontend && frontendRules[frontend] ? frontendRules[frontend] : ''}
|
|
80
|
+
|
|
81
|
+
## GraphRAG Context (${graphrag})
|
|
82
|
+
${mcp ? `- Query MCP Server at http://localhost:3000 for context instead of reading full files
|
|
83
|
+
- Use POST /context/query with {"type": "file"|"task"|"dependency", "query": "..."}` : '- Use DARE/BLUEPRINT.md as the single source of truth for context'}
|
|
84
|
+
|
|
85
|
+
## Ralph Loop (Mandatory before DONE)
|
|
86
|
+
1. Build the project (cargo build / npm run build / etc)
|
|
87
|
+
2. Run tests (cargo test / npm test / pytest / etc)
|
|
88
|
+
3. Run linter (cargo clippy / eslint / ruff / phpstan)
|
|
89
|
+
4. Only mark task as DONE if all 3 steps pass
|
|
90
90
|
`;
|
|
91
91
|
}
|
|
92
92
|
export function generateAntigravityRules(config) {
|
|
93
93
|
const { backend, frontend, graphrag, mcp } = config;
|
|
94
|
-
return `# DARE Framework - Antigravity Rules
|
|
95
|
-
|
|
96
|
-
## Agent Configuration
|
|
97
|
-
You are an autonomous AI agent following the DARE methodology.
|
|
98
|
-
Execute tasks from DARE/dare-dag.yaml in parallel when dependencies allow.
|
|
99
|
-
|
|
100
|
-
## DARE Phases
|
|
101
|
-
- **Design**: Read DARE/DESIGN.md for requirements
|
|
102
|
-
- **Architect**: Read DARE/BLUEPRINT.md for technical spec
|
|
103
|
-
- **Review**: Validate against blueprint before marking DONE
|
|
104
|
-
- **Execute**: Implement tasks, update DARE/TASKS.md
|
|
105
|
-
|
|
106
|
-
## Stack
|
|
107
|
-
${backend ? `- Backend: ${backend}` : ''}
|
|
108
|
-
${frontend ? `- Frontend: ${frontend}` : ''}
|
|
109
|
-
|
|
110
|
-
## Context Strategy (${graphrag})
|
|
111
|
-
${mcp ? `- Query MCP Server at http://localhost:3000 for context
|
|
112
|
-
- Avoid reading full files; use targeted queries` : '- Read DARE/BLUEPRINT.md for context'}
|
|
113
|
-
|
|
114
|
-
## Execution Rules
|
|
115
|
-
- Always check task dependencies before starting
|
|
116
|
-
- Update task status in DARE/TASKS.md in real-time
|
|
117
|
-
- Run Ralph Loop before marking any task as DONE
|
|
118
|
-
- Request human review for architectural decisions
|
|
94
|
+
return `# DARE Framework - Antigravity Rules
|
|
95
|
+
|
|
96
|
+
## Agent Configuration
|
|
97
|
+
You are an autonomous AI agent following the DARE methodology.
|
|
98
|
+
Execute tasks from DARE/dare-dag.yaml in parallel when dependencies allow.
|
|
99
|
+
|
|
100
|
+
## DARE Phases
|
|
101
|
+
- **Design**: Read DARE/DESIGN.md for requirements
|
|
102
|
+
- **Architect**: Read DARE/BLUEPRINT.md for technical spec
|
|
103
|
+
- **Review**: Validate against blueprint before marking DONE
|
|
104
|
+
- **Execute**: Implement tasks, update DARE/TASKS.md
|
|
105
|
+
|
|
106
|
+
## Stack
|
|
107
|
+
${backend ? `- Backend: ${backend}` : ''}
|
|
108
|
+
${frontend ? `- Frontend: ${frontend}` : ''}
|
|
109
|
+
|
|
110
|
+
## Context Strategy (${graphrag})
|
|
111
|
+
${mcp ? `- Query MCP Server at http://localhost:3000 for context
|
|
112
|
+
- Avoid reading full files; use targeted queries` : '- Read DARE/BLUEPRINT.md for context'}
|
|
113
|
+
|
|
114
|
+
## Execution Rules
|
|
115
|
+
- Always check task dependencies before starting
|
|
116
|
+
- Update task status in DARE/TASKS.md in real-time
|
|
117
|
+
- Run Ralph Loop before marking any task as DONE
|
|
118
|
+
- Request human review for architectural decisions
|
|
119
119
|
`;
|
|
120
120
|
}
|
|
121
121
|
export function generateMcpCursorRules(config) {
|
|
122
122
|
const { mcpTransport = 'stdio', mcpLanguage = 'node-ts', mcpFeatures = ['tools'], graphrag, mcp } = config;
|
|
123
123
|
const featuresStr = mcpFeatures.join(', ');
|
|
124
124
|
const langRules = mcpLanguage === 'python'
|
|
125
|
-
? `## Language: Python
|
|
126
|
-
- Use FastMCP (@mcp.tool, @mcp.resource, @mcp.prompt decorators)
|
|
127
|
-
- Type all arguments — FastMCP builds JSON schema from type hints
|
|
128
|
-
- Use docstrings as tool/resource/prompt descriptions
|
|
129
|
-
- Test: npx @modelcontextprotocol/inspector python main.py
|
|
125
|
+
? `## Language: Python
|
|
126
|
+
- Use FastMCP (@mcp.tool, @mcp.resource, @mcp.prompt decorators)
|
|
127
|
+
- Type all arguments — FastMCP builds JSON schema from type hints
|
|
128
|
+
- Use docstrings as tool/resource/prompt descriptions
|
|
129
|
+
- Test: npx @modelcontextprotocol/inspector python main.py
|
|
130
130
|
- Lint: ruff check . && mypy .`
|
|
131
|
-
: `## Language: TypeScript
|
|
132
|
-
- Import from '@modelcontextprotocol/sdk/server/index.js' and types
|
|
133
|
-
- Always define strict inputSchema for every tool (Claude depends on it)
|
|
134
|
-
- Use zod for runtime validation when needed
|
|
135
|
-
- Test: npm run inspect (MCP Inspector)
|
|
131
|
+
: `## Language: TypeScript
|
|
132
|
+
- Import from '@modelcontextprotocol/sdk/server/index.js' and types
|
|
133
|
+
- Always define strict inputSchema for every tool (Claude depends on it)
|
|
134
|
+
- Use zod for runtime validation when needed
|
|
135
|
+
- Test: npm run inspect (MCP Inspector)
|
|
136
136
|
- Build: npm run build before marking any task DONE`;
|
|
137
137
|
const transportNote = mcpTransport === 'stdio'
|
|
138
138
|
? `- Transport: stdio — server communicates via stdin/stdout, no HTTP port needed`
|
|
139
139
|
: mcpTransport === 'sse'
|
|
140
140
|
? `- Transport: SSE — server exposes GET /sse and POST /messages endpoints`
|
|
141
141
|
: `- Transport: HTTP Stream — use StreamableHTTPServerTransport`;
|
|
142
|
-
return `# DARE Framework - Cursor Rules (MCP Server Project)
|
|
143
|
-
|
|
144
|
-
## DARE Methodology
|
|
145
|
-
You are an AI assistant following the DARE methodology:
|
|
146
|
-
- **D**esign: Define MCP server requirements and capabilities
|
|
147
|
-
- **A**rchitect: Create technical blueprint and task graph
|
|
148
|
-
- **R**eview: Validate implementation against blueprint
|
|
149
|
-
- **E**xecute: Implement tools, resources, and prompts following the DAG
|
|
150
|
-
|
|
151
|
-
## Core Rules
|
|
152
|
-
- Always read DARE/BLUEPRINT.md before implementing any tool or resource
|
|
153
|
-
- Update DARE/TASKS.md status after completing each task
|
|
154
|
-
- Never skip the Ralph Loop (build → test → inspect) before marking a task as DONE
|
|
155
|
-
- Test every tool with MCP Inspector before marking DONE
|
|
156
|
-
- Validate tool inputSchema matches actual handler logic exactly
|
|
157
|
-
|
|
158
|
-
## MCP Server Configuration
|
|
159
|
-
- Transport: ${mcpTransport}
|
|
160
|
-
- Features: ${featuresStr}
|
|
161
|
-
${transportNote}
|
|
162
|
-
|
|
163
|
-
${langRules}
|
|
164
|
-
|
|
165
|
-
## MCP Best Practices
|
|
166
|
-
- Keep tool names snake_case and descriptive
|
|
167
|
-
- Return structured content arrays, not plain strings
|
|
168
|
-
- Handle unknown tool/resource/prompt names with explicit errors
|
|
169
|
-
- Never expose secrets via tool outputs or resource contents
|
|
170
|
-
- Document every tool argument in inputSchema description fields
|
|
171
|
-
|
|
172
|
-
## GraphRAG Context (${graphrag})
|
|
173
|
-
${mcp ? `- Query MCP Server at http://localhost:3000 for context instead of reading full files` : '- Use DARE/BLUEPRINT.md as the single source of truth'}
|
|
174
|
-
|
|
175
|
-
## Ralph Loop (Mandatory before DONE)
|
|
176
|
-
1. Build (npm run build / python -m py_compile)
|
|
177
|
-
2. Test (npm test / pytest)
|
|
178
|
-
3. Inspect with MCP Inspector to verify tool contracts
|
|
179
|
-
4. Only mark DONE if all 3 steps pass
|
|
142
|
+
return `# DARE Framework - Cursor Rules (MCP Server Project)
|
|
143
|
+
|
|
144
|
+
## DARE Methodology
|
|
145
|
+
You are an AI assistant following the DARE methodology:
|
|
146
|
+
- **D**esign: Define MCP server requirements and capabilities
|
|
147
|
+
- **A**rchitect: Create technical blueprint and task graph
|
|
148
|
+
- **R**eview: Validate implementation against blueprint
|
|
149
|
+
- **E**xecute: Implement tools, resources, and prompts following the DAG
|
|
150
|
+
|
|
151
|
+
## Core Rules
|
|
152
|
+
- Always read DARE/BLUEPRINT.md before implementing any tool or resource
|
|
153
|
+
- Update DARE/TASKS.md status after completing each task
|
|
154
|
+
- Never skip the Ralph Loop (build → test → inspect) before marking a task as DONE
|
|
155
|
+
- Test every tool with MCP Inspector before marking DONE
|
|
156
|
+
- Validate tool inputSchema matches actual handler logic exactly
|
|
157
|
+
|
|
158
|
+
## MCP Server Configuration
|
|
159
|
+
- Transport: ${mcpTransport}
|
|
160
|
+
- Features: ${featuresStr}
|
|
161
|
+
${transportNote}
|
|
162
|
+
|
|
163
|
+
${langRules}
|
|
164
|
+
|
|
165
|
+
## MCP Best Practices
|
|
166
|
+
- Keep tool names snake_case and descriptive
|
|
167
|
+
- Return structured content arrays, not plain strings
|
|
168
|
+
- Handle unknown tool/resource/prompt names with explicit errors
|
|
169
|
+
- Never expose secrets via tool outputs or resource contents
|
|
170
|
+
- Document every tool argument in inputSchema description fields
|
|
171
|
+
|
|
172
|
+
## GraphRAG Context (${graphrag})
|
|
173
|
+
${mcp ? `- Query MCP Server at http://localhost:3000 for context instead of reading full files` : '- Use DARE/BLUEPRINT.md as the single source of truth'}
|
|
174
|
+
|
|
175
|
+
## Ralph Loop (Mandatory before DONE)
|
|
176
|
+
1. Build (npm run build / python -m py_compile)
|
|
177
|
+
2. Test (npm test / pytest)
|
|
178
|
+
3. Inspect with MCP Inspector to verify tool contracts
|
|
179
|
+
4. Only mark DONE if all 3 steps pass
|
|
180
180
|
`;
|
|
181
181
|
}
|
|
182
182
|
export function generateMcpAntigravityRules(config) {
|
|
183
183
|
const { mcpTransport = 'stdio', mcpLanguage = 'node-ts', mcpFeatures = ['tools'], graphrag, mcp } = config;
|
|
184
|
-
return `# DARE Framework - Antigravity Rules (MCP Server Project)
|
|
185
|
-
|
|
186
|
-
## Agent Configuration
|
|
187
|
-
You are an autonomous AI agent implementing an MCP server using the DARE methodology.
|
|
188
|
-
Execute tasks from DARE/dare-dag.yaml in parallel when dependencies allow.
|
|
189
|
-
|
|
190
|
-
## DARE Phases
|
|
191
|
-
- **Design**: Read DARE/DESIGN.md — what tools/resources/prompts does this MCP server expose?
|
|
192
|
-
- **Architect**: Read DARE/BLUEPRINT.md — tool schemas, transport, auth strategy
|
|
193
|
-
- **Review**: Test each tool with MCP Inspector before marking DONE
|
|
194
|
-
- **Execute**: Implement tasks, update DARE/TASKS.md
|
|
195
|
-
|
|
196
|
-
## MCP Stack
|
|
197
|
-
- Language: ${mcpLanguage}
|
|
198
|
-
- Transport: ${mcpTransport}
|
|
199
|
-
- Features: ${mcpFeatures.join(', ')}
|
|
200
|
-
|
|
201
|
-
## Implementation Rules
|
|
202
|
-
- Each tool must have a strict inputSchema — Claude uses it to call the tool
|
|
203
|
-
- Test with MCP Inspector after implementing each tool
|
|
204
|
-
- Never skip error handling for unknown tool names
|
|
205
|
-
|
|
206
|
-
## Context Strategy (${graphrag})
|
|
207
|
-
${mcp ? `- Query MCP Server at http://localhost:3000 for project context` : '- Read DARE/BLUEPRINT.md for context'}
|
|
208
|
-
|
|
209
|
-
## Execution Rules
|
|
210
|
-
- Always check task dependencies before starting
|
|
211
|
-
- Update task status in DARE/TASKS.md in real-time
|
|
212
|
-
- Run Ralph Loop before marking any task as DONE
|
|
213
|
-
- Request human review for transport or auth design decisions
|
|
184
|
+
return `# DARE Framework - Antigravity Rules (MCP Server Project)
|
|
185
|
+
|
|
186
|
+
## Agent Configuration
|
|
187
|
+
You are an autonomous AI agent implementing an MCP server using the DARE methodology.
|
|
188
|
+
Execute tasks from DARE/dare-dag.yaml in parallel when dependencies allow.
|
|
189
|
+
|
|
190
|
+
## DARE Phases
|
|
191
|
+
- **Design**: Read DARE/DESIGN.md — what tools/resources/prompts does this MCP server expose?
|
|
192
|
+
- **Architect**: Read DARE/BLUEPRINT.md — tool schemas, transport, auth strategy
|
|
193
|
+
- **Review**: Test each tool with MCP Inspector before marking DONE
|
|
194
|
+
- **Execute**: Implement tasks, update DARE/TASKS.md
|
|
195
|
+
|
|
196
|
+
## MCP Stack
|
|
197
|
+
- Language: ${mcpLanguage}
|
|
198
|
+
- Transport: ${mcpTransport}
|
|
199
|
+
- Features: ${mcpFeatures.join(', ')}
|
|
200
|
+
|
|
201
|
+
## Implementation Rules
|
|
202
|
+
- Each tool must have a strict inputSchema — Claude uses it to call the tool
|
|
203
|
+
- Test with MCP Inspector after implementing each tool
|
|
204
|
+
- Never skip error handling for unknown tool names
|
|
205
|
+
|
|
206
|
+
## Context Strategy (${graphrag})
|
|
207
|
+
${mcp ? `- Query MCP Server at http://localhost:3000 for project context` : '- Read DARE/BLUEPRINT.md for context'}
|
|
208
|
+
|
|
209
|
+
## Execution Rules
|
|
210
|
+
- Always check task dependencies before starting
|
|
211
|
+
- Update task status in DARE/TASKS.md in real-time
|
|
212
|
+
- Run Ralph Loop before marking any task as DONE
|
|
213
|
+
- Request human review for transport or auth design decisions
|
|
214
214
|
`;
|
|
215
215
|
}
|
|
216
216
|
export function generateClaudeCodeRules(config) {
|
|
217
217
|
const { backend, frontend, graphrag, mcp } = config;
|
|
218
218
|
const backendRules = {
|
|
219
|
-
'rust-axum': `## Backend: Rust/Axum
|
|
220
|
-
- Use Rust idioms — no \`unwrap()\` in production code
|
|
221
|
-
- Prefer async/await with Tokio runtime
|
|
222
|
-
- Use Axum extractors for request handling
|
|
223
|
-
- Handle all errors with \`thiserror\`/\`anyhow\`
|
|
219
|
+
'rust-axum': `## Backend: Rust/Axum
|
|
220
|
+
- Use Rust idioms — no \`unwrap()\` in production code
|
|
221
|
+
- Prefer async/await with Tokio runtime
|
|
222
|
+
- Use Axum extractors for request handling
|
|
223
|
+
- Handle all errors with \`thiserror\`/\`anyhow\`
|
|
224
224
|
- Ralph Loop: \`cargo clippy && cargo test\``,
|
|
225
|
-
'node-nestjs': `## Backend: Node.js/NestJS
|
|
226
|
-
- Use NestJS decorators and dependency injection
|
|
227
|
-
- Define DTOs with class-validator for all inputs
|
|
228
|
-
- Use TypeORM or Prisma for database access
|
|
225
|
+
'node-nestjs': `## Backend: Node.js/NestJS
|
|
226
|
+
- Use NestJS decorators and dependency injection
|
|
227
|
+
- Define DTOs with class-validator for all inputs
|
|
228
|
+
- Use TypeORM or Prisma for database access
|
|
229
229
|
- Ralph Loop: \`npm run build && npm test && npx eslint src\``,
|
|
230
|
-
'python-fastapi': `## Backend: Python/FastAPI
|
|
231
|
-
- Use Pydantic v2 for all data validation
|
|
232
|
-
- Type all functions with PEP 484 type hints
|
|
233
|
-
- Use async/await for all IO operations
|
|
230
|
+
'python-fastapi': `## Backend: Python/FastAPI
|
|
231
|
+
- Use Pydantic v2 for all data validation
|
|
232
|
+
- Type all functions with PEP 484 type hints
|
|
233
|
+
- Use async/await for all IO operations
|
|
234
234
|
- Ralph Loop: \`python -m pytest && ruff check .\``,
|
|
235
|
-
'php-laravel': `## Backend: PHP/Laravel
|
|
236
|
-
- Follow PSR-12 coding standards
|
|
237
|
-
- Use FormRequests for all input validation
|
|
238
|
-
- Use API Resources for all responses
|
|
235
|
+
'php-laravel': `## Backend: PHP/Laravel
|
|
236
|
+
- Follow PSR-12 coding standards
|
|
237
|
+
- Use FormRequests for all input validation
|
|
238
|
+
- Use API Resources for all responses
|
|
239
239
|
- Ralph Loop: \`php artisan test && ./vendor/bin/phpstan analyse\``,
|
|
240
240
|
};
|
|
241
241
|
const frontendRules = {
|
|
242
|
-
react: `## Frontend: React 18+
|
|
243
|
-
- Use functional components with hooks only
|
|
244
|
-
- TypeScript for all components and hooks
|
|
245
|
-
- Prefer React Query for server state management
|
|
242
|
+
react: `## Frontend: React 18+
|
|
243
|
+
- Use functional components with hooks only
|
|
244
|
+
- TypeScript for all components and hooks
|
|
245
|
+
- Prefer React Query for server state management
|
|
246
246
|
- Ralph Loop: \`npm run build && npm test && npx eslint src\``,
|
|
247
|
-
vue: `## Frontend: Vue 3+
|
|
248
|
-
- Use Composition API with <script setup> syntax
|
|
249
|
-
- TypeScript for all components
|
|
250
|
-
- Use Pinia for state management
|
|
247
|
+
vue: `## Frontend: Vue 3+
|
|
248
|
+
- Use Composition API with <script setup> syntax
|
|
249
|
+
- TypeScript for all components
|
|
250
|
+
- Use Pinia for state management
|
|
251
251
|
- Ralph Loop: \`npm run build && npm test && npx eslint src\``,
|
|
252
|
-
'rust-leptos': `## Frontend: Leptos fullstack (Rust SSR + WASM)
|
|
253
|
-
- Use \`#[component]\` macro — estado com \`signal()\`, async com \`Resource\`, mutações com \`Action\`
|
|
254
|
-
- Loading: \`Suspense\`/\`Transition\` — nunca bloqueie o render
|
|
255
|
-
- Server functions: \`#[server]\` macro (feature ssr)
|
|
256
|
-
- Tipos compartilhados server + WASM: \`#[cfg_attr(feature = "ssr", derive(sqlx::FromRow))]\`
|
|
257
|
-
- Evite: \`tokio::spawn\` no client, \`panic!\` em componentes, \`Effect\` para fetch
|
|
252
|
+
'rust-leptos': `## Frontend: Leptos fullstack (Rust SSR + WASM)
|
|
253
|
+
- Use \`#[component]\` macro — estado com \`signal()\`, async com \`Resource\`, mutações com \`Action\`
|
|
254
|
+
- Loading: \`Suspense\`/\`Transition\` — nunca bloqueie o render
|
|
255
|
+
- Server functions: \`#[server]\` macro (feature ssr)
|
|
256
|
+
- Tipos compartilhados server + WASM: \`#[cfg_attr(feature = "ssr", derive(sqlx::FromRow))]\`
|
|
257
|
+
- Evite: \`tokio::spawn\` no client, \`panic!\` em componentes, \`Effect\` para fetch
|
|
258
258
|
- Ralph Loop: \`cargo leptos build --release && cargo test --workspace && cargo clippy --all-features -- -D warnings\``,
|
|
259
|
-
'rust-leptos-csr': `## Frontend: Leptos CSR (Rust WASM + trunk)
|
|
260
|
-
- WASM puro — sem SSR, sem \`#[server]\`
|
|
261
|
-
- Build: \`trunk build --release\` | Dev: \`trunk serve\` | Test: \`cargo test --workspace\`
|
|
259
|
+
'rust-leptos-csr': `## Frontend: Leptos CSR (Rust WASM + trunk)
|
|
260
|
+
- WASM puro — sem SSR, sem \`#[server]\`
|
|
261
|
+
- Build: \`trunk build --release\` | Dev: \`trunk serve\` | Test: \`cargo test --workspace\`
|
|
262
262
|
- Ralph Loop: \`trunk build --release && cargo test --workspace && cargo clippy --all-features -- -D warnings\``,
|
|
263
263
|
};
|
|
264
|
-
return `# DARE Framework
|
|
265
|
-
|
|
266
|
-
## Metodologia
|
|
267
|
-
Você é o Claude Code, assistente de desenvolvimento seguindo o método DARE:
|
|
268
|
-
- **D**esign: Requisitos e objetivos definidos em \`DARE/DESIGN.md\`
|
|
269
|
-
- **A**rchitect: Blueprint técnico e grafo de tasks em \`DARE/BLUEPRINT.md\`
|
|
270
|
-
- **R**eview: Validação humana antes de executar
|
|
271
|
-
- **E**xecute: Implementação task a task com Ralph Loop
|
|
272
|
-
|
|
273
|
-
## Regras Fundamentais
|
|
274
|
-
- Sempre leia \`DARE/BLUEPRINT.md\` antes de implementar qualquer feature
|
|
275
|
-
- Atualize o status em \`DARE/TASKS.md\` ao concluir cada task
|
|
276
|
-
- Nunca pule o Ralph Loop (build → test → lint) antes de marcar uma task como DONE
|
|
277
|
-
- Aprovação humana obrigatória antes de merge para a branch principal
|
|
278
|
-
- Use os slash commands \`/dare-design\`, \`/dare-blueprint\`, \`/dare-execute\`
|
|
279
|
-
|
|
280
|
-
## Estrutura do Projeto
|
|
281
|
-
\`\`\`
|
|
282
|
-
DARE/
|
|
283
|
-
├── DESIGN.md ↠Fase D — requisitos (humano define)
|
|
284
|
-
├── BLUEPRINT.md ↠Fase A — arquitetura (IA propõe, humano valida)
|
|
285
|
-
├── TASKS.md ↠rastreamento de tasks
|
|
286
|
-
├── dare-dag.yaml ↠grafo de dependências
|
|
287
|
-
└── EXECUTION/ ↠logs de execução por task
|
|
288
|
-
\`\`\`
|
|
289
|
-
|
|
290
|
-
${backend && backendRules[backend] ? backendRules[backend] : ''}
|
|
291
|
-
|
|
292
|
-
${frontend && frontendRules[frontend] ? frontendRules[frontend] : ''}
|
|
293
|
-
|
|
294
|
-
## Contexto (${graphrag})
|
|
295
|
-
${mcp ? `- Consulte o DARE MCP Server em http://localhost:3000 para queries de contexto
|
|
296
|
-
- Use POST /context/query com {"type": "architecture"|"task"|"dependency", "query": "..."}
|
|
297
|
-
- Evite reler arquivos inteiros — use queries direcionadas` : `- Use DARE/BLUEPRINT.md como fonte única de verdade para contexto`}
|
|
298
|
-
|
|
299
|
-
## Ralph Loop (obrigatório antes de DONE)
|
|
300
|
-
1. Build — compile e verifique erros
|
|
301
|
-
2. Test — rode a suite de testes completa
|
|
302
|
-
3. Lint — rode o linter/formatter
|
|
303
|
-
4. Só marque DONE se os 3 passos passarem sem erros
|
|
264
|
+
return `# DARE Framework
|
|
265
|
+
|
|
266
|
+
## Metodologia
|
|
267
|
+
Você é o Claude Code, assistente de desenvolvimento seguindo o método DARE:
|
|
268
|
+
- **D**esign: Requisitos e objetivos definidos em \`DARE/DESIGN.md\`
|
|
269
|
+
- **A**rchitect: Blueprint técnico e grafo de tasks em \`DARE/BLUEPRINT.md\`
|
|
270
|
+
- **R**eview: Validação humana antes de executar
|
|
271
|
+
- **E**xecute: Implementação task a task com Ralph Loop
|
|
272
|
+
|
|
273
|
+
## Regras Fundamentais
|
|
274
|
+
- Sempre leia \`DARE/BLUEPRINT.md\` antes de implementar qualquer feature
|
|
275
|
+
- Atualize o status em \`DARE/TASKS.md\` ao concluir cada task
|
|
276
|
+
- Nunca pule o Ralph Loop (build → test → lint) antes de marcar uma task como DONE
|
|
277
|
+
- Aprovação humana obrigatória antes de merge para a branch principal
|
|
278
|
+
- Use os slash commands \`/dare-design\`, \`/dare-blueprint\`, \`/dare-execute\`
|
|
279
|
+
|
|
280
|
+
## Estrutura do Projeto
|
|
281
|
+
\`\`\`
|
|
282
|
+
DARE/
|
|
283
|
+
├── DESIGN.md ↠Fase D — requisitos (humano define)
|
|
284
|
+
├── BLUEPRINT.md ↠Fase A — arquitetura (IA propõe, humano valida)
|
|
285
|
+
├── TASKS.md ↠rastreamento de tasks
|
|
286
|
+
├── dare-dag.yaml ↠grafo de dependências
|
|
287
|
+
└── EXECUTION/ ↠logs de execução por task
|
|
288
|
+
\`\`\`
|
|
289
|
+
|
|
290
|
+
${backend && backendRules[backend] ? backendRules[backend] : ''}
|
|
291
|
+
|
|
292
|
+
${frontend && frontendRules[frontend] ? frontendRules[frontend] : ''}
|
|
293
|
+
|
|
294
|
+
## Contexto (${graphrag})
|
|
295
|
+
${mcp ? `- Consulte o DARE MCP Server em http://localhost:3000 para queries de contexto
|
|
296
|
+
- Use POST /context/query com {"type": "architecture"|"task"|"dependency", "query": "..."}
|
|
297
|
+
- Evite reler arquivos inteiros — use queries direcionadas` : `- Use DARE/BLUEPRINT.md como fonte única de verdade para contexto`}
|
|
298
|
+
|
|
299
|
+
## Ralph Loop (obrigatório antes de DONE)
|
|
300
|
+
1. Build — compile e verifique erros
|
|
301
|
+
2. Test — rode a suite de testes completa
|
|
302
|
+
3. Lint — rode o linter/formatter
|
|
303
|
+
4. Só marque DONE se os 3 passos passarem sem erros
|
|
304
304
|
`;
|
|
305
305
|
}
|
|
306
306
|
export function generateMcpClaudeCodeRules(config) {
|
|
307
307
|
const { mcpTransport = 'stdio', mcpLanguage = 'node-ts', mcpFeatures = ['tools'], graphrag, mcp } = config;
|
|
308
308
|
const featuresStr = mcpFeatures.join(', ');
|
|
309
309
|
const langRules = mcpLanguage === 'python'
|
|
310
|
-
? `## Linguagem: Python
|
|
311
|
-
- Use FastMCP com decoradores @mcp.tool, @mcp.resource, @mcp.prompt
|
|
312
|
-
- Type hints obrigatórios — FastMCP gera o JSON Schema automaticamente
|
|
313
|
-
- Use docstrings como descrição das tools/resources/prompts
|
|
314
|
-
- Ralph Loop: \`python -m py_compile main.py && pytest && ruff check .\`
|
|
310
|
+
? `## Linguagem: Python
|
|
311
|
+
- Use FastMCP com decoradores @mcp.tool, @mcp.resource, @mcp.prompt
|
|
312
|
+
- Type hints obrigatórios — FastMCP gera o JSON Schema automaticamente
|
|
313
|
+
- Use docstrings como descrição das tools/resources/prompts
|
|
314
|
+
- Ralph Loop: \`python -m py_compile main.py && pytest && ruff check .\`
|
|
315
315
|
- Inspecione com: \`npx @modelcontextprotocol/inspector python main.py\``
|
|
316
|
-
: `## Linguagem: TypeScript
|
|
317
|
-
- Importe de \`@modelcontextprotocol/sdk/server/index.js\`
|
|
318
|
-
- Defina \`inputSchema\` estrito para cada tool — Claude depende dele para chamadas corretas
|
|
319
|
-
- Use zod para validação em runtime quando necessário
|
|
320
|
-
- Ralph Loop: \`npm run build && npm test\`
|
|
316
|
+
: `## Linguagem: TypeScript
|
|
317
|
+
- Importe de \`@modelcontextprotocol/sdk/server/index.js\`
|
|
318
|
+
- Defina \`inputSchema\` estrito para cada tool — Claude depende dele para chamadas corretas
|
|
319
|
+
- Use zod para validação em runtime quando necessário
|
|
320
|
+
- Ralph Loop: \`npm run build && npm test\`
|
|
321
321
|
- Inspecione com: \`npm run inspect\``;
|
|
322
322
|
const transportNote = mcpTransport === 'stdio'
|
|
323
323
|
? `- Transport \`stdio\` — comunicação via stdin/stdout, sem porta HTTP`
|
|
324
324
|
: mcpTransport === 'sse'
|
|
325
325
|
? `- Transport \`SSE\` — expõe GET /sse e POST /messages`
|
|
326
326
|
: `- Transport \`HTTP Stream\` — use StreamableHTTPServerTransport`;
|
|
327
|
-
return `# DARE Framework — MCP Server
|
|
328
|
-
|
|
329
|
-
## Metodologia
|
|
330
|
-
Você é o Claude Code implementando um servidor MCP com o método DARE:
|
|
331
|
-
- **D**esign: Quais tools/resources/prompts este servidor expõe?
|
|
332
|
-
- **A**rchitect: Schemas das tools, estratégia de transport e auth
|
|
333
|
-
- **R**eview: Teste cada tool com MCP Inspector antes de marcar DONE
|
|
334
|
-
- **E**xecute: Implementação task a task com Ralph Loop
|
|
335
|
-
|
|
336
|
-
## Configuração do MCP Server
|
|
337
|
-
- Transport: ${mcpTransport}
|
|
338
|
-
- Features: ${featuresStr}
|
|
339
|
-
${transportNote}
|
|
340
|
-
|
|
341
|
-
## Regras Fundamentais
|
|
342
|
-
- Leia \`DARE/BLUEPRINT.md\` antes de implementar qualquer tool
|
|
343
|
-
- Atualize \`DARE/TASKS.md\` ao concluir cada task
|
|
344
|
-
- Nunca pule o Ralph Loop antes de marcar DONE
|
|
345
|
-
- Teste cada tool com MCP Inspector antes de marcar DONE
|
|
346
|
-
- Valide que o \`inputSchema\` corresponde exatamente ao handler
|
|
347
|
-
|
|
348
|
-
${langRules}
|
|
349
|
-
|
|
350
|
-
## Boas Práticas MCP
|
|
351
|
-
- Nomes de tools em snake_case e descritivos
|
|
352
|
-
- Retorne arrays de \`content\`, não strings puras
|
|
353
|
-
- Trate nomes de tools/resources desconhecidos com erros explÃcitos
|
|
354
|
-
- Nunca exponha secrets via outputs de tools ou conteúdo de resources
|
|
355
|
-
- Documente cada argumento no campo \`description\` do inputSchema
|
|
356
|
-
|
|
357
|
-
## Contexto (${graphrag})
|
|
358
|
-
${mcp ? `- Consulte o DARE MCP Server em http://localhost:3000 para contexto do projeto` : `- Use DARE/BLUEPRINT.md como fonte de verdade`}
|
|
359
|
-
|
|
360
|
-
## Ralph Loop (obrigatório antes de DONE)
|
|
361
|
-
1. Build (npm run build / python -m py_compile)
|
|
362
|
-
2. Test (npm test / pytest)
|
|
363
|
-
3. Inspect — teste as tools com MCP Inspector
|
|
364
|
-
4. Só marque DONE se os 3 passos passarem
|
|
327
|
+
return `# DARE Framework — MCP Server
|
|
328
|
+
|
|
329
|
+
## Metodologia
|
|
330
|
+
Você é o Claude Code implementando um servidor MCP com o método DARE:
|
|
331
|
+
- **D**esign: Quais tools/resources/prompts este servidor expõe?
|
|
332
|
+
- **A**rchitect: Schemas das tools, estratégia de transport e auth
|
|
333
|
+
- **R**eview: Teste cada tool com MCP Inspector antes de marcar DONE
|
|
334
|
+
- **E**xecute: Implementação task a task com Ralph Loop
|
|
335
|
+
|
|
336
|
+
## Configuração do MCP Server
|
|
337
|
+
- Transport: ${mcpTransport}
|
|
338
|
+
- Features: ${featuresStr}
|
|
339
|
+
${transportNote}
|
|
340
|
+
|
|
341
|
+
## Regras Fundamentais
|
|
342
|
+
- Leia \`DARE/BLUEPRINT.md\` antes de implementar qualquer tool
|
|
343
|
+
- Atualize \`DARE/TASKS.md\` ao concluir cada task
|
|
344
|
+
- Nunca pule o Ralph Loop antes de marcar DONE
|
|
345
|
+
- Teste cada tool com MCP Inspector antes de marcar DONE
|
|
346
|
+
- Valide que o \`inputSchema\` corresponde exatamente ao handler
|
|
347
|
+
|
|
348
|
+
${langRules}
|
|
349
|
+
|
|
350
|
+
## Boas Práticas MCP
|
|
351
|
+
- Nomes de tools em snake_case e descritivos
|
|
352
|
+
- Retorne arrays de \`content\`, não strings puras
|
|
353
|
+
- Trate nomes de tools/resources desconhecidos com erros explÃcitos
|
|
354
|
+
- Nunca exponha secrets via outputs de tools ou conteúdo de resources
|
|
355
|
+
- Documente cada argumento no campo \`description\` do inputSchema
|
|
356
|
+
|
|
357
|
+
## Contexto (${graphrag})
|
|
358
|
+
${mcp ? `- Consulte o DARE MCP Server em http://localhost:3000 para contexto do projeto` : `- Use DARE/BLUEPRINT.md como fonte de verdade`}
|
|
359
|
+
|
|
360
|
+
## Ralph Loop (obrigatório antes de DONE)
|
|
361
|
+
1. Build (npm run build / python -m py_compile)
|
|
362
|
+
2. Test (npm test / pytest)
|
|
363
|
+
3. Inspect — teste as tools com MCP Inspector
|
|
364
|
+
4. Só marque DONE se os 3 passos passarem
|
|
365
365
|
`;
|
|
366
366
|
}
|
|
367
367
|
export function generateClaudeCommands(structure) {
|
|
368
368
|
const isMcp = structure === 'mcp-server';
|
|
369
369
|
return {
|
|
370
|
-
'dare-design.md': `# /dare-design
|
|
371
|
-
|
|
372
|
-
Gera ou atualiza o \`DARE/DESIGN.md\` a partir de uma descrição.
|
|
373
|
-
|
|
374
|
-
## Como usar
|
|
375
|
-
\`/dare-design Quero uma API REST de autenticação com JWT e refresh token\`
|
|
376
|
-
|
|
377
|
-
## O que fazer
|
|
378
|
-
1. Leia o contexto atual do projeto (package.json, estrutura de pastas)
|
|
379
|
-
2. Se \`DARE/DESIGN.md\` já existir, leia-o antes de atualizar
|
|
380
|
-
3. Crie ou atualize \`DARE/DESIGN.md\` com:
|
|
381
|
-
- **Descrição** do que será construÃdo
|
|
382
|
-
- **Objetivos** (checkboxes mensuráveis)
|
|
383
|
-
- **Restrições** técnicas e de negócio
|
|
384
|
-
- **Critérios de sucesso** verificáveis
|
|
385
|
-
4. Confirme com o usuário antes de prosseguir para blueprint
|
|
386
|
-
|
|
387
|
-
$ARGUMENTS
|
|
370
|
+
'dare-design.md': `# /dare-design
|
|
371
|
+
|
|
372
|
+
Gera ou atualiza o \`DARE/DESIGN.md\` a partir de uma descrição.
|
|
373
|
+
|
|
374
|
+
## Como usar
|
|
375
|
+
\`/dare-design Quero uma API REST de autenticação com JWT e refresh token\`
|
|
376
|
+
|
|
377
|
+
## O que fazer
|
|
378
|
+
1. Leia o contexto atual do projeto (package.json, estrutura de pastas)
|
|
379
|
+
2. Se \`DARE/DESIGN.md\` já existir, leia-o antes de atualizar
|
|
380
|
+
3. Crie ou atualize \`DARE/DESIGN.md\` com:
|
|
381
|
+
- **Descrição** do que será construÃdo
|
|
382
|
+
- **Objetivos** (checkboxes mensuráveis)
|
|
383
|
+
- **Restrições** técnicas e de negócio
|
|
384
|
+
- **Critérios de sucesso** verificáveis
|
|
385
|
+
4. Confirme com o usuário antes de prosseguir para blueprint
|
|
386
|
+
|
|
387
|
+
$ARGUMENTS
|
|
388
388
|
`,
|
|
389
|
-
'dare-blueprint.md': `# /dare-blueprint
|
|
390
|
-
|
|
391
|
-
Gera o \`DARE/BLUEPRINT.md\`, \`DARE/dare-dag.yaml\` e \`DARE/TASKS.md\` a partir do DESIGN.md.
|
|
392
|
-
|
|
393
|
-
## Como usar
|
|
394
|
-
\`/dare-blueprint\`
|
|
395
|
-
|
|
396
|
-
## O que fazer
|
|
397
|
-
1. Leia \`DARE/DESIGN.md\` — obrigatório
|
|
398
|
-
2. Gere \`DARE/BLUEPRINT.md\` com:
|
|
399
|
-
- Stack tecnológico detalhado
|
|
400
|
-
- Módulos e responsabilidades
|
|
401
|
-
- Contratos de API (endpoints, schemas)
|
|
402
|
-
- Modelo de dados
|
|
403
|
-
- Decisões arquiteturais justificadas
|
|
404
|
-
3. Gere \`DARE/dare-dag.yaml\` com tasks em grafo de dependências
|
|
405
|
-
4. Gere \`DARE/TASKS.md\` com tabela de status
|
|
406
|
-
5. **Aguarde aprovação humana antes de executar qualquer task**
|
|
407
|
-
|
|
408
|
-
$ARGUMENTS
|
|
389
|
+
'dare-blueprint.md': `# /dare-blueprint
|
|
390
|
+
|
|
391
|
+
Gera o \`DARE/BLUEPRINT.md\`, \`DARE/dare-dag.yaml\` e \`DARE/TASKS.md\` a partir do DESIGN.md.
|
|
392
|
+
|
|
393
|
+
## Como usar
|
|
394
|
+
\`/dare-blueprint\`
|
|
395
|
+
|
|
396
|
+
## O que fazer
|
|
397
|
+
1. Leia \`DARE/DESIGN.md\` — obrigatório
|
|
398
|
+
2. Gere \`DARE/BLUEPRINT.md\` com:
|
|
399
|
+
- Stack tecnológico detalhado
|
|
400
|
+
- Módulos e responsabilidades
|
|
401
|
+
- Contratos de API (endpoints, schemas)
|
|
402
|
+
- Modelo de dados
|
|
403
|
+
- Decisões arquiteturais justificadas
|
|
404
|
+
3. Gere \`DARE/dare-dag.yaml\` com tasks em grafo de dependências
|
|
405
|
+
4. Gere \`DARE/TASKS.md\` com tabela de status
|
|
406
|
+
5. **Aguarde aprovação humana antes de executar qualquer task**
|
|
407
|
+
|
|
408
|
+
$ARGUMENTS
|
|
409
409
|
`,
|
|
410
|
-
'dare-execute.md': `# /dare-execute
|
|
411
|
-
|
|
412
|
-
Executa uma task especÃfica do \`DARE/dare-dag.yaml\` seguindo o Ralph Loop.
|
|
413
|
-
|
|
414
|
-
## Como usar
|
|
415
|
-
\`/dare-execute task-001\`
|
|
416
|
-
\`/dare-execute task-003 --force\`
|
|
417
|
-
|
|
418
|
-
## O que fazer
|
|
419
|
-
1. Leia \`DARE/BLUEPRINT.md\` — obrigatório antes de qualquer implementação
|
|
420
|
-
2. Leia a task especificada em \`DARE/dare-dag.yaml\`
|
|
421
|
-
3. Verifique se todas as dependências da task estão com status DONE
|
|
422
|
-
4. Implemente a task
|
|
423
|
-
5. Execute o Ralph Loop:
|
|
424
|
-
- Build: compile sem erros
|
|
425
|
-
- Test: todos os testes passando
|
|
426
|
-
- Lint: sem warnings${isMcp ? '\n - Inspect: teste com MCP Inspector' : ''}
|
|
427
|
-
6. Atualize o status da task em \`DARE/TASKS.md\` para DONE
|
|
428
|
-
7. Informe o usuário e sugira a próxima task disponÃvel
|
|
429
|
-
|
|
430
|
-
$ARGUMENTS
|
|
410
|
+
'dare-execute.md': `# /dare-execute
|
|
411
|
+
|
|
412
|
+
Executa uma task especÃfica do \`DARE/dare-dag.yaml\` seguindo o Ralph Loop.
|
|
413
|
+
|
|
414
|
+
## Como usar
|
|
415
|
+
\`/dare-execute task-001\`
|
|
416
|
+
\`/dare-execute task-003 --force\`
|
|
417
|
+
|
|
418
|
+
## O que fazer
|
|
419
|
+
1. Leia \`DARE/BLUEPRINT.md\` — obrigatório antes de qualquer implementação
|
|
420
|
+
2. Leia a task especificada em \`DARE/dare-dag.yaml\`
|
|
421
|
+
3. Verifique se todas as dependências da task estão com status DONE
|
|
422
|
+
4. Implemente a task
|
|
423
|
+
5. Execute o Ralph Loop:
|
|
424
|
+
- Build: compile sem erros
|
|
425
|
+
- Test: todos os testes passando
|
|
426
|
+
- Lint: sem warnings${isMcp ? '\n - Inspect: teste com MCP Inspector' : ''}
|
|
427
|
+
6. Atualize o status da task em \`DARE/TASKS.md\` para DONE
|
|
428
|
+
7. Informe o usuário e sugira a próxima task disponÃvel
|
|
429
|
+
|
|
430
|
+
$ARGUMENTS
|
|
431
431
|
`,
|
|
432
|
-
'dare-tasks.md': `# /dare-tasks
|
|
433
|
-
|
|
434
|
-
Exibe o status atual de todas as tasks do projeto.
|
|
435
|
-
|
|
436
|
-
## Como usar
|
|
437
|
-
\`/dare-tasks\`
|
|
438
|
-
\`/dare-tasks --pending\`
|
|
439
|
-
|
|
440
|
-
## O que fazer
|
|
441
|
-
1. Leia \`DARE/TASKS.md\` e \`DARE/dare-dag.yaml\`
|
|
442
|
-
2. Exiba uma tabela com: ID, tÃtulo, status, dependências
|
|
443
|
-
3. Destaque as tasks que estão prontas para execução (dependências satisfeitas)
|
|
444
|
-
4. Calcule e exiba o progresso geral (% concluÃdo)
|
|
445
|
-
|
|
446
|
-
$ARGUMENTS
|
|
432
|
+
'dare-tasks.md': `# /dare-tasks
|
|
433
|
+
|
|
434
|
+
Exibe o status atual de todas as tasks do projeto.
|
|
435
|
+
|
|
436
|
+
## Como usar
|
|
437
|
+
\`/dare-tasks\`
|
|
438
|
+
\`/dare-tasks --pending\`
|
|
439
|
+
|
|
440
|
+
## O que fazer
|
|
441
|
+
1. Leia \`DARE/TASKS.md\` e \`DARE/dare-dag.yaml\`
|
|
442
|
+
2. Exiba uma tabela com: ID, tÃtulo, status, dependências
|
|
443
|
+
3. Destaque as tasks que estão prontas para execução (dependências satisfeitas)
|
|
444
|
+
4. Calcule e exiba o progresso geral (% concluÃdo)
|
|
445
|
+
|
|
446
|
+
$ARGUMENTS
|
|
447
447
|
`,
|
|
448
448
|
};
|
|
449
449
|
}
|
|
450
450
|
export function generateSharedConfig(projectName) {
|
|
451
|
-
return `# ${projectName} — DARE Framework
|
|
452
|
-
|
|
453
|
-
## Design → Architect → Review → Execute
|
|
454
|
-
|
|
455
|
-
### Estrutura
|
|
456
|
-
- \`DARE/\` — documentação de design e execução
|
|
457
|
-
- \`DARE/EXECUTION/\` — tasks executadas e telemetria
|
|
458
|
-
- \`templates/\` — templates de documentação DARE
|
|
459
|
-
|
|
460
|
-
### Ralph Loop
|
|
461
|
-
Antes de marcar qualquer task como DONE:
|
|
462
|
-
1. Build ✅
|
|
463
|
-
2. Test ✅
|
|
464
|
-
3. Lint ✅
|
|
465
|
-
|
|
466
|
-
### Fluxo de Trabalho
|
|
467
|
-
1. \`/generate-design\` — cria DESIGN.md
|
|
468
|
-
2. \`/generate-blueprint\` — cria BLUEPRINT.md
|
|
469
|
-
3. \`/generate-tasks\` — cria TASKS.md
|
|
470
|
-
4. \`/execute-task\` — executa cada task com Ralph Loop
|
|
451
|
+
return `# ${projectName} — DARE Framework
|
|
452
|
+
|
|
453
|
+
## Design → Architect → Review → Execute
|
|
454
|
+
|
|
455
|
+
### Estrutura
|
|
456
|
+
- \`DARE/\` — documentação de design e execução
|
|
457
|
+
- \`DARE/EXECUTION/\` — tasks executadas e telemetria
|
|
458
|
+
- \`templates/\` — templates de documentação DARE
|
|
459
|
+
|
|
460
|
+
### Ralph Loop
|
|
461
|
+
Antes de marcar qualquer task como DONE:
|
|
462
|
+
1. Build ✅
|
|
463
|
+
2. Test ✅
|
|
464
|
+
3. Lint ✅
|
|
465
|
+
|
|
466
|
+
### Fluxo de Trabalho
|
|
467
|
+
1. \`/generate-design\` — cria DESIGN.md
|
|
468
|
+
2. \`/generate-blueprint\` — cria BLUEPRINT.md
|
|
469
|
+
3. \`/generate-tasks\` — cria TASKS.md
|
|
470
|
+
4. \`/execute-task\` — executa cada task com Ralph Loop
|
|
471
471
|
`;
|
|
472
472
|
}
|
|
473
473
|
export function generateClaudeSettings(stack) {
|