@dewtech/dare-cli 3.3.0 → 3.4.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__/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__/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/blueprint.js +122 -122
- package/dist/commands/design.js +20 -20
- 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/graphrag/graph-rag.js +24 -24
- 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__/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 +185 -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/project-generator.d.ts.map +1 -1
- package/dist/utils/project-generator.js +254 -252
- package/dist/utils/project-generator.js.map +1 -1
- package/dist/utils/stack-bootstrap.js +371 -371
- package/dist/utils/templates.js +394 -394
- package/dist/verification/__tests__/anti-tamper.test.js +13 -13
- 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,86 +1,86 @@
|
|
|
1
|
-
# Comando: /dare-blueprint
|
|
2
|
-
|
|
3
|
-
## Descrição
|
|
4
|
-
Avança o DARE para a fase Architect: lê `DARE/DESIGN.md` aprovado e gera **somente** `DARE/BLUEPRINT.md`.
|
|
5
|
-
|
|
6
|
-
> As tasks, DAG e specs de execução são geradas depois com `/generate-tasks`, após você revisar e aprovar o Blueprint.
|
|
7
|
-
|
|
8
|
-
## Instruções para o Cursor Composer
|
|
9
|
-
|
|
10
|
-
1. **Leia `DARE/DESIGN.md`** — obrigatório. Se não existir, peça `/generate-design` primeiro. Extraia: stack, RF-*, RNF-*, RS-*, integrações, restrições, escopo.
|
|
11
|
-
|
|
12
|
-
2. **Leia o template:** `templates/BLUEPRINT-template.md` — siga a estrutura fielmente.
|
|
13
|
-
|
|
14
|
-
3. **Gere `DARE/BLUEPRINT.md`** com seções obrigatórias:
|
|
15
|
-
|
|
16
|
-
- **Visão Geral da Arquitetura** — diagrama Mermaid + tabela de decisões com justificativa
|
|
17
|
-
- **Stack Técnica Definida** — versões fixas (não ranges)
|
|
18
|
-
- **Estrutura de Pastas** — árvore completa dos arquivos a criar
|
|
19
|
-
- **Modelo de Dados** — entidades, campos tipados, relacionamentos, índices
|
|
20
|
-
- **Contratos de API** — método, rota, auth, request/response, status codes
|
|
21
|
-
- **Plano de Execução (Fases)** — cada fase com critério de DONE verificável:
|
|
22
|
-
- Fase 1 = containerização (Dockerfile + docker-compose + healthcheck) — sempre
|
|
23
|
-
- Fase N-1 = auditoria de segurança + dependências — sempre
|
|
24
|
-
- **Validation Gates por stack:**
|
|
25
|
-
| Stack | Build | Test | Lint/Audit |
|
|
26
|
-
|-------|-------|------|------------|
|
|
27
|
-
| Rust | `cargo build` | `cargo test --workspace` | `cargo clippy && cargo audit` |
|
|
28
|
-
| Node | `npm run build` | `npm test` | `npx eslint src && npm audit --audit-level=high` |
|
|
29
|
-
| Python | verificar imports | `pytest` | `ruff check . && pip-audit` |
|
|
30
|
-
| PHP | `php artisan config:cache` | `php artisan test` | `./vendor/bin/phpstan && composer audit` |
|
|
31
|
-
| Go | `go build ./...` | `go test ./...` | `golangci-lint run` |
|
|
32
|
-
- **Controles de Segurança** — checklist mapeando cada RS-* do DESIGN para fases específicas
|
|
33
|
-
- **Estratégia de Testes** — unitários + integração + auditoria de deps + E2E
|
|
34
|
-
- **Estratégia de Deploy** — por ambiente
|
|
35
|
-
- **Checklist de Aprovação** — checkboxes para revisão humana
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
### 🚫 ANTI-STUB CONTRACT (regra inegociável)
|
|
40
|
-
|
|
41
|
-
> **Por que existe esta seção:** o `/generate-tasks` que vem depois usa este Blueprint como **única fonte de verdade**. Se um endpoint, função ou regra ficar genérico aqui, o agente que implementar a task **será forçado a inventar** — e vai produzir mocks, stubs e esqueletos para "preencher o vazio". Detalhe agora.
|
|
42
|
-
>
|
|
43
|
-
> Tasks que produzem mock/stub/skeleton **falham** no `dare review` (v2.17+) e bloqueiam o `dare execute --complete`.
|
|
44
|
-
|
|
45
|
-
Para **cada** endpoint, função pública, evento ou job declarado no Blueprint, especifique de forma **executável**:
|
|
46
|
-
|
|
47
|
-
**Endpoints HTTP/RPC:**
|
|
48
|
-
- Assinatura completa (método, path, headers, content-type)
|
|
49
|
-
- Request schema (campos, tipos, restrições, opcionalidade)
|
|
50
|
-
- Response schema **por status code** (2xx, 4xx, 5xx)
|
|
51
|
-
- Validações server-side (lista exaustiva — `email único`, `senha ≥ 8 chars + maiúscula + dígito`)
|
|
52
|
-
- Edge cases enumerados (input vazio, duplicado, expirado, sem permissão)
|
|
53
|
-
- Side effects (tabelas/filas/caches/emails tocados — em ordem)
|
|
54
|
-
- Exemplo concreto (payload real, response real — não placeholder)
|
|
55
|
-
|
|
56
|
-
**Funções de domínio / services:**
|
|
57
|
-
- Assinatura tipada (`fn name(args: Types) -> ReturnType`)
|
|
58
|
-
- Pré-condições e pós-condições verificáveis
|
|
59
|
-
- Estados de erro com tipo de exceção esperado
|
|
60
|
-
- Comportamento em concorrência (idempotência, locking, retry)
|
|
61
|
-
|
|
62
|
-
**Jobs / event handlers / workers:**
|
|
63
|
-
- Trigger (evento, cron, fila — nome canônico)
|
|
64
|
-
- Payload schema tipado
|
|
65
|
-
- Retry policy (backoff, max attempts, DLQ)
|
|
66
|
-
- Idempotência (chave + estratégia)
|
|
67
|
-
|
|
68
|
-
**Modelos de dados:**
|
|
69
|
-
- Cada campo: tipo, nullable, default, constraints (unique, fk, check), índices
|
|
70
|
-
- Triggers / hooks (soft-delete, audit, encryption-at-rest)
|
|
71
|
-
|
|
72
|
-
**Critério de "Blueprint detalhado o suficiente"** (auto-validação antes de salvar):
|
|
73
|
-
|
|
74
|
-
- [ ] Para cada endpoint, um humano consegue escrever request/response sem perguntar?
|
|
75
|
-
- [ ] Para cada função pública, está claro o que retorna em todos os caminhos (sucesso + erros enumerados)?
|
|
76
|
-
- [ ] Edge cases enumerados explicitamente — não "tratar edge cases"?
|
|
77
|
-
- [ ] Cada validação tem regra concreta — não só "validar email"?
|
|
78
|
-
- [ ] Cada decisão arquitetural tem **justificativa**?
|
|
79
|
-
|
|
80
|
-
**Anti-padrão a evitar:** seções como _"implementar autenticação"_ ou _"validar dados"_ — isso vira stub. Especifique algoritmo, campos, regras.
|
|
81
|
-
|
|
82
|
-
4. **Salve `DARE/BLUEPRINT.md`** e informe:
|
|
83
|
-
|
|
84
|
-
_"Blueprint gerado. Revise a arquitetura, os contratos de API e os critérios de DONE de cada fase. Quando aprovado, execute `/generate-tasks` para gerar o DAG e as specs de execução."_
|
|
85
|
-
|
|
86
|
-
**Não gere** `TASKS.md`, `dare-dag.yaml` nem arquivos em `EXECUTION/` — isso é responsabilidade do `/generate-tasks`.
|
|
1
|
+
# Comando: /dare-blueprint
|
|
2
|
+
|
|
3
|
+
## Descrição
|
|
4
|
+
Avança o DARE para a fase Architect: lê `DARE/DESIGN.md` aprovado e gera **somente** `DARE/BLUEPRINT.md`.
|
|
5
|
+
|
|
6
|
+
> As tasks, DAG e specs de execução são geradas depois com `/generate-tasks`, após você revisar e aprovar o Blueprint.
|
|
7
|
+
|
|
8
|
+
## Instruções para o Cursor Composer
|
|
9
|
+
|
|
10
|
+
1. **Leia `DARE/DESIGN.md`** — obrigatório. Se não existir, peça `/generate-design` primeiro. Extraia: stack, RF-*, RNF-*, RS-*, integrações, restrições, escopo.
|
|
11
|
+
|
|
12
|
+
2. **Leia o template:** `templates/BLUEPRINT-template.md` — siga a estrutura fielmente.
|
|
13
|
+
|
|
14
|
+
3. **Gere `DARE/BLUEPRINT.md`** com seções obrigatórias:
|
|
15
|
+
|
|
16
|
+
- **Visão Geral da Arquitetura** — diagrama Mermaid + tabela de decisões com justificativa
|
|
17
|
+
- **Stack Técnica Definida** — versões fixas (não ranges)
|
|
18
|
+
- **Estrutura de Pastas** — árvore completa dos arquivos a criar
|
|
19
|
+
- **Modelo de Dados** — entidades, campos tipados, relacionamentos, índices
|
|
20
|
+
- **Contratos de API** — método, rota, auth, request/response, status codes
|
|
21
|
+
- **Plano de Execução (Fases)** — cada fase com critério de DONE verificável:
|
|
22
|
+
- Fase 1 = containerização (Dockerfile + docker-compose + healthcheck) — sempre
|
|
23
|
+
- Fase N-1 = auditoria de segurança + dependências — sempre
|
|
24
|
+
- **Validation Gates por stack:**
|
|
25
|
+
| Stack | Build | Test | Lint/Audit |
|
|
26
|
+
|-------|-------|------|------------|
|
|
27
|
+
| Rust | `cargo build` | `cargo test --workspace` | `cargo clippy && cargo audit` |
|
|
28
|
+
| Node | `npm run build` | `npm test` | `npx eslint src && npm audit --audit-level=high` |
|
|
29
|
+
| Python | verificar imports | `pytest` | `ruff check . && pip-audit` |
|
|
30
|
+
| PHP | `php artisan config:cache` | `php artisan test` | `./vendor/bin/phpstan && composer audit` |
|
|
31
|
+
| Go | `go build ./...` | `go test ./...` | `golangci-lint run` |
|
|
32
|
+
- **Controles de Segurança** — checklist mapeando cada RS-* do DESIGN para fases específicas
|
|
33
|
+
- **Estratégia de Testes** — unitários + integração + auditoria de deps + E2E
|
|
34
|
+
- **Estratégia de Deploy** — por ambiente
|
|
35
|
+
- **Checklist de Aprovação** — checkboxes para revisão humana
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
### 🚫 ANTI-STUB CONTRACT (regra inegociável)
|
|
40
|
+
|
|
41
|
+
> **Por que existe esta seção:** o `/generate-tasks` que vem depois usa este Blueprint como **única fonte de verdade**. Se um endpoint, função ou regra ficar genérico aqui, o agente que implementar a task **será forçado a inventar** — e vai produzir mocks, stubs e esqueletos para "preencher o vazio". Detalhe agora.
|
|
42
|
+
>
|
|
43
|
+
> Tasks que produzem mock/stub/skeleton **falham** no `dare review` (v2.17+) e bloqueiam o `dare execute --complete`.
|
|
44
|
+
|
|
45
|
+
Para **cada** endpoint, função pública, evento ou job declarado no Blueprint, especifique de forma **executável**:
|
|
46
|
+
|
|
47
|
+
**Endpoints HTTP/RPC:**
|
|
48
|
+
- Assinatura completa (método, path, headers, content-type)
|
|
49
|
+
- Request schema (campos, tipos, restrições, opcionalidade)
|
|
50
|
+
- Response schema **por status code** (2xx, 4xx, 5xx)
|
|
51
|
+
- Validações server-side (lista exaustiva — `email único`, `senha ≥ 8 chars + maiúscula + dígito`)
|
|
52
|
+
- Edge cases enumerados (input vazio, duplicado, expirado, sem permissão)
|
|
53
|
+
- Side effects (tabelas/filas/caches/emails tocados — em ordem)
|
|
54
|
+
- Exemplo concreto (payload real, response real — não placeholder)
|
|
55
|
+
|
|
56
|
+
**Funções de domínio / services:**
|
|
57
|
+
- Assinatura tipada (`fn name(args: Types) -> ReturnType`)
|
|
58
|
+
- Pré-condições e pós-condições verificáveis
|
|
59
|
+
- Estados de erro com tipo de exceção esperado
|
|
60
|
+
- Comportamento em concorrência (idempotência, locking, retry)
|
|
61
|
+
|
|
62
|
+
**Jobs / event handlers / workers:**
|
|
63
|
+
- Trigger (evento, cron, fila — nome canônico)
|
|
64
|
+
- Payload schema tipado
|
|
65
|
+
- Retry policy (backoff, max attempts, DLQ)
|
|
66
|
+
- Idempotência (chave + estratégia)
|
|
67
|
+
|
|
68
|
+
**Modelos de dados:**
|
|
69
|
+
- Cada campo: tipo, nullable, default, constraints (unique, fk, check), índices
|
|
70
|
+
- Triggers / hooks (soft-delete, audit, encryption-at-rest)
|
|
71
|
+
|
|
72
|
+
**Critério de "Blueprint detalhado o suficiente"** (auto-validação antes de salvar):
|
|
73
|
+
|
|
74
|
+
- [ ] Para cada endpoint, um humano consegue escrever request/response sem perguntar?
|
|
75
|
+
- [ ] Para cada função pública, está claro o que retorna em todos os caminhos (sucesso + erros enumerados)?
|
|
76
|
+
- [ ] Edge cases enumerados explicitamente — não "tratar edge cases"?
|
|
77
|
+
- [ ] Cada validação tem regra concreta — não só "validar email"?
|
|
78
|
+
- [ ] Cada decisão arquitetural tem **justificativa**?
|
|
79
|
+
|
|
80
|
+
**Anti-padrão a evitar:** seções como _"implementar autenticação"_ ou _"validar dados"_ — isso vira stub. Especifique algoritmo, campos, regras.
|
|
81
|
+
|
|
82
|
+
4. **Salve `DARE/BLUEPRINT.md`** e informe:
|
|
83
|
+
|
|
84
|
+
_"Blueprint gerado. Revise a arquitetura, os contratos de API e os critérios de DONE de cada fase. Quando aprovado, execute `/generate-tasks` para gerar o DAG e as specs de execução."_
|
|
85
|
+
|
|
86
|
+
**Não gere** `TASKS.md`, `dare-dag.yaml` nem arquivos em `EXECUTION/` — isso é responsabilidade do `/generate-tasks`.
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
# Comando: /dare-bootstrap
|
|
2
|
-
|
|
3
|
-
Executa o scaffolder oficial da stack registrada em `dare.config.json` para materializar o esqueleto do framework no projeto atual.
|
|
4
|
-
|
|
5
|
-
> Este comando expõe o CLI `dare bootstrap` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
6
|
-
|
|
7
|
-
## Quando usar
|
|
8
|
-
|
|
9
|
-
- Logo após `dare init`, para gerar o esqueleto real do framework.
|
|
10
|
-
- Quando `dare.config.json` existe mas os artefatos do framework ainda não foram gerados.
|
|
11
|
-
|
|
12
|
-
## Como rodar
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
dare bootstrap
|
|
16
|
-
dare bootstrap --force # roda mesmo se já houver artefatos (pode sobrescrever)
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## O que fazer
|
|
20
|
-
|
|
21
|
-
1. Confirme que existe `dare.config.json` com a stack definida.
|
|
22
|
-
2. Rode `dare bootstrap` (use `--force` apenas se o usuário aceitar sobrescrever arquivos existentes).
|
|
23
|
-
3. Verifique a saída: arquivos gerados e próximos passos sugeridos pelo CLI.
|
|
24
|
-
|
|
25
|
-
## Comandos relacionados
|
|
26
|
-
|
|
27
|
-
`/dare-init` · `/dare-design`
|
|
1
|
+
# Comando: /dare-bootstrap
|
|
2
|
+
|
|
3
|
+
Executa o scaffolder oficial da stack registrada em `dare.config.json` para materializar o esqueleto do framework no projeto atual.
|
|
4
|
+
|
|
5
|
+
> Este comando expõe o CLI `dare bootstrap` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
6
|
+
|
|
7
|
+
## Quando usar
|
|
8
|
+
|
|
9
|
+
- Logo após `dare init`, para gerar o esqueleto real do framework.
|
|
10
|
+
- Quando `dare.config.json` existe mas os artefatos do framework ainda não foram gerados.
|
|
11
|
+
|
|
12
|
+
## Como rodar
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
dare bootstrap
|
|
16
|
+
dare bootstrap --force # roda mesmo se já houver artefatos (pode sobrescrever)
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## O que fazer
|
|
20
|
+
|
|
21
|
+
1. Confirme que existe `dare.config.json` com a stack definida.
|
|
22
|
+
2. Rode `dare bootstrap` (use `--force` apenas se o usuário aceitar sobrescrever arquivos existentes).
|
|
23
|
+
3. Verifique a saída: arquivos gerados e próximos passos sugeridos pelo CLI.
|
|
24
|
+
|
|
25
|
+
## Comandos relacionados
|
|
26
|
+
|
|
27
|
+
`/dare-init` · `/dare-design`
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Analisa o projeto existente e gera um Design DARE focado na resolucao de um bug. Use quando precisar investigar e corrigir um erro complexo no sistema atual.
|
|
3
|
-
globs: *
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Generate Bugfix Design
|
|
7
|
-
|
|
8
|
-
## Objetivo
|
|
9
|
-
Analisar a base de código atual, diagnosticar um problema relatado e gerar um documento de Design (`DARE/DESIGN-Bugfix-[Nome].md`) focado especificamente na **correção do bug**, mapeando a causa raiz e o plano de ação cirúrgico.
|
|
10
|
-
|
|
11
|
-
## Contexto
|
|
12
|
-
Este comando é para **projetos legados** ou em andamento onde um erro foi encontrado. O foco aqui é **diagnóstico e correção**: encontrar a causa raiz, analisar impacto e planejar a correção mais segura possível.
|
|
13
|
-
|
|
14
|
-
## Passos que a IA deve seguir:
|
|
15
|
-
|
|
16
|
-
1. **Análise de Contexto:**
|
|
17
|
-
- Entender o comportamento atual (o bug) vs o comportamento esperado
|
|
18
|
-
- Analisar logs, stack traces ou descrições de erro fornecidas
|
|
19
|
-
- Identificar a área do código responsável pelo problema
|
|
20
|
-
|
|
21
|
-
2. **Diagnóstico da Causa Raiz:**
|
|
22
|
-
- Por que o erro está ocorrendo?
|
|
23
|
-
- É um problema de lógica, banco de dados, concorrência ou segurança?
|
|
24
|
-
|
|
25
|
-
3. **Geração do Documento:**
|
|
26
|
-
- Criar o arquivo `DARE/DESIGN-Bugfix-[Nome-do-Bug].md`
|
|
27
|
-
|
|
28
|
-
## Estrutura do Documento Gerado:
|
|
29
|
-
|
|
30
|
-
```markdown
|
|
31
|
-
# Bugfix Design: [Nome do Bug]
|
|
32
|
-
|
|
33
|
-
## Descrição do Problema
|
|
34
|
-
- **Comportamento Atual:** [O que está acontecendo de errado]
|
|
35
|
-
- **Comportamento Esperado:** [O que deveria acontecer]
|
|
36
|
-
- **Passos para Reproduzir:** [Se conhecido]
|
|
37
|
-
|
|
38
|
-
## Diagnóstico da Causa Raiz
|
|
39
|
-
Explicação técnica detalhada de por que o erro ocorre. (Ex: "A query N+1 está estourando a memória", ou "A validação não verifica campos nulos").
|
|
40
|
-
|
|
41
|
-
## Análise de Impacto (Onde corrigir)
|
|
42
|
-
- **Arquivos a Modificar:** [Lista de arquivos específicos]
|
|
43
|
-
- **Banco de Dados:** [Necessário rodar script de correção de dados?]
|
|
44
|
-
- **Riscos da Correção:** [O que pode quebrar ao consertar isso?]
|
|
45
|
-
|
|
46
|
-
## Plano de Ação (Correção Cirúrgica)
|
|
47
|
-
1. [Passo 1: Ajustar a query no Repository]
|
|
48
|
-
2. [Passo 2: Adicionar teste unitário para cobrir o caso]
|
|
49
|
-
3. [Passo 3: Validar comportamento]
|
|
50
|
-
|
|
51
|
-
## Testes Necessários
|
|
52
|
-
- **Validation Gates:** [O que testar para garantir que o bug sumiu]
|
|
53
|
-
- **Testes de Regressão:** [O que testar para garantir que não quebrou o resto]
|
|
54
|
-
|
|
55
|
-
## Próximas Etapas
|
|
56
|
-
1. Revisar e aprovar este Bugfix Design
|
|
57
|
-
2. Executar `/generate-blueprint DARE/DESIGN-Bugfix-[Nome].md` (opcional, se a correção for grande)
|
|
58
|
-
3. Ou ir direto para `/generate-tasks DARE/DESIGN-Bugfix-[Nome].md`
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## Regras de Ouro:
|
|
62
|
-
- **Seja Cirúrgico:** A correção deve ser o menor código possível para resolver o problema sem efeitos colaterais.
|
|
63
|
-
- **Causa Raiz:** Não trate apenas o sintoma, identifique e corrija a causa raiz.
|
|
64
|
-
- **Evite Regressão:** Sempre mapeie os riscos da correção.
|
|
1
|
+
---
|
|
2
|
+
description: Analisa o projeto existente e gera um Design DARE focado na resolucao de um bug. Use quando precisar investigar e corrigir um erro complexo no sistema atual.
|
|
3
|
+
globs: *
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Generate Bugfix Design
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
Analisar a base de código atual, diagnosticar um problema relatado e gerar um documento de Design (`DARE/DESIGN-Bugfix-[Nome].md`) focado especificamente na **correção do bug**, mapeando a causa raiz e o plano de ação cirúrgico.
|
|
10
|
+
|
|
11
|
+
## Contexto
|
|
12
|
+
Este comando é para **projetos legados** ou em andamento onde um erro foi encontrado. O foco aqui é **diagnóstico e correção**: encontrar a causa raiz, analisar impacto e planejar a correção mais segura possível.
|
|
13
|
+
|
|
14
|
+
## Passos que a IA deve seguir:
|
|
15
|
+
|
|
16
|
+
1. **Análise de Contexto:**
|
|
17
|
+
- Entender o comportamento atual (o bug) vs o comportamento esperado
|
|
18
|
+
- Analisar logs, stack traces ou descrições de erro fornecidas
|
|
19
|
+
- Identificar a área do código responsável pelo problema
|
|
20
|
+
|
|
21
|
+
2. **Diagnóstico da Causa Raiz:**
|
|
22
|
+
- Por que o erro está ocorrendo?
|
|
23
|
+
- É um problema de lógica, banco de dados, concorrência ou segurança?
|
|
24
|
+
|
|
25
|
+
3. **Geração do Documento:**
|
|
26
|
+
- Criar o arquivo `DARE/DESIGN-Bugfix-[Nome-do-Bug].md`
|
|
27
|
+
|
|
28
|
+
## Estrutura do Documento Gerado:
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
# Bugfix Design: [Nome do Bug]
|
|
32
|
+
|
|
33
|
+
## Descrição do Problema
|
|
34
|
+
- **Comportamento Atual:** [O que está acontecendo de errado]
|
|
35
|
+
- **Comportamento Esperado:** [O que deveria acontecer]
|
|
36
|
+
- **Passos para Reproduzir:** [Se conhecido]
|
|
37
|
+
|
|
38
|
+
## Diagnóstico da Causa Raiz
|
|
39
|
+
Explicação técnica detalhada de por que o erro ocorre. (Ex: "A query N+1 está estourando a memória", ou "A validação não verifica campos nulos").
|
|
40
|
+
|
|
41
|
+
## Análise de Impacto (Onde corrigir)
|
|
42
|
+
- **Arquivos a Modificar:** [Lista de arquivos específicos]
|
|
43
|
+
- **Banco de Dados:** [Necessário rodar script de correção de dados?]
|
|
44
|
+
- **Riscos da Correção:** [O que pode quebrar ao consertar isso?]
|
|
45
|
+
|
|
46
|
+
## Plano de Ação (Correção Cirúrgica)
|
|
47
|
+
1. [Passo 1: Ajustar a query no Repository]
|
|
48
|
+
2. [Passo 2: Adicionar teste unitário para cobrir o caso]
|
|
49
|
+
3. [Passo 3: Validar comportamento]
|
|
50
|
+
|
|
51
|
+
## Testes Necessários
|
|
52
|
+
- **Validation Gates:** [O que testar para garantir que o bug sumiu]
|
|
53
|
+
- **Testes de Regressão:** [O que testar para garantir que não quebrou o resto]
|
|
54
|
+
|
|
55
|
+
## Próximas Etapas
|
|
56
|
+
1. Revisar e aprovar este Bugfix Design
|
|
57
|
+
2. Executar `/generate-blueprint DARE/DESIGN-Bugfix-[Nome].md` (opcional, se a correção for grande)
|
|
58
|
+
3. Ou ir direto para `/generate-tasks DARE/DESIGN-Bugfix-[Nome].md`
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Regras de Ouro:
|
|
62
|
+
- **Seja Cirúrgico:** A correção deve ser o menor código possível para resolver o problema sem efeitos colaterais.
|
|
63
|
+
- **Causa Raiz:** Não trate apenas o sintoma, identifique e corrija a causa raiz.
|
|
64
|
+
- **Evite Regressão:** Sempre mapeie os riscos da correção.
|
|
@@ -1,110 +1,110 @@
|
|
|
1
|
-
# Comando: /dare-dag-run
|
|
2
|
-
|
|
3
|
-
## Descrição
|
|
4
|
-
|
|
5
|
-
Executa o grafo de tasks definido em `DARE/dare-dag.yaml` usando o **Cursor
|
|
6
|
-
como executor** e o CLI `dare` como orquestrador. O canvas ao vivo fica em
|
|
7
|
-
`DARE/.canvas.md`.
|
|
8
|
-
|
|
9
|
-
> **Sem API keys.** Você (Cursor) usa o plano da IDE em que o usuário já está
|
|
10
|
-
> logado. O CLI apenas coordena estado, monta prompts e atualiza canvas.
|
|
11
|
-
|
|
12
|
-
## Pré-requisitos
|
|
13
|
-
|
|
14
|
-
- `DARE/dare-dag.yaml` existe e foi aprovado pelo usuário
|
|
15
|
-
- Specs em `DARE/EXECUTION/task-<id>.md` geradas
|
|
16
|
-
- `dare` disponível no PATH (`npm i -g @dewtech/dare-cli`)
|
|
17
|
-
|
|
18
|
-
## Instruções para o Cursor Composer
|
|
19
|
-
|
|
20
|
-
### 1. Validar pré-condições
|
|
21
|
-
|
|
22
|
-
- Confirme que `DARE/dare-dag.yaml` existe. Se não, oriente o usuário a rodar
|
|
23
|
-
`/generate-tasks` primeiro
|
|
24
|
-
- Leia o YAML e verifique:
|
|
25
|
-
- Sem ciclos
|
|
26
|
-
- Pelo menos 2 tasks no rank 0 (paralelismo lógico)
|
|
27
|
-
- Cada task tem `id` único, `complexity`, `subtask_prompt`
|
|
28
|
-
|
|
29
|
-
### 2. Pegar próximas tasks
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
dare execute --next
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
O CLI imprime as tasks ready do rank atual com o prompt completo (já com
|
|
36
|
-
snippets dos outputs dos pais costurados). Use exatamente esses prompts.
|
|
37
|
-
|
|
38
|
-
### 3. Sugerir abrir o canvas
|
|
39
|
-
|
|
40
|
-
Antes de começar, peça ao usuário abrir `DARE/.canvas.md` em uma aba para
|
|
41
|
-
acompanhar o progresso ao vivo.
|
|
42
|
-
|
|
43
|
-
### 4. Executar cada task
|
|
44
|
-
|
|
45
|
-
Para cada task ready:
|
|
46
|
-
|
|
47
|
-
1. Leia `spec_file` se houver
|
|
48
|
-
2. Implemente conforme o prompt
|
|
49
|
-
3. Rode Ralph Loop: build → test → lint
|
|
50
|
-
4. Registre o resultado:
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
# Sucesso
|
|
54
|
-
dare execute --complete task-001 --output "Resumo + arquivos criados/modificados (paths)"
|
|
55
|
-
|
|
56
|
-
# Falha
|
|
57
|
-
dare execute --fail task-002 --reason "Mensagem clara da falha"
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### 5. Avançar de rank
|
|
61
|
-
|
|
62
|
-
Após registrar todos os `--complete`/`--fail` do rank atual:
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
dare execute --next
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Se aparece `✅ All tasks resolved`, todas as tasks terminaram. Caso contrário,
|
|
69
|
-
continue executando o próximo rank.
|
|
70
|
-
|
|
71
|
-
### 6. Pós-execução
|
|
72
|
-
|
|
73
|
-
Ao terminar:
|
|
74
|
-
|
|
75
|
-
- Rode `dare execute --status` para ver o sumário final
|
|
76
|
-
- Se houver FAILED: leia `DARE/EXECUTION/task-<id>.md` da que falhou,
|
|
77
|
-
corrija a spec ou o prompt, depois:
|
|
78
|
-
|
|
79
|
-
```bash
|
|
80
|
-
dare execute --reset task-002 # volta para PENDING
|
|
81
|
-
dare execute --next # tente novamente
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Comandos disponíveis
|
|
85
|
-
|
|
86
|
-
| Comando | Função |
|
|
87
|
-
|---------|--------|
|
|
88
|
-
| `dare execute --next` | Imprime tasks ready do rank atual com prompts |
|
|
89
|
-
| `dare execute --complete <id> --output "…"` | Marca DONE |
|
|
90
|
-
| `dare execute --fail <id> --reason "…"` | Marca FAILED + cascade-skip |
|
|
91
|
-
| `dare execute --reset <id>` | Volta para PENDING (retry) |
|
|
92
|
-
| `dare execute --status` | Snapshot do canvas + sumário |
|
|
93
|
-
|
|
94
|
-
## Erros comuns
|
|
95
|
-
|
|
96
|
-
| Sintoma | Causa | Correção |
|
|
97
|
-
|---------|-------|----------|
|
|
98
|
-
| `dare-dag.yaml not found` | Não foi gerado | Rode `/generate-tasks` |
|
|
99
|
-
| Cascata de SKIPPED | Pai falhou | Corrija pai → `--reset` → `--next` |
|
|
100
|
-
| Output truncado em 4000 chars | Cap normal | Faça a task escrever em arquivo, retorne resumo |
|
|
101
|
-
| Tudo no rank 0 disputa o mesmo arquivo | Ausência de deps reais | Edite `dare-dag.yaml` adicionando `depends_on` |
|
|
102
|
-
|
|
103
|
-
## Referências
|
|
104
|
-
|
|
105
|
-
- Skill: `.cursor/rules/skill-dag-runner.mdc`
|
|
106
|
-
- Schema: `DARE/dare-dag.yaml`
|
|
107
|
-
- Canvas: `DARE/.canvas.md`
|
|
108
|
-
- Specs: `DARE/EXECUTION/task-*.md`
|
|
109
|
-
|
|
110
|
-
$ARGUMENTS
|
|
1
|
+
# Comando: /dare-dag-run
|
|
2
|
+
|
|
3
|
+
## Descrição
|
|
4
|
+
|
|
5
|
+
Executa o grafo de tasks definido em `DARE/dare-dag.yaml` usando o **Cursor
|
|
6
|
+
como executor** e o CLI `dare` como orquestrador. O canvas ao vivo fica em
|
|
7
|
+
`DARE/.canvas.md`.
|
|
8
|
+
|
|
9
|
+
> **Sem API keys.** Você (Cursor) usa o plano da IDE em que o usuário já está
|
|
10
|
+
> logado. O CLI apenas coordena estado, monta prompts e atualiza canvas.
|
|
11
|
+
|
|
12
|
+
## Pré-requisitos
|
|
13
|
+
|
|
14
|
+
- `DARE/dare-dag.yaml` existe e foi aprovado pelo usuário
|
|
15
|
+
- Specs em `DARE/EXECUTION/task-<id>.md` geradas
|
|
16
|
+
- `dare` disponível no PATH (`npm i -g @dewtech/dare-cli`)
|
|
17
|
+
|
|
18
|
+
## Instruções para o Cursor Composer
|
|
19
|
+
|
|
20
|
+
### 1. Validar pré-condições
|
|
21
|
+
|
|
22
|
+
- Confirme que `DARE/dare-dag.yaml` existe. Se não, oriente o usuário a rodar
|
|
23
|
+
`/generate-tasks` primeiro
|
|
24
|
+
- Leia o YAML e verifique:
|
|
25
|
+
- Sem ciclos
|
|
26
|
+
- Pelo menos 2 tasks no rank 0 (paralelismo lógico)
|
|
27
|
+
- Cada task tem `id` único, `complexity`, `subtask_prompt`
|
|
28
|
+
|
|
29
|
+
### 2. Pegar próximas tasks
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
dare execute --next
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
O CLI imprime as tasks ready do rank atual com o prompt completo (já com
|
|
36
|
+
snippets dos outputs dos pais costurados). Use exatamente esses prompts.
|
|
37
|
+
|
|
38
|
+
### 3. Sugerir abrir o canvas
|
|
39
|
+
|
|
40
|
+
Antes de começar, peça ao usuário abrir `DARE/.canvas.md` em uma aba para
|
|
41
|
+
acompanhar o progresso ao vivo.
|
|
42
|
+
|
|
43
|
+
### 4. Executar cada task
|
|
44
|
+
|
|
45
|
+
Para cada task ready:
|
|
46
|
+
|
|
47
|
+
1. Leia `spec_file` se houver
|
|
48
|
+
2. Implemente conforme o prompt
|
|
49
|
+
3. Rode Ralph Loop: build → test → lint
|
|
50
|
+
4. Registre o resultado:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Sucesso
|
|
54
|
+
dare execute --complete task-001 --output "Resumo + arquivos criados/modificados (paths)"
|
|
55
|
+
|
|
56
|
+
# Falha
|
|
57
|
+
dare execute --fail task-002 --reason "Mensagem clara da falha"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 5. Avançar de rank
|
|
61
|
+
|
|
62
|
+
Após registrar todos os `--complete`/`--fail` do rank atual:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
dare execute --next
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Se aparece `✅ All tasks resolved`, todas as tasks terminaram. Caso contrário,
|
|
69
|
+
continue executando o próximo rank.
|
|
70
|
+
|
|
71
|
+
### 6. Pós-execução
|
|
72
|
+
|
|
73
|
+
Ao terminar:
|
|
74
|
+
|
|
75
|
+
- Rode `dare execute --status` para ver o sumário final
|
|
76
|
+
- Se houver FAILED: leia `DARE/EXECUTION/task-<id>.md` da que falhou,
|
|
77
|
+
corrija a spec ou o prompt, depois:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
dare execute --reset task-002 # volta para PENDING
|
|
81
|
+
dare execute --next # tente novamente
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Comandos disponíveis
|
|
85
|
+
|
|
86
|
+
| Comando | Função |
|
|
87
|
+
|---------|--------|
|
|
88
|
+
| `dare execute --next` | Imprime tasks ready do rank atual com prompts |
|
|
89
|
+
| `dare execute --complete <id> --output "…"` | Marca DONE |
|
|
90
|
+
| `dare execute --fail <id> --reason "…"` | Marca FAILED + cascade-skip |
|
|
91
|
+
| `dare execute --reset <id>` | Volta para PENDING (retry) |
|
|
92
|
+
| `dare execute --status` | Snapshot do canvas + sumário |
|
|
93
|
+
|
|
94
|
+
## Erros comuns
|
|
95
|
+
|
|
96
|
+
| Sintoma | Causa | Correção |
|
|
97
|
+
|---------|-------|----------|
|
|
98
|
+
| `dare-dag.yaml not found` | Não foi gerado | Rode `/generate-tasks` |
|
|
99
|
+
| Cascata de SKIPPED | Pai falhou | Corrija pai → `--reset` → `--next` |
|
|
100
|
+
| Output truncado em 4000 chars | Cap normal | Faça a task escrever em arquivo, retorne resumo |
|
|
101
|
+
| Tudo no rank 0 disputa o mesmo arquivo | Ausência de deps reais | Edite `dare-dag.yaml` adicionando `depends_on` |
|
|
102
|
+
|
|
103
|
+
## Referências
|
|
104
|
+
|
|
105
|
+
- Skill: `.cursor/rules/skill-dag-runner.mdc`
|
|
106
|
+
- Schema: `DARE/dare-dag.yaml`
|
|
107
|
+
- Canvas: `DARE/.canvas.md`
|
|
108
|
+
- Specs: `DARE/EXECUTION/task-*.md`
|
|
109
|
+
|
|
110
|
+
$ARGUMENTS
|