@dewtech/dare-cli 3.10.0 → 3.12.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 +7 -1
- package/dist/__tests__/ci-pr-regression.test.d.ts +2 -0
- package/dist/__tests__/ci-pr-regression.test.d.ts.map +1 -0
- package/dist/__tests__/ci-pr-regression.test.js +76 -0
- package/dist/__tests__/ci-pr-regression.test.js.map +1 -0
- package/dist/__tests__/dashboard-front.test.d.ts +2 -0
- package/dist/__tests__/dashboard-front.test.d.ts.map +1 -0
- package/dist/__tests__/dashboard-front.test.js +37 -0
- package/dist/__tests__/dashboard-front.test.js.map +1 -0
- package/dist/__tests__/dashboard-regression.test.d.ts +2 -0
- package/dist/__tests__/dashboard-regression.test.d.ts.map +1 -0
- package/dist/__tests__/dashboard-regression.test.js +68 -0
- package/dist/__tests__/dashboard-regression.test.js.map +1 -0
- package/dist/__tests__/dynamic-dag-regression.test.d.ts +2 -0
- package/dist/__tests__/dynamic-dag-regression.test.d.ts.map +1 -0
- package/dist/__tests__/dynamic-dag-regression.test.js +464 -0
- package/dist/__tests__/dynamic-dag-regression.test.js.map +1 -0
- package/dist/__tests__/ensure-skills.test.js +5 -0
- package/dist/__tests__/ensure-skills.test.js.map +1 -1
- package/dist/__tests__/ide-command-parity.test.js +2 -0
- package/dist/__tests__/ide-command-parity.test.js.map +1 -1
- package/dist/__tests__/project-generator.test.js +17 -0
- package/dist/__tests__/project-generator.test.js.map +1 -1
- package/dist/__tests__/reverse-facts.test.js +1 -0
- package/dist/__tests__/reverse-facts.test.js.map +1 -1
- package/dist/__tests__/terminal-parity-regression.test.d.ts +2 -0
- package/dist/__tests__/terminal-parity-regression.test.d.ts.map +1 -0
- package/dist/__tests__/terminal-parity-regression.test.js +116 -0
- package/dist/__tests__/terminal-parity-regression.test.js.map +1 -0
- package/dist/__tests__/terminal-parity.test.d.ts +2 -0
- package/dist/__tests__/terminal-parity.test.d.ts.map +1 -0
- package/dist/__tests__/terminal-parity.test.js +81 -0
- package/dist/__tests__/terminal-parity.test.js.map +1 -0
- package/dist/agent/__tests__/antigravity-driver.test.d.ts +2 -0
- package/dist/agent/__tests__/antigravity-driver.test.d.ts.map +1 -0
- package/dist/agent/__tests__/antigravity-driver.test.js +52 -0
- package/dist/agent/__tests__/antigravity-driver.test.js.map +1 -0
- package/dist/agent/__tests__/codex-driver.test.d.ts +2 -0
- package/dist/agent/__tests__/codex-driver.test.d.ts.map +1 -0
- package/dist/agent/__tests__/codex-driver.test.js +68 -0
- package/dist/agent/__tests__/codex-driver.test.js.map +1 -0
- package/dist/agent/__tests__/cursor-driver.test.d.ts +2 -0
- package/dist/agent/__tests__/cursor-driver.test.d.ts.map +1 -0
- package/dist/agent/__tests__/cursor-driver.test.js +52 -0
- package/dist/agent/__tests__/cursor-driver.test.js.map +1 -0
- package/dist/agent/driver.d.ts +1 -1
- package/dist/agent/driver.d.ts.map +1 -1
- package/dist/agent/drivers/antigravity.d.ts +8 -0
- package/dist/agent/drivers/antigravity.d.ts.map +1 -0
- package/dist/agent/drivers/antigravity.js +99 -0
- package/dist/agent/drivers/antigravity.js.map +1 -0
- package/dist/agent/drivers/codex.d.ts +12 -0
- package/dist/agent/drivers/codex.d.ts.map +1 -0
- package/dist/agent/drivers/codex.js +137 -0
- package/dist/agent/drivers/codex.js.map +1 -0
- package/dist/agent/drivers/cursor.d.ts +8 -0
- package/dist/agent/drivers/cursor.d.ts.map +1 -0
- package/dist/agent/drivers/cursor.js +99 -0
- package/dist/agent/drivers/cursor.js.map +1 -0
- package/dist/ai/__tests__/ai-core.test.d.ts +2 -0
- package/dist/ai/__tests__/ai-core.test.d.ts.map +1 -0
- package/dist/ai/__tests__/ai-core.test.js +41 -0
- package/dist/ai/__tests__/ai-core.test.js.map +1 -0
- package/dist/ai/__tests__/parity.test.d.ts +2 -0
- package/dist/ai/__tests__/parity.test.d.ts.map +1 -0
- package/dist/ai/__tests__/parity.test.js +36 -0
- package/dist/ai/__tests__/parity.test.js.map +1 -0
- package/dist/ai/__tests__/pipeline.test.d.ts +2 -0
- package/dist/ai/__tests__/pipeline.test.d.ts.map +1 -0
- package/dist/ai/__tests__/pipeline.test.js +147 -0
- package/dist/ai/__tests__/pipeline.test.js.map +1 -0
- package/dist/ai/__tests__/refine-bridge.test.d.ts +2 -0
- package/dist/ai/__tests__/refine-bridge.test.d.ts.map +1 -0
- package/dist/ai/__tests__/refine-bridge.test.js +17 -0
- package/dist/ai/__tests__/refine-bridge.test.js.map +1 -0
- package/dist/ai/__tests__/resolve.test.d.ts +2 -0
- package/dist/ai/__tests__/resolve.test.d.ts.map +1 -0
- package/dist/ai/__tests__/resolve.test.js +42 -0
- package/dist/ai/__tests__/resolve.test.js.map +1 -0
- package/dist/ai/capabilities.d.ts +3 -0
- package/dist/ai/capabilities.d.ts.map +1 -0
- package/dist/ai/capabilities.js +11 -0
- package/dist/ai/capabilities.js.map +1 -0
- package/dist/ai/command-options.d.ts +10 -0
- package/dist/ai/command-options.d.ts.map +1 -0
- package/dist/ai/command-options.js +15 -0
- package/dist/ai/command-options.js.map +1 -0
- package/dist/ai/config.d.ts +27 -0
- package/dist/ai/config.d.ts.map +1 -0
- package/dist/ai/config.js +89 -0
- package/dist/ai/config.js.map +1 -0
- package/dist/ai/parity.d.ts +13 -0
- package/dist/ai/parity.d.ts.map +1 -0
- package/dist/ai/parity.js +87 -0
- package/dist/ai/parity.js.map +1 -0
- package/dist/ai/parse-json-output.d.ts +5 -0
- package/dist/ai/parse-json-output.d.ts.map +1 -0
- package/dist/ai/parse-json-output.js +25 -0
- package/dist/ai/parse-json-output.js.map +1 -0
- package/dist/ai/pipeline.d.ts +20 -0
- package/dist/ai/pipeline.d.ts.map +1 -0
- package/dist/ai/pipeline.js +303 -0
- package/dist/ai/pipeline.js.map +1 -0
- package/dist/ai/prompts.d.ts +6 -0
- package/dist/ai/prompts.d.ts.map +1 -0
- package/dist/ai/prompts.js +49 -0
- package/dist/ai/prompts.js.map +1 -0
- package/dist/ai/providers.d.ts +63 -0
- package/dist/ai/providers.d.ts.map +1 -0
- package/dist/ai/providers.js +297 -0
- package/dist/ai/providers.js.map +1 -0
- package/dist/ai/refine-bridge.d.ts +5 -0
- package/dist/ai/refine-bridge.d.ts.map +1 -0
- package/dist/ai/refine-bridge.js +14 -0
- package/dist/ai/refine-bridge.js.map +1 -0
- package/dist/ai/registry.d.ts +12 -0
- package/dist/ai/registry.d.ts.map +1 -0
- package/dist/ai/registry.js +43 -0
- package/dist/ai/registry.js.map +1 -0
- package/dist/ai/resolve.d.ts +28 -0
- package/dist/ai/resolve.d.ts.map +1 -0
- package/dist/ai/resolve.js +83 -0
- package/dist/ai/resolve.js.map +1 -0
- package/dist/ai/schemas.d.ts +175 -0
- package/dist/ai/schemas.d.ts.map +1 -0
- package/dist/ai/schemas.js +199 -0
- package/dist/ai/schemas.js.map +1 -0
- package/dist/ai/types.d.ts +52 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +8 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/bin/dare.js +4 -0
- package/dist/bin/dare.js.map +1 -1
- package/dist/commands/__tests__/ai-command.test.d.ts +2 -0
- package/dist/commands/__tests__/ai-command.test.d.ts.map +1 -0
- package/dist/commands/__tests__/ai-command.test.js +68 -0
- package/dist/commands/__tests__/ai-command.test.js.map +1 -0
- package/dist/commands/__tests__/dashboard-command.test.d.ts +2 -0
- package/dist/commands/__tests__/dashboard-command.test.d.ts.map +1 -0
- package/dist/commands/__tests__/dashboard-command.test.js +62 -0
- package/dist/commands/__tests__/dashboard-command.test.js.map +1 -0
- package/dist/commands/__tests__/execute-agent.test.js +82 -0
- package/dist/commands/__tests__/execute-agent.test.js.map +1 -1
- package/dist/commands/__tests__/gate-flags.test.d.ts +2 -0
- package/dist/commands/__tests__/gate-flags.test.d.ts.map +1 -0
- package/dist/commands/__tests__/gate-flags.test.js +58 -0
- package/dist/commands/__tests__/gate-flags.test.js.map +1 -0
- package/dist/commands/__tests__/persist-viz.test.d.ts +2 -0
- package/dist/commands/__tests__/persist-viz.test.d.ts.map +1 -0
- package/dist/commands/__tests__/persist-viz.test.js +178 -0
- package/dist/commands/__tests__/persist-viz.test.js.map +1 -0
- package/dist/commands/__tests__/refine-apply.test.d.ts +2 -0
- package/dist/commands/__tests__/refine-apply.test.d.ts.map +1 -0
- package/dist/commands/__tests__/refine-apply.test.js +118 -0
- package/dist/commands/__tests__/refine-apply.test.js.map +1 -0
- package/dist/commands/__tests__/replan-splice.test.d.ts +2 -0
- package/dist/commands/__tests__/replan-splice.test.d.ts.map +1 -0
- package/dist/commands/__tests__/replan-splice.test.js +295 -0
- package/dist/commands/__tests__/replan-splice.test.js.map +1 -0
- package/dist/commands/ai.d.ts +3 -0
- package/dist/commands/ai.d.ts.map +1 -0
- package/dist/commands/ai.js +141 -0
- package/dist/commands/ai.js.map +1 -0
- package/dist/commands/blueprint.d.ts.map +1 -1
- package/dist/commands/blueprint.js +17 -3
- package/dist/commands/blueprint.js.map +1 -1
- package/dist/commands/dag.d.ts.map +1 -1
- package/dist/commands/dag.js +2 -0
- package/dist/commands/dag.js.map +1 -1
- package/dist/commands/dashboard.d.ts +17 -0
- package/dist/commands/dashboard.d.ts.map +1 -0
- package/dist/commands/dashboard.js +77 -0
- package/dist/commands/dashboard.js.map +1 -0
- package/dist/commands/design.d.ts.map +1 -1
- package/dist/commands/design.js +21 -2
- package/dist/commands/design.js.map +1 -1
- package/dist/commands/discover.d.ts.map +1 -1
- package/dist/commands/discover.js +9 -1
- package/dist/commands/discover.js.map +1 -1
- package/dist/commands/dna.d.ts.map +1 -1
- package/dist/commands/dna.js +23 -3
- package/dist/commands/dna.js.map +1 -1
- package/dist/commands/execute.d.ts +11 -0
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +219 -6
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/graph.d.ts.map +1 -1
- package/dist/commands/graph.js +33 -5
- package/dist/commands/graph.js.map +1 -1
- package/dist/commands/guard.d.ts.map +1 -1
- package/dist/commands/guard.js +27 -3
- package/dist/commands/guard.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +1 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +14 -2
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/patterns.d.ts.map +1 -1
- package/dist/commands/patterns.js +14 -2
- package/dist/commands/patterns.js.map +1 -1
- package/dist/commands/refine.d.ts +2 -0
- package/dist/commands/refine.d.ts.map +1 -1
- package/dist/commands/refine.js +94 -22
- package/dist/commands/refine.js.map +1 -1
- package/dist/commands/reverse.d.ts.map +1 -1
- package/dist/commands/reverse.js +28 -3
- package/dist/commands/reverse.js.map +1 -1
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +60 -7
- package/dist/commands/review.js.map +1 -1
- package/dist/core/types/project.d.ts +1 -1
- package/dist/core/types/project.d.ts.map +1 -1
- package/dist/dag-runner/__tests__/maxdepth-config.test.d.ts +2 -0
- package/dist/dag-runner/__tests__/maxdepth-config.test.d.ts.map +1 -0
- package/dist/dag-runner/__tests__/maxdepth-config.test.js +28 -0
- package/dist/dag-runner/__tests__/maxdepth-config.test.js.map +1 -0
- package/dist/dag-runner/__tests__/sub-dag.test.d.ts +2 -0
- package/dist/dag-runner/__tests__/sub-dag.test.d.ts.map +1 -0
- package/dist/dag-runner/__tests__/sub-dag.test.js +127 -0
- package/dist/dag-runner/__tests__/sub-dag.test.js.map +1 -0
- package/dist/dag-runner/run_dag.d.ts +3 -1
- package/dist/dag-runner/run_dag.d.ts.map +1 -1
- package/dist/dag-runner/run_dag.js.map +1 -1
- package/dist/dag-runner/state-store.d.ts +2 -0
- package/dist/dag-runner/state-store.d.ts.map +1 -1
- package/dist/dag-runner/state-store.js +44 -8
- package/dist/dag-runner/state-store.js.map +1 -1
- package/dist/dag-runner/sub-dag.d.ts +23 -0
- package/dist/dag-runner/sub-dag.d.ts.map +1 -0
- package/dist/dag-runner/sub-dag.js +117 -0
- package/dist/dag-runner/sub-dag.js.map +1 -0
- package/dist/dashboard/__tests__/dashboard-routes.test.d.ts +2 -0
- package/dist/dashboard/__tests__/dashboard-routes.test.d.ts.map +1 -0
- package/dist/dashboard/__tests__/dashboard-routes.test.js +102 -0
- package/dist/dashboard/__tests__/dashboard-routes.test.js.map +1 -0
- package/dist/dashboard/routes.d.ts +8 -0
- package/dist/dashboard/routes.d.ts.map +1 -0
- package/dist/dashboard/routes.js +70 -0
- package/dist/dashboard/routes.js.map +1 -0
- package/dist/exec/safe-spawn.d.ts.map +1 -1
- package/dist/exec/safe-spawn.js +6 -1
- package/dist/exec/safe-spawn.js.map +1 -1
- package/dist/graphrag/__tests__/hybrid-integration.test.js +1 -1
- package/dist/graphrag/__tests__/hybrid-integration.test.js.map +1 -1
- package/dist/graphrag/__tests__/no-heavy-dep-in-core.test.js +2 -2
- package/dist/graphrag/__tests__/no-heavy-dep-in-core.test.js.map +1 -1
- package/dist/graphrag/embeddings.js +1 -1
- package/dist/graphrag/embeddings.js.map +1 -1
- package/dist/http/__tests__/shared-app.test.d.ts +2 -0
- package/dist/http/__tests__/shared-app.test.d.ts.map +1 -0
- package/dist/http/__tests__/shared-app.test.js +57 -0
- package/dist/http/__tests__/shared-app.test.js.map +1 -0
- package/dist/http/app.d.ts +15 -0
- package/dist/http/app.d.ts.map +1 -0
- package/dist/http/app.js +32 -0
- package/dist/http/app.js.map +1 -0
- package/dist/mcp-server/server.d.ts.map +1 -1
- package/dist/mcp-server/server.js +5 -15
- package/dist/mcp-server/server.js.map +1 -1
- package/dist/reporters/__tests__/github-reporter.test.d.ts +2 -0
- package/dist/reporters/__tests__/github-reporter.test.d.ts.map +1 -0
- package/dist/reporters/__tests__/github-reporter.test.js +93 -0
- package/dist/reporters/__tests__/github-reporter.test.js.map +1 -0
- package/dist/reporters/ci-gate.d.ts +27 -0
- package/dist/reporters/ci-gate.d.ts.map +1 -0
- package/dist/reporters/ci-gate.js +100 -0
- package/dist/reporters/ci-gate.js.map +1 -0
- package/dist/reporters/github.d.ts +36 -0
- package/dist/reporters/github.d.ts.map +1 -0
- package/dist/reporters/github.js +142 -0
- package/dist/reporters/github.js.map +1 -0
- package/dist/skills/bundled.d.ts +5 -0
- package/dist/skills/bundled.d.ts.map +1 -0
- package/dist/skills/bundled.js +34 -0
- package/dist/skills/bundled.js.map +1 -0
- package/dist/skills/commands/add.d.ts +1 -3
- package/dist/skills/commands/add.d.ts.map +1 -1
- package/dist/skills/commands/add.js +20 -3
- package/dist/skills/commands/add.js.map +1 -1
- package/dist/skills/tests/bundled.spec.d.ts +2 -0
- package/dist/skills/tests/bundled.spec.d.ts.map +1 -0
- package/dist/skills/tests/bundled.spec.js +24 -0
- package/dist/skills/tests/bundled.spec.js.map +1 -0
- package/dist/telemetry/__tests__/aggregator.test.d.ts +2 -0
- package/dist/telemetry/__tests__/aggregator.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/aggregator.test.js +164 -0
- package/dist/telemetry/__tests__/aggregator.test.js.map +1 -0
- package/dist/telemetry/aggregator.d.ts +43 -0
- package/dist/telemetry/aggregator.d.ts.map +1 -0
- package/dist/telemetry/aggregator.js +282 -0
- package/dist/telemetry/aggregator.js.map +1 -0
- package/dist/types/UpdateManifest.types.d.ts +1 -1
- package/dist/types/UpdateManifest.types.d.ts.map +1 -1
- package/dist/utils/dag-converter.js +1 -1
- package/dist/utils/dag-converter.js.map +1 -1
- package/dist/utils/excalidraw-renderer.d.ts.map +1 -1
- package/dist/utils/excalidraw-renderer.js +1 -0
- package/dist/utils/excalidraw-renderer.js.map +1 -1
- package/dist/utils/graph-renderer.d.ts +2 -0
- package/dist/utils/graph-renderer.d.ts.map +1 -1
- package/dist/utils/graph-renderer.js +188 -14
- package/dist/utils/graph-renderer.js.map +1 -1
- package/dist/utils/project-detector.d.ts +1 -0
- package/dist/utils/project-detector.d.ts.map +1 -1
- package/dist/utils/project-detector.js +8 -0
- package/dist/utils/project-detector.js.map +1 -1
- package/dist/utils/project-generator.d.ts +1 -1
- package/dist/utils/project-generator.d.ts.map +1 -1
- package/dist/utils/project-generator.js +23 -2
- package/dist/utils/project-generator.js.map +1 -1
- package/dist/utils/templates.d.ts +2 -0
- package/dist/utils/templates.d.ts.map +1 -1
- package/dist/utils/templates.js +74 -0
- package/dist/utils/templates.js.map +1 -1
- package/dist/verification/__tests__/decay-policy.test.js +1 -0
- package/dist/verification/__tests__/decay-policy.test.js.map +1 -1
- package/dist/verification/__tests__/safe-spawn.test.js +12 -0
- package/dist/verification/__tests__/safe-spawn.test.js.map +1 -1
- package/dist/verification/config.d.ts.map +1 -1
- package/dist/verification/config.js +2 -0
- package/dist/verification/config.js.map +1 -1
- package/dist/verification/types.d.ts +2 -0
- package/dist/verification/types.d.ts.map +1 -1
- package/package.json +3 -2
- package/skills/dare-ax/generator.ts +325 -0
- package/skills/dare-ax/index.ts +19 -0
- package/skills/dare-ax/metrics.ts +352 -0
- package/skills/dare-ax/package-lock.json +1855 -0
- package/skills/dare-ax/package.json +50 -0
- package/skills/dare-ax/secret-detector.ts +123 -0
- package/skills/dare-ax/skill.yml +19 -0
- package/skills/dare-ax/templates/llms.txt.jinja2 +80 -0
- package/skills/dare-ax/tests/generator.spec.ts +193 -0
- package/skills/dare-ax/tests/metrics.spec.ts +394 -0
- package/skills/dare-ax/tests/validator.spec.ts +298 -0
- package/skills/dare-ax/tsconfig.json +18 -0
- package/skills/dare-ax/types.ts +79 -0
- package/skills/dare-ax/validator.ts +238 -0
- package/skills/dare-frontend-design/generator.ts +616 -0
- package/skills/dare-frontend-design/index.ts +25 -0
- package/skills/dare-frontend-design/linter.ts +227 -0
- package/skills/dare-frontend-design/metrics.ts +82 -0
- package/skills/dare-frontend-design/package-lock.json +1855 -0
- package/skills/dare-frontend-design/package.json +43 -0
- package/skills/dare-frontend-design/skill.yml +20 -0
- package/skills/dare-frontend-design/tests/frontend_design.spec.ts +435 -0
- package/skills/dare-frontend-design/tsconfig.json +18 -0
- package/skills/dare-frontend-design/types.ts +62 -0
- package/skills/dare-layered-design/generator.ts +740 -0
- package/skills/dare-layered-design/index.ts +17 -0
- package/skills/dare-layered-design/linter.ts +462 -0
- package/skills/dare-layered-design/metrics.ts +409 -0
- package/skills/dare-layered-design/package-lock.json +1855 -0
- package/skills/dare-layered-design/package.json +50 -0
- package/skills/dare-layered-design/skill.yml +35 -0
- package/skills/dare-layered-design/tests/generator.spec.ts +156 -0
- package/skills/dare-layered-design/tests/linter.spec.ts +255 -0
- package/skills/dare-layered-design/tests/metrics.spec.ts +286 -0
- package/skills/dare-layered-design/tsconfig.json +18 -0
- package/skills/dare-layered-design/types.ts +48 -0
- package/skills/dare-llm-integration/cache/llm_cache.ts +122 -0
- package/skills/dare-llm-integration/index.ts +49 -0
- package/skills/dare-llm-integration/metrics.ts +107 -0
- package/skills/dare-llm-integration/package-lock.json +1855 -0
- package/skills/dare-llm-integration/package.json +49 -0
- package/skills/dare-llm-integration/prompts/prompt_loader.ts +258 -0
- package/skills/dare-llm-integration/providers/anthropic_provider.ts +159 -0
- package/skills/dare-llm-integration/providers/dummy_provider.ts +113 -0
- package/skills/dare-llm-integration/providers/llm_provider.ts +6 -0
- package/skills/dare-llm-integration/providers/openai_provider.ts +215 -0
- package/skills/dare-llm-integration/rate_limit/token_bucket.ts +86 -0
- package/skills/dare-llm-integration/skill.yml +23 -0
- package/skills/dare-llm-integration/tests/fixtures/greet_v1.jinja2 +1 -0
- package/skills/dare-llm-integration/tests/fixtures/summarize_v1.jinja2 +1 -0
- package/skills/dare-llm-integration/tests/fixtures/summarize_v2.jinja2 +3 -0
- package/skills/dare-llm-integration/tests/llm_integration.spec.ts +657 -0
- package/skills/dare-llm-integration/tsconfig.json +23 -0
- package/skills/dare-llm-integration/types.ts +91 -0
- package/skills/dare-llm-integration/validators/output_validator.ts +200 -0
- package/skills/dare-quality-telemetry/collect.ts +134 -0
- package/skills/dare-quality-telemetry/collectors/dare_ax_collector.ts +301 -0
- package/skills/dare-quality-telemetry/collectors/dare_layered_design_collector.ts +406 -0
- package/skills/dare-quality-telemetry/collectors/index.ts +24 -0
- package/skills/dare-quality-telemetry/github_actions_template.ts +25 -0
- package/skills/dare-quality-telemetry/index.ts +18 -0
- package/skills/dare-quality-telemetry/metrics.ts +137 -0
- package/skills/dare-quality-telemetry/package-lock.json +1855 -0
- package/skills/dare-quality-telemetry/package.json +48 -0
- package/skills/dare-quality-telemetry/regression.ts +60 -0
- package/skills/dare-quality-telemetry/reporter.ts +132 -0
- package/skills/dare-quality-telemetry/skill.yml +18 -0
- package/skills/dare-quality-telemetry/tests/quality_telemetry.spec.ts +885 -0
- package/skills/dare-quality-telemetry/tsconfig.json +19 -0
- package/skills/dare-quality-telemetry/types.ts +41 -0
- package/skills/dare-realtime/event_registry.ts +101 -0
- package/skills/dare-realtime/index.ts +30 -0
- package/skills/dare-realtime/metrics.ts +84 -0
- package/skills/dare-realtime/package-lock.json +1855 -0
- package/skills/dare-realtime/package.json +43 -0
- package/skills/dare-realtime/reconnect_strategy.ts +85 -0
- package/skills/dare-realtime/schema_validator.ts +80 -0
- package/skills/dare-realtime/skill.yml +21 -0
- package/skills/dare-realtime/subscription_manager.ts +106 -0
- package/skills/dare-realtime/tests/realtime.spec.ts +482 -0
- package/skills/dare-realtime/tsconfig.json +18 -0
- package/skills/dare-realtime/types.ts +51 -0
- package/templates/.github/workflows/dare-pr.yml +26 -0
- package/templates/dashboard/app.js +184 -0
- package/templates/dashboard/index.html +63 -0
- package/templates/dashboard/style.css +134 -0
- package/templates/ide/antigravity/.agents/skills/dare-ai/SKILL.md +17 -0
- package/templates/ide/antigravity/.agents/skills/dare-blueprint/SKILL.md +2 -0
- package/templates/ide/antigravity/.agents/skills/dare-dashboard/SKILL.md +18 -0
- package/templates/ide/antigravity/.agents/skills/dare-design/SKILL.md +2 -0
- package/templates/ide/antigravity/.agents/skills/dare-dna/SKILL.md +3 -0
- package/templates/ide/antigravity/.agents/skills/dare-migrate/SKILL.md +3 -0
- package/templates/ide/antigravity/.agents/skills/dare-patterns/SKILL.md +3 -0
- package/templates/ide/antigravity/.agents/skills/dare-refine/SKILL.md +3 -0
- package/templates/ide/antigravity/.agents/skills/dare-reverse/SKILL.md +3 -0
- package/templates/ide/antigravity/.agents/skills/dare-review/SKILL.md +3 -0
- package/templates/ide/claude/.claude/commands/dare-ai.md +17 -0
- package/templates/ide/claude/.claude/commands/dare-blueprint.md +2 -0
- package/templates/ide/claude/.claude/commands/dare-dashboard.md +18 -0
- package/templates/ide/claude/.claude/commands/dare-design.md +2 -0
- package/templates/ide/claude/.claude/commands/dare-dna.md +2 -0
- package/templates/ide/claude/.claude/commands/dare-migrate.md +2 -0
- package/templates/ide/claude/.claude/commands/dare-patterns.md +3 -0
- package/templates/ide/claude/.claude/commands/dare-refine.md +3 -0
- package/templates/ide/claude/.claude/commands/dare-reverse.md +2 -0
- package/templates/ide/claude/.claude/commands/dare-review.md +3 -0
- package/templates/ide/cursor/.cursor/commands/dare-ai.md +17 -0
- package/templates/ide/cursor/.cursor/commands/dare-blueprint.md +3 -0
- package/templates/ide/cursor/.cursor/commands/dare-dashboard.md +18 -0
- package/templates/ide/cursor/.cursor/commands/dare-design.md +3 -0
- package/templates/ide/cursor/.cursor/commands/dare-dna.md +2 -0
- package/templates/ide/cursor/.cursor/commands/dare-migrate.md +2 -0
- package/templates/ide/cursor/.cursor/commands/dare-patterns.md +3 -0
- package/templates/ide/cursor/.cursor/commands/dare-refine.md +3 -0
- package/templates/ide/cursor/.cursor/commands/dare-reverse.md +2 -0
- package/templates/ide/cursor/.cursor/commands/dare-review.md +3 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/** Vanilla dashboard — fetch /api/telemetry and render panels (no bundler). */
|
|
2
|
+
|
|
3
|
+
const STATUS_COLORS = {
|
|
4
|
+
DONE: 'bar-pass',
|
|
5
|
+
FAILED: 'bar-fail',
|
|
6
|
+
RUNNING: 'bar-accent',
|
|
7
|
+
PENDING: 'bar-warn',
|
|
8
|
+
SKIPPED: 'bar-warn',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
function el(id) {
|
|
12
|
+
const node = document.getElementById(id);
|
|
13
|
+
if (!node) throw new Error(`Missing #${id}`);
|
|
14
|
+
return node;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function setText(id, html) {
|
|
18
|
+
el(id).innerHTML = html;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function show(id, visible) {
|
|
22
|
+
el(id).classList.toggle('hidden', !visible);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function metric(label, value) {
|
|
26
|
+
return `<div class="metric"><span class="label">${label}</span><span class="value">${value}</span></div>`;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function barChart(entries, className = 'bar-accent') {
|
|
30
|
+
if (!entries.length) return '<p class="muted">No data</p>';
|
|
31
|
+
const max = Math.max(...entries.map((e) => e.value), 1);
|
|
32
|
+
const barW = 36;
|
|
33
|
+
const gap = 12;
|
|
34
|
+
const height = 120;
|
|
35
|
+
const width = entries.length * (barW + gap) + gap;
|
|
36
|
+
const bars = entries
|
|
37
|
+
.map((entry, i) => {
|
|
38
|
+
const h = Math.max(4, (entry.value / max) * (height - 24));
|
|
39
|
+
const x = gap + i * (barW + gap);
|
|
40
|
+
const y = height - h - 16;
|
|
41
|
+
return `<rect class="${className}" x="${x}" y="${y}" width="${barW}" height="${h}" rx="4"><title>${entry.label}: ${entry.value}</title></rect>
|
|
42
|
+
<text x="${x + barW / 2}" y="${height - 2}" text-anchor="middle" font-size="10" fill="currentColor">${entry.label}</text>`;
|
|
43
|
+
})
|
|
44
|
+
.join('');
|
|
45
|
+
return `<svg viewBox="0 0 ${width} ${height}" role="img" aria-label="bar chart">${bars}</svg>`;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function renderEmptyHints(hints) {
|
|
49
|
+
if (!hints || hints.length === 0) {
|
|
50
|
+
show('empty-hints', false);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
show('empty-hints', true);
|
|
54
|
+
setText('empty-hints', `<h2>Hints</h2><ul>${hints.map((h) => `<li>${h}</li>`).join('')}</ul>`);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function renderDag(dag) {
|
|
58
|
+
setText(
|
|
59
|
+
'dag-summary',
|
|
60
|
+
metric('Total tasks', dag.total) + metric('Ranks', dag.ranks),
|
|
61
|
+
);
|
|
62
|
+
const entries = Object.entries(dag.byStatus || {}).map(([label, value]) => ({
|
|
63
|
+
label,
|
|
64
|
+
value,
|
|
65
|
+
className: STATUS_COLORS[label] || 'bar-accent',
|
|
66
|
+
}));
|
|
67
|
+
setText(
|
|
68
|
+
'dag-chart',
|
|
69
|
+
entries.length
|
|
70
|
+
? entries
|
|
71
|
+
.map((e) => barChart([e], e.className))
|
|
72
|
+
.join('')
|
|
73
|
+
: '<p>No task status data</p>',
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function renderGates(gates) {
|
|
78
|
+
setText(
|
|
79
|
+
'gates-summary',
|
|
80
|
+
metric('Verified', gates.verified) +
|
|
81
|
+
metric('Proven', gates.proven) +
|
|
82
|
+
(gates.mutationAvg !== undefined ? metric('Mutation avg', gates.mutationAvg.toFixed(2)) : ''),
|
|
83
|
+
);
|
|
84
|
+
setText(
|
|
85
|
+
'gates-chart',
|
|
86
|
+
barChart(
|
|
87
|
+
[
|
|
88
|
+
{ label: 'verified', value: gates.verified },
|
|
89
|
+
{ label: 'proven', value: gates.proven },
|
|
90
|
+
],
|
|
91
|
+
'bar-pass',
|
|
92
|
+
),
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function renderCost(cost) {
|
|
97
|
+
setText(
|
|
98
|
+
'cost-summary',
|
|
99
|
+
metric('Total USD', `$${cost.totalUsd.toFixed(4)}`) + metric('Total tokens', cost.totalTokens),
|
|
100
|
+
);
|
|
101
|
+
const entries = (cost.byTask || []).slice(0, 8).map((t) => ({
|
|
102
|
+
label: t.id.replace(/^task[-:]/, '').slice(0, 8),
|
|
103
|
+
value: t.tokens || t.usd * 1000,
|
|
104
|
+
}));
|
|
105
|
+
setText('cost-chart', barChart(entries, 'bar-accent'));
|
|
106
|
+
|
|
107
|
+
const tbody = el('cost-table').querySelector('tbody');
|
|
108
|
+
tbody.innerHTML = (cost.byTask || [])
|
|
109
|
+
.map(
|
|
110
|
+
(t) =>
|
|
111
|
+
`<tr><td>${t.id}</td><td>${t.usd.toFixed(4)}</td><td>${t.tokens}</td></tr>`,
|
|
112
|
+
)
|
|
113
|
+
.join('');
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function renderOptionalPanels(data) {
|
|
117
|
+
if (data.bestOfN) {
|
|
118
|
+
show('bestof-panel', true);
|
|
119
|
+
setText(
|
|
120
|
+
'bestof-summary',
|
|
121
|
+
metric('Tasks', data.bestOfN.tasks) +
|
|
122
|
+
metric('Avg candidates', data.bestOfN.avgCandidates),
|
|
123
|
+
);
|
|
124
|
+
} else {
|
|
125
|
+
show('bestof-panel', false);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
if (data.guard) {
|
|
129
|
+
show('guard-panel', true);
|
|
130
|
+
setText(
|
|
131
|
+
'guard-summary',
|
|
132
|
+
metric('Pass', data.guard.pass) +
|
|
133
|
+
metric('Warn', data.guard.warn) +
|
|
134
|
+
metric('Fail', data.guard.fail),
|
|
135
|
+
);
|
|
136
|
+
setText(
|
|
137
|
+
'guard-chart',
|
|
138
|
+
barChart(
|
|
139
|
+
[
|
|
140
|
+
{ label: 'pass', value: data.guard.pass },
|
|
141
|
+
{ label: 'warn', value: data.guard.warn },
|
|
142
|
+
{ label: 'fail', value: data.guard.fail },
|
|
143
|
+
],
|
|
144
|
+
'bar-pass',
|
|
145
|
+
),
|
|
146
|
+
);
|
|
147
|
+
} else {
|
|
148
|
+
show('guard-panel', false);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
if (data.drift) {
|
|
152
|
+
show('drift-panel', true);
|
|
153
|
+
setText(
|
|
154
|
+
'drift-summary',
|
|
155
|
+
metric('Orphan reqs', data.drift.orphanReqs) +
|
|
156
|
+
metric('Orphan code', data.drift.orphanCode) +
|
|
157
|
+
metric('Stale', data.drift.stale),
|
|
158
|
+
);
|
|
159
|
+
} else {
|
|
160
|
+
show('drift-panel', false);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
async function loadTelemetry() {
|
|
165
|
+
const status = el('status-line');
|
|
166
|
+
try {
|
|
167
|
+
const res = await fetch('/api/telemetry');
|
|
168
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
169
|
+
const data = await res.json();
|
|
170
|
+
renderEmptyHints(data.emptyHints);
|
|
171
|
+
renderDag(data.dag);
|
|
172
|
+
renderGates(data.gates);
|
|
173
|
+
renderCost(data.cost);
|
|
174
|
+
renderOptionalPanels(data);
|
|
175
|
+
status.textContent = `Updated ${new Date().toLocaleTimeString()}`;
|
|
176
|
+
} catch (err) {
|
|
177
|
+
status.textContent = `Error: ${err instanceof Error ? err.message : String(err)}`;
|
|
178
|
+
show('empty-hints', true);
|
|
179
|
+
setText('empty-hints', `<h2>Error</h2><p>Could not load telemetry. Is the server running with a valid token?</p>`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
loadTelemetry();
|
|
184
|
+
setInterval(loadTelemetry, 30_000);
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>DARE Telemetry</title>
|
|
7
|
+
<link rel="stylesheet" href="/dashboard/assets/style.css">
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<header class="site-header">
|
|
11
|
+
<h1>DARE Telemetry</h1>
|
|
12
|
+
<p class="subtitle">Local read-only dashboard</p>
|
|
13
|
+
</header>
|
|
14
|
+
|
|
15
|
+
<main id="app">
|
|
16
|
+
<section id="empty-hints" class="panel hints hidden" aria-live="polite"></section>
|
|
17
|
+
|
|
18
|
+
<section id="dag-panel" class="panel">
|
|
19
|
+
<h2>DAG Progress</h2>
|
|
20
|
+
<div id="dag-summary" class="metrics"></div>
|
|
21
|
+
<div id="dag-chart" class="chart"></div>
|
|
22
|
+
</section>
|
|
23
|
+
|
|
24
|
+
<section id="gates-panel" class="panel">
|
|
25
|
+
<h2>Verification Gates</h2>
|
|
26
|
+
<div id="gates-summary" class="metrics"></div>
|
|
27
|
+
<div id="gates-chart" class="chart"></div>
|
|
28
|
+
</section>
|
|
29
|
+
|
|
30
|
+
<section id="cost-panel" class="panel">
|
|
31
|
+
<h2>Cost</h2>
|
|
32
|
+
<div id="cost-summary" class="metrics"></div>
|
|
33
|
+
<div id="cost-chart" class="chart"></div>
|
|
34
|
+
<table id="cost-table" class="data-table">
|
|
35
|
+
<thead><tr><th>Task</th><th>USD</th><th>Tokens</th></tr></thead>
|
|
36
|
+
<tbody></tbody>
|
|
37
|
+
</table>
|
|
38
|
+
</section>
|
|
39
|
+
|
|
40
|
+
<section id="bestof-panel" class="panel hidden">
|
|
41
|
+
<h2>Best-of-N</h2>
|
|
42
|
+
<div id="bestof-summary" class="metrics"></div>
|
|
43
|
+
</section>
|
|
44
|
+
|
|
45
|
+
<section id="guard-panel" class="panel hidden">
|
|
46
|
+
<h2>Guard</h2>
|
|
47
|
+
<div id="guard-summary" class="metrics"></div>
|
|
48
|
+
<div id="guard-chart" class="chart"></div>
|
|
49
|
+
</section>
|
|
50
|
+
|
|
51
|
+
<section id="drift-panel" class="panel hidden">
|
|
52
|
+
<h2>Drift</h2>
|
|
53
|
+
<div id="drift-summary" class="metrics"></div>
|
|
54
|
+
</section>
|
|
55
|
+
</main>
|
|
56
|
+
|
|
57
|
+
<footer class="site-footer">
|
|
58
|
+
<span id="status-line">Loading…</span>
|
|
59
|
+
</footer>
|
|
60
|
+
|
|
61
|
+
<script src="/dashboard/assets/app.js"></script>
|
|
62
|
+
</body>
|
|
63
|
+
</html>
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
color-scheme: light dark;
|
|
3
|
+
--bg: #0f1419;
|
|
4
|
+
--surface: #1a2332;
|
|
5
|
+
--border: #2d3a4d;
|
|
6
|
+
--text: #e7ecf3;
|
|
7
|
+
--muted: #9aa8bc;
|
|
8
|
+
--accent: #5b9fd4;
|
|
9
|
+
--pass: #3ecf8e;
|
|
10
|
+
--warn: #f0c14b;
|
|
11
|
+
--fail: #ef6461;
|
|
12
|
+
font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@media (prefers-color-scheme: light) {
|
|
16
|
+
:root {
|
|
17
|
+
--bg: #f4f6fa;
|
|
18
|
+
--surface: #ffffff;
|
|
19
|
+
--border: #d8dee9;
|
|
20
|
+
--text: #1b2430;
|
|
21
|
+
--muted: #5c677d;
|
|
22
|
+
--accent: #2563eb;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
* { box-sizing: border-box; }
|
|
27
|
+
|
|
28
|
+
body {
|
|
29
|
+
margin: 0;
|
|
30
|
+
background: var(--bg);
|
|
31
|
+
color: var(--text);
|
|
32
|
+
line-height: 1.5;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.site-header, .site-footer {
|
|
36
|
+
padding: 1rem 1.5rem;
|
|
37
|
+
border-bottom: 1px solid var(--border);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.site-footer {
|
|
41
|
+
border-top: 1px solid var(--border);
|
|
42
|
+
border-bottom: none;
|
|
43
|
+
color: var(--muted);
|
|
44
|
+
font-size: 0.875rem;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.site-header h1 {
|
|
48
|
+
margin: 0;
|
|
49
|
+
font-size: 1.5rem;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.subtitle {
|
|
53
|
+
margin: 0.25rem 0 0;
|
|
54
|
+
color: var(--muted);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
#app {
|
|
58
|
+
display: grid;
|
|
59
|
+
gap: 1rem;
|
|
60
|
+
padding: 1rem 1.5rem 2rem;
|
|
61
|
+
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.panel {
|
|
65
|
+
background: var(--surface);
|
|
66
|
+
border: 1px solid var(--border);
|
|
67
|
+
border-radius: 10px;
|
|
68
|
+
padding: 1rem 1.25rem;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.panel h2 {
|
|
72
|
+
margin: 0 0 0.75rem;
|
|
73
|
+
font-size: 1.1rem;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.hidden { display: none; }
|
|
77
|
+
|
|
78
|
+
.hints {
|
|
79
|
+
grid-column: 1 / -1;
|
|
80
|
+
border-color: var(--warn);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.hints ul {
|
|
84
|
+
margin: 0;
|
|
85
|
+
padding-left: 1.25rem;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.metrics {
|
|
89
|
+
display: flex;
|
|
90
|
+
flex-wrap: wrap;
|
|
91
|
+
gap: 0.75rem 1.25rem;
|
|
92
|
+
margin-bottom: 0.75rem;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.metric {
|
|
96
|
+
min-width: 5rem;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.metric .label {
|
|
100
|
+
display: block;
|
|
101
|
+
font-size: 0.75rem;
|
|
102
|
+
color: var(--muted);
|
|
103
|
+
text-transform: uppercase;
|
|
104
|
+
letter-spacing: 0.04em;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.metric .value {
|
|
108
|
+
font-size: 1.25rem;
|
|
109
|
+
font-weight: 600;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.chart svg {
|
|
113
|
+
width: 100%;
|
|
114
|
+
height: auto;
|
|
115
|
+
max-height: 160px;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.data-table {
|
|
119
|
+
width: 100%;
|
|
120
|
+
border-collapse: collapse;
|
|
121
|
+
font-size: 0.875rem;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.data-table th,
|
|
125
|
+
.data-table td {
|
|
126
|
+
text-align: left;
|
|
127
|
+
padding: 0.35rem 0.5rem;
|
|
128
|
+
border-bottom: 1px solid var(--border);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.bar-pass { fill: var(--pass); }
|
|
132
|
+
.bar-warn { fill: var(--warn); }
|
|
133
|
+
.bar-fail { fill: var(--fail); }
|
|
134
|
+
.bar-accent { fill: var(--accent); }
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dare-ai
|
|
3
|
+
description: Terminal-first AI providers for DARE enrichment (dare ai doctor/providers/run). Use when running semantic enrichment from the CLI instead of IDE chat.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# dare-ai
|
|
7
|
+
|
|
8
|
+
Prefer terminal workflows:
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
dare ai doctor
|
|
12
|
+
dare ai providers
|
|
13
|
+
dare reverse --ai --provider codex
|
|
14
|
+
dare dna --ai
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Related: `dare-execute --agent --driver codex`
|
|
@@ -14,6 +14,8 @@ Você é um arquiteto de software especializado em design de APIs e sistemas. Se
|
|
|
14
14
|
- Necessário documentar endpoints e modelos
|
|
15
15
|
- Segunda fase do Método DARE
|
|
16
16
|
|
|
17
|
+
> **Equivalente no terminal:** `dare blueprint --ai`
|
|
18
|
+
|
|
17
19
|
## Como usar
|
|
18
20
|
|
|
19
21
|
### Passo 1: Ler o Design Aprovado
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dare-dashboard
|
|
3
|
+
description: Start the local read-only telemetry dashboard (dare dashboard).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /dare-dashboard
|
|
7
|
+
|
|
8
|
+
Sobe o dashboard local de telemetria (`dare dashboard`) — read-only, loopback + token.
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
dare dashboard [--port <n>] [--no-open]
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
- Default: `127.0.0.1:4100`
|
|
15
|
+
- API: `GET /api/telemetry` (JSON read-only)
|
|
16
|
+
- UI: `GET /dashboard` (HTML/CSS/JS vanilla)
|
|
17
|
+
|
|
18
|
+
Reusa hardening do MCP (auth + bind loopback). Não muta grafo/estado.
|
|
@@ -14,6 +14,8 @@ Você é um especialista em planejamento e análise de requisitos. Seu objetivo
|
|
|
14
14
|
- Necessário documentar escopo e restrições
|
|
15
15
|
- Primeira fase do Método DARE
|
|
16
16
|
|
|
17
|
+
> **Equivalente no terminal:** `dare design "<description>" --ai`
|
|
18
|
+
|
|
17
19
|
## Como usar
|
|
18
20
|
|
|
19
21
|
### Passo 1: Entender a Ideia
|
|
@@ -5,6 +5,9 @@ description: Camada semântica da extração de DNA do projeto. Roda depois do c
|
|
|
5
5
|
|
|
6
6
|
# DARE DNA Skill — Convenções do Projeto (brownfield)
|
|
7
7
|
|
|
8
|
+
> **Equivalente no terminal:** `dare dna --ai`
|
|
9
|
+
|
|
10
|
+
|
|
8
11
|
Você é o agente que transforma os **fatos de convenção** de um codebase legado em **regras acionáveis**.
|
|
9
12
|
Esta skill é a camada **semântica**: roda **depois** do comando `dare dna`, que já varreu o código e
|
|
10
13
|
extraiu os fatos. Sua função é redigir o "como esse codebase faz as coisas" que uma nova feature deve
|
|
@@ -5,6 +5,9 @@ description: Camada semântica da migração (Fase 2 brownfield). Roda depois do
|
|
|
5
5
|
|
|
6
6
|
# DARE Migrate Skill — Migração com paridade (brownfield Fase 2)
|
|
7
7
|
|
|
8
|
+
> **Equivalente no terminal:** `dare migrate --ai`
|
|
9
|
+
|
|
10
|
+
|
|
8
11
|
Você é o agente que transforma o entendimento do legado em um **plano de migração com paridade**.
|
|
9
12
|
Esta skill é a camada **semântica**: roda **depois** do comando `dare migrate`, que já leu os
|
|
10
13
|
artefatos do `reverse`/`dna` e gerou os esqueletos. Sua função é **escrever a estratégia de migração
|
|
@@ -5,6 +5,9 @@ description: Analisa complexidade de uma task DARE e, quando alta, quebra em sub
|
|
|
5
5
|
|
|
6
6
|
# DARE Refine Skill
|
|
7
7
|
|
|
8
|
+
> **Equivalente no terminal:** `dare refine <task-id> --split --ai`
|
|
9
|
+
|
|
10
|
+
|
|
8
11
|
Você é o refinador de tasks do método DARE. Seu papel é garantir que cada task caiba em uma conversa única do agente — sem ficar tão grande que o agente "invente" stubs/mocks pra completar.
|
|
9
12
|
|
|
10
13
|
## Quando usar
|
|
@@ -5,6 +5,9 @@ description: Camada semântica da engenharia reversa (Fase 0 / brownfield). Roda
|
|
|
5
5
|
|
|
6
6
|
# DARE Reverse Skill — Engenharia Reversa (Fase 0)
|
|
7
7
|
|
|
8
|
+
> **Equivalente no terminal:** `dare reverse --ai`
|
|
9
|
+
|
|
10
|
+
|
|
8
11
|
Você é o agente da **Fase 0 (brownfield)** do método DARE no Antigravity. Esta skill é a
|
|
9
12
|
**camada semântica** da engenharia reversa: roda **depois** do comando `dare reverse`, que já
|
|
10
13
|
varreu o código e gerou os esqueletos determinísticos. Sua função é **preencher as inferências**
|
|
@@ -5,6 +5,9 @@ description: Audita uma task DARE implementada — cruza a spec com o código re
|
|
|
5
5
|
|
|
6
6
|
# DARE Review Skill
|
|
7
7
|
|
|
8
|
+
> **Equivalente no terminal:** `dare review <task-id> --ai`
|
|
9
|
+
|
|
10
|
+
|
|
8
11
|
Você é o auditor de qualidade do método DARE. Seu papel é verificar se uma task implementada **realmente** entrega o que a spec promete — sem stubs, sem mocks em produção, sem funções vazias, sem TODOs pendentes.
|
|
9
12
|
|
|
10
13
|
## Quando usar esta skill
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# /dare-ai
|
|
2
|
+
|
|
3
|
+
Terminal-first AI providers for DARE command enrichment (`dare ai doctor`, `dare ai providers`, `dare ai run`).
|
|
4
|
+
|
|
5
|
+
> Prefer running these in the terminal. Brownfield commands also accept `--ai` and `--provider`.
|
|
6
|
+
|
|
7
|
+
## Commands
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
dare ai doctor
|
|
11
|
+
dare ai providers
|
|
12
|
+
dare ai run --command reverse --facts DARE/REVERSE/reverse-facts.json --provider codex
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Related
|
|
16
|
+
|
|
17
|
+
`/dare-reverse` · `/dare-dna` · `/dare-execute`
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Comando: /dare-dashboard
|
|
2
|
+
|
|
3
|
+
Sobe o dashboard local de telemetria (`dare dashboard`) — read-only, loopback + token.
|
|
4
|
+
|
|
5
|
+
## Como rodar
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
dare dashboard [--port <n>] [--no-open]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
- Default: `127.0.0.1:4100`
|
|
12
|
+
- Reusa auth/bind do MCP (token via `DARE_MCP_TOKEN` ou gerado na subida)
|
|
13
|
+
- Front vanilla em `/dashboard`; API JSON em `/api/telemetry`
|
|
14
|
+
|
|
15
|
+
## Notas
|
|
16
|
+
|
|
17
|
+
- **Read-only** — nenhuma rota muta grafo ou estado.
|
|
18
|
+
- Abre o navegador automaticamente (use `--no-open` para desabilitar).
|
|
@@ -4,6 +4,8 @@ Camada semântica da extração de DNA do projeto. Roda **depois** do comando `d
|
|
|
4
4
|
o código e extraiu os fatos de convenção. Sua função é **transformar fatos em regras acionáveis** —
|
|
5
5
|
o "como esse codebase faz as coisas" que uma nova feature deve respeitar.
|
|
6
6
|
|
|
7
|
+
> **Equivalente no terminal:** `dare dna --ai`
|
|
8
|
+
|
|
7
9
|
## Como usar
|
|
8
10
|
|
|
9
11
|
```
|
|
@@ -5,6 +5,8 @@ artefatos do `reverse`/`dna` e gerou os esqueletos. Sua função é **escrever a
|
|
|
5
5
|
e os cenários Gherkin de paridade reais** — o contrato comportamental que garante uma reimplementação
|
|
6
6
|
fiel ao legado.
|
|
7
7
|
|
|
8
|
+
> **Equivalente no terminal:** `dare migrate --ai`
|
|
9
|
+
|
|
8
10
|
## Como usar
|
|
9
11
|
|
|
10
12
|
```
|
|
@@ -5,6 +5,8 @@ Camada semântica da engenharia reversa (Fase 0 / brownfield). Roda **depois** d
|
|
|
5
5
|
inferências** que o CLI determinístico não faz: propósito, domínio, responsabilidades e os
|
|
6
6
|
**diagramas de fluxo** ("como a coisa funciona").
|
|
7
7
|
|
|
8
|
+
> **Equivalente no terminal:** `dare reverse --ai`
|
|
9
|
+
|
|
8
10
|
## Como usar
|
|
9
11
|
|
|
10
12
|
```
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# Comando: /dare-review
|
|
2
2
|
|
|
3
|
+
> **Equivalente no terminal:** `dare review <task-id> --ai`
|
|
4
|
+
|
|
5
|
+
|
|
3
6
|
## Descrição
|
|
4
7
|
|
|
5
8
|
Audita uma task **implementada** cruzando a spec (`DARE/EXECUTION/<id>.md`) com os arquivos reais que ela tocou. Detecta stubs, mocks fora de testes, funções vazias, TODOs, retorno-fantasma — **e** valida critério-a-critério se a implementação satisfaz o que a spec prometeu.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# /dare-ai
|
|
2
|
+
|
|
3
|
+
Terminal-first AI providers for DARE command enrichment (`dare ai doctor`, `dare ai providers`, `dare ai run`).
|
|
4
|
+
|
|
5
|
+
> Prefer running these in the terminal. Brownfield commands also accept `--ai` and `--provider`.
|
|
6
|
+
|
|
7
|
+
## Commands
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
dare ai doctor
|
|
11
|
+
dare ai providers
|
|
12
|
+
dare ai run --command reverse --facts DARE/REVERSE/reverse-facts.json --provider codex
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Related
|
|
16
|
+
|
|
17
|
+
`/dare-reverse` · `/dare-dna` · `/dare-execute`
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Comando: /dare-dashboard
|
|
2
|
+
|
|
3
|
+
Sobe o dashboard local de telemetria (`dare dashboard`) — read-only, loopback + token.
|
|
4
|
+
|
|
5
|
+
## Como rodar
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
dare dashboard [--port <n>] [--no-open]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
- Default: `127.0.0.1:4100`
|
|
12
|
+
- Reusa auth/bind do MCP (token via `DARE_MCP_TOKEN` ou gerado na subida)
|
|
13
|
+
- Front vanilla em `/dashboard`; API JSON em `/api/telemetry`
|
|
14
|
+
|
|
15
|
+
## Notas
|
|
16
|
+
|
|
17
|
+
- **Read-only** — nenhuma rota muta grafo ou estado.
|
|
18
|
+
- Abre o navegador automaticamente (use `--no-open` para desabilitar).
|