@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,203 +1,203 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dare-dag-runner
|
|
3
|
-
description: Constrói e executa o grafo DAG do método DARE com paralelismo lógico via Kahn's algorithm. Antigravity é o executor — usa o plano nativo da IDE; sem API key. O CLI dare é orquestrador (--next/--complete/--fail).
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# DARE DAG Runner Skill
|
|
7
|
-
|
|
8
|
-
Você é o executor da fase E (Execute) do método DARE no Antigravity. O CLI
|
|
9
|
-
`dare` é o **orquestrador**: ele indica quais tasks executar agora e registra
|
|
10
|
-
o que você terminou. **Você** é quem efetivamente roda cada task usando o
|
|
11
|
-
runtime nativo do Antigravity — não há API key nem custo extra de tokens.
|
|
12
|
-
|
|
13
|
-
## Quando usar esta skill
|
|
14
|
-
|
|
15
|
-
- BLUEPRINT.md está aprovado e é hora de gerar tasks
|
|
16
|
-
- Existe `DARE/dare-dag.yaml` e você precisa entender, executar ou modificar
|
|
17
|
-
- Aparece o canvas `DARE/.canvas.md` durante uma execução
|
|
18
|
-
- Usuário pede "executa o DAG" ou "começa o execute"
|
|
19
|
-
|
|
20
|
-
## Modelo de execução
|
|
21
|
-
|
|
22
|
-
> **Antigravity é o executor. O CLI `dare` é orquestrador.**
|
|
23
|
-
|
|
24
|
-
- A IDE já está autenticada
|
|
25
|
-
- Você lê `dare-dag.yaml` e as specs em `DARE/EXECUTION/task-*.md`
|
|
26
|
-
- Você executa cada task — escreve código, roda testes, faz lint
|
|
27
|
-
- Após cada task, registra o resultado no CLI:
|
|
28
|
-
- `dare execute --complete <task-id> --output "<resumo>"`
|
|
29
|
-
- `dare execute --fail <task-id> --reason "<mensagem>"`
|
|
30
|
-
- O CLI atualiza `DARE/.canvas.md` e popula o `dare-graph` automaticamente
|
|
31
|
-
|
|
32
|
-
## O que é o DAG do DARE
|
|
33
|
-
|
|
34
|
-
`DARE/dare-dag.yaml` é o **plano de execução** da fase E. Grafo direcionado
|
|
35
|
-
acíclico:
|
|
36
|
-
|
|
37
|
-
- **Nó** = uma task atômica
|
|
38
|
-
- **Aresta** = `depends_on` (filha precisa do output da pai)
|
|
39
|
-
|
|
40
|
-
O CLI ordena topologicamente (Kahn's algorithm). Tasks no mesmo rank podem
|
|
41
|
-
rodar em paralelo (logicamente — você decide se literalmente fan-out ou roda
|
|
42
|
-
uma após a outra).
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
rank 0 ─→ task-001 task-002 (paralelas)
|
|
46
|
-
rank 1 ─→ task-003 (deps: 001,002)
|
|
47
|
-
rank 2 ─→ task-004 (deps: 003)
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## Schema canônico
|
|
51
|
-
|
|
52
|
-
```yaml
|
|
53
|
-
title: "<Nome do projeto> - Development Tasks"
|
|
54
|
-
version: "1.0.0"
|
|
55
|
-
|
|
56
|
-
limits:
|
|
57
|
-
parent_context_chars: 2000 # snippet de output de pai injetado no filho
|
|
58
|
-
task_output_chars: 4000 # cap do output capturado por task
|
|
59
|
-
timeout_seconds: 600 # apenas referência
|
|
60
|
-
|
|
61
|
-
models:
|
|
62
|
-
cursor: { HIGH: gpt-5.3-codex, MED: composer-2, LOW: auto-low }
|
|
63
|
-
claude: { HIGH: claude-sonnet-4-5, MED: claude-haiku-4, LOW: claude-haiku-4 }
|
|
64
|
-
antigravity: { HIGH: gemini-2.5-pro, MED: gemini-2.5-flash, LOW: gemini-2.5-flash }
|
|
65
|
-
|
|
66
|
-
tasks:
|
|
67
|
-
- id: task-001
|
|
68
|
-
title: "Setup project structure"
|
|
69
|
-
depends_on: []
|
|
70
|
-
complexity: LOW
|
|
71
|
-
spec_file: EXECUTION/task-001.md
|
|
72
|
-
subtask_prompt: |
|
|
73
|
-
<prompt completamente self-contained>
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
## Loop de execução
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
1. dare execute --next
|
|
80
|
-
↓ imprime prompts das tasks ready (rank atual)
|
|
81
|
-
2. Para cada prompt:
|
|
82
|
-
- leia spec_file se houver
|
|
83
|
-
- implemente
|
|
84
|
-
3. dare execute --complete <id> --output "<resumo + arquivos tocados>"
|
|
85
|
-
↓ o CLI roda o RALPH LOOP automático (build → test → lint)
|
|
86
|
-
↓ se passar: task vira DONE
|
|
87
|
-
↓ se falhar: task vira FAILED com stderr capturado; corrija e retente
|
|
88
|
-
4. Volte ao passo 1 até não haver mais tasks ready
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
> **Ralph Loop é AUTOMÁTICO e OBRIGATÓRIO.** Você NÃO roda build/test/lint
|
|
92
|
-
> manualmente — o `dare execute --complete` faz isso. Se algum gate falhar,
|
|
93
|
-
> a task NÃO vai para DONE; vai para FAILED. Corrija e retente.
|
|
94
|
-
>
|
|
95
|
-
> **Não existe flag para pular o Ralph Loop.** Toda task passa pelos 3 gates
|
|
96
|
-
> da stack do projeto.
|
|
97
|
-
|
|
98
|
-
Comandos úteis:
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
dare execute --next # próximas tasks ready
|
|
102
|
-
dare execute --complete task-001 --output "..." # marca DONE
|
|
103
|
-
dare execute --fail task-002 --reason "..." # marca FAILED + cascade
|
|
104
|
-
dare execute --reset task-002 # volta para PENDING (retry)
|
|
105
|
-
dare execute --status # snapshot do canvas
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
## Regras inegociáveis ao construir o DAG
|
|
109
|
-
|
|
110
|
-
### 1. `id` em kebab-case e único
|
|
111
|
-
`task-001`, `auth-jwt`, `db-migrations`.
|
|
112
|
-
|
|
113
|
-
### 2. `depends_on` mínimo
|
|
114
|
-
Só adicione dependência quando a filha **literalmente** precisa do output.
|
|
115
|
-
|
|
116
|
-
| Cenário | Dep? |
|
|
117
|
-
|---------|------|
|
|
118
|
-
| B precisa do arquivo de A | sim |
|
|
119
|
-
| B precisa de decisão de A | sim |
|
|
120
|
-
| B é independente de A | não |
|
|
121
|
-
| Testes/Docs do módulo X | sim — depende da implementação |
|
|
122
|
-
| Pesquisa sem efeito colateral | não |
|
|
123
|
-
|
|
124
|
-
Cadeia linear é antipattern. Reanalise.
|
|
125
|
-
|
|
126
|
-
### 3. `complexity` é sinal de cuidado, não custo
|
|
127
|
-
| Nível | Uso |
|
|
128
|
-
|-------|-----|
|
|
129
|
-
| `LOW` | Setup, scaffolding, docs simples |
|
|
130
|
-
| `MED` | Implementação direta, refactors, testes unitários |
|
|
131
|
-
| `HIGH` | Lógica crítica, segurança, integrações |
|
|
132
|
-
|
|
133
|
-
### 4. `subtask_prompt` self-contained
|
|
134
|
-
Receberá `subtask_prompt` + snippets de até 2000 chars dos outputs dos pais.
|
|
135
|
-
Não vale "como combinamos". Tudo no prompt ou via pais.
|
|
136
|
-
|
|
137
|
-
### 5. Output cap 4000 chars
|
|
138
|
-
Se gerar muito, escreva em arquivo e faça o `--output` ser resumo + caminhos.
|
|
139
|
-
|
|
140
|
-
### 6. Spec por task em `EXECUTION/task-<id>.md`
|
|
141
|
-
Spec detalhada com objetivo, arquivos, validation gates, testes, segurança.
|
|
142
|
-
|
|
143
|
-
## Os 3 artefatos sempre juntos
|
|
144
|
-
|
|
145
|
-
| Arquivo | Para quê |
|
|
146
|
-
|---------|----------|
|
|
147
|
-
| `DARE/TASKS.md` | Visão humana com tabela e progresso |
|
|
148
|
-
| `DARE/dare-dag.yaml` | Grafo executável |
|
|
149
|
-
| `DARE/EXECUTION/task-<id>.md` | Spec por task |
|
|
150
|
-
|
|
151
|
-
Os três precisam ser consistentes: mesmos `id`s, `depends_on`, `complexity`.
|
|
152
|
-
|
|
153
|
-
## Canvas ao vivo (`DARE/.canvas.md`)
|
|
154
|
-
|
|
155
|
-
O CLI reescreve a cada `--complete`/`--fail`:
|
|
156
|
-
|
|
157
|
-
| Status | Significado |
|
|
158
|
-
|--------|-------------|
|
|
159
|
-
| `PENDING` ⏳ | aguardando rank |
|
|
160
|
-
| `RUNNING` 🔄 | você está executando |
|
|
161
|
-
| `DONE` ✅ | concluído |
|
|
162
|
-
| `FAILED` ❌ | erro durante execução |
|
|
163
|
-
| `SKIPPED` ⏭️ | dependência falhou — automático, não toque |
|
|
164
|
-
|
|
165
|
-
## Erros comuns
|
|
166
|
-
|
|
167
|
-
| Erro | Correção |
|
|
168
|
-
|------|----------|
|
|
169
|
-
| Ciclo | Retire a aresta cíclica |
|
|
170
|
-
| `id` duplicado | Renomeie |
|
|
171
|
-
| `depends_on` inexistente | Corrija ou adicione a task |
|
|
172
|
-
| Tudo em rank 0 | Adicione deps reais quando há contenção |
|
|
173
|
-
| Cadeia linear | Reveja se as deps são necessárias |
|
|
174
|
-
|
|
175
|
-
## Antipatterns que você NÃO deve criar
|
|
176
|
-
|
|
177
|
-
- ❌ Task **"Ralph Loop final"** / **"Hardening"** / **"QA"** — gate é por task
|
|
178
|
-
- ❌ Tests com `assertTrue(true)` — o gate `test` roda de verdade
|
|
179
|
-
- ❌ "Setup project structure" antes de containerizar o app
|
|
180
|
-
|
|
181
|
-
## Ordem recomendada das primeiras tasks
|
|
182
|
-
|
|
183
|
-
1. **Containerize app** (Dockerfile + docker-compose + healthcheck)
|
|
184
|
-
2. **Database schema** (migrations + factories)
|
|
185
|
-
3. **Core endpoints / componentes**
|
|
186
|
-
4. **Auth / autorização**
|
|
187
|
-
5. **Test suite real** (assertions de verdade)
|
|
188
|
-
|
|
189
|
-
A task de container/compose pode estar em outra ordem para projetos sem
|
|
190
|
-
DB ou em monorepo já containerizado. Mas quase sempre é uma das primeiras.
|
|
191
|
-
|
|
192
|
-
## Checklist antes de aprovar
|
|
193
|
-
|
|
194
|
-
- [ ] Pelo menos 2 tasks no rank 0
|
|
195
|
-
- [ ] `subtask_prompt` executável sem contexto adicional
|
|
196
|
-
- [ ] Tasks de teste/doc dependem da implementação correspondente
|
|
197
|
-
- [ ] `complexity` reflete o esforço real
|
|
198
|
-
- [ ] `id` em kebab-case e único
|
|
199
|
-
- [ ] Sem ciclos
|
|
200
|
-
- [ ] **Sem task de "Ralph Loop final"** — gate é por task
|
|
201
|
-
- [ ] **Tests com assertions reais** — placeholder quebra o gate
|
|
202
|
-
- [ ] Container/runtime resolvido cedo
|
|
203
|
-
- [ ] Os 3 artefatos consistentes
|
|
1
|
+
---
|
|
2
|
+
name: dare-dag-runner
|
|
3
|
+
description: Constrói e executa o grafo DAG do método DARE com paralelismo lógico via Kahn's algorithm. Antigravity é o executor — usa o plano nativo da IDE; sem API key. O CLI dare é orquestrador (--next/--complete/--fail).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# DARE DAG Runner Skill
|
|
7
|
+
|
|
8
|
+
Você é o executor da fase E (Execute) do método DARE no Antigravity. O CLI
|
|
9
|
+
`dare` é o **orquestrador**: ele indica quais tasks executar agora e registra
|
|
10
|
+
o que você terminou. **Você** é quem efetivamente roda cada task usando o
|
|
11
|
+
runtime nativo do Antigravity — não há API key nem custo extra de tokens.
|
|
12
|
+
|
|
13
|
+
## Quando usar esta skill
|
|
14
|
+
|
|
15
|
+
- BLUEPRINT.md está aprovado e é hora de gerar tasks
|
|
16
|
+
- Existe `DARE/dare-dag.yaml` e você precisa entender, executar ou modificar
|
|
17
|
+
- Aparece o canvas `DARE/.canvas.md` durante uma execução
|
|
18
|
+
- Usuário pede "executa o DAG" ou "começa o execute"
|
|
19
|
+
|
|
20
|
+
## Modelo de execução
|
|
21
|
+
|
|
22
|
+
> **Antigravity é o executor. O CLI `dare` é orquestrador.**
|
|
23
|
+
|
|
24
|
+
- A IDE já está autenticada
|
|
25
|
+
- Você lê `dare-dag.yaml` e as specs em `DARE/EXECUTION/task-*.md`
|
|
26
|
+
- Você executa cada task — escreve código, roda testes, faz lint
|
|
27
|
+
- Após cada task, registra o resultado no CLI:
|
|
28
|
+
- `dare execute --complete <task-id> --output "<resumo>"`
|
|
29
|
+
- `dare execute --fail <task-id> --reason "<mensagem>"`
|
|
30
|
+
- O CLI atualiza `DARE/.canvas.md` e popula o `dare-graph` automaticamente
|
|
31
|
+
|
|
32
|
+
## O que é o DAG do DARE
|
|
33
|
+
|
|
34
|
+
`DARE/dare-dag.yaml` é o **plano de execução** da fase E. Grafo direcionado
|
|
35
|
+
acíclico:
|
|
36
|
+
|
|
37
|
+
- **Nó** = uma task atômica
|
|
38
|
+
- **Aresta** = `depends_on` (filha precisa do output da pai)
|
|
39
|
+
|
|
40
|
+
O CLI ordena topologicamente (Kahn's algorithm). Tasks no mesmo rank podem
|
|
41
|
+
rodar em paralelo (logicamente — você decide se literalmente fan-out ou roda
|
|
42
|
+
uma após a outra).
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
rank 0 ─→ task-001 task-002 (paralelas)
|
|
46
|
+
rank 1 ─→ task-003 (deps: 001,002)
|
|
47
|
+
rank 2 ─→ task-004 (deps: 003)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Schema canônico
|
|
51
|
+
|
|
52
|
+
```yaml
|
|
53
|
+
title: "<Nome do projeto> - Development Tasks"
|
|
54
|
+
version: "1.0.0"
|
|
55
|
+
|
|
56
|
+
limits:
|
|
57
|
+
parent_context_chars: 2000 # snippet de output de pai injetado no filho
|
|
58
|
+
task_output_chars: 4000 # cap do output capturado por task
|
|
59
|
+
timeout_seconds: 600 # apenas referência
|
|
60
|
+
|
|
61
|
+
models:
|
|
62
|
+
cursor: { HIGH: gpt-5.3-codex, MED: composer-2, LOW: auto-low }
|
|
63
|
+
claude: { HIGH: claude-sonnet-4-5, MED: claude-haiku-4, LOW: claude-haiku-4 }
|
|
64
|
+
antigravity: { HIGH: gemini-2.5-pro, MED: gemini-2.5-flash, LOW: gemini-2.5-flash }
|
|
65
|
+
|
|
66
|
+
tasks:
|
|
67
|
+
- id: task-001
|
|
68
|
+
title: "Setup project structure"
|
|
69
|
+
depends_on: []
|
|
70
|
+
complexity: LOW
|
|
71
|
+
spec_file: EXECUTION/task-001.md
|
|
72
|
+
subtask_prompt: |
|
|
73
|
+
<prompt completamente self-contained>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Loop de execução
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
1. dare execute --next
|
|
80
|
+
↓ imprime prompts das tasks ready (rank atual)
|
|
81
|
+
2. Para cada prompt:
|
|
82
|
+
- leia spec_file se houver
|
|
83
|
+
- implemente
|
|
84
|
+
3. dare execute --complete <id> --output "<resumo + arquivos tocados>"
|
|
85
|
+
↓ o CLI roda o RALPH LOOP automático (build → test → lint)
|
|
86
|
+
↓ se passar: task vira DONE
|
|
87
|
+
↓ se falhar: task vira FAILED com stderr capturado; corrija e retente
|
|
88
|
+
4. Volte ao passo 1 até não haver mais tasks ready
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
> **Ralph Loop é AUTOMÁTICO e OBRIGATÓRIO.** Você NÃO roda build/test/lint
|
|
92
|
+
> manualmente — o `dare execute --complete` faz isso. Se algum gate falhar,
|
|
93
|
+
> a task NÃO vai para DONE; vai para FAILED. Corrija e retente.
|
|
94
|
+
>
|
|
95
|
+
> **Não existe flag para pular o Ralph Loop.** Toda task passa pelos 3 gates
|
|
96
|
+
> da stack do projeto.
|
|
97
|
+
|
|
98
|
+
Comandos úteis:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
dare execute --next # próximas tasks ready
|
|
102
|
+
dare execute --complete task-001 --output "..." # marca DONE
|
|
103
|
+
dare execute --fail task-002 --reason "..." # marca FAILED + cascade
|
|
104
|
+
dare execute --reset task-002 # volta para PENDING (retry)
|
|
105
|
+
dare execute --status # snapshot do canvas
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Regras inegociáveis ao construir o DAG
|
|
109
|
+
|
|
110
|
+
### 1. `id` em kebab-case e único
|
|
111
|
+
`task-001`, `auth-jwt`, `db-migrations`.
|
|
112
|
+
|
|
113
|
+
### 2. `depends_on` mínimo
|
|
114
|
+
Só adicione dependência quando a filha **literalmente** precisa do output.
|
|
115
|
+
|
|
116
|
+
| Cenário | Dep? |
|
|
117
|
+
|---------|------|
|
|
118
|
+
| B precisa do arquivo de A | sim |
|
|
119
|
+
| B precisa de decisão de A | sim |
|
|
120
|
+
| B é independente de A | não |
|
|
121
|
+
| Testes/Docs do módulo X | sim — depende da implementação |
|
|
122
|
+
| Pesquisa sem efeito colateral | não |
|
|
123
|
+
|
|
124
|
+
Cadeia linear é antipattern. Reanalise.
|
|
125
|
+
|
|
126
|
+
### 3. `complexity` é sinal de cuidado, não custo
|
|
127
|
+
| Nível | Uso |
|
|
128
|
+
|-------|-----|
|
|
129
|
+
| `LOW` | Setup, scaffolding, docs simples |
|
|
130
|
+
| `MED` | Implementação direta, refactors, testes unitários |
|
|
131
|
+
| `HIGH` | Lógica crítica, segurança, integrações |
|
|
132
|
+
|
|
133
|
+
### 4. `subtask_prompt` self-contained
|
|
134
|
+
Receberá `subtask_prompt` + snippets de até 2000 chars dos outputs dos pais.
|
|
135
|
+
Não vale "como combinamos". Tudo no prompt ou via pais.
|
|
136
|
+
|
|
137
|
+
### 5. Output cap 4000 chars
|
|
138
|
+
Se gerar muito, escreva em arquivo e faça o `--output` ser resumo + caminhos.
|
|
139
|
+
|
|
140
|
+
### 6. Spec por task em `EXECUTION/task-<id>.md`
|
|
141
|
+
Spec detalhada com objetivo, arquivos, validation gates, testes, segurança.
|
|
142
|
+
|
|
143
|
+
## Os 3 artefatos sempre juntos
|
|
144
|
+
|
|
145
|
+
| Arquivo | Para quê |
|
|
146
|
+
|---------|----------|
|
|
147
|
+
| `DARE/TASKS.md` | Visão humana com tabela e progresso |
|
|
148
|
+
| `DARE/dare-dag.yaml` | Grafo executável |
|
|
149
|
+
| `DARE/EXECUTION/task-<id>.md` | Spec por task |
|
|
150
|
+
|
|
151
|
+
Os três precisam ser consistentes: mesmos `id`s, `depends_on`, `complexity`.
|
|
152
|
+
|
|
153
|
+
## Canvas ao vivo (`DARE/.canvas.md`)
|
|
154
|
+
|
|
155
|
+
O CLI reescreve a cada `--complete`/`--fail`:
|
|
156
|
+
|
|
157
|
+
| Status | Significado |
|
|
158
|
+
|--------|-------------|
|
|
159
|
+
| `PENDING` ⏳ | aguardando rank |
|
|
160
|
+
| `RUNNING` 🔄 | você está executando |
|
|
161
|
+
| `DONE` ✅ | concluído |
|
|
162
|
+
| `FAILED` ❌ | erro durante execução |
|
|
163
|
+
| `SKIPPED` ⏭️ | dependência falhou — automático, não toque |
|
|
164
|
+
|
|
165
|
+
## Erros comuns
|
|
166
|
+
|
|
167
|
+
| Erro | Correção |
|
|
168
|
+
|------|----------|
|
|
169
|
+
| Ciclo | Retire a aresta cíclica |
|
|
170
|
+
| `id` duplicado | Renomeie |
|
|
171
|
+
| `depends_on` inexistente | Corrija ou adicione a task |
|
|
172
|
+
| Tudo em rank 0 | Adicione deps reais quando há contenção |
|
|
173
|
+
| Cadeia linear | Reveja se as deps são necessárias |
|
|
174
|
+
|
|
175
|
+
## Antipatterns que você NÃO deve criar
|
|
176
|
+
|
|
177
|
+
- ❌ Task **"Ralph Loop final"** / **"Hardening"** / **"QA"** — gate é por task
|
|
178
|
+
- ❌ Tests com `assertTrue(true)` — o gate `test` roda de verdade
|
|
179
|
+
- ❌ "Setup project structure" antes de containerizar o app
|
|
180
|
+
|
|
181
|
+
## Ordem recomendada das primeiras tasks
|
|
182
|
+
|
|
183
|
+
1. **Containerize app** (Dockerfile + docker-compose + healthcheck)
|
|
184
|
+
2. **Database schema** (migrations + factories)
|
|
185
|
+
3. **Core endpoints / componentes**
|
|
186
|
+
4. **Auth / autorização**
|
|
187
|
+
5. **Test suite real** (assertions de verdade)
|
|
188
|
+
|
|
189
|
+
A task de container/compose pode estar em outra ordem para projetos sem
|
|
190
|
+
DB ou em monorepo já containerizado. Mas quase sempre é uma das primeiras.
|
|
191
|
+
|
|
192
|
+
## Checklist antes de aprovar
|
|
193
|
+
|
|
194
|
+
- [ ] Pelo menos 2 tasks no rank 0
|
|
195
|
+
- [ ] `subtask_prompt` executável sem contexto adicional
|
|
196
|
+
- [ ] Tasks de teste/doc dependem da implementação correspondente
|
|
197
|
+
- [ ] `complexity` reflete o esforço real
|
|
198
|
+
- [ ] `id` em kebab-case e único
|
|
199
|
+
- [ ] Sem ciclos
|
|
200
|
+
- [ ] **Sem task de "Ralph Loop final"** — gate é por task
|
|
201
|
+
- [ ] **Tests com assertions reais** — placeholder quebra o gate
|
|
202
|
+
- [ ] Container/runtime resolvido cedo
|
|
203
|
+
- [ ] Os 3 artefatos consistentes
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dare-dna
|
|
3
|
+
description: Camada semântica da extração de DNA do projeto. Roda depois do comando `dare dna` e transforma os fatos de convenção em regras acionáveis no DARE/PROJECT-DNA.md, para o agente seguir o padrão da casa em projetos legados.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# DARE DNA Skill — Convenções do Projeto (brownfield)
|
|
7
|
+
|
|
8
|
+
Você é o agente que transforma os **fatos de convenção** de um codebase legado em **regras acionáveis**.
|
|
9
|
+
Esta skill é a camada **semântica**: roda **depois** do comando `dare dna`, que já varreu o código e
|
|
10
|
+
extraiu os fatos. Sua função é redigir o "como esse codebase faz as coisas" que uma nova feature deve
|
|
11
|
+
respeitar — para o agente seguir o padrão da casa, não o default genérico do DARE.
|
|
12
|
+
|
|
13
|
+
> Pré-requisito: o comando `dare dna` precisa ter rodado antes (gera `DARE/PROJECT-DNA.md` e
|
|
14
|
+
> `DARE/dna-facts.json`). Se não existirem, peça ao usuário para rodar `dare dna` primeiro.
|
|
15
|
+
|
|
16
|
+
## Quando usar esta skill
|
|
17
|
+
|
|
18
|
+
- Projeto **legado** que vai adotar o DARE para novas features, sem reescrever o existente.
|
|
19
|
+
- Acabou de rodar `dare dna` e o `PROJECT-DNA.md` tem seções `<!-- AGENT -->` em aberto.
|
|
20
|
+
|
|
21
|
+
## Passo a passo
|
|
22
|
+
|
|
23
|
+
### 1. Carregar os fatos (não re-varrer tudo)
|
|
24
|
+
- Leia `DARE/dna-facts.json` — fonte determinística (tooling, naming, camadas, testes, libs, commits).
|
|
25
|
+
- Abra **2-5 arquivos representativos por camada** (controller, service, model, teste) para inferir o
|
|
26
|
+
que o CLI não detecta (tratamento de erro, validação, estilo de teste).
|
|
27
|
+
|
|
28
|
+
### 2. Preencher `DARE/PROJECT-DNA.md`
|
|
29
|
+
Substitua cada `<!-- AGENT: ... -->`:
|
|
30
|
+
- **Convenções de Nomenclatura** — confirme o estilo + exceções.
|
|
31
|
+
- **Arquitetura & Camadas** — nomeie o padrão (MVC/Layered/Hexagonal) + regras de onde cada coisa mora.
|
|
32
|
+
- **Padrões de Teste** — onde ficam, naming, assertions reais, mocks/fixtures.
|
|
33
|
+
- **Tratamento de Erros & Validação** — como erros são tratados e inputs validados (exemplos reais).
|
|
34
|
+
- **Regras de Ouro** — o que SEMPRE e NUNCA fazer neste codebase.
|
|
35
|
+
- **⚠️ Incertezas** — convenções ambíguas que o humano precisa decidir.
|
|
36
|
+
|
|
37
|
+
**Não toque** nos fatos determinísticos do CLI (tooling, tabela de naming, libs).
|
|
38
|
+
|
|
39
|
+
### 3. Apresentar ao usuário
|
|
40
|
+
Resumo: arquitetura nomeada, regras de ouro, inconsistências. O `PROJECT-DNA.md` vira referência para
|
|
41
|
+
`dare-feature-design` e `dare-execute` respeitarem o legado.
|
|
42
|
+
|
|
43
|
+
## Regras de ouro
|
|
44
|
+
|
|
45
|
+
1. **Descritivo, não aspiracional** — como o código É, não como deveria ser.
|
|
46
|
+
2. **Exemplos reais** — cite arquivos/trechos do projeto.
|
|
47
|
+
3. **Sinalize inconsistência** — não invente um padrão único onde o legado mistura.
|
|
48
|
+
4. **Não re-varra** — os fatos já estão em `dna-facts.json`.
|
|
49
|
+
5. **Preserve o determinístico** — não reescreva tooling/naming/libs do CLI.
|
|
50
|
+
|
|
51
|
+
## Antipatterns
|
|
52
|
+
|
|
53
|
+
| AP | Antipattern | Por quê |
|
|
54
|
+
|---|---|---|
|
|
55
|
+
| AP-01 | Documentar o padrão "ideal" em vez do real | Código gerado sai fora do estilo do legado |
|
|
56
|
+
| AP-02 | Forçar padrão único onde o legado é inconsistente | Esconde a realidade |
|
|
57
|
+
| AP-03 | Reescrever os fatos determinísticos do CLI | Quebra a fonte de verdade |
|
|
58
|
+
| AP-04 | Regras vagas ("siga boas práticas") | Inúteis — o valor está no específico |
|
|
59
|
+
| AP-05 | Ignorar os testes existentes | Nova feature nasce inconsistente |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
Skill MIT — parte do DARE Method. DNA do projeto (brownfield). Pareia com o comando `dare dna`.
|