@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
|
@@ -1,264 +1,264 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dare-execute
|
|
3
|
-
description: Executa uma task específica com implementação de código e testes. Use quando o usuário aprovar TASKS.md e quiser executar uma task. Implementa o código, roda testes (Ralph Loop) e valida até passar.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# DARE Execute Skill
|
|
7
|
-
|
|
8
|
-
Você é um desenvolvedor especializado em implementação de código de alta qualidade. Seu objetivo é executar uma task específica, implementar o código conforme especificação e validar com testes.
|
|
9
|
-
|
|
10
|
-
## Quando usar esta skill
|
|
11
|
-
|
|
12
|
-
- TASKS.md foi aprovado pelo usuário
|
|
13
|
-
- Usuário quer executar uma task específica
|
|
14
|
-
- Precisa-se implementar código e testes
|
|
15
|
-
- Quarta fase do Método DARE (Execução)
|
|
16
|
-
|
|
17
|
-
## Como usar
|
|
18
|
-
|
|
19
|
-
### Passo 1: Ler a Especificação da Task
|
|
20
|
-
Leia o arquivo `DARE/EXECUTION/task-[id].md` que será executada. Extraia:
|
|
21
|
-
- Objetivo da task
|
|
22
|
-
- Arquivos a criar/modificar
|
|
23
|
-
- Validações (Validation Gates)
|
|
24
|
-
- Testes esperados
|
|
25
|
-
- Segurança
|
|
26
|
-
|
|
27
|
-
### Passo 2: Analisar Contexto
|
|
28
|
-
Leia os arquivos de contexto:
|
|
29
|
-
- `.agents/rules/dare-workflow.md`
|
|
30
|
-
- Exemplos em `examples/`
|
|
31
|
-
- Código existente no projeto
|
|
32
|
-
|
|
33
|
-
### Passo 3: Implementar o Código
|
|
34
|
-
Crie/modifique os arquivos conforme especificação:
|
|
35
|
-
- Siga os padrões do projeto
|
|
36
|
-
- Implemente validações
|
|
37
|
-
- Adicione comentários
|
|
38
|
-
- Mantenha código limpo
|
|
39
|
-
|
|
40
|
-
### Passo 4: Escrever Testes
|
|
41
|
-
Para cada arquivo criado, crie testes:
|
|
42
|
-
- Testes unitários
|
|
43
|
-
- Testes de integração
|
|
44
|
-
- Testes de segurança
|
|
45
|
-
- Validation Gates
|
|
46
|
-
|
|
47
|
-
### Passo 5: Ralph Loop (Validação Automática)
|
|
48
|
-
Execute os testes:
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
# Exemplo para Laravel
|
|
52
|
-
php artisan test tests/Feature/AuthTest.php
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
**Se os testes falharem:**
|
|
56
|
-
1. Leia o erro
|
|
57
|
-
2. Corrija o código
|
|
58
|
-
3. Rode os testes novamente
|
|
59
|
-
4. Repita até passar
|
|
60
|
-
|
|
61
|
-
**Se os testes passarem:**
|
|
62
|
-
1. Valide Validation Gates
|
|
63
|
-
2. Revise o código
|
|
64
|
-
3. Confirme com o usuário
|
|
65
|
-
|
|
66
|
-
### Passo 6: Criar Artifact de Progresso
|
|
67
|
-
Crie um Task Group Artifact mostrando:
|
|
68
|
-
- Task completada
|
|
69
|
-
- Arquivos criados
|
|
70
|
-
- Testes passando
|
|
71
|
-
- Próxima task
|
|
72
|
-
|
|
73
|
-
## Ralph Loop Detalhado
|
|
74
|
-
|
|
75
|
-
O Ralph Loop é um processo de validação automática:
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
1. Implementar código
|
|
79
|
-
↓
|
|
80
|
-
2. Escrever testes
|
|
81
|
-
↓
|
|
82
|
-
3. Rodar testes
|
|
83
|
-
↓
|
|
84
|
-
4. Testes passam? ✓ → Próxima task
|
|
85
|
-
✗ → Ler erro
|
|
86
|
-
↓
|
|
87
|
-
Corrigir código
|
|
88
|
-
↓
|
|
89
|
-
Rodar testes (volta ao passo 3)
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Exemplo: Task 001 - Criar Migrations
|
|
93
|
-
|
|
94
|
-
### Passo 1: Ler Especificação
|
|
95
|
-
```
|
|
96
|
-
# Task 001: Criar Migrations de Users
|
|
97
|
-
|
|
98
|
-
Objetivo: Criar migrations para users e refresh_tokens
|
|
99
|
-
|
|
100
|
-
Arquivos a Criar:
|
|
101
|
-
- database/migrations/YYYY_MM_DD_HHMMSS_create_users_table.php
|
|
102
|
-
- database/migrations/YYYY_MM_DD_HHMMSS_create_refresh_tokens_table.php
|
|
103
|
-
|
|
104
|
-
Validações:
|
|
105
|
-
- [ ] Migrations criadas sem erros
|
|
106
|
-
- [ ] Tabelas têm índices apropriados
|
|
107
|
-
- [ ] Foreign keys estão corretas
|
|
108
|
-
- [ ] `php artisan migrate` executa sem erros
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### Passo 2: Implementar Migrations
|
|
112
|
-
|
|
113
|
-
**Arquivo: database/migrations/2026_04_14_100000_create_users_table.php**
|
|
114
|
-
```php
|
|
115
|
-
<?php
|
|
116
|
-
|
|
117
|
-
use Illuminate\Database\Migrations\Migration;
|
|
118
|
-
use Illuminate\Database\Schema\Blueprint;
|
|
119
|
-
use Illuminate\Support\Facades\Schema;
|
|
120
|
-
|
|
121
|
-
return new class extends Migration
|
|
122
|
-
{
|
|
123
|
-
public function up(): void
|
|
124
|
-
{
|
|
125
|
-
Schema::create('users', function (Blueprint $table) {
|
|
126
|
-
$table->uuid('id')->primary();
|
|
127
|
-
$table->string('email')->unique();
|
|
128
|
-
$table->string('password_hash');
|
|
129
|
-
$table->string('name');
|
|
130
|
-
$table->boolean('is_active')->default(true);
|
|
131
|
-
$table->timestamps();
|
|
132
|
-
|
|
133
|
-
// Índices
|
|
134
|
-
$table->index('email');
|
|
135
|
-
$table->index('created_at');
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
public function down(): void
|
|
140
|
-
{
|
|
141
|
-
Schema::dropIfExists('users');
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
### Passo 3: Escrever Testes
|
|
147
|
-
|
|
148
|
-
**Arquivo: tests/Feature/MigrationTest.php**
|
|
149
|
-
```php
|
|
150
|
-
<?php
|
|
151
|
-
|
|
152
|
-
namespace Tests\Feature;
|
|
153
|
-
|
|
154
|
-
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
155
|
-
use Tests\TestCase;
|
|
156
|
-
|
|
157
|
-
class MigrationTest extends TestCase
|
|
158
|
-
{
|
|
159
|
-
use RefreshDatabase;
|
|
160
|
-
|
|
161
|
-
public function test_users_table_created()
|
|
162
|
-
{
|
|
163
|
-
$this->assertTrue(
|
|
164
|
-
\Schema::hasTable('users')
|
|
165
|
-
);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
public function test_users_table_has_required_columns()
|
|
169
|
-
{
|
|
170
|
-
$this->assertTrue(
|
|
171
|
-
\Schema::hasColumns('users', [
|
|
172
|
-
'id', 'email', 'password_hash', 'name',
|
|
173
|
-
'is_active', 'created_at', 'updated_at'
|
|
174
|
-
])
|
|
175
|
-
);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
public function test_email_is_unique()
|
|
179
|
-
{
|
|
180
|
-
$this->assertTrue(
|
|
181
|
-
\Schema::hasColumn('users', 'email')
|
|
182
|
-
);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
### Passo 4: Rodar Testes
|
|
188
|
-
|
|
189
|
-
```bash
|
|
190
|
-
php artisan migrate
|
|
191
|
-
php artisan test tests/Feature/MigrationTest.php
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
**Saída esperada:**
|
|
195
|
-
```
|
|
196
|
-
✓ test_users_table_created
|
|
197
|
-
✓ test_users_table_has_required_columns
|
|
198
|
-
✓ test_email_is_unique
|
|
199
|
-
|
|
200
|
-
Tests: 3 passed
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
### Passo 5: Validar Validation Gates
|
|
204
|
-
|
|
205
|
-
```bash
|
|
206
|
-
# ✓ Migrations criadas sem erros
|
|
207
|
-
php artisan migrate
|
|
208
|
-
|
|
209
|
-
# ✓ Tabelas têm índices apropriados
|
|
210
|
-
php artisan tinker
|
|
211
|
-
>>> Schema::getColumnListing('users')
|
|
212
|
-
|
|
213
|
-
# ✓ Foreign keys estão corretas
|
|
214
|
-
# (Verificado no código)
|
|
215
|
-
|
|
216
|
-
# ✓ php artisan migrate executa sem erros
|
|
217
|
-
php artisan migrate:rollback
|
|
218
|
-
php artisan migrate
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
## Boas Práticas
|
|
222
|
-
|
|
223
|
-
1. **Siga Padrões:** Use convenções do projeto
|
|
224
|
-
2. **Teste Tudo:** Cobertura de testes alta
|
|
225
|
-
3. **Segurança:** Implemente proteções OWASP
|
|
226
|
-
4. **Documentação:** Adicione comentários
|
|
227
|
-
5. **Limpo:** Código legível e manutenível
|
|
228
|
-
|
|
229
|
-
## Segurança em Execução
|
|
230
|
-
|
|
231
|
-
Para cada task, verifique:
|
|
232
|
-
- Validação de entrada
|
|
233
|
-
- Autenticação/Autorização
|
|
234
|
-
- Criptografia de dados sensíveis
|
|
235
|
-
- Proteção contra SQL Injection
|
|
236
|
-
- Proteção contra XSS
|
|
237
|
-
- Rate Limiting (se aplicável)
|
|
238
|
-
|
|
239
|
-
## Dicas para Melhor Resultado
|
|
240
|
-
|
|
241
|
-
- **Contexto:** Leia exemplos em `examples/`
|
|
242
|
-
- **Padrões:** Siga convenções do projeto
|
|
243
|
-
- **Testes:** Use `skill-security` para testes de segurança
|
|
244
|
-
- **Feedback:** Peça aprovação após cada task
|
|
245
|
-
- **Ralph Loop:** Não pule validações
|
|
246
|
-
|
|
247
|
-
## Próxima Task
|
|
248
|
-
|
|
249
|
-
Após completar uma task:
|
|
250
|
-
1. Crie Artifact de progresso
|
|
251
|
-
2. Peça aprovação do usuário
|
|
252
|
-
3. Execute a próxima task
|
|
253
|
-
4. Repita até completar todas
|
|
254
|
-
|
|
255
|
-
## Exemplo de Artifact de Progresso
|
|
256
|
-
|
|
257
|
-
```
|
|
258
|
-
✓ Task 001: Criar Migrations de Users
|
|
259
|
-
- Migrations criadas: 2
|
|
260
|
-
- Testes passando: 3/3
|
|
261
|
-
- Validation Gates: 4/4 ✓
|
|
262
|
-
|
|
263
|
-
Próxima: Task 002: Configurar JWT
|
|
264
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: dare-execute
|
|
3
|
+
description: Executa uma task específica com implementação de código e testes. Use quando o usuário aprovar TASKS.md e quiser executar uma task. Implementa o código, roda testes (Ralph Loop) e valida até passar.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# DARE Execute Skill
|
|
7
|
+
|
|
8
|
+
Você é um desenvolvedor especializado em implementação de código de alta qualidade. Seu objetivo é executar uma task específica, implementar o código conforme especificação e validar com testes.
|
|
9
|
+
|
|
10
|
+
## Quando usar esta skill
|
|
11
|
+
|
|
12
|
+
- TASKS.md foi aprovado pelo usuário
|
|
13
|
+
- Usuário quer executar uma task específica
|
|
14
|
+
- Precisa-se implementar código e testes
|
|
15
|
+
- Quarta fase do Método DARE (Execução)
|
|
16
|
+
|
|
17
|
+
## Como usar
|
|
18
|
+
|
|
19
|
+
### Passo 1: Ler a Especificação da Task
|
|
20
|
+
Leia o arquivo `DARE/EXECUTION/task-[id].md` que será executada. Extraia:
|
|
21
|
+
- Objetivo da task
|
|
22
|
+
- Arquivos a criar/modificar
|
|
23
|
+
- Validações (Validation Gates)
|
|
24
|
+
- Testes esperados
|
|
25
|
+
- Segurança
|
|
26
|
+
|
|
27
|
+
### Passo 2: Analisar Contexto
|
|
28
|
+
Leia os arquivos de contexto:
|
|
29
|
+
- `.agents/rules/dare-workflow.md`
|
|
30
|
+
- Exemplos em `examples/`
|
|
31
|
+
- Código existente no projeto
|
|
32
|
+
|
|
33
|
+
### Passo 3: Implementar o Código
|
|
34
|
+
Crie/modifique os arquivos conforme especificação:
|
|
35
|
+
- Siga os padrões do projeto
|
|
36
|
+
- Implemente validações
|
|
37
|
+
- Adicione comentários
|
|
38
|
+
- Mantenha código limpo
|
|
39
|
+
|
|
40
|
+
### Passo 4: Escrever Testes
|
|
41
|
+
Para cada arquivo criado, crie testes:
|
|
42
|
+
- Testes unitários
|
|
43
|
+
- Testes de integração
|
|
44
|
+
- Testes de segurança
|
|
45
|
+
- Validation Gates
|
|
46
|
+
|
|
47
|
+
### Passo 5: Ralph Loop (Validação Automática)
|
|
48
|
+
Execute os testes:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Exemplo para Laravel
|
|
52
|
+
php artisan test tests/Feature/AuthTest.php
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Se os testes falharem:**
|
|
56
|
+
1. Leia o erro
|
|
57
|
+
2. Corrija o código
|
|
58
|
+
3. Rode os testes novamente
|
|
59
|
+
4. Repita até passar
|
|
60
|
+
|
|
61
|
+
**Se os testes passarem:**
|
|
62
|
+
1. Valide Validation Gates
|
|
63
|
+
2. Revise o código
|
|
64
|
+
3. Confirme com o usuário
|
|
65
|
+
|
|
66
|
+
### Passo 6: Criar Artifact de Progresso
|
|
67
|
+
Crie um Task Group Artifact mostrando:
|
|
68
|
+
- Task completada
|
|
69
|
+
- Arquivos criados
|
|
70
|
+
- Testes passando
|
|
71
|
+
- Próxima task
|
|
72
|
+
|
|
73
|
+
## Ralph Loop Detalhado
|
|
74
|
+
|
|
75
|
+
O Ralph Loop é um processo de validação automática:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
1. Implementar código
|
|
79
|
+
↓
|
|
80
|
+
2. Escrever testes
|
|
81
|
+
↓
|
|
82
|
+
3. Rodar testes
|
|
83
|
+
↓
|
|
84
|
+
4. Testes passam? ✓ → Próxima task
|
|
85
|
+
✗ → Ler erro
|
|
86
|
+
↓
|
|
87
|
+
Corrigir código
|
|
88
|
+
↓
|
|
89
|
+
Rodar testes (volta ao passo 3)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Exemplo: Task 001 - Criar Migrations
|
|
93
|
+
|
|
94
|
+
### Passo 1: Ler Especificação
|
|
95
|
+
```
|
|
96
|
+
# Task 001: Criar Migrations de Users
|
|
97
|
+
|
|
98
|
+
Objetivo: Criar migrations para users e refresh_tokens
|
|
99
|
+
|
|
100
|
+
Arquivos a Criar:
|
|
101
|
+
- database/migrations/YYYY_MM_DD_HHMMSS_create_users_table.php
|
|
102
|
+
- database/migrations/YYYY_MM_DD_HHMMSS_create_refresh_tokens_table.php
|
|
103
|
+
|
|
104
|
+
Validações:
|
|
105
|
+
- [ ] Migrations criadas sem erros
|
|
106
|
+
- [ ] Tabelas têm índices apropriados
|
|
107
|
+
- [ ] Foreign keys estão corretas
|
|
108
|
+
- [ ] `php artisan migrate` executa sem erros
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Passo 2: Implementar Migrations
|
|
112
|
+
|
|
113
|
+
**Arquivo: database/migrations/2026_04_14_100000_create_users_table.php**
|
|
114
|
+
```php
|
|
115
|
+
<?php
|
|
116
|
+
|
|
117
|
+
use Illuminate\Database\Migrations\Migration;
|
|
118
|
+
use Illuminate\Database\Schema\Blueprint;
|
|
119
|
+
use Illuminate\Support\Facades\Schema;
|
|
120
|
+
|
|
121
|
+
return new class extends Migration
|
|
122
|
+
{
|
|
123
|
+
public function up(): void
|
|
124
|
+
{
|
|
125
|
+
Schema::create('users', function (Blueprint $table) {
|
|
126
|
+
$table->uuid('id')->primary();
|
|
127
|
+
$table->string('email')->unique();
|
|
128
|
+
$table->string('password_hash');
|
|
129
|
+
$table->string('name');
|
|
130
|
+
$table->boolean('is_active')->default(true);
|
|
131
|
+
$table->timestamps();
|
|
132
|
+
|
|
133
|
+
// Índices
|
|
134
|
+
$table->index('email');
|
|
135
|
+
$table->index('created_at');
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
public function down(): void
|
|
140
|
+
{
|
|
141
|
+
Schema::dropIfExists('users');
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Passo 3: Escrever Testes
|
|
147
|
+
|
|
148
|
+
**Arquivo: tests/Feature/MigrationTest.php**
|
|
149
|
+
```php
|
|
150
|
+
<?php
|
|
151
|
+
|
|
152
|
+
namespace Tests\Feature;
|
|
153
|
+
|
|
154
|
+
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
155
|
+
use Tests\TestCase;
|
|
156
|
+
|
|
157
|
+
class MigrationTest extends TestCase
|
|
158
|
+
{
|
|
159
|
+
use RefreshDatabase;
|
|
160
|
+
|
|
161
|
+
public function test_users_table_created()
|
|
162
|
+
{
|
|
163
|
+
$this->assertTrue(
|
|
164
|
+
\Schema::hasTable('users')
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
public function test_users_table_has_required_columns()
|
|
169
|
+
{
|
|
170
|
+
$this->assertTrue(
|
|
171
|
+
\Schema::hasColumns('users', [
|
|
172
|
+
'id', 'email', 'password_hash', 'name',
|
|
173
|
+
'is_active', 'created_at', 'updated_at'
|
|
174
|
+
])
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
public function test_email_is_unique()
|
|
179
|
+
{
|
|
180
|
+
$this->assertTrue(
|
|
181
|
+
\Schema::hasColumn('users', 'email')
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Passo 4: Rodar Testes
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
php artisan migrate
|
|
191
|
+
php artisan test tests/Feature/MigrationTest.php
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Saída esperada:**
|
|
195
|
+
```
|
|
196
|
+
✓ test_users_table_created
|
|
197
|
+
✓ test_users_table_has_required_columns
|
|
198
|
+
✓ test_email_is_unique
|
|
199
|
+
|
|
200
|
+
Tests: 3 passed
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Passo 5: Validar Validation Gates
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# ✓ Migrations criadas sem erros
|
|
207
|
+
php artisan migrate
|
|
208
|
+
|
|
209
|
+
# ✓ Tabelas têm índices apropriados
|
|
210
|
+
php artisan tinker
|
|
211
|
+
>>> Schema::getColumnListing('users')
|
|
212
|
+
|
|
213
|
+
# ✓ Foreign keys estão corretas
|
|
214
|
+
# (Verificado no código)
|
|
215
|
+
|
|
216
|
+
# ✓ php artisan migrate executa sem erros
|
|
217
|
+
php artisan migrate:rollback
|
|
218
|
+
php artisan migrate
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## Boas Práticas
|
|
222
|
+
|
|
223
|
+
1. **Siga Padrões:** Use convenções do projeto
|
|
224
|
+
2. **Teste Tudo:** Cobertura de testes alta
|
|
225
|
+
3. **Segurança:** Implemente proteções OWASP
|
|
226
|
+
4. **Documentação:** Adicione comentários
|
|
227
|
+
5. **Limpo:** Código legível e manutenível
|
|
228
|
+
|
|
229
|
+
## Segurança em Execução
|
|
230
|
+
|
|
231
|
+
Para cada task, verifique:
|
|
232
|
+
- Validação de entrada
|
|
233
|
+
- Autenticação/Autorização
|
|
234
|
+
- Criptografia de dados sensíveis
|
|
235
|
+
- Proteção contra SQL Injection
|
|
236
|
+
- Proteção contra XSS
|
|
237
|
+
- Rate Limiting (se aplicável)
|
|
238
|
+
|
|
239
|
+
## Dicas para Melhor Resultado
|
|
240
|
+
|
|
241
|
+
- **Contexto:** Leia exemplos em `examples/`
|
|
242
|
+
- **Padrões:** Siga convenções do projeto
|
|
243
|
+
- **Testes:** Use `skill-security` para testes de segurança
|
|
244
|
+
- **Feedback:** Peça aprovação após cada task
|
|
245
|
+
- **Ralph Loop:** Não pule validações
|
|
246
|
+
|
|
247
|
+
## Próxima Task
|
|
248
|
+
|
|
249
|
+
Após completar uma task:
|
|
250
|
+
1. Crie Artifact de progresso
|
|
251
|
+
2. Peça aprovação do usuário
|
|
252
|
+
3. Execute a próxima task
|
|
253
|
+
4. Repita até completar todas
|
|
254
|
+
|
|
255
|
+
## Exemplo de Artifact de Progresso
|
|
256
|
+
|
|
257
|
+
```
|
|
258
|
+
✓ Task 001: Criar Migrations de Users
|
|
259
|
+
- Migrations criadas: 2
|
|
260
|
+
- Testes passando: 3/3
|
|
261
|
+
- Validation Gates: 4/4 ✓
|
|
262
|
+
|
|
263
|
+
Próxima: Task 002: Configurar JWT
|
|
264
|
+
```
|
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dare-feature-design
|
|
3
|
-
description: Analisa um projeto existente e gera um Implementation Plan focado apenas na adicao de uma nova feature. Use quando o projeto ja existe e precisa adicionar uma funcionalidade sem reescrever todo o sistema. Cria um documento DESIGN-Feature-[Nome].md.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# DARE Feature Design Skill
|
|
7
|
-
|
|
8
|
-
Você é um especialista em modernização de sistemas legados e análise de impacto focado em expansão. Seu objetivo é analisar a base de código atual de um projeto existente e gerar um documento de Design focado especificamente na **adição de uma nova feature**, respeitando a arquitetura existente.
|
|
9
|
-
|
|
10
|
-
## Quando usar esta skill
|
|
11
|
-
|
|
12
|
-
- O usuário pede para adicionar uma feature em um projeto que já possui código.
|
|
13
|
-
- O projeto não nasceu com o Método DARE, mas o usuário quer introduzi-lo agora para novas funcionalidades.
|
|
14
|
-
|
|
15
|
-
## Como usar
|
|
16
|
-
|
|
17
|
-
### Passo 1: Análise de Contexto (Obrigatório)
|
|
18
|
-
Antes de escrever qualquer coisa, você DEVE analisar o projeto atual:
|
|
19
|
-
1. **Identifique a Stack:** Leia arquivos de configuração (composer.json, package.json, etc).
|
|
20
|
-
2. **Identifique a Arquitetura:** Entenda o padrão atual (MVC, Hexagonal, etc).
|
|
21
|
-
3. **Analise o Banco de Dados:** Entenda o esquema atual relacionado à nova feature.
|
|
22
|
-
4. **Verifique Dependências:** Quais pacotes chave estão sendo usados?
|
|
23
|
-
|
|
24
|
-
### Passo 2: Entendimento da Feature
|
|
25
|
-
Identifique o valor de negócio e os novos endpoints/telas que serão necessários. Como a feature se conecta com o que já existe?
|
|
26
|
-
|
|
27
|
-
### Passo 3: Avaliação de Impacto e Segurança
|
|
28
|
-
- Quais arquivos existentes serão modificados?
|
|
29
|
-
- Quais novas tabelas/colunas serão criadas?
|
|
30
|
-
- **Segurança (OWASP):** Como proteger essa feature especificamente?
|
|
31
|
-
|
|
32
|
-
### Passo 4: Gerar o Feature Design
|
|
33
|
-
Crie um documento `DARE/DESIGN-Feature-[Nome-da-Feature].md` com a seguinte estrutura:
|
|
34
|
-
|
|
35
|
-
```markdown
|
|
36
|
-
# Feature Design: [Nome da Feature]
|
|
37
|
-
|
|
38
|
-
## Contexto no Projeto Existente
|
|
39
|
-
Breve resumo de como a feature se encaixa no ecossistema atual.
|
|
40
|
-
|
|
41
|
-
## Objetivos da Feature
|
|
42
|
-
- [Objetivo 1]
|
|
43
|
-
- [Objetivo 2]
|
|
44
|
-
|
|
45
|
-
## Análise de Impacto (O que muda no legado)
|
|
46
|
-
- **Novos Arquivos:** [Lista de arquivos a serem criados]
|
|
47
|
-
- **Arquivos Modificados:** [Lista de arquivos existentes que sofrerão alteração]
|
|
48
|
-
- **Banco de Dados:** [Novas tabelas ou alterações]
|
|
49
|
-
|
|
50
|
-
## Requisitos Técnicos
|
|
51
|
-
### Funcionalidades
|
|
52
|
-
- [Funcionalidade 1]
|
|
53
|
-
- [Funcionalidade 2]
|
|
54
|
-
|
|
55
|
-
### Segurança Específica (OWASP)
|
|
56
|
-
- [Validações e controles de acesso]
|
|
57
|
-
|
|
58
|
-
## Restrições e Cuidados
|
|
59
|
-
- **O que NÃO alterar:** [Partes do código legado que não devem ser tocadas]
|
|
60
|
-
|
|
61
|
-
## Próximas Etapas
|
|
62
|
-
1. Revisar e aprovar este Feature Design
|
|
63
|
-
2. Executar o Agent com a skill `dare-blueprint` apontando para este arquivo
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### Passo 5: Pedir Aprovação
|
|
67
|
-
Após gerar o Design, crie um Artifact do tipo Implementation Plan e peça ao usuário para revisar o impacto no código legado e aprovar.
|
|
68
|
-
|
|
69
|
-
## Regras de Ouro para Features em Projetos Existentes
|
|
70
|
-
|
|
71
|
-
1. **Siga os Padrões Locais:** Adapte a feature ao padrão existente.
|
|
72
|
-
2. **Isolamento:** Mantenha o impacto da feature o mais isolado possível.
|
|
73
|
-
3. **Testes Nascem com a Feature:** A nova feature DEVE nascer com testes isolados.
|
|
74
|
-
4. **Segurança Inegociável:** Aplique regras OWASP na nova feature.
|
|
1
|
+
---
|
|
2
|
+
name: dare-feature-design
|
|
3
|
+
description: Analisa um projeto existente e gera um Implementation Plan focado apenas na adicao de uma nova feature. Use quando o projeto ja existe e precisa adicionar uma funcionalidade sem reescrever todo o sistema. Cria um documento DESIGN-Feature-[Nome].md.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# DARE Feature Design Skill
|
|
7
|
+
|
|
8
|
+
Você é um especialista em modernização de sistemas legados e análise de impacto focado em expansão. Seu objetivo é analisar a base de código atual de um projeto existente e gerar um documento de Design focado especificamente na **adição de uma nova feature**, respeitando a arquitetura existente.
|
|
9
|
+
|
|
10
|
+
## Quando usar esta skill
|
|
11
|
+
|
|
12
|
+
- O usuário pede para adicionar uma feature em um projeto que já possui código.
|
|
13
|
+
- O projeto não nasceu com o Método DARE, mas o usuário quer introduzi-lo agora para novas funcionalidades.
|
|
14
|
+
|
|
15
|
+
## Como usar
|
|
16
|
+
|
|
17
|
+
### Passo 1: Análise de Contexto (Obrigatório)
|
|
18
|
+
Antes de escrever qualquer coisa, você DEVE analisar o projeto atual:
|
|
19
|
+
1. **Identifique a Stack:** Leia arquivos de configuração (composer.json, package.json, etc).
|
|
20
|
+
2. **Identifique a Arquitetura:** Entenda o padrão atual (MVC, Hexagonal, etc).
|
|
21
|
+
3. **Analise o Banco de Dados:** Entenda o esquema atual relacionado à nova feature.
|
|
22
|
+
4. **Verifique Dependências:** Quais pacotes chave estão sendo usados?
|
|
23
|
+
|
|
24
|
+
### Passo 2: Entendimento da Feature
|
|
25
|
+
Identifique o valor de negócio e os novos endpoints/telas que serão necessários. Como a feature se conecta com o que já existe?
|
|
26
|
+
|
|
27
|
+
### Passo 3: Avaliação de Impacto e Segurança
|
|
28
|
+
- Quais arquivos existentes serão modificados?
|
|
29
|
+
- Quais novas tabelas/colunas serão criadas?
|
|
30
|
+
- **Segurança (OWASP):** Como proteger essa feature especificamente?
|
|
31
|
+
|
|
32
|
+
### Passo 4: Gerar o Feature Design
|
|
33
|
+
Crie um documento `DARE/DESIGN-Feature-[Nome-da-Feature].md` com a seguinte estrutura:
|
|
34
|
+
|
|
35
|
+
```markdown
|
|
36
|
+
# Feature Design: [Nome da Feature]
|
|
37
|
+
|
|
38
|
+
## Contexto no Projeto Existente
|
|
39
|
+
Breve resumo de como a feature se encaixa no ecossistema atual.
|
|
40
|
+
|
|
41
|
+
## Objetivos da Feature
|
|
42
|
+
- [Objetivo 1]
|
|
43
|
+
- [Objetivo 2]
|
|
44
|
+
|
|
45
|
+
## Análise de Impacto (O que muda no legado)
|
|
46
|
+
- **Novos Arquivos:** [Lista de arquivos a serem criados]
|
|
47
|
+
- **Arquivos Modificados:** [Lista de arquivos existentes que sofrerão alteração]
|
|
48
|
+
- **Banco de Dados:** [Novas tabelas ou alterações]
|
|
49
|
+
|
|
50
|
+
## Requisitos Técnicos
|
|
51
|
+
### Funcionalidades
|
|
52
|
+
- [Funcionalidade 1]
|
|
53
|
+
- [Funcionalidade 2]
|
|
54
|
+
|
|
55
|
+
### Segurança Específica (OWASP)
|
|
56
|
+
- [Validações e controles de acesso]
|
|
57
|
+
|
|
58
|
+
## Restrições e Cuidados
|
|
59
|
+
- **O que NÃO alterar:** [Partes do código legado que não devem ser tocadas]
|
|
60
|
+
|
|
61
|
+
## Próximas Etapas
|
|
62
|
+
1. Revisar e aprovar este Feature Design
|
|
63
|
+
2. Executar o Agent com a skill `dare-blueprint` apontando para este arquivo
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Passo 5: Pedir Aprovação
|
|
67
|
+
Após gerar o Design, crie um Artifact do tipo Implementation Plan e peça ao usuário para revisar o impacto no código legado e aprovar.
|
|
68
|
+
|
|
69
|
+
## Regras de Ouro para Features em Projetos Existentes
|
|
70
|
+
|
|
71
|
+
1. **Siga os Padrões Locais:** Adapte a feature ao padrão existente.
|
|
72
|
+
2. **Isolamento:** Mantenha o impacto da feature o mais isolado possível.
|
|
73
|
+
3. **Testes Nascem com a Feature:** A nova feature DEVE nascer com testes isolados.
|
|
74
|
+
4. **Segurança Inegociável:** Aplique regras OWASP na nova feature.
|