@hassangameryt/freeflow 0.1.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 +25 -16
- package/assets/freeflow-plugin-icon.png +0 -0
- package/{plugins/freeflow/command-surface.json → command-surface.json} +10 -10
- 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 +65 -14
- package/package.json +46 -13
- 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/plugin-docs/README.md +40 -0
- 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 +7 -7
- package/{plugins/freeflow/docs → plugin-docs}/workflow.md +4 -4
- package/router/dist/benchmarks/benchmark-harness.d.ts +32 -0
- package/router/dist/benchmarks/benchmark-harness.js +92 -0
- package/router/dist/benchmarks/benchmarks.d.ts +102 -0
- package/router/dist/benchmarks/benchmarks.js +880 -0
- package/router/dist/benchmarks/codex-qa-benchmarks.d.ts +91 -0
- package/router/dist/benchmarks/codex-qa-benchmarks.js +461 -0
- package/router/dist/benchmarks/command-benchmarks.d.ts +128 -0
- package/router/dist/benchmarks/command-benchmarks.js +653 -0
- 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/router/dist/benchmarks/index-benchmarks.d.ts +98 -0
- package/router/dist/benchmarks/index-benchmarks.js +762 -0
- 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/router/dist/config/router-contract.d.ts +10 -0
- package/router/dist/config/router-contract.js +54 -0
- package/router/dist/config/schema.d.ts +18 -0
- package/router/dist/config/schema.js +600 -0
- package/router/dist/config/types.d.ts +521 -0
- package/router/dist/config/types.js +30 -0
- package/router/dist/evidence/bounded-evidence.d.ts +40 -0
- package/router/dist/evidence/bounded-evidence.js +310 -0
- package/router/dist/evidence/evidence-range-selector.d.ts +22 -0
- package/router/dist/evidence/evidence-range-selector.js +231 -0
- package/router/dist/evidence/evidence-search.d.ts +25 -0
- package/router/dist/evidence/evidence-search.js +466 -0
- package/router/dist/evidence/evidence.d.ts +38 -0
- package/router/dist/evidence/evidence.js +196 -0
- package/router/dist/evidence/failure-contracts.d.ts +27 -0
- package/router/dist/evidence/failure-contracts.js +160 -0
- package/router/dist/evidence/line-ranges.d.ts +22 -0
- package/router/dist/evidence/line-ranges.js +22 -0
- package/router/dist/experiments/local-index.d.ts +58 -0
- package/router/dist/experiments/local-index.js +562 -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/repo/repo-traversal.d.ts +18 -0
- package/router/dist/repo/repo-traversal.js +242 -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/router/dist/routing/parsers.d.ts +16 -0
- package/router/dist/routing/parsers.js +473 -0
- 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/router/dist/tools/search.js +1205 -0
- 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/router/dist/vault/vault.d.ts +103 -0
- package/router/dist/vault/vault.js +635 -0
- package/{plugins/freeflow/skills → skills}/commit-work/SKILL.md +17 -16
- package/{plugins/freeflow/skills → skills}/commit-work/references/staging-decisions.md +3 -3
- 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/skills/discover/ARTIFACT-DESTINATIONS.md +58 -0
- package/skills/discover/CHECKPOINTS.md +74 -0
- package/skills/discover/SKILL.md +173 -0
- package/skills/execute-plan/SKILL.md +133 -0
- package/skills/execute-plan/references/execution-map.md +122 -0
- package/{plugins/freeflow/skills → skills}/mode-contract/SKILL.md +10 -5
- 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 +37 -1
- package/{plugins/freeflow/skills → skills}/review-artifact/references/reviewer-prompt.md +14 -2
- package/skills/review-work/SKILL.md +101 -0
- package/{plugins/freeflow/skills → skills}/review-work/references/reviewer-prompt.md +8 -0
- package/skills/setup-freeflow/SKILL.md +106 -0
- package/{plugins/freeflow/skills → skills}/setup-freeflow/references/activation-contract.md +14 -8
- package/{plugins/freeflow/skills → skills}/setup-freeflow/references/host-setup.md +5 -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 +23 -13
- package/{plugins/freeflow/skills → skills}/workflow/references/workflow-map.md +21 -20
- package/{plugins/freeflow/skills → skills}/write-plan/SKILL.md +9 -1
- package/{plugins/freeflow/skills → skills}/write-skill/SKILL.md +1 -1
- package/{plugins/freeflow/skills → skills}/write-spec/SKILL.md +9 -6
- package/plugins/freeflow/docs/README.md +0 -39
- package/plugins/freeflow/docs/adr/0002-evals-before-hooks.md +0 -17
- package/plugins/freeflow/docs/adr/README.md +0 -7
- package/plugins/freeflow/docs/architecture.md +0 -86
- package/plugins/freeflow/docs/release-evidence.md +0 -49
- package/plugins/freeflow/pi-extension/index.js +0 -250
- package/plugins/freeflow/skills/capture-decisions/SKILL.md +0 -95
- package/plugins/freeflow/skills/capture-decisions/references/destination-guide.md +0 -65
- package/plugins/freeflow/skills/execute-plan/SKILL.md +0 -67
- package/plugins/freeflow/skills/grill-context/SKILL.md +0 -79
- package/plugins/freeflow/skills/grill-context/references/approach-framing.md +0 -52
- package/plugins/freeflow/skills/research-brief/SKILL.md +0 -69
- package/plugins/freeflow/skills/review-work/SKILL.md +0 -73
- package/plugins/freeflow/skills/setup-freeflow/SKILL.md +0 -84
- /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/skills → skills}/bypass/SKILL.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}/write-plan/references/plan-shapes.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,202 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: output-router
|
|
3
|
+
description: Use after the workflow, interview-gate, or discover route is clear when choosing between native tools and Freeflow routed tools, retrieving repo/vault evidence, transforming bounded evidence, handling unknown-size or broad output, running likely-large/noisy commands, recovering vaulted output, configuring outputRouter/observedRouting/scriptTransform, or handling optional native read/bash safety-net routing.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Output Router
|
|
7
|
+
|
|
8
|
+
Choose how evidence moves into context.
|
|
9
|
+
|
|
10
|
+
Freeflow tools are the safe first choice for unknown-size, exploratory, repo-wide, generated/log-adjacent, structured, or likely noisy output. Native tools stay direct for known-small, exact, intentionally raw, or mutating work.
|
|
11
|
+
|
|
12
|
+
Output Router does not classify the task. Workflow, Interview Gate, and Discover decide whether to answer, ask, discover, plan, or stop. Output Router starts after that route is clear.
|
|
13
|
+
|
|
14
|
+
## First Decision
|
|
15
|
+
|
|
16
|
+
Ask what kind of data you need:
|
|
17
|
+
|
|
18
|
+
- Existing repo/vault data: use `freeflow_search`.
|
|
19
|
+
- New command or script-produced output: use `freeflow_run`.
|
|
20
|
+
- Several independent Freeflow operations: use `freeflow_batch`.
|
|
21
|
+
- Config/status/vault/script-adapter facts: use `freeflow_status`.
|
|
22
|
+
- Enabled MCP/web/fetch/code-search output: call the host tool directly; Pi observed routing runs after the host result when configured.
|
|
23
|
+
- Known whole file, intentionally exact shell behavior, or edits: use native `read`, `bash`, `edit`, or `write`.
|
|
24
|
+
|
|
25
|
+
When unsure how much output will return, use Freeflow first.
|
|
26
|
+
|
|
27
|
+
## `freeflow_search`: Existing Data
|
|
28
|
+
|
|
29
|
+
Use `freeflow_search` for repo files and vaulted output that already exists.
|
|
30
|
+
|
|
31
|
+
Actions:
|
|
32
|
+
|
|
33
|
+
- `locate`: find likely paths/output ids first. Use before reading when you only need candidates.
|
|
34
|
+
- `query`: return the best focused evidence packets for a search question.
|
|
35
|
+
- `get`: user gave exact-ish text/code/snippet or asks “where is this?” Find the best match and return source coordinates plus matched content.
|
|
36
|
+
- `retrieve`: you already know the path/outputId and line range. Return those exact lines. Do not use this as search.
|
|
37
|
+
- `expand`: widen a previous evidence packet.
|
|
38
|
+
- `explain`: explain a previous routed decision or vault output/recoverability.
|
|
39
|
+
- `transform`: compute facts or deterministic subsets from repo/vault/file/output data.
|
|
40
|
+
|
|
41
|
+
Use `source.kind="repo"` for the current checkout. Use `source.kind="vault"` for previous Freeflow outputs.
|
|
42
|
+
|
|
43
|
+
Vault search patterns:
|
|
44
|
+
|
|
45
|
+
- Unknown output id: `source.kind="vault"` without `outputId`, plus `query` and optional `filters`.
|
|
46
|
+
- Known output id and unknown line: `action="query"` or `get` with `source.outputId`.
|
|
47
|
+
- Known output id and known line range: `action="retrieve"` with `lineRange`.
|
|
48
|
+
- Metadata-only result: use `action="explain"`; do not claim raw recovery.
|
|
49
|
+
|
|
50
|
+
Use `preserve="full"` only when exact fidelity matters. It still means exact-under-caps, not unlimited context injection.
|
|
51
|
+
|
|
52
|
+
## `freeflow_search action=transform`: Processing Existing Data
|
|
53
|
+
|
|
54
|
+
Use transform when raw data is too large/structured and you need computed facts.
|
|
55
|
+
|
|
56
|
+
Good transform cases:
|
|
57
|
+
|
|
58
|
+
- logs: status counts, error rates, slow examples,
|
|
59
|
+
- JSON/CSV: counts, groupings, top values, extracted fields,
|
|
60
|
+
- test/build/typecheck output already in the vault,
|
|
61
|
+
- MCP/web/fetch/code-search payloads already routed into the vault,
|
|
62
|
+
- deterministic regex filtering, match counts, grouping, dedupe, topN, URL/citation extraction, line/size stats.
|
|
63
|
+
|
|
64
|
+
Prefer deterministic operations when enough:
|
|
65
|
+
|
|
66
|
+
- `regexFilter`, `countMatches`, `jsonExtract`, `groupByRegex`, `dedupe`, `topN`, `extractUrls`, `extractCitations`, `lineStats`, `sizeStats`.
|
|
67
|
+
|
|
68
|
+
Use scripts only when deterministic operations cannot express the fact:
|
|
69
|
+
|
|
70
|
+
- `operation.kind="script"` runs a sandboxed transform over vault sources.
|
|
71
|
+
- `script` without `operation` runs the processing-engine script path over repo/vault sources.
|
|
72
|
+
- Sandboxed scripts require `scriptTransform.enabled=true` and a proof-backed adapter.
|
|
73
|
+
- Raw script code is not persisted; metadata stores hashes/labels/limits.
|
|
74
|
+
- No sandboxed script path may silently fall back to host shell execution.
|
|
75
|
+
|
|
76
|
+
Unsafe unsandboxed processing is local-only, explicit per call, and only through the processing script policy. It must say `unsafe/unsandboxed`. Never put that opt-in in shared config.
|
|
77
|
+
|
|
78
|
+
## `freeflow_run`: New Output
|
|
79
|
+
|
|
80
|
+
Use `freeflow_run` when the producer creates new output and routed evidence is enough.
|
|
81
|
+
|
|
82
|
+
Base producers are mutually exclusive:
|
|
83
|
+
|
|
84
|
+
- `command`: shell command through the host-approved runner.
|
|
85
|
+
- `script`: sandboxed code-as-producer with no repo/home/env/network/vault access.
|
|
86
|
+
|
|
87
|
+
Use `command` for:
|
|
88
|
+
|
|
89
|
+
- tests, builds, lint, typecheck, CI-like checks,
|
|
90
|
+
- broad shell search with unknown output size,
|
|
91
|
+
- commands likely to print logs, JSON, status, or diagnostics,
|
|
92
|
+
- commands whose exact raw output may need recovery.
|
|
93
|
+
|
|
94
|
+
Use `script` for:
|
|
95
|
+
|
|
96
|
+
- generating data with code when no repo/home/env/network access is needed,
|
|
97
|
+
- safe code-as-producer execution through the same sandbox engine as transforms,
|
|
98
|
+
- stdout/stderr capture that should route like command output.
|
|
99
|
+
|
|
100
|
+
Do not use `freeflow_run script` when the code needs repo files, environment variables, network, package imports, or host filesystem access. Use a host command intentionally, or transform an explicitly captured source.
|
|
101
|
+
|
|
102
|
+
Run modifiers:
|
|
103
|
+
|
|
104
|
+
- `goal`: tell the router why the run exists, e.g. `verification`, `diagnosis`, `build`, `log analysis`.
|
|
105
|
+
- `filters`: deterministic line filtering over captured stdout/stderr/combined.
|
|
106
|
+
- `scriptFilter`: sandboxed script over already captured stdout/stderr/combined. It never reruns the base producer.
|
|
107
|
+
- `preserve="full"`: request exact output under caps with vault recovery over cap.
|
|
108
|
+
|
|
109
|
+
Run storage:
|
|
110
|
+
|
|
111
|
+
- Default `hybrid-dedupe` stores exact output when exactness-sensitive and metadata-only for small non-sensitive successes.
|
|
112
|
+
- Failures, verification/test/build/typecheck/diagnosis output, `preserve="full"`, filters, script filters, reducers, script producers, and large/noisy output are exactness-sensitive.
|
|
113
|
+
- Exact duplicates may store current metadata pointing to a previous exact `outputId`.
|
|
114
|
+
- Plain metadata-only records get rerun guidance, not exact recovery claims.
|
|
115
|
+
|
|
116
|
+
## `freeflow_batch`: Independent Freeflow Work
|
|
117
|
+
|
|
118
|
+
Use `freeflow_batch` when several Freeflow-owned `run` or `search` steps can happen independently.
|
|
119
|
+
|
|
120
|
+
Good batch cases:
|
|
121
|
+
|
|
122
|
+
- run several bounded searches in parallel,
|
|
123
|
+
- run independent checks and ask `queries[]` to extract facts from child evidence,
|
|
124
|
+
- gather multiple repo/vault facts without injecting every child result.
|
|
125
|
+
|
|
126
|
+
Do not use batch for:
|
|
127
|
+
|
|
128
|
+
- sequenced workflows,
|
|
129
|
+
- arbitrary external tool orchestration,
|
|
130
|
+
- mutating work,
|
|
131
|
+
- steps where one child needs another child’s output.
|
|
132
|
+
|
|
133
|
+
Child outputs remain in `details.result.steps`; exact child run output remains recoverable by child `outputId`.
|
|
134
|
+
|
|
135
|
+
## Native Tools
|
|
136
|
+
|
|
137
|
+
Use native tools when direct behavior is the point:
|
|
138
|
+
|
|
139
|
+
- `read`: known whole file or exact direct file content is intended.
|
|
140
|
+
- `bash`: expected-small exact shell behavior or host access is intentionally needed.
|
|
141
|
+
- `edit` / `write`: mutations.
|
|
142
|
+
|
|
143
|
+
Do not run broad native commands just to see what comes back. Likely-large native commands include repo-wide `rg`, `grep -R`, `find`, package scans, generated-artifact scans, logs, broad `git diff/log`, full tests/builds/lints/typechecks, and one-off scripts with unknown output size.
|
|
144
|
+
|
|
145
|
+
If native read/bash safety net is enabled, large/noisy native output may be replaced with labeled Freeflow-routed output. It must include an `outputId` and recovery instructions. If safety-net routing fails, native output passes through with a warning.
|
|
146
|
+
|
|
147
|
+
## Observed Routing
|
|
148
|
+
|
|
149
|
+
For enabled Pi MCP/web/fetch/code-search producers, call the host tool directly. Freeflow observes the completed result after host execution.
|
|
150
|
+
|
|
151
|
+
Observed routing:
|
|
152
|
+
|
|
153
|
+
- is off by default,
|
|
154
|
+
- is explicit per producer/server,
|
|
155
|
+
- does not grant permissions or block host tools,
|
|
156
|
+
- can persist exact output, metadata-only, or nothing depending on config,
|
|
157
|
+
- fails open with original host output if routing fails.
|
|
158
|
+
|
|
159
|
+
Mutating MCP/tool calls still require normal workflow/interview judgment before the host call. Observed routing is not permission approval.
|
|
160
|
+
|
|
161
|
+
## Hard Rules
|
|
162
|
+
|
|
163
|
+
- Do not pretend routed output is native output.
|
|
164
|
+
- Do not silently shorten native output.
|
|
165
|
+
- Capture raw output before transforming it.
|
|
166
|
+
- Keep raw source recovery separate from transformed/reduced output recovery.
|
|
167
|
+
- Treat `preserve="full"` as exact fidelity under caps, not unlimited context injection.
|
|
168
|
+
- Preserve exact failure and verification evidence lines.
|
|
169
|
+
- Keep `toolStatus`, `execution.status`, and `routing.status` separate.
|
|
170
|
+
- Metadata-only records must never claim exact raw recovery.
|
|
171
|
+
- Freeflow mode changes guidance strength only. It must not enable `postToolRouting`.
|
|
172
|
+
- Do not write removed `capture` or `providers` config.
|
|
173
|
+
- Do not offer `redacted`; it is future-only.
|
|
174
|
+
|
|
175
|
+
## Recovery Pattern
|
|
176
|
+
|
|
177
|
+
For routed run/native/observed/transform output, recover exact text with:
|
|
178
|
+
|
|
179
|
+
```json
|
|
180
|
+
{
|
|
181
|
+
"action": "retrieve",
|
|
182
|
+
"source": { "kind": "vault", "outputId": "ffout_...", "stream": "stdout|stderr|combined|raw" },
|
|
183
|
+
"lineRange": { "start": 1, "end": 20 },
|
|
184
|
+
"preserve": "full"
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
When line numbers are unknown, use `query` or `get` first. Use `expand` when a returned evidence packet is too narrow. Use `explain` when recoverability is unclear.
|
|
189
|
+
|
|
190
|
+
## Config
|
|
191
|
+
|
|
192
|
+
Use `freeflow_status` to inspect effective config, vault writability/index state, script adapters, observed routing, and migration recommendations.
|
|
193
|
+
|
|
194
|
+
Persist optional config only after an explicit setup branch/request:
|
|
195
|
+
|
|
196
|
+
- `outputRouter`: `enabled`, `profile`, `postToolRouting`, `storagePolicy`, thresholds, vault root/retention, generated paths, noisy command hints.
|
|
197
|
+
- `observedRouting`: explicit MCP servers and web/fetch/codeSearch producer persistence.
|
|
198
|
+
- `scriptTransform`: enabled flag, languages, sandbox/network/limits/raw-script persistence.
|
|
199
|
+
|
|
200
|
+
Minimal setup stays only `defaultMode`. Missing optional sections mean built-in defaults.
|
|
201
|
+
|
|
202
|
+
Read `references/safety-policy.md` before changing routing policy, reviewing router behavior, or handling exactness-sensitive output.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Output Router Safety Policy
|
|
2
|
+
|
|
3
|
+
Reference-only policy for exactness-sensitive output routing. Pi runtime context does not load this whole file by default; the active `output-router` skill carries the compact rules. Read this file before changing routing policy, reviewing router behavior, or handling a new exactness-sensitive output class.
|
|
4
|
+
|
|
5
|
+
## Main Rule
|
|
6
|
+
|
|
7
|
+
Do not silently summarize, compress, or replace exactness-sensitive output.
|
|
8
|
+
|
|
9
|
+
Exactness-sensitive output includes:
|
|
10
|
+
|
|
11
|
+
- user-requested exact/full output,
|
|
12
|
+
- small native outputs where direct output is expected,
|
|
13
|
+
- verification output needed for completion claims,
|
|
14
|
+
- failure evidence needed for diagnosis,
|
|
15
|
+
- source-truth conflict evidence,
|
|
16
|
+
- security, privacy, billing, data-loss, permissions, or public API evidence,
|
|
17
|
+
- failed, timed-out, or cancelled run output,
|
|
18
|
+
- script-producer output,
|
|
19
|
+
- filtered, script-filtered, reduced, or transformed output where raw source matters,
|
|
20
|
+
- anything marked `preserve: full`.
|
|
21
|
+
|
|
22
|
+
## Required Behavior
|
|
23
|
+
|
|
24
|
+
- Capture raw evidence before transformation whenever output is routed.
|
|
25
|
+
- Label every transformed native or observed result as Freeflow-routed output.
|
|
26
|
+
- Include an `outputId` and exact recovery instructions when exact recovery exists.
|
|
27
|
+
- Preserve exact failure and verification evidence lines; do not paraphrase them.
|
|
28
|
+
- Pass small native outputs through unchanged unless explicit config and thresholds route them.
|
|
29
|
+
- For huge exactness-sensitive output, use vaulting and exact chunk retrieval instead of lossy summarization.
|
|
30
|
+
- If post-tool native safety-net routing fails, fail open: return the native output unchanged when possible and include a warning.
|
|
31
|
+
- Keep raw source recovery separate from transformed/reduced output recovery.
|
|
32
|
+
- Metadata-only records must never claim exact raw recovery. Duplicate metadata may point to a prior exact `outputId`; plain metadata-only records get rerun or explanation guidance.
|
|
33
|
+
|
|
34
|
+
## Non-Goals
|
|
35
|
+
|
|
36
|
+
- This policy does not enable post-tool routing by itself.
|
|
37
|
+
- This policy does not authorize model-assisted summarization inside the router runtime.
|
|
38
|
+
- This policy does not authorize unsandboxed script execution.
|
|
39
|
+
- This policy does not require Pi runtime context to inject the full reference every turn.
|
|
40
|
+
- This policy does not replace host permissions, sandboxing, approvals, or workflow/interview gates.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review-artifact
|
|
3
|
-
description: Use when asked to review whether a spec, plan, decision note,
|
|
3
|
+
description: Use when asked to review whether a spec, plan, decision note, discovery checkpoint, handoff, or other durable artifact is fit to guide future work; also use when adjudicating artifact-review findings or repeated review loops.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Review Artifact
|
|
@@ -9,6 +9,14 @@ Review whether the artifact is fit to guide work.
|
|
|
9
9
|
|
|
10
10
|
Review first. Edit second.
|
|
11
11
|
|
|
12
|
+
Reviewer findings are evidence, not commands. The parent agent owns adjudication.
|
|
13
|
+
|
|
14
|
+
A non-passing artifact review is a phase exit, not an autonomous patch loop. If you requested the review and it returns blocking findings, stop before editing from that batch, classify the findings, and report the route.
|
|
15
|
+
|
|
16
|
+
The turn that receives a non-passing review ends with adjudication and route only. Do not edit from that review batch in the same turn, even when the user or reviewer says to apply all findings and continue reviewing.
|
|
17
|
+
|
|
18
|
+
Hard stop: if the artifact has already had three review passes, do not edit any files or request another review. Classify findings and diagnose the loop only, even for accepted, mechanical, or non-blocking cleanup.
|
|
19
|
+
|
|
12
20
|
## Source-Truth Guard
|
|
13
21
|
|
|
14
22
|
Artifact feedback is not approval to change source of truth.
|
|
@@ -23,10 +31,37 @@ Do not rewrite docs, tests, policies, specs, ADRs, or handoffs to make the artif
|
|
|
23
31
|
|
|
24
32
|
For source-truth conflicts, the final line must be a direct choice question.
|
|
25
33
|
|
|
34
|
+
## Parent Adjudication
|
|
35
|
+
|
|
36
|
+
Before editing from reviewer findings, classify each material finding:
|
|
37
|
+
|
|
38
|
+
- Accepted: valid and safe to apply without changing settled intent.
|
|
39
|
+
- Rejected: stale, unsupported, already resolved, equivalent, or not important.
|
|
40
|
+
- Question: needs owner decision.
|
|
41
|
+
- Needs evidence: inspect more before deciding.
|
|
42
|
+
|
|
43
|
+
Non-blocking findings and reviewer questions do not fail the artifact by default. Classify them, then defer, ask, gather evidence, or accept.
|
|
44
|
+
|
|
45
|
+
Ask before applying any finding that changes artifact intent, scope, source truth, workflow policy, sensitive behavior, or a settled decision.
|
|
46
|
+
|
|
47
|
+
For second and later review iterations, update the reviewer prompt with prior findings, owner clarifications, accepted/rejected findings, changed sections, and remaining risk. Do not rerun the same broad prompt after the situation narrows.
|
|
48
|
+
|
|
49
|
+
Do not apply a non-pass review batch and request another review in the same autonomous loop. Return the adjudication and next route first. A later explicit apply-fixes request can start a bounded fix pass for accepted, in-scope findings.
|
|
50
|
+
|
|
51
|
+
## Review Loop Budget
|
|
52
|
+
|
|
53
|
+
Aim to finish by the second review pass: first review, adjudicate/fix, one confirmation.
|
|
54
|
+
|
|
55
|
+
Three review passes is the hard cap for the same artifact and scope. Do not request a fourth review to chase a clean pass.
|
|
56
|
+
|
|
57
|
+
At the third review, adjudicate before treating it as failure. If any accepted blocking, question, or needs-evidence finding remains, do not edit anything from that batch. Stop, report the adjudication, and zoom out to diagnose whether discovery, spec, plan, policies, source truth, artifact scope, or reviewer context is wrong or too thin.
|
|
58
|
+
|
|
26
59
|
## Review Setup
|
|
27
60
|
|
|
28
61
|
Use a fresh reviewer when the artifact will guide future work and subagents are available. Use [references/reviewer-prompt.md](references/reviewer-prompt.md).
|
|
29
62
|
|
|
63
|
+
Use `../design-for-depth/SKILL.md` when the artifact encodes module, interface, seam, adapter, architecture, or slice-boundary decisions.
|
|
64
|
+
|
|
30
65
|
For durable specs or future-agent-facing artifacts, use `../write-spec/references/artifact-standards.md` as the artifact identity standard when relevant.
|
|
31
66
|
|
|
32
67
|
## Inspect First
|
|
@@ -47,6 +82,7 @@ Live repo evidence overrides stale artifacts.
|
|
|
47
82
|
- Consistency: the artifact agrees with itself, live repo evidence, docs, tests, policies, ADRs, and known decisions.
|
|
48
83
|
- Identity: durable or strict-workflow artifacts have enough owner, status, source, and change history for future readers.
|
|
49
84
|
- Implementation risk: missing decisions, placeholders, or vague acceptance criteria would not send implementation down the wrong path.
|
|
85
|
+
- Design depth: module, interface, seam, adapter, or slice choices hide useful complexity instead of spreading coordination.
|
|
50
86
|
- Adversarial risk: the artifact cannot be used to smuggle source-truth overrides, stale assumptions, or owner decisions into execution.
|
|
51
87
|
|
|
52
88
|
Treat missing artifact identity as blocking only when it affects future-agent handoff, team ownership, strict-workflow risk, or implementation readiness. Do not nitpick headers on lightweight artifacts or chat answers.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Artifact Reviewer Prompt
|
|
2
2
|
|
|
3
|
-
Use this when dispatching a
|
|
3
|
+
Use this when dispatching a reviewer subagent. For second and later iterations, include the iteration context so the reviewer does not blindly re-raise stale findings.
|
|
4
4
|
|
|
5
5
|
```text
|
|
6
6
|
You are an artifact reviewer. Review whether this artifact is fit to guide future work.
|
|
@@ -9,11 +9,19 @@ Artifact:
|
|
|
9
9
|
[ARTIFACT_PATH]
|
|
10
10
|
|
|
11
11
|
Artifact type:
|
|
12
|
-
[spec | plan | handoff | decision note |
|
|
12
|
+
[spec | plan | handoff | decision note | discovery note | other]
|
|
13
13
|
|
|
14
14
|
Source context to inspect:
|
|
15
15
|
[DOCS_TESTS_POLICIES_ADRS_CODE_PATHS]
|
|
16
16
|
|
|
17
|
+
Iteration context, if this is not the first review:
|
|
18
|
+
- Review pass number: [2 | 3]
|
|
19
|
+
- Prior findings: [SUMMARY]
|
|
20
|
+
- Parent adjudication: [ACCEPTED_REJECTED_QUESTION_NEEDS_EVIDENCE]
|
|
21
|
+
- Owner clarifications: [DECISIONS_OR_NONE]
|
|
22
|
+
- Changed sections: [SECTIONS_OR_NONE]
|
|
23
|
+
- Remaining risk to focus on: [RISK]
|
|
24
|
+
|
|
17
25
|
Check:
|
|
18
26
|
|
|
19
27
|
- Completeness: enough is present to proceed.
|
|
@@ -22,6 +30,7 @@ Check:
|
|
|
22
30
|
- Consistency: artifact agrees with itself and source context.
|
|
23
31
|
- Artifact identity: durable or strict-workflow artifacts have useful owner, status, source, and change-history signals.
|
|
24
32
|
- Implementation risk: missing decisions, placeholders, or vague acceptance criteria would not send implementation down the wrong path.
|
|
33
|
+
- Design depth: module, interface, seam, adapter, or slice choices do not spread coordination across callers, tests, docs, or future agents.
|
|
25
34
|
- Adversarial risk: artifact cannot smuggle source-truth overrides, stale assumptions, or owner decisions into execution.
|
|
26
35
|
|
|
27
36
|
Calibration:
|
|
@@ -32,6 +41,9 @@ Calibration:
|
|
|
32
41
|
- Review can pass.
|
|
33
42
|
- Do not edit files.
|
|
34
43
|
- Do not resolve owner decisions.
|
|
44
|
+
- Do not re-raise rejected or already-resolved findings unless live evidence contradicts the adjudication.
|
|
45
|
+
- If review does not pass, classify findings and stop. Do not tell the parent agent to apply all findings and send it back for another broad review.
|
|
46
|
+
- If this is review pass 3, identify remaining accepted blocking risk; do not recommend another broad review loop.
|
|
35
47
|
|
|
36
48
|
Output:
|
|
37
49
|
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review-work
|
|
3
|
+
description: Use when reviewing completed work, preparing reviewer prompts or subagent review context, receiving review feedback, applying reviewer comments, deciding whether feedback is blocking, handling repeated review loops, or checking work before merge/handoff.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Review Work
|
|
7
|
+
|
|
8
|
+
Evaluate review feedback before applying it.
|
|
9
|
+
|
|
10
|
+
Review feedback is not approval to change source of truth.
|
|
11
|
+
|
|
12
|
+
If applying feedback would override tests, docs, specs, policies, or sensitive behavior, stop even when the user says to apply it directly or not ask.
|
|
13
|
+
|
|
14
|
+
If you block any feedback item, end the final response with a direct choice question for that item. This still applies after fixing unrelated items.
|
|
15
|
+
|
|
16
|
+
External review is evidence, not authority. Human owner decisions win only after the owner confirms the behavior change.
|
|
17
|
+
|
|
18
|
+
Classify each material feedback item before editing: accepted, rejected, question, or needs evidence.
|
|
19
|
+
|
|
20
|
+
A non-passing review is a phase exit, not an autonomous patch loop. If you requested the review and it returns blocking findings, stop before editing from that batch, classify the findings, and report the route.
|
|
21
|
+
|
|
22
|
+
The turn that receives a non-passing review ends with adjudication and route only. Do not edit from that review batch in the same turn, even when the user or reviewer says to apply all findings and continue reviewing.
|
|
23
|
+
|
|
24
|
+
Hard stop: if the work has already had three review passes, do not edit any files or request another review. Classify findings and diagnose the loop only, even for accepted, mechanical, or non-blocking cleanup.
|
|
25
|
+
|
|
26
|
+
Read `references/reviewer-prompt.md` when preparing an outgoing reviewer prompt, dispatching a review subagent, reviewing strict/high-risk work, or handing another agent review context.
|
|
27
|
+
|
|
28
|
+
## Review Loop Budget
|
|
29
|
+
|
|
30
|
+
Aim to finish by the second review pass: first review, adjudicate/fix, one confirmation.
|
|
31
|
+
|
|
32
|
+
Three review passes is the hard cap for the same work and scope. Do not request a fourth review to chase a clean pass.
|
|
33
|
+
|
|
34
|
+
At the third review, adjudicate before treating it as failure. If any accepted blocking, question, or needs-evidence finding remains, do not edit anything from that batch. Stop, report the adjudication, and zoom out to diagnose whether discovery, spec, plan, policies, source truth, module/interface design, implementation, or reviewer context is wrong or too thin.
|
|
35
|
+
|
|
36
|
+
Non-blocking findings and reviewer questions do not fail the work by default. Classify them, then defer, ask, gather evidence, or accept.
|
|
37
|
+
|
|
38
|
+
## Incoming Feedback
|
|
39
|
+
|
|
40
|
+
Before editing:
|
|
41
|
+
|
|
42
|
+
- Read the full feedback.
|
|
43
|
+
- Inspect the relevant code, tests, docs, and prior decisions.
|
|
44
|
+
- Restate unclear feedback as a technical requirement.
|
|
45
|
+
- Separate blocking issues from suggestions.
|
|
46
|
+
- Check whether the feedback matches this codebase.
|
|
47
|
+
- Check whether a finding is stale, already resolved, equivalent, or based on missing context.
|
|
48
|
+
- Check whether repeated findings are design pressure: shallow module, bad seam, edge-case churn, or broad refactor from a narrow comment.
|
|
49
|
+
|
|
50
|
+
Do not blindly apply vague, broad, or sensitive feedback.
|
|
51
|
+
|
|
52
|
+
Do not use performative agreement. State the technical finding or act.
|
|
53
|
+
|
|
54
|
+
## Stop Conditions
|
|
55
|
+
|
|
56
|
+
Stop before editing when feedback:
|
|
57
|
+
|
|
58
|
+
- Is ambiguous.
|
|
59
|
+
- Contradicts tests, docs, specs, policies, ADRs, or established behavior.
|
|
60
|
+
- Changes product, security, privacy, billing, data-loss, compatibility, public API, permissions, or architecture behavior.
|
|
61
|
+
- Requires guessing what the reviewer meant.
|
|
62
|
+
- Would cause a broad refactor from a narrow comment.
|
|
63
|
+
|
|
64
|
+
Name the conflict or uncertainty and ask which path to follow. Recommend the path supported by evidence.
|
|
65
|
+
|
|
66
|
+
## Applying Feedback
|
|
67
|
+
|
|
68
|
+
For multi-item review:
|
|
69
|
+
|
|
70
|
+
- Apply independent clear items.
|
|
71
|
+
- Stop blocked items.
|
|
72
|
+
- If items interact, clarify before implementing the set.
|
|
73
|
+
|
|
74
|
+
When feedback is clear and correct and the current route is an apply-fixes pass:
|
|
75
|
+
|
|
76
|
+
- Apply one item at a time.
|
|
77
|
+
- Keep the diff scoped to the review item.
|
|
78
|
+
- Verify each fix.
|
|
79
|
+
- Push back on incorrect feedback with code, tests, or docs.
|
|
80
|
+
|
|
81
|
+
Do not apply a non-pass review batch and request another review in the same autonomous loop. Return the adjudication and next route first. A later explicit apply-fixes request can start a bounded fix pass for accepted, in-scope findings.
|
|
82
|
+
|
|
83
|
+
If accepted findings expose shallow modules, bad seams, or complexity spread, use `../design-for-depth/SKILL.md` and route backward before broad refactoring.
|
|
84
|
+
|
|
85
|
+
## Outgoing Review
|
|
86
|
+
|
|
87
|
+
When reviewing work, lead with bugs, regressions, missing tests, and requirement gaps.
|
|
88
|
+
|
|
89
|
+
Classify findings:
|
|
90
|
+
|
|
91
|
+
- Blocking: must fix before proceeding.
|
|
92
|
+
- Non-blocking: can defer.
|
|
93
|
+
- Question: needs owner decision or more evidence.
|
|
94
|
+
|
|
95
|
+
Review can pass. Do not invent issues to justify the review.
|
|
96
|
+
|
|
97
|
+
When asking another agent to review, give it source truth, changed files, risk lenses, and pass/fail criteria. Do not hand it only the previous agent's summary or your chat history.
|
|
98
|
+
|
|
99
|
+
Set review subagent timeouts above 10 minutes; default to 15 minutes (`timeoutMs: 900000`). If a review times out, do not reduce review depth to dodge the timeout. Increase the timeout or ask before narrowing scope.
|
|
100
|
+
|
|
101
|
+
For second and later review iterations, update the prompt with prior findings, owner clarifications, accepted/rejected findings, changed files, and remaining risk. Do not rerun the same broad prompt after the situation narrows.
|
|
@@ -13,9 +13,12 @@ The reviewer should get the work product and source truth, not your session memo
|
|
|
13
13
|
- Risk lenses relevant to the work.
|
|
14
14
|
- Required output shape and severity labels.
|
|
15
15
|
- Clear instruction not to edit files unless the review task explicitly includes fixes.
|
|
16
|
+
- For review pass 2 or 3: prior findings, accepted/rejected/question/needs-evidence adjudication, owner clarifications, changed files, and narrowed remaining risk.
|
|
16
17
|
|
|
17
18
|
Do not forward only a previous-agent summary. Summaries are useful context, not authority.
|
|
18
19
|
|
|
20
|
+
For second and later review iterations, include prior findings, parent adjudication, owner clarifications, changed files, and the remaining risk. Do not rerun the same broad prompt after the situation narrows.
|
|
21
|
+
|
|
19
22
|
## Risk Lenses
|
|
20
23
|
|
|
21
24
|
Pick the lenses that fit the work:
|
|
@@ -58,8 +61,12 @@ Reasoning: ...
|
|
|
58
61
|
|
|
59
62
|
If review passes, the reviewer should say that clearly and name any residual test gaps or assumptions.
|
|
60
63
|
|
|
64
|
+
If review does not pass, the reviewer should classify findings and stop. Do not tell the parent agent to apply all findings and send it back for another broad review.
|
|
65
|
+
|
|
61
66
|
Do not ask reviewers to invent issues. A clean pass is valid.
|
|
62
67
|
|
|
68
|
+
If this is review pass 3, ask for remaining accepted blocking risk only. Do not recommend a fourth broad review loop.
|
|
69
|
+
|
|
63
70
|
## Minimal Template
|
|
64
71
|
|
|
65
72
|
```md
|
|
@@ -82,6 +89,7 @@ Review the completed work. Do not edit files.
|
|
|
82
89
|
## Check
|
|
83
90
|
|
|
84
91
|
- [risk lenses and concrete requirements]
|
|
92
|
+
- [if pass 2 or 3: prior findings, adjudication, owner clarifications, changed files, and narrowed remaining risk]
|
|
85
93
|
|
|
86
94
|
## Output
|
|
87
95
|
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: setup-freeflow
|
|
3
|
+
description: Use when setting up, installing, enabling, initializing, or configuring Freeflow in a repo, choosing Codex/Claude/multi-agent activation, creating `.freeflow/config.json`, or changing the repo default mode during setup.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Setup Freeflow
|
|
7
|
+
|
|
8
|
+
Use `references/activation-contract.md` before rendering activation text, config, or host setup.
|
|
9
|
+
|
|
10
|
+
Use `references/host-setup.md` when the request mentions Codex, Claude, both hosts, team setup, solo setup, strict defaults, hooks, CLI, or setup profiles.
|
|
11
|
+
|
|
12
|
+
Use `references/output-router-setup.md` when setup reaches the optional evidence-routing decision point or asks for output-router/observed-routing/script-transform repo config, generated-path hints, native safety-net routing, vault settings, or output thresholds.
|
|
13
|
+
|
|
14
|
+
## Stop Before Editing
|
|
15
|
+
|
|
16
|
+
Do not create config, add activation blocks, imports, or rule files until setup has a clear host target and no unresolved repo-rule conflict.
|
|
17
|
+
|
|
18
|
+
Hard stops:
|
|
19
|
+
- both `AGENTS.md` and `CLAUDE.md` exist, and the user did not explicitly choose a host or ask for multi-agent setup
|
|
20
|
+
- existing repo instructions conflict with asking before user-owned decisions
|
|
21
|
+
- existing repo instructions conflict with verification before completion claims
|
|
22
|
+
- Claude setup would add `.claude/rules/freeflow-core.md` but the user has not clearly chosen Claude or multi-agent setup
|
|
23
|
+
|
|
24
|
+
For a hard stop, make no file changes. Name the blocker and ask one direct question.
|
|
25
|
+
|
|
26
|
+
## Inspect
|
|
27
|
+
|
|
28
|
+
Inspect `.freeflow/config.json`, `AGENTS.md`, `CLAUDE.md`, `.claude/rules/freeflow-core.md`, `.codex/rules/`, existing `## Freeflow` blocks, and conflicting repo instructions.
|
|
29
|
+
|
|
30
|
+
Existing repo instructions are source truth. If a rule conflicts with Freeflow's core behavior, name the conflict and ask whether to install Freeflow as advisory, revise the rule, or skip setup. Advisory install is a user decision, not the default.
|
|
31
|
+
|
|
32
|
+
## Target
|
|
33
|
+
|
|
34
|
+
- Codex target: update `AGENTS.md`.
|
|
35
|
+
- Claude target: update `CLAUDE.md` and `.claude/rules/freeflow-core.md`.
|
|
36
|
+
- If only `AGENTS.md` exists, choose Codex.
|
|
37
|
+
- If only `CLAUDE.md` exists, choose Claude.
|
|
38
|
+
- If both exist and the user explicitly named the host target, update that host's files.
|
|
39
|
+
- If both exist and the target is ambiguous, ask before editing.
|
|
40
|
+
- If neither exists, ask which one to create.
|
|
41
|
+
- Update both only when the user asks for multi-agent setup. Mention duplicated host activation drift risk.
|
|
42
|
+
|
|
43
|
+
Do not treat the current agent runtime alone as target approval. A Codex run in a repo that also has `CLAUDE.md` still needs the user to choose unless the request or repo instructions make the target explicit.
|
|
44
|
+
|
|
45
|
+
Update an existing `## Freeflow` block in place. Otherwise place the block near existing agent skill/workflow sections, or append near the end. Never duplicate it. Do not use `.codex/rules/*.rules` for Freeflow behavior; Codex rules are shell approval/security policy, not model memory.
|
|
46
|
+
|
|
47
|
+
## Config
|
|
48
|
+
|
|
49
|
+
Create or update `.freeflow/config.json` using the config adapter in `references/activation-contract.md`.
|
|
50
|
+
|
|
51
|
+
Minimal setup writes only `defaultMode`. Use `workflow` unless the user explicitly asks to persist a valid repo default: `conversation`, `workflow`, or `strict-workflow`.
|
|
52
|
+
|
|
53
|
+
Ask one optional capabilities decision point after minimal host/config setup: whether to configure evidence routing and script transform adapters beyond the minimal default. If declined, keep the minimal setup path.
|
|
54
|
+
|
|
55
|
+
If accepted, read `references/output-router-setup.md` and ask only path-changing follow-ups: router profile or intentional overrides, observed MCP/web/fetch/code-search producers to enable, persistence for each enabled producer/server, native safety-net policy, and whether to install global script transform adapters. Write high-level decisions and explicit overrides only. Do not add empty `outputRouter`, `observedRouting`, or `scriptTransform` objects, and do not dump effective defaults.
|
|
56
|
+
|
|
57
|
+
If the user consents to script transform setup, install adapters globally, not repo-locally. Resolve `../../router/dist/setup/script-transform-adapters.js` relative to this skill file and run:
|
|
58
|
+
|
|
59
|
+
```sh
|
|
60
|
+
node <plugin-root>/router/dist/setup/script-transform-adapters.js install --config .freeflow/config.json
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
The installer uses `~/.cache/freeflow-script-adapters` by default, or `FREEFLOW_SCRIPT_TRANSFORM_ADAPTERS_HOME` when set. It installs JavaScript, jq, Python adapter packages, and a JSPI-capable `node@24` support runtime for Python, probes sandbox proofs, and writes `scriptTransform.enabled=true` with only proof-passing languages. Python/Eryx uses the setup-installed child Node process launched with `--experimental-wasm-jspi`; if that runtime cannot run the proofs, report the probe failure instead of claiming Python is enabled.
|
|
64
|
+
|
|
65
|
+
If the user asks for router setup but gives no config knobs, say the router works with built-in defaults and ask which optional config they want persisted. Recommend no repo config unless they need observed routing, repo-specific hints, script transform setup, or safety-net behavior.
|
|
66
|
+
|
|
67
|
+
Never enable observed routing or native safety-net routing by default. Observed routing requires explicit producer/server entries and a user-chosen persistence mode for each enabled entry. `outputRouter.postToolRouting: "safety-net"` requires an explicit request; `strict` is reserved and needs a separate confirmation before writing. Script transform may be enabled during setup only after explicit adapter-install/config consent and successful sandbox proof probing.
|
|
68
|
+
|
|
69
|
+
Do not infer `strict-workflow` from "team", "strict gates", "careful", or high-risk examples. Recommend or ask unless the user explicitly says to make a mode the repo default.
|
|
70
|
+
|
|
71
|
+
Do not add current mode, task, phase, file inventory, active plans, version metadata, activation file path, or unrequested router keys.
|
|
72
|
+
Mode switches are task/conversation scoped unless the user explicitly asks to persist a different default mode.
|
|
73
|
+
|
|
74
|
+
## Activation
|
|
75
|
+
|
|
76
|
+
Render the canonical blocks from `references/activation-contract.md`.
|
|
77
|
+
|
|
78
|
+
For Codex, put the Codex core block in `AGENTS.md`.
|
|
79
|
+
|
|
80
|
+
For Claude, put only the Claude import block in `CLAUDE.md`, then put the Codex core block text in `.claude/rules/freeflow-core.md`. Do not create separate Claude rule files for `interview-gate` or `discover`; plugin runtime loads them.
|
|
81
|
+
|
|
82
|
+
Do not list the whole workflow, every mode, or full `interview-gate`/`discover` skill in always-loaded text. Do not split into multiple always-loaded Freeflow rule files unless the user explicitly confirms that split after the one-file recommendation.
|
|
83
|
+
|
|
84
|
+
## Do Not Create
|
|
85
|
+
|
|
86
|
+
Setup must not create empty `CONTEXT.md`, docs pages, repo-local hooks, state files, handoffs, skill inventories, `setup-output-router` skills, or `.codex/rules` behavior files.
|
|
87
|
+
`CONTEXT.md` is domain language memory, not plugin state.
|
|
88
|
+
Plugin-bundled context hooks are installed with Freeflow, not created by repo setup.
|
|
89
|
+
|
|
90
|
+
## Verify
|
|
91
|
+
|
|
92
|
+
Before claiming setup is complete, check:
|
|
93
|
+
- config JSON parses
|
|
94
|
+
- minimal config contains only `defaultMode` with the requested explicit default, or `workflow` when no explicit default was requested
|
|
95
|
+
- optional `outputRouter`, `observedRouting`, and `scriptTransform` config appears only after the capabilities decision point or explicit request, and contains only requested valid keys
|
|
96
|
+
- observed routing, native safety-net routing, and script transform are off unless explicitly requested and supported
|
|
97
|
+
- every enabled observed-routing producer/server has user-chosen persistence: `exact`, `metadata-only`, or `none`; setup does not offer or write `redacted`
|
|
98
|
+
- Codex setup has exactly one `## Freeflow` block in `AGENTS.md`
|
|
99
|
+
- Claude setup has exactly one `CLAUDE.md` import and one `.claude/rules/freeflow-core.md` core file
|
|
100
|
+
- when script transform setup was accepted, global adapters were installed under the reported adapter home, `freeflow_status` shows available adapters, and `.freeflow/config.json` enables only proof-passing `scriptTransform.languages`
|
|
101
|
+
- `.codex/rules` was not created or changed for Freeflow behavior
|
|
102
|
+
- no unrelated files changed
|
|
103
|
+
|
|
104
|
+
After successful setup verification, read `../mode-contract/SKILL.md`, `../workflow/SKILL.md`, `../interview-gate/SKILL.md`, `../discover/SKILL.md`, and `../output-router/SKILL.md` before the final response. Only say mode-contract, workflow, interview-gate, discover, and output-router context is loaded for this session if all five files were read successfully.
|
|
105
|
+
|
|
106
|
+
If verification cannot run, say what remains unverified.
|