@dewtech/dare-cli 2.16.0 → 3.0.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/README.md +196 -3
- package/dist/__tests__/confidence.test.d.ts +2 -0
- package/dist/__tests__/confidence.test.d.ts.map +1 -0
- package/dist/__tests__/confidence.test.js +73 -0
- package/dist/__tests__/confidence.test.js.map +1 -0
- package/dist/__tests__/datamodel.test.d.ts +2 -0
- package/dist/__tests__/datamodel.test.d.ts.map +1 -0
- package/dist/__tests__/datamodel.test.js +131 -0
- package/dist/__tests__/datamodel.test.js.map +1 -0
- package/dist/__tests__/dna-detector.test.d.ts +2 -0
- package/dist/__tests__/dna-detector.test.d.ts.map +1 -0
- package/dist/__tests__/dna-detector.test.js +97 -0
- package/dist/__tests__/dna-detector.test.js.map +1 -0
- package/dist/__tests__/dna-facts.test.d.ts +2 -0
- package/dist/__tests__/dna-facts.test.d.ts.map +1 -0
- package/dist/__tests__/dna-facts.test.js +44 -0
- package/dist/__tests__/dna-facts.test.js.map +1 -0
- package/dist/__tests__/graph-renderer.test.d.ts +2 -0
- package/dist/__tests__/graph-renderer.test.d.ts.map +1 -0
- package/dist/__tests__/graph-renderer.test.js +85 -0
- package/dist/__tests__/graph-renderer.test.js.map +1 -0
- package/dist/__tests__/migration.test.d.ts +2 -0
- package/dist/__tests__/migration.test.d.ts.map +1 -0
- package/dist/__tests__/migration.test.js +77 -0
- package/dist/__tests__/migration.test.js.map +1 -0
- package/dist/__tests__/module-detector.test.d.ts +2 -0
- package/dist/__tests__/module-detector.test.d.ts.map +1 -0
- package/dist/__tests__/module-detector.test.js +83 -0
- package/dist/__tests__/module-detector.test.js.map +1 -0
- package/dist/__tests__/refine.test.d.ts +2 -0
- package/dist/__tests__/refine.test.d.ts.map +1 -0
- package/dist/__tests__/refine.test.js +186 -0
- package/dist/__tests__/refine.test.js.map +1 -0
- package/dist/__tests__/reverse-facts.test.d.ts +2 -0
- package/dist/__tests__/reverse-facts.test.d.ts.map +1 -0
- package/dist/__tests__/reverse-facts.test.js +78 -0
- package/dist/__tests__/reverse-facts.test.js.map +1 -0
- package/dist/__tests__/review.test.d.ts +2 -0
- package/dist/__tests__/review.test.d.ts.map +1 -0
- package/dist/__tests__/review.test.js +242 -0
- package/dist/__tests__/review.test.js.map +1 -0
- package/dist/__tests__/update.test.d.ts +2 -0
- package/dist/__tests__/update.test.d.ts.map +1 -0
- package/dist/__tests__/update.test.js +150 -0
- package/dist/__tests__/update.test.js.map +1 -0
- package/dist/__tests__/validate.test.js +65 -65
- package/dist/bin/dare.js +38 -3
- package/dist/bin/dare.js.map +1 -1
- package/dist/commands/blueprint.js +122 -122
- package/dist/commands/dag.d.ts.map +1 -1
- package/dist/commands/dag.js +43 -79
- package/dist/commands/dag.js.map +1 -1
- package/dist/commands/dna.d.ts +3 -0
- package/dist/commands/dna.d.ts.map +1 -0
- package/dist/commands/dna.js +69 -0
- package/dist/commands/dna.js.map +1 -0
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +76 -0
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/migrate.d.ts +3 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +101 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/new.d.ts +16 -0
- package/dist/commands/new.d.ts.map +1 -0
- package/dist/commands/new.js +103 -0
- package/dist/commands/new.js.map +1 -0
- package/dist/commands/refine.d.ts +16 -0
- package/dist/commands/refine.d.ts.map +1 -0
- package/dist/commands/refine.js +167 -0
- package/dist/commands/refine.js.map +1 -0
- package/dist/commands/reverse.d.ts +3 -0
- package/dist/commands/reverse.d.ts.map +1 -0
- package/dist/commands/reverse.js +201 -0
- package/dist/commands/reverse.js.map +1 -0
- package/dist/commands/review.d.ts +16 -0
- package/dist/commands/review.d.ts.map +1 -0
- package/dist/commands/review.js +106 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/commands/update.d.ts +13 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +149 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/welcome.d.ts +14 -0
- package/dist/commands/welcome.d.ts.map +1 -0
- package/dist/commands/welcome.js +29 -0
- package/dist/commands/welcome.js.map +1 -0
- package/dist/skills/commands/add.d.ts +23 -0
- package/dist/skills/commands/add.d.ts.map +1 -0
- package/dist/skills/commands/add.js +206 -0
- package/dist/skills/commands/add.js.map +1 -0
- package/dist/skills/commands/info.d.ts +14 -0
- package/dist/skills/commands/info.d.ts.map +1 -0
- package/dist/skills/commands/info.js +99 -0
- package/dist/skills/commands/info.js.map +1 -0
- package/dist/skills/commands/list.d.ts +19 -0
- package/dist/skills/commands/list.d.ts.map +1 -0
- package/dist/skills/commands/list.js +163 -0
- package/dist/skills/commands/list.js.map +1 -0
- package/dist/skills/commands/publish.d.ts +56 -0
- package/dist/skills/commands/publish.d.ts.map +1 -0
- package/dist/skills/commands/publish.js +272 -0
- package/dist/skills/commands/publish.js.map +1 -0
- package/dist/skills/commands/remove.d.ts +19 -0
- package/dist/skills/commands/remove.d.ts.map +1 -0
- package/dist/skills/commands/remove.js +96 -0
- package/dist/skills/commands/remove.js.map +1 -0
- package/dist/skills/commands/update.d.ts +31 -0
- package/dist/skills/commands/update.d.ts.map +1 -0
- package/dist/skills/commands/update.js +132 -0
- package/dist/skills/commands/update.js.map +1 -0
- package/dist/skills/index.d.ts +22 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +33 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/manifest.d.ts +54 -0
- package/dist/skills/manifest.d.ts.map +1 -0
- package/dist/skills/manifest.js +162 -0
- package/dist/skills/manifest.js.map +1 -0
- package/dist/skills/registry-local.d.ts +67 -0
- package/dist/skills/registry-local.d.ts.map +1 -0
- package/dist/skills/registry-local.js +130 -0
- package/dist/skills/registry-local.js.map +1 -0
- package/dist/skills/registry-mock.json +109 -0
- package/dist/skills/registry-remote.d.ts +110 -0
- package/dist/skills/registry-remote.d.ts.map +1 -0
- package/dist/skills/registry-remote.js +246 -0
- package/dist/skills/registry-remote.js.map +1 -0
- package/dist/skills/registry.d.ts +49 -0
- package/dist/skills/registry.d.ts.map +1 -0
- package/dist/skills/registry.js +94 -0
- package/dist/skills/registry.js.map +1 -0
- package/dist/skills/tests/manifest.spec.d.ts +8 -0
- package/dist/skills/tests/manifest.spec.d.ts.map +1 -0
- package/dist/skills/tests/manifest.spec.js +176 -0
- package/dist/skills/tests/manifest.spec.js.map +1 -0
- package/dist/skills/tests/publish.spec.d.ts +12 -0
- package/dist/skills/tests/publish.spec.d.ts.map +1 -0
- package/dist/skills/tests/publish.spec.js +276 -0
- package/dist/skills/tests/publish.spec.js.map +1 -0
- package/dist/skills/tests/registry-local.spec.d.ts +8 -0
- package/dist/skills/tests/registry-local.spec.d.ts.map +1 -0
- package/dist/skills/tests/registry-local.spec.js +231 -0
- package/dist/skills/tests/registry-local.spec.js.map +1 -0
- package/dist/skills/tests/registry.spec.d.ts +7 -0
- package/dist/skills/tests/registry.spec.d.ts.map +1 -0
- package/dist/skills/tests/registry.spec.js +58 -0
- package/dist/skills/tests/registry.spec.js.map +1 -0
- package/dist/skills/tests/remote-registry.spec.d.ts +9 -0
- package/dist/skills/tests/remote-registry.spec.d.ts.map +1 -0
- package/dist/skills/tests/remote-registry.spec.js +357 -0
- package/dist/skills/tests/remote-registry.spec.js.map +1 -0
- package/dist/skills/tests/update.spec.d.ts +9 -0
- package/dist/skills/tests/update.spec.d.ts.map +1 -0
- package/dist/skills/tests/update.spec.js +166 -0
- package/dist/skills/tests/update.spec.js.map +1 -0
- package/dist/types/Refine.types.d.ts +96 -0
- package/dist/types/Refine.types.d.ts.map +1 -0
- package/dist/types/Refine.types.js +19 -0
- package/dist/types/Refine.types.js.map +1 -0
- package/dist/types/Review.types.d.ts +86 -0
- package/dist/types/Review.types.d.ts.map +1 -0
- package/dist/types/Review.types.js +15 -0
- package/dist/types/Review.types.js.map +1 -0
- package/dist/types/UpdateManifest.types.d.ts +91 -0
- package/dist/types/UpdateManifest.types.d.ts.map +1 -0
- package/dist/types/UpdateManifest.types.js +13 -0
- package/dist/types/UpdateManifest.types.js.map +1 -0
- package/dist/utils/ReviewRunner.d.ts +42 -0
- package/dist/utils/ReviewRunner.d.ts.map +1 -0
- package/dist/utils/ReviewRunner.js +175 -0
- package/dist/utils/ReviewRunner.js.map +1 -0
- package/dist/utils/UpdateApplier.d.ts +42 -0
- package/dist/utils/UpdateApplier.d.ts.map +1 -0
- package/dist/utils/UpdateApplier.js +207 -0
- package/dist/utils/UpdateApplier.js.map +1 -0
- package/dist/utils/UpdateDetector.d.ts +56 -0
- package/dist/utils/UpdateDetector.d.ts.map +1 -0
- package/dist/utils/UpdateDetector.js +164 -0
- package/dist/utils/UpdateDetector.js.map +1 -0
- package/dist/utils/banner.d.ts +28 -0
- package/dist/utils/banner.d.ts.map +1 -0
- package/dist/utils/banner.js +77 -0
- package/dist/utils/banner.js.map +1 -0
- package/dist/utils/banner.spec.d.ts +5 -0
- package/dist/utils/banner.spec.d.ts.map +1 -0
- package/dist/utils/banner.spec.js +253 -0
- package/dist/utils/banner.spec.js.map +1 -0
- package/dist/utils/complexity-analyzer.d.ts +60 -0
- package/dist/utils/complexity-analyzer.d.ts.map +1 -0
- package/dist/utils/complexity-analyzer.js +292 -0
- package/dist/utils/complexity-analyzer.js.map +1 -0
- package/dist/utils/confidence.d.ts +41 -0
- package/dist/utils/confidence.d.ts.map +1 -0
- package/dist/utils/confidence.js +101 -0
- package/dist/utils/confidence.js.map +1 -0
- package/dist/utils/datamodel.d.ts +41 -0
- package/dist/utils/datamodel.d.ts.map +1 -0
- package/dist/utils/datamodel.js +535 -0
- package/dist/utils/datamodel.js.map +1 -0
- package/dist/utils/dna-detector.d.ts +61 -0
- package/dist/utils/dna-detector.d.ts.map +1 -0
- package/dist/utils/dna-detector.js +354 -0
- package/dist/utils/dna-detector.js.map +1 -0
- package/dist/utils/dna-facts.d.ts +13 -0
- package/dist/utils/dna-facts.d.ts.map +1 -0
- package/dist/utils/dna-facts.js +109 -0
- package/dist/utils/dna-facts.js.map +1 -0
- package/dist/utils/excalidraw-renderer.d.ts +11 -71
- package/dist/utils/excalidraw-renderer.d.ts.map +1 -1
- package/dist/utils/excalidraw-renderer.js +29 -162
- package/dist/utils/excalidraw-renderer.js.map +1 -1
- package/dist/utils/graph-renderer.d.ts +115 -0
- package/dist/utils/graph-renderer.d.ts.map +1 -0
- package/dist/utils/graph-renderer.js +216 -0
- package/dist/utils/graph-renderer.js.map +1 -0
- package/dist/utils/migration.d.ts +64 -0
- package/dist/utils/migration.d.ts.map +1 -0
- package/dist/utils/migration.js +183 -0
- package/dist/utils/migration.js.map +1 -0
- package/dist/utils/module-detector.d.ts +46 -0
- package/dist/utils/module-detector.d.ts.map +1 -0
- package/dist/utils/module-detector.js +348 -0
- package/dist/utils/module-detector.js.map +1 -0
- package/dist/utils/project-generator.d.ts.map +1 -1
- package/dist/utils/project-generator.js +273 -254
- package/dist/utils/project-generator.js.map +1 -1
- package/dist/utils/reverse-facts.d.ts +50 -0
- package/dist/utils/reverse-facts.d.ts.map +1 -0
- package/dist/utils/reverse-facts.js +291 -0
- package/dist/utils/reverse-facts.js.map +1 -0
- package/dist/utils/stack-bootstrap.js +371 -371
- package/dist/utils/static-analyzer.d.ts +29 -0
- package/dist/utils/static-analyzer.d.ts.map +1 -0
- package/dist/utils/static-analyzer.js +390 -0
- package/dist/utils/static-analyzer.js.map +1 -0
- package/dist/utils/version-compare.d.ts +27 -0
- package/dist/utils/version-compare.d.ts.map +1 -0
- package/dist/utils/version-compare.js +47 -0
- package/dist/utils/version-compare.js.map +1 -0
- package/package.json +8 -3
- package/templates/DARE-dag-example.yaml +280 -280
- package/templates/UPDATE-MANIFEST.json +48 -0
- 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 -0
- package/templates/ide/antigravity/.agents/skills/dare-blueprint/SKILL.md +180 -36
- package/templates/ide/antigravity/.agents/skills/dare-dag-build/SKILL.md +154 -0
- package/templates/ide/antigravity/.agents/skills/dare-dag-run/SKILL.md +130 -0
- package/templates/ide/antigravity/.agents/skills/dare-dag-runner/SKILL.md +203 -203
- package/templates/ide/antigravity/.agents/skills/dare-dna/SKILL.md +63 -0
- package/templates/ide/antigravity/.agents/skills/dare-docker/SKILL.md +315 -0
- package/templates/ide/antigravity/.agents/skills/dare-frontend-design/SKILL.md +192 -0
- package/templates/ide/antigravity/.agents/skills/dare-laravel-api/SKILL.md +337 -0
- package/templates/ide/antigravity/.agents/skills/dare-layered-design/SKILL.md +166 -0
- package/templates/ide/antigravity/.agents/skills/dare-llm-integration/SKILL.md +217 -0
- package/templates/ide/antigravity/.agents/skills/dare-migrate/SKILL.md +61 -0
- package/templates/ide/antigravity/.agents/skills/dare-quality-telemetry/SKILL.md +187 -0
- package/templates/ide/antigravity/.agents/skills/dare-realtime/SKILL.md +217 -0
- package/templates/ide/antigravity/.agents/skills/dare-refine/SKILL.md +114 -0
- package/templates/ide/antigravity/.agents/skills/dare-reverse/SKILL.md +108 -0
- package/templates/ide/antigravity/.agents/skills/dare-review/SKILL.md +111 -0
- package/templates/ide/antigravity/.agents/skills/dare-rust-leptos/SKILL.md +263 -0
- package/templates/ide/antigravity/.agents/skills/dare-rust-workspace/SKILL.md +275 -275
- package/templates/ide/antigravity/.agents/skills/dare-security/SKILL.md +274 -0
- package/templates/ide/antigravity/.agents/skills/dare-tasks/SKILL.md +265 -224
- package/templates/ide/antigravity/.agents/skills/dare-telemetry/SKILL.md +188 -0
- package/templates/ide/antigravity/.agents/skills/skill-fastapi-api/SKILL.md +343 -0
- package/templates/ide/antigravity/.agents/skills/skill-go-gin-api/SKILL.md +377 -0
- package/templates/ide/antigravity/.agents/skills/skill-mcp-server/SKILL.md +382 -0
- package/templates/ide/antigravity/.agents/skills/skill-nestjs-api/SKILL.md +326 -0
- package/templates/ide/antigravity/.agents/skills/skill-rails-api/SKILL.md +393 -0
- 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 -100
- package/templates/ide/claude/.claude/commands/dare-ax.md +131 -0
- package/templates/ide/claude/.claude/commands/dare-blueprint.md +134 -78
- package/templates/ide/claude/.claude/commands/dare-bugfix-design.md +119 -0
- package/templates/ide/claude/.claude/commands/dare-dag-build.md +151 -110
- package/templates/ide/claude/.claude/commands/dare-dag-run.md +109 -109
- package/templates/ide/claude/.claude/commands/dare-dag-runner.md +117 -0
- package/templates/ide/claude/.claude/commands/dare-dag-viz.md +197 -197
- package/templates/ide/claude/.claude/commands/dare-design.md +69 -69
- package/templates/ide/claude/.claude/commands/dare-dna.md +75 -0
- package/templates/ide/claude/.claude/commands/dare-docker.md +207 -0
- package/templates/ide/claude/.claude/commands/dare-execute.md +152 -152
- package/templates/ide/claude/.claude/commands/dare-feature-design.md +147 -0
- package/templates/ide/claude/.claude/commands/dare-frontend-design.md +149 -0
- package/templates/ide/claude/.claude/commands/dare-laravel-api.md +211 -0
- package/templates/ide/claude/.claude/commands/dare-layered-design.md +124 -0
- package/templates/ide/claude/.claude/commands/dare-llm-integration.md +148 -0
- package/templates/ide/claude/.claude/commands/dare-migrate.md +72 -0
- package/templates/ide/claude/.claude/commands/dare-quality-telemetry.md +166 -0
- package/templates/ide/claude/.claude/commands/dare-realtime.md +159 -0
- package/templates/ide/claude/.claude/commands/dare-refine.md +145 -0
- package/templates/ide/claude/.claude/commands/dare-reverse.md +139 -0
- package/templates/ide/claude/.claude/commands/dare-review.md +113 -0
- 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-tasks.md +70 -70
- package/templates/ide/claude/.claude/commands/dare-telemetry.md +132 -0
- package/templates/ide/claude/.claude/commands/skill-fastapi-api.md +205 -0
- package/templates/ide/claude/.claude/commands/skill-go-gin-api.md +232 -0
- package/templates/ide/claude/.claude/commands/skill-mcp-server.md +228 -0
- package/templates/ide/claude/.claude/commands/skill-nestjs-api.md +210 -0
- package/templates/ide/claude/.claude/commands/skill-rails-api.md +236 -0
- 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 -100
- package/templates/ide/cursor/.cursor/commands/dag-viz.md +139 -0
- package/templates/ide/cursor/.cursor/commands/generate-blueprint.md +86 -41
- package/templates/ide/cursor/.cursor/commands/generate-design.md +35 -35
- package/templates/ide/cursor/.cursor/commands/generate-tasks.md +184 -142
- package/templates/ide/cursor/.cursor/commands/refine-task.md +107 -0
- package/templates/ide/cursor/.cursor/commands/review-task.md +91 -0
- package/templates/ide/cursor/.cursor/commands/run-dag.md +110 -110
- package/templates/ide/cursor/.cursor/rules/skill-ax.mdc +263 -0
- package/templates/ide/cursor/.cursor/rules/skill-dag-build.mdc +173 -0
- package/templates/ide/cursor/.cursor/rules/skill-dag-run.mdc +134 -0
- package/templates/ide/cursor/.cursor/rules/skill-dag-runner.mdc +221 -221
- package/templates/ide/cursor/.cursor/rules/skill-dna.mdc +63 -0
- package/templates/ide/cursor/.cursor/rules/skill-fastapi-api.mdc +352 -0
- package/templates/ide/cursor/.cursor/rules/skill-frontend-design.mdc +244 -0
- package/templates/ide/cursor/.cursor/rules/skill-go-gin-api.mdc +371 -0
- package/templates/ide/cursor/.cursor/rules/skill-layered-design.mdc +266 -0
- package/templates/ide/cursor/.cursor/rules/skill-llm-integration.mdc +295 -0
- package/templates/ide/cursor/.cursor/rules/skill-mcp-server.mdc +367 -0
- package/templates/ide/cursor/.cursor/rules/skill-migrate.mdc +58 -0
- package/templates/ide/cursor/.cursor/rules/skill-nestjs-api.mdc +346 -0
- package/templates/ide/cursor/.cursor/rules/skill-quality-telemetry.mdc +248 -0
- package/templates/ide/cursor/.cursor/rules/skill-rails-api.mdc +400 -0
- package/templates/ide/cursor/.cursor/rules/skill-realtime.mdc +262 -0
- package/templates/ide/cursor/.cursor/rules/skill-reverse.mdc +107 -0
- package/templates/ide/cursor/.cursor/rules/skill-rust-leptos.mdc +281 -0
- 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/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 -100
- package/templates/shared/docker-compose.yml +41 -41
- package/dist/__tests__/dag-runner/adapters.test.d.ts +0 -2
- package/dist/__tests__/dag-runner/adapters.test.d.ts.map +0 -1
- package/dist/__tests__/dag-runner/adapters.test.js +0 -134
- package/dist/__tests__/dag-runner/adapters.test.js.map +0 -1
- package/dist/dag-runner/adapters/antigravity.d.ts +0 -6
- package/dist/dag-runner/adapters/antigravity.d.ts.map +0 -1
- package/dist/dag-runner/adapters/antigravity.js +0 -54
- package/dist/dag-runner/adapters/antigravity.js.map +0 -1
- package/dist/dag-runner/adapters/claude.d.ts +0 -6
- package/dist/dag-runner/adapters/claude.d.ts.map +0 -1
- package/dist/dag-runner/adapters/claude.js +0 -48
- package/dist/dag-runner/adapters/claude.js.map +0 -1
- package/dist/dag-runner/adapters/cursor.d.ts +0 -6
- package/dist/dag-runner/adapters/cursor.d.ts.map +0 -1
- package/dist/dag-runner/adapters/cursor.js +0 -58
- package/dist/dag-runner/adapters/cursor.js.map +0 -1
- package/dist/dag-runner/adapters/index.d.ts +0 -46
- package/dist/dag-runner/adapters/index.d.ts.map +0 -1
- package/dist/dag-runner/adapters/index.js +0 -55
- package/dist/dag-runner/adapters/index.js.map +0 -1
- package/dist/dag-runner/utils/timeout.d.ts +0 -27
- package/dist/dag-runner/utils/timeout.d.ts.map +0 -1
- package/dist/dag-runner/utils/timeout.js +0 -55
- package/dist/dag-runner/utils/timeout.js.map +0 -1
|
@@ -122,34 +122,90 @@ Crie um documento `DARE/BLUEPRINT.md` com a seguinte estrutura:
|
|
|
122
122
|
|
|
123
123
|
## Estrutura de Diretórios
|
|
124
124
|
|
|
125
|
+
> Mantenha esta seção **stack-agnóstica**. Liste os agrupamentos lógicos
|
|
126
|
+
> (domínio, infraestrutura, interfaces, testes, migrations) e use a
|
|
127
|
+
> nomenclatura **idiomática da stack escolhida** no `dare init`. Os exemplos
|
|
128
|
+
> abaixo cobrem as 5 stacks suportadas — use **apenas o bloco da stack do
|
|
129
|
+
> projeto**, não os 5 juntos.
|
|
130
|
+
|
|
131
|
+
<details>
|
|
132
|
+
<summary>Exemplo — Node.js / NestJS</summary>
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
projeto/
|
|
136
|
+
├── src/
|
|
137
|
+
│ ├── auth/
|
|
138
|
+
│ │ ├── auth.controller.ts
|
|
139
|
+
│ │ ├── auth.service.ts
|
|
140
|
+
│ │ ├── auth.module.ts
|
|
141
|
+
│ │ └── dto/{register,login}.dto.ts
|
|
142
|
+
│ ├── users/{users.entity.ts,users.service.ts}
|
|
143
|
+
│ └── main.ts
|
|
144
|
+
├── migrations/{001_users.ts,002_refresh_tokens.ts}
|
|
145
|
+
└── test/auth.e2e-spec.ts
|
|
146
|
+
```
|
|
147
|
+
</details>
|
|
148
|
+
|
|
149
|
+
<details>
|
|
150
|
+
<summary>Exemplo — Rust / Axum</summary>
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
projeto/
|
|
154
|
+
├── src/
|
|
155
|
+
│ ├── domain/{user.rs,refresh_token.rs}
|
|
156
|
+
│ ├── handlers/{register.rs,login.rs,refresh.rs,logout.rs}
|
|
157
|
+
│ ├── middleware/jwt.rs
|
|
158
|
+
│ └── main.rs
|
|
159
|
+
├── migrations/{001_users.sql,002_refresh_tokens.sql}
|
|
160
|
+
└── tests/auth_integration.rs
|
|
161
|
+
```
|
|
162
|
+
</details>
|
|
163
|
+
|
|
164
|
+
<details>
|
|
165
|
+
<summary>Exemplo — Python / FastAPI</summary>
|
|
166
|
+
|
|
125
167
|
```
|
|
126
168
|
projeto/
|
|
127
169
|
├── app/
|
|
128
|
-
│ ├──
|
|
129
|
-
│
|
|
130
|
-
│
|
|
131
|
-
│ ├──
|
|
132
|
-
│
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
│ │ │ ├── RegisterRequest.php
|
|
136
|
-
│ │ │ └── LoginRequest.php
|
|
137
|
-
│ │ └── Resources/
|
|
138
|
-
│ │ └── UserResource.php
|
|
139
|
-
│ ├── Services/
|
|
140
|
-
│ │ └── AuthService.php
|
|
141
|
-
│ └── Exceptions/
|
|
142
|
-
│ └── AuthException.php
|
|
143
|
-
├── database/
|
|
144
|
-
│ └── migrations/
|
|
145
|
-
│ ├── create_users_table.php
|
|
146
|
-
│ └── create_refresh_tokens_table.php
|
|
147
|
-
├── routes/
|
|
148
|
-
│ └── api.php
|
|
149
|
-
└── tests/
|
|
150
|
-
└── Feature/
|
|
151
|
-
└── AuthTest.php
|
|
170
|
+
│ ├── routers/auth.py
|
|
171
|
+
│ ├── models/{user.py,refresh_token.py}
|
|
172
|
+
│ ├── schemas/{register.py,login.py}
|
|
173
|
+
│ ├── services/auth.py
|
|
174
|
+
│ └── main.py
|
|
175
|
+
├── alembic/versions/{001_users.py,002_refresh_tokens.py}
|
|
176
|
+
└── tests/test_auth.py
|
|
152
177
|
```
|
|
178
|
+
</details>
|
|
179
|
+
|
|
180
|
+
<details>
|
|
181
|
+
<summary>Exemplo — PHP / Laravel</summary>
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
projeto/
|
|
185
|
+
├── app/Http/Controllers/AuthController.php
|
|
186
|
+
├── app/Http/Requests/{RegisterRequest,LoginRequest}.php
|
|
187
|
+
├── app/Models/{User,RefreshToken}.php
|
|
188
|
+
├── app/Services/AuthService.php
|
|
189
|
+
├── database/migrations/{create_users,create_refresh_tokens}_table.php
|
|
190
|
+
├── routes/api.php
|
|
191
|
+
└── tests/Feature/AuthTest.php
|
|
192
|
+
```
|
|
193
|
+
</details>
|
|
194
|
+
|
|
195
|
+
<details>
|
|
196
|
+
<summary>Exemplo — Go / Gin</summary>
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
projeto/
|
|
200
|
+
├── cmd/server/main.go
|
|
201
|
+
├── internal/
|
|
202
|
+
│ ├── handlers/{register,login,refresh,logout}.go
|
|
203
|
+
│ ├── models/{user,refresh_token}.go
|
|
204
|
+
│ └── middleware/jwt.go
|
|
205
|
+
├── migrations/{001_users.sql,002_refresh_tokens.sql}
|
|
206
|
+
└── handlers_test.go
|
|
207
|
+
```
|
|
208
|
+
</details>
|
|
153
209
|
|
|
154
210
|
## Plano de Execução
|
|
155
211
|
|
|
@@ -175,26 +231,71 @@ projeto/
|
|
|
175
231
|
|
|
176
232
|
## Comandos de Setup
|
|
177
233
|
|
|
234
|
+
> Liste **somente os comandos da stack do projeto** (definida em
|
|
235
|
+
> `dare init` / `dare.config.json#backend`). Não inclua todos os blocos
|
|
236
|
+
> abaixo — use o que casa com a stack escolhida.
|
|
237
|
+
|
|
238
|
+
<details>
|
|
239
|
+
<summary>Node.js / NestJS</summary>
|
|
240
|
+
|
|
178
241
|
```bash
|
|
179
|
-
|
|
180
|
-
|
|
242
|
+
npm install
|
|
243
|
+
cp .env.example .env
|
|
244
|
+
npm run migration:run
|
|
245
|
+
npm test
|
|
246
|
+
npm run start:dev
|
|
247
|
+
```
|
|
248
|
+
</details>
|
|
249
|
+
|
|
250
|
+
<details>
|
|
251
|
+
<summary>Rust / Axum</summary>
|
|
181
252
|
|
|
182
|
-
|
|
253
|
+
```bash
|
|
254
|
+
cargo build
|
|
183
255
|
cp .env.example .env
|
|
184
|
-
|
|
256
|
+
sqlx migrate run
|
|
257
|
+
cargo test
|
|
258
|
+
cargo run
|
|
259
|
+
```
|
|
260
|
+
</details>
|
|
185
261
|
|
|
186
|
-
|
|
187
|
-
|
|
262
|
+
<details>
|
|
263
|
+
<summary>Python / FastAPI</summary>
|
|
188
264
|
|
|
189
|
-
|
|
190
|
-
|
|
265
|
+
```bash
|
|
266
|
+
python -m venv .venv && source .venv/bin/activate
|
|
267
|
+
pip install -r requirements.txt
|
|
268
|
+
cp .env.example .env
|
|
269
|
+
alembic upgrade head
|
|
270
|
+
pytest
|
|
271
|
+
uvicorn app.main:app --reload
|
|
272
|
+
```
|
|
273
|
+
</details>
|
|
191
274
|
|
|
192
|
-
|
|
193
|
-
|
|
275
|
+
<details>
|
|
276
|
+
<summary>PHP / Laravel</summary>
|
|
194
277
|
|
|
195
|
-
|
|
278
|
+
```bash
|
|
279
|
+
composer install
|
|
280
|
+
cp .env.example .env
|
|
281
|
+
php artisan key:generate
|
|
282
|
+
php artisan migrate
|
|
283
|
+
php artisan test
|
|
196
284
|
php artisan serve
|
|
197
285
|
```
|
|
286
|
+
</details>
|
|
287
|
+
|
|
288
|
+
<details>
|
|
289
|
+
<summary>Go / Gin</summary>
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
go mod download
|
|
293
|
+
cp .env.example .env
|
|
294
|
+
migrate -path ./migrations -database "$DATABASE_URL" up
|
|
295
|
+
go test ./...
|
|
296
|
+
go run ./cmd/server
|
|
297
|
+
```
|
|
298
|
+
</details>
|
|
198
299
|
|
|
199
300
|
## Próximas Etapas
|
|
200
301
|
1. Revisar e aprovar este Blueprint
|
|
@@ -202,7 +303,50 @@ php artisan serve
|
|
|
202
303
|
3. Continuar com o Método DARE
|
|
203
304
|
```
|
|
204
305
|
|
|
205
|
-
### Passo 5:
|
|
306
|
+
### Passo 5: Aplicar ANTI-STUB CONTRACT (regra inegociável)
|
|
307
|
+
|
|
308
|
+
> **Por que existe esta regra:** a skill `dare-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.
|
|
309
|
+
>
|
|
310
|
+
> Tasks que produzem mock/stub/skeleton **falham** no `dare review` (v2.17+) e bloqueiam o `dare execute --complete`.
|
|
311
|
+
|
|
312
|
+
Para **cada** endpoint, função pública, evento ou job declarado no Blueprint, especifique de forma **executável**:
|
|
313
|
+
|
|
314
|
+
**Endpoints HTTP/RPC:**
|
|
315
|
+
- Assinatura completa (método, path, headers obrigatórios, content-type)
|
|
316
|
+
- Request schema (todos os campos com tipo, restrições, opcionalidade)
|
|
317
|
+
- Response schema **por status code** (2xx, 4xx, 5xx — não só "200 OK")
|
|
318
|
+
- Validações server-side (lista exaustiva: `email único`, `senha ≥ 8 chars + maiúscula + dígito`)
|
|
319
|
+
- Edge cases enumerados (input vazio, duplicado, expirado, sem permissão)
|
|
320
|
+
- Side effects (tabelas/filas/caches/emails tocados, em ordem)
|
|
321
|
+
- Exemplo concreto (payload real, response real — não placeholder)
|
|
322
|
+
|
|
323
|
+
**Funções de domínio / services:**
|
|
324
|
+
- Assinatura tipada (`fn name(args: Types) -> ReturnType`)
|
|
325
|
+
- Pré-condições e pós-condições verificáveis
|
|
326
|
+
- Estados de erro com tipo de exceção/Result esperado
|
|
327
|
+
- Comportamento em concorrência (idempotência, locking, retry)
|
|
328
|
+
|
|
329
|
+
**Jobs / event handlers / workers:**
|
|
330
|
+
- Trigger (evento/cron/fila — nome canônico)
|
|
331
|
+
- Payload schema tipado
|
|
332
|
+
- Retry policy (backoff, max attempts, DLQ)
|
|
333
|
+
- Idempotência (chave + estratégia)
|
|
334
|
+
|
|
335
|
+
**Modelos de dados:**
|
|
336
|
+
- Cada campo com tipo, nullable, default, constraints (unique, fk, check), índices
|
|
337
|
+
- Triggers ou hooks (soft-delete, audit, encryption-at-rest)
|
|
338
|
+
|
|
339
|
+
**Critério "Blueprint detalhado o suficiente"** (auto-validação antes de salvar):
|
|
340
|
+
|
|
341
|
+
- [ ] Para cada endpoint, um humano não-familiarizado consegue escrever request/response sem perguntar nada?
|
|
342
|
+
- [ ] Para cada função pública, está claro **o que retorna** em todos os caminhos (sucesso + erros enumerados)?
|
|
343
|
+
- [ ] Edge cases foram **enumerados** ou só listados como "tratar edge cases"?
|
|
344
|
+
- [ ] Cada validação tem uma regra concreta (não só "validar email")?
|
|
345
|
+
- [ ] Cada decisão arquitetural tem **justificativa** (não só "escolhemos X")?
|
|
346
|
+
|
|
347
|
+
**Anti-padrão a evitar:** seções como _"implementar autenticação"_ ou _"validar dados"_ — isso vira stub. Especifique algoritmo, campos, regras.
|
|
348
|
+
|
|
349
|
+
### Passo 6: Pedir Aprovação
|
|
206
350
|
Após gerar o Blueprint, peça ao usuário:
|
|
207
351
|
- Revisar a arquitetura
|
|
208
352
|
- Aprovar endpoints e modelos
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dare-dag-build
|
|
3
|
+
description: Regenera APENAS o DARE/dare-dag.yaml a partir do DARE/BLUEPRINT.md existente, sem refazer o blueprint nem as specs. Use quando o BLUEPRINT mudou pouco mas o grafo precisa refletir o novo estado, ou quando você quer experimentar uma decomposição diferente.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# DARE DAG Build Skill
|
|
7
|
+
|
|
8
|
+
Você é o construtor de grafos da fase EXECUTE do método DARE no Antigravity. Esta skill **regenera APENAS** o `DARE/dare-dag.yaml` — não refaz o BLUEPRINT, não refaz as specs, não roda nada. Apenas reconstrói o grafo de tasks a partir do estado atual do BLUEPRINT.
|
|
9
|
+
|
|
10
|
+
> Se você precisa **executar** o grafo, use `dare-dag-run`.
|
|
11
|
+
> Se você precisa **visualizar** o grafo, use `dare-dag-viz`.
|
|
12
|
+
> Se você precisa **fazer tudo de uma vez** (build + run), use `dare-dag-runner`.
|
|
13
|
+
|
|
14
|
+
## Quando usar esta skill
|
|
15
|
+
|
|
16
|
+
- O BLUEPRINT foi ajustado e o grafo precisa refletir as mudanças
|
|
17
|
+
- Você quer experimentar uma decomposição diferente sem refazer o blueprint
|
|
18
|
+
- O `dare-dag.yaml` ficou inconsistente com `EXECUTION/task-*.md`
|
|
19
|
+
- Precisa adicionar/remover/reordenar tasks no grafo
|
|
20
|
+
- A complexidade ou as dependências de tasks mudaram
|
|
21
|
+
|
|
22
|
+
## Pré-requisitos
|
|
23
|
+
|
|
24
|
+
- `DARE/BLUEPRINT.md` existe e está aprovado
|
|
25
|
+
- (Opcional) `DARE/EXECUTION/task-*.md` específicas — serão preservadas se não forem mencionadas
|
|
26
|
+
|
|
27
|
+
## Como usar
|
|
28
|
+
|
|
29
|
+
### Passo 1 — Ler `DARE/BLUEPRINT.md`
|
|
30
|
+
|
|
31
|
+
Obrigatório. Se faltar, peça `dare-blueprint` antes.
|
|
32
|
+
|
|
33
|
+
### Passo 2 — Ler `DARE/dare-dag.yaml` atual (se existir)
|
|
34
|
+
|
|
35
|
+
Para preservar `id`s já em uso e não confundir o usuário com renomeações desnecessárias.
|
|
36
|
+
|
|
37
|
+
### Passo 3 — Gerar o novo `dare-dag.yaml`
|
|
38
|
+
|
|
39
|
+
Schema canônico:
|
|
40
|
+
|
|
41
|
+
```yaml
|
|
42
|
+
title: "<Nome do Projeto> - Development Tasks"
|
|
43
|
+
version: "1.0.0"
|
|
44
|
+
|
|
45
|
+
limits:
|
|
46
|
+
parent_context_chars: 2000
|
|
47
|
+
task_output_chars: 4000
|
|
48
|
+
timeout_seconds: 600
|
|
49
|
+
|
|
50
|
+
models:
|
|
51
|
+
cursor: { HIGH: gpt-5.3-codex, MED: composer-2, LOW: auto-low }
|
|
52
|
+
claude: { HIGH: claude-sonnet-4-5, MED: claude-haiku-4, LOW: claude-haiku-4 }
|
|
53
|
+
antigravity: { HIGH: gemini-2.5-pro, MED: gemini-2.5-flash, LOW: gemini-2.5-flash }
|
|
54
|
+
|
|
55
|
+
tasks:
|
|
56
|
+
- id: task-001
|
|
57
|
+
title: "..."
|
|
58
|
+
depends_on: []
|
|
59
|
+
complexity: LOW
|
|
60
|
+
spec_file: EXECUTION/task-001.md
|
|
61
|
+
subtask_prompt: |
|
|
62
|
+
<self-contained>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Regras inegociáveis:**
|
|
66
|
+
|
|
67
|
+
- `id` em kebab-case e único
|
|
68
|
+
- `depends_on` mínimo — só quando filha *literalmente* precisa do output do pai
|
|
69
|
+
- `subtask_prompt` self-contained (o subagente recebe apenas isso + 2000 chars dos pais)
|
|
70
|
+
- Pelo menos **2 tasks no rank 0** (paralelismo desde o início)
|
|
71
|
+
- Cadeia linear é antipattern — quebre dependências sempre que possível
|
|
72
|
+
- `complexity` honesta — não inflar nem deflar
|
|
73
|
+
|
|
74
|
+
### Passo 4 — ANTI-STUB CONTRACT (inegociável)
|
|
75
|
+
|
|
76
|
+
Tasks geradas com `subtask_prompt` ou spec genéricos forçam o agente a inventar — e ele vai produzir mock, stub ou esqueleto. **O comando `dare-review` detecta isso e marca a task como FAILED.**
|
|
77
|
+
|
|
78
|
+
Cada `subtask_prompt` e `EXECUTION/task-<id>.md` deve atender:
|
|
79
|
+
|
|
80
|
+
**O `subtask_prompt` precisa ser auto-suficiente.** Inclua:
|
|
81
|
+
- Caminho exato dos arquivos a criar/modificar
|
|
82
|
+
- Assinaturas exatas das funções/endpoints (`fn name(params: T) -> R`)
|
|
83
|
+
- Schema de request/response com tipos
|
|
84
|
+
- Validações específicas (não "validar input" — `email: regex /^.../`, `senha: ≥ 8 chars + 1 maiúscula + 1 dígito`)
|
|
85
|
+
- Edge cases enumerados (input vazio, duplicado, expirado, sem permissão)
|
|
86
|
+
- Lista de testes esperados com nome + comportamento
|
|
87
|
+
|
|
88
|
+
**A `spec_file` (`EXECUTION/task-<id>.md`) precisa ter Definition of Done anti-stub:**
|
|
89
|
+
|
|
90
|
+
```markdown
|
|
91
|
+
## Definition of Done (ANTI-STUB)
|
|
92
|
+
|
|
93
|
+
- [ ] Nenhum TODO, FIXME, XXX ou HACK em arquivos modificados
|
|
94
|
+
- [ ] Nenhuma função vazia (fn x() {}, def x(): pass, function x() {})
|
|
95
|
+
- [ ] Nenhum throw new Error('not implemented'), unimplemented!(), todo!(), NotImplementedError
|
|
96
|
+
- [ ] Nenhum return null/undefined/{} como única statement de função pública
|
|
97
|
+
- [ ] Mocks SOMENTE em *.test.*, *.spec.*, __tests__/, tests/, spec/ — NUNCA em código de produção
|
|
98
|
+
- [ ] Todos os endpoints retornam dados reais (não hardcoded)
|
|
99
|
+
- [ ] Cada validação produz erro real com status code correto (testado)
|
|
100
|
+
- [ ] Cada edge case tem teste demonstrando comportamento
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Sinais de spec rasa (auto-validar antes de salvar):**
|
|
104
|
+
|
|
105
|
+
- ❌ "Implementar X" — sem assinatura, sem retorno, sem validações
|
|
106
|
+
- ❌ "Tratar erros adequadamente" — quais erros? como? que código?
|
|
107
|
+
- ❌ "Adicionar validações" — quais regras?
|
|
108
|
+
- ✅ "Implementar `POST /auth/login` retornando `{ token: string, refresh: string }` com 200 se credenciais válidas, 401 se inválidas, 429 se rate limit"
|
|
109
|
+
|
|
110
|
+
### Passo 5 — Validar consistência com `EXECUTION/task-*.md`
|
|
111
|
+
|
|
112
|
+
Se uma spec já existe em `DARE/EXECUTION/task-<id>.md`:
|
|
113
|
+
- Mantenha o mesmo `id` no YAML
|
|
114
|
+
- Aponte `spec_file: EXECUTION/task-<id>.md`
|
|
115
|
+
- Se a `complexity` ou `depends_on` mudou, atualize **também** a spec e o `TASKS.md`
|
|
116
|
+
|
|
117
|
+
Se uma task nova entrou no YAML mas não tem spec:
|
|
118
|
+
- Crie a spec correspondente em `EXECUTION/task-<id>.md`
|
|
119
|
+
|
|
120
|
+
Se uma task saiu do YAML mas a spec ficou:
|
|
121
|
+
- Pergunte ao usuário: arquivar (mover para `EXECUTION/_archived/`) ou apagar?
|
|
122
|
+
|
|
123
|
+
### Passo 6 — Validar grafo
|
|
124
|
+
|
|
125
|
+
- Sem ciclos (DAG = Directed Acyclic Graph)
|
|
126
|
+
- Todos os `depends_on` apontam para `id`s existentes
|
|
127
|
+
- `id`s únicos
|
|
128
|
+
- Pelo menos 2 tasks no rank 0
|
|
129
|
+
|
|
130
|
+
### Passo 7 — Atualizar `DARE/TASKS.md`
|
|
131
|
+
|
|
132
|
+
Reflita o novo grafo na tabela master.
|
|
133
|
+
|
|
134
|
+
### Passo 8 — Mensagem ao usuário
|
|
135
|
+
|
|
136
|
+
> `dare-dag.yaml` regenerado:
|
|
137
|
+
> - Total de tasks: N
|
|
138
|
+
> - Ranks paralelos: N
|
|
139
|
+
> - Adicionadas: [...]
|
|
140
|
+
> - Removidas: [...]
|
|
141
|
+
> - Modificadas: [...]
|
|
142
|
+
>
|
|
143
|
+
> Revise e aprove. Para executar: invoque a skill `dare-dag-run`.
|
|
144
|
+
|
|
145
|
+
## Quando NÃO usar esta skill
|
|
146
|
+
|
|
147
|
+
- Se você nunca rodou `dare-blueprint` antes — use `dare-blueprint` primeiro
|
|
148
|
+
- Se o BLUEPRINT está desatualizado — atualize o BLUEPRINT primeiro
|
|
149
|
+
- Se você só quer executar o grafo já aprovado — use `dare-dag-run`
|
|
150
|
+
- Se você quer build + run num único passo — use `dare-dag-runner`
|
|
151
|
+
|
|
152
|
+
## Licença
|
|
153
|
+
|
|
154
|
+
Esta skill é parte do DARE Method e está sob licença MIT (D-001).
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dare-dag-run
|
|
3
|
+
description: Executa o grafo de tasks definido em DARE/dare-dag.yaml usando Antigravity como executor e o CLI dare como orquestrador. Sem API keys — usa o plano nativo da IDE. O canvas ao vivo fica em DARE/.canvas.md.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# DARE DAG Run Skill
|
|
7
|
+
|
|
8
|
+
Você é o executor da fase EXECUTE do método DARE no Antigravity. Esta skill **executa APENAS** o grafo que já foi construído — não regenera o `dare-dag.yaml`, não modifica o BLUEPRINT, não cria specs novas. Apenas roda as tasks na ordem topológica correta.
|
|
9
|
+
|
|
10
|
+
> Se você precisa **(re)construir** o grafo, use `dare-dag-build`.
|
|
11
|
+
> Se você precisa **visualizar** o grafo, use `dare-dag-viz`.
|
|
12
|
+
> Se você precisa **fazer tudo** (build + run num passo), use `dare-dag-runner`.
|
|
13
|
+
|
|
14
|
+
> **Sem API keys.** Você (Antigravity) usa o plano nativo da IDE. O CLI `dare` apenas coordena estado, monta prompts e atualiza o canvas.
|
|
15
|
+
|
|
16
|
+
## Quando usar esta skill
|
|
17
|
+
|
|
18
|
+
- `DARE/dare-dag.yaml` está aprovado e pronto
|
|
19
|
+
- As specs em `DARE/EXECUTION/task-<id>.md` estão geradas
|
|
20
|
+
- É hora de implementar as tasks na ordem do grafo
|
|
21
|
+
- O usuário aprovou os ANTI-STUB contracts
|
|
22
|
+
|
|
23
|
+
## Pré-requisitos
|
|
24
|
+
|
|
25
|
+
- `DARE/dare-dag.yaml` existe e foi aprovado pelo usuário
|
|
26
|
+
- Specs em `DARE/EXECUTION/task-<id>.md` geradas (se não, use `dare-dag-build`)
|
|
27
|
+
- `dare` disponível no PATH (`npm i -g @dewtech/dare-cli`)
|
|
28
|
+
|
|
29
|
+
## Como usar
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
Invoque a skill com:
|
|
33
|
+
- (sem args) — executa todas as ready do próximo rank
|
|
34
|
+
- --task task-003 — executa só uma task específica
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Passo 1 — Validar pré-condições
|
|
38
|
+
|
|
39
|
+
- Confirme que `DARE/dare-dag.yaml` existe. Se não, oriente o usuário a invocar `dare-blueprint` ou `dare-dag-build`
|
|
40
|
+
- Leia o YAML e verifique: sem ciclos, ids únicos, ranks paralelizáveis
|
|
41
|
+
- Liste rapidamente para o usuário: total de tasks, ranks, próximas ready
|
|
42
|
+
|
|
43
|
+
### Passo 2 — Pegar próximas tasks
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
dare execute --next
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
O CLI imprime as tasks **ready** do rank atual com o prompt completo (snippets de até 2000 chars dos outputs dos pais já costurados). Use esses prompts diretamente — não reescreva.
|
|
50
|
+
|
|
51
|
+
### Passo 3 — Sugerir abrir o canvas
|
|
52
|
+
|
|
53
|
+
Antes de começar, peça ao usuário abrir `DARE/.canvas.md` em outra aba do Antigravity. Esse é o feedback visual ao vivo da execução.
|
|
54
|
+
|
|
55
|
+
### Passo 4 — Executar cada task
|
|
56
|
+
|
|
57
|
+
Para cada task ready:
|
|
58
|
+
|
|
59
|
+
1. Leia `spec_file` se houver (`DARE/EXECUTION/task-<id>.md`)
|
|
60
|
+
2. Implemente conforme o `subtask_prompt` — **não invente, não use mock fora de tests, sem TODOs**
|
|
61
|
+
3. Rode o Ralph Loop completo: build → test → lint
|
|
62
|
+
4. Registre o resultado no CLI:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Sucesso
|
|
66
|
+
dare execute --complete task-001 --output "Resumo curto + arquivos criados/modificados (paths)"
|
|
67
|
+
|
|
68
|
+
# Falha
|
|
69
|
+
dare execute --fail task-002 --reason "Mensagem clara da falha (compilação? teste? lint?)"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Passo 5 — Avançar de rank
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
dare execute --next
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
- Se aparecer `✅ All tasks resolved`, todas terminaram. Reporte o resumo.
|
|
79
|
+
- Caso contrário, continue executando o próximo rank.
|
|
80
|
+
|
|
81
|
+
### Passo 6 — Pós-execução
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
dare execute --status
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Mostra snapshot do canvas + sumário (X DONE, Y FAILED, Z SKIPPED).
|
|
88
|
+
|
|
89
|
+
Para retentar tasks FAILED:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
dare execute --reset task-002
|
|
93
|
+
dare execute --next
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Comandos do orquestrador `dare`
|
|
97
|
+
|
|
98
|
+
| Comando | Função |
|
|
99
|
+
|---------|--------|
|
|
100
|
+
| `dare execute --next` | Próximas tasks ready com prompts compostos |
|
|
101
|
+
| `dare execute --complete <id> --output "..."` | Marca DONE |
|
|
102
|
+
| `dare execute --fail <id> --reason "..."` | Marca FAILED + cascade-skip |
|
|
103
|
+
| `dare execute --reset <id>` | Volta para PENDING |
|
|
104
|
+
| `dare execute --status` | Snapshot do canvas + sumário |
|
|
105
|
+
|
|
106
|
+
## Erros comuns
|
|
107
|
+
|
|
108
|
+
| Sintoma | Causa | Correção |
|
|
109
|
+
|---------|-------|----------|
|
|
110
|
+
| `dare-dag.yaml not found` | Não foi gerado | Invoque `dare-blueprint` ou `dare-dag-build` |
|
|
111
|
+
| Cascata de SKIPPED | Pai falhou | Corrija pai → `dare execute --reset` → `--next` |
|
|
112
|
+
| Output truncado | Cap de 4000 chars | Escreva em arquivo, retorne resumo |
|
|
113
|
+
| Spec inconsistente | TASKS.md ≠ dare-dag.yaml | Re-gere com `dare-dag-build` |
|
|
114
|
+
|
|
115
|
+
## Referências
|
|
116
|
+
|
|
117
|
+
- Schema: `DARE/dare-dag.yaml`
|
|
118
|
+
- Canvas: `DARE/.canvas.md`
|
|
119
|
+
- Specs: `DARE/EXECUTION/task-*.md`
|
|
120
|
+
- Status: `DARE/TASKS.md`
|
|
121
|
+
|
|
122
|
+
## Quando NÃO usar esta skill
|
|
123
|
+
|
|
124
|
+
- Se `dare-dag.yaml` não existe — use `dare-blueprint` ou `dare-dag-build`
|
|
125
|
+
- Se você quer só visualizar o grafo — use `dare-dag-viz`
|
|
126
|
+
- Se você quer build + run num único passo — use `dare-dag-runner`
|
|
127
|
+
|
|
128
|
+
## Licença
|
|
129
|
+
|
|
130
|
+
Esta skill é parte do DARE Method e está sob licença MIT (D-001).
|