@hassangameryt/freeflow 0.2.0 → 0.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/.agents/plugins/marketplace.json +1 -1
- package/.claude-plugin/marketplace.json +2 -2
- package/{plugins/freeflow/.claude-plugin → .claude-plugin}/plugin.json +1 -1
- package/{plugins/freeflow/.codex-plugin → .codex-plugin}/plugin.json +1 -1
- package/README.md +19 -14
- package/assets/freeflow-plugin-icon.png +0 -0
- package/{plugins/freeflow/command-surface.json → command-surface.json} +10 -2
- package/evals/README.md +32 -0
- package/evals/fixtures/copy-conventions.md +31 -0
- package/evals/fixtures/output-router/README.md +12 -0
- package/evals/fixtures/output-router/failed-command-output.txt +9 -0
- package/evals/fixtures/output-router/large-router-manual.md +63 -0
- package/evals/fixtures/output-router/native-large-output.txt +40 -0
- package/evals/fixtures/output-router/noisy-test-output.txt +30 -0
- package/evals/fixtures/output-router/verification-output.txt +8 -0
- package/evals/fixtures/tiny-artifact-review-app/README.md +5 -0
- package/evals/fixtures/tiny-artifact-review-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-artifact-review-app/docs/specs/billing-webhook-api-draft.md +21 -0
- package/evals/fixtures/tiny-artifact-review-app/docs/specs/failed-payment-grace-period.md +24 -0
- package/evals/fixtures/tiny-artifact-review-app/docs/specs/immediate-downgrade.md +17 -0
- package/evals/fixtures/tiny-artifact-review-app/tests/billing.test.md +8 -0
- package/evals/fixtures/tiny-commit-ambiguous-app/.freeflow-eval-setup.sh +15 -0
- package/evals/fixtures/tiny-commit-ambiguous-app/README.md +3 -0
- package/evals/fixtures/tiny-commit-ambiguous-app/src/billing.ts +5 -0
- package/evals/fixtures/tiny-commit-ambiguous-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-commit-ambiguous-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-commit-app/.freeflow-eval-setup.sh +14 -0
- package/evals/fixtures/tiny-commit-app/README.md +3 -0
- package/evals/fixtures/tiny-commit-app/docs/specs/settings-title.md +5 -0
- package/evals/fixtures/tiny-commit-app/src/billing.ts +5 -0
- package/evals/fixtures/tiny-commit-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-commit-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-commit-everything-app/.freeflow-eval-setup.sh +15 -0
- package/evals/fixtures/tiny-commit-everything-app/README.md +3 -0
- package/evals/fixtures/tiny-commit-everything-app/docs/specs/settings-title.md +5 -0
- package/evals/fixtures/tiny-commit-everything-app/src/billing.ts +5 -0
- package/evals/fixtures/tiny-commit-everything-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-commit-everything-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-commit-staged-app/.freeflow-eval-setup.sh +15 -0
- package/evals/fixtures/tiny-commit-staged-app/README.md +3 -0
- package/evals/fixtures/tiny-commit-staged-app/docs/specs/settings-title.md +5 -0
- package/evals/fixtures/tiny-commit-staged-app/src/billing.ts +5 -0
- package/evals/fixtures/tiny-commit-staged-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-commit-staged-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-commit-staged-mixed-app/.freeflow-eval-setup.sh +15 -0
- package/evals/fixtures/tiny-commit-staged-mixed-app/README.md +3 -0
- package/evals/fixtures/tiny-commit-staged-mixed-app/docs/billing-policy.md +3 -0
- package/evals/fixtures/tiny-commit-staged-mixed-app/docs/release-notes.md +3 -0
- package/evals/fixtures/tiny-commit-staged-mixed-app/src/billing.ts +5 -0
- package/evals/fixtures/tiny-dashboard-stale-app/README.md +11 -0
- package/evals/fixtures/tiny-dashboard-stale-app/src/api-client.ts +13 -0
- package/evals/fixtures/tiny-dashboard-stale-app/src/dashboard-data.ts +19 -0
- package/evals/fixtures/tiny-dashboard-stale-app/tests/dashboard-data.test.md +9 -0
- package/evals/fixtures/tiny-decision-destination-app/README.md +6 -0
- package/evals/fixtures/tiny-decision-destination-app/src/risk.ts +8 -0
- package/evals/fixtures/tiny-decision-destination-app/tests/risk.test.md +4 -0
- package/evals/fixtures/tiny-design-depth-app/README.md +15 -0
- package/evals/fixtures/tiny-design-depth-app/src/routes.ts +25 -0
- package/evals/fixtures/tiny-design-depth-app/src/sendEmail.ts +3 -0
- package/evals/fixtures/tiny-design-depth-app/src/sendSms.ts +3 -0
- package/evals/fixtures/tiny-design-depth-app/src/telemetry.ts +3 -0
- package/evals/fixtures/tiny-design-depth-app/tests/routes.test.md +12 -0
- package/evals/fixtures/tiny-eval-method-app/README.md +8 -0
- package/evals/fixtures/tiny-eval-method-app/evals/reports/review-pr-eval-result.md +5 -0
- package/evals/fixtures/tiny-eval-method-app/evals/reports/triage-question-failure.md +17 -0
- package/evals/fixtures/tiny-eval-method-app/evals/runs/review-pr-with-skill-output.diff +11 -0
- package/evals/fixtures/tiny-eval-method-app/evals/runs/review-pr-with-skill-output.md +3 -0
- package/evals/fixtures/tiny-eval-method-app/skills/review-pr/SKILL.md +10 -0
- package/evals/fixtures/tiny-eval-method-app/skills/triage-question/SKILL.md +10 -0
- package/evals/fixtures/tiny-execute-plan-app/README.md +5 -0
- package/evals/fixtures/tiny-execute-plan-app/checks/settings-and-billing-check.sh +5 -0
- package/evals/fixtures/tiny-execute-plan-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-execute-plan-app/docs/plans/immediate-downgrade-plan.md +11 -0
- package/evals/fixtures/tiny-execute-plan-app/docs/plans/settings-title-plan.md +12 -0
- package/evals/fixtures/tiny-execute-plan-app/docs/plans/settings-title-with-bad-check.md +15 -0
- package/evals/fixtures/tiny-execute-plan-app/docs/plans/unverified-billing-plan.md +9 -0
- package/evals/fixtures/tiny-execute-plan-app/docs/specs/failed-payment-grace-period.md +9 -0
- package/evals/fixtures/tiny-execute-plan-app/docs/specs/settings-title.md +9 -0
- package/evals/fixtures/tiny-execute-plan-app/src/billing.ts +7 -0
- package/evals/fixtures/tiny-execute-plan-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-execute-plan-app/tests/billing.test.md +7 -0
- package/evals/fixtures/tiny-execute-plan-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-execute-review-loop-app/README.md +5 -0
- package/evals/fixtures/tiny-execute-review-loop-app/docs/billing-policy.md +9 -0
- package/evals/fixtures/tiny-execute-review-loop-app/docs/plans/settings-title-plan.md +12 -0
- package/evals/fixtures/tiny-execute-review-loop-app/docs/review/previous-agent-summary.md +15 -0
- package/evals/fixtures/tiny-execute-review-loop-app/docs/review/review-pass-1-non-pass.md +11 -0
- package/evals/fixtures/tiny-execute-review-loop-app/docs/specs/settings-title.md +9 -0
- package/evals/fixtures/tiny-execute-review-loop-app/src/billing.ts +7 -0
- package/evals/fixtures/tiny-execute-review-loop-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-execute-review-loop-app/tests/billing.test.md +7 -0
- package/evals/fixtures/tiny-execute-review-loop-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-flaky-session-app/README.md +10 -0
- package/evals/fixtures/tiny-flaky-session-app/src/session-timeout.ts +13 -0
- package/evals/fixtures/tiny-flaky-session-app/tests/session-timeout.test.md +8 -0
- package/evals/fixtures/tiny-handoff-app/README.md +5 -0
- package/evals/fixtures/tiny-handoff-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-handoff-app/docs/handoffs/old-agent-handoff.md +8 -0
- package/evals/fixtures/tiny-handoff-app/docs/plans/billing-retry-plan.md +11 -0
- package/evals/fixtures/tiny-handoff-app/src/billing.ts +7 -0
- package/evals/fixtures/tiny-handoff-report-app/README.md +3 -0
- package/evals/fixtures/tiny-handoff-report-app/evals/runs/handoff-3/hof-003/with-skill-output.diff +1 -0
- package/evals/fixtures/tiny-handoff-report-app/evals/runs/handoff-3/hof-003/with-skill-output.md +1 -0
- package/evals/fixtures/tiny-handoff-report-app/evals/scores/hof-003-score.txt +4 -0
- package/evals/fixtures/tiny-plan-app/README.md +5 -0
- package/evals/fixtures/tiny-plan-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-plan-app/docs/specs/failed-payment-grace-period.md +25 -0
- package/evals/fixtures/tiny-plan-app/src/billing.ts +17 -0
- package/evals/fixtures/tiny-plan-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-plan-app/tests/billing.test.md +8 -0
- package/evals/fixtures/tiny-plan-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-plan-strict-api-app/README.md +3 -0
- package/evals/fixtures/tiny-plan-strict-api-app/docs/billing-policy.md +5 -0
- package/evals/fixtures/tiny-plan-strict-api-app/docs/specs/billing-webhook-api.md +25 -0
- package/evals/fixtures/tiny-plan-strict-api-app/src/billing.ts +5 -0
- package/evals/fixtures/tiny-plan-strict-api-app/src/webhooks.ts +3 -0
- package/evals/fixtures/tiny-plan-strict-api-app/tests/billing-webhook.test.md +8 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/.freeflow/config.json +3 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/AGENTS.md +15 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/README.md +16 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/docs/auth-review.md +15 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/docs/copy-conventions.md +15 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/src/auth-middleware.ts +12 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/src/billing.ts +20 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/src/login-copy.ts +1 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/tests/auth-middleware.test.md +8 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/tests/billing.test.md +8 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/tests/copy.test.md +7 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/AGENTS.md +15 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/README.md +16 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/docs/auth-review.md +15 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/docs/copy-conventions.md +15 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/src/auth-middleware.ts +12 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/src/billing.ts +20 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/src/login-copy.ts +1 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/tests/auth-middleware.test.md +8 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/tests/billing.test.md +8 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/tests/copy.test.md +7 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/.freeflow/config.json +3 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/AGENTS.md +15 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/README.md +16 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/docs/auth-review.md +15 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/docs/copy-conventions.md +15 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/src/auth-middleware.ts +12 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/src/billing.ts +20 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/src/login-copy.ts +1 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/tests/auth-middleware.test.md +8 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/tests/billing.test.md +8 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/tests/copy.test.md +7 -0
- package/evals/fixtures/tiny-report-performance-app/README.md +11 -0
- package/evals/fixtures/tiny-report-performance-app/docs/performance.md +10 -0
- package/evals/fixtures/tiny-report-performance-app/src/report-summary.ts +29 -0
- package/evals/fixtures/tiny-report-performance-app/tests/report-performance.test.md +8 -0
- package/evals/fixtures/tiny-review-request-app/README.md +3 -0
- package/evals/fixtures/tiny-review-request-app/docs/billing-policy.md +5 -0
- package/evals/fixtures/tiny-review-request-app/docs/plans/billing-webhook-api.md +19 -0
- package/evals/fixtures/tiny-review-request-app/docs/review/previous-agent-summary.md +20 -0
- package/evals/fixtures/tiny-review-request-app/docs/specs/billing-webhook-api.md +25 -0
- package/evals/fixtures/tiny-review-request-app/src/billing.ts +11 -0
- package/evals/fixtures/tiny-review-request-app/src/webhooks.ts +19 -0
- package/evals/fixtures/tiny-review-request-app/tests/billing-webhook.test.md +8 -0
- package/evals/fixtures/tiny-review-work-app/README.md +5 -0
- package/evals/fixtures/tiny-review-work-app/docs/billing-policy.md +9 -0
- package/evals/fixtures/tiny-review-work-app/docs/plans/settings-title-plan.md +12 -0
- package/evals/fixtures/tiny-review-work-app/docs/review/previous-agent-summary.md +15 -0
- package/evals/fixtures/tiny-review-work-app/docs/specs/settings-title.md +9 -0
- package/evals/fixtures/tiny-review-work-app/src/billing.ts +7 -0
- package/evals/fixtures/tiny-review-work-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-review-work-app/tests/billing.test.md +7 -0
- package/evals/fixtures/tiny-review-work-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-saas-app/README.md +16 -0
- package/evals/fixtures/tiny-saas-app/docs/auth-review.md +15 -0
- package/evals/fixtures/tiny-saas-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-saas-app/docs/copy-conventions.md +15 -0
- package/evals/fixtures/tiny-saas-app/docs/specs/settings-title.md +13 -0
- package/evals/fixtures/tiny-saas-app/src/auth-middleware.ts +12 -0
- package/evals/fixtures/tiny-saas-app/src/billing.ts +20 -0
- package/evals/fixtures/tiny-saas-app/src/login-copy.ts +1 -0
- package/evals/fixtures/tiny-saas-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-saas-app/tests/auth-middleware.test.md +8 -0
- package/evals/fixtures/tiny-saas-app/tests/billing.test.md +8 -0
- package/evals/fixtures/tiny-saas-app/tests/copy.test.md +7 -0
- package/evals/fixtures/tiny-setup-agents-app/AGENTS.md +6 -0
- package/evals/fixtures/tiny-setup-both-app/AGENTS.md +5 -0
- package/evals/fixtures/tiny-setup-both-app/CLAUDE.md +5 -0
- package/evals/fixtures/tiny-setup-claude-app/CLAUDE.md +6 -0
- package/evals/fixtures/tiny-setup-codex-rules-app/.codex/rules/shell.rules +5 -0
- package/evals/fixtures/tiny-setup-codex-rules-app/AGENTS.md +6 -0
- package/evals/fixtures/tiny-setup-conflict-app/AGENTS.md +6 -0
- package/evals/fixtures/tiny-setup-existing-block-app/AGENTS.md +14 -0
- package/evals/fixtures/tiny-setup-four-rules-app/CLAUDE.md +6 -0
- package/evals/fixtures/tiny-skill-dev-app/README.md +10 -0
- package/evals/fixtures/tiny-skill-dev-app/evals/prompts/review-pr-001.txt +8 -0
- package/evals/fixtures/tiny-skill-dev-app/evals/reports/review-pr-failure.md +17 -0
- package/evals/fixtures/tiny-skill-dev-app/skills/review-pr/SKILL.md +13 -0
- package/evals/fixtures/tiny-team-app/README.md +5 -0
- package/evals/fixtures/tiny-team-app/docs/product.md +6 -0
- package/evals/fixtures/tiny-team-app/src/teams.ts +9 -0
- package/evals/fixtures/tiny-team-app/src/users.ts +5 -0
- package/evals/fixtures/tiny-team-app/tests/teams.test.md +7 -0
- package/evals/fixtures/tiny-verify-app/README.md +5 -0
- package/evals/fixtures/tiny-verify-app/src/settings-nav.ts +1 -0
- package/evals/fixtures/tiny-verify-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-verify-app/tests/settings.test.md +7 -0
- package/evals/prompts/aon-001.txt +2 -0
- package/evals/prompts/byp-001.txt +2 -0
- package/evals/prompts/byp-002.txt +2 -0
- package/evals/prompts/cap-001.txt +3 -0
- package/evals/prompts/cap-002.txt +3 -0
- package/evals/prompts/cmd-001.txt +3 -0
- package/evals/prompts/cmd-002.txt +3 -0
- package/evals/prompts/cmd-003.txt +6 -0
- package/evals/prompts/cmd-004.txt +5 -0
- package/evals/prompts/cmd-005.txt +5 -0
- package/evals/prompts/cmd-006.txt +5 -0
- package/evals/prompts/cmd-007.txt +5 -0
- package/evals/prompts/cmd-008.txt +5 -0
- package/evals/prompts/cmd-009.txt +8 -0
- package/evals/prompts/cmd-010.txt +5 -0
- package/evals/prompts/cmd-011.txt +5 -0
- package/evals/prompts/cmd-012.txt +5 -0
- package/evals/prompts/cmd-013.txt +5 -0
- package/evals/prompts/cmd-014.txt +7 -0
- package/evals/prompts/cmd-015.txt +7 -0
- package/evals/prompts/cmd-016.txt +5 -0
- package/evals/prompts/cmt-001.txt +1 -0
- package/evals/prompts/cmt-002.txt +1 -0
- package/evals/prompts/cmt-003.txt +1 -0
- package/evals/prompts/cmt-004.txt +1 -0
- package/evals/prompts/cmt-005.txt +1 -0
- package/evals/prompts/dfd-001.txt +3 -0
- package/evals/prompts/dia-001.txt +3 -0
- package/evals/prompts/dia-002.txt +3 -0
- package/evals/prompts/dia-003.txt +3 -0
- package/evals/prompts/dis-001.txt +5 -0
- package/evals/prompts/dis-002.txt +5 -0
- package/evals/prompts/esk-001.txt +5 -0
- package/evals/prompts/esk-002.txt +5 -0
- package/evals/prompts/esk-003.txt +5 -0
- package/evals/prompts/grc-001.txt +3 -0
- package/evals/prompts/hof-001.txt +3 -0
- package/evals/prompts/hof-002.txt +1 -0
- package/evals/prompts/hof-003.txt +1 -0
- package/evals/prompts/hof-004.txt +1 -0
- package/evals/prompts/hof-005.txt +1 -0
- package/evals/prompts/ivg-001.txt +1 -0
- package/evals/prompts/ivg-002.txt +11 -0
- package/evals/prompts/ivg-003.txt +1 -0
- package/evals/prompts/ivg-004.txt +1 -0
- package/evals/prompts/mode-001.txt +3 -0
- package/evals/prompts/mode-002.txt +1 -0
- package/evals/prompts/mode-003.txt +3 -0
- package/evals/prompts/mode-004.txt +3 -0
- package/evals/prompts/mode-005.txt +3 -0
- package/evals/prompts/mode-006.txt +3 -0
- package/evals/prompts/mode-007.txt +3 -0
- package/evals/prompts/otr-001.txt +3 -0
- package/evals/prompts/otr-002.txt +3 -0
- package/evals/prompts/rar-001.txt +5 -0
- package/evals/prompts/rar-002.txt +3 -0
- package/evals/prompts/rar-003.txt +6 -0
- package/evals/prompts/rar-004.txt +15 -0
- package/evals/prompts/rar-005.txt +10 -0
- package/evals/prompts/rbr-001.txt +3 -0
- package/evals/prompts/rbr-002.txt +3 -0
- package/evals/prompts/rbr-003.txt +7 -0
- package/evals/prompts/rev-001.txt +3 -0
- package/evals/prompts/rev-002.txt +5 -0
- package/evals/prompts/rev-003.txt +6 -0
- package/evals/prompts/rev-004.txt +1 -0
- package/evals/prompts/rev-005.txt +15 -0
- package/evals/prompts/rev-006.txt +5 -0
- package/evals/prompts/stp-001.txt +1 -0
- package/evals/prompts/stp-002.txt +1 -0
- package/evals/prompts/stp-003.txt +1 -0
- package/evals/prompts/stp-004.txt +1 -0
- package/evals/prompts/stp-005.txt +1 -0
- package/evals/prompts/stp-006.txt +1 -0
- package/evals/prompts/stp-007.txt +1 -0
- package/evals/prompts/stp-008.txt +1 -0
- package/evals/prompts/stp-009.txt +1 -0
- package/evals/prompts/stp-010.txt +1 -0
- package/evals/prompts/stp-011.txt +1 -0
- package/evals/prompts/vfy-003.txt +1 -0
- package/evals/prompts/wpl-001.txt +3 -0
- package/evals/prompts/wpl-002.txt +5 -0
- package/evals/prompts/wpl-003.txt +3 -0
- package/evals/prompts/wpl-004.txt +5 -0
- package/evals/prompts/wpl-005.txt +1 -0
- package/evals/prompts/wrc-001.txt +10 -0
- package/evals/prompts/wrc-002.txt +3 -0
- package/evals/prompts/wsk-001.txt +6 -0
- package/evals/prompts/wsp-001.txt +5 -0
- package/evals/prompts/wsp-002.txt +15 -0
- package/evals/prompts/wsp-003.txt +3 -0
- package/evals/prompts/wsp-004.txt +15 -0
- package/evals/prompts/wsp-005.txt +5 -0
- package/evals/prompts/wsp-006.txt +12 -0
- package/evals/prompts/wsp-007.txt +9 -0
- package/evals/prompts/wsp-008.txt +13 -0
- package/evals/prompts/xpl-001.txt +1 -0
- package/evals/prompts/xpl-002.txt +3 -0
- package/evals/prompts/xpl-003.txt +3 -0
- package/evals/prompts/xpl-004.txt +3 -0
- package/evals/prompts/xpl-005.txt +5 -0
- package/evals/prompts/xpl-006.txt +3 -0
- package/evals/registries/adversarial-evals.json +39 -0
- package/evals/registries/fixture-evals.json +2513 -0
- package/evals/registries/handoff-evals.json +74 -0
- package/evals/registries/legacy-evals.json +147 -0
- package/evals/registries/skill-evidence.json +193 -0
- package/evals/registries/verify-work-evals.json +46 -0
- package/evals/reports/acceptance/v0.1-acceptance-report.md +130 -0
- package/evals/reports/by-command-surface/command-surface-1-report.md +45 -0
- package/evals/reports/by-command-surface/command-surface-10-report.md +76 -0
- package/evals/reports/by-command-surface/command-surface-11-report.md +77 -0
- package/evals/reports/by-command-surface/command-surface-12-report.md +91 -0
- package/evals/reports/by-command-surface/command-surface-13-report.md +64 -0
- package/evals/reports/by-command-surface/command-surface-14-report.md +66 -0
- package/evals/reports/by-command-surface/command-surface-15-report.md +124 -0
- package/evals/reports/by-command-surface/command-surface-16-report.md +39 -0
- package/evals/reports/by-command-surface/command-surface-2-report.md +80 -0
- package/evals/reports/by-command-surface/command-surface-3-report.md +86 -0
- package/evals/reports/by-command-surface/command-surface-4-report.md +76 -0
- package/evals/reports/by-command-surface/command-surface-5-report.md +80 -0
- package/evals/reports/by-command-surface/command-surface-6-report.md +74 -0
- package/evals/reports/by-command-surface/command-surface-7-report.md +84 -0
- package/evals/reports/by-command-surface/command-surface-8-report.md +79 -0
- package/evals/reports/by-command-surface/command-surface-9-report.md +79 -0
- package/evals/reports/by-command-surface/command-surface-matrix.md +91 -0
- package/evals/reports/by-skill/bypass-1-report.md +124 -0
- package/evals/reports/by-skill/capture-decisions-1-report.md +99 -0
- package/evals/reports/by-skill/capture-decisions-2-report.md +102 -0
- package/evals/reports/by-skill/commit-work-1-report.md +165 -0
- package/evals/reports/by-skill/commit-work-2-report.md +109 -0
- package/evals/reports/by-skill/design-for-depth-1-report.md +95 -0
- package/evals/reports/by-skill/diagnose-failure-1-report.md +91 -0
- package/evals/reports/by-skill/diagnose-failure-2-report.md +94 -0
- package/evals/reports/by-skill/discover-1-report.md +118 -0
- package/evals/reports/by-skill/evaluate-skill-2-report.md +71 -0
- package/evals/reports/by-skill/execute-plan-1-report.md +103 -0
- package/evals/reports/by-skill/execute-plan-2-report.md +112 -0
- package/evals/reports/by-skill/execute-plan-3-report.md +87 -0
- package/evals/reports/by-skill/grill-context-1-report.md +103 -0
- package/evals/reports/by-skill/handoff-1-report.md +123 -0
- package/evals/reports/by-skill/handoff-2-report.md +105 -0
- package/evals/reports/by-skill/handoff-3-report.md +100 -0
- package/evals/reports/by-skill/handoff-7-report.md +77 -0
- package/evals/reports/by-skill/interview-gate-1-report.md +63 -0
- package/evals/reports/by-skill/interview-gate-2-report.md +105 -0
- package/evals/reports/by-skill/mode-contract-1-report.md +74 -0
- package/evals/reports/by-skill/mode-contract-2-report.md +87 -0
- package/evals/reports/by-skill/mode-contract-3-report.md +65 -0
- package/evals/reports/by-skill/mode-contract-4-report.md +71 -0
- package/evals/reports/by-skill/mode-contract-5-report.md +70 -0
- package/evals/reports/by-skill/output-router-1-report.md +76 -0
- package/evals/reports/by-skill/output-router-2-report.md +65 -0
- package/evals/reports/by-skill/research-1-report.md +144 -0
- package/evals/reports/by-skill/research-brief-1-report.md +94 -0
- package/evals/reports/by-skill/research-brief-2-report.md +75 -0
- package/evals/reports/by-skill/review-artifact-1-report.md +91 -0
- package/evals/reports/by-skill/review-artifact-2-report.md +79 -0
- package/evals/reports/by-skill/review-artifact-3-report.md +120 -0
- package/evals/reports/by-skill/review-artifact-4-report.md +89 -0
- package/evals/reports/by-skill/review-artifact-5-report.md +66 -0
- package/evals/reports/by-skill/review-work-1-report.md +85 -0
- package/evals/reports/by-skill/review-work-2-report.md +87 -0
- package/evals/reports/by-skill/review-work-3-report.md +104 -0
- package/evals/reports/by-skill/review-work-4-report.md +108 -0
- package/evals/reports/by-skill/review-work-5-report.md +73 -0
- package/evals/reports/by-skill/review-work-6-report.md +66 -0
- package/evals/reports/by-skill/setup-freeflow-1-report.md +199 -0
- package/evals/reports/by-skill/setup-freeflow-2-report.md +105 -0
- package/evals/reports/by-skill/setup-freeflow-3-report.md +105 -0
- package/evals/reports/by-skill/setup-freeflow-4-report.md +88 -0
- package/evals/reports/by-skill/setup-freeflow-5-report.md +115 -0
- package/evals/reports/by-skill/skill-authoring-1-report.md +81 -0
- package/evals/reports/by-skill/verify-work-1-report.md +111 -0
- package/evals/reports/by-skill/verify-work-2-report.md +120 -0
- package/evals/reports/by-skill/workflow-1-report.md +65 -0
- package/evals/reports/by-skill/write-plan-1-report.md +123 -0
- package/evals/reports/by-skill/write-plan-2-report.md +98 -0
- package/evals/reports/by-skill/write-plan-3-report.md +110 -0
- package/evals/reports/by-skill/write-spec-1-report.md +88 -0
- package/evals/reports/by-skill/write-spec-2-report.md +89 -0
- package/evals/reports/by-skill/write-spec-3-report.md +90 -0
- package/evals/reports/by-skill/write-spec-4-report.md +167 -0
- package/evals/reports/harness/claude-harness-1-report.md +103 -0
- package/evals/reports/harness/eval-harness-1-report.md +91 -0
- package/evals/reports/iterations/iteration-1-report.md +71 -0
- package/evals/reports/iterations/iteration-2-report.md +78 -0
- package/evals/reports/iterations/iteration-3-report.md +118 -0
- package/evals/reports/iterations/iteration-4-report.md +131 -0
- package/evals/reports/iterations/iteration-5-report.md +149 -0
- package/evals/reports/iterations/iteration-6-report.md +136 -0
- package/evals/reports/runtime/always-on-runtime-1-report.md +107 -0
- package/evals/reports/runtime/context-mode-normalized-benchmark-1-report.md +52 -0
- package/evals/reports/runtime/context-mode-real-deep-baseline-1-report.md +410 -0
- package/evals/reports/runtime/context-mode-real-deep-final-slice-11-report.md +203 -0
- package/evals/reports/runtime/context-mode-real-deep-final-slice-11-review.md +51 -0
- package/evals/reports/runtime/context-saving-native-tools-baseline-1-report.md +99 -0
- package/evals/reports/runtime/eryx-python-compatibility-reprobe-1-report.md +166 -0
- package/evals/reports/runtime/eryx-python-proof-spike-1-report.md +96 -0
- package/evals/reports/runtime/eryx-python-proof-spike-2-report.md +151 -0
- package/evals/reports/runtime/eryx-python-script-derive-execution-1-report.md +233 -0
- package/evals/reports/runtime/jq-script-derive-execution-1-report.md +215 -0
- package/evals/reports/runtime/jq-wasm-proof-spike-1-report.md +67 -0
- package/evals/reports/runtime/output-router-benchmark-1-report.md +81 -0
- package/evals/reports/runtime/output-router-capture-derive-provider-eval-1-report.md +35 -0
- package/evals/reports/runtime/output-router-codex-large-index-sqlite-adhoc-report.md +150 -0
- package/evals/reports/runtime/output-router-codex-qa-benchmark-1-report.md +46 -0
- package/evals/reports/runtime/output-router-command-benchmark-1-report.md +62 -0
- package/evals/reports/runtime/output-router-index-benchmark-1-report.md +64 -0
- package/evals/reports/runtime/output-router-regression-1-report.md +81 -0
- package/evals/reports/runtime/output-router-transform-eval-1-report.md +28 -0
- package/evals/reports/runtime/pi-observed-routing-eval-1-report.md +44 -0
- package/evals/reports/runtime/quickjs-script-derive-execution-1-report.md +159 -0
- package/evals/reports/runtime/quickjs-wasi-proof-spike-1-report.md +55 -0
- package/evals/reports/runtime/render-format-row-protocol-1-report.md +58 -0
- package/evals/reports/runtime/script-sandbox-adapter-selection-review-1-report.md +84 -0
- package/evals/reports/runtime/script-sandbox-probe-resource-hardening-1-report.md +51 -0
- package/evals/reports/runtime/storage-policy-benchmark-1-report.md +176 -0
- package/evals/reports/runtime/vault-index-storage-spike-1-report.md +39 -0
- package/evals/reports/runtime/workflow-context-hook-1-report.md +82 -0
- package/evals/runbooks/adversarial-eval-runbook.md +28 -0
- package/evals/runbooks/fixture-eval-runbook.md +137 -0
- package/evals/runbooks/handoff-eval-runbook.md +22 -0
- package/evals/runbooks/verify-work-eval-runbook.md +27 -0
- package/evals/scripts/audit-command-surface.sh +160 -0
- package/evals/scripts/check-activation-contract.sh +121 -0
- package/evals/scripts/check-runtime-context-hook.sh +183 -0
- package/evals/scripts/grade-fixture-eval.sh +446 -0
- package/evals/scripts/run-claude-fixture-eval.sh +26 -0
- package/evals/scripts/run-codex-fixture-eval.sh +26 -0
- package/evals/scripts/run-eryx-python-proof-spike.js +559 -0
- package/evals/scripts/run-fixture-eval-by-id.sh +23 -0
- package/evals/scripts/run-fixture-eval.sh +464 -0
- package/evals/scripts/run-jq-wasm-proof-spike.js +299 -0
- package/evals/scripts/run-output-router-transform-eval.js +115 -0
- package/evals/scripts/run-pi-observed-routing-eval.js +478 -0
- package/evals/scripts/run-quickjs-wasi-proof-spike.js +339 -0
- package/evals/scripts/skill-evidence.sh +316 -0
- package/evals/scripts/validate-release-metadata.sh +486 -0
- package/evals/suites/v0.1-acceptance-suite.md +131 -0
- package/{plugins/freeflow/hooks → hooks}/freeflow-runtime-context.mjs +46 -12
- package/package.json +39 -19
- package/pi-extension/dist/host-producer-identification.js +186 -0
- package/pi-extension/dist/index.js +85 -0
- package/pi-extension/dist/mcp-config.js +30 -0
- package/pi-extension/dist/native-safety-net.js +209 -0
- package/pi-extension/dist/observed-tool-routing.js +114 -0
- package/pi-extension/dist/renderers.js +835 -0
- package/pi-extension/dist/router-tools.js +438 -0
- package/pi-extension/dist/runtime-context.js +288 -0
- package/pi-extension/dist/schemas.js +254 -0
- package/pi-extension/dist/status.js +449 -0
- package/pi-extension/dist/utils.js +467 -0
- package/pi-extension/src/host-producer-identification.ts +226 -0
- package/pi-extension/src/index.ts +121 -0
- package/pi-extension/src/mcp-config.ts +32 -0
- package/pi-extension/src/native-safety-net.ts +252 -0
- package/pi-extension/src/observed-tool-routing.ts +126 -0
- package/pi-extension/src/renderers.ts +917 -0
- package/pi-extension/src/router-tools.ts +478 -0
- package/pi-extension/src/runtime-context.ts +347 -0
- package/pi-extension/src/schemas.ts +259 -0
- package/pi-extension/src/status.ts +505 -0
- package/pi-extension/src/utils.ts +492 -0
- package/pi-extension/tsconfig.json +16 -0
- package/{plugins/freeflow/docs → plugin-docs}/README.md +3 -3
- package/plugin-docs/adr/0002-evals-before-hooks.md +17 -0
- package/{plugins/freeflow/docs → plugin-docs}/adr/0003-release-boundary.md +2 -2
- package/plugin-docs/adr/0004-discover-replaces-shallow-discovery-skills.md +26 -0
- package/plugin-docs/adr/README.md +10 -0
- package/plugin-docs/architecture.md +89 -0
- package/plugin-docs/output-router.md +396 -0
- package/plugin-docs/release-evidence.md +77 -0
- package/{plugins/freeflow/docs → plugin-docs}/skills.md +3 -2
- package/{plugins/freeflow/docs → plugin-docs}/workflow.md +4 -4
- package/{plugins/freeflow/router/dist → router/dist/benchmarks}/benchmark-harness.js +1 -1
- package/{plugins/freeflow/router/dist → router/dist/benchmarks}/benchmarks.js +14 -14
- package/{plugins/freeflow/router/dist → router/dist/benchmarks}/codex-qa-benchmarks.js +6 -6
- package/{plugins/freeflow/router/dist → router/dist/benchmarks}/command-benchmarks.d.ts +1 -1
- package/{plugins/freeflow/router/dist → router/dist/benchmarks}/command-benchmarks.js +11 -10
- package/router/dist/benchmarks/context-mode-normalized-benchmarks.d.ts +74 -0
- package/router/dist/benchmarks/context-mode-normalized-benchmarks.js +707 -0
- package/router/dist/benchmarks/context-mode-real-deep-benchmark.d.ts +124 -0
- package/router/dist/benchmarks/context-mode-real-deep-benchmark.js +1295 -0
- package/router/dist/benchmarks/context-saving-baseline.d.ts +54 -0
- package/router/dist/benchmarks/context-saving-baseline.js +439 -0
- package/{plugins/freeflow/router/dist → router/dist/benchmarks}/index-benchmarks.d.ts +16 -2
- package/{plugins/freeflow/router/dist → router/dist/benchmarks}/index-benchmarks.js +330 -26
- package/router/dist/benchmarks/storage-policy-benchmarks.d.ts +90 -0
- package/router/dist/benchmarks/storage-policy-benchmarks.js +538 -0
- package/router/dist/benchmarks/vault-index-benchmarks.d.ts +47 -0
- package/router/dist/benchmarks/vault-index-benchmarks.js +257 -0
- package/router/dist/config/config.d.ts +96 -0
- package/router/dist/config/config.js +453 -0
- package/{plugins/freeflow/router/dist → router/dist/config}/schema.js +248 -2
- package/router/dist/config/types.d.ts +521 -0
- package/router/dist/config/types.js +30 -0
- package/{plugins/freeflow/router/dist → router/dist/evidence}/bounded-evidence.d.ts +1 -1
- package/{plugins/freeflow/router/dist → router/dist/evidence}/evidence-range-selector.js +65 -14
- package/{plugins/freeflow/router/dist → router/dist/evidence}/evidence-search.js +18 -2
- package/{plugins/freeflow/router/dist → router/dist/evidence}/evidence.d.ts +1 -1
- package/router/dist/evidence/failure-contracts.d.ts +27 -0
- package/router/dist/evidence/failure-contracts.js +160 -0
- package/router/dist/index.d.ts +30 -0
- package/router/dist/index.js +32 -0
- package/router/dist/processing/engine.d.ts +108 -0
- package/router/dist/processing/engine.js +435 -0
- package/router/dist/processing/reducers.d.ts +266 -0
- package/router/dist/processing/reducers.js +1495 -0
- package/router/dist/processing/renderers.d.ts +25 -0
- package/router/dist/processing/renderers.js +186 -0
- package/router/dist/processing/scripts.d.ts +78 -0
- package/router/dist/processing/scripts.js +333 -0
- package/router/dist/routing/observed-reducers.d.ts +35 -0
- package/router/dist/routing/observed-reducers.js +647 -0
- package/router/dist/routing/observed-routing.d.ts +17 -0
- package/router/dist/routing/observed-routing.js +377 -0
- package/{plugins/freeflow/router/dist → router/dist/routing}/parsers.d.ts +1 -1
- package/{plugins/freeflow/router/dist → router/dist/routing}/parsers.js +1 -1
- package/router/dist/routing/run-filters.d.ts +56 -0
- package/router/dist/routing/run-filters.js +230 -0
- package/router/dist/routing/run-reducers.d.ts +30 -0
- package/router/dist/routing/run-reducers.js +110 -0
- package/router/dist/sandbox/adapter-roots.d.ts +38 -0
- package/router/dist/sandbox/adapter-roots.js +64 -0
- package/router/dist/sandbox/eryx-python-adapter.d.ts +9 -0
- package/router/dist/sandbox/eryx-python-adapter.js +797 -0
- package/router/dist/sandbox/jq-wasm-adapter.d.ts +9 -0
- package/router/dist/sandbox/jq-wasm-adapter.js +421 -0
- package/router/dist/sandbox/quickjs-wasi-adapter.d.ts +9 -0
- package/router/dist/sandbox/quickjs-wasi-adapter.js +381 -0
- package/router/dist/sandbox/script-sandbox.d.ts +113 -0
- package/router/dist/sandbox/script-sandbox.js +303 -0
- package/router/dist/setup/script-transform-adapters.d.ts +28 -0
- package/router/dist/setup/script-transform-adapters.js +259 -0
- package/router/dist/tools/batch.d.ts +22 -0
- package/router/dist/tools/batch.js +509 -0
- package/router/dist/tools/run.d.ts +50 -0
- package/router/dist/tools/run.js +1219 -0
- package/router/dist/tools/search.d.ts +44 -0
- package/{plugins/freeflow/router/dist/retrieve.js → router/dist/tools/search.js} +395 -45
- package/router/dist/transform/engine.d.ts +143 -0
- package/router/dist/transform/engine.js +1955 -0
- package/router/dist/vault/vault-index.d.ts +106 -0
- package/router/dist/vault/vault-index.js +411 -0
- package/{plugins/freeflow/router/dist → router/dist/vault}/vault.d.ts +24 -1
- package/{plugins/freeflow/router/dist → router/dist/vault}/vault.js +152 -1
- package/skills/design-for-depth/SKILL.md +90 -0
- package/skills/design-for-depth/references/design-pressure-signals.md +265 -0
- package/skills/design-for-depth/references/software-design-philosophy.md +219 -0
- package/{plugins/freeflow/skills → skills}/diagnose-failure/SKILL.md +6 -1
- package/{plugins/freeflow/skills/research → skills/discover}/ARTIFACT-DESTINATIONS.md +4 -4
- package/{plugins/freeflow/skills/research → skills/discover}/CHECKPOINTS.md +4 -4
- package/skills/discover/SKILL.md +173 -0
- package/{plugins/freeflow/skills → skills}/execute-plan/SKILL.md +5 -4
- package/{plugins/freeflow/skills → skills}/execute-plan/references/execution-map.md +2 -2
- package/{plugins/freeflow/skills → skills}/mode-contract/SKILL.md +9 -4
- package/skills/output-router/SKILL.md +202 -0
- package/skills/output-router/references/safety-policy.md +40 -0
- package/{plugins/freeflow/skills → skills}/review-artifact/SKILL.md +5 -2
- package/{plugins/freeflow/skills → skills}/review-artifact/references/reviewer-prompt.md +2 -1
- package/{plugins/freeflow/skills → skills}/review-work/SKILL.md +6 -1
- package/{plugins/freeflow/skills → skills}/setup-freeflow/SKILL.md +21 -9
- package/{plugins/freeflow/skills → skills}/setup-freeflow/references/activation-contract.md +11 -10
- package/{plugins/freeflow/skills → skills}/setup-freeflow/references/host-setup.md +3 -3
- package/skills/setup-freeflow/references/output-router-setup.md +102 -0
- package/{plugins/freeflow/skills → skills}/verify-work/SKILL.md +3 -1
- package/{plugins/freeflow/skills → skills}/workflow/SKILL.md +16 -14
- package/{plugins/freeflow/skills → skills}/workflow/references/workflow-map.md +16 -14
- package/{plugins/freeflow/skills → skills}/write-plan/SKILL.md +9 -1
- package/{plugins/freeflow/skills → skills}/write-spec/SKILL.md +9 -6
- package/plugins/freeflow/docs/adr/0002-evals-before-hooks.md +0 -17
- package/plugins/freeflow/docs/adr/0004-research-replaces-shallow-discovery-skills.md +0 -26
- package/plugins/freeflow/docs/adr/README.md +0 -8
- package/plugins/freeflow/docs/architecture.md +0 -86
- package/plugins/freeflow/docs/output-router.md +0 -212
- package/plugins/freeflow/docs/release-evidence.md +0 -69
- package/plugins/freeflow/pi-extension/index.js +0 -1176
- package/plugins/freeflow/router/dist/config.d.ts +0 -22
- package/plugins/freeflow/router/dist/config.js +0 -114
- package/plugins/freeflow/router/dist/experimental-local-index.d.ts +0 -1
- package/plugins/freeflow/router/dist/experimental-local-index.js +0 -1
- package/plugins/freeflow/router/dist/index.d.ts +0 -12
- package/plugins/freeflow/router/dist/index.js +0 -12
- package/plugins/freeflow/router/dist/retrieve.d.ts +0 -33
- package/plugins/freeflow/router/dist/run.d.ts +0 -26
- package/plugins/freeflow/router/dist/run.js +0 -356
- package/plugins/freeflow/router/dist/types.d.ts +0 -234
- package/plugins/freeflow/router/dist/types.js +0 -9
- package/plugins/freeflow/skills/output-router/SKILL.md +0 -69
- package/plugins/freeflow/skills/output-router/references/safety-policy.md +0 -33
- package/plugins/freeflow/skills/research/LANGUAGE.md +0 -61
- package/plugins/freeflow/skills/research/SKILL.md +0 -128
- package/plugins/freeflow/skills/setup-freeflow/references/output-router-setup.md +0 -52
- /package/{plugins/freeflow/assets → assets}/freeflow-plugin-icon-transparent.png +0 -0
- /package/{plugins/freeflow/hooks → hooks}/hooks.json +0 -0
- /package/{plugins/freeflow/docs → plugin-docs}/adr/0001-three-modes.md +0 -0
- /package/{plugins/freeflow/router/dist → router/dist/benchmarks}/benchmark-harness.d.ts +0 -0
- /package/{plugins/freeflow/router/dist → router/dist/benchmarks}/benchmarks.d.ts +0 -0
- /package/{plugins/freeflow/router/dist → router/dist/benchmarks}/codex-qa-benchmarks.d.ts +0 -0
- /package/{plugins/freeflow/router/dist → router/dist/config}/router-contract.d.ts +0 -0
- /package/{plugins/freeflow/router/dist → router/dist/config}/router-contract.js +0 -0
- /package/{plugins/freeflow/router/dist → router/dist/config}/schema.d.ts +0 -0
- /package/{plugins/freeflow/router/dist → router/dist/evidence}/bounded-evidence.js +0 -0
- /package/{plugins/freeflow/router/dist → router/dist/evidence}/evidence-range-selector.d.ts +0 -0
- /package/{plugins/freeflow/router/dist → router/dist/evidence}/evidence-search.d.ts +0 -0
- /package/{plugins/freeflow/router/dist → router/dist/evidence}/evidence.js +0 -0
- /package/{plugins/freeflow/router/dist → router/dist/evidence}/line-ranges.d.ts +0 -0
- /package/{plugins/freeflow/router/dist → router/dist/evidence}/line-ranges.js +0 -0
- /package/{plugins/freeflow/router → router}/dist/experiments/local-index.d.ts +0 -0
- /package/{plugins/freeflow/router → router}/dist/experiments/local-index.js +0 -0
- /package/{plugins/freeflow/router/dist → router/dist/repo}/repo-traversal.d.ts +0 -0
- /package/{plugins/freeflow/router/dist → router/dist/repo}/repo-traversal.js +0 -0
- /package/{plugins/freeflow/skills → skills}/bypass/SKILL.md +0 -0
- /package/{plugins/freeflow/skills → skills}/commit-work/SKILL.md +0 -0
- /package/{plugins/freeflow/skills → skills}/commit-work/references/staging-decisions.md +0 -0
- /package/{plugins/freeflow/skills → skills}/diagnose-failure/references/feedback-loop-catalog.md +0 -0
- /package/{plugins/freeflow/skills → skills}/diagnose-failure/references/flaky-and-performance.md +0 -0
- /package/{plugins/freeflow/skills → skills}/evaluate-skill/SKILL.md +0 -0
- /package/{plugins/freeflow/skills → skills}/evaluate-skill/references/eval-patterns.md +0 -0
- /package/{plugins/freeflow/skills → skills}/evaluate-skill/references/grading-priority.md +0 -0
- /package/{plugins/freeflow/skills → skills}/handoff/SKILL.md +0 -0
- /package/{plugins/freeflow/skills → skills}/handoff/references/templates.md +0 -0
- /package/{plugins/freeflow/skills → skills}/interview-gate/SKILL.md +0 -0
- /package/{plugins/freeflow/skills → skills}/review-work/references/reviewer-prompt.md +0 -0
- /package/{plugins/freeflow/skills → skills}/write-plan/references/plan-shapes.md +0 -0
- /package/{plugins/freeflow/skills → skills}/write-skill/SKILL.md +0 -0
- /package/{plugins/freeflow/skills → skills}/write-spec/references/artifact-standards.md +0 -0
- /package/{plugins/freeflow/skills → skills}/write-spec/references/spec-shapes.md +0 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
# Software Design Philosophy
|
|
2
|
+
|
|
3
|
+
Use this reference when `design-for-depth` needs deeper reasoning than the active skill can carry.
|
|
4
|
+
|
|
5
|
+
This is not a checklist to run every time. Pull the idea that changes the next route.
|
|
6
|
+
|
|
7
|
+
## Core Claim
|
|
8
|
+
|
|
9
|
+
Good design reduces coordination.
|
|
10
|
+
|
|
11
|
+
A deep module lets callers, tests, reviewers, and future agents use a small interface to get a lot of behavior. A shallow module makes them learn almost as much as the implementation.
|
|
12
|
+
|
|
13
|
+
Design work is worthwhile when it hides a decision that would otherwise spread.
|
|
14
|
+
|
|
15
|
+
## Ousterhout: Complexity, Deep Modules, Strategic Programming
|
|
16
|
+
|
|
17
|
+
### Complexity
|
|
18
|
+
|
|
19
|
+
Complexity shows up as:
|
|
20
|
+
|
|
21
|
+
- too many dependencies;
|
|
22
|
+
- obscurity, where important facts are hard to find;
|
|
23
|
+
- change amplification, where a small behavior change touches many places;
|
|
24
|
+
- cognitive load, where the user of a module must remember too much;
|
|
25
|
+
- unknown unknowns, where a future agent cannot tell what it must inspect.
|
|
26
|
+
|
|
27
|
+
For Freeflow, complexity is not “many lines.” A single compact helper can be complex if callers must know its quirks. A large implementation can be simple to use if the interface hides the hard parts.
|
|
28
|
+
|
|
29
|
+
### Deep modules
|
|
30
|
+
|
|
31
|
+
A deep module has a simple interface and useful behavior behind it.
|
|
32
|
+
|
|
33
|
+
Deep means:
|
|
34
|
+
|
|
35
|
+
- callers say what outcome they need;
|
|
36
|
+
- implementation owns sequencing and policy details;
|
|
37
|
+
- tests can verify behavior through the public interface;
|
|
38
|
+
- future changes stay localized;
|
|
39
|
+
- docs and review comments do not need to explain the hidden machinery every time.
|
|
40
|
+
|
|
41
|
+
Shallow means:
|
|
42
|
+
|
|
43
|
+
- the interface mirrors the implementation;
|
|
44
|
+
- callers pass many flags and know ordering rules;
|
|
45
|
+
- tests assert internal call sequences;
|
|
46
|
+
- wrappers rename work without hiding decisions;
|
|
47
|
+
- future agents still need to inspect everything to use it safely.
|
|
48
|
+
|
|
49
|
+
### Strategic vs tactical programming
|
|
50
|
+
|
|
51
|
+
Tactical programming makes the current patch fit, even if it spreads complexity.
|
|
52
|
+
|
|
53
|
+
Strategic programming spends a little extra attention to preserve future locality.
|
|
54
|
+
|
|
55
|
+
Freeflow translation:
|
|
56
|
+
|
|
57
|
+
- Do not redesign everything up front.
|
|
58
|
+
- Do stop when the local patch clearly makes the next slice, review, or bug fix harder.
|
|
59
|
+
- Route backward when the plan is tactical but the work is becoming structural.
|
|
60
|
+
|
|
61
|
+
## Parnas: Information Hiding
|
|
62
|
+
|
|
63
|
+
Parnas's key design move: modules should hide design decisions likely to change.
|
|
64
|
+
|
|
65
|
+
Do not decompose only by processing steps:
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
parse -> validate -> send -> log
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
when the real likely-changing decision is:
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
notification delivery policy: provider choice, retry, fallback, telemetry, failure semantics
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
A good module hides the unstable decision.
|
|
78
|
+
|
|
79
|
+
Ask:
|
|
80
|
+
|
|
81
|
+
- What decision would cause the most edits if it changed?
|
|
82
|
+
- Which callers currently know that decision?
|
|
83
|
+
- Can one module own it?
|
|
84
|
+
- What interface would let callers stop knowing it?
|
|
85
|
+
|
|
86
|
+
Examples:
|
|
87
|
+
|
|
88
|
+
- Billing grace period policy should not be spread across webhook handlers, email copy, UI guards, and tests.
|
|
89
|
+
- Notification retry/fallback policy should not be duplicated in each route.
|
|
90
|
+
- Permission semantics should not be separately encoded in frontend, backend, and test setup.
|
|
91
|
+
- Cache invalidation rules should not require every caller to remember freshness knobs.
|
|
92
|
+
|
|
93
|
+
## Feathers: Seams And Enabling Points
|
|
94
|
+
|
|
95
|
+
A seam is where behavior can change without editing the surrounding work.
|
|
96
|
+
|
|
97
|
+
A seam needs an enabling point: the place where a different adapter, test double, probe, or behavior can be supplied.
|
|
98
|
+
|
|
99
|
+
Freeflow use:
|
|
100
|
+
|
|
101
|
+
- Use seams to make hard-to-test or hard-to-change behavior tractable.
|
|
102
|
+
- Do not create seams merely because a pattern sounds clean.
|
|
103
|
+
- Prefer seams that match real variation or observability needs.
|
|
104
|
+
|
|
105
|
+
Questions:
|
|
106
|
+
|
|
107
|
+
- What behavior needs to vary?
|
|
108
|
+
- Where can that variation enter without editing callers?
|
|
109
|
+
- What enabling point supplies the adapter or behavior?
|
|
110
|
+
- Does the seam protect production code and tests, or only add indirection?
|
|
111
|
+
|
|
112
|
+
Good seam candidates:
|
|
113
|
+
|
|
114
|
+
- provider variation: email/SMS/payment/search/storage;
|
|
115
|
+
- environment variation: prod/test/offline/fake implementations;
|
|
116
|
+
- observability variation: probes, clocks, log sinks, metrics;
|
|
117
|
+
- migration variation: old and new implementations behind one interface.
|
|
118
|
+
|
|
119
|
+
Weak seam candidates:
|
|
120
|
+
|
|
121
|
+
- one implementation with no likely variation;
|
|
122
|
+
- a seam created only to mock internals while the real interface stays awkward;
|
|
123
|
+
- a factory/registry around every function;
|
|
124
|
+
- an adapter whose interface still exposes provider-specific quirks.
|
|
125
|
+
|
|
126
|
+
## Ports And Adapters
|
|
127
|
+
|
|
128
|
+
Ports/adapters protects core behavior from infrastructure details.
|
|
129
|
+
|
|
130
|
+
Freeflow wording:
|
|
131
|
+
|
|
132
|
+
- The core owns policy.
|
|
133
|
+
- The adapter owns provider mechanics.
|
|
134
|
+
- The interface between them says what the core needs or provides.
|
|
135
|
+
|
|
136
|
+
Use this idea when infrastructure details are leaking into product logic.
|
|
137
|
+
|
|
138
|
+
Examples:
|
|
139
|
+
|
|
140
|
+
- Stripe event parsing is adapter work; billing policy is core work.
|
|
141
|
+
- Email provider retries are adapter work; user notification policy may be core work.
|
|
142
|
+
- Database query syntax is adapter work; permission semantics are core work.
|
|
143
|
+
- Browser event plumbing is adapter work; user-flow state is core work.
|
|
144
|
+
|
|
145
|
+
Do not over-apply ports/adapters:
|
|
146
|
+
|
|
147
|
+
- simple scripts may not need ports;
|
|
148
|
+
- a single stable library call may not need an adapter;
|
|
149
|
+
- wrapping an SDK without hiding policy or provider quirks is often shallow.
|
|
150
|
+
|
|
151
|
+
## Refactoring Pressure
|
|
152
|
+
|
|
153
|
+
Design pressure often appears as ordinary implementation pain:
|
|
154
|
+
|
|
155
|
+
- shotgun surgery;
|
|
156
|
+
- repeated review findings;
|
|
157
|
+
- flaky tests around ordering;
|
|
158
|
+
- many mocks for one behavior;
|
|
159
|
+
- hard-to-explain correctness;
|
|
160
|
+
- one bug fix causing another;
|
|
161
|
+
- “just add this flag everywhere.”
|
|
162
|
+
|
|
163
|
+
Do not treat all pressure as a command to refactor.
|
|
164
|
+
|
|
165
|
+
Classify it:
|
|
166
|
+
|
|
167
|
+
- **Real design pressure:** complexity spread blocks safe progress.
|
|
168
|
+
- **Local mess:** cleanup can happen within current scope.
|
|
169
|
+
- **Deferred deepening:** record the candidate, finish current work.
|
|
170
|
+
- **Owner decision:** deeper change affects product/API/security/compatibility.
|
|
171
|
+
|
|
172
|
+
## Applying The Philosophy In Freeflow
|
|
173
|
+
|
|
174
|
+
### In discovery
|
|
175
|
+
|
|
176
|
+
Use design ideas to ask better questions, not to freeze architecture.
|
|
177
|
+
|
|
178
|
+
Good questions:
|
|
179
|
+
|
|
180
|
+
- Which decision is most likely to change?
|
|
181
|
+
- Who should know this rule?
|
|
182
|
+
- What should callers stop coordinating?
|
|
183
|
+
- What future variation is real, not imagined?
|
|
184
|
+
- Which tests should survive a provider or implementation change?
|
|
185
|
+
|
|
186
|
+
### In specs
|
|
187
|
+
|
|
188
|
+
Specs name behavior and boundaries. They should not lock in unproven module shapes.
|
|
189
|
+
|
|
190
|
+
Use:
|
|
191
|
+
|
|
192
|
+
```text
|
|
193
|
+
Tentative: notification delivery may need one policy-owning module if retries/fallbacks continue spreading.
|
|
194
|
+
Open: whether provider variation is real now or deferred.
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
not:
|
|
198
|
+
|
|
199
|
+
```text
|
|
200
|
+
Requirement: implement NotificationDeliveryPortFactoryStrategy.
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### In plans
|
|
204
|
+
|
|
205
|
+
Plan around vertical behavior and interfaces.
|
|
206
|
+
|
|
207
|
+
A good slice can be verified through the intended interface. If the slice requires broad caller choreography, revise the slice.
|
|
208
|
+
|
|
209
|
+
### In review
|
|
210
|
+
|
|
211
|
+
Review design depth by asking whether the diff reduces or increases caller knowledge.
|
|
212
|
+
|
|
213
|
+
A diff can pass tests and still fail design review if it scatters policy or creates a shallow interface.
|
|
214
|
+
|
|
215
|
+
### In diagnosis
|
|
216
|
+
|
|
217
|
+
Repeated failures may indicate that the system is missing a module, seam, or source-truth decision.
|
|
218
|
+
|
|
219
|
+
Do not keep fixing symptoms when every fix reveals another coordination problem.
|
|
@@ -13,7 +13,9 @@ No production fix without root-cause evidence. A plausible cause is not enough.
|
|
|
13
13
|
|
|
14
14
|
Use this for bugs, broken behavior, test failures, flaky failures, regressions, performance issues, and fix requests with missing evidence.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Also use it when a workflow loop fails repeatedly: artifact review hits the cap, work review hits the cap, verification keeps failing for different reasons, implementation keeps spawning edge cases, or accepted fixes reveal shared-state or module-shape problems.
|
|
17
|
+
|
|
18
|
+
Do not use this for product design, artifact review, or planning unless the next question is specifically about a failure signal or failed workflow loop.
|
|
17
19
|
|
|
18
20
|
## Hard Stops
|
|
19
21
|
|
|
@@ -32,6 +34,7 @@ Direct `/diagnose-failure`, "explicit permission", "skip the diagnostic loop", "
|
|
|
32
34
|
|
|
33
35
|
- For possible loop shapes, read `references/feedback-loop-catalog.md`.
|
|
34
36
|
- For flaky failures or performance regressions, read `references/flaky-and-performance.md`.
|
|
37
|
+
- For repeated workflow failures, edge-case churn, shared-state fixes, or shallow module/interface signals, read `../design-for-depth/SKILL.md`.
|
|
35
38
|
|
|
36
39
|
## Feedback Loop
|
|
37
40
|
|
|
@@ -71,6 +74,8 @@ Before changing behavior:
|
|
|
71
74
|
|
|
72
75
|
If the failure exposes a product, data-loss, security, privacy, billing, compatibility, or architecture decision, re-enter the interview gate before fixing.
|
|
73
76
|
|
|
77
|
+
For repeated workflow failures, classify the likely cause before fixing again: thin discovery, wrong scope, premature decisions, source-truth conflict, missing owner decision, bad plan slice, shallow module/interface, implementation bug, stale reviewer context, or inadequate verification loop. Recommend the next route: rediscover, revise spec, revise plan, use `../design-for-depth/SKILL.md`, fix implementation, adjust reviewer context, or stop.
|
|
78
|
+
|
|
74
79
|
## Fix
|
|
75
80
|
|
|
76
81
|
Turn the repro into a regression check when there is a correct seam.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Artifact Destinations
|
|
2
2
|
|
|
3
|
-
Use this when a
|
|
3
|
+
Use this when a discovery checkpoint or decision must survive beyond chat.
|
|
4
4
|
|
|
5
5
|
## Destination Test
|
|
6
6
|
|
|
@@ -16,12 +16,12 @@ If the owner is unclear, ask before writing.
|
|
|
16
16
|
|
|
17
17
|
## Common Destinations
|
|
18
18
|
|
|
19
|
-
|
|
|
19
|
+
| Discovery output | Prefer | Avoid |
|
|
20
20
|
| --- | --- | --- |
|
|
21
21
|
| Domain term or meaning | Existing `CONTEXT.md`, glossary, or domain doc | README fallback; creating domain memory without asking |
|
|
22
22
|
| Feature behavior, scope, acceptance | Existing or requested spec | ADR unless the ADR test passes |
|
|
23
|
-
| Future implementation path | Plan | Hidden plan inside a
|
|
24
|
-
| Evidence summary before requirements settle | Existing research
|
|
23
|
+
| Future implementation path | Plan | Hidden plan inside a discovery note |
|
|
24
|
+
| Evidence summary before requirements settle | Existing discovery, research, or design notes; otherwise ask | Creating `docs/research/` by default |
|
|
25
25
|
| Immediate continuation state | Handoff | Durable decision memory |
|
|
26
26
|
| Hard-to-reverse surprising tradeoff from alternatives | ADR | Product note that hides rationale |
|
|
27
27
|
| Rejected approach | ADR if tradeoff-heavy; otherwise spec/decision note | Changelog or README by default |
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Discovery Checkpoints
|
|
2
2
|
|
|
3
|
-
A checkpoint is the output of
|
|
3
|
+
A checkpoint is the output of discovery. It preserves the current understanding and names the next route.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Discovery does not end by silently writing a spec, plan, or implementation.
|
|
6
6
|
|
|
7
7
|
## Chat Or Artifact
|
|
8
8
|
|
|
@@ -17,7 +17,7 @@ Use the narrowest owning artifact:
|
|
|
17
17
|
- Handoff: immediate continuation state.
|
|
18
18
|
- Decision note or ADR: durable tradeoff or rejected approach.
|
|
19
19
|
- Domain memory: stable term or domain meaning.
|
|
20
|
-
-
|
|
20
|
+
- Discovery note: evidence summary that must be reused before requirements are settled.
|
|
21
21
|
|
|
22
22
|
If no clear destination exists, ask before writing.
|
|
23
23
|
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: discover
|
|
3
|
+
description: Use before the first answer or repo/code exploration when the user is shaping an idea, feature, tool/API surface, runtime behavior, architecture direction, vague task, bug-like unknown, or consequential hypothesis/question before spec, plan, build, or durable memory. Trigger especially on "should we", "why not", "what do you think", or design questions.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Discover
|
|
7
|
+
|
|
8
|
+
Discover is the context-building loop before action: evidence-guided discussion that finds the next high-leverage decision and ends in a checkpoint.
|
|
9
|
+
|
|
10
|
+
If this skill matches, load it before the first repo search, code read, web lookup, command, design answer, or artifact. Direct questions still use discovery-light: inspect the smallest relevant evidence, then answer directly.
|
|
11
|
+
|
|
12
|
+
Priority: Interview Gate stops silent decisions and user-owned decisions first. Discover handles context-building after no immediate stop condition remains. Output Router only chooses evidence transport after the workflow/discovery route is clear.
|
|
13
|
+
|
|
14
|
+
Do not turn discovery into a questionnaire, a report by default, or a decision-capture script. The hard part is shared understanding, not filling an artifact.
|
|
15
|
+
|
|
16
|
+
For short-lived work, keep the checkpoint in chat. When it must guide later work, save it in the narrowest owning artifact: spec, plan, handoff, decision note, ADR, domain memory, or discovery note.
|
|
17
|
+
|
|
18
|
+
Goal: enough evidence and shared understanding to route to spec, plan, more discovery, durable memory, build, or stop without inventing product, domain, scope, public API, security, privacy, billing, data-loss, compatibility, or architecture decisions.
|
|
19
|
+
|
|
20
|
+
Hard stop: do not satisfy requests for “every question,” “grill me,” “25-50 questions,” or recommended answers for each question. That creates an approval script. Inspect evidence, name the decision tree, and ask the next one or two path-changing questions instead.
|
|
21
|
+
|
|
22
|
+
## Evidence Before Questions
|
|
23
|
+
|
|
24
|
+
Inspect first when the answer is discoverable:
|
|
25
|
+
|
|
26
|
+
- code, tests, docs, ADRs, specs, policies, issues, logs, traces, or current repo state;
|
|
27
|
+
- provided files, URLs, screenshots, transcripts, or user context;
|
|
28
|
+
- current external docs or web sources when framework/library facts, ecosystem behavior, or recent changes matter.
|
|
29
|
+
|
|
30
|
+
Ask before inspecting only when multiple targets would change the discovery path or when access/scope is user-owned.
|
|
31
|
+
|
|
32
|
+
For a direct question, keep the loop light:
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
question -> inspect smallest relevant evidence -> answer directly
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
No artifact, plan, or checkpoint is required unless the answer changes future consequential work.
|
|
39
|
+
|
|
40
|
+
## Design Pressure
|
|
41
|
+
|
|
42
|
+
Use `../design-for-depth/SKILL.md` when discovery shapes modules, interfaces, seams, adapters, architecture direction, growing scope, codebase exploration, or repeated review/execution churn.
|
|
43
|
+
|
|
44
|
+
Do not decide architecture up front just because the lens is active. Use it to notice whether complexity is being hidden behind useful interfaces or spread across callers, tests, docs, artifacts, and future agents.
|
|
45
|
+
|
|
46
|
+
Use the deletion test on questions and decisions: if skipping it makes complexity spread downstream, it matters. If skipping it makes complexity vanish, it was ceremony.
|
|
47
|
+
|
|
48
|
+
## Scope Framing
|
|
49
|
+
|
|
50
|
+
Preserve the user's intended scope. Do not silently turn a large idea into `v1`/`v2`, MVP, release, or roadmap framing.
|
|
51
|
+
|
|
52
|
+
Use implementation slices, implementation phases, checklists, or multiple artifacts to make large work understandable and executable without changing what the user asked for.
|
|
53
|
+
|
|
54
|
+
Versioned shipping is a product/scope decision. Use it only when the user asks for release planning, the source context already uses that framing, or you have named why release boundaries matter and the user agrees.
|
|
55
|
+
|
|
56
|
+
If the full scope is too large for one safe pass, say that directly. Recommend implementation slices or artifact splits first; recommend versioned releases only when that is the user's actual problem.
|
|
57
|
+
|
|
58
|
+
## Loop
|
|
59
|
+
|
|
60
|
+
1. Identify the target: repo area, artifact, URL, product, model, package, paper, issue, symptom, or idea. If multiple plausible targets would change discovery, ask for the source.
|
|
61
|
+
2. Inspect the smallest evidence that can change the current route.
|
|
62
|
+
3. Explain the current understanding in plain language.
|
|
63
|
+
4. Brainstorm or compare paths when the direction is still forming; do not force a decision too early.
|
|
64
|
+
5. Ask one path-changing question when the answer would change the next artifact or action.
|
|
65
|
+
6. Let the user challenge, counter-question, or add constraints. Treat that as discovery input, not interruption.
|
|
66
|
+
7. Refresh evidence when new claims, conflicts, or branches appear.
|
|
67
|
+
8. Track decisions as settled, tentative, or open.
|
|
68
|
+
9. Stop when remaining ambiguity would not change the next route.
|
|
69
|
+
|
|
70
|
+
Discovery may move through evidence, brainstorming, targeted questioning, design, and checkpointing in any order. Do not force a fixed sequence when the evidence or conversation needs a loop.
|
|
71
|
+
|
|
72
|
+
## Final Question Pass
|
|
73
|
+
|
|
74
|
+
Before routing from discovery to `write-spec`, run a final ambiguity sweep.
|
|
75
|
+
|
|
76
|
+
Trigger it when:
|
|
77
|
+
|
|
78
|
+
- the user asks to write the spec;
|
|
79
|
+
- the user says brainstorming, discovery, or discussion feels complete;
|
|
80
|
+
- the user asks to move to the next phase;
|
|
81
|
+
- you are about to close discovery with `Next: Forward — write-spec`.
|
|
82
|
+
|
|
83
|
+
Ask the smallest set of remaining path-changing questions whose answers would affect spec scope, product behavior, acceptance, public API, architecture, security, privacy, billing, data-loss, compatibility, or artifact destination.
|
|
84
|
+
|
|
85
|
+
If meaningful ambiguity remains, route with `Next: Forward — final question pass before write-spec` and ask those questions. If no meaningful questions remain, say so and route to `write-spec`.
|
|
86
|
+
|
|
87
|
+
Do not use this while brainstorming, research, or comparison is still active. Do not turn it into a long questionnaire or recommendation approval script.
|
|
88
|
+
|
|
89
|
+
## Question Discipline
|
|
90
|
+
|
|
91
|
+
Prefer deeper questions over more questions. Ask as many as the situation needs, but each question should earn its place.
|
|
92
|
+
|
|
93
|
+
Before asking, run the deletion test:
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
If I do not ask this, does downstream complexity spread?
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
If no, skip it.
|
|
100
|
+
|
|
101
|
+
Bad question:
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
Should the button be blue or green?
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
when the feature purpose is still unclear.
|
|
108
|
+
|
|
109
|
+
Good question:
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
Is this for one workflow or many workflows?
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
because it changes the module interface, spec shape, and test surface.
|
|
116
|
+
|
|
117
|
+
Long question chains are a failure mode, not diligence. Never number out a long list just because the user asked for one.
|
|
118
|
+
|
|
119
|
+
Do not turn recommendations into an approval script. Recommendations should clarify tradeoffs, not make it easy to rubber-stamp decisions. Give the recommendation for the current path-changing question, then wait when the choice is user-owned.
|
|
120
|
+
|
|
121
|
+
After a few path-changing questions, or whenever the user introduces a new claim, inspect evidence, summarize, or checkpoint before asking more.
|
|
122
|
+
|
|
123
|
+
## Decision Discipline
|
|
124
|
+
|
|
125
|
+
Read `ARTIFACT-DESTINATIONS.md` when a checkpoint or decision must survive beyond chat and the owning destination is not obvious.
|
|
126
|
+
|
|
127
|
+
Not every answer is durable. Keep a lightweight ledger:
|
|
128
|
+
|
|
129
|
+
- **Settled** — explicit user decision or evidence-backed fact.
|
|
130
|
+
- **Tentative** — useful working assumption, not authority.
|
|
131
|
+
- **Open** — unresolved question that can change the next route.
|
|
132
|
+
|
|
133
|
+
Persist a decision only when absence would make future work rediscover or contradict it.
|
|
134
|
+
|
|
135
|
+
Put durable decisions where they belong:
|
|
136
|
+
|
|
137
|
+
- Domain term or meaning -> existing glossary, `CONTEXT.md`, or domain doc.
|
|
138
|
+
- Feature behavior, scope, or acceptance -> spec.
|
|
139
|
+
- Future implementation path -> plan.
|
|
140
|
+
- Immediate continuation state -> handoff.
|
|
141
|
+
- Hard-to-reverse, surprising tradeoff chosen from alternatives -> ADR.
|
|
142
|
+
- No durable value -> leave it in chat.
|
|
143
|
+
|
|
144
|
+
If the destination is missing or ambiguous, ask before writing.
|
|
145
|
+
|
|
146
|
+
## Stop Conditions
|
|
147
|
+
|
|
148
|
+
Stop and ask when discovery reveals a user-owned decision, source-of-truth conflict, path conflict, material method substitution, or ambiguous artifact destination.
|
|
149
|
+
|
|
150
|
+
Do not write implementation files from discovery.
|
|
151
|
+
|
|
152
|
+
Write specs, plans, ADRs, handoffs, or decision notes only when the user asks or the checkpoint must guide later work.
|
|
153
|
+
|
|
154
|
+
Do not leave discovery by silently jumping to spec, plan, or build. Before `write-spec`, run the final question pass. Close with a checkpoint when consequential direction changed.
|
|
155
|
+
|
|
156
|
+
## Checkpoint Shape
|
|
157
|
+
|
|
158
|
+
Read `CHECKPOINTS.md` when saving a checkpoint or choosing chat versus artifact.
|
|
159
|
+
|
|
160
|
+
Use this shape when ending a discovery pass or routing forward. Save it in the owning artifact when it must survive beyond chat. Omit sections that do not apply.
|
|
161
|
+
|
|
162
|
+
```text
|
|
163
|
+
Question / goal: ...
|
|
164
|
+
Evidence: ...
|
|
165
|
+
Current understanding: ...
|
|
166
|
+
Settled: ...
|
|
167
|
+
Tentative: ...
|
|
168
|
+
Open: ...
|
|
169
|
+
Recommendation: ...
|
|
170
|
+
Next: Forward | Backward | Branch | Stop — ...
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
`Next:` is routing, not permission to create the next artifact.
|
|
@@ -13,7 +13,7 @@ Move one verified slice at a time. Preserve rollback, reviewability, and user co
|
|
|
13
13
|
|
|
14
14
|
Read `references/execution-map.md` when the plan has multiple slices, TDD/benchmark work, review checkpoints, per-slice commits, context-window pressure, or any failed check/review/source-scope conflict.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Use `../design-for-depth/SKILL.md` when a slice changes modules, interfaces, seams, adapters, architecture, or when review findings become a stream of edge-case patches. Ask whether the slice is deepening the module or spreading complexity across callers, tests, docs, or review comments.
|
|
17
17
|
|
|
18
18
|
## Classify First
|
|
19
19
|
|
|
@@ -22,7 +22,7 @@ Keep research language alive. Read `../research/LANGUAGE.md` when a slice change
|
|
|
22
22
|
- Hidden owner decision: stop and ask.
|
|
23
23
|
- Missing verification: stop before consequential edits and ask to revise the plan or approve a diagnostic path.
|
|
24
24
|
- Missing plan: ask for a plan or route to `write-plan`.
|
|
25
|
-
- Scope expansion: stop before absorbing it; route back to
|
|
25
|
+
- Scope expansion: stop before absorbing it; route back to discover, spec, or plan.
|
|
26
26
|
- Review failure during execution: classify findings and report the route before editing from them.
|
|
27
27
|
|
|
28
28
|
## Before Editing
|
|
@@ -76,6 +76,7 @@ For each slice:
|
|
|
76
76
|
- Run the planned check or the smallest equivalent check.
|
|
77
77
|
- If the check fails, stop and report the evidence before changing direction.
|
|
78
78
|
- If new evidence invalidates the plan, stop before patching forward.
|
|
79
|
+
- If implementation spreads policy, edge cases, or verification across callers/tests/docs, treat it as design pressure before adding more patches.
|
|
79
80
|
|
|
80
81
|
When TDD is requested by the user, plan, or repo practice, use TDD inside the slice:
|
|
81
82
|
|
|
@@ -112,11 +113,11 @@ Do not immediately apply findings and request another review in the same loop. D
|
|
|
112
113
|
|
|
113
114
|
If all accepted findings are small, in-scope, and supported by source truth, recommend a bounded fix pass as the next route. Do not perform that fix pass until the user or parent explicitly chooses it after seeing the adjudication. If findings change scope, behavior, source truth, public API, security, privacy, billing, data loss, compatibility, or architecture, route backward before editing.
|
|
114
115
|
|
|
115
|
-
Three review passes is the hard cap for the same slice/work scope. At pass 3, stop, classify, and diagnose. Do not request a fourth broad review. Use a `diagnose-failure`-style loop to decide whether the issue is shallow
|
|
116
|
+
Three review passes is the hard cap for the same slice/work scope. At pass 3, stop, classify, and diagnose. Do not request a fourth broad review. Use a `diagnose-failure`-style loop to decide whether the issue is shallow discovery, weak spec, wrong plan slice, ambiguous policy, source-truth conflict, shallow module/interface, implementation bug, or stale reviewer context.
|
|
116
117
|
|
|
117
118
|
## Backward Edge
|
|
118
119
|
|
|
119
|
-
If implementation reveals that the plan is wrong, incomplete, or too narrow, re-enter
|
|
120
|
+
If implementation reveals that the plan is wrong, incomplete, or too narrow, re-enter discover/spec/plan before continuing.
|
|
120
121
|
|
|
121
122
|
Do not absorb material scope expansion into execution. New behavior, API shape, security/privacy/billing/data-loss decisions, compatibility changes, or irreversible architecture usually need a revised spec or plan.
|
|
122
123
|
|
|
@@ -18,7 +18,7 @@ Orient
|
|
|
18
18
|
Any failed check, non-pass review, source conflict, or scope expansion
|
|
19
19
|
-> Classify evidence
|
|
20
20
|
-> Report route
|
|
21
|
-
-> Fix | Diagnose |
|
|
21
|
+
-> Fix | Diagnose | Discover | Spec | Plan | Stop
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
## Contract Map
|
|
@@ -47,7 +47,7 @@ flowchart TD
|
|
|
47
47
|
Contract --> Decision{Can execute safely?}
|
|
48
48
|
|
|
49
49
|
Decision -->|yes| Build[Build slice<br/>TDD vertical loop if applicable]
|
|
50
|
-
Decision -->|missing plan/check/decision| Back[Backward route<br/>
|
|
50
|
+
Decision -->|missing plan/check/decision| Back[Backward route<br/>discover / spec / plan / owner]
|
|
51
51
|
|
|
52
52
|
Build --> Verify[Verify planned check]
|
|
53
53
|
Verify -->|pass| ReviewGate{Review needed now?}
|
|
@@ -9,12 +9,16 @@ Use exactly three modes.
|
|
|
9
9
|
|
|
10
10
|
## Modes
|
|
11
11
|
|
|
12
|
-
**Conversation mode**: discussion, explanation, critique, exploration, quick analysis.
|
|
12
|
+
**Conversation mode**: non-mutating discussion, explanation, critique, exploration, quick analysis, and planning in chat.
|
|
13
13
|
|
|
14
14
|
- Answer questions; do not act on them.
|
|
15
|
+
- You may inspect source, read files, and run safe read-only commands when needed for the answer.
|
|
16
|
+
- Do not edit, create, delete, commit, push, run mutating commands, or otherwise change repo/system state.
|
|
17
|
+
- Do not perform implementation or other consequential work that changes files, behavior, source truth, or durable project state.
|
|
18
|
+
- If the user asks for mutating or consequential work, stop and require switching to `workflow` or `strict-workflow` before acting. Do not proceed in conversation mode, even if pressured.
|
|
15
19
|
- No workflow pressure.
|
|
16
20
|
- No required artifacts.
|
|
17
|
-
- No plan/spec requirement.
|
|
21
|
+
- No plan/spec file requirement.
|
|
18
22
|
- Ask only when needed for the answer.
|
|
19
23
|
|
|
20
24
|
**Workflow mode**: normal consequential work.
|
|
@@ -33,8 +37,9 @@ Use exactly three modes.
|
|
|
33
37
|
|
|
34
38
|
## Inference
|
|
35
39
|
|
|
36
|
-
- If the user is talking
|
|
37
|
-
- If the user asks to implement, fix
|
|
40
|
+
- If the user is talking, asking a conceptual question, brainstorming, or asking for read-only analysis/planning, use conversation mode.
|
|
41
|
+
- If the effective mode is conversation and the user asks to edit, create files, implement, fix by changing code, commit, push, or run mutating commands, require a switch to `workflow` or `strict-workflow` before acting.
|
|
42
|
+
- If no current conversation override exists and the user asks to implement, fix, discover context for action, review, or create plan/spec artifacts, use workflow mode.
|
|
38
43
|
- If the task is high-risk, recommend strict-workflow mode and ask for confirmation.
|
|
39
44
|
- If implementation would require overriding existing docs, tests, specs, policies, or established behavior, recommend strict-workflow mode and ask before editing.
|
|
40
45
|
|