@dewtech/dare-cli 2.17.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +98 -3
- package/dist/__tests__/confidence.test.d.ts +2 -0
- package/dist/__tests__/confidence.test.d.ts.map +1 -0
- package/dist/__tests__/confidence.test.js +73 -0
- package/dist/__tests__/confidence.test.js.map +1 -0
- package/dist/__tests__/datamodel.test.d.ts +2 -0
- package/dist/__tests__/datamodel.test.d.ts.map +1 -0
- package/dist/__tests__/datamodel.test.js +131 -0
- package/dist/__tests__/datamodel.test.js.map +1 -0
- package/dist/__tests__/dna-detector.test.d.ts +2 -0
- package/dist/__tests__/dna-detector.test.d.ts.map +1 -0
- package/dist/__tests__/dna-detector.test.js +97 -0
- package/dist/__tests__/dna-detector.test.js.map +1 -0
- package/dist/__tests__/dna-facts.test.d.ts +2 -0
- package/dist/__tests__/dna-facts.test.d.ts.map +1 -0
- package/dist/__tests__/dna-facts.test.js +44 -0
- package/dist/__tests__/dna-facts.test.js.map +1 -0
- package/dist/__tests__/graph-renderer.test.d.ts +2 -0
- package/dist/__tests__/graph-renderer.test.d.ts.map +1 -0
- package/dist/__tests__/graph-renderer.test.js +85 -0
- package/dist/__tests__/graph-renderer.test.js.map +1 -0
- package/dist/__tests__/migration.test.d.ts +2 -0
- package/dist/__tests__/migration.test.d.ts.map +1 -0
- package/dist/__tests__/migration.test.js +77 -0
- package/dist/__tests__/migration.test.js.map +1 -0
- package/dist/__tests__/module-detector.test.d.ts +2 -0
- package/dist/__tests__/module-detector.test.d.ts.map +1 -0
- package/dist/__tests__/module-detector.test.js +83 -0
- package/dist/__tests__/module-detector.test.js.map +1 -0
- package/dist/__tests__/refine.test.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 +32 -3
- package/dist/bin/dare.js.map +1 -1
- package/dist/commands/blueprint.js +122 -122
- package/dist/commands/dag.d.ts.map +1 -1
- package/dist/commands/dag.js +43 -79
- package/dist/commands/dag.js.map +1 -1
- package/dist/commands/dna.d.ts +3 -0
- package/dist/commands/dna.d.ts.map +1 -0
- package/dist/commands/dna.js +69 -0
- package/dist/commands/dna.js.map +1 -0
- package/dist/commands/migrate.d.ts +3 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +101 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/new.d.ts +16 -0
- package/dist/commands/new.d.ts.map +1 -0
- package/dist/commands/new.js +103 -0
- package/dist/commands/new.js.map +1 -0
- package/dist/commands/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/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/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.js +252 -252
- package/dist/utils/reverse-facts.d.ts +50 -0
- package/dist/utils/reverse-facts.d.ts.map +1 -0
- package/dist/utils/reverse-facts.js +291 -0
- package/dist/utils/reverse-facts.js.map +1 -0
- package/dist/utils/stack-bootstrap.js +371 -371
- package/package.json +8 -3
- 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/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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dewtech/dare-cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "DARE Framework - CLI, GraphRAG engine, MCP server and shared types in a single package",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"chalk": "^5.3.0",
|
|
24
24
|
"commander": "^11.0.0",
|
|
25
|
+
"figlet": "^1.7.0",
|
|
26
|
+
"gradient-string": "^2.0.2",
|
|
25
27
|
"cors": "^2.8.5",
|
|
26
28
|
"express": "^4.18.0",
|
|
27
29
|
"fs-extra": "^11.1.1",
|
|
@@ -31,10 +33,13 @@
|
|
|
31
33
|
"pino": "^8.16.0",
|
|
32
34
|
"pino-pretty": "^10.2.0",
|
|
33
35
|
"sql.js": "^1.11.0",
|
|
34
|
-
"yaml": "^2.3.1"
|
|
36
|
+
"yaml": "^2.3.1",
|
|
37
|
+
"@dewtech/dare-stack-ruby-rails-8": "1.0.0"
|
|
35
38
|
},
|
|
36
39
|
"devDependencies": {
|
|
37
40
|
"@types/cors": "^2.8.13",
|
|
41
|
+
"@types/figlet": "^1.5.8",
|
|
42
|
+
"@types/gradient-string": "^1.1.6",
|
|
38
43
|
"@types/express": "^4.17.0",
|
|
39
44
|
"@types/fs-extra": "^11.0.1",
|
|
40
45
|
"@types/inquirer": "^9.0.3",
|
|
@@ -73,7 +78,7 @@
|
|
|
73
78
|
},
|
|
74
79
|
"scripts": {
|
|
75
80
|
"sync": "tsx scripts/sync-implementations.ts",
|
|
76
|
-
"build": "tsx scripts/sync-implementations.ts && tsc",
|
|
81
|
+
"build": "tsx scripts/sync-implementations.ts && tsc && node -e \"require('fs-extra').copySync('src/skills/registry-mock.json','dist/skills/registry-mock.json')\"",
|
|
77
82
|
"dev": "tsx watch src/bin/dare.ts",
|
|
78
83
|
"test": "vitest run",
|
|
79
84
|
"lint": "eslint src --ext .ts",
|
|
@@ -1,280 +1,280 @@
|
|
|
1
|
-
# Exemplo completo de dare-dag.yaml para o DARE CLI
|
|
2
|
-
#
|
|
3
|
-
# Este arquivo ilustra como estruturar um grafo de tasks (DAG) para o método DARE.
|
|
4
|
-
# Copie e customize para seu projeto.
|
|
5
|
-
#
|
|
6
|
-
# Campos:
|
|
7
|
-
# - name: nome do projeto
|
|
8
|
-
# - version: semântica (versionamento do projeto)
|
|
9
|
-
# - created_at: timestamp
|
|
10
|
-
# - tasks: dicionário de tasks
|
|
11
|
-
#
|
|
12
|
-
# Cada task tem:
|
|
13
|
-
# - name (obrigatório): nome legível da tarefa
|
|
14
|
-
# - complexity (obrigatório): LOW | MEDIUM | HIGH
|
|
15
|
-
# - rank (opcional): ordem no DAG, calculado automaticamente se omitido
|
|
16
|
-
# - depends_on (opcional): lista de task IDs que DEVE completar antes
|
|
17
|
-
# - status (opcional): PENDING | RUNNING | DONE | FAILED
|
|
18
|
-
# - subtask_prompt (opcional): descrição detalhada para o agente executar
|
|
19
|
-
# - blueprint_section (opcional): link para seção em BLUEPRINT.md
|
|
20
|
-
|
|
21
|
-
name: "API de Autenticação com JWT"
|
|
22
|
-
version: "1.0"
|
|
23
|
-
created_at: "2026-05-14T10:30:00Z"
|
|
24
|
-
|
|
25
|
-
# Metadados opcionais
|
|
26
|
-
metadata:
|
|
27
|
-
project_url: "https://github.com/seu-org/seu-projeto"
|
|
28
|
-
team: "Backend Team"
|
|
29
|
-
deadline: "2026-06-30"
|
|
30
|
-
|
|
31
|
-
# ============================
|
|
32
|
-
# TAREFAS (TASKS)
|
|
33
|
-
# ============================
|
|
34
|
-
|
|
35
|
-
tasks:
|
|
36
|
-
# ─────────────────────────────────────────────────────────────
|
|
37
|
-
# RANK 1 — Fundação (sem dependências)
|
|
38
|
-
# Estas tarefas podem rodar em paralelo — nenhuma depende uma da outra
|
|
39
|
-
# ─────────────────────────────────────────────────────────────
|
|
40
|
-
|
|
41
|
-
task-001:
|
|
42
|
-
name: "Setup Boilerplate"
|
|
43
|
-
complexity: "LOW"
|
|
44
|
-
# rank será calculado como 1 automaticamente (sem deps)
|
|
45
|
-
depends_on: []
|
|
46
|
-
status: "DONE" # ✅ Já completada
|
|
47
|
-
subtask_prompt: |
|
|
48
|
-
Crie estrutura básica Node.js + NestJS:
|
|
49
|
-
- package.json com deps (typescript, express, dotenv)
|
|
50
|
-
- tsconfig.json
|
|
51
|
-
- .gitignore, .env.example
|
|
52
|
-
- scripts: dev, build, test, lint
|
|
53
|
-
blueprint_section: "1. Foundation"
|
|
54
|
-
|
|
55
|
-
task-002:
|
|
56
|
-
name: "Setup Database Schema"
|
|
57
|
-
complexity: "MEDIUM"
|
|
58
|
-
depends_on: []
|
|
59
|
-
status: "DONE" # ✅ Completada
|
|
60
|
-
subtask_prompt: |
|
|
61
|
-
Defina schema no banco de dados:
|
|
62
|
-
- Tabela `users` (id, email, password_hash, created_at, updated_at)
|
|
63
|
-
- Tabela `refresh_tokens` (id, user_id, token_hash, expires_at, revoked_at)
|
|
64
|
-
- Índices em email e token
|
|
65
|
-
- Migrations com Prisma / TypeORM / Knex
|
|
66
|
-
blueprint_section: "1. Foundation"
|
|
67
|
-
|
|
68
|
-
# ─────────────────────────────────────────────────────────────
|
|
69
|
-
# RANK 2 — Core (depende de Rank 1)
|
|
70
|
-
# task-003 depende de task-001 (boilerplate)
|
|
71
|
-
# task-004 depende de task-002 (schema)
|
|
72
|
-
# Podem rodar em paralelo uma com a outra
|
|
73
|
-
# ─────────────────────────────────────────────────────────────
|
|
74
|
-
|
|
75
|
-
task-003:
|
|
76
|
-
name: "Implement JWT Auth Middleware"
|
|
77
|
-
complexity: "HIGH"
|
|
78
|
-
depends_on:
|
|
79
|
-
- "task-001" # Precisa do boilerplate
|
|
80
|
-
status: "RUNNING" # ⚙️ Em andamento
|
|
81
|
-
subtask_prompt: |
|
|
82
|
-
Crie middleware de autenticação:
|
|
83
|
-
- Gere JWT (HS256 ou RS256) com payload (user_id, iat, exp)
|
|
84
|
-
- Middleware que valida JWT em cada request
|
|
85
|
-
- Extraia user_id do token e injete em req.user
|
|
86
|
-
- Trate expiração, inválido, ausente
|
|
87
|
-
- Logs de tentativas falhadas
|
|
88
|
-
blueprint_section: "2. Authentication Core"
|
|
89
|
-
|
|
90
|
-
task-004:
|
|
91
|
-
name: "Implement Refresh Token Flow"
|
|
92
|
-
complexity: "MEDIUM"
|
|
93
|
-
depends_on:
|
|
94
|
-
- "task-001", # Precisa do boilerplate
|
|
95
|
-
- "task-002" # Precisa do schema
|
|
96
|
-
status: "PENDING" # ⏳ Não iniciada
|
|
97
|
-
subtask_prompt: |
|
|
98
|
-
Implemente rotação de refresh tokens:
|
|
99
|
-
- Endpoint POST /auth/refresh que aceita refresh_token
|
|
100
|
-
- Valide refresh_token contra banco de dados
|
|
101
|
-
- Gere novo access_token + refresh_token
|
|
102
|
-
- Revogue token antigo no banco
|
|
103
|
-
- Implemente segurança: limite rate, valide origin
|
|
104
|
-
blueprint_section: "2. Authentication Core"
|
|
105
|
-
|
|
106
|
-
# ─────────────────────────────────────────────────────────────
|
|
107
|
-
# RANK 3 — Integração & Testes (depende de Rank 2)
|
|
108
|
-
# task-005 depende de task-003 (middleware)
|
|
109
|
-
# task-006 depende de task-003 e task-004 (ambos cores)
|
|
110
|
-
# ─────────────────────────────────────────────────────────────
|
|
111
|
-
|
|
112
|
-
task-005:
|
|
113
|
-
name: "Add Login & Logout Endpoints"
|
|
114
|
-
complexity: "LOW"
|
|
115
|
-
depends_on:
|
|
116
|
-
- "task-003" # Precisa do middleware JWT
|
|
117
|
-
status: "PENDING" # ⏳ Não iniciada
|
|
118
|
-
subtask_prompt: |
|
|
119
|
-
Crie endpoints de autenticação:
|
|
120
|
-
- POST /auth/login (email, password) → access_token, refresh_token
|
|
121
|
-
- POST /auth/logout (revoga refresh_token)
|
|
122
|
-
- Validação de entrada (email válido, password não vazio)
|
|
123
|
-
- Hash de password com bcrypt/argon2
|
|
124
|
-
- Testes unitários para sucesso e erro
|
|
125
|
-
blueprint_section: "3. API Endpoints"
|
|
126
|
-
|
|
127
|
-
task-006:
|
|
128
|
-
name: "Implement Tests & Security Hardening"
|
|
129
|
-
complexity: "HIGH"
|
|
130
|
-
depends_on:
|
|
131
|
-
- "task-003", # Precisa do middleware
|
|
132
|
-
- "task-004" # Precisa do refresh flow
|
|
133
|
-
status: "PENDING" # ⏳ Não iniciada
|
|
134
|
-
subtask_prompt: |
|
|
135
|
-
Teste segurança e implemente proteções:
|
|
136
|
-
- Testes end-to-end: login → refresh → logout
|
|
137
|
-
- Testes de segurança: expiração, inválido, reuso de token
|
|
138
|
-
- CORS policy (origem permitida)
|
|
139
|
-
- Helmet.js para headers de segurança
|
|
140
|
-
- Rate limiting no /auth/refresh
|
|
141
|
-
- CSP (Content Security Policy)
|
|
142
|
-
- Logs de auditoria (tentativas falhadas)
|
|
143
|
-
blueprint_section: "4. Security & Testing"
|
|
144
|
-
|
|
145
|
-
# ─────────────────────────────────────────────────────────────
|
|
146
|
-
# RANK 4 — Documentação & Deploy (depende de tudo)
|
|
147
|
-
# task-007 depende de toda core (task-005, task-006)
|
|
148
|
-
# ─────────────────────────────────────────────────────────────
|
|
149
|
-
|
|
150
|
-
task-007:
|
|
151
|
-
name: "Document API & Prepare Deploy"
|
|
152
|
-
complexity: "LOW"
|
|
153
|
-
depends_on:
|
|
154
|
-
- "task-005", # Precisa endpoints prontos
|
|
155
|
-
- "task-006" # Precisa testes passando
|
|
156
|
-
status: "PENDING" # ⏳ Não iniciada
|
|
157
|
-
subtask_prompt: |
|
|
158
|
-
Documente e prepare deployment:
|
|
159
|
-
- OpenAPI/Swagger documentation
|
|
160
|
-
- README com exemplos de uso (curl/Postman)
|
|
161
|
-
- Environment variables documentation
|
|
162
|
-
- Docker setup (Dockerfile, docker-compose)
|
|
163
|
-
- CI/CD pipeline (GitHub Actions / GitLab CI)
|
|
164
|
-
- Health check endpoint
|
|
165
|
-
blueprint_section: "5. Documentation & Deploy"
|
|
166
|
-
|
|
167
|
-
# ============================
|
|
168
|
-
# EXPLICAÇÃO DO GRAFO
|
|
169
|
-
# ============================
|
|
170
|
-
|
|
171
|
-
# Visualização (Rank = camada):
|
|
172
|
-
#
|
|
173
|
-
# Rank 1 (Fundação — paralelo)
|
|
174
|
-
# ├── task-001 [LOW] ✅
|
|
175
|
-
# └── task-002 [MEDIUM] ✅
|
|
176
|
-
#
|
|
177
|
-
# Rank 2 (Core — paralelo)
|
|
178
|
-
# ├── task-003 [HIGH] ⚙️ (depende: 001)
|
|
179
|
-
# └── task-004 [MEDIUM] ⏳ (depende: 001, 002)
|
|
180
|
-
#
|
|
181
|
-
# Rank 3 (Integração — paralelo)
|
|
182
|
-
# ├── task-005 [LOW] ⏳ (depende: 003)
|
|
183
|
-
# └── task-006 [HIGH] ⏳ (depende: 003, 004)
|
|
184
|
-
#
|
|
185
|
-
# Rank 4 (Documentação)
|
|
186
|
-
# └── task-007 [LOW] ⏳ (depende: 005, 006)
|
|
187
|
-
|
|
188
|
-
# ============================
|
|
189
|
-
# COMO USAR ESTE ARQUIVO
|
|
190
|
-
# ============================
|
|
191
|
-
|
|
192
|
-
# 1. Copie para seu projeto:
|
|
193
|
-
# cp packages/cli/templates/DARE-dag-example.yaml DARE/dare-dag.yaml
|
|
194
|
-
|
|
195
|
-
# 2. Customize:
|
|
196
|
-
# - Substitua nomes das tasks pelo seu projeto
|
|
197
|
-
# - Ajuste complexidade (LOW/MEDIUM/HIGH)
|
|
198
|
-
# - Defina dependências corretas
|
|
199
|
-
# - Atualize blueprint_section se tiver um BLUEPRINT.md
|
|
200
|
-
|
|
201
|
-
# 3. Valide:
|
|
202
|
-
# dare dag validate
|
|
203
|
-
|
|
204
|
-
# 4. Visualize:
|
|
205
|
-
# /dare-dag-viz
|
|
206
|
-
# → Abre em https://excalidraw.com com cores por complexidade
|
|
207
|
-
|
|
208
|
-
# 5. Atualize status conforme avança:
|
|
209
|
-
# task-003:
|
|
210
|
-
# status: "DONE" # Após completar
|
|
211
|
-
|
|
212
|
-
# ============================
|
|
213
|
-
# CONVENÇÕES
|
|
214
|
-
# ============================
|
|
215
|
-
|
|
216
|
-
# Task ID:
|
|
217
|
-
# Formato: task-NNN-slug
|
|
218
|
-
# - NNN = número sequencial (001, 002, ...)
|
|
219
|
-
# - slug = nome legível em kebab-case
|
|
220
|
-
# Exemplos: task-001-setup-boilerplate, task-003-jwt-middleware
|
|
221
|
-
|
|
222
|
-
# Complexidade:
|
|
223
|
-
# - LOW: < 30 min, padrão bem definido
|
|
224
|
-
# - MEDIUM: 2-8 horas, múltiplas decisões
|
|
225
|
-
# - HIGH: 1+ dias, design crítico, risco alto
|
|
226
|
-
|
|
227
|
-
# Status:
|
|
228
|
-
# - PENDING: não iniciada, aguardando
|
|
229
|
-
# - RUNNING: em execução neste momento
|
|
230
|
-
# - DONE: completada com sucesso
|
|
231
|
-
# - FAILED: falhou, requer ajuste
|
|
232
|
-
|
|
233
|
-
# Depends_on:
|
|
234
|
-
# Lista outras tasks que devem completar ANTES desta
|
|
235
|
-
# Sem ciclos permitidos (A→B→A é inválido)
|
|
236
|
-
|
|
237
|
-
# Rank (automático):
|
|
238
|
-
# Calculado como: 1 + max(rank das dependências)
|
|
239
|
-
# Rank 1 = nenhuma dependência
|
|
240
|
-
# Rank N = executa após Rank N-1
|
|
241
|
-
|
|
242
|
-
# ============================
|
|
243
|
-
# INTEGRAÇÃO COM DARE WORKFLOW
|
|
244
|
-
# ============================
|
|
245
|
-
|
|
246
|
-
# Phase 1: DESIGN (você define requisitos)
|
|
247
|
-
# → Cria DARE/DESIGN.md
|
|
248
|
-
#
|
|
249
|
-
# Phase 2: ARCHITECT (Claude Code/Cursor propõe arquitetura)
|
|
250
|
-
# → Cria DARE/BLUEPRINT.md
|
|
251
|
-
# → Você aprova / ajusta
|
|
252
|
-
#
|
|
253
|
-
# Phase 3: REVIEW (Claude Code propõe tasks)
|
|
254
|
-
# → Cria DARE/dare-dag.yaml (este arquivo!)
|
|
255
|
-
# → Você aprova structure
|
|
256
|
-
#
|
|
257
|
-
# Phase 4: EXECUTE (Claude Code implementa)
|
|
258
|
-
# → Roda dare execute --ralph-loop
|
|
259
|
-
# → Testes automáticos (build, test, lint)
|
|
260
|
-
# → Abre PR / commit automático
|
|
261
|
-
|
|
262
|
-
# ============================
|
|
263
|
-
# REFERÊNCIAS
|
|
264
|
-
# ============================
|
|
265
|
-
|
|
266
|
-
# DARE Methodology: https://github.com/dewtech-technologies/dare-method
|
|
267
|
-
# Design Tokens (cores, fonts): docs/DESIGN-TOKENS-EXCALIDRAW.md
|
|
268
|
-
# Visualization: /dare-dag-viz (gera dag-graph.excalidraw)
|
|
269
|
-
# Excalidraw app: https://excalidraw.com
|
|
270
|
-
|
|
271
|
-
# ============================
|
|
272
|
-
# LICENÇA
|
|
273
|
-
# ============================
|
|
274
|
-
|
|
275
|
-
# Este arquivo e o método DARE são
|
|
276
|
-
# Você é livre para usar, modificar, compartilhar
|
|
277
|
-
#
|
|
278
|
-
#
|
|
279
|
-
# Créditos: Wanderson Leandro (Dewtech Technologies)
|
|
280
|
-
# Inspirações: Ralph Loop (termo original), Excalidraw (ferramenta)
|
|
1
|
+
# Exemplo completo de dare-dag.yaml para o DARE CLI
|
|
2
|
+
#
|
|
3
|
+
# Este arquivo ilustra como estruturar um grafo de tasks (DAG) para o método DARE.
|
|
4
|
+
# Copie e customize para seu projeto.
|
|
5
|
+
#
|
|
6
|
+
# Campos:
|
|
7
|
+
# - name: nome do projeto
|
|
8
|
+
# - version: semântica (versionamento do projeto)
|
|
9
|
+
# - created_at: timestamp
|
|
10
|
+
# - tasks: dicionário de tasks
|
|
11
|
+
#
|
|
12
|
+
# Cada task tem:
|
|
13
|
+
# - name (obrigatório): nome legível da tarefa
|
|
14
|
+
# - complexity (obrigatório): LOW | MEDIUM | HIGH
|
|
15
|
+
# - rank (opcional): ordem no DAG, calculado automaticamente se omitido
|
|
16
|
+
# - depends_on (opcional): lista de task IDs que DEVE completar antes
|
|
17
|
+
# - status (opcional): PENDING | RUNNING | DONE | FAILED
|
|
18
|
+
# - subtask_prompt (opcional): descrição detalhada para o agente executar
|
|
19
|
+
# - blueprint_section (opcional): link para seção em BLUEPRINT.md
|
|
20
|
+
|
|
21
|
+
name: "API de Autenticação com JWT"
|
|
22
|
+
version: "1.0"
|
|
23
|
+
created_at: "2026-05-14T10:30:00Z"
|
|
24
|
+
|
|
25
|
+
# Metadados opcionais
|
|
26
|
+
metadata:
|
|
27
|
+
project_url: "https://github.com/seu-org/seu-projeto"
|
|
28
|
+
team: "Backend Team"
|
|
29
|
+
deadline: "2026-06-30"
|
|
30
|
+
|
|
31
|
+
# ============================
|
|
32
|
+
# TAREFAS (TASKS)
|
|
33
|
+
# ============================
|
|
34
|
+
|
|
35
|
+
tasks:
|
|
36
|
+
# ─────────────────────────────────────────────────────────────
|
|
37
|
+
# RANK 1 — Fundação (sem dependências)
|
|
38
|
+
# Estas tarefas podem rodar em paralelo — nenhuma depende uma da outra
|
|
39
|
+
# ─────────────────────────────────────────────────────────────
|
|
40
|
+
|
|
41
|
+
task-001:
|
|
42
|
+
name: "Setup Boilerplate"
|
|
43
|
+
complexity: "LOW"
|
|
44
|
+
# rank será calculado como 1 automaticamente (sem deps)
|
|
45
|
+
depends_on: []
|
|
46
|
+
status: "DONE" # ✅ Já completada
|
|
47
|
+
subtask_prompt: |
|
|
48
|
+
Crie estrutura básica Node.js + NestJS:
|
|
49
|
+
- package.json com deps (typescript, express, dotenv)
|
|
50
|
+
- tsconfig.json
|
|
51
|
+
- .gitignore, .env.example
|
|
52
|
+
- scripts: dev, build, test, lint
|
|
53
|
+
blueprint_section: "1. Foundation"
|
|
54
|
+
|
|
55
|
+
task-002:
|
|
56
|
+
name: "Setup Database Schema"
|
|
57
|
+
complexity: "MEDIUM"
|
|
58
|
+
depends_on: []
|
|
59
|
+
status: "DONE" # ✅ Completada
|
|
60
|
+
subtask_prompt: |
|
|
61
|
+
Defina schema no banco de dados:
|
|
62
|
+
- Tabela `users` (id, email, password_hash, created_at, updated_at)
|
|
63
|
+
- Tabela `refresh_tokens` (id, user_id, token_hash, expires_at, revoked_at)
|
|
64
|
+
- Índices em email e token
|
|
65
|
+
- Migrations com Prisma / TypeORM / Knex
|
|
66
|
+
blueprint_section: "1. Foundation"
|
|
67
|
+
|
|
68
|
+
# ─────────────────────────────────────────────────────────────
|
|
69
|
+
# RANK 2 — Core (depende de Rank 1)
|
|
70
|
+
# task-003 depende de task-001 (boilerplate)
|
|
71
|
+
# task-004 depende de task-002 (schema)
|
|
72
|
+
# Podem rodar em paralelo uma com a outra
|
|
73
|
+
# ─────────────────────────────────────────────────────────────
|
|
74
|
+
|
|
75
|
+
task-003:
|
|
76
|
+
name: "Implement JWT Auth Middleware"
|
|
77
|
+
complexity: "HIGH"
|
|
78
|
+
depends_on:
|
|
79
|
+
- "task-001" # Precisa do boilerplate
|
|
80
|
+
status: "RUNNING" # ⚙️ Em andamento
|
|
81
|
+
subtask_prompt: |
|
|
82
|
+
Crie middleware de autenticação:
|
|
83
|
+
- Gere JWT (HS256 ou RS256) com payload (user_id, iat, exp)
|
|
84
|
+
- Middleware que valida JWT em cada request
|
|
85
|
+
- Extraia user_id do token e injete em req.user
|
|
86
|
+
- Trate expiração, inválido, ausente
|
|
87
|
+
- Logs de tentativas falhadas
|
|
88
|
+
blueprint_section: "2. Authentication Core"
|
|
89
|
+
|
|
90
|
+
task-004:
|
|
91
|
+
name: "Implement Refresh Token Flow"
|
|
92
|
+
complexity: "MEDIUM"
|
|
93
|
+
depends_on:
|
|
94
|
+
- "task-001", # Precisa do boilerplate
|
|
95
|
+
- "task-002" # Precisa do schema
|
|
96
|
+
status: "PENDING" # ⏳ Não iniciada
|
|
97
|
+
subtask_prompt: |
|
|
98
|
+
Implemente rotação de refresh tokens:
|
|
99
|
+
- Endpoint POST /auth/refresh que aceita refresh_token
|
|
100
|
+
- Valide refresh_token contra banco de dados
|
|
101
|
+
- Gere novo access_token + refresh_token
|
|
102
|
+
- Revogue token antigo no banco
|
|
103
|
+
- Implemente segurança: limite rate, valide origin
|
|
104
|
+
blueprint_section: "2. Authentication Core"
|
|
105
|
+
|
|
106
|
+
# ─────────────────────────────────────────────────────────────
|
|
107
|
+
# RANK 3 — Integração & Testes (depende de Rank 2)
|
|
108
|
+
# task-005 depende de task-003 (middleware)
|
|
109
|
+
# task-006 depende de task-003 e task-004 (ambos cores)
|
|
110
|
+
# ─────────────────────────────────────────────────────────────
|
|
111
|
+
|
|
112
|
+
task-005:
|
|
113
|
+
name: "Add Login & Logout Endpoints"
|
|
114
|
+
complexity: "LOW"
|
|
115
|
+
depends_on:
|
|
116
|
+
- "task-003" # Precisa do middleware JWT
|
|
117
|
+
status: "PENDING" # ⏳ Não iniciada
|
|
118
|
+
subtask_prompt: |
|
|
119
|
+
Crie endpoints de autenticação:
|
|
120
|
+
- POST /auth/login (email, password) → access_token, refresh_token
|
|
121
|
+
- POST /auth/logout (revoga refresh_token)
|
|
122
|
+
- Validação de entrada (email válido, password não vazio)
|
|
123
|
+
- Hash de password com bcrypt/argon2
|
|
124
|
+
- Testes unitários para sucesso e erro
|
|
125
|
+
blueprint_section: "3. API Endpoints"
|
|
126
|
+
|
|
127
|
+
task-006:
|
|
128
|
+
name: "Implement Tests & Security Hardening"
|
|
129
|
+
complexity: "HIGH"
|
|
130
|
+
depends_on:
|
|
131
|
+
- "task-003", # Precisa do middleware
|
|
132
|
+
- "task-004" # Precisa do refresh flow
|
|
133
|
+
status: "PENDING" # ⏳ Não iniciada
|
|
134
|
+
subtask_prompt: |
|
|
135
|
+
Teste segurança e implemente proteções:
|
|
136
|
+
- Testes end-to-end: login → refresh → logout
|
|
137
|
+
- Testes de segurança: expiração, inválido, reuso de token
|
|
138
|
+
- CORS policy (origem permitida)
|
|
139
|
+
- Helmet.js para headers de segurança
|
|
140
|
+
- Rate limiting no /auth/refresh
|
|
141
|
+
- CSP (Content Security Policy)
|
|
142
|
+
- Logs de auditoria (tentativas falhadas)
|
|
143
|
+
blueprint_section: "4. Security & Testing"
|
|
144
|
+
|
|
145
|
+
# ─────────────────────────────────────────────────────────────
|
|
146
|
+
# RANK 4 — Documentação & Deploy (depende de tudo)
|
|
147
|
+
# task-007 depende de toda core (task-005, task-006)
|
|
148
|
+
# ─────────────────────────────────────────────────────────────
|
|
149
|
+
|
|
150
|
+
task-007:
|
|
151
|
+
name: "Document API & Prepare Deploy"
|
|
152
|
+
complexity: "LOW"
|
|
153
|
+
depends_on:
|
|
154
|
+
- "task-005", # Precisa endpoints prontos
|
|
155
|
+
- "task-006" # Precisa testes passando
|
|
156
|
+
status: "PENDING" # ⏳ Não iniciada
|
|
157
|
+
subtask_prompt: |
|
|
158
|
+
Documente e prepare deployment:
|
|
159
|
+
- OpenAPI/Swagger documentation
|
|
160
|
+
- README com exemplos de uso (curl/Postman)
|
|
161
|
+
- Environment variables documentation
|
|
162
|
+
- Docker setup (Dockerfile, docker-compose)
|
|
163
|
+
- CI/CD pipeline (GitHub Actions / GitLab CI)
|
|
164
|
+
- Health check endpoint
|
|
165
|
+
blueprint_section: "5. Documentation & Deploy"
|
|
166
|
+
|
|
167
|
+
# ============================
|
|
168
|
+
# EXPLICAÇÃO DO GRAFO
|
|
169
|
+
# ============================
|
|
170
|
+
|
|
171
|
+
# Visualização (Rank = camada):
|
|
172
|
+
#
|
|
173
|
+
# Rank 1 (Fundação — paralelo)
|
|
174
|
+
# ├── task-001 [LOW] ✅
|
|
175
|
+
# └── task-002 [MEDIUM] ✅
|
|
176
|
+
#
|
|
177
|
+
# Rank 2 (Core — paralelo)
|
|
178
|
+
# ├── task-003 [HIGH] ⚙️ (depende: 001)
|
|
179
|
+
# └── task-004 [MEDIUM] ⏳ (depende: 001, 002)
|
|
180
|
+
#
|
|
181
|
+
# Rank 3 (Integração — paralelo)
|
|
182
|
+
# ├── task-005 [LOW] ⏳ (depende: 003)
|
|
183
|
+
# └── task-006 [HIGH] ⏳ (depende: 003, 004)
|
|
184
|
+
#
|
|
185
|
+
# Rank 4 (Documentação)
|
|
186
|
+
# └── task-007 [LOW] ⏳ (depende: 005, 006)
|
|
187
|
+
|
|
188
|
+
# ============================
|
|
189
|
+
# COMO USAR ESTE ARQUIVO
|
|
190
|
+
# ============================
|
|
191
|
+
|
|
192
|
+
# 1. Copie para seu projeto:
|
|
193
|
+
# cp packages/cli/templates/DARE-dag-example.yaml DARE/dare-dag.yaml
|
|
194
|
+
|
|
195
|
+
# 2. Customize:
|
|
196
|
+
# - Substitua nomes das tasks pelo seu projeto
|
|
197
|
+
# - Ajuste complexidade (LOW/MEDIUM/HIGH)
|
|
198
|
+
# - Defina dependências corretas
|
|
199
|
+
# - Atualize blueprint_section se tiver um BLUEPRINT.md
|
|
200
|
+
|
|
201
|
+
# 3. Valide:
|
|
202
|
+
# dare dag validate
|
|
203
|
+
|
|
204
|
+
# 4. Visualize:
|
|
205
|
+
# /dare-dag-viz
|
|
206
|
+
# → Abre em https://excalidraw.com com cores por complexidade
|
|
207
|
+
|
|
208
|
+
# 5. Atualize status conforme avança:
|
|
209
|
+
# task-003:
|
|
210
|
+
# status: "DONE" # Após completar
|
|
211
|
+
|
|
212
|
+
# ============================
|
|
213
|
+
# CONVENÇÕES
|
|
214
|
+
# ============================
|
|
215
|
+
|
|
216
|
+
# Task ID:
|
|
217
|
+
# Formato: task-NNN-slug
|
|
218
|
+
# - NNN = número sequencial (001, 002, ...)
|
|
219
|
+
# - slug = nome legível em kebab-case
|
|
220
|
+
# Exemplos: task-001-setup-boilerplate, task-003-jwt-middleware
|
|
221
|
+
|
|
222
|
+
# Complexidade:
|
|
223
|
+
# - LOW: < 30 min, padrão bem definido
|
|
224
|
+
# - MEDIUM: 2-8 horas, múltiplas decisões
|
|
225
|
+
# - HIGH: 1+ dias, design crítico, risco alto
|
|
226
|
+
|
|
227
|
+
# Status:
|
|
228
|
+
# - PENDING: não iniciada, aguardando
|
|
229
|
+
# - RUNNING: em execução neste momento
|
|
230
|
+
# - DONE: completada com sucesso
|
|
231
|
+
# - FAILED: falhou, requer ajuste
|
|
232
|
+
|
|
233
|
+
# Depends_on:
|
|
234
|
+
# Lista outras tasks que devem completar ANTES desta
|
|
235
|
+
# Sem ciclos permitidos (A→B→A é inválido)
|
|
236
|
+
|
|
237
|
+
# Rank (automático):
|
|
238
|
+
# Calculado como: 1 + max(rank das dependências)
|
|
239
|
+
# Rank 1 = nenhuma dependência
|
|
240
|
+
# Rank N = executa após Rank N-1
|
|
241
|
+
|
|
242
|
+
# ============================
|
|
243
|
+
# INTEGRAÇÃO COM DARE WORKFLOW
|
|
244
|
+
# ============================
|
|
245
|
+
|
|
246
|
+
# Phase 1: DESIGN (você define requisitos)
|
|
247
|
+
# → Cria DARE/DESIGN.md
|
|
248
|
+
#
|
|
249
|
+
# Phase 2: ARCHITECT (Claude Code/Cursor propõe arquitetura)
|
|
250
|
+
# → Cria DARE/BLUEPRINT.md
|
|
251
|
+
# → Você aprova / ajusta
|
|
252
|
+
#
|
|
253
|
+
# Phase 3: REVIEW (Claude Code propõe tasks)
|
|
254
|
+
# → Cria DARE/dare-dag.yaml (este arquivo!)
|
|
255
|
+
# → Você aprova structure
|
|
256
|
+
#
|
|
257
|
+
# Phase 4: EXECUTE (Claude Code implementa)
|
|
258
|
+
# → Roda dare execute --ralph-loop
|
|
259
|
+
# → Testes automáticos (build, test, lint)
|
|
260
|
+
# → Abre PR / commit automático
|
|
261
|
+
|
|
262
|
+
# ============================
|
|
263
|
+
# REFERÊNCIAS
|
|
264
|
+
# ============================
|
|
265
|
+
|
|
266
|
+
# DARE Methodology: https://github.com/dewtech-technologies/dare-method
|
|
267
|
+
# Design Tokens (cores, fonts): docs/DESIGN-TOKENS-EXCALIDRAW.md
|
|
268
|
+
# Visualization: /dare-dag-viz (gera dag-graph.excalidraw)
|
|
269
|
+
# Excalidraw app: https://excalidraw.com
|
|
270
|
+
|
|
271
|
+
# ============================
|
|
272
|
+
# LICENÇA
|
|
273
|
+
# ============================
|
|
274
|
+
|
|
275
|
+
# Este arquivo e o método DARE são MIT (D-001 — MIT permanente).
|
|
276
|
+
# Você é livre para usar, modificar, compartilhar, distribuir e
|
|
277
|
+
# relicenciar derivados conforme MIT permite.
|
|
278
|
+
#
|
|
279
|
+
# Créditos: Wanderson Leandro (Dewtech Technologies)
|
|
280
|
+
# Inspirações: Ralph Loop (termo original), Excalidraw (ferramenta)
|