@dewtech/dare-cli 2.17.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +140 -39
- 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.js +49 -49
- 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.js +38 -38
- package/dist/__tests__/validate.test.js +65 -65
- package/dist/bin/dare.js +30 -3
- package/dist/bin/dare.js.map +1 -1
- package/dist/commands/__tests__/init.integration.spec.d.ts +2 -0
- package/dist/commands/__tests__/init.integration.spec.d.ts.map +1 -0
- package/dist/commands/__tests__/init.integration.spec.js +134 -0
- package/dist/commands/__tests__/init.integration.spec.js.map +1 -0
- 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/init.d.ts.map +1 -1
- package/dist/commands/init.js +84 -1
- package/dist/commands/init.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 +104 -0
- package/dist/commands/new.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/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/mcp-server/bin/server.js +0 -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/stacks/__tests__/dna-emitter.spec.d.ts +2 -0
- package/dist/stacks/__tests__/dna-emitter.spec.d.ts.map +1 -0
- package/dist/stacks/__tests__/dna-emitter.spec.js +207 -0
- package/dist/stacks/__tests__/dna-emitter.spec.js.map +1 -0
- package/dist/stacks/__tests__/dna.spec.d.ts +2 -0
- package/dist/stacks/__tests__/dna.spec.d.ts.map +1 -0
- package/dist/stacks/__tests__/dna.spec.js +211 -0
- package/dist/stacks/__tests__/dna.spec.js.map +1 -0
- package/dist/stacks/__tests__/parity-rails.fixture.json +228 -0
- package/dist/stacks/__tests__/parity-rails.spec.d.ts +2 -0
- package/dist/stacks/__tests__/parity-rails.spec.d.ts.map +1 -0
- package/dist/stacks/__tests__/parity-rails.spec.js +99 -0
- package/dist/stacks/__tests__/parity-rails.spec.js.map +1 -0
- package/dist/stacks/__tests__/registry.spec.d.ts +2 -0
- package/dist/stacks/__tests__/registry.spec.d.ts.map +1 -0
- package/dist/stacks/__tests__/registry.spec.js +101 -0
- package/dist/stacks/__tests__/registry.spec.js.map +1 -0
- package/dist/stacks/__tests__/template-engine.spec.d.ts +2 -0
- package/dist/stacks/__tests__/template-engine.spec.d.ts.map +1 -0
- package/dist/stacks/__tests__/template-engine.spec.js +149 -0
- package/dist/stacks/__tests__/template-engine.spec.js.map +1 -0
- package/dist/stacks/dna-emitter.d.ts +45 -0
- package/dist/stacks/dna-emitter.d.ts.map +1 -0
- package/dist/stacks/dna-emitter.js +267 -0
- package/dist/stacks/dna-emitter.js.map +1 -0
- package/dist/stacks/go-gin/__tests__/scaffold.spec.d.ts +2 -0
- package/dist/stacks/go-gin/__tests__/scaffold.spec.d.ts.map +1 -0
- package/dist/stacks/go-gin/__tests__/scaffold.spec.js +221 -0
- package/dist/stacks/go-gin/__tests__/scaffold.spec.js.map +1 -0
- package/dist/stacks/go-gin/scaffold.d.ts +3 -0
- package/dist/stacks/go-gin/scaffold.d.ts.map +1 -0
- package/dist/stacks/go-gin/scaffold.js +105 -0
- package/dist/stacks/go-gin/scaffold.js.map +1 -0
- package/dist/stacks/go-stdlib/__tests__/scaffold.spec.d.ts +2 -0
- package/dist/stacks/go-stdlib/__tests__/scaffold.spec.d.ts.map +1 -0
- package/dist/stacks/go-stdlib/__tests__/scaffold.spec.js +215 -0
- package/dist/stacks/go-stdlib/__tests__/scaffold.spec.js.map +1 -0
- package/dist/stacks/go-stdlib/scaffold.d.ts +3 -0
- package/dist/stacks/go-stdlib/scaffold.d.ts.map +1 -0
- package/dist/stacks/go-stdlib/scaffold.js +106 -0
- package/dist/stacks/go-stdlib/scaffold.js.map +1 -0
- package/dist/stacks/mcp-go/__tests__/scaffold.spec.d.ts +2 -0
- package/dist/stacks/mcp-go/__tests__/scaffold.spec.d.ts.map +1 -0
- package/dist/stacks/mcp-go/__tests__/scaffold.spec.js +203 -0
- package/dist/stacks/mcp-go/__tests__/scaffold.spec.js.map +1 -0
- package/dist/stacks/mcp-go/scaffold.d.ts +3 -0
- package/dist/stacks/mcp-go/scaffold.d.ts.map +1 -0
- package/dist/stacks/mcp-go/scaffold.js +94 -0
- package/dist/stacks/mcp-go/scaffold.js.map +1 -0
- package/dist/stacks/mcp-node-ts/__tests__/scaffold.spec.d.ts +2 -0
- package/dist/stacks/mcp-node-ts/__tests__/scaffold.spec.d.ts.map +1 -0
- package/dist/stacks/mcp-node-ts/__tests__/scaffold.spec.js +236 -0
- package/dist/stacks/mcp-node-ts/__tests__/scaffold.spec.js.map +1 -0
- package/dist/stacks/mcp-node-ts/scaffold.d.ts +3 -0
- package/dist/stacks/mcp-node-ts/scaffold.d.ts.map +1 -0
- package/dist/stacks/mcp-node-ts/scaffold.js +95 -0
- package/dist/stacks/mcp-node-ts/scaffold.js.map +1 -0
- package/dist/stacks/mcp-python/__tests__/scaffold.spec.d.ts +2 -0
- package/dist/stacks/mcp-python/__tests__/scaffold.spec.d.ts.map +1 -0
- package/dist/stacks/mcp-python/__tests__/scaffold.spec.js +228 -0
- package/dist/stacks/mcp-python/__tests__/scaffold.spec.js.map +1 -0
- package/dist/stacks/mcp-python/scaffold.d.ts +3 -0
- package/dist/stacks/mcp-python/scaffold.d.ts.map +1 -0
- package/dist/stacks/mcp-python/scaffold.js +98 -0
- package/dist/stacks/mcp-python/scaffold.js.map +1 -0
- package/dist/stacks/mcp-rust/__tests__/scaffold.spec.d.ts +2 -0
- package/dist/stacks/mcp-rust/__tests__/scaffold.spec.d.ts.map +1 -0
- package/dist/stacks/mcp-rust/__tests__/scaffold.spec.js +213 -0
- package/dist/stacks/mcp-rust/__tests__/scaffold.spec.js.map +1 -0
- package/dist/stacks/mcp-rust/scaffold.d.ts +3 -0
- package/dist/stacks/mcp-rust/scaffold.d.ts.map +1 -0
- package/dist/stacks/mcp-rust/scaffold.js +98 -0
- package/dist/stacks/mcp-rust/scaffold.js.map +1 -0
- package/dist/stacks/node-nestjs/__tests__/scaffold.spec.d.ts +2 -0
- package/dist/stacks/node-nestjs/__tests__/scaffold.spec.d.ts.map +1 -0
- package/dist/stacks/node-nestjs/__tests__/scaffold.spec.js +172 -0
- package/dist/stacks/node-nestjs/__tests__/scaffold.spec.js.map +1 -0
- package/dist/stacks/node-nestjs/scaffold.d.ts +3 -0
- package/dist/stacks/node-nestjs/scaffold.d.ts.map +1 -0
- package/dist/stacks/node-nestjs/scaffold.js +117 -0
- package/dist/stacks/node-nestjs/scaffold.js.map +1 -0
- package/dist/stacks/php-laravel/__tests__/scaffold.spec.d.ts +2 -0
- package/dist/stacks/php-laravel/__tests__/scaffold.spec.d.ts.map +1 -0
- package/dist/stacks/php-laravel/__tests__/scaffold.spec.js +205 -0
- package/dist/stacks/php-laravel/__tests__/scaffold.spec.js.map +1 -0
- package/dist/stacks/php-laravel/scaffold.d.ts +3 -0
- package/dist/stacks/php-laravel/scaffold.d.ts.map +1 -0
- package/dist/stacks/php-laravel/scaffold.js +109 -0
- package/dist/stacks/php-laravel/scaffold.js.map +1 -0
- package/dist/stacks/python-fastapi/__tests__/scaffold.spec.d.ts +2 -0
- package/dist/stacks/python-fastapi/__tests__/scaffold.spec.d.ts.map +1 -0
- package/dist/stacks/python-fastapi/__tests__/scaffold.spec.js +168 -0
- package/dist/stacks/python-fastapi/__tests__/scaffold.spec.js.map +1 -0
- package/dist/stacks/python-fastapi/scaffold.d.ts +3 -0
- package/dist/stacks/python-fastapi/scaffold.d.ts.map +1 -0
- package/dist/stacks/python-fastapi/scaffold.js +108 -0
- package/dist/stacks/python-fastapi/scaffold.js.map +1 -0
- package/dist/stacks/registry.d.ts +38 -0
- package/dist/stacks/registry.d.ts.map +1 -0
- package/dist/stacks/registry.js +153 -0
- package/dist/stacks/registry.js.map +1 -0
- package/dist/stacks/ruby-rails-8/__tests__/scaffold.spec.d.ts +6 -0
- package/dist/stacks/ruby-rails-8/__tests__/scaffold.spec.d.ts.map +1 -0
- package/dist/stacks/ruby-rails-8/__tests__/scaffold.spec.js +604 -0
- package/dist/stacks/ruby-rails-8/__tests__/scaffold.spec.js.map +1 -0
- package/dist/stacks/ruby-rails-8/scaffold.d.ts +91 -0
- package/dist/stacks/ruby-rails-8/scaffold.d.ts.map +1 -0
- package/dist/stacks/ruby-rails-8/scaffold.js +410 -0
- package/dist/stacks/ruby-rails-8/scaffold.js.map +1 -0
- package/dist/stacks/rust-axum/__tests__/scaffold.spec.d.ts +2 -0
- package/dist/stacks/rust-axum/__tests__/scaffold.spec.d.ts.map +1 -0
- package/dist/stacks/rust-axum/__tests__/scaffold.spec.js +203 -0
- package/dist/stacks/rust-axum/__tests__/scaffold.spec.js.map +1 -0
- package/dist/stacks/rust-axum/scaffold.d.ts +3 -0
- package/dist/stacks/rust-axum/scaffold.d.ts.map +1 -0
- package/dist/stacks/rust-axum/scaffold.js +105 -0
- package/dist/stacks/rust-axum/scaffold.js.map +1 -0
- package/dist/stacks/template-engine.d.ts +38 -0
- package/dist/stacks/template-engine.d.ts.map +1 -0
- package/dist/stacks/template-engine.js +134 -0
- package/dist/stacks/template-engine.js.map +1 -0
- package/dist/stacks/types.d.ts +69 -0
- package/dist/stacks/types.d.ts.map +1 -0
- package/dist/stacks/types.js +29 -0
- package/dist/stacks/types.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/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 +1 -1
- package/dist/utils/project-generator.d.ts.map +1 -1
- package/dist/utils/project-generator.js +268 -259
- 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.d.ts +3 -2
- package/dist/utils/stack-bootstrap.d.ts.map +1 -1
- package/dist/utils/stack-bootstrap.js +417 -387
- package/dist/utils/stack-bootstrap.js.map +1 -1
- package/package.json +91 -82
- package/templates/DARE-dag-example.yaml +280 -280
- package/templates/UPDATE-MANIFEST.json +48 -48
- 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-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 -114
- package/templates/ide/antigravity/.agents/skills/dare-reverse/SKILL.md +108 -0
- package/templates/ide/antigravity/.agents/skills/dare-review/SKILL.md +111 -111
- 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 -265
- 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 -141
- package/templates/ide/claude/.claude/commands/dare-ax.md +131 -0
- package/templates/ide/claude/.claude/commands/dare-blueprint.md +134 -134
- package/templates/ide/claude/.claude/commands/dare-bugfix-design.md +119 -0
- 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 -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 -145
- package/templates/ide/claude/.claude/commands/dare-reverse.md +139 -0
- 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-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 -141
- package/templates/ide/cursor/.cursor/commands/dag-viz.md +139 -0
- package/templates/ide/cursor/.cursor/commands/generate-blueprint.md +86 -86
- package/templates/ide/cursor/.cursor/commands/generate-design.md +35 -35
- package/templates/ide/cursor/.cursor/commands/generate-tasks.md +184 -184
- package/templates/ide/cursor/.cursor/commands/refine-task.md +107 -107
- package/templates/ide/cursor/.cursor/commands/review-task.md +91 -91
- 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 -141
- package/templates/shared/docker-compose.yml +41 -41
- package/templates/stacks/go-gin/.dare/skills.yml +11 -0
- package/templates/stacks/go-gin/.env.example +24 -0
- package/templates/stacks/go-gin/.github/workflows/dare-ci.yml +42 -0
- package/templates/stacks/go-gin/README.md.tpl +38 -0
- package/templates/stacks/go-gin/cmd/server/main.go.tpl +78 -0
- package/templates/stacks/go-gin/db/migrations/0001_create_users.down.sql +2 -0
- package/templates/stacks/go-gin/db/migrations/0001_create_users.up.sql +12 -0
- package/templates/stacks/go-gin/db/queries/users.sql +23 -0
- package/templates/stacks/go-gin/gitignore +7 -0
- package/templates/stacks/go-gin/go.mod.tpl +17 -0
- package/templates/stacks/go-gin/internal/config/config.go +41 -0
- package/templates/stacks/go-gin/internal/db/postgres.go.tpl +25 -0
- package/templates/stacks/go-gin/internal/handler/auth_handler.go.tpl +72 -0
- package/templates/stacks/go-gin/internal/handler/users_handler.go.tpl +72 -0
- package/templates/stacks/go-gin/internal/handler/ws_handler.go +37 -0
- package/templates/stacks/go-gin/internal/llm/dummy.go +14 -0
- package/templates/stacks/go-gin/internal/llm/provider.go +8 -0
- package/templates/stacks/go-gin/internal/middleware/jwt.go.tpl +58 -0
- package/templates/stacks/go-gin/internal/middleware/rate_limit.go +55 -0
- package/templates/stacks/go-gin/internal/model/user.go +17 -0
- package/templates/stacks/go-gin/internal/repository/users_repository.go.tpl +79 -0
- package/templates/stacks/go-gin/internal/service/auth_service.go.tpl +55 -0
- package/templates/stacks/go-gin/internal/service/users_service.go.tpl +53 -0
- package/templates/stacks/go-gin/llms.txt.tpl +54 -0
- package/templates/stacks/go-gin/openapi.json.tpl +46 -0
- package/templates/stacks/go-gin/sqlc.yaml +14 -0
- package/templates/stacks/go-gin/tests/smoke_test.go.tpl +22 -0
- package/templates/stacks/go-stdlib/.dare/skills.yml +11 -0
- package/templates/stacks/go-stdlib/.env.example +24 -0
- package/templates/stacks/go-stdlib/.github/workflows/dare-ci.yml +42 -0
- package/templates/stacks/go-stdlib/README.md.tpl +41 -0
- package/templates/stacks/go-stdlib/cmd/server/main.go.tpl +82 -0
- package/templates/stacks/go-stdlib/db/migrations/0001_create_users.down.sql +2 -0
- package/templates/stacks/go-stdlib/db/migrations/0001_create_users.up.sql +12 -0
- package/templates/stacks/go-stdlib/db/queries/users.sql +23 -0
- package/templates/stacks/go-stdlib/gitignore +6 -0
- package/templates/stacks/go-stdlib/go.mod.tpl +15 -0
- package/templates/stacks/go-stdlib/internal/config/config.go +41 -0
- package/templates/stacks/go-stdlib/internal/db/postgres.go.tpl +24 -0
- package/templates/stacks/go-stdlib/internal/handler/auth_handler.go.tpl +71 -0
- package/templates/stacks/go-stdlib/internal/handler/users_handler.go.tpl +84 -0
- package/templates/stacks/go-stdlib/internal/handler/ws_handler.go +36 -0
- package/templates/stacks/go-stdlib/internal/httpx/json.go +32 -0
- package/templates/stacks/go-stdlib/internal/llm/dummy.go +14 -0
- package/templates/stacks/go-stdlib/internal/llm/provider.go +8 -0
- package/templates/stacks/go-stdlib/internal/middleware/chain.go +21 -0
- package/templates/stacks/go-stdlib/internal/middleware/cors.go +27 -0
- package/templates/stacks/go-stdlib/internal/middleware/jwt.go.tpl +51 -0
- package/templates/stacks/go-stdlib/internal/middleware/rate_limit.go +81 -0
- package/templates/stacks/go-stdlib/internal/model/user.go +17 -0
- package/templates/stacks/go-stdlib/internal/repository/users_repository.go.tpl +75 -0
- package/templates/stacks/go-stdlib/internal/service/auth_service.go.tpl +55 -0
- package/templates/stacks/go-stdlib/internal/service/users_service.go.tpl +53 -0
- package/templates/stacks/go-stdlib/llms.txt.tpl +60 -0
- package/templates/stacks/go-stdlib/openapi.json.tpl +46 -0
- package/templates/stacks/go-stdlib/sqlc.yaml +14 -0
- package/templates/stacks/go-stdlib/tests/smoke_test.go.tpl +45 -0
- package/templates/stacks/mcp-go/.dare/skills.yml +8 -0
- package/templates/stacks/mcp-go/.env.example +14 -0
- package/templates/stacks/mcp-go/.github/workflows/dare-ci.yml +42 -0
- package/templates/stacks/mcp-go/README.md.tpl +50 -0
- package/templates/stacks/mcp-go/cmd/server/main.go.tpl +62 -0
- package/templates/stacks/mcp-go/gitignore +6 -0
- package/templates/stacks/mcp-go/go.mod.tpl +9 -0
- package/templates/stacks/mcp-go/internal/prompts/summarize.go +9 -0
- package/templates/stacks/mcp-go/internal/server/server.go.tpl +80 -0
- package/templates/stacks/mcp-go/internal/tools/echo.go +15 -0
- package/templates/stacks/mcp-go/internal/transports/http.go.tpl +21 -0
- package/templates/stacks/mcp-go/internal/transports/sse.go.tpl +17 -0
- package/templates/stacks/mcp-go/internal/transports/stdio.go.tpl +14 -0
- package/templates/stacks/mcp-go/llms.txt.tpl +60 -0
- package/templates/stacks/mcp-go/openapi.json.tpl +31 -0
- package/templates/stacks/mcp-go/tests/echo_test.go.tpl +37 -0
- package/templates/stacks/mcp-node-ts/.dare/skills.yml +8 -0
- package/templates/stacks/mcp-node-ts/.env.example +16 -0
- package/templates/stacks/mcp-node-ts/.github/workflows/dare-ci.yml +54 -0
- package/templates/stacks/mcp-node-ts/README.md.hbs +49 -0
- package/templates/stacks/mcp-node-ts/gitignore +7 -0
- package/templates/stacks/mcp-node-ts/llms.txt.hbs +61 -0
- package/templates/stacks/mcp-node-ts/openapi.json.hbs +39 -0
- package/templates/stacks/mcp-node-ts/package.json.hbs +35 -0
- package/templates/stacks/mcp-node-ts/src/cli.ts.hbs +71 -0
- package/templates/stacks/mcp-node-ts/src/prompts/index.ts +36 -0
- package/templates/stacks/mcp-node-ts/src/server.ts.hbs +45 -0
- package/templates/stacks/mcp-node-ts/src/tools/echo.ts +23 -0
- package/templates/stacks/mcp-node-ts/src/tools/index.ts +18 -0
- package/templates/stacks/mcp-node-ts/src/transports/http.ts +68 -0
- package/templates/stacks/mcp-node-ts/src/transports/sse.ts +58 -0
- package/templates/stacks/mcp-node-ts/src/transports/stdio.ts +5 -0
- package/templates/stacks/mcp-node-ts/tests/echo.test.ts +50 -0
- package/templates/stacks/mcp-node-ts/tsconfig.json +17 -0
- package/templates/stacks/mcp-python/.dare/skills.yml +8 -0
- package/templates/stacks/mcp-python/.env.example +14 -0
- package/templates/stacks/mcp-python/.github/workflows/dare-ci.yml +42 -0
- package/templates/stacks/mcp-python/README.md.j2 +49 -0
- package/templates/stacks/mcp-python/gitignore +12 -0
- package/templates/stacks/mcp-python/llms.txt.j2 +56 -0
- package/templates/stacks/mcp-python/openapi.json.j2 +33 -0
- package/templates/stacks/mcp-python/pyproject.toml.j2 +37 -0
- package/templates/stacks/mcp-python/src/__init__.py +0 -0
- package/templates/stacks/mcp-python/src/cli.py.j2 +68 -0
- package/templates/stacks/mcp-python/src/prompts/__init__.py +0 -0
- package/templates/stacks/mcp-python/src/prompts/summarize.py +10 -0
- package/templates/stacks/mcp-python/src/server.py.j2 +28 -0
- package/templates/stacks/mcp-python/src/tools/__init__.py +0 -0
- package/templates/stacks/mcp-python/src/tools/echo.py +12 -0
- package/templates/stacks/mcp-python/src/transports/__init__.py +0 -0
- package/templates/stacks/mcp-python/src/transports/http.py +12 -0
- package/templates/stacks/mcp-python/src/transports/sse.py +13 -0
- package/templates/stacks/mcp-python/src/transports/stdio.py +6 -0
- package/templates/stacks/mcp-python/tests/__init__.py +0 -0
- package/templates/stacks/mcp-python/tests/test_echo.py +28 -0
- package/templates/stacks/mcp-rust/.dare/skills.yml +8 -0
- package/templates/stacks/mcp-rust/.env.example +14 -0
- package/templates/stacks/mcp-rust/.github/workflows/dare-ci.yml +38 -0
- package/templates/stacks/mcp-rust/Cargo.toml.tera +35 -0
- package/templates/stacks/mcp-rust/README.md.tera +50 -0
- package/templates/stacks/mcp-rust/gitignore +5 -0
- package/templates/stacks/mcp-rust/llms.txt.tera +60 -0
- package/templates/stacks/mcp-rust/openapi.json.tera +31 -0
- package/templates/stacks/mcp-rust/src/cli.rs.tera +33 -0
- package/templates/stacks/mcp-rust/src/lib.rs +6 -0
- package/templates/stacks/mcp-rust/src/main.rs.tera +30 -0
- package/templates/stacks/mcp-rust/src/prompts/mod.rs +1 -0
- package/templates/stacks/mcp-rust/src/prompts/summarize.rs +5 -0
- package/templates/stacks/mcp-rust/src/server.rs.tera +38 -0
- package/templates/stacks/mcp-rust/src/tools/echo.rs +18 -0
- package/templates/stacks/mcp-rust/src/tools/mod.rs +22 -0
- package/templates/stacks/mcp-rust/src/transports/http.rs +27 -0
- package/templates/stacks/mcp-rust/src/transports/mod.rs +3 -0
- package/templates/stacks/mcp-rust/src/transports/sse.rs +33 -0
- package/templates/stacks/mcp-rust/src/transports/stdio.rs +14 -0
- package/templates/stacks/mcp-rust/tests/echo_test.rs.tera +27 -0
- package/templates/stacks/node-nestjs/.dare/skills.yml +11 -0
- package/templates/stacks/node-nestjs/.env.example +21 -0
- package/templates/stacks/node-nestjs/.github/workflows/dare-ci.yml +54 -0
- package/templates/stacks/node-nestjs/README.md.hbs +35 -0
- package/templates/stacks/node-nestjs/gitignore +7 -0
- package/templates/stacks/node-nestjs/llms.txt.hbs +47 -0
- package/templates/stacks/node-nestjs/nest-cli.json +16 -0
- package/templates/stacks/node-nestjs/openapi.json.hbs +75 -0
- package/templates/stacks/node-nestjs/package.json.hbs +57 -0
- package/templates/stacks/node-nestjs/prisma/schema.prisma +25 -0
- package/templates/stacks/node-nestjs/prisma/seed.ts.hbs +25 -0
- package/templates/stacks/node-nestjs/src/app.module.ts +39 -0
- package/templates/stacks/node-nestjs/src/auth/auth.controller.ts +29 -0
- package/templates/stacks/node-nestjs/src/auth/auth.module.ts +25 -0
- package/templates/stacks/node-nestjs/src/auth/auth.service.ts +36 -0
- package/templates/stacks/node-nestjs/src/auth/dto/login-response.dto.ts +9 -0
- package/templates/stacks/node-nestjs/src/auth/dto/login.dto.ts +17 -0
- package/templates/stacks/node-nestjs/src/auth/jwt.strategy.ts +25 -0
- package/templates/stacks/node-nestjs/src/common/filters/problem-details.filter.ts +38 -0
- package/templates/stacks/node-nestjs/src/common/interceptors/json-response.interceptor.ts +13 -0
- package/templates/stacks/node-nestjs/src/main.ts.hbs +44 -0
- package/templates/stacks/node-nestjs/src/prisma/prisma.module.ts +9 -0
- package/templates/stacks/node-nestjs/src/prisma/prisma.service.ts +9 -0
- package/templates/stacks/node-nestjs/src/users/dto/create-user.dto.ts +22 -0
- package/templates/stacks/node-nestjs/src/users/dto/user.dto.ts +15 -0
- package/templates/stacks/node-nestjs/src/users/users.controller.ts +41 -0
- package/templates/stacks/node-nestjs/src/users/users.module.ts +11 -0
- package/templates/stacks/node-nestjs/src/users/users.repository.ts +38 -0
- package/templates/stacks/node-nestjs/src/users/users.service.ts +38 -0
- package/templates/stacks/node-nestjs/tsconfig.build.json +4 -0
- package/templates/stacks/node-nestjs/tsconfig.json +28 -0
- package/templates/stacks/php-laravel/.dare/skills.yml +11 -0
- package/templates/stacks/php-laravel/.env.example +41 -0
- package/templates/stacks/php-laravel/.github/workflows/dare-ci.yml +43 -0
- package/templates/stacks/php-laravel/README.md.hbs +36 -0
- package/templates/stacks/php-laravel/app/Http/Controllers/Api/AuthController.php +36 -0
- package/templates/stacks/php-laravel/app/Http/Controllers/Api/UsersController.php +33 -0
- package/templates/stacks/php-laravel/app/Http/Requests/CreateUserRequest.php +26 -0
- package/templates/stacks/php-laravel/app/Http/Requests/LoginRequest.php +34 -0
- package/templates/stacks/php-laravel/app/Llm/Contracts/LlmProvider.php +12 -0
- package/templates/stacks/php-laravel/app/Llm/Providers/DummyProvider.php +13 -0
- package/templates/stacks/php-laravel/app/Llm/Providers/OpenAiProvider.php +33 -0
- package/templates/stacks/php-laravel/app/Models/User.php +44 -0
- package/templates/stacks/php-laravel/app/Repositories/UsersRepository.php +32 -0
- package/templates/stacks/php-laravel/app/Services/AuthService.php +37 -0
- package/templates/stacks/php-laravel/app/Services/UsersService.php +57 -0
- package/templates/stacks/php-laravel/artisan +12 -0
- package/templates/stacks/php-laravel/bootstrap/app.php +29 -0
- package/templates/stacks/php-laravel/bootstrap/providers.php +5 -0
- package/templates/stacks/php-laravel/composer.json.hbs +58 -0
- package/templates/stacks/php-laravel/config/l5-swagger.php +41 -0
- package/templates/stacks/php-laravel/config/reverb.php +34 -0
- package/templates/stacks/php-laravel/config/sanctum.php +15 -0
- package/templates/stacks/php-laravel/database/migrations/2026_06_01_000001_create_users_table.php +27 -0
- package/templates/stacks/php-laravel/database/seeders/DatabaseSeeder.php +21 -0
- package/templates/stacks/php-laravel/gitignore +23 -0
- package/templates/stacks/php-laravel/llms.txt.hbs +53 -0
- package/templates/stacks/php-laravel/openapi.json.hbs +43 -0
- package/templates/stacks/php-laravel/phpstan.neon +9 -0
- package/templates/stacks/php-laravel/routes/api.php +13 -0
- package/templates/stacks/php-laravel/routes/channels.php +7 -0
- package/templates/stacks/php-laravel/tests/Feature/AuthTest.php +35 -0
- package/templates/stacks/php-laravel/tests/Feature/UsersTest.php +30 -0
- package/templates/stacks/php-laravel/tests/Pest.php +5 -0
- package/templates/stacks/python-fastapi/.dare/skills.yml +11 -0
- package/templates/stacks/python-fastapi/.env.example +21 -0
- package/templates/stacks/python-fastapi/.github/workflows/dare-ci.yml +43 -0
- package/templates/stacks/python-fastapi/README.md.j2 +35 -0
- package/templates/stacks/python-fastapi/alembic/env.py +46 -0
- package/templates/stacks/python-fastapi/alembic/script.py.mako +26 -0
- package/templates/stacks/python-fastapi/alembic/versions/0001_create_users.py.j2 +37 -0
- package/templates/stacks/python-fastapi/alembic.ini.j2 +39 -0
- package/templates/stacks/python-fastapi/app/__init__.py +0 -0
- package/templates/stacks/python-fastapi/app/core/__init__.py +0 -0
- package/templates/stacks/python-fastapi/app/core/config.py +24 -0
- package/templates/stacks/python-fastapi/app/core/security.py +34 -0
- package/templates/stacks/python-fastapi/app/db/__init__.py +0 -0
- package/templates/stacks/python-fastapi/app/db/session.py +22 -0
- package/templates/stacks/python-fastapi/app/main.py.j2 +36 -0
- package/templates/stacks/python-fastapi/app/models/__init__.py +3 -0
- package/templates/stacks/python-fastapi/app/models/user.py +30 -0
- package/templates/stacks/python-fastapi/app/repositories/__init__.py +0 -0
- package/templates/stacks/python-fastapi/app/repositories/user_repository.py +34 -0
- package/templates/stacks/python-fastapi/app/routers/__init__.py +0 -0
- package/templates/stacks/python-fastapi/app/routers/auth.py +37 -0
- package/templates/stacks/python-fastapi/app/routers/users.py +46 -0
- package/templates/stacks/python-fastapi/app/schemas/__init__.py +0 -0
- package/templates/stacks/python-fastapi/app/schemas/user.py +56 -0
- package/templates/stacks/python-fastapi/app/services/__init__.py +0 -0
- package/templates/stacks/python-fastapi/app/services/auth_service.py +22 -0
- package/templates/stacks/python-fastapi/app/services/user_service.py +31 -0
- package/templates/stacks/python-fastapi/gitignore +12 -0
- package/templates/stacks/python-fastapi/llms.txt.j2 +53 -0
- package/templates/stacks/python-fastapi/openapi.json.j2 +43 -0
- package/templates/stacks/python-fastapi/pyproject.toml.j2 +45 -0
- package/templates/stacks/python-fastapi/tests/__init__.py +0 -0
- package/templates/stacks/python-fastapi/tests/test_auth.py +22 -0
- package/templates/stacks/ruby-rails-8/.dare/skills.yml +50 -0
- package/templates/stacks/ruby-rails-8/.env.example +20 -0
- package/templates/stacks/ruby-rails-8/.github/workflows/dare-ci.yml +112 -0
- package/templates/stacks/ruby-rails-8/Gemfile.erb +61 -0
- package/templates/stacks/ruby-rails-8/app/channels/application_cable/channel.rb +11 -0
- package/templates/stacks/ruby-rails-8/app/channels/application_cable/connection.rb +34 -0
- package/templates/stacks/ruby-rails-8/app/channels/dare_updates_channel.rb +18 -0
- package/templates/stacks/ruby-rails-8/app/channels/user_updates_channel.rb +23 -0
- package/templates/stacks/ruby-rails-8/app/controllers/application_controller.rb +44 -0
- package/templates/stacks/ruby-rails-8/app/controllers/concerns/problem_details.rb +93 -0
- package/templates/stacks/ruby-rails-8/app/handlers/summarize_handler.rb +33 -0
- package/templates/stacks/ruby-rails-8/app/handlers/users_handler.rb +68 -0
- package/templates/stacks/ruby-rails-8/app/llm/cache/llm_cache.rb +44 -0
- package/templates/stacks/ruby-rails-8/app/llm/prompts/prompt_loader.rb +54 -0
- package/templates/stacks/ruby-rails-8/app/llm/prompts/summarize_v1.jinja2 +12 -0
- package/templates/stacks/ruby-rails-8/app/llm/providers/dummy_provider.rb +35 -0
- package/templates/stacks/ruby-rails-8/app/llm/providers/llm_provider.rb +67 -0
- package/templates/stacks/ruby-rails-8/app/llm/providers/openai_provider.rb +62 -0
- package/templates/stacks/ruby-rails-8/app/llm/rate_limit/token_bucket.rb +82 -0
- package/templates/stacks/ruby-rails-8/app/llm/validators/summarize_output_schema.json +21 -0
- package/templates/stacks/ruby-rails-8/app/llm/validators/validator.rb +52 -0
- package/templates/stacks/ruby-rails-8/app/models/user.rb +36 -0
- package/templates/stacks/ruby-rails-8/app/presenters/user_presenter.rb +48 -0
- package/templates/stacks/ruby-rails-8/app/repositories/document_repository.rb +57 -0
- package/templates/stacks/ruby-rails-8/app/repositories/user_repository.rb +73 -0
- package/templates/stacks/ruby-rails-8/app/services/create_user_service.rb +67 -0
- package/templates/stacks/ruby-rails-8/app/services/realtime_service.rb +53 -0
- package/templates/stacks/ruby-rails-8/app/services/summarize_document_service.rb +57 -0
- package/templates/stacks/ruby-rails-8/config/dare.yml +42 -0
- package/templates/stacks/ruby-rails-8/config/initializers/dare.rb +31 -0
- package/templates/stacks/ruby-rails-8/config/initializers/rack_attack.rb +64 -0
- package/templates/stacks/ruby-rails-8/config/initializers/rswag_api.rb +12 -0
- package/templates/stacks/ruby-rails-8/lib/tasks/dare.rake +159 -0
- package/templates/stacks/ruby-rails-8/llms.txt.erb +69 -0
- package/templates/stacks/ruby-rails-8/spec/api/summarize_spec.rb +56 -0
- package/templates/stacks/ruby-rails-8/spec/api/users_spec.rb +72 -0
- package/templates/stacks/ruby-rails-8/spec/channels/dare_updates_channel_spec.rb +61 -0
- package/templates/stacks/ruby-rails-8/spec/channels/user_updates_channel_spec.rb +56 -0
- package/templates/stacks/ruby-rails-8/spec/factories/users.rb +27 -0
- package/templates/stacks/ruby-rails-8/spec/handlers/users_handler_spec.rb +88 -0
- package/templates/stacks/ruby-rails-8/spec/rails_helper.rb +31 -0
- package/templates/stacks/ruby-rails-8/spec/services/create_user_service_spec.rb +88 -0
- package/templates/stacks/ruby-rails-8/spec/services/summarize_document_service_spec.rb +142 -0
- package/templates/stacks/ruby-rails-8/spec/swagger_helper.rb +73 -0
- package/templates/stacks/rust-axum/.dare/skills.yml +11 -0
- package/templates/stacks/rust-axum/.env.example +26 -0
- package/templates/stacks/rust-axum/.github/workflows/dare-ci.yml +40 -0
- package/templates/stacks/rust-axum/Cargo.toml.tera +53 -0
- package/templates/stacks/rust-axum/README.md.tera +37 -0
- package/templates/stacks/rust-axum/gitignore +5 -0
- package/templates/stacks/rust-axum/llms.txt.tera +54 -0
- package/templates/stacks/rust-axum/migrations/0001_create_users.sql +13 -0
- package/templates/stacks/rust-axum/openapi.json.tera +46 -0
- package/templates/stacks/rust-axum/src/config.rs +45 -0
- package/templates/stacks/rust-axum/src/errors.rs +48 -0
- package/templates/stacks/rust-axum/src/handlers/auth.rs +48 -0
- package/templates/stacks/rust-axum/src/handlers/mod.rs +3 -0
- package/templates/stacks/rust-axum/src/handlers/users.rs +81 -0
- package/templates/stacks/rust-axum/src/handlers/ws.rs +24 -0
- package/templates/stacks/rust-axum/src/lib.rs +19 -0
- package/templates/stacks/rust-axum/src/llm/mod.rs +1 -0
- package/templates/stacks/rust-axum/src/llm/provider.rs +48 -0
- package/templates/stacks/rust-axum/src/main.rs.tera +64 -0
- package/templates/stacks/rust-axum/src/middleware/auth.rs +20 -0
- package/templates/stacks/rust-axum/src/middleware/mod.rs +2 -0
- package/templates/stacks/rust-axum/src/middleware/rate_limit.rs +27 -0
- package/templates/stacks/rust-axum/src/models/mod.rs +1 -0
- package/templates/stacks/rust-axum/src/models/user.rs +13 -0
- package/templates/stacks/rust-axum/src/repositories/mod.rs +1 -0
- package/templates/stacks/rust-axum/src/repositories/user_repository.rs +62 -0
- package/templates/stacks/rust-axum/src/services/auth_service.rs +50 -0
- package/templates/stacks/rust-axum/src/services/mod.rs +2 -0
- package/templates/stacks/rust-axum/src/services/user_service.rs +53 -0
- package/templates/stacks/rust-axum/tests/integration_test.rs.tera +13 -0
- package/LICENSE +0 -21
- 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
|
@@ -1,151 +1,151 @@
|
|
|
1
|
-
# /dare-dag-build
|
|
2
|
-
|
|
3
|
-
Regenera **apenas** o `DARE/dare-dag.yaml` a partir do `DARE/BLUEPRINT.md` já
|
|
4
|
-
existente, sem refazer o blueprint nem as specs. Útil quando o BLUEPRINT
|
|
5
|
-
mudou pouco mas você precisa que o grafo reflita o novo estado.
|
|
6
|
-
|
|
7
|
-
## Quando usar
|
|
8
|
-
|
|
9
|
-
- O BLUEPRINT foi ajustado e o grafo precisa refletir
|
|
10
|
-
- Você quer experimentar uma decomposição diferente sem refazer o blueprint
|
|
11
|
-
- O `dare-dag.yaml` ficou inconsistente com `EXECUTION/task-*.md`
|
|
12
|
-
- Precisa adicionar/remover/reordenar tasks no grafo
|
|
13
|
-
|
|
14
|
-
## Pré-requisitos
|
|
15
|
-
|
|
16
|
-
- `DARE/BLUEPRINT.md` existe e está aprovado
|
|
17
|
-
- (Opcional) `DARE/EXECUTION/task-*.md` específicas serão preservadas se não
|
|
18
|
-
forem mencionadas
|
|
19
|
-
|
|
20
|
-
## O que fazer
|
|
21
|
-
|
|
22
|
-
### 1. Ler `DARE/BLUEPRINT.md`
|
|
23
|
-
|
|
24
|
-
Obrigatório. Se faltar, peça `/dare-blueprint` antes.
|
|
25
|
-
|
|
26
|
-
### 2. Ler `DARE/dare-dag.yaml` atual (se existir)
|
|
27
|
-
|
|
28
|
-
Para preservar `id`s já em uso e não confundir o usuário com renomeações
|
|
29
|
-
desnecessárias.
|
|
30
|
-
|
|
31
|
-
### 3. Gerar o novo `dare-dag.yaml`
|
|
32
|
-
|
|
33
|
-
Schema canônico:
|
|
34
|
-
|
|
35
|
-
```yaml
|
|
36
|
-
title: "<Nome do Projeto> - Development Tasks"
|
|
37
|
-
version: "1.0.0"
|
|
38
|
-
|
|
39
|
-
limits:
|
|
40
|
-
parent_context_chars: 2000
|
|
41
|
-
task_output_chars: 4000
|
|
42
|
-
timeout_seconds: 600
|
|
43
|
-
|
|
44
|
-
models:
|
|
45
|
-
cursor: { HIGH: gpt-5.3-codex, MED: composer-2, LOW: auto-low }
|
|
46
|
-
claude: { HIGH: claude-sonnet-4-5, MED: claude-haiku-4, LOW: claude-haiku-4 }
|
|
47
|
-
antigravity: { HIGH: gemini-2.5-pro, MED: gemini-2.5-flash, LOW: gemini-2.5-flash }
|
|
48
|
-
|
|
49
|
-
tasks:
|
|
50
|
-
- id: task-001
|
|
51
|
-
title: "..."
|
|
52
|
-
depends_on: []
|
|
53
|
-
complexity: LOW
|
|
54
|
-
spec_file: EXECUTION/task-001.md
|
|
55
|
-
subtask_prompt: |
|
|
56
|
-
<self-contained>
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
**Regras inegociáveis:**
|
|
60
|
-
|
|
61
|
-
- `id` em kebab-case e único
|
|
62
|
-
- `depends_on` mínimo — só quando filha *literalmente* precisa do output
|
|
63
|
-
- `subtask_prompt` self-contained
|
|
64
|
-
- Pelo menos 2 tasks no rank 0
|
|
65
|
-
- Cadeia linear é antipattern
|
|
66
|
-
- `complexity` honesta
|
|
67
|
-
|
|
68
|
-
### 3.1 ANTI-STUB CONTRACT (inegociável)
|
|
69
|
-
|
|
70
|
-
> Tasks geradas com `subtask_prompt` ou spec genéricos forçam o agente a inventar — e ele vai produzir mock, stub ou esqueleto. **Não é negociável**. O comando `dare review <task-id>` (v2.17+) detecta isso e marca a task como FAILED.
|
|
71
|
-
|
|
72
|
-
Cada `subtask_prompt` e `EXECUTION/task-<id>.md` deve atender este contrato:
|
|
73
|
-
|
|
74
|
-
**O `subtask_prompt` deve ser auto-suficiente**
|
|
75
|
-
|
|
76
|
-
O subagente recebe **apenas** o `subtask_prompt` + snippets de 2000 chars dos pais. Tudo que ele precisa para implementar **sem inventar** deve estar ali ou na `spec_file`. Inclua:
|
|
77
|
-
|
|
78
|
-
- Caminho exato dos arquivos a criar/modificar
|
|
79
|
-
- Assinaturas exatas das funções/endpoints (`fn name(params: T) -> R`)
|
|
80
|
-
- Schema de request/response com tipos
|
|
81
|
-
- Validações específicas (não "validar input" — `email: regex /^.../`, `senha: ≥ 8 chars + 1 maiúscula + 1 dígito`)
|
|
82
|
-
- Edge cases enumerados (input vazio, duplicado, expirado, sem permissão)
|
|
83
|
-
- Lista de testes esperados com nome + comportamento
|
|
84
|
-
|
|
85
|
-
**A `spec_file` (`EXECUTION/task-<id>.md`) deve ter Definition of Done anti-stub:**
|
|
86
|
-
|
|
87
|
-
```markdown
|
|
88
|
-
## Definition of Done (ANTI-STUB)
|
|
89
|
-
|
|
90
|
-
- [ ] Nenhum `TODO`, `FIXME`, `XXX` ou `HACK` em arquivos modificados
|
|
91
|
-
- [ ] Nenhuma função vazia (`fn x() {}`, `def x(): pass`, `function x() {}`)
|
|
92
|
-
- [ ] Nenhum `throw new Error('not implemented')`, `unimplemented!()`, `todo!()`, `NotImplementedError`
|
|
93
|
-
- [ ] Nenhum `return null` / `return undefined` / `return {}` como única statement de função pública
|
|
94
|
-
- [ ] Mocks **somente** dentro de `*.test.*`, `*.spec.*`, `__tests__/`, `tests/`, `spec/` — NUNCA em código de produção
|
|
95
|
-
- [ ] Todos os endpoints declarados na seção 3 retornam dados reais (não fixos / hardcoded)
|
|
96
|
-
- [ ] Cada validação da spec produz erro real com status code correto (testado)
|
|
97
|
-
- [ ] Cada edge case da spec tem teste unitário ou integração demonstrando comportamento
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
**Verificação automatizável:** o agente vai rodar `dare review <id>` antes de marcar DONE. Se a review falhar, a task volta para revisão.
|
|
101
|
-
|
|
102
|
-
**Sinais de spec rasa** (auto-validar antes de salvar):
|
|
103
|
-
|
|
104
|
-
- ❌ "Implementar X" — sem assinatura, sem retorno, sem validações
|
|
105
|
-
- ❌ "Tratar erros adequadamente" — quais erros? como? que código?
|
|
106
|
-
- ❌ "Adicionar validações" — quais regras?
|
|
107
|
-
- ✅ "Implementar `POST /auth/login` retornando `{ token: string, refresh: string }` com 200 se credenciais válidas, 401 se inválidas, 429 se rate limit"
|
|
108
|
-
|
|
109
|
-
### 4. Validar consistência com `EXECUTION/task-*.md`
|
|
110
|
-
|
|
111
|
-
Se uma spec existe em `DARE/EXECUTION/task-<id>.md`:
|
|
112
|
-
- Mantenha o mesmo `id` no YAML
|
|
113
|
-
- Aponte `spec_file: EXECUTION/task-<id>.md`
|
|
114
|
-
- Se a `complexity` ou `depends_on` mudou, atualize **também** a spec e o
|
|
115
|
-
`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
|
|
122
|
-
apagar?
|
|
123
|
-
|
|
124
|
-
### 5. Validar grafo
|
|
125
|
-
|
|
126
|
-
- Sem ciclos
|
|
127
|
-
- Todos os `depends_on` apontam para `id`s existentes
|
|
128
|
-
- `id`s únicos
|
|
129
|
-
- Pelo menos 2 tasks no rank 0
|
|
130
|
-
|
|
131
|
-
### 6. Atualizar `DARE/TASKS.md`
|
|
132
|
-
|
|
133
|
-
Reflita o novo grafo na tabela master.
|
|
134
|
-
|
|
135
|
-
### 7. Mensagem ao usuário
|
|
136
|
-
|
|
137
|
-
> `dare-dag.yaml` regenerado:
|
|
138
|
-
> - Total de tasks: N
|
|
139
|
-
> - Ranks paralelos: N
|
|
140
|
-
> - Adicionadas: [...]
|
|
141
|
-
> - Removidas: [...]
|
|
142
|
-
> - Modificadas: [...]
|
|
143
|
-
>
|
|
144
|
-
> Revise e aprove. Para executar: `/dare-dag-run`.
|
|
145
|
-
|
|
146
|
-
## Quando NÃO usar
|
|
147
|
-
|
|
148
|
-
- Se você nunca rodou `/dare-blueprint` antes — use `/dare-blueprint` primeiro
|
|
149
|
-
- Se o BLUEPRINT está desatualizado — atualize o BLUEPRINT primeiro
|
|
150
|
-
|
|
151
|
-
$ARGUMENTS
|
|
1
|
+
# /dare-dag-build
|
|
2
|
+
|
|
3
|
+
Regenera **apenas** o `DARE/dare-dag.yaml` a partir do `DARE/BLUEPRINT.md` já
|
|
4
|
+
existente, sem refazer o blueprint nem as specs. Útil quando o BLUEPRINT
|
|
5
|
+
mudou pouco mas você precisa que o grafo reflita o novo estado.
|
|
6
|
+
|
|
7
|
+
## Quando usar
|
|
8
|
+
|
|
9
|
+
- O BLUEPRINT foi ajustado e o grafo precisa refletir
|
|
10
|
+
- Você quer experimentar uma decomposição diferente sem refazer o blueprint
|
|
11
|
+
- O `dare-dag.yaml` ficou inconsistente com `EXECUTION/task-*.md`
|
|
12
|
+
- Precisa adicionar/remover/reordenar tasks no grafo
|
|
13
|
+
|
|
14
|
+
## Pré-requisitos
|
|
15
|
+
|
|
16
|
+
- `DARE/BLUEPRINT.md` existe e está aprovado
|
|
17
|
+
- (Opcional) `DARE/EXECUTION/task-*.md` específicas serão preservadas se não
|
|
18
|
+
forem mencionadas
|
|
19
|
+
|
|
20
|
+
## O que fazer
|
|
21
|
+
|
|
22
|
+
### 1. Ler `DARE/BLUEPRINT.md`
|
|
23
|
+
|
|
24
|
+
Obrigatório. Se faltar, peça `/dare-blueprint` antes.
|
|
25
|
+
|
|
26
|
+
### 2. Ler `DARE/dare-dag.yaml` atual (se existir)
|
|
27
|
+
|
|
28
|
+
Para preservar `id`s já em uso e não confundir o usuário com renomeações
|
|
29
|
+
desnecessárias.
|
|
30
|
+
|
|
31
|
+
### 3. Gerar o novo `dare-dag.yaml`
|
|
32
|
+
|
|
33
|
+
Schema canônico:
|
|
34
|
+
|
|
35
|
+
```yaml
|
|
36
|
+
title: "<Nome do Projeto> - Development Tasks"
|
|
37
|
+
version: "1.0.0"
|
|
38
|
+
|
|
39
|
+
limits:
|
|
40
|
+
parent_context_chars: 2000
|
|
41
|
+
task_output_chars: 4000
|
|
42
|
+
timeout_seconds: 600
|
|
43
|
+
|
|
44
|
+
models:
|
|
45
|
+
cursor: { HIGH: gpt-5.3-codex, MED: composer-2, LOW: auto-low }
|
|
46
|
+
claude: { HIGH: claude-sonnet-4-5, MED: claude-haiku-4, LOW: claude-haiku-4 }
|
|
47
|
+
antigravity: { HIGH: gemini-2.5-pro, MED: gemini-2.5-flash, LOW: gemini-2.5-flash }
|
|
48
|
+
|
|
49
|
+
tasks:
|
|
50
|
+
- id: task-001
|
|
51
|
+
title: "..."
|
|
52
|
+
depends_on: []
|
|
53
|
+
complexity: LOW
|
|
54
|
+
spec_file: EXECUTION/task-001.md
|
|
55
|
+
subtask_prompt: |
|
|
56
|
+
<self-contained>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Regras inegociáveis:**
|
|
60
|
+
|
|
61
|
+
- `id` em kebab-case e único
|
|
62
|
+
- `depends_on` mínimo — só quando filha *literalmente* precisa do output
|
|
63
|
+
- `subtask_prompt` self-contained
|
|
64
|
+
- Pelo menos 2 tasks no rank 0
|
|
65
|
+
- Cadeia linear é antipattern
|
|
66
|
+
- `complexity` honesta
|
|
67
|
+
|
|
68
|
+
### 3.1 ANTI-STUB CONTRACT (inegociável)
|
|
69
|
+
|
|
70
|
+
> Tasks geradas com `subtask_prompt` ou spec genéricos forçam o agente a inventar — e ele vai produzir mock, stub ou esqueleto. **Não é negociável**. O comando `dare review <task-id>` (v2.17+) detecta isso e marca a task como FAILED.
|
|
71
|
+
|
|
72
|
+
Cada `subtask_prompt` e `EXECUTION/task-<id>.md` deve atender este contrato:
|
|
73
|
+
|
|
74
|
+
**O `subtask_prompt` deve ser auto-suficiente**
|
|
75
|
+
|
|
76
|
+
O subagente recebe **apenas** o `subtask_prompt` + snippets de 2000 chars dos pais. Tudo que ele precisa para implementar **sem inventar** deve estar ali ou na `spec_file`. Inclua:
|
|
77
|
+
|
|
78
|
+
- Caminho exato dos arquivos a criar/modificar
|
|
79
|
+
- Assinaturas exatas das funções/endpoints (`fn name(params: T) -> R`)
|
|
80
|
+
- Schema de request/response com tipos
|
|
81
|
+
- Validações específicas (não "validar input" — `email: regex /^.../`, `senha: ≥ 8 chars + 1 maiúscula + 1 dígito`)
|
|
82
|
+
- Edge cases enumerados (input vazio, duplicado, expirado, sem permissão)
|
|
83
|
+
- Lista de testes esperados com nome + comportamento
|
|
84
|
+
|
|
85
|
+
**A `spec_file` (`EXECUTION/task-<id>.md`) deve ter Definition of Done anti-stub:**
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
## Definition of Done (ANTI-STUB)
|
|
89
|
+
|
|
90
|
+
- [ ] Nenhum `TODO`, `FIXME`, `XXX` ou `HACK` em arquivos modificados
|
|
91
|
+
- [ ] Nenhuma função vazia (`fn x() {}`, `def x(): pass`, `function x() {}`)
|
|
92
|
+
- [ ] Nenhum `throw new Error('not implemented')`, `unimplemented!()`, `todo!()`, `NotImplementedError`
|
|
93
|
+
- [ ] Nenhum `return null` / `return undefined` / `return {}` como única statement de função pública
|
|
94
|
+
- [ ] Mocks **somente** dentro de `*.test.*`, `*.spec.*`, `__tests__/`, `tests/`, `spec/` — NUNCA em código de produção
|
|
95
|
+
- [ ] Todos os endpoints declarados na seção 3 retornam dados reais (não fixos / hardcoded)
|
|
96
|
+
- [ ] Cada validação da spec produz erro real com status code correto (testado)
|
|
97
|
+
- [ ] Cada edge case da spec tem teste unitário ou integração demonstrando comportamento
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Verificação automatizável:** o agente vai rodar `dare review <id>` antes de marcar DONE. Se a review falhar, a task volta para revisão.
|
|
101
|
+
|
|
102
|
+
**Sinais de spec rasa** (auto-validar antes de salvar):
|
|
103
|
+
|
|
104
|
+
- ❌ "Implementar X" — sem assinatura, sem retorno, sem validações
|
|
105
|
+
- ❌ "Tratar erros adequadamente" — quais erros? como? que código?
|
|
106
|
+
- ❌ "Adicionar validações" — quais regras?
|
|
107
|
+
- ✅ "Implementar `POST /auth/login` retornando `{ token: string, refresh: string }` com 200 se credenciais válidas, 401 se inválidas, 429 se rate limit"
|
|
108
|
+
|
|
109
|
+
### 4. Validar consistência com `EXECUTION/task-*.md`
|
|
110
|
+
|
|
111
|
+
Se uma spec existe em `DARE/EXECUTION/task-<id>.md`:
|
|
112
|
+
- Mantenha o mesmo `id` no YAML
|
|
113
|
+
- Aponte `spec_file: EXECUTION/task-<id>.md`
|
|
114
|
+
- Se a `complexity` ou `depends_on` mudou, atualize **também** a spec e o
|
|
115
|
+
`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
|
|
122
|
+
apagar?
|
|
123
|
+
|
|
124
|
+
### 5. Validar grafo
|
|
125
|
+
|
|
126
|
+
- Sem ciclos
|
|
127
|
+
- Todos os `depends_on` apontam para `id`s existentes
|
|
128
|
+
- `id`s únicos
|
|
129
|
+
- Pelo menos 2 tasks no rank 0
|
|
130
|
+
|
|
131
|
+
### 6. Atualizar `DARE/TASKS.md`
|
|
132
|
+
|
|
133
|
+
Reflita o novo grafo na tabela master.
|
|
134
|
+
|
|
135
|
+
### 7. Mensagem ao usuário
|
|
136
|
+
|
|
137
|
+
> `dare-dag.yaml` regenerado:
|
|
138
|
+
> - Total de tasks: N
|
|
139
|
+
> - Ranks paralelos: N
|
|
140
|
+
> - Adicionadas: [...]
|
|
141
|
+
> - Removidas: [...]
|
|
142
|
+
> - Modificadas: [...]
|
|
143
|
+
>
|
|
144
|
+
> Revise e aprove. Para executar: `/dare-dag-run`.
|
|
145
|
+
|
|
146
|
+
## Quando NÃO usar
|
|
147
|
+
|
|
148
|
+
- Se você nunca rodou `/dare-blueprint` antes — use `/dare-blueprint` primeiro
|
|
149
|
+
- Se o BLUEPRINT está desatualizado — atualize o BLUEPRINT primeiro
|
|
150
|
+
|
|
151
|
+
$ARGUMENTS
|
|
@@ -1,109 +1,109 @@
|
|
|
1
|
-
# /dare-dag-run
|
|
2
|
-
|
|
3
|
-
Executa o grafo de tasks definido em `DARE/dare-dag.yaml` usando **Claude
|
|
4
|
-
Code como executor** e o CLI `dare` como orquestrador. O canvas ao vivo fica
|
|
5
|
-
em `DARE/.canvas.md`.
|
|
6
|
-
|
|
7
|
-
> **Sem API keys.** Você (Claude Code) usa o plano da IDE/CLI em que o
|
|
8
|
-
> usuário já está autenticado. O CLI apenas coordena estado, monta prompts
|
|
9
|
-
> e atualiza canvas.
|
|
10
|
-
|
|
11
|
-
## Pré-requisitos
|
|
12
|
-
|
|
13
|
-
- `DARE/dare-dag.yaml` existe e foi aprovado
|
|
14
|
-
- Specs em `DARE/EXECUTION/task-<id>.md` geradas
|
|
15
|
-
- `dare` disponível no PATH (`npm i -g @dewtech/dare-cli`)
|
|
16
|
-
|
|
17
|
-
## Como usar
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
/dare-dag-run
|
|
21
|
-
/dare-dag-run --task task-003 # executar só uma task específica
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## O que fazer
|
|
25
|
-
|
|
26
|
-
### 1. Validar pré-condições
|
|
27
|
-
|
|
28
|
-
- Confirme que `DARE/dare-dag.yaml` existe. Se não, oriente
|
|
29
|
-
`/dare-blueprint` ou `/dare-dag-build`
|
|
30
|
-
- Leia o YAML e verifique sem ciclos, ids únicos, ranks paralelizáveis
|
|
31
|
-
|
|
32
|
-
### 2. Pegar próximas tasks
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
dare execute --next
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
O CLI imprime as tasks ready do rank atual com o prompt completo (snippets
|
|
39
|
-
de até 2000 chars dos outputs dos pais já costurados). Use esses prompts.
|
|
40
|
-
|
|
41
|
-
### 3. Sugerir abrir o canvas
|
|
42
|
-
|
|
43
|
-
Antes de começar, peça ao usuário abrir `DARE/.canvas.md` em outra aba.
|
|
44
|
-
|
|
45
|
-
### 4. Executar cada task
|
|
46
|
-
|
|
47
|
-
Para cada task ready:
|
|
48
|
-
|
|
49
|
-
1. Leia `spec_file` se houver
|
|
50
|
-
2. Implemente conforme o prompt
|
|
51
|
-
3. Rode Ralph Loop: build → test → lint
|
|
52
|
-
4. Registre o resultado:
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
# Sucesso
|
|
56
|
-
dare execute --complete task-001 --output "Resumo + arquivos criados (paths)"
|
|
57
|
-
|
|
58
|
-
# Falha
|
|
59
|
-
dare execute --fail task-002 --reason "Mensagem clara da falha"
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### 5. Avançar de rank
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
dare execute --next
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Se aparece `✅ All tasks resolved`, todas terminaram. Caso contrário, continue.
|
|
69
|
-
|
|
70
|
-
### 6. Pós-execução
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
dare execute --status
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
Para retentar tasks FAILED:
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
dare execute --reset task-002
|
|
80
|
-
dare execute --next
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Comandos do orquestrador
|
|
84
|
-
|
|
85
|
-
| Comando | Função |
|
|
86
|
-
|---------|--------|
|
|
87
|
-
| `dare execute --next` | Próximas tasks ready com prompts compostos |
|
|
88
|
-
| `dare execute --complete <id> --output "…"` | Marca DONE |
|
|
89
|
-
| `dare execute --fail <id> --reason "…"` | Marca FAILED + cascade-skip |
|
|
90
|
-
| `dare execute --reset <id>` | Volta para PENDING |
|
|
91
|
-
| `dare execute --status` | Snapshot do canvas + sumário |
|
|
92
|
-
|
|
93
|
-
## Erros comuns
|
|
94
|
-
|
|
95
|
-
| Sintoma | Causa | Correção |
|
|
96
|
-
|---------|-------|----------|
|
|
97
|
-
| `dare-dag.yaml not found` | Não foi gerado | `/dare-blueprint` ou `/dare-dag-build` |
|
|
98
|
-
| Cascata de SKIPPED | Pai falhou | Corrija pai → `--reset` → `--next` |
|
|
99
|
-
| Output truncado | Cap de 4000 chars | Escreva em arquivo, retorne resumo |
|
|
100
|
-
| Spec inconsistente | TASKS.md ≠ dare-dag.yaml | Re-gere com `/dare-dag-build` |
|
|
101
|
-
|
|
102
|
-
## Referências
|
|
103
|
-
|
|
104
|
-
- Schema: `DARE/dare-dag.yaml`
|
|
105
|
-
- Canvas: `DARE/.canvas.md`
|
|
106
|
-
- Specs: `DARE/EXECUTION/task-*.md`
|
|
107
|
-
- Status: `DARE/TASKS.md`
|
|
108
|
-
|
|
109
|
-
$ARGUMENTS
|
|
1
|
+
# /dare-dag-run
|
|
2
|
+
|
|
3
|
+
Executa o grafo de tasks definido em `DARE/dare-dag.yaml` usando **Claude
|
|
4
|
+
Code como executor** e o CLI `dare` como orquestrador. O canvas ao vivo fica
|
|
5
|
+
em `DARE/.canvas.md`.
|
|
6
|
+
|
|
7
|
+
> **Sem API keys.** Você (Claude Code) usa o plano da IDE/CLI em que o
|
|
8
|
+
> usuário já está autenticado. O CLI apenas coordena estado, monta prompts
|
|
9
|
+
> e atualiza canvas.
|
|
10
|
+
|
|
11
|
+
## Pré-requisitos
|
|
12
|
+
|
|
13
|
+
- `DARE/dare-dag.yaml` existe e foi aprovado
|
|
14
|
+
- Specs em `DARE/EXECUTION/task-<id>.md` geradas
|
|
15
|
+
- `dare` disponível no PATH (`npm i -g @dewtech/dare-cli`)
|
|
16
|
+
|
|
17
|
+
## Como usar
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
/dare-dag-run
|
|
21
|
+
/dare-dag-run --task task-003 # executar só uma task específica
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## O que fazer
|
|
25
|
+
|
|
26
|
+
### 1. Validar pré-condições
|
|
27
|
+
|
|
28
|
+
- Confirme que `DARE/dare-dag.yaml` existe. Se não, oriente
|
|
29
|
+
`/dare-blueprint` ou `/dare-dag-build`
|
|
30
|
+
- Leia o YAML e verifique sem ciclos, ids únicos, ranks paralelizáveis
|
|
31
|
+
|
|
32
|
+
### 2. Pegar próximas tasks
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
dare execute --next
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
O CLI imprime as tasks ready do rank atual com o prompt completo (snippets
|
|
39
|
+
de até 2000 chars dos outputs dos pais já costurados). Use esses prompts.
|
|
40
|
+
|
|
41
|
+
### 3. Sugerir abrir o canvas
|
|
42
|
+
|
|
43
|
+
Antes de começar, peça ao usuário abrir `DARE/.canvas.md` em outra aba.
|
|
44
|
+
|
|
45
|
+
### 4. Executar cada task
|
|
46
|
+
|
|
47
|
+
Para cada task ready:
|
|
48
|
+
|
|
49
|
+
1. Leia `spec_file` se houver
|
|
50
|
+
2. Implemente conforme o prompt
|
|
51
|
+
3. Rode Ralph Loop: build → test → lint
|
|
52
|
+
4. Registre o resultado:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Sucesso
|
|
56
|
+
dare execute --complete task-001 --output "Resumo + arquivos criados (paths)"
|
|
57
|
+
|
|
58
|
+
# Falha
|
|
59
|
+
dare execute --fail task-002 --reason "Mensagem clara da falha"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 5. Avançar de rank
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
dare execute --next
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Se aparece `✅ All tasks resolved`, todas terminaram. Caso contrário, continue.
|
|
69
|
+
|
|
70
|
+
### 6. Pós-execução
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
dare execute --status
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Para retentar tasks FAILED:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
dare execute --reset task-002
|
|
80
|
+
dare execute --next
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Comandos do orquestrador
|
|
84
|
+
|
|
85
|
+
| Comando | Função |
|
|
86
|
+
|---------|--------|
|
|
87
|
+
| `dare execute --next` | Próximas tasks ready com prompts compostos |
|
|
88
|
+
| `dare execute --complete <id> --output "…"` | Marca DONE |
|
|
89
|
+
| `dare execute --fail <id> --reason "…"` | Marca FAILED + cascade-skip |
|
|
90
|
+
| `dare execute --reset <id>` | Volta para PENDING |
|
|
91
|
+
| `dare execute --status` | Snapshot do canvas + sumário |
|
|
92
|
+
|
|
93
|
+
## Erros comuns
|
|
94
|
+
|
|
95
|
+
| Sintoma | Causa | Correção |
|
|
96
|
+
|---------|-------|----------|
|
|
97
|
+
| `dare-dag.yaml not found` | Não foi gerado | `/dare-blueprint` ou `/dare-dag-build` |
|
|
98
|
+
| Cascata de SKIPPED | Pai falhou | Corrija pai → `--reset` → `--next` |
|
|
99
|
+
| Output truncado | Cap de 4000 chars | Escreva em arquivo, retorne resumo |
|
|
100
|
+
| Spec inconsistente | TASKS.md ≠ dare-dag.yaml | Re-gere com `/dare-dag-build` |
|
|
101
|
+
|
|
102
|
+
## Referências
|
|
103
|
+
|
|
104
|
+
- Schema: `DARE/dare-dag.yaml`
|
|
105
|
+
- Canvas: `DARE/.canvas.md`
|
|
106
|
+
- Specs: `DARE/EXECUTION/task-*.md`
|
|
107
|
+
- Status: `DARE/TASKS.md`
|
|
108
|
+
|
|
109
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# /dare-dag-runner
|
|
2
|
+
|
|
3
|
+
Wrapper agregador que cobre **todo o ciclo do DAG** num único comando:
|
|
4
|
+
build do `dare-dag.yaml` (se necessário) → execução de todas as tasks via
|
|
5
|
+
Ralph Loop → opcional visualização final em Excalidraw.
|
|
6
|
+
|
|
7
|
+
Esta skill existe por **paridade conceitual** com Antigravity e Cursor, que
|
|
8
|
+
consolidam build + run numa única skill chamada `dare-dag-runner`. No Claude
|
|
9
|
+
você também tem os comandos granulares `/dare-dag-build`, `/dare-dag-run` e
|
|
10
|
+
`/dare-dag-viz` caso prefira controle fino.
|
|
11
|
+
|
|
12
|
+
> **Sem API keys.** Você (Claude Code) usa o plano da IDE/CLI em que o
|
|
13
|
+
> usuário já está autenticado. O CLI `dare` apenas coordena estado, monta
|
|
14
|
+
> prompts e atualiza canvas.
|
|
15
|
+
|
|
16
|
+
## Como usar
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
/dare-dag-runner # build + run completo, com viz opcional ao final
|
|
20
|
+
/dare-dag-runner --skip-build # pula build, executa o yaml atual
|
|
21
|
+
/dare-dag-runner --skip-run # só (re)gera o yaml, não executa
|
|
22
|
+
/dare-dag-runner --viz # ao final, gera dag-graph.excalidraw
|
|
23
|
+
/dare-dag-runner --task task-003 # executa apenas uma task específica
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Quando usar
|
|
27
|
+
|
|
28
|
+
- Você quer rodar **todo o ciclo** sem se preocupar com comandos separados
|
|
29
|
+
- Está começando a fase EXECUTE pela primeira vez num projeto
|
|
30
|
+
- Quer paridade com o fluxo do Antigravity/Cursor (1 skill = ciclo completo)
|
|
31
|
+
|
|
32
|
+
## Quando NÃO usar
|
|
33
|
+
|
|
34
|
+
- Você quer **só** regerar o yaml (sem executar) → use `/dare-dag-build`
|
|
35
|
+
- Você quer **só** executar o yaml atual (sem regerar) → use `/dare-dag-run`
|
|
36
|
+
- Você quer **só** o diagrama Excalidraw → use `/dare-dag-viz`
|
|
37
|
+
- O BLUEPRINT está desatualizado → atualize primeiro com `/dare-blueprint`
|
|
38
|
+
|
|
39
|
+
## Pré-requisitos
|
|
40
|
+
|
|
41
|
+
- `DARE/BLUEPRINT.md` existe e está aprovado (a fase build precisa dele)
|
|
42
|
+
- `dare` disponível no PATH (`npm i -g @dewtech/dare-cli`)
|
|
43
|
+
|
|
44
|
+
## O que fazer
|
|
45
|
+
|
|
46
|
+
### Fase 1 — BUILD (se aplicável)
|
|
47
|
+
|
|
48
|
+
Se o yaml não existe ou está stale (BLUEPRINT mais novo que o yaml),
|
|
49
|
+
execute o procedimento completo de `/dare-dag-build`:
|
|
50
|
+
|
|
51
|
+
1. Ler `DARE/BLUEPRINT.md`
|
|
52
|
+
2. Ler `DARE/dare-dag.yaml` atual (preservar `id`s)
|
|
53
|
+
3. Gerar o novo `dare-dag.yaml` obedecendo:
|
|
54
|
+
- `id` em kebab-case e único
|
|
55
|
+
- `depends_on` mínimo
|
|
56
|
+
- `subtask_prompt` self-contained
|
|
57
|
+
- Pelo menos **2 tasks no rank 0**
|
|
58
|
+
- Cadeia linear é antipattern
|
|
59
|
+
- `complexity` honesta
|
|
60
|
+
- ANTI-STUB CONTRACT em cada spec (ver `/dare-dag-build` para detalhes)
|
|
61
|
+
4. Atualizar `DARE/TASKS.md`
|
|
62
|
+
5. **Pedir aprovação ao usuário antes de executar.**
|
|
63
|
+
|
|
64
|
+
Se `--skip-build` foi passado, pule esta fase.
|
|
65
|
+
|
|
66
|
+
### Fase 2 — RUN
|
|
67
|
+
|
|
68
|
+
Executa o procedimento completo de `/dare-dag-run`:
|
|
69
|
+
|
|
70
|
+
1. Validar pré-condições (yaml existe, sem ciclos, ids únicos)
|
|
71
|
+
2. Sugerir abrir `DARE/.canvas.md` em outra aba
|
|
72
|
+
3. Loop até `✅ All tasks resolved`:
|
|
73
|
+
- `dare execute --next` para pegar tasks ready do rank atual
|
|
74
|
+
- Para cada task: ler spec → implementar (sem mock fora de tests, sem TODOs) → Ralph Loop (build/test/lint) → `dare execute --complete <id> --output "..."` ou `--fail <id> --reason "..."`
|
|
75
|
+
4. Pós-execução: `dare execute --status` para sumário final
|
|
76
|
+
|
|
77
|
+
Se `--skip-run` foi passado, pule esta fase.
|
|
78
|
+
|
|
79
|
+
### Fase 3 — VIZ (opcional)
|
|
80
|
+
|
|
81
|
+
Se `--viz` foi passado, ao final gere `DARE/dag-graph.excalidraw` via
|
|
82
|
+
`/dare-dag-viz`: retângulos coloridos por complexidade, swim lanes por
|
|
83
|
+
rank, setas para `depends_on`, status visual (DONE/RUNNING/FAILED).
|
|
84
|
+
|
|
85
|
+
## Comandos do orquestrador `dare`
|
|
86
|
+
|
|
87
|
+
| Comando | Função |
|
|
88
|
+
|---------|--------|
|
|
89
|
+
| `dare execute --next` | Próximas tasks ready com prompts compostos |
|
|
90
|
+
| `dare execute --complete <id> --output "..."` | Marca DONE |
|
|
91
|
+
| `dare execute --fail <id> --reason "..."` | Marca FAILED + cascade-skip |
|
|
92
|
+
| `dare execute --reset <id>` | Volta para PENDING |
|
|
93
|
+
| `dare execute --status` | Snapshot + sumário |
|
|
94
|
+
|
|
95
|
+
## Mensagem final ao usuário
|
|
96
|
+
|
|
97
|
+
> Ciclo DAG completo:
|
|
98
|
+
> - Build: N tasks geradas em M ranks (ou "pulado" se --skip-build)
|
|
99
|
+
> - Run: X DONE / Y FAILED / Z SKIPPED
|
|
100
|
+
> - Viz: `DARE/dag-graph.excalidraw` (se --viz)
|
|
101
|
+
>
|
|
102
|
+
> Para retentar falhas: `/dare-dag-run` (ou comando granular).
|
|
103
|
+
|
|
104
|
+
## Equivalência entre IDEs
|
|
105
|
+
|
|
106
|
+
| Operação | Antigravity | Claude | Cursor |
|
|
107
|
+
|----------|-------------|--------|--------|
|
|
108
|
+
| Ciclo completo | `dare-dag-runner` | `/dare-dag-runner` (este) | `skill-dag-runner` rule |
|
|
109
|
+
| Só build | `dare-dag-build` | `/dare-dag-build` | `skill-dag-build` rule |
|
|
110
|
+
| Só run | `dare-dag-run` | `/dare-dag-run` | `skill-dag-run` rule + `/run-dag` |
|
|
111
|
+
| Visualizar | `dare-dag-viz` | `/dare-dag-viz` | `/dag-viz` |
|
|
112
|
+
|
|
113
|
+
## Licença
|
|
114
|
+
|
|
115
|
+
Esta skill é parte do DARE Method e está sob licença MIT (D-001).
|
|
116
|
+
|
|
117
|
+
$ARGUMENTS
|