@dewtech/dare-cli 3.3.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +764 -764
- package/dist/__tests__/confidence.test.js +13 -13
- package/dist/__tests__/dag-converter.test.js +56 -56
- package/dist/__tests__/mcp-server/server.test.js +3 -16
- package/dist/__tests__/mcp-server/server.test.js.map +1 -1
- package/dist/__tests__/project-generator.test.js +2 -2
- package/dist/__tests__/project-generator.test.js.map +1 -1
- package/dist/__tests__/refine.test.js +49 -49
- package/dist/__tests__/reverse-collection.test.js +6 -6
- package/dist/__tests__/review.test.js +38 -38
- package/dist/__tests__/security-hardening.test.d.ts +2 -0
- package/dist/__tests__/security-hardening.test.d.ts.map +1 -0
- package/dist/__tests__/security-hardening.test.js +101 -0
- package/dist/__tests__/security-hardening.test.js.map +1 -0
- package/dist/__tests__/validate.test.js +65 -65
- package/dist/bin/dare.js +0 -0
- package/dist/commands/__tests__/init-validation.test.d.ts +2 -0
- package/dist/commands/__tests__/init-validation.test.d.ts.map +1 -0
- package/dist/commands/__tests__/init-validation.test.js +81 -0
- package/dist/commands/__tests__/init-validation.test.js.map +1 -0
- package/dist/commands/__tests__/init.integration.spec.js +6 -4
- package/dist/commands/__tests__/init.integration.spec.js.map +1 -1
- package/dist/commands/__tests__/init.spec.d.ts +2 -0
- package/dist/commands/__tests__/init.spec.d.ts.map +1 -0
- package/dist/commands/__tests__/init.spec.js +88 -0
- package/dist/commands/__tests__/init.spec.js.map +1 -0
- package/dist/commands/blueprint.js +122 -122
- package/dist/commands/design.js +20 -20
- package/dist/commands/init-validation.d.ts +22 -0
- package/dist/commands/init-validation.d.ts.map +1 -0
- package/dist/commands/init-validation.js +54 -0
- package/dist/commands/init-validation.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +26 -10
- package/dist/commands/init.js.map +1 -1
- package/dist/graphrag/graph-rag.js +24 -24
- package/dist/mcp-server/__tests__/auth.test.d.ts +2 -0
- package/dist/mcp-server/__tests__/auth.test.d.ts.map +1 -0
- package/dist/mcp-server/__tests__/auth.test.js +72 -0
- package/dist/mcp-server/__tests__/auth.test.js.map +1 -0
- package/dist/mcp-server/__tests__/boot-config.test.d.ts +2 -0
- package/dist/mcp-server/__tests__/boot-config.test.d.ts.map +1 -0
- package/dist/mcp-server/__tests__/boot-config.test.js +29 -0
- package/dist/mcp-server/__tests__/boot-config.test.js.map +1 -0
- package/dist/mcp-server/__tests__/error-sanitize.test.d.ts +2 -0
- package/dist/mcp-server/__tests__/error-sanitize.test.d.ts.map +1 -0
- package/dist/mcp-server/__tests__/error-sanitize.test.js +66 -0
- package/dist/mcp-server/__tests__/error-sanitize.test.js.map +1 -0
- package/dist/mcp-server/__tests__/path-confinement.test.d.ts +2 -0
- package/dist/mcp-server/__tests__/path-confinement.test.d.ts.map +1 -0
- package/dist/mcp-server/__tests__/path-confinement.test.js +135 -0
- package/dist/mcp-server/__tests__/path-confinement.test.js.map +1 -0
- package/dist/mcp-server/bin/server.js +18 -6
- package/dist/mcp-server/bin/server.js.map +1 -1
- package/dist/mcp-server/boot-config.d.ts +6 -0
- package/dist/mcp-server/boot-config.d.ts.map +1 -0
- package/dist/mcp-server/boot-config.js +17 -0
- package/dist/mcp-server/boot-config.js.map +1 -0
- package/dist/mcp-server/middleware/auth.d.ts +10 -0
- package/dist/mcp-server/middleware/auth.d.ts.map +1 -0
- package/dist/mcp-server/middleware/auth.js +44 -0
- package/dist/mcp-server/middleware/auth.js.map +1 -0
- package/dist/mcp-server/middleware/cors.d.ts +6 -0
- package/dist/mcp-server/middleware/cors.d.ts.map +1 -0
- package/dist/mcp-server/middleware/cors.js +30 -0
- package/dist/mcp-server/middleware/cors.js.map +1 -0
- package/dist/mcp-server/middleware/error-handler.d.ts +11 -0
- package/dist/mcp-server/middleware/error-handler.d.ts.map +1 -0
- package/dist/mcp-server/middleware/error-handler.js +14 -0
- package/dist/mcp-server/middleware/error-handler.js.map +1 -0
- package/dist/mcp-server/server.d.ts +7 -2
- package/dist/mcp-server/server.d.ts.map +1 -1
- package/dist/mcp-server/server.js +185 -105
- package/dist/mcp-server/server.js.map +1 -1
- package/dist/skills/registry-mock.json +109 -109
- package/dist/skills/tests/manifest.spec.js +20 -20
- package/dist/stacks/__tests__/dna-emitter.spec.js +6 -6
- package/dist/stacks/dna-emitter.js +69 -69
- package/dist/stacks/ruby-rails-8/scaffold.js +15 -15
- package/dist/utils/project-generator.d.ts.map +1 -1
- package/dist/utils/project-generator.js +254 -252
- package/dist/utils/project-generator.js.map +1 -1
- package/dist/utils/stack-bootstrap.js +371 -371
- package/dist/utils/templates.js +394 -394
- package/dist/verification/__tests__/anti-tamper.test.js +13 -13
- package/package.json +96 -93
- package/templates/DARE-dag-example.yaml +280 -280
- package/templates/UPDATE-MANIFEST.json +68 -68
- package/templates/backend/node-nestjs/.env.example +9 -9
- package/templates/backend/node-nestjs/nest-cli.json +8 -8
- package/templates/backend/node-nestjs/package.json +50 -50
- package/templates/backend/node-nestjs/src/app.controller.ts +12 -12
- package/templates/backend/node-nestjs/src/app.module.ts +15 -15
- package/templates/backend/node-nestjs/src/app.service.ts +8 -8
- package/templates/backend/node-nestjs/src/main.ts +24 -24
- package/templates/backend/node-nestjs/tsconfig.json +21 -21
- package/templates/backend/php-laravel/.env.example +22 -22
- package/templates/backend/php-laravel/app/Http/Controllers/HealthController.php +15 -15
- package/templates/backend/php-laravel/composer.json +40 -40
- package/templates/backend/python-fastapi/.env.example +4 -4
- package/templates/backend/python-fastapi/app/api/router.py +8 -8
- package/templates/backend/python-fastapi/app/core/config.py +20 -20
- package/templates/backend/python-fastapi/main.py +35 -35
- package/templates/backend/python-fastapi/requirements.txt +13 -13
- package/templates/backend/rust-axum/.env.example +3 -3
- package/templates/backend/rust-axum/Cargo.toml +23 -23
- package/templates/backend/rust-axum/src/errors.rs +30 -30
- package/templates/backend/rust-axum/src/main.rs +32 -32
- package/templates/backend/rust-axum/src/routes.rs +6 -6
- package/templates/frontend/leptos-csr/.cargo/config.toml +2 -2
- package/templates/frontend/leptos-csr/Cargo.toml +16 -16
- package/templates/frontend/leptos-csr/Trunk.toml +10 -10
- package/templates/frontend/leptos-csr/index.html +11 -11
- package/templates/frontend/leptos-csr/src/lib.rs +20 -20
- package/templates/frontend/leptos-csr/style/main.scss +19 -19
- package/templates/frontend/leptos-fullstack/.cargo/config.toml +4 -4
- package/templates/frontend/leptos-fullstack/Cargo.toml +56 -56
- package/templates/frontend/leptos-fullstack/src/app.rs +49 -49
- package/templates/frontend/leptos-fullstack/src/lib.rs +9 -9
- package/templates/frontend/leptos-fullstack/src/main.rs +29 -29
- package/templates/frontend/leptos-fullstack/style/main.scss +19 -19
- package/templates/frontend/react/index.html +12 -12
- package/templates/frontend/react/package.json +35 -35
- package/templates/frontend/react/src/App.tsx +25 -25
- package/templates/frontend/react/src/main.tsx +9 -9
- package/templates/frontend/vue/package.json +32 -32
- package/templates/frontend/vue/src/App.vue +7 -7
- package/templates/frontend/vue/src/main.ts +10 -10
- package/templates/frontend/vue/src/router/index.ts +14 -14
- package/templates/frontend/vue/src/views/HomeView.vue +6 -6
- package/templates/hooks/pre-commit-dare-validate +24 -24
- package/templates/ide/antigravity/.agents/skills/dare-ax/SKILL.md +152 -152
- package/templates/ide/antigravity/.agents/skills/dare-bench/SKILL.md +21 -21
- package/templates/ide/antigravity/.agents/skills/dare-blueprint/SKILL.md +368 -368
- package/templates/ide/antigravity/.agents/skills/dare-bootstrap/SKILL.md +32 -32
- package/templates/ide/antigravity/.agents/skills/dare-bugfix-design/SKILL.md +76 -76
- package/templates/ide/antigravity/.agents/skills/dare-dag/SKILL.md +32 -32
- package/templates/ide/antigravity/.agents/skills/dare-dag-build/SKILL.md +154 -154
- package/templates/ide/antigravity/.agents/skills/dare-dag-run/SKILL.md +130 -130
- package/templates/ide/antigravity/.agents/skills/dare-dag-runner/SKILL.md +203 -203
- package/templates/ide/antigravity/.agents/skills/dare-design/SKILL.md +180 -180
- package/templates/ide/antigravity/.agents/skills/dare-discover/SKILL.md +33 -33
- package/templates/ide/antigravity/.agents/skills/dare-dna/SKILL.md +63 -63
- package/templates/ide/antigravity/.agents/skills/dare-docker/SKILL.md +315 -315
- package/templates/ide/antigravity/.agents/skills/dare-execute/SKILL.md +264 -264
- package/templates/ide/antigravity/.agents/skills/dare-feature-design/SKILL.md +74 -74
- package/templates/ide/antigravity/.agents/skills/dare-frontend-design/SKILL.md +192 -192
- package/templates/ide/antigravity/.agents/skills/dare-graph/SKILL.md +35 -35
- package/templates/ide/antigravity/.agents/skills/dare-info/SKILL.md +31 -31
- package/templates/ide/antigravity/.agents/skills/dare-init/SKILL.md +35 -35
- package/templates/ide/antigravity/.agents/skills/dare-laravel-api/SKILL.md +337 -337
- package/templates/ide/antigravity/.agents/skills/dare-layered-design/SKILL.md +166 -166
- package/templates/ide/antigravity/.agents/skills/dare-llm-integration/SKILL.md +217 -217
- package/templates/ide/antigravity/.agents/skills/dare-migrate/SKILL.md +61 -61
- package/templates/ide/antigravity/.agents/skills/dare-quality-telemetry/SKILL.md +187 -187
- package/templates/ide/antigravity/.agents/skills/dare-realtime/SKILL.md +217 -217
- package/templates/ide/antigravity/.agents/skills/dare-refine/SKILL.md +114 -114
- package/templates/ide/antigravity/.agents/skills/dare-reverse/SKILL.md +108 -108
- package/templates/ide/antigravity/.agents/skills/dare-review/SKILL.md +111 -111
- package/templates/ide/antigravity/.agents/skills/dare-rust-leptos/SKILL.md +263 -263
- package/templates/ide/antigravity/.agents/skills/dare-rust-workspace/SKILL.md +275 -275
- package/templates/ide/antigravity/.agents/skills/dare-security/SKILL.md +274 -274
- package/templates/ide/antigravity/.agents/skills/dare-skill/SKILL.md +35 -35
- package/templates/ide/antigravity/.agents/skills/dare-tasks/SKILL.md +265 -265
- package/templates/ide/antigravity/.agents/skills/dare-telemetry/SKILL.md +188 -188
- package/templates/ide/antigravity/.agents/skills/dare-update/SKILL.md +33 -33
- package/templates/ide/antigravity/.agents/skills/dare-validate/SKILL.md +33 -33
- package/templates/ide/antigravity/.agents/skills/dare-welcome/SKILL.md +30 -30
- package/templates/ide/antigravity/.agents/skills/skill-fastapi-api/SKILL.md +343 -343
- package/templates/ide/antigravity/.agents/skills/skill-go-gin-api/SKILL.md +377 -377
- package/templates/ide/antigravity/.agents/skills/skill-mcp-server/SKILL.md +382 -382
- package/templates/ide/antigravity/.agents/skills/skill-nestjs-api/SKILL.md +326 -326
- package/templates/ide/antigravity/.agents/skills/skill-rails-api/SKILL.md +393 -393
- package/templates/ide/antigravity/templates/BLUEPRINT-template.md +193 -193
- package/templates/ide/antigravity/templates/DESIGN-template.md +129 -129
- package/templates/ide/antigravity/templates/TASK-SPEC-template.md +141 -141
- package/templates/ide/antigravity/templates/TASKS-template.md +26 -26
- package/templates/ide/antigravity/templates/TELEMETRY-template.md +125 -125
- package/templates/ide/claude/.claude/commands/dare-ax.md +131 -131
- package/templates/ide/claude/.claude/commands/dare-bench.md +18 -18
- package/templates/ide/claude/.claude/commands/dare-blueprint.md +134 -134
- package/templates/ide/claude/.claude/commands/dare-bootstrap.md +27 -27
- package/templates/ide/claude/.claude/commands/dare-bugfix-design.md +119 -119
- package/templates/ide/claude/.claude/commands/dare-dag-build.md +151 -151
- package/templates/ide/claude/.claude/commands/dare-dag-run.md +109 -109
- package/templates/ide/claude/.claude/commands/dare-dag-runner.md +117 -117
- package/templates/ide/claude/.claude/commands/dare-dag-viz.md +197 -197
- package/templates/ide/claude/.claude/commands/dare-dag.md +27 -27
- package/templates/ide/claude/.claude/commands/dare-design.md +69 -69
- package/templates/ide/claude/.claude/commands/dare-discover.md +28 -28
- package/templates/ide/claude/.claude/commands/dare-dna.md +75 -75
- package/templates/ide/claude/.claude/commands/dare-docker.md +207 -207
- package/templates/ide/claude/.claude/commands/dare-execute.md +152 -152
- package/templates/ide/claude/.claude/commands/dare-feature-design.md +147 -147
- package/templates/ide/claude/.claude/commands/dare-frontend-design.md +149 -149
- package/templates/ide/claude/.claude/commands/dare-graph.md +30 -30
- package/templates/ide/claude/.claude/commands/dare-info.md +26 -26
- package/templates/ide/claude/.claude/commands/dare-init.md +30 -30
- package/templates/ide/claude/.claude/commands/dare-laravel-api.md +211 -211
- package/templates/ide/claude/.claude/commands/dare-layered-design.md +124 -124
- package/templates/ide/claude/.claude/commands/dare-llm-integration.md +148 -148
- package/templates/ide/claude/.claude/commands/dare-migrate.md +72 -72
- package/templates/ide/claude/.claude/commands/dare-quality-telemetry.md +166 -166
- package/templates/ide/claude/.claude/commands/dare-realtime.md +159 -159
- package/templates/ide/claude/.claude/commands/dare-refine.md +145 -145
- package/templates/ide/claude/.claude/commands/dare-reverse.md +139 -139
- package/templates/ide/claude/.claude/commands/dare-review.md +113 -113
- package/templates/ide/claude/.claude/commands/dare-rust-leptos.md +269 -269
- package/templates/ide/claude/.claude/commands/dare-rust-workspace.md +209 -209
- package/templates/ide/claude/.claude/commands/dare-security.md +232 -232
- package/templates/ide/claude/.claude/commands/dare-skill.md +30 -30
- package/templates/ide/claude/.claude/commands/dare-tasks.md +70 -70
- package/templates/ide/claude/.claude/commands/dare-telemetry.md +132 -132
- package/templates/ide/claude/.claude/commands/dare-update.md +28 -28
- package/templates/ide/claude/.claude/commands/dare-validate.md +28 -28
- package/templates/ide/claude/.claude/commands/dare-welcome.md +25 -25
- package/templates/ide/claude/.claude/commands/skill-fastapi-api.md +205 -205
- package/templates/ide/claude/.claude/commands/skill-go-gin-api.md +232 -232
- package/templates/ide/claude/.claude/commands/skill-mcp-server.md +228 -228
- package/templates/ide/claude/.claude/commands/skill-nestjs-api.md +210 -210
- package/templates/ide/claude/.claude/commands/skill-rails-api.md +236 -236
- package/templates/ide/claude/.claude/settings.example.json +35 -35
- package/templates/ide/claude/CLAUDE.md +146 -146
- package/templates/ide/claude/templates/BLUEPRINT-template.md +193 -193
- package/templates/ide/claude/templates/DESIGN-template.md +129 -129
- package/templates/ide/claude/templates/TASK-SPEC-template.md +141 -141
- package/templates/ide/claude/templates/TASKS-template.md +26 -26
- package/templates/ide/claude/templates/TELEMETRY-template.md +125 -125
- package/templates/ide/cursor/.cursor/commands/dare-bench.md +18 -18
- package/templates/ide/cursor/.cursor/commands/dare-blueprint.md +86 -86
- package/templates/ide/cursor/.cursor/commands/dare-bootstrap.md +27 -27
- package/templates/ide/cursor/.cursor/commands/dare-bugfix-design.md +64 -64
- package/templates/ide/cursor/.cursor/commands/dare-dag-run.md +110 -110
- package/templates/ide/cursor/.cursor/commands/dare-dag-viz.md +139 -139
- package/templates/ide/cursor/.cursor/commands/dare-dag.md +27 -27
- package/templates/ide/cursor/.cursor/commands/dare-design.md +35 -35
- package/templates/ide/cursor/.cursor/commands/dare-discover.md +28 -28
- package/templates/ide/cursor/.cursor/commands/dare-dna.md +75 -75
- package/templates/ide/cursor/.cursor/commands/dare-docker-compose.md +18 -18
- package/templates/ide/cursor/.cursor/commands/dare-dockerfile.md +17 -17
- package/templates/ide/cursor/.cursor/commands/dare-execute.md +19 -19
- package/templates/ide/cursor/.cursor/commands/dare-feature-design.md +64 -64
- package/templates/ide/cursor/.cursor/commands/dare-graph.md +30 -30
- package/templates/ide/cursor/.cursor/commands/dare-info.md +26 -26
- package/templates/ide/cursor/.cursor/commands/dare-init.md +30 -30
- package/templates/ide/cursor/.cursor/commands/dare-migrate.md +72 -72
- package/templates/ide/cursor/.cursor/commands/dare-refine.md +107 -107
- package/templates/ide/cursor/.cursor/commands/dare-reverse.md +139 -139
- package/templates/ide/cursor/.cursor/commands/dare-review.md +91 -91
- package/templates/ide/cursor/.cursor/commands/dare-skill.md +30 -30
- package/templates/ide/cursor/.cursor/commands/dare-tasks.md +184 -184
- package/templates/ide/cursor/.cursor/commands/dare-telemetry.md +42 -42
- package/templates/ide/cursor/.cursor/commands/dare-update.md +28 -28
- package/templates/ide/cursor/.cursor/commands/dare-validate.md +28 -28
- package/templates/ide/cursor/.cursor/commands/dare-welcome.md +25 -25
- package/templates/ide/cursor/.cursor/rules/skill-ax.mdc +263 -263
- package/templates/ide/cursor/.cursor/rules/skill-bugfix-design.mdc +51 -51
- package/templates/ide/cursor/.cursor/rules/skill-dag-build.mdc +173 -173
- package/templates/ide/cursor/.cursor/rules/skill-dag-run.mdc +134 -134
- package/templates/ide/cursor/.cursor/rules/skill-dag-runner.mdc +221 -221
- package/templates/ide/cursor/.cursor/rules/skill-dna.mdc +63 -63
- package/templates/ide/cursor/.cursor/rules/skill-docker.mdc +33 -33
- package/templates/ide/cursor/.cursor/rules/skill-fastapi-api.mdc +352 -352
- package/templates/ide/cursor/.cursor/rules/skill-feature-design.mdc +43 -43
- package/templates/ide/cursor/.cursor/rules/skill-frontend-design.mdc +244 -244
- package/templates/ide/cursor/.cursor/rules/skill-go-gin-api.mdc +371 -371
- package/templates/ide/cursor/.cursor/rules/skill-laravel-api.mdc +44 -44
- package/templates/ide/cursor/.cursor/rules/skill-layered-design.mdc +266 -266
- package/templates/ide/cursor/.cursor/rules/skill-llm-integration.mdc +295 -295
- package/templates/ide/cursor/.cursor/rules/skill-mcp-server.mdc +367 -367
- package/templates/ide/cursor/.cursor/rules/skill-migrate.mdc +58 -58
- package/templates/ide/cursor/.cursor/rules/skill-nestjs-api.mdc +346 -346
- package/templates/ide/cursor/.cursor/rules/skill-quality-telemetry.mdc +248 -248
- package/templates/ide/cursor/.cursor/rules/skill-rails-api.mdc +400 -400
- package/templates/ide/cursor/.cursor/rules/skill-realtime.mdc +262 -262
- package/templates/ide/cursor/.cursor/rules/skill-reverse.mdc +107 -107
- package/templates/ide/cursor/.cursor/rules/skill-rust-leptos.mdc +281 -281
- package/templates/ide/cursor/.cursor/rules/skill-rust-workspace.mdc +312 -312
- package/templates/ide/cursor/.cursor/rules/skill-security.mdc +245 -245
- package/templates/ide/cursor/.cursor/rules/skill-telemetry.mdc +156 -156
- package/templates/ide/cursor/templates/BLUEPRINT-template.md +193 -193
- package/templates/ide/cursor/templates/DESIGN-template.md +129 -129
- package/templates/ide/cursor/templates/TASK-SPEC-template.md +141 -141
- package/templates/ide/cursor/templates/TASKS-template.md +26 -26
- package/templates/ide/cursor/templates/TELEMETRY-template.md +125 -125
- package/templates/shared/docker-compose.yml +41 -41
- package/templates/stacks/go-gin/.dare/skills.yml +11 -11
- package/templates/stacks/go-gin/.env.example +24 -24
- package/templates/stacks/go-gin/.github/workflows/dare-ci.yml +42 -42
- package/templates/stacks/go-gin/README.md.tpl +38 -38
- package/templates/stacks/go-gin/cmd/server/main.go.tpl +78 -78
- package/templates/stacks/go-gin/db/migrations/0001_create_users.down.sql +2 -2
- package/templates/stacks/go-gin/db/migrations/0001_create_users.up.sql +12 -12
- package/templates/stacks/go-gin/db/queries/users.sql +23 -23
- package/templates/stacks/go-gin/gitignore +7 -7
- package/templates/stacks/go-gin/go.mod.tpl +17 -17
- package/templates/stacks/go-gin/internal/config/config.go +41 -41
- package/templates/stacks/go-gin/internal/db/postgres.go.tpl +25 -25
- package/templates/stacks/go-gin/internal/handler/auth_handler.go.tpl +72 -72
- package/templates/stacks/go-gin/internal/handler/users_handler.go.tpl +72 -72
- package/templates/stacks/go-gin/internal/handler/ws_handler.go +37 -37
- package/templates/stacks/go-gin/internal/llm/dummy.go +14 -14
- package/templates/stacks/go-gin/internal/llm/provider.go +8 -8
- package/templates/stacks/go-gin/internal/middleware/jwt.go.tpl +58 -58
- package/templates/stacks/go-gin/internal/middleware/rate_limit.go +55 -55
- package/templates/stacks/go-gin/internal/model/user.go +17 -17
- package/templates/stacks/go-gin/internal/repository/users_repository.go.tpl +79 -79
- package/templates/stacks/go-gin/internal/service/auth_service.go.tpl +55 -55
- package/templates/stacks/go-gin/internal/service/users_service.go.tpl +53 -53
- package/templates/stacks/go-gin/llms.txt.tpl +54 -54
- package/templates/stacks/go-gin/openapi.json.tpl +46 -46
- package/templates/stacks/go-gin/sqlc.yaml +14 -14
- package/templates/stacks/go-gin/tests/smoke_test.go.tpl +22 -22
- package/templates/stacks/go-stdlib/.dare/skills.yml +11 -11
- package/templates/stacks/go-stdlib/.env.example +24 -24
- package/templates/stacks/go-stdlib/.github/workflows/dare-ci.yml +42 -42
- package/templates/stacks/go-stdlib/README.md.tpl +41 -41
- package/templates/stacks/go-stdlib/cmd/server/main.go.tpl +82 -82
- package/templates/stacks/go-stdlib/db/migrations/0001_create_users.down.sql +2 -2
- package/templates/stacks/go-stdlib/db/migrations/0001_create_users.up.sql +12 -12
- package/templates/stacks/go-stdlib/db/queries/users.sql +23 -23
- package/templates/stacks/go-stdlib/gitignore +6 -6
- package/templates/stacks/go-stdlib/go.mod.tpl +15 -15
- package/templates/stacks/go-stdlib/internal/config/config.go +41 -41
- package/templates/stacks/go-stdlib/internal/db/postgres.go.tpl +24 -24
- package/templates/stacks/go-stdlib/internal/handler/auth_handler.go.tpl +71 -71
- package/templates/stacks/go-stdlib/internal/handler/users_handler.go.tpl +84 -84
- package/templates/stacks/go-stdlib/internal/handler/ws_handler.go +36 -36
- package/templates/stacks/go-stdlib/internal/httpx/json.go +32 -32
- package/templates/stacks/go-stdlib/internal/llm/dummy.go +14 -14
- package/templates/stacks/go-stdlib/internal/llm/provider.go +8 -8
- package/templates/stacks/go-stdlib/internal/middleware/chain.go +21 -21
- package/templates/stacks/go-stdlib/internal/middleware/cors.go +27 -27
- package/templates/stacks/go-stdlib/internal/middleware/jwt.go.tpl +51 -51
- package/templates/stacks/go-stdlib/internal/middleware/rate_limit.go +81 -81
- package/templates/stacks/go-stdlib/internal/model/user.go +17 -17
- package/templates/stacks/go-stdlib/internal/repository/users_repository.go.tpl +75 -75
- package/templates/stacks/go-stdlib/internal/service/auth_service.go.tpl +55 -55
- package/templates/stacks/go-stdlib/internal/service/users_service.go.tpl +53 -53
- package/templates/stacks/go-stdlib/llms.txt.tpl +60 -60
- package/templates/stacks/go-stdlib/openapi.json.tpl +46 -46
- package/templates/stacks/go-stdlib/sqlc.yaml +14 -14
- package/templates/stacks/go-stdlib/tests/smoke_test.go.tpl +45 -45
- package/templates/stacks/mcp-go/.dare/skills.yml +8 -8
- package/templates/stacks/mcp-go/.env.example +14 -14
- package/templates/stacks/mcp-go/.github/workflows/dare-ci.yml +42 -42
- package/templates/stacks/mcp-go/README.md.tpl +50 -50
- package/templates/stacks/mcp-go/cmd/server/main.go.tpl +62 -62
- package/templates/stacks/mcp-go/gitignore +6 -6
- package/templates/stacks/mcp-go/go.mod.tpl +9 -9
- package/templates/stacks/mcp-go/internal/prompts/summarize.go +9 -9
- package/templates/stacks/mcp-go/internal/server/server.go.tpl +80 -80
- package/templates/stacks/mcp-go/internal/tools/echo.go +15 -15
- package/templates/stacks/mcp-go/internal/transports/http.go.tpl +21 -21
- package/templates/stacks/mcp-go/internal/transports/sse.go.tpl +17 -17
- package/templates/stacks/mcp-go/internal/transports/stdio.go.tpl +14 -14
- package/templates/stacks/mcp-go/llms.txt.tpl +60 -60
- package/templates/stacks/mcp-go/openapi.json.tpl +31 -31
- package/templates/stacks/mcp-go/tests/echo_test.go.tpl +37 -37
- package/templates/stacks/mcp-node-ts/.dare/skills.yml +8 -8
- package/templates/stacks/mcp-node-ts/.env.example +16 -16
- package/templates/stacks/mcp-node-ts/.github/workflows/dare-ci.yml +54 -54
- package/templates/stacks/mcp-node-ts/README.md.hbs +49 -49
- package/templates/stacks/mcp-node-ts/gitignore +7 -7
- package/templates/stacks/mcp-node-ts/llms.txt.hbs +61 -61
- package/templates/stacks/mcp-node-ts/openapi.json.hbs +39 -39
- package/templates/stacks/mcp-node-ts/package.json.hbs +35 -35
- package/templates/stacks/mcp-node-ts/src/cli.ts.hbs +71 -71
- package/templates/stacks/mcp-node-ts/src/prompts/index.ts +36 -36
- package/templates/stacks/mcp-node-ts/src/server.ts.hbs +45 -45
- package/templates/stacks/mcp-node-ts/src/tools/echo.ts +23 -23
- package/templates/stacks/mcp-node-ts/src/tools/index.ts +18 -18
- package/templates/stacks/mcp-node-ts/src/transports/http.ts +68 -68
- package/templates/stacks/mcp-node-ts/src/transports/sse.ts +58 -58
- package/templates/stacks/mcp-node-ts/src/transports/stdio.ts +5 -5
- package/templates/stacks/mcp-node-ts/tests/echo.test.ts +50 -50
- package/templates/stacks/mcp-node-ts/tsconfig.json +17 -17
- package/templates/stacks/mcp-python/.dare/skills.yml +8 -8
- package/templates/stacks/mcp-python/.env.example +14 -14
- package/templates/stacks/mcp-python/.github/workflows/dare-ci.yml +42 -42
- package/templates/stacks/mcp-python/README.md.j2 +49 -49
- package/templates/stacks/mcp-python/gitignore +12 -12
- package/templates/stacks/mcp-python/llms.txt.j2 +56 -56
- package/templates/stacks/mcp-python/openapi.json.j2 +33 -33
- package/templates/stacks/mcp-python/pyproject.toml.j2 +37 -37
- package/templates/stacks/mcp-python/src/cli.py.j2 +68 -68
- package/templates/stacks/mcp-python/src/prompts/summarize.py +10 -10
- package/templates/stacks/mcp-python/src/server.py.j2 +28 -28
- package/templates/stacks/mcp-python/src/tools/echo.py +12 -12
- package/templates/stacks/mcp-python/src/transports/http.py +12 -12
- package/templates/stacks/mcp-python/src/transports/sse.py +13 -13
- package/templates/stacks/mcp-python/src/transports/stdio.py +6 -6
- package/templates/stacks/mcp-python/tests/test_echo.py +28 -28
- package/templates/stacks/mcp-rust/.dare/skills.yml +8 -8
- package/templates/stacks/mcp-rust/.env.example +14 -14
- package/templates/stacks/mcp-rust/.github/workflows/dare-ci.yml +38 -38
- package/templates/stacks/mcp-rust/Cargo.toml.tera +35 -35
- package/templates/stacks/mcp-rust/README.md.tera +50 -50
- package/templates/stacks/mcp-rust/gitignore +5 -5
- package/templates/stacks/mcp-rust/llms.txt.tera +60 -60
- package/templates/stacks/mcp-rust/openapi.json.tera +31 -31
- package/templates/stacks/mcp-rust/src/cli.rs.tera +33 -33
- package/templates/stacks/mcp-rust/src/lib.rs +6 -6
- package/templates/stacks/mcp-rust/src/main.rs.tera +30 -30
- package/templates/stacks/mcp-rust/src/prompts/mod.rs +1 -1
- package/templates/stacks/mcp-rust/src/prompts/summarize.rs +5 -5
- package/templates/stacks/mcp-rust/src/server.rs.tera +38 -38
- package/templates/stacks/mcp-rust/src/tools/echo.rs +18 -18
- package/templates/stacks/mcp-rust/src/tools/mod.rs +22 -22
- package/templates/stacks/mcp-rust/src/transports/http.rs +27 -27
- package/templates/stacks/mcp-rust/src/transports/mod.rs +3 -3
- package/templates/stacks/mcp-rust/src/transports/sse.rs +33 -33
- package/templates/stacks/mcp-rust/src/transports/stdio.rs +14 -14
- package/templates/stacks/mcp-rust/tests/echo_test.rs.tera +27 -27
- package/templates/stacks/node-nestjs/.dare/skills.yml +11 -11
- package/templates/stacks/node-nestjs/.env.example +21 -21
- package/templates/stacks/node-nestjs/.github/workflows/dare-ci.yml +54 -54
- package/templates/stacks/node-nestjs/README.md.hbs +35 -35
- package/templates/stacks/node-nestjs/gitignore +7 -7
- package/templates/stacks/node-nestjs/llms.txt.hbs +47 -47
- package/templates/stacks/node-nestjs/nest-cli.json +16 -16
- package/templates/stacks/node-nestjs/openapi.json.hbs +75 -75
- package/templates/stacks/node-nestjs/package.json.hbs +57 -57
- package/templates/stacks/node-nestjs/prisma/schema.prisma +25 -25
- package/templates/stacks/node-nestjs/prisma/seed.ts.hbs +25 -25
- package/templates/stacks/node-nestjs/src/app.module.ts +39 -39
- package/templates/stacks/node-nestjs/src/auth/auth.controller.ts +29 -29
- package/templates/stacks/node-nestjs/src/auth/auth.module.ts +25 -25
- package/templates/stacks/node-nestjs/src/auth/auth.service.ts +36 -36
- package/templates/stacks/node-nestjs/src/auth/dto/login-response.dto.ts +9 -9
- package/templates/stacks/node-nestjs/src/auth/dto/login.dto.ts +17 -17
- package/templates/stacks/node-nestjs/src/auth/jwt.strategy.ts +25 -25
- package/templates/stacks/node-nestjs/src/common/filters/problem-details.filter.ts +38 -38
- package/templates/stacks/node-nestjs/src/common/interceptors/json-response.interceptor.ts +13 -13
- package/templates/stacks/node-nestjs/src/main.ts.hbs +44 -44
- package/templates/stacks/node-nestjs/src/prisma/prisma.module.ts +9 -9
- package/templates/stacks/node-nestjs/src/prisma/prisma.service.ts +9 -9
- package/templates/stacks/node-nestjs/src/users/dto/create-user.dto.ts +22 -22
- package/templates/stacks/node-nestjs/src/users/dto/user.dto.ts +15 -15
- package/templates/stacks/node-nestjs/src/users/users.controller.ts +41 -41
- package/templates/stacks/node-nestjs/src/users/users.module.ts +11 -11
- package/templates/stacks/node-nestjs/src/users/users.repository.ts +38 -38
- package/templates/stacks/node-nestjs/src/users/users.service.ts +38 -38
- package/templates/stacks/node-nestjs/tsconfig.build.json +4 -4
- package/templates/stacks/node-nestjs/tsconfig.json +28 -28
- package/templates/stacks/php-laravel/.dare/skills.yml +11 -11
- package/templates/stacks/php-laravel/.env.example +41 -41
- package/templates/stacks/php-laravel/.github/workflows/dare-ci.yml +43 -43
- package/templates/stacks/php-laravel/README.md.hbs +36 -36
- package/templates/stacks/php-laravel/app/Http/Controllers/Api/AuthController.php +36 -36
- package/templates/stacks/php-laravel/app/Http/Controllers/Api/UsersController.php +33 -33
- package/templates/stacks/php-laravel/app/Http/Requests/CreateUserRequest.php +26 -26
- package/templates/stacks/php-laravel/app/Http/Requests/LoginRequest.php +34 -34
- package/templates/stacks/php-laravel/app/Llm/Contracts/LlmProvider.php +12 -12
- package/templates/stacks/php-laravel/app/Llm/Providers/DummyProvider.php +13 -13
- package/templates/stacks/php-laravel/app/Llm/Providers/OpenAiProvider.php +33 -33
- package/templates/stacks/php-laravel/app/Models/User.php +44 -44
- package/templates/stacks/php-laravel/app/Repositories/UsersRepository.php +32 -32
- package/templates/stacks/php-laravel/app/Services/AuthService.php +37 -37
- package/templates/stacks/php-laravel/app/Services/UsersService.php +57 -57
- package/templates/stacks/php-laravel/artisan +12 -12
- package/templates/stacks/php-laravel/bootstrap/app.php +29 -29
- package/templates/stacks/php-laravel/bootstrap/providers.php +5 -5
- package/templates/stacks/php-laravel/composer.json.hbs +58 -58
- package/templates/stacks/php-laravel/config/l5-swagger.php +41 -41
- package/templates/stacks/php-laravel/config/reverb.php +34 -34
- package/templates/stacks/php-laravel/config/sanctum.php +15 -15
- package/templates/stacks/php-laravel/database/migrations/2026_06_01_000001_create_users_table.php +27 -27
- package/templates/stacks/php-laravel/database/seeders/DatabaseSeeder.php +21 -21
- package/templates/stacks/php-laravel/gitignore +23 -23
- package/templates/stacks/php-laravel/llms.txt.hbs +53 -53
- package/templates/stacks/php-laravel/openapi.json.hbs +43 -43
- package/templates/stacks/php-laravel/phpstan.neon +9 -9
- package/templates/stacks/php-laravel/routes/api.php +13 -13
- package/templates/stacks/php-laravel/routes/channels.php +7 -7
- package/templates/stacks/php-laravel/tests/Feature/AuthTest.php +35 -35
- package/templates/stacks/php-laravel/tests/Feature/UsersTest.php +30 -30
- package/templates/stacks/php-laravel/tests/Pest.php +5 -5
- package/templates/stacks/python-fastapi/.dare/skills.yml +11 -11
- package/templates/stacks/python-fastapi/.env.example +21 -21
- package/templates/stacks/python-fastapi/.github/workflows/dare-ci.yml +43 -43
- package/templates/stacks/python-fastapi/README.md.j2 +35 -35
- package/templates/stacks/python-fastapi/alembic/env.py +46 -46
- package/templates/stacks/python-fastapi/alembic/script.py.mako +26 -26
- package/templates/stacks/python-fastapi/alembic/versions/0001_create_users.py.j2 +37 -37
- package/templates/stacks/python-fastapi/alembic.ini.j2 +39 -39
- package/templates/stacks/python-fastapi/app/core/config.py +24 -24
- package/templates/stacks/python-fastapi/app/core/security.py +34 -34
- package/templates/stacks/python-fastapi/app/db/session.py +22 -22
- package/templates/stacks/python-fastapi/app/main.py.j2 +36 -36
- package/templates/stacks/python-fastapi/app/models/__init__.py +3 -3
- package/templates/stacks/python-fastapi/app/models/user.py +30 -30
- package/templates/stacks/python-fastapi/app/repositories/user_repository.py +34 -34
- package/templates/stacks/python-fastapi/app/routers/auth.py +37 -37
- package/templates/stacks/python-fastapi/app/routers/users.py +46 -46
- package/templates/stacks/python-fastapi/app/schemas/user.py +56 -56
- package/templates/stacks/python-fastapi/app/services/auth_service.py +22 -22
- package/templates/stacks/python-fastapi/app/services/user_service.py +31 -31
- package/templates/stacks/python-fastapi/gitignore +12 -12
- package/templates/stacks/python-fastapi/llms.txt.j2 +53 -53
- package/templates/stacks/python-fastapi/openapi.json.j2 +43 -43
- package/templates/stacks/python-fastapi/pyproject.toml.j2 +45 -45
- package/templates/stacks/python-fastapi/tests/test_auth.py +22 -22
- package/templates/stacks/ruby-rails-8/.dare/skills.yml +50 -50
- package/templates/stacks/ruby-rails-8/.env.example +20 -20
- package/templates/stacks/ruby-rails-8/.github/workflows/dare-ci.yml +112 -112
- package/templates/stacks/ruby-rails-8/Gemfile.erb +61 -61
- package/templates/stacks/ruby-rails-8/app/channels/application_cable/channel.rb +11 -11
- package/templates/stacks/ruby-rails-8/app/channels/application_cable/connection.rb +34 -34
- package/templates/stacks/ruby-rails-8/app/channels/dare_updates_channel.rb +18 -18
- package/templates/stacks/ruby-rails-8/app/channels/user_updates_channel.rb +23 -23
- package/templates/stacks/ruby-rails-8/app/controllers/application_controller.rb +44 -44
- package/templates/stacks/ruby-rails-8/app/controllers/concerns/problem_details.rb +93 -93
- package/templates/stacks/ruby-rails-8/app/handlers/summarize_handler.rb +33 -33
- package/templates/stacks/ruby-rails-8/app/handlers/users_handler.rb +68 -68
- package/templates/stacks/ruby-rails-8/app/llm/cache/llm_cache.rb +44 -44
- package/templates/stacks/ruby-rails-8/app/llm/prompts/prompt_loader.rb +54 -54
- package/templates/stacks/ruby-rails-8/app/llm/prompts/summarize_v1.jinja2 +12 -12
- package/templates/stacks/ruby-rails-8/app/llm/providers/dummy_provider.rb +35 -35
- package/templates/stacks/ruby-rails-8/app/llm/providers/llm_provider.rb +67 -67
- package/templates/stacks/ruby-rails-8/app/llm/providers/openai_provider.rb +62 -62
- package/templates/stacks/ruby-rails-8/app/llm/rate_limit/token_bucket.rb +82 -82
- package/templates/stacks/ruby-rails-8/app/llm/validators/summarize_output_schema.json +21 -21
- package/templates/stacks/ruby-rails-8/app/llm/validators/validator.rb +52 -52
- package/templates/stacks/ruby-rails-8/app/models/user.rb +36 -36
- package/templates/stacks/ruby-rails-8/app/presenters/user_presenter.rb +48 -48
- package/templates/stacks/ruby-rails-8/app/repositories/document_repository.rb +57 -57
- package/templates/stacks/ruby-rails-8/app/repositories/user_repository.rb +73 -73
- package/templates/stacks/ruby-rails-8/app/services/create_user_service.rb +67 -67
- package/templates/stacks/ruby-rails-8/app/services/realtime_service.rb +53 -53
- package/templates/stacks/ruby-rails-8/app/services/summarize_document_service.rb +57 -57
- package/templates/stacks/ruby-rails-8/config/dare.yml +42 -42
- package/templates/stacks/ruby-rails-8/config/initializers/dare.rb +31 -31
- package/templates/stacks/ruby-rails-8/config/initializers/rack_attack.rb +64 -64
- package/templates/stacks/ruby-rails-8/config/initializers/rswag_api.rb +12 -12
- package/templates/stacks/ruby-rails-8/lib/tasks/dare.rake +159 -159
- package/templates/stacks/ruby-rails-8/llms.txt.erb +69 -69
- package/templates/stacks/ruby-rails-8/spec/api/summarize_spec.rb +56 -56
- package/templates/stacks/ruby-rails-8/spec/api/users_spec.rb +72 -72
- package/templates/stacks/ruby-rails-8/spec/channels/dare_updates_channel_spec.rb +61 -61
- package/templates/stacks/ruby-rails-8/spec/channels/user_updates_channel_spec.rb +56 -56
- package/templates/stacks/ruby-rails-8/spec/factories/users.rb +27 -27
- package/templates/stacks/ruby-rails-8/spec/handlers/users_handler_spec.rb +88 -88
- package/templates/stacks/ruby-rails-8/spec/rails_helper.rb +31 -31
- package/templates/stacks/ruby-rails-8/spec/services/create_user_service_spec.rb +88 -88
- package/templates/stacks/ruby-rails-8/spec/services/summarize_document_service_spec.rb +142 -142
- package/templates/stacks/ruby-rails-8/spec/swagger_helper.rb +73 -73
- package/templates/stacks/rust-axum/.dare/skills.yml +11 -11
- package/templates/stacks/rust-axum/.env.example +26 -26
- package/templates/stacks/rust-axum/.github/workflows/dare-ci.yml +40 -40
- package/templates/stacks/rust-axum/Cargo.toml.tera +53 -53
- package/templates/stacks/rust-axum/README.md.tera +37 -37
- package/templates/stacks/rust-axum/gitignore +5 -5
- package/templates/stacks/rust-axum/llms.txt.tera +54 -54
- package/templates/stacks/rust-axum/migrations/0001_create_users.sql +13 -13
- package/templates/stacks/rust-axum/openapi.json.tera +46 -46
- package/templates/stacks/rust-axum/src/config.rs +45 -45
- package/templates/stacks/rust-axum/src/errors.rs +48 -48
- package/templates/stacks/rust-axum/src/handlers/auth.rs +48 -48
- package/templates/stacks/rust-axum/src/handlers/mod.rs +3 -3
- package/templates/stacks/rust-axum/src/handlers/users.rs +81 -81
- package/templates/stacks/rust-axum/src/handlers/ws.rs +24 -24
- package/templates/stacks/rust-axum/src/lib.rs +19 -19
- package/templates/stacks/rust-axum/src/llm/mod.rs +1 -1
- package/templates/stacks/rust-axum/src/llm/provider.rs +48 -48
- package/templates/stacks/rust-axum/src/main.rs.tera +64 -64
- package/templates/stacks/rust-axum/src/middleware/auth.rs +20 -20
- package/templates/stacks/rust-axum/src/middleware/mod.rs +2 -2
- package/templates/stacks/rust-axum/src/middleware/rate_limit.rs +27 -27
- package/templates/stacks/rust-axum/src/models/mod.rs +1 -1
- package/templates/stacks/rust-axum/src/models/user.rs +13 -13
- package/templates/stacks/rust-axum/src/repositories/mod.rs +1 -1
- package/templates/stacks/rust-axum/src/repositories/user_repository.rs +62 -62
- package/templates/stacks/rust-axum/src/services/auth_service.rs +50 -50
- package/templates/stacks/rust-axum/src/services/mod.rs +2 -2
- package/templates/stacks/rust-axum/src/services/user_service.rs +53 -53
- package/templates/stacks/rust-axum/tests/integration_test.rs.tera +13 -13
- package/dist/commands/new.d.ts +0 -16
- package/dist/commands/new.d.ts.map +0 -1
- package/dist/commands/new.js +0 -104
- package/dist/commands/new.js.map +0 -1
|
@@ -1,180 +1,180 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dare-design
|
|
3
|
-
description: Gera um Implementation Plan estruturado a partir de requisitos de usuário. Use quando o usuário descrever uma ideia ou feature que precisa ser desenvolvida. Cria um documento DESIGN.md com requisitos, funcionalidades e restrições.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# DARE Design Skill
|
|
7
|
-
|
|
8
|
-
Você é um especialista em planejamento e análise de requisitos. Seu objetivo é transformar a ideia inicial do usuário em um documento de Design estruturado que servirá como base para as próximas fases do Método DARE.
|
|
9
|
-
|
|
10
|
-
## Quando usar esta skill
|
|
11
|
-
|
|
12
|
-
- Usuário descreve uma nova feature ou projeto
|
|
13
|
-
- Precisa-se clarificar requisitos antes de arquitetar
|
|
14
|
-
- Necessário documentar escopo e restrições
|
|
15
|
-
- Primeira fase do Método DARE
|
|
16
|
-
|
|
17
|
-
## Como usar
|
|
18
|
-
|
|
19
|
-
### Passo 1: Entender a Ideia
|
|
20
|
-
Leia cuidadosamente o que o usuário solicitou. Identifique:
|
|
21
|
-
- O objetivo principal
|
|
22
|
-
- Funcionalidades esperadas
|
|
23
|
-
- Contexto do projeto
|
|
24
|
-
- Restrições implícitas
|
|
25
|
-
|
|
26
|
-
### Passo 2: Fazer Perguntas (se necessário)
|
|
27
|
-
Se algo não estiver claro, pergunte ao usuário:
|
|
28
|
-
- Qual é o escopo exato?
|
|
29
|
-
- Quem são os usuários?
|
|
30
|
-
- Quais são as prioridades?
|
|
31
|
-
- Há restrições técnicas?
|
|
32
|
-
|
|
33
|
-
### Passo 3: Integrar Segurança (OWASP)
|
|
34
|
-
Sempre adicione requisitos de segurança:
|
|
35
|
-
- Autenticação/Autorização
|
|
36
|
-
- Proteção contra força bruta
|
|
37
|
-
- Validação de entrada
|
|
38
|
-
- Criptografia de dados sensíveis
|
|
39
|
-
- Rate limiting
|
|
40
|
-
|
|
41
|
-
### Passo 4: Gerar o Design
|
|
42
|
-
Crie um documento `DARE/DESIGN.md` com a seguinte estrutura:
|
|
43
|
-
|
|
44
|
-
```markdown
|
|
45
|
-
# Design: [Nome do Projeto]
|
|
46
|
-
|
|
47
|
-
## Visão Geral
|
|
48
|
-
[Descrição clara do projeto]
|
|
49
|
-
|
|
50
|
-
## Objetivos
|
|
51
|
-
- [Objetivo 1]
|
|
52
|
-
- [Objetivo 2]
|
|
53
|
-
- [Objetivo 3]
|
|
54
|
-
|
|
55
|
-
## Funcionalidades Principais
|
|
56
|
-
### Feature 1: [Nome]
|
|
57
|
-
- Descrição
|
|
58
|
-
- Casos de uso
|
|
59
|
-
|
|
60
|
-
### Feature 2: [Nome]
|
|
61
|
-
- Descrição
|
|
62
|
-
- Casos de uso
|
|
63
|
-
|
|
64
|
-
## Stack Técnica
|
|
65
|
-
- **Backend:** [Linguagem/Framework]
|
|
66
|
-
- **Frontend:** [Framework]
|
|
67
|
-
- **Banco de Dados:** [BD]
|
|
68
|
-
- **Containerização:** Docker
|
|
69
|
-
|
|
70
|
-
## Requisitos Não-Funcionais
|
|
71
|
-
### Segurança
|
|
72
|
-
- Autenticação: [Tipo]
|
|
73
|
-
- Criptografia: [Tipo]
|
|
74
|
-
- Rate Limiting: Sim/Não
|
|
75
|
-
- Validação: Estrita
|
|
76
|
-
|
|
77
|
-
### Performance
|
|
78
|
-
- Tempo de resposta: [ms]
|
|
79
|
-
- Escalabilidade: [Tipo]
|
|
80
|
-
|
|
81
|
-
### Confiabilidade
|
|
82
|
-
- Uptime: [%]
|
|
83
|
-
- Backup: [Frequência]
|
|
84
|
-
|
|
85
|
-
## Restrições
|
|
86
|
-
- [Restrição 1]
|
|
87
|
-
- [Restrição 2]
|
|
88
|
-
|
|
89
|
-
## Fora do Escopo (v1.0)
|
|
90
|
-
- [Feature não incluída]
|
|
91
|
-
- [Feature não incluída]
|
|
92
|
-
|
|
93
|
-
## Próximas Etapas
|
|
94
|
-
1. Revisar e aprovar este Design
|
|
95
|
-
2. Executar `/generate-blueprint DARE/DESIGN.md`
|
|
96
|
-
3. Continuar com o Método DARE
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### Passo 5: Pedir Aprovação
|
|
100
|
-
Após gerar o Design, peça ao usuário:
|
|
101
|
-
- Revisar o documento
|
|
102
|
-
- Aprovar ou solicitar mudanças
|
|
103
|
-
- Confirmar antes de continuar
|
|
104
|
-
|
|
105
|
-
## Boas Práticas
|
|
106
|
-
|
|
107
|
-
1. **Seja Específico:** Evite ambiguidades
|
|
108
|
-
2. **Inclua Segurança:** Sempre pense em OWASP Top 10
|
|
109
|
-
3. **Documente Restrições:** Deixe claro o que NÃO será feito
|
|
110
|
-
4. **Organize Bem:** Use seções claras e hierarquia
|
|
111
|
-
5. **Revise com Humano:** Nunca pule a aprovação
|
|
112
|
-
|
|
113
|
-
## Exemplo: API de Autenticação
|
|
114
|
-
|
|
115
|
-
```markdown
|
|
116
|
-
# Design: API de Autenticação com JWT
|
|
117
|
-
|
|
118
|
-
## Visão Geral
|
|
119
|
-
Sistema de autenticação robusto com JWT, refresh tokens e proteção contra força bruta.
|
|
120
|
-
|
|
121
|
-
## Objetivos
|
|
122
|
-
- Permitir login seguro de usuários
|
|
123
|
-
- Emitir JWT com expiração
|
|
124
|
-
- Suportar refresh tokens
|
|
125
|
-
- Proteger contra ataques de força bruta
|
|
126
|
-
|
|
127
|
-
## Funcionalidades Principais
|
|
128
|
-
### Feature 1: Login
|
|
129
|
-
- Usuário envia email e senha
|
|
130
|
-
- Sistema valida credenciais
|
|
131
|
-
- Retorna JWT e refresh token
|
|
132
|
-
|
|
133
|
-
### Feature 2: Refresh Token
|
|
134
|
-
- Usuário envia refresh token expirado
|
|
135
|
-
- Sistema valida e emite novo JWT
|
|
136
|
-
- Refresh token é rotacionado
|
|
137
|
-
|
|
138
|
-
### Feature 3: Proteção contra Força Bruta
|
|
139
|
-
- Máximo 5 tentativas por IP
|
|
140
|
-
- Bloqueio de 15 minutos após limite
|
|
141
|
-
- Log de tentativas
|
|
142
|
-
|
|
143
|
-
## Stack Técnica
|
|
144
|
-
- **Backend:** Laravel 11 + PHP 8.3
|
|
145
|
-
- **Frontend:** Vue.js 3
|
|
146
|
-
- **Banco de Dados:** PostgreSQL
|
|
147
|
-
- **Containerização:** Docker
|
|
148
|
-
|
|
149
|
-
## Requisitos Não-Funcionais
|
|
150
|
-
### Segurança
|
|
151
|
-
- Autenticação: JWT com RS256
|
|
152
|
-
- Criptografia: Bcrypt para senhas
|
|
153
|
-
- Rate Limiting: 5 tentativas/15min
|
|
154
|
-
- Validação: Estrita em todos os endpoints
|
|
155
|
-
|
|
156
|
-
### Performance
|
|
157
|
-
- Tempo de resposta: < 200ms
|
|
158
|
-
- Escalabilidade: Horizontal com Redis
|
|
159
|
-
|
|
160
|
-
## Restrições
|
|
161
|
-
- Apenas email/senha (sem OAuth nesta versão)
|
|
162
|
-
- Sem 2FA nesta versão
|
|
163
|
-
- Sem integração com LDAP
|
|
164
|
-
|
|
165
|
-
## Fora do Escopo (v1.0)
|
|
166
|
-
- Autenticação social (Google, GitHub)
|
|
167
|
-
- Two-Factor Authentication
|
|
168
|
-
- Biometria
|
|
169
|
-
|
|
170
|
-
## Próximas Etapas
|
|
171
|
-
1. Revisar e aprovar este Design
|
|
172
|
-
2. Executar `/generate-blueprint DARE/DESIGN.md`
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
## Dicas para Melhor Resultado
|
|
176
|
-
|
|
177
|
-
- **Contexto:** Leia o `.cursorrules` ou `.agents/rules/` para entender a stack do projeto
|
|
178
|
-
- **Exemplos:** Procure por exemplos em `examples/` para manter consistência
|
|
179
|
-
- **Templates:** Use `templates/DESIGN-template.md` como referência
|
|
180
|
-
- **Segurança:** Sempre consulte `skill-security` para requisitos de segurança
|
|
1
|
+
---
|
|
2
|
+
name: dare-design
|
|
3
|
+
description: Gera um Implementation Plan estruturado a partir de requisitos de usuário. Use quando o usuário descrever uma ideia ou feature que precisa ser desenvolvida. Cria um documento DESIGN.md com requisitos, funcionalidades e restrições.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# DARE Design Skill
|
|
7
|
+
|
|
8
|
+
Você é um especialista em planejamento e análise de requisitos. Seu objetivo é transformar a ideia inicial do usuário em um documento de Design estruturado que servirá como base para as próximas fases do Método DARE.
|
|
9
|
+
|
|
10
|
+
## Quando usar esta skill
|
|
11
|
+
|
|
12
|
+
- Usuário descreve uma nova feature ou projeto
|
|
13
|
+
- Precisa-se clarificar requisitos antes de arquitetar
|
|
14
|
+
- Necessário documentar escopo e restrições
|
|
15
|
+
- Primeira fase do Método DARE
|
|
16
|
+
|
|
17
|
+
## Como usar
|
|
18
|
+
|
|
19
|
+
### Passo 1: Entender a Ideia
|
|
20
|
+
Leia cuidadosamente o que o usuário solicitou. Identifique:
|
|
21
|
+
- O objetivo principal
|
|
22
|
+
- Funcionalidades esperadas
|
|
23
|
+
- Contexto do projeto
|
|
24
|
+
- Restrições implícitas
|
|
25
|
+
|
|
26
|
+
### Passo 2: Fazer Perguntas (se necessário)
|
|
27
|
+
Se algo não estiver claro, pergunte ao usuário:
|
|
28
|
+
- Qual é o escopo exato?
|
|
29
|
+
- Quem são os usuários?
|
|
30
|
+
- Quais são as prioridades?
|
|
31
|
+
- Há restrições técnicas?
|
|
32
|
+
|
|
33
|
+
### Passo 3: Integrar Segurança (OWASP)
|
|
34
|
+
Sempre adicione requisitos de segurança:
|
|
35
|
+
- Autenticação/Autorização
|
|
36
|
+
- Proteção contra força bruta
|
|
37
|
+
- Validação de entrada
|
|
38
|
+
- Criptografia de dados sensíveis
|
|
39
|
+
- Rate limiting
|
|
40
|
+
|
|
41
|
+
### Passo 4: Gerar o Design
|
|
42
|
+
Crie um documento `DARE/DESIGN.md` com a seguinte estrutura:
|
|
43
|
+
|
|
44
|
+
```markdown
|
|
45
|
+
# Design: [Nome do Projeto]
|
|
46
|
+
|
|
47
|
+
## Visão Geral
|
|
48
|
+
[Descrição clara do projeto]
|
|
49
|
+
|
|
50
|
+
## Objetivos
|
|
51
|
+
- [Objetivo 1]
|
|
52
|
+
- [Objetivo 2]
|
|
53
|
+
- [Objetivo 3]
|
|
54
|
+
|
|
55
|
+
## Funcionalidades Principais
|
|
56
|
+
### Feature 1: [Nome]
|
|
57
|
+
- Descrição
|
|
58
|
+
- Casos de uso
|
|
59
|
+
|
|
60
|
+
### Feature 2: [Nome]
|
|
61
|
+
- Descrição
|
|
62
|
+
- Casos de uso
|
|
63
|
+
|
|
64
|
+
## Stack Técnica
|
|
65
|
+
- **Backend:** [Linguagem/Framework]
|
|
66
|
+
- **Frontend:** [Framework]
|
|
67
|
+
- **Banco de Dados:** [BD]
|
|
68
|
+
- **Containerização:** Docker
|
|
69
|
+
|
|
70
|
+
## Requisitos Não-Funcionais
|
|
71
|
+
### Segurança
|
|
72
|
+
- Autenticação: [Tipo]
|
|
73
|
+
- Criptografia: [Tipo]
|
|
74
|
+
- Rate Limiting: Sim/Não
|
|
75
|
+
- Validação: Estrita
|
|
76
|
+
|
|
77
|
+
### Performance
|
|
78
|
+
- Tempo de resposta: [ms]
|
|
79
|
+
- Escalabilidade: [Tipo]
|
|
80
|
+
|
|
81
|
+
### Confiabilidade
|
|
82
|
+
- Uptime: [%]
|
|
83
|
+
- Backup: [Frequência]
|
|
84
|
+
|
|
85
|
+
## Restrições
|
|
86
|
+
- [Restrição 1]
|
|
87
|
+
- [Restrição 2]
|
|
88
|
+
|
|
89
|
+
## Fora do Escopo (v1.0)
|
|
90
|
+
- [Feature não incluída]
|
|
91
|
+
- [Feature não incluída]
|
|
92
|
+
|
|
93
|
+
## Próximas Etapas
|
|
94
|
+
1. Revisar e aprovar este Design
|
|
95
|
+
2. Executar `/generate-blueprint DARE/DESIGN.md`
|
|
96
|
+
3. Continuar com o Método DARE
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Passo 5: Pedir Aprovação
|
|
100
|
+
Após gerar o Design, peça ao usuário:
|
|
101
|
+
- Revisar o documento
|
|
102
|
+
- Aprovar ou solicitar mudanças
|
|
103
|
+
- Confirmar antes de continuar
|
|
104
|
+
|
|
105
|
+
## Boas Práticas
|
|
106
|
+
|
|
107
|
+
1. **Seja Específico:** Evite ambiguidades
|
|
108
|
+
2. **Inclua Segurança:** Sempre pense em OWASP Top 10
|
|
109
|
+
3. **Documente Restrições:** Deixe claro o que NÃO será feito
|
|
110
|
+
4. **Organize Bem:** Use seções claras e hierarquia
|
|
111
|
+
5. **Revise com Humano:** Nunca pule a aprovação
|
|
112
|
+
|
|
113
|
+
## Exemplo: API de Autenticação
|
|
114
|
+
|
|
115
|
+
```markdown
|
|
116
|
+
# Design: API de Autenticação com JWT
|
|
117
|
+
|
|
118
|
+
## Visão Geral
|
|
119
|
+
Sistema de autenticação robusto com JWT, refresh tokens e proteção contra força bruta.
|
|
120
|
+
|
|
121
|
+
## Objetivos
|
|
122
|
+
- Permitir login seguro de usuários
|
|
123
|
+
- Emitir JWT com expiração
|
|
124
|
+
- Suportar refresh tokens
|
|
125
|
+
- Proteger contra ataques de força bruta
|
|
126
|
+
|
|
127
|
+
## Funcionalidades Principais
|
|
128
|
+
### Feature 1: Login
|
|
129
|
+
- Usuário envia email e senha
|
|
130
|
+
- Sistema valida credenciais
|
|
131
|
+
- Retorna JWT e refresh token
|
|
132
|
+
|
|
133
|
+
### Feature 2: Refresh Token
|
|
134
|
+
- Usuário envia refresh token expirado
|
|
135
|
+
- Sistema valida e emite novo JWT
|
|
136
|
+
- Refresh token é rotacionado
|
|
137
|
+
|
|
138
|
+
### Feature 3: Proteção contra Força Bruta
|
|
139
|
+
- Máximo 5 tentativas por IP
|
|
140
|
+
- Bloqueio de 15 minutos após limite
|
|
141
|
+
- Log de tentativas
|
|
142
|
+
|
|
143
|
+
## Stack Técnica
|
|
144
|
+
- **Backend:** Laravel 11 + PHP 8.3
|
|
145
|
+
- **Frontend:** Vue.js 3
|
|
146
|
+
- **Banco de Dados:** PostgreSQL
|
|
147
|
+
- **Containerização:** Docker
|
|
148
|
+
|
|
149
|
+
## Requisitos Não-Funcionais
|
|
150
|
+
### Segurança
|
|
151
|
+
- Autenticação: JWT com RS256
|
|
152
|
+
- Criptografia: Bcrypt para senhas
|
|
153
|
+
- Rate Limiting: 5 tentativas/15min
|
|
154
|
+
- Validação: Estrita em todos os endpoints
|
|
155
|
+
|
|
156
|
+
### Performance
|
|
157
|
+
- Tempo de resposta: < 200ms
|
|
158
|
+
- Escalabilidade: Horizontal com Redis
|
|
159
|
+
|
|
160
|
+
## Restrições
|
|
161
|
+
- Apenas email/senha (sem OAuth nesta versão)
|
|
162
|
+
- Sem 2FA nesta versão
|
|
163
|
+
- Sem integração com LDAP
|
|
164
|
+
|
|
165
|
+
## Fora do Escopo (v1.0)
|
|
166
|
+
- Autenticação social (Google, GitHub)
|
|
167
|
+
- Two-Factor Authentication
|
|
168
|
+
- Biometria
|
|
169
|
+
|
|
170
|
+
## Próximas Etapas
|
|
171
|
+
1. Revisar e aprovar este Design
|
|
172
|
+
2. Executar `/generate-blueprint DARE/DESIGN.md`
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Dicas para Melhor Resultado
|
|
176
|
+
|
|
177
|
+
- **Contexto:** Leia o `.cursorrules` ou `.agents/rules/` para entender a stack do projeto
|
|
178
|
+
- **Exemplos:** Procure por exemplos em `examples/` para manter consistência
|
|
179
|
+
- **Templates:** Use `templates/DESIGN-template.md` como referência
|
|
180
|
+
- **Segurança:** Sempre consulte `skill-security` para requisitos de segurança
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dare-discover
|
|
3
|
-
description: Detecta a stack de um projeto já existente (brownfield) e instala os arquivos da metodologia DARE — incluindo os comandos/skills de IDE — sem tocar no código. Mapeia o CLI `dare discover`.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Adotar o DARE em um projeto existente
|
|
7
|
-
|
|
8
|
-
Detecta a stack de um projeto já existente (brownfield) e instala os arquivos da metodologia DARE — incluindo os comandos/skills de IDE — sem tocar no código.
|
|
9
|
-
|
|
10
|
-
> Este comando expõe o CLI `dare discover` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
11
|
-
|
|
12
|
-
## Quando usar
|
|
13
|
-
|
|
14
|
-
- O usuário quer adotar o DARE em um repositório que **já existe**.
|
|
15
|
-
- Para entender/documentar o legado em profundidade depois, encadeie com `/dare-reverse` e `/dare-dna`.
|
|
16
|
-
|
|
17
|
-
## Como rodar
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
dare discover
|
|
21
|
-
dare discover --dir ./caminho/do/projeto
|
|
22
|
-
dare discover --check # só mostra a detecção, sem instalar nada
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## O que fazer
|
|
26
|
-
|
|
27
|
-
1. Rode `dare discover --check` primeiro para revisar a stack detectada.
|
|
28
|
-
2. Se a detecção estiver correta, rode `dare discover` para instalar os artefatos DARE + comandos de IDE.
|
|
29
|
-
3. Próximo passo: `/dare-reverse` (Fase 0 — coleta) e `/dare-dna` (convenções).
|
|
30
|
-
|
|
31
|
-
## Comandos relacionados
|
|
32
|
-
|
|
33
|
-
`/dare-reverse` · `/dare-dna` · `/dare-migrate`
|
|
1
|
+
---
|
|
2
|
+
name: dare-discover
|
|
3
|
+
description: Detecta a stack de um projeto já existente (brownfield) e instala os arquivos da metodologia DARE — incluindo os comandos/skills de IDE — sem tocar no código. Mapeia o CLI `dare discover`.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Adotar o DARE em um projeto existente
|
|
7
|
+
|
|
8
|
+
Detecta a stack de um projeto já existente (brownfield) e instala os arquivos da metodologia DARE — incluindo os comandos/skills de IDE — sem tocar no código.
|
|
9
|
+
|
|
10
|
+
> Este comando expõe o CLI `dare discover` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
11
|
+
|
|
12
|
+
## Quando usar
|
|
13
|
+
|
|
14
|
+
- O usuário quer adotar o DARE em um repositório que **já existe**.
|
|
15
|
+
- Para entender/documentar o legado em profundidade depois, encadeie com `/dare-reverse` e `/dare-dna`.
|
|
16
|
+
|
|
17
|
+
## Como rodar
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
dare discover
|
|
21
|
+
dare discover --dir ./caminho/do/projeto
|
|
22
|
+
dare discover --check # só mostra a detecção, sem instalar nada
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## O que fazer
|
|
26
|
+
|
|
27
|
+
1. Rode `dare discover --check` primeiro para revisar a stack detectada.
|
|
28
|
+
2. Se a detecção estiver correta, rode `dare discover` para instalar os artefatos DARE + comandos de IDE.
|
|
29
|
+
3. Próximo passo: `/dare-reverse` (Fase 0 — coleta) e `/dare-dna` (convenções).
|
|
30
|
+
|
|
31
|
+
## Comandos relacionados
|
|
32
|
+
|
|
33
|
+
`/dare-reverse` · `/dare-dna` · `/dare-migrate`
|
|
@@ -1,63 +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`.
|
|
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`.
|