@dewtech/dare-cli 3.1.0 → 3.3.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 +5 -1
- package/dist/__tests__/dag-runner/ralph-loop.test.js +107 -45
- package/dist/__tests__/dag-runner/ralph-loop.test.js.map +1 -1
- package/dist/__tests__/dag-runner/state-store.test.d.ts +2 -0
- package/dist/__tests__/dag-runner/state-store.test.d.ts.map +1 -0
- package/dist/__tests__/dag-runner/state-store.test.js +74 -0
- package/dist/__tests__/dag-runner/state-store.test.js.map +1 -0
- package/dist/__tests__/ensure-skills.test.d.ts +2 -0
- package/dist/__tests__/ensure-skills.test.d.ts.map +1 -0
- package/dist/__tests__/ensure-skills.test.js +67 -0
- package/dist/__tests__/ensure-skills.test.js.map +1 -0
- package/dist/__tests__/ide-command-parity.test.d.ts +2 -0
- package/dist/__tests__/ide-command-parity.test.d.ts.map +1 -0
- package/dist/__tests__/ide-command-parity.test.js +59 -0
- package/dist/__tests__/ide-command-parity.test.js.map +1 -0
- package/dist/__tests__/project-generator.test.d.ts +2 -0
- package/dist/__tests__/project-generator.test.d.ts.map +1 -0
- package/dist/__tests__/project-generator.test.js +56 -0
- package/dist/__tests__/project-generator.test.js.map +1 -0
- package/dist/__tests__/reverse-collection.test.d.ts +2 -0
- package/dist/__tests__/reverse-collection.test.d.ts.map +1 -0
- package/dist/__tests__/reverse-collection.test.js +87 -0
- package/dist/__tests__/reverse-collection.test.js.map +1 -0
- package/dist/bin/dare.js +2 -0
- package/dist/bin/dare.js.map +1 -1
- package/dist/commands/__tests__/bench.spec.d.ts +2 -0
- package/dist/commands/__tests__/bench.spec.d.ts.map +1 -0
- package/dist/commands/__tests__/bench.spec.js +106 -0
- package/dist/commands/__tests__/bench.spec.js.map +1 -0
- package/dist/commands/__tests__/execute.best-of.spec.d.ts +2 -0
- package/dist/commands/__tests__/execute.best-of.spec.d.ts.map +1 -0
- package/dist/commands/__tests__/execute.best-of.spec.js +24 -0
- package/dist/commands/__tests__/execute.best-of.spec.js.map +1 -0
- package/dist/commands/__tests__/execute.telemetry.spec.d.ts +2 -0
- package/dist/commands/__tests__/execute.telemetry.spec.d.ts.map +1 -0
- package/dist/commands/__tests__/execute.telemetry.spec.js +93 -0
- package/dist/commands/__tests__/execute.telemetry.spec.js.map +1 -0
- package/dist/commands/__tests__/execute.verify.spec.d.ts +2 -0
- package/dist/commands/__tests__/execute.verify.spec.d.ts.map +1 -0
- package/dist/commands/__tests__/execute.verify.spec.js +150 -0
- package/dist/commands/__tests__/execute.verify.spec.js.map +1 -0
- package/dist/commands/bench.d.ts +10 -0
- package/dist/commands/bench.d.ts.map +1 -0
- package/dist/commands/bench.js +64 -0
- package/dist/commands/bench.js.map +1 -0
- package/dist/commands/dna.d.ts.map +1 -1
- package/dist/commands/dna.js +4 -0
- package/dist/commands/dna.js.map +1 -1
- package/dist/commands/execute-verification.d.ts +51 -0
- package/dist/commands/execute-verification.d.ts.map +1 -0
- package/dist/commands/execute-verification.js +201 -0
- package/dist/commands/execute-verification.js.map +1 -0
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +139 -2
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +4 -0
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/reverse.d.ts.map +1 -1
- package/dist/commands/reverse.js +27 -8
- package/dist/commands/reverse.js.map +1 -1
- package/dist/dag-runner/ralph-loop.d.ts +9 -9
- package/dist/dag-runner/ralph-loop.d.ts.map +1 -1
- package/dist/dag-runner/ralph-loop.js +89 -113
- package/dist/dag-runner/ralph-loop.js.map +1 -1
- package/dist/dag-runner/state-store.d.ts +14 -1
- package/dist/dag-runner/state-store.d.ts.map +1 -1
- package/dist/dag-runner/state-store.js +39 -8
- package/dist/dag-runner/state-store.js.map +1 -1
- package/dist/exec/npm-invoke.d.ts +8 -0
- package/dist/exec/npm-invoke.d.ts.map +1 -0
- package/dist/exec/npm-invoke.js +45 -0
- package/dist/exec/npm-invoke.js.map +1 -0
- package/dist/exec/safe-spawn.d.ts +21 -0
- package/dist/exec/safe-spawn.d.ts.map +1 -0
- package/dist/exec/safe-spawn.js +108 -0
- package/dist/exec/safe-spawn.js.map +1 -0
- package/dist/graphrag/types.d.ts +2 -2
- package/dist/graphrag/types.d.ts.map +1 -1
- package/dist/stacks/dna-emitter.d.ts.map +1 -1
- package/dist/stacks/dna-emitter.js +1 -10
- package/dist/stacks/dna-emitter.js.map +1 -1
- package/dist/utils/UpdateApplier.d.ts.map +1 -1
- package/dist/utils/UpdateApplier.js +8 -0
- package/dist/utils/UpdateApplier.js.map +1 -1
- package/dist/utils/datamodel.d.ts.map +1 -1
- package/dist/utils/datamodel.js +97 -20
- package/dist/utils/datamodel.js.map +1 -1
- package/dist/utils/logger.d.ts +7 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +23 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/path-safety.d.ts +22 -0
- package/dist/utils/path-safety.d.ts.map +1 -0
- package/dist/utils/path-safety.js +83 -0
- package/dist/utils/path-safety.js.map +1 -0
- package/dist/utils/project-generator.d.ts +21 -0
- package/dist/utils/project-generator.d.ts.map +1 -1
- package/dist/utils/project-generator.js +71 -0
- package/dist/utils/project-generator.js.map +1 -1
- package/dist/utils/reverse-facts.d.ts +3 -2
- package/dist/utils/reverse-facts.d.ts.map +1 -1
- package/dist/utils/reverse-facts.js +89 -8
- package/dist/utils/reverse-facts.js.map +1 -1
- package/dist/utils/stack-bootstrap.js +2 -2
- package/dist/utils/stack-bootstrap.js.map +1 -1
- package/dist/verification/__tests__/anti-tamper.test.d.ts +2 -0
- package/dist/verification/__tests__/anti-tamper.test.d.ts.map +1 -0
- package/dist/verification/__tests__/anti-tamper.test.js +73 -0
- package/dist/verification/__tests__/anti-tamper.test.js.map +1 -0
- package/dist/verification/__tests__/bench-fixtures.test.d.ts +2 -0
- package/dist/verification/__tests__/bench-fixtures.test.d.ts.map +1 -0
- package/dist/verification/__tests__/bench-fixtures.test.js +35 -0
- package/dist/verification/__tests__/bench-fixtures.test.js.map +1 -0
- package/dist/verification/__tests__/bench-harness.test.d.ts +2 -0
- package/dist/verification/__tests__/bench-harness.test.d.ts.map +1 -0
- package/dist/verification/__tests__/bench-harness.test.js +75 -0
- package/dist/verification/__tests__/bench-harness.test.js.map +1 -0
- package/dist/verification/__tests__/bench-report.test.d.ts +2 -0
- package/dist/verification/__tests__/bench-report.test.d.ts.map +1 -0
- package/dist/verification/__tests__/bench-report.test.js +73 -0
- package/dist/verification/__tests__/bench-report.test.js.map +1 -0
- package/dist/verification/__tests__/best-of-n-runner.test.d.ts +2 -0
- package/dist/verification/__tests__/best-of-n-runner.test.d.ts.map +1 -0
- package/dist/verification/__tests__/best-of-n-runner.test.js +94 -0
- package/dist/verification/__tests__/best-of-n-runner.test.js.map +1 -0
- package/dist/verification/__tests__/config.test.d.ts +2 -0
- package/dist/verification/__tests__/config.test.d.ts.map +1 -0
- package/dist/verification/__tests__/config.test.js +50 -0
- package/dist/verification/__tests__/config.test.js.map +1 -0
- package/dist/verification/__tests__/decay-policy.test.d.ts +2 -0
- package/dist/verification/__tests__/decay-policy.test.d.ts.map +1 -0
- package/dist/verification/__tests__/decay-policy.test.js +130 -0
- package/dist/verification/__tests__/decay-policy.test.js.map +1 -0
- package/dist/verification/__tests__/fail-to-pass.test.d.ts +2 -0
- package/dist/verification/__tests__/fail-to-pass.test.d.ts.map +1 -0
- package/dist/verification/__tests__/fail-to-pass.test.js +107 -0
- package/dist/verification/__tests__/fail-to-pass.test.js.map +1 -0
- package/dist/verification/__tests__/failure-signature.test.d.ts +2 -0
- package/dist/verification/__tests__/failure-signature.test.d.ts.map +1 -0
- package/dist/verification/__tests__/failure-signature.test.js +40 -0
- package/dist/verification/__tests__/failure-signature.test.js.map +1 -0
- package/dist/verification/__tests__/logger.test.d.ts +2 -0
- package/dist/verification/__tests__/logger.test.d.ts.map +1 -0
- package/dist/verification/__tests__/logger.test.js +23 -0
- package/dist/verification/__tests__/logger.test.js.map +1 -0
- package/dist/verification/__tests__/mutation-cargo-mutants.test.d.ts +2 -0
- package/dist/verification/__tests__/mutation-cargo-mutants.test.d.ts.map +1 -0
- package/dist/verification/__tests__/mutation-cargo-mutants.test.js +96 -0
- package/dist/verification/__tests__/mutation-cargo-mutants.test.js.map +1 -0
- package/dist/verification/__tests__/mutation-infection.test.d.ts +2 -0
- package/dist/verification/__tests__/mutation-infection.test.d.ts.map +1 -0
- package/dist/verification/__tests__/mutation-infection.test.js +101 -0
- package/dist/verification/__tests__/mutation-infection.test.js.map +1 -0
- package/dist/verification/__tests__/mutation-mutmut.test.d.ts +2 -0
- package/dist/verification/__tests__/mutation-mutmut.test.d.ts.map +1 -0
- package/dist/verification/__tests__/mutation-mutmut.test.js +102 -0
- package/dist/verification/__tests__/mutation-mutmut.test.js.map +1 -0
- package/dist/verification/__tests__/mutation-registry.test.d.ts +2 -0
- package/dist/verification/__tests__/mutation-registry.test.d.ts.map +1 -0
- package/dist/verification/__tests__/mutation-registry.test.js +28 -0
- package/dist/verification/__tests__/mutation-registry.test.js.map +1 -0
- package/dist/verification/__tests__/mutation-stryker.test.d.ts +2 -0
- package/dist/verification/__tests__/mutation-stryker.test.d.ts.map +1 -0
- package/dist/verification/__tests__/mutation-stryker.test.js +88 -0
- package/dist/verification/__tests__/mutation-stryker.test.js.map +1 -0
- package/dist/verification/__tests__/no-shell-true.test.d.ts +2 -0
- package/dist/verification/__tests__/no-shell-true.test.d.ts.map +1 -0
- package/dist/verification/__tests__/no-shell-true.test.js +43 -0
- package/dist/verification/__tests__/no-shell-true.test.js.map +1 -0
- package/dist/verification/__tests__/path-safety.test.d.ts +2 -0
- package/dist/verification/__tests__/path-safety.test.d.ts.map +1 -0
- package/dist/verification/__tests__/path-safety.test.js +59 -0
- package/dist/verification/__tests__/path-safety.test.js.map +1 -0
- package/dist/verification/__tests__/prerank.test.d.ts +2 -0
- package/dist/verification/__tests__/prerank.test.d.ts.map +1 -0
- package/dist/verification/__tests__/prerank.test.js +44 -0
- package/dist/verification/__tests__/prerank.test.js.map +1 -0
- package/dist/verification/__tests__/runner.test.d.ts +2 -0
- package/dist/verification/__tests__/runner.test.d.ts.map +1 -0
- package/dist/verification/__tests__/runner.test.js +200 -0
- package/dist/verification/__tests__/runner.test.js.map +1 -0
- package/dist/verification/__tests__/safe-spawn.test.d.ts +2 -0
- package/dist/verification/__tests__/safe-spawn.test.d.ts.map +1 -0
- package/dist/verification/__tests__/safe-spawn.test.js +36 -0
- package/dist/verification/__tests__/safe-spawn.test.js.map +1 -0
- package/dist/verification/__tests__/security.test.d.ts +2 -0
- package/dist/verification/__tests__/security.test.d.ts.map +1 -0
- package/dist/verification/__tests__/security.test.js +79 -0
- package/dist/verification/__tests__/security.test.js.map +1 -0
- package/dist/verification/__tests__/selector-pareto.test.d.ts +2 -0
- package/dist/verification/__tests__/selector-pareto.test.d.ts.map +1 -0
- package/dist/verification/__tests__/selector-pareto.test.js +77 -0
- package/dist/verification/__tests__/selector-pareto.test.js.map +1 -0
- package/dist/verification/__tests__/telemetry.test.d.ts +2 -0
- package/dist/verification/__tests__/telemetry.test.d.ts.map +1 -0
- package/dist/verification/__tests__/telemetry.test.js +116 -0
- package/dist/verification/__tests__/telemetry.test.js.map +1 -0
- package/dist/verification/__tests__/type-check.test.d.ts +2 -0
- package/dist/verification/__tests__/type-check.test.d.ts.map +1 -0
- package/dist/verification/__tests__/type-check.test.js +52 -0
- package/dist/verification/__tests__/type-check.test.js.map +1 -0
- package/dist/verification/__tests__/worktree.test.d.ts +2 -0
- package/dist/verification/__tests__/worktree.test.d.ts.map +1 -0
- package/dist/verification/__tests__/worktree.test.js +41 -0
- package/dist/verification/__tests__/worktree.test.js.map +1 -0
- package/dist/verification/bench/fixtures.d.ts +11 -0
- package/dist/verification/bench/fixtures.d.ts.map +1 -0
- package/dist/verification/bench/fixtures.js +66 -0
- package/dist/verification/bench/fixtures.js.map +1 -0
- package/dist/verification/bench/harness.d.ts +19 -0
- package/dist/verification/bench/harness.d.ts.map +1 -0
- package/dist/verification/bench/harness.js +138 -0
- package/dist/verification/bench/harness.js.map +1 -0
- package/dist/verification/bench/report.d.ts +53 -0
- package/dist/verification/bench/report.d.ts.map +1 -0
- package/dist/verification/bench/report.js +47 -0
- package/dist/verification/bench/report.js.map +1 -0
- package/dist/verification/best-of-n/runner.d.ts +29 -0
- package/dist/verification/best-of-n/runner.d.ts.map +1 -0
- package/dist/verification/best-of-n/runner.js +76 -0
- package/dist/verification/best-of-n/runner.js.map +1 -0
- package/dist/verification/best-of-n/selector/pareto.d.ts +10 -0
- package/dist/verification/best-of-n/selector/pareto.d.ts.map +1 -0
- package/dist/verification/best-of-n/selector/pareto.js +65 -0
- package/dist/verification/best-of-n/selector/pareto.js.map +1 -0
- package/dist/verification/best-of-n/selector/prerank.d.ts +23 -0
- package/dist/verification/best-of-n/selector/prerank.d.ts.map +1 -0
- package/dist/verification/best-of-n/selector/prerank.js +32 -0
- package/dist/verification/best-of-n/selector/prerank.js.map +1 -0
- package/dist/verification/best-of-n/worktree.d.ts +9 -0
- package/dist/verification/best-of-n/worktree.d.ts.map +1 -0
- package/dist/verification/best-of-n/worktree.js +100 -0
- package/dist/verification/best-of-n/worktree.js.map +1 -0
- package/dist/verification/config.d.ts +24 -0
- package/dist/verification/config.d.ts.map +1 -0
- package/dist/verification/config.js +168 -0
- package/dist/verification/config.js.map +1 -0
- package/dist/verification/decay/policy.d.ts +16 -0
- package/dist/verification/decay/policy.d.ts.map +1 -0
- package/dist/verification/decay/policy.js +64 -0
- package/dist/verification/decay/policy.js.map +1 -0
- package/dist/verification/decay/signature.d.ts +6 -0
- package/dist/verification/decay/signature.d.ts.map +1 -0
- package/dist/verification/decay/signature.js +18 -0
- package/dist/verification/decay/signature.js.map +1 -0
- package/dist/verification/gates/anti-tamper.d.ts +16 -0
- package/dist/verification/gates/anti-tamper.d.ts.map +1 -0
- package/dist/verification/gates/anti-tamper.js +142 -0
- package/dist/verification/gates/anti-tamper.js.map +1 -0
- package/dist/verification/gates/fail-to-pass.d.ts +39 -0
- package/dist/verification/gates/fail-to-pass.d.ts.map +1 -0
- package/dist/verification/gates/fail-to-pass.js +173 -0
- package/dist/verification/gates/fail-to-pass.js.map +1 -0
- package/dist/verification/gates/mutation/adapter.d.ts +34 -0
- package/dist/verification/gates/mutation/adapter.d.ts.map +1 -0
- package/dist/verification/gates/mutation/adapter.js +22 -0
- package/dist/verification/gates/mutation/adapter.js.map +1 -0
- package/dist/verification/gates/mutation/cargo-mutants.d.ts +28 -0
- package/dist/verification/gates/mutation/cargo-mutants.d.ts.map +1 -0
- package/dist/verification/gates/mutation/cargo-mutants.js +170 -0
- package/dist/verification/gates/mutation/cargo-mutants.js.map +1 -0
- package/dist/verification/gates/mutation/infection.d.ts +28 -0
- package/dist/verification/gates/mutation/infection.d.ts.map +1 -0
- package/dist/verification/gates/mutation/infection.js +149 -0
- package/dist/verification/gates/mutation/infection.js.map +1 -0
- package/dist/verification/gates/mutation/mutmut.d.ts +23 -0
- package/dist/verification/gates/mutation/mutmut.d.ts.map +1 -0
- package/dist/verification/gates/mutation/mutmut.js +148 -0
- package/dist/verification/gates/mutation/mutmut.js.map +1 -0
- package/dist/verification/gates/mutation/stryker.d.ts +19 -0
- package/dist/verification/gates/mutation/stryker.d.ts.map +1 -0
- package/dist/verification/gates/mutation/stryker.js +103 -0
- package/dist/verification/gates/mutation/stryker.js.map +1 -0
- package/dist/verification/gates/type-check.d.ts +11 -0
- package/dist/verification/gates/type-check.d.ts.map +1 -0
- package/dist/verification/gates/type-check.js +84 -0
- package/dist/verification/gates/type-check.js.map +1 -0
- package/dist/verification/registry.d.ts +6 -0
- package/dist/verification/registry.d.ts.map +1 -0
- package/dist/verification/registry.js +49 -0
- package/dist/verification/registry.js.map +1 -0
- package/dist/verification/runner.d.ts +27 -0
- package/dist/verification/runner.d.ts.map +1 -0
- package/dist/verification/runner.js +173 -0
- package/dist/verification/runner.js.map +1 -0
- package/dist/verification/telemetry.d.ts +18 -0
- package/dist/verification/telemetry.d.ts.map +1 -0
- package/dist/verification/telemetry.js +71 -0
- package/dist/verification/telemetry.js.map +1 -0
- package/dist/verification/types.d.ts +89 -0
- package/dist/verification/types.d.ts.map +1 -0
- package/dist/verification/types.js +3 -0
- package/dist/verification/types.js.map +1 -0
- package/package.json +5 -3
- package/templates/UPDATE-MANIFEST.json +20 -0
- package/templates/ide/antigravity/.agents/skills/dare-bench/SKILL.md +21 -0
- package/templates/ide/antigravity/.agents/skills/dare-bootstrap/SKILL.md +32 -0
- package/templates/ide/antigravity/.agents/skills/dare-dag/SKILL.md +32 -0
- package/templates/ide/antigravity/.agents/skills/dare-discover/SKILL.md +33 -0
- package/templates/ide/antigravity/.agents/skills/dare-graph/SKILL.md +35 -0
- package/templates/ide/antigravity/.agents/skills/dare-info/SKILL.md +31 -0
- package/templates/ide/antigravity/.agents/skills/dare-init/SKILL.md +35 -0
- package/templates/ide/antigravity/.agents/skills/dare-skill/SKILL.md +35 -0
- package/templates/ide/antigravity/.agents/skills/dare-update/SKILL.md +33 -0
- package/templates/ide/antigravity/.agents/skills/dare-validate/SKILL.md +33 -0
- package/templates/ide/antigravity/.agents/skills/dare-welcome/SKILL.md +30 -0
- package/templates/ide/claude/.claude/commands/dare-bench.md +18 -0
- package/templates/ide/claude/.claude/commands/dare-bootstrap.md +27 -0
- package/templates/ide/claude/.claude/commands/dare-dag.md +27 -0
- package/templates/ide/claude/.claude/commands/dare-discover.md +28 -0
- package/templates/ide/claude/.claude/commands/dare-graph.md +30 -0
- package/templates/ide/claude/.claude/commands/dare-info.md +26 -0
- package/templates/ide/claude/.claude/commands/dare-init.md +30 -0
- package/templates/ide/claude/.claude/commands/dare-skill.md +30 -0
- package/templates/ide/claude/.claude/commands/dare-update.md +28 -0
- package/templates/ide/claude/.claude/commands/dare-validate.md +28 -0
- package/templates/ide/claude/.claude/commands/dare-welcome.md +25 -0
- package/templates/ide/cursor/.cursor/commands/dare-bench.md +18 -0
- package/templates/ide/cursor/.cursor/commands/{generate-blueprint.md → dare-blueprint.md} +1 -1
- package/templates/ide/cursor/.cursor/commands/dare-bootstrap.md +27 -0
- package/templates/ide/cursor/.cursor/commands/{run-dag.md → dare-dag-run.md} +1 -1
- package/templates/ide/cursor/.cursor/commands/{dag-viz.md → dare-dag-viz.md} +1 -1
- package/templates/ide/cursor/.cursor/commands/dare-dag.md +27 -0
- package/templates/ide/cursor/.cursor/commands/{generate-design.md → dare-design.md} +1 -1
- package/templates/ide/cursor/.cursor/commands/dare-discover.md +28 -0
- package/templates/ide/cursor/.cursor/commands/dare-dna.md +75 -0
- package/templates/ide/cursor/.cursor/commands/{generate-docker-compose.md → dare-docker-compose.md} +1 -1
- package/templates/ide/cursor/.cursor/commands/{generate-dockerfile.md → dare-dockerfile.md} +1 -1
- package/templates/ide/cursor/.cursor/commands/{execute-task.md → dare-execute.md} +1 -1
- package/templates/ide/cursor/.cursor/commands/dare-graph.md +30 -0
- package/templates/ide/cursor/.cursor/commands/dare-info.md +26 -0
- package/templates/ide/cursor/.cursor/commands/dare-init.md +30 -0
- package/templates/ide/cursor/.cursor/commands/dare-migrate.md +72 -0
- package/templates/ide/cursor/.cursor/commands/{refine-task.md → dare-refine.md} +1 -1
- package/templates/ide/cursor/.cursor/commands/dare-reverse.md +139 -0
- package/templates/ide/cursor/.cursor/commands/{review-task.md → dare-review.md} +1 -1
- package/templates/ide/cursor/.cursor/commands/dare-skill.md +30 -0
- package/templates/ide/cursor/.cursor/commands/{generate-tasks.md → dare-tasks.md} +1 -1
- package/templates/ide/cursor/.cursor/commands/{telemetry-report.md → dare-telemetry.md} +1 -1
- package/templates/ide/cursor/.cursor/commands/dare-update.md +28 -0
- package/templates/ide/cursor/.cursor/commands/dare-validate.md +28 -0
- package/templates/ide/cursor/.cursor/commands/dare-welcome.md +25 -0
- /package/templates/ide/cursor/.cursor/commands/{generate-bugfix-design.md → dare-bugfix-design.md} +0 -0
- /package/templates/ide/cursor/.cursor/commands/{generate-feature-design.md → dare-feature-design.md} +0 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# /dare-info
|
|
2
|
+
|
|
3
|
+
Mostra versão do CLI, caminhos relevantes e a integridade da instalação DARE no projeto atual.
|
|
4
|
+
|
|
5
|
+
> Este comando expõe o CLI `dare info` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
6
|
+
|
|
7
|
+
## Quando usar
|
|
8
|
+
|
|
9
|
+
- Algo parece errado no setup e você quer um diagnóstico rápido.
|
|
10
|
+
- Para confirmar a versão do CLI e os artefatos DARE presentes.
|
|
11
|
+
|
|
12
|
+
## Como rodar
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
dare info
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## O que fazer
|
|
19
|
+
|
|
20
|
+
1. Rode `dare info`.
|
|
21
|
+
2. Revise versão, caminhos e a checagem de integridade.
|
|
22
|
+
3. Se houver artefatos faltando/desatualizados, rode `/dare-update`.
|
|
23
|
+
|
|
24
|
+
## Comandos relacionados
|
|
25
|
+
|
|
26
|
+
`/dare-update` · `/dare-welcome`
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# /dare-init
|
|
2
|
+
|
|
3
|
+
Cria um projeto DARE do zero (greenfield) com setup interativo: escolhe stack backend/frontend, knowledge graph, IDE e gera o scaffolder completo + DNA DARE.
|
|
4
|
+
|
|
5
|
+
> Este comando expõe o CLI `dare init` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
6
|
+
|
|
7
|
+
## Quando usar
|
|
8
|
+
|
|
9
|
+
- O usuário quer começar um projeto **novo** do zero.
|
|
10
|
+
- Não existe código ainda — é greenfield. Para projeto legado, use `/dare-discover`.
|
|
11
|
+
|
|
12
|
+
## Como rodar
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
dare init # fluxo interativo completo
|
|
16
|
+
dare init minha-api --stack node-nestjs
|
|
17
|
+
dare init meu-mcp --mcp node-ts --transport http
|
|
18
|
+
dare init api --stack go-gin --toolchain docker --non-interactive
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## O que fazer
|
|
22
|
+
|
|
23
|
+
1. Rode `dare init` (ou com `--stack`/`--mcp` se o usuário já decidiu a stack).
|
|
24
|
+
2. Responda aos prompts: nome, stack backend, frontend opcional, knowledge graph (json/sqlite/neo4j), IDE(s).
|
|
25
|
+
3. Ao final, o projeto tem scaffolder + os 7 artefatos de DNA + comandos/skills de IDE instalados.
|
|
26
|
+
4. Próximo passo: descreva a ideia com `/dare-design`.
|
|
27
|
+
|
|
28
|
+
## Comandos relacionados
|
|
29
|
+
|
|
30
|
+
`/dare-design` · `/dare-discover` · `/dare-bootstrap`
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# /dare-skill
|
|
2
|
+
|
|
3
|
+
Adiciona, remove, lista, inspeciona, atualiza ou publica skills DARE neste projeto.
|
|
4
|
+
|
|
5
|
+
> Este comando expõe o CLI `dare skill` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
6
|
+
|
|
7
|
+
## Quando usar
|
|
8
|
+
|
|
9
|
+
- Você quer instalar uma skill extra (ex.: uma skill de stack) no projeto.
|
|
10
|
+
- Quer listar/inspecionar as skills disponíveis ou publicar uma própria.
|
|
11
|
+
|
|
12
|
+
## Como rodar
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
dare skill list
|
|
16
|
+
dare skill info <nome>
|
|
17
|
+
dare skill add <nome>
|
|
18
|
+
dare skill remove <nome>
|
|
19
|
+
dare skill update
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## O que fazer
|
|
23
|
+
|
|
24
|
+
1. Use `dare skill list` para ver o que está instalado/disponível.
|
|
25
|
+
2. Rode o subcomando desejado (`add`/`remove`/`info`/`update`/`publish`).
|
|
26
|
+
3. Confirme o resultado e, se mudou comandos de IDE, recarregue a IDE.
|
|
27
|
+
|
|
28
|
+
## Comandos relacionados
|
|
29
|
+
|
|
30
|
+
`/dare-update` · `/dare-info`
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# /dare-update
|
|
2
|
+
|
|
3
|
+
Sincroniza os artefatos do projeto (comandos de IDE, skills, templates) com a versão instalada do DARE CLI, preservando customizações.
|
|
4
|
+
|
|
5
|
+
> Este comando expõe o CLI `dare update` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
6
|
+
|
|
7
|
+
## Quando usar
|
|
8
|
+
|
|
9
|
+
- Depois de atualizar o `@dewtech/dare-cli` para uma versão nova.
|
|
10
|
+
- Quando `dare info` apontar artefatos desatualizados.
|
|
11
|
+
|
|
12
|
+
## Como rodar
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
dare update --dry-run # mostra o que mudaria, sem escrever
|
|
16
|
+
dare update -y # aplica tudo, mantém customizações
|
|
17
|
+
dare update --target 3.2.0
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## O que fazer
|
|
21
|
+
|
|
22
|
+
1. Rode `dare update --dry-run` e revise o diff proposto.
|
|
23
|
+
2. Se estiver ok, rode `dare update -y`.
|
|
24
|
+
3. Evite `--force` salvo se o usuário aceitar sobrescrever arquivos customizados.
|
|
25
|
+
|
|
26
|
+
## Comandos relacionados
|
|
27
|
+
|
|
28
|
+
`/dare-info` · `/dare-welcome`
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# /dare-validate
|
|
2
|
+
|
|
3
|
+
Valida `DARE/dare-dag.yaml` (ciclos, referências quebradas, campos obrigatórios). Adequado para pre-commit hooks e CI.
|
|
4
|
+
|
|
5
|
+
> Este comando expõe o CLI `dare validate` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
6
|
+
|
|
7
|
+
## Quando usar
|
|
8
|
+
|
|
9
|
+
- Antes de commitar mudanças no DAG.
|
|
10
|
+
- Em CI, como gate de integridade do plano de execução.
|
|
11
|
+
|
|
12
|
+
## Como rodar
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
dare validate
|
|
16
|
+
dare validate --strict # trata warnings como erros (CI-friendly)
|
|
17
|
+
dare validate --dag DARE/dare-dag.yaml
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## O que fazer
|
|
21
|
+
|
|
22
|
+
1. Rode `dare validate` (use `--strict` em CI).
|
|
23
|
+
2. Se houver erros, corrija o `dare-dag.yaml` apontado e rode de novo até passar.
|
|
24
|
+
3. Saída limpa = DAG íntegro e pronto para `/dare-execute`.
|
|
25
|
+
|
|
26
|
+
## Comandos relacionados
|
|
27
|
+
|
|
28
|
+
`/dare-dag` · `/dare-execute`
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# /dare-welcome
|
|
2
|
+
|
|
3
|
+
Mostra o banner do DARE e um guia de início rápido com o fluxo Design → Architecture → Review → Execute.
|
|
4
|
+
|
|
5
|
+
> Este comando expõe o CLI `dare welcome` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
6
|
+
|
|
7
|
+
## Quando usar
|
|
8
|
+
|
|
9
|
+
- Primeiro contato com o DARE neste projeto.
|
|
10
|
+
- O usuário quer relembrar o fluxo canônico de comandos.
|
|
11
|
+
|
|
12
|
+
## Como rodar
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
dare welcome
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## O que fazer
|
|
19
|
+
|
|
20
|
+
1. Rode `dare welcome`.
|
|
21
|
+
2. Apresente o fluxo: `/dare-design` → `/dare-blueprint` → `/dare-tasks` → `/dare-execute`.
|
|
22
|
+
|
|
23
|
+
## Comandos relacionados
|
|
24
|
+
|
|
25
|
+
`/dare-design` · `/dare-info`
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Comando: /dare-bench
|
|
2
|
+
|
|
3
|
+
Roda o harness determinístico de fixtures de verificação (`dare bench`) — mede Fix·Rate e solve-rate contra patches versionados.
|
|
4
|
+
|
|
5
|
+
> Este comando expõe o CLI `dare bench` na IDE.
|
|
6
|
+
|
|
7
|
+
## Como rodar
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
dare bench --suite fixtures/bench --json
|
|
11
|
+
dare bench --suite fixtures/bench --baseline bench-baseline.json --fail-on-regression 3
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## O que fazer
|
|
15
|
+
|
|
16
|
+
1. Rode `dare bench` com `--json` para relatório estruturado.
|
|
17
|
+
2. Compare com `--baseline` em CI; exit 1 = regressão > limiar pp.
|
|
18
|
+
3. Exit 2 = suite inválida/ausente.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Comando: /dare-bootstrap
|
|
2
|
+
|
|
3
|
+
Executa o scaffolder oficial da stack registrada em `dare.config.json` para materializar o esqueleto do framework no projeto atual.
|
|
4
|
+
|
|
5
|
+
> Este comando expõe o CLI `dare bootstrap` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
6
|
+
|
|
7
|
+
## Quando usar
|
|
8
|
+
|
|
9
|
+
- Logo após `dare init`, para gerar o esqueleto real do framework.
|
|
10
|
+
- Quando `dare.config.json` existe mas os artefatos do framework ainda não foram gerados.
|
|
11
|
+
|
|
12
|
+
## Como rodar
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
dare bootstrap
|
|
16
|
+
dare bootstrap --force # roda mesmo se já houver artefatos (pode sobrescrever)
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## O que fazer
|
|
20
|
+
|
|
21
|
+
1. Confirme que existe `dare.config.json` com a stack definida.
|
|
22
|
+
2. Rode `dare bootstrap` (use `--force` apenas se o usuário aceitar sobrescrever arquivos existentes).
|
|
23
|
+
3. Verifique a saída: arquivos gerados e próximos passos sugeridos pelo CLI.
|
|
24
|
+
|
|
25
|
+
## Comandos relacionados
|
|
26
|
+
|
|
27
|
+
`/dare-init` · `/dare-design`
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Comando: /dare-dag
|
|
2
|
+
|
|
3
|
+
Mostra o DAG estático de tasks (`DARE/dare-dag.yaml`): ranks, dependências e caminho crítico. Use `dare dag viz` para exportar o diagrama.
|
|
4
|
+
|
|
5
|
+
> Este comando expõe o CLI `dare dag` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
6
|
+
|
|
7
|
+
## Quando usar
|
|
8
|
+
|
|
9
|
+
- Você quer ver a ordem de execução, os ranks e o caminho crítico das tasks.
|
|
10
|
+
- Antes de começar a execução, para conferir a topologia do plano.
|
|
11
|
+
|
|
12
|
+
## Como rodar
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
dare dag viz
|
|
16
|
+
dare dag viz --dag DARE/dare-dag.yaml
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## O que fazer
|
|
20
|
+
|
|
21
|
+
1. Rode `dare dag viz` para renderizar o grafo de tasks.
|
|
22
|
+
2. Confira ranks e dependências; tasks de mesmo rank podem rodar em paralelo.
|
|
23
|
+
3. Para validar a integridade do arquivo, use `/dare-validate`. Para executar, `/dare-execute`.
|
|
24
|
+
|
|
25
|
+
## Comandos relacionados
|
|
26
|
+
|
|
27
|
+
`/dare-validate` · `/dare-execute` · `/dare-graph`
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Comando: /dare-discover
|
|
2
|
+
|
|
3
|
+
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.
|
|
4
|
+
|
|
5
|
+
> Este comando expõe o CLI `dare discover` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
6
|
+
|
|
7
|
+
## Quando usar
|
|
8
|
+
|
|
9
|
+
- O usuário quer adotar o DARE em um repositório que **já existe**.
|
|
10
|
+
- Para entender/documentar o legado em profundidade depois, encadeie com `/dare-reverse` e `/dare-dna`.
|
|
11
|
+
|
|
12
|
+
## Como rodar
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
dare discover
|
|
16
|
+
dare discover --dir ./caminho/do/projeto
|
|
17
|
+
dare discover --check # só mostra a detecção, sem instalar nada
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## O que fazer
|
|
21
|
+
|
|
22
|
+
1. Rode `dare discover --check` primeiro para revisar a stack detectada.
|
|
23
|
+
2. Se a detecção estiver correta, rode `dare discover` para instalar os artefatos DARE + comandos de IDE.
|
|
24
|
+
3. Próximo passo: `/dare-reverse` (Fase 0 — coleta) e `/dare-dna` (convenções).
|
|
25
|
+
|
|
26
|
+
## Comandos relacionados
|
|
27
|
+
|
|
28
|
+
`/dare-reverse` · `/dare-dna` · `/dare-migrate`
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Comando: /dare-dna
|
|
2
|
+
|
|
3
|
+
Camada semântica da extração de DNA do projeto. Roda **depois** do comando `dare dna`, que já varreu
|
|
4
|
+
o código e extraiu os fatos de convenção. Sua função é **transformar fatos em regras acionáveis** —
|
|
5
|
+
o "como esse codebase faz as coisas" que uma nova feature deve respeitar.
|
|
6
|
+
|
|
7
|
+
## Como usar
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
/dare-dna # preenche o PROJECT-DNA.md gerado por `dare dna`
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
> Pré-requisito: rodar `dare dna` antes (gera `DARE/PROJECT-DNA.md` e `DARE/dna-facts.json`).
|
|
14
|
+
> Se não existirem, instrua o usuário a rodar `dare dna` primeiro.
|
|
15
|
+
|
|
16
|
+
## Quando usar
|
|
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
|
+
- O objetivo é um **ruleset** que faça o agente seguir o padrão da casa, não o default genérico.
|
|
21
|
+
|
|
22
|
+
## O que fazer
|
|
23
|
+
|
|
24
|
+
### 1. Carregar os fatos (não re-varrer tudo)
|
|
25
|
+
|
|
26
|
+
- Leia `DARE/dna-facts.json` — fonte determinística (tooling, naming, camadas, testes, libs, commits).
|
|
27
|
+
- Abra **2-5 arquivos representativos por camada** (um controller, um service, um model, um teste) para
|
|
28
|
+
inferir os padrões que o CLI não detecta (tratamento de erro, validação, estilo de teste).
|
|
29
|
+
|
|
30
|
+
### 2. Preencher `DARE/PROJECT-DNA.md`
|
|
31
|
+
|
|
32
|
+
Substitua cada bloco `<!-- AGENT: ... -->`:
|
|
33
|
+
|
|
34
|
+
- **Convenções de Nomenclatura** — confirme o estilo detectado e documente exceções (ex.: componentes
|
|
35
|
+
em PascalCase, utilitários em kebab).
|
|
36
|
+
- **Arquitetura & Camadas** — nomeie o padrão com confiança (MVC / Layered / Hexagonal) e escreva as
|
|
37
|
+
**regras de onde cada coisa mora** (ex.: "controllers só orquestram; regra de negócio vai em services;
|
|
38
|
+
acesso a dados só em repositories").
|
|
39
|
+
- **Padrões de Teste** — onde os testes ficam, naming, assertions reais (não `expect(true)`), uso de
|
|
40
|
+
mocks/fixtures.
|
|
41
|
+
- **Tratamento de Erros & Validação** — como o projeto trata erros (exceptions, Result/Either, try/catch)
|
|
42
|
+
e valida inputs. Dê **exemplos concretos** do código real.
|
|
43
|
+
- **Regras de Ouro do Projeto** — liste o que **SEMPRE** e o que **NUNCA** fazer neste codebase.
|
|
44
|
+
- **⚠️ Incertezas / Inconsistências** — convenções ambíguas/misturadas que o humano precisa decidir.
|
|
45
|
+
|
|
46
|
+
**Não toque** nos fatos determinísticos já preenchidos pelo CLI (tooling, tabela de naming, libs).
|
|
47
|
+
|
|
48
|
+
### 3. Apresentar ao usuário
|
|
49
|
+
|
|
50
|
+
Resumo: arquitetura nomeada, principais regras de ouro, inconsistências encontradas. Reforce que o
|
|
51
|
+
`PROJECT-DNA.md` vira referência para `/dare-feature-design` e `/dare-execute` respeitarem o legado.
|
|
52
|
+
|
|
53
|
+
## Regras de ouro
|
|
54
|
+
|
|
55
|
+
1. **Descritivo, não aspiracional** — documente como o código É, não como deveria ser.
|
|
56
|
+
2. **Exemplos reais** — cite arquivos/trechos do próprio projeto nas regras.
|
|
57
|
+
3. **Sinalize inconsistência** — se o legado mistura padrões, diga isso em "⚠️ Incertezas", não invente um padrão único.
|
|
58
|
+
4. **Não re-varra** — os fatos já estão em `dna-facts.json`.
|
|
59
|
+
5. **Preserve o determinístico** — não reescreva tooling/naming/libs gerados pelo CLI.
|
|
60
|
+
|
|
61
|
+
## Antipatterns
|
|
62
|
+
|
|
63
|
+
| AP | Antipattern | Por quê |
|
|
64
|
+
|---|---|---|
|
|
65
|
+
| AP-01 | Documentar o padrão "ideal" em vez do real | O agente vai gerar código fora do estilo do legado |
|
|
66
|
+
| AP-02 | Forçar um padrão único onde o legado é inconsistente | Esconde a realidade; melhor sinalizar a incerteza |
|
|
67
|
+
| AP-03 | Reescrever os fatos determinísticos do CLI | Quebra a fonte de verdade |
|
|
68
|
+
| AP-04 | Regras vagas ("siga boas práticas") | Inúteis — o valor está na regra específica do projeto |
|
|
69
|
+
| AP-05 | Ignorar os testes existentes ao descrever o estilo de teste | Nova feature nasce inconsistente |
|
|
70
|
+
|
|
71
|
+
$ARGUMENTS
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
Skill MIT — parte do DARE Method. DNA do projeto (brownfield). Pareia com o comando `dare dna`.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Comando: /dare-graph
|
|
2
|
+
|
|
3
|
+
Consulta e visualiza o grafo de conhecimento do projeto (tasks, arquivos, schemas, endpoints, componentes, entidades e suas relações).
|
|
4
|
+
|
|
5
|
+
> Este comando expõe o CLI `dare graph` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
6
|
+
|
|
7
|
+
## Quando usar
|
|
8
|
+
|
|
9
|
+
- Você quer entender dependências entre tasks/arquivos/entidades.
|
|
10
|
+
- Precisa achar nós relacionados a um termo, ou exportar um diagrama do grafo.
|
|
11
|
+
|
|
12
|
+
## Como rodar
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
dare graph stats # contagem de nós/arestas por tipo
|
|
16
|
+
dare graph query <termo> --limit 10 # busca nós por label/descrição
|
|
17
|
+
dare graph query auth --type endpoint
|
|
18
|
+
dare graph viz --format mermaid -o graph.mmd
|
|
19
|
+
dare graph ingest # re-sincroniza o grafo do dare-dag.yaml
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## O que fazer
|
|
23
|
+
|
|
24
|
+
1. Escolha o subcomando conforme a intenção: `stats`, `query <termo>`, `viz`, `ingest`.
|
|
25
|
+
2. Rode o comando e interprete a saída (para `viz`, abra/renderize o diagrama gerado).
|
|
26
|
+
3. Se o grafo parecer desatualizado, rode `dare graph ingest` para re-sincronizar.
|
|
27
|
+
|
|
28
|
+
## Comandos relacionados
|
|
29
|
+
|
|
30
|
+
`/dare-dag` · `/dare-execute`
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Comando: /dare-info
|
|
2
|
+
|
|
3
|
+
Mostra versão do CLI, caminhos relevantes e a integridade da instalação DARE no projeto atual.
|
|
4
|
+
|
|
5
|
+
> Este comando expõe o CLI `dare info` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
6
|
+
|
|
7
|
+
## Quando usar
|
|
8
|
+
|
|
9
|
+
- Algo parece errado no setup e você quer um diagnóstico rápido.
|
|
10
|
+
- Para confirmar a versão do CLI e os artefatos DARE presentes.
|
|
11
|
+
|
|
12
|
+
## Como rodar
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
dare info
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## O que fazer
|
|
19
|
+
|
|
20
|
+
1. Rode `dare info`.
|
|
21
|
+
2. Revise versão, caminhos e a checagem de integridade.
|
|
22
|
+
3. Se houver artefatos faltando/desatualizados, rode `/dare-update`.
|
|
23
|
+
|
|
24
|
+
## Comandos relacionados
|
|
25
|
+
|
|
26
|
+
`/dare-update` · `/dare-welcome`
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Comando: /dare-init
|
|
2
|
+
|
|
3
|
+
Cria um projeto DARE do zero (greenfield) com setup interativo: escolhe stack backend/frontend, knowledge graph, IDE e gera o scaffolder completo + DNA DARE.
|
|
4
|
+
|
|
5
|
+
> Este comando expõe o CLI `dare init` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
|
|
6
|
+
|
|
7
|
+
## Quando usar
|
|
8
|
+
|
|
9
|
+
- O usuário quer começar um projeto **novo** do zero.
|
|
10
|
+
- Não existe código ainda — é greenfield. Para projeto legado, use `/dare-discover`.
|
|
11
|
+
|
|
12
|
+
## Como rodar
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
dare init # fluxo interativo completo
|
|
16
|
+
dare init minha-api --stack node-nestjs
|
|
17
|
+
dare init meu-mcp --mcp node-ts --transport http
|
|
18
|
+
dare init api --stack go-gin --toolchain docker --non-interactive
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## O que fazer
|
|
22
|
+
|
|
23
|
+
1. Rode `dare init` (ou com `--stack`/`--mcp` se o usuário já decidiu a stack).
|
|
24
|
+
2. Responda aos prompts: nome, stack backend, frontend opcional, knowledge graph (json/sqlite/neo4j), IDE(s).
|
|
25
|
+
3. Ao final, o projeto tem scaffolder + os 7 artefatos de DNA + comandos/skills de IDE instalados.
|
|
26
|
+
4. Próximo passo: descreva a ideia com `/dare-design`.
|
|
27
|
+
|
|
28
|
+
## Comandos relacionados
|
|
29
|
+
|
|
30
|
+
`/dare-design` · `/dare-discover` · `/dare-bootstrap`
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Comando: /dare-migrate
|
|
2
|
+
|
|
3
|
+
Camada semântica da migração (Fase 2 brownfield). Roda **depois** de `dare migrate`, que já leu os
|
|
4
|
+
artefatos do `reverse`/`dna` e gerou os esqueletos. Sua função é **escrever a estratégia de migração
|
|
5
|
+
e os cenários Gherkin de paridade reais** — o contrato comportamental que garante uma reimplementação
|
|
6
|
+
fiel ao legado.
|
|
7
|
+
|
|
8
|
+
## Como usar
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
/dare-migrate
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
> Pré-requisito: rodar `dare migrate --to <stack>` antes (gera `DARE/MIGRATION/MIGRATION.md`,
|
|
15
|
+
> `migration-facts.json` e `parity/*.feature`). Isso por sua vez exige `dare reverse` já executado.
|
|
16
|
+
|
|
17
|
+
## Quando usar
|
|
18
|
+
|
|
19
|
+
- Projeto legado entendido (`reverse` + `dna` feitos) que será **reimplementado** em outra stack.
|
|
20
|
+
- Acabou de rodar `dare migrate` e o `MIGRATION.md`/`.feature` têm seções `<!-- AGENT -->`/`# AGENT`.
|
|
21
|
+
|
|
22
|
+
## O que fazer
|
|
23
|
+
|
|
24
|
+
### 1. Carregar contexto (não re-varrer)
|
|
25
|
+
- Leia `DARE/MIGRATION/migration-facts.json` (origem, alvo, módulos, blocking gaps).
|
|
26
|
+
- Leia `DARE/IDEIA.md` + `DARE/REVERSE/module-*.md` (o que cada módulo faz) e `DARE/PROJECT-DNA.md`
|
|
27
|
+
(convenções). Abra arquivos-chave do legado só o necessário para inferir comportamento.
|
|
28
|
+
|
|
29
|
+
### 2. Preencher `DARE/MIGRATION/MIGRATION.md`
|
|
30
|
+
- **Decisão de Paradigma** — origem e alvo mudam de paradigma (procedural→OO, monólito→serviços)?
|
|
31
|
+
Registre decisão + justificativa; se preservado, diga.
|
|
32
|
+
- **Estratégia de Migração** — big-bang vs. **strangler/parallel-run**; ordem dos módulos; feature flags.
|
|
33
|
+
- **Registro de Risco** — para cada **blocking gap** (🔴) pré-listado, escreva o tratamento; some os
|
|
34
|
+
riscos de regressão/dados/performance + mitigações.
|
|
35
|
+
- **Arquitetura-alvo** — desenhe na stack-alvo, **alinhada ao DNA** (camadas/convenções) quando o
|
|
36
|
+
paradigma for preservado; senão justifique a nova organização.
|
|
37
|
+
- **Plano de Cutover & Rollback** — passos de corte, validação de paridade (rodar os `.feature`),
|
|
38
|
+
critério de go/no-go e rollback.
|
|
39
|
+
|
|
40
|
+
### 3. Escrever os Gherkin de paridade (`parity/<módulo>.feature`)
|
|
41
|
+
- Um `Scenario` por **fluxo observável** do módulo, derivado do **comportamento legado real**
|
|
42
|
+
(não invente). `Given` estado inicial → `When` ação → `Then` resultado **idêntico ao legado**.
|
|
43
|
+
- Inclua casos de borda e formatação que o legado garante (ex.: arredondamento monetário, máscaras).
|
|
44
|
+
- Esses `.feature` são o **contrato de aceite** da reimplementação na stack-alvo.
|
|
45
|
+
|
|
46
|
+
### 4. Apresentar ao usuário
|
|
47
|
+
Resumo: decisão de paradigma, estratégia, nº de cenários de paridade, blocking gaps a resolver.
|
|
48
|
+
Reforce que cenários de paridade só valem se vierem do comportamento legado observado.
|
|
49
|
+
|
|
50
|
+
## Regras de ouro
|
|
51
|
+
|
|
52
|
+
1. **Paridade primeiro** — o objetivo é não quebrar comportamento; todo fluxo crítico vira `Scenario`.
|
|
53
|
+
2. **Blocking gaps são bloqueantes** — um 🔴 não resolvido é risco de reimplementação; trate ou registre.
|
|
54
|
+
3. **Respeite o DNA** — a arquitetura-alvo segue as convenções da casa quando faz sentido.
|
|
55
|
+
4. **Não invente comportamento** — cenário sem base no legado é fonte de regressão silenciosa.
|
|
56
|
+
5. **Strangler quando possível** — migração incremental com parallel-run reduz risco vs. big-bang.
|
|
57
|
+
|
|
58
|
+
## Antipatterns
|
|
59
|
+
|
|
60
|
+
| AP | Antipattern | Por quê |
|
|
61
|
+
|---|---|---|
|
|
62
|
+
| AP-01 | Gherkin genérico sem base no legado | Não garante paridade — vira regressão |
|
|
63
|
+
| AP-02 | Ignorar blocking gaps (🔴) | Reimplementa em cima de incerteza |
|
|
64
|
+
| AP-03 | Big-bang sem necessidade | Maximiza risco e dificulta rollback |
|
|
65
|
+
| AP-04 | Arquitetura-alvo desalinhada do DNA | Código novo vira ilha inconsistente |
|
|
66
|
+
| AP-05 | Reescrever os fatos determinísticos do CLI | Quebra a fonte de verdade |
|
|
67
|
+
|
|
68
|
+
$ARGUMENTS
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
Skill MIT — parte do DARE Method. Fase 2 (brownfield). Pareia com o comando `dare migrate`.
|