devlyn-cli 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -2
- package/CLAUDE.md +2 -2
- package/README.md +22 -113
- package/bin/devlyn.js +13 -225
- package/bin/instruction-templates.json +752 -1
- package/bin/instructions.js +101 -17
- package/config/skills/_shared/adapters/grok.md +1 -2
- package/config/skills/_shared/archive_run.py +15 -3
- package/config/skills/_shared/judge-role-evidence.py +21 -1
- package/config/skills/_shared/runtime-principles.md +1 -1
- package/config/skills/_shared/spec-verify-check.py +0 -653
- package/config/skills/_shared/state-phase-write.py +371 -30
- package/config/skills/_shared/task-complete.py +635 -143
- package/config/skills/_shared/terminal-claim-check.py +229 -4
- package/config/skills/_shared/verify-merge-findings.py +93 -2
- package/config/skills/devlyn:ideate/SKILL.md +3 -4
- package/config/skills/devlyn:ideate/references/elicitation.md +2 -35
- package/config/skills/devlyn:ideate/references/from-spec-mode.md +3 -18
- package/config/skills/devlyn:ideate/references/project-mode.md +1 -16
- package/config/skills/devlyn:ideate/references/spec-template.md +0 -2
- package/config/skills/devlyn:queue/SKILL.md +6 -4
- package/config/skills/devlyn:resolve/SKILL.md +16 -25
- package/config/skills/devlyn:resolve/references/free-form-mode.md +0 -14
- package/config/skills/devlyn:resolve/references/outer-loop.md +1 -1
- package/config/skills/devlyn:resolve/references/phases/build-gate.md +1 -1
- package/config/skills/devlyn:resolve/references/phases/cleanup.md +3 -3
- package/config/skills/devlyn:resolve/references/phases/implement.md +1 -1
- package/config/skills/devlyn:resolve/references/phases/probe-derive.md +1 -16
- package/config/skills/devlyn:resolve/references/phases/verify.md +4 -9
- package/config/skills/devlyn:resolve/references/state-schema.md +9 -7
- package/config/skills/devlyn:resolve/references/task-completion.md +46 -37
- package/{config/skills → optional-skills}/code-health-standards/SKILL.md +4 -13
- package/{config/skills → optional-skills}/code-review-standards/SKILL.md +4 -12
- package/{config/skills → optional-skills}/root-cause-analysis/SKILL.md +4 -12
- package/{config/skills → optional-skills}/ui-implementation-standards/SKILL.md +4 -14
- package/package.json +1 -57
- package/benchmark/auto-resolve/BENCHMARK-DESIGN.md +0 -289
- package/benchmark/auto-resolve/BENCHMARK-RESULTS.md +0 -341
- package/benchmark/auto-resolve/README.md +0 -696
- package/benchmark/auto-resolve/RUBRIC.md +0 -177
- package/benchmark/auto-resolve/fixtures/F1-cli-trivial-flag/NOTES.md +0 -34
- package/benchmark/auto-resolve/fixtures/F1-cli-trivial-flag/expected.json +0 -68
- package/benchmark/auto-resolve/fixtures/F1-cli-trivial-flag/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F1-cli-trivial-flag/setup.sh +0 -4
- package/benchmark/auto-resolve/fixtures/F1-cli-trivial-flag/spec.md +0 -44
- package/benchmark/auto-resolve/fixtures/F1-cli-trivial-flag/task.ko.txt +0 -8
- package/benchmark/auto-resolve/fixtures/F1-cli-trivial-flag/task.txt +0 -8
- package/benchmark/auto-resolve/fixtures/F10-persist-write-collision/NOTES.md +0 -68
- package/benchmark/auto-resolve/fixtures/F10-persist-write-collision/expected.json +0 -60
- package/benchmark/auto-resolve/fixtures/F10-persist-write-collision/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F10-persist-write-collision/setup.sh +0 -17
- package/benchmark/auto-resolve/fixtures/F10-persist-write-collision/spec.md +0 -51
- package/benchmark/auto-resolve/fixtures/F10-persist-write-collision/task.txt +0 -9
- package/benchmark/auto-resolve/fixtures/F10-persist-write-collision/verifiers/invalid.js +0 -29
- package/benchmark/auto-resolve/fixtures/F10-persist-write-collision/verifiers/parallel.js +0 -50
- package/benchmark/auto-resolve/fixtures/F11-batch-import-all-or-nothing/NOTES.md +0 -75
- package/benchmark/auto-resolve/fixtures/F11-batch-import-all-or-nothing/expected.json +0 -52
- package/benchmark/auto-resolve/fixtures/F11-batch-import-all-or-nothing/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F11-batch-import-all-or-nothing/setup.sh +0 -171
- package/benchmark/auto-resolve/fixtures/F11-batch-import-all-or-nothing/spec.md +0 -50
- package/benchmark/auto-resolve/fixtures/F11-batch-import-all-or-nothing/task.txt +0 -9
- package/benchmark/auto-resolve/fixtures/F12-webhook-raw-body-signature/NOTES.md +0 -89
- package/benchmark/auto-resolve/fixtures/F12-webhook-raw-body-signature/expected.json +0 -74
- package/benchmark/auto-resolve/fixtures/F12-webhook-raw-body-signature/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F12-webhook-raw-body-signature/setup.sh +0 -251
- package/benchmark/auto-resolve/fixtures/F12-webhook-raw-body-signature/spec.md +0 -57
- package/benchmark/auto-resolve/fixtures/F12-webhook-raw-body-signature/task.txt +0 -13
- package/benchmark/auto-resolve/fixtures/F12-webhook-raw-body-signature/verifiers/replay-malformed-body.js +0 -64
- package/benchmark/auto-resolve/fixtures/F15-frozen-diff-race-review/NOTES.md +0 -104
- package/benchmark/auto-resolve/fixtures/F15-frozen-diff-race-review/expected.json +0 -46
- package/benchmark/auto-resolve/fixtures/F15-frozen-diff-race-review/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F15-frozen-diff-race-review/setup.sh +0 -336
- package/benchmark/auto-resolve/fixtures/F15-frozen-diff-race-review/spec.md +0 -51
- package/benchmark/auto-resolve/fixtures/F15-frozen-diff-race-review/task.txt +0 -9
- package/benchmark/auto-resolve/fixtures/F16-cli-quote-tax-rules/NOTES.md +0 -38
- package/benchmark/auto-resolve/fixtures/F16-cli-quote-tax-rules/expected.json +0 -64
- package/benchmark/auto-resolve/fixtures/F16-cli-quote-tax-rules/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F16-cli-quote-tax-rules/setup.sh +0 -32
- package/benchmark/auto-resolve/fixtures/F16-cli-quote-tax-rules/spec.md +0 -63
- package/benchmark/auto-resolve/fixtures/F16-cli-quote-tax-rules/task.txt +0 -7
- package/benchmark/auto-resolve/fixtures/F16-cli-quote-tax-rules/verifiers/exact-success.js +0 -54
- package/benchmark/auto-resolve/fixtures/F16-cli-quote-tax-rules/verifiers/no-hardcoded-pricing.js +0 -47
- package/benchmark/auto-resolve/fixtures/F16-cli-quote-tax-rules/verifiers/stock-error.js +0 -45
- package/benchmark/auto-resolve/fixtures/F2-cli-medium-subcommand/NOTES.md +0 -57
- package/benchmark/auto-resolve/fixtures/F2-cli-medium-subcommand/expected-pair-plan-registry.json +0 -170
- package/benchmark/auto-resolve/fixtures/F2-cli-medium-subcommand/expected.json +0 -84
- package/benchmark/auto-resolve/fixtures/F2-cli-medium-subcommand/metadata.json +0 -21
- package/benchmark/auto-resolve/fixtures/F2-cli-medium-subcommand/pair-plan.sample-fail.json +0 -214
- package/benchmark/auto-resolve/fixtures/F2-cli-medium-subcommand/pair-plan.sample-pass.json +0 -223
- package/benchmark/auto-resolve/fixtures/F2-cli-medium-subcommand/setup.sh +0 -5
- package/benchmark/auto-resolve/fixtures/F2-cli-medium-subcommand/spec.md +0 -55
- package/benchmark/auto-resolve/fixtures/F2-cli-medium-subcommand/task.txt +0 -14
- package/benchmark/auto-resolve/fixtures/F21-cli-scheduler-priority/NOTES.md +0 -39
- package/benchmark/auto-resolve/fixtures/F21-cli-scheduler-priority/expected.json +0 -62
- package/benchmark/auto-resolve/fixtures/F21-cli-scheduler-priority/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F21-cli-scheduler-priority/setup.sh +0 -2
- package/benchmark/auto-resolve/fixtures/F21-cli-scheduler-priority/spec.md +0 -67
- package/benchmark/auto-resolve/fixtures/F21-cli-scheduler-priority/task.txt +0 -7
- package/benchmark/auto-resolve/fixtures/F21-cli-scheduler-priority/verifiers/error-order.js +0 -55
- package/benchmark/auto-resolve/fixtures/F21-cli-scheduler-priority/verifiers/priority-blocked.js +0 -48
- package/benchmark/auto-resolve/fixtures/F22-cli-ledger-close/NOTES.md +0 -35
- package/benchmark/auto-resolve/fixtures/F22-cli-ledger-close/expected.json +0 -56
- package/benchmark/auto-resolve/fixtures/F22-cli-ledger-close/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F22-cli-ledger-close/setup.sh +0 -2
- package/benchmark/auto-resolve/fixtures/F22-cli-ledger-close/spec.md +0 -64
- package/benchmark/auto-resolve/fixtures/F22-cli-ledger-close/task.txt +0 -7
- package/benchmark/auto-resolve/fixtures/F22-cli-ledger-close/verifiers/conflicting-duplicate.js +0 -34
- package/benchmark/auto-resolve/fixtures/F22-cli-ledger-close/verifiers/idempotent-close.js +0 -41
- package/benchmark/auto-resolve/fixtures/F23-cli-fulfillment-wave/NOTES.md +0 -39
- package/benchmark/auto-resolve/fixtures/F23-cli-fulfillment-wave/expected.json +0 -56
- package/benchmark/auto-resolve/fixtures/F23-cli-fulfillment-wave/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F23-cli-fulfillment-wave/setup.sh +0 -2
- package/benchmark/auto-resolve/fixtures/F23-cli-fulfillment-wave/spec.md +0 -76
- package/benchmark/auto-resolve/fixtures/F23-cli-fulfillment-wave/task.txt +0 -7
- package/benchmark/auto-resolve/fixtures/F23-cli-fulfillment-wave/verifiers/priority-rollback.js +0 -64
- package/benchmark/auto-resolve/fixtures/F23-cli-fulfillment-wave/verifiers/single-warehouse-fefo.js +0 -66
- package/benchmark/auto-resolve/fixtures/F25-cli-cart-promotion-rules/NOTES.md +0 -40
- package/benchmark/auto-resolve/fixtures/F25-cli-cart-promotion-rules/expected.json +0 -66
- package/benchmark/auto-resolve/fixtures/F25-cli-cart-promotion-rules/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F25-cli-cart-promotion-rules/setup.sh +0 -36
- package/benchmark/auto-resolve/fixtures/F25-cli-cart-promotion-rules/spec.md +0 -71
- package/benchmark/auto-resolve/fixtures/F25-cli-cart-promotion-rules/task.txt +0 -7
- package/benchmark/auto-resolve/fixtures/F25-cli-cart-promotion-rules/verifiers/catalog-source.js +0 -57
- package/benchmark/auto-resolve/fixtures/F25-cli-cart-promotion-rules/verifiers/exact-success.js +0 -63
- package/benchmark/auto-resolve/fixtures/F25-cli-cart-promotion-rules/verifiers/stock-error.js +0 -34
- package/benchmark/auto-resolve/fixtures/F26-cli-payout-ledger-rules/NOTES.md +0 -31
- package/benchmark/auto-resolve/fixtures/F26-cli-payout-ledger-rules/expected.json +0 -68
- package/benchmark/auto-resolve/fixtures/F26-cli-payout-ledger-rules/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F26-cli-payout-ledger-rules/setup.sh +0 -17
- package/benchmark/auto-resolve/fixtures/F26-cli-payout-ledger-rules/spec.md +0 -68
- package/benchmark/auto-resolve/fixtures/F26-cli-payout-ledger-rules/task.txt +0 -7
- package/benchmark/auto-resolve/fixtures/F26-cli-payout-ledger-rules/verifiers/conflicting-duplicate.js +0 -29
- package/benchmark/auto-resolve/fixtures/F26-cli-payout-ledger-rules/verifiers/exact-payout.js +0 -58
- package/benchmark/auto-resolve/fixtures/F26-cli-payout-ledger-rules/verifiers/rules-source.js +0 -56
- package/benchmark/auto-resolve/fixtures/F3-backend-contract-risk/NOTES.md +0 -35
- package/benchmark/auto-resolve/fixtures/F3-backend-contract-risk/expected-pair-plan-registry.json +0 -162
- package/benchmark/auto-resolve/fixtures/F3-backend-contract-risk/expected.json +0 -67
- package/benchmark/auto-resolve/fixtures/F3-backend-contract-risk/metadata.json +0 -19
- package/benchmark/auto-resolve/fixtures/F3-backend-contract-risk/setup.sh +0 -4
- package/benchmark/auto-resolve/fixtures/F3-backend-contract-risk/spec.md +0 -55
- package/benchmark/auto-resolve/fixtures/F3-backend-contract-risk/task.txt +0 -9
- package/benchmark/auto-resolve/fixtures/F31-cli-seat-rebalance/NOTES.md +0 -34
- package/benchmark/auto-resolve/fixtures/F31-cli-seat-rebalance/expected.json +0 -57
- package/benchmark/auto-resolve/fixtures/F31-cli-seat-rebalance/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F31-cli-seat-rebalance/setup.sh +0 -2
- package/benchmark/auto-resolve/fixtures/F31-cli-seat-rebalance/spec.md +0 -67
- package/benchmark/auto-resolve/fixtures/F31-cli-seat-rebalance/task.txt +0 -7
- package/benchmark/auto-resolve/fixtures/F31-cli-seat-rebalance/verifiers/duplicate-event-error.js +0 -35
- package/benchmark/auto-resolve/fixtures/F31-cli-seat-rebalance/verifiers/priority-transfer-rollback.js +0 -53
- package/benchmark/auto-resolve/fixtures/F32-cli-subscription-renewal/NOTES.md +0 -38
- package/benchmark/auto-resolve/fixtures/F32-cli-subscription-renewal/expected.json +0 -57
- package/benchmark/auto-resolve/fixtures/F32-cli-subscription-renewal/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F32-cli-subscription-renewal/setup.sh +0 -2
- package/benchmark/auto-resolve/fixtures/F32-cli-subscription-renewal/spec.md +0 -70
- package/benchmark/auto-resolve/fixtures/F32-cli-subscription-renewal/task.txt +0 -3
- package/benchmark/auto-resolve/fixtures/F32-cli-subscription-renewal/verifiers/duplicate-renewal-error.js +0 -42
- package/benchmark/auto-resolve/fixtures/F32-cli-subscription-renewal/verifiers/priority-credit-rollback.js +0 -70
- package/benchmark/auto-resolve/fixtures/F4-web-browser-design/NOTES.md +0 -47
- package/benchmark/auto-resolve/fixtures/F4-web-browser-design/expected.json +0 -57
- package/benchmark/auto-resolve/fixtures/F4-web-browser-design/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F4-web-browser-design/setup.sh +0 -6
- package/benchmark/auto-resolve/fixtures/F4-web-browser-design/spec.md +0 -48
- package/benchmark/auto-resolve/fixtures/F4-web-browser-design/task.txt +0 -9
- package/benchmark/auto-resolve/fixtures/F5-fix-loop-red-green/NOTES.md +0 -45
- package/benchmark/auto-resolve/fixtures/F5-fix-loop-red-green/expected.json +0 -65
- package/benchmark/auto-resolve/fixtures/F5-fix-loop-red-green/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F5-fix-loop-red-green/setup.sh +0 -55
- package/benchmark/auto-resolve/fixtures/F5-fix-loop-red-green/spec.md +0 -48
- package/benchmark/auto-resolve/fixtures/F5-fix-loop-red-green/task.txt +0 -7
- package/benchmark/auto-resolve/fixtures/F6-dep-audit-native-module/NOTES.md +0 -43
- package/benchmark/auto-resolve/fixtures/F6-dep-audit-native-module/expected.json +0 -77
- package/benchmark/auto-resolve/fixtures/F6-dep-audit-native-module/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F6-dep-audit-native-module/setup.sh +0 -4
- package/benchmark/auto-resolve/fixtures/F6-dep-audit-native-module/spec.md +0 -48
- package/benchmark/auto-resolve/fixtures/F6-dep-audit-native-module/task.txt +0 -10
- package/benchmark/auto-resolve/fixtures/F7-out-of-scope-trap/NOTES.md +0 -57
- package/benchmark/auto-resolve/fixtures/F7-out-of-scope-trap/expected.json +0 -76
- package/benchmark/auto-resolve/fixtures/F7-out-of-scope-trap/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F7-out-of-scope-trap/setup.sh +0 -36
- package/benchmark/auto-resolve/fixtures/F7-out-of-scope-trap/spec.md +0 -45
- package/benchmark/auto-resolve/fixtures/F7-out-of-scope-trap/task.txt +0 -7
- package/benchmark/auto-resolve/fixtures/F8-known-limit-ambiguous/NOTES.md +0 -53
- package/benchmark/auto-resolve/fixtures/F8-known-limit-ambiguous/expected.json +0 -63
- package/benchmark/auto-resolve/fixtures/F8-known-limit-ambiguous/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F8-known-limit-ambiguous/setup.sh +0 -4
- package/benchmark/auto-resolve/fixtures/F8-known-limit-ambiguous/spec.md +0 -48
- package/benchmark/auto-resolve/fixtures/F8-known-limit-ambiguous/task.txt +0 -1
- package/benchmark/auto-resolve/fixtures/F9-e2e-ideate-to-resolve/NOTES.md +0 -105
- package/benchmark/auto-resolve/fixtures/F9-e2e-ideate-to-resolve/expected.json +0 -74
- package/benchmark/auto-resolve/fixtures/F9-e2e-ideate-to-resolve/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/F9-e2e-ideate-to-resolve/setup.sh +0 -28
- package/benchmark/auto-resolve/fixtures/F9-e2e-ideate-to-resolve/spec.md +0 -59
- package/benchmark/auto-resolve/fixtures/F9-e2e-ideate-to-resolve/task.txt +0 -5
- package/benchmark/auto-resolve/fixtures/SCHEMA.md +0 -188
- package/benchmark/auto-resolve/fixtures/retired/F27-cli-subscription-proration/NOTES.md +0 -37
- package/benchmark/auto-resolve/fixtures/retired/F27-cli-subscription-proration/RETIRED.md +0 -13
- package/benchmark/auto-resolve/fixtures/retired/F27-cli-subscription-proration/expected.json +0 -56
- package/benchmark/auto-resolve/fixtures/retired/F27-cli-subscription-proration/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/retired/F27-cli-subscription-proration/setup.sh +0 -18
- package/benchmark/auto-resolve/fixtures/retired/F27-cli-subscription-proration/spec.md +0 -69
- package/benchmark/auto-resolve/fixtures/retired/F27-cli-subscription-proration/task.txt +0 -7
- package/benchmark/auto-resolve/fixtures/retired/F27-cli-subscription-proration/verifiers/exact-proration.js +0 -48
- package/benchmark/auto-resolve/fixtures/retired/F27-cli-subscription-proration/verifiers/rules-source-and-conflict.js +0 -79
- package/benchmark/auto-resolve/fixtures/retired/F28-cli-return-authorization/NOTES.md +0 -54
- package/benchmark/auto-resolve/fixtures/retired/F28-cli-return-authorization/RETIRED.md +0 -7
- package/benchmark/auto-resolve/fixtures/retired/F28-cli-return-authorization/expected.json +0 -67
- package/benchmark/auto-resolve/fixtures/retired/F28-cli-return-authorization/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/retired/F28-cli-return-authorization/setup.sh +0 -2
- package/benchmark/auto-resolve/fixtures/retired/F28-cli-return-authorization/spec.md +0 -67
- package/benchmark/auto-resolve/fixtures/retired/F28-cli-return-authorization/task.txt +0 -5
- package/benchmark/auto-resolve/fixtures/retired/F28-cli-return-authorization/verifiers/policy-precedence.js +0 -72
- package/benchmark/auto-resolve/fixtures/retired/F28-cli-return-authorization/verifiers/validation-and-immutability.js +0 -43
- package/benchmark/auto-resolve/fixtures/retired/F28-cli-return-authorization/verifiers/validation-boundary.js +0 -116
- package/benchmark/auto-resolve/fixtures/retired/F30-cli-credit-hold-settlement/NOTES.md +0 -35
- package/benchmark/auto-resolve/fixtures/retired/F30-cli-credit-hold-settlement/RETIRED.md +0 -12
- package/benchmark/auto-resolve/fixtures/retired/F30-cli-credit-hold-settlement/expected.json +0 -58
- package/benchmark/auto-resolve/fixtures/retired/F30-cli-credit-hold-settlement/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/retired/F30-cli-credit-hold-settlement/setup.sh +0 -2
- package/benchmark/auto-resolve/fixtures/retired/F30-cli-credit-hold-settlement/spec.md +0 -73
- package/benchmark/auto-resolve/fixtures/retired/F30-cli-credit-hold-settlement/task.txt +0 -17
- package/benchmark/auto-resolve/fixtures/retired/F30-cli-credit-hold-settlement/verifiers/mixed-idempotent-settlement.js +0 -53
- package/benchmark/auto-resolve/fixtures/retired/F30-cli-credit-hold-settlement/verifiers/rejection-boundaries.js +0 -74
- package/benchmark/auto-resolve/fixtures/retired/F34-cli-settle-inflight/NOTES.md +0 -28
- package/benchmark/auto-resolve/fixtures/retired/F34-cli-settle-inflight/RETIRED.md +0 -15
- package/benchmark/auto-resolve/fixtures/retired/F34-cli-settle-inflight/expected.json +0 -57
- package/benchmark/auto-resolve/fixtures/retired/F34-cli-settle-inflight/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/retired/F34-cli-settle-inflight/setup.sh +0 -50
- package/benchmark/auto-resolve/fixtures/retired/F34-cli-settle-inflight/spec.md +0 -59
- package/benchmark/auto-resolve/fixtures/retired/F34-cli-settle-inflight/task.txt +0 -9
- package/benchmark/auto-resolve/fixtures/retired/F34-cli-settle-inflight/verifiers/ordered-settlement.js +0 -88
- package/benchmark/auto-resolve/fixtures/retired/F34-cli-settle-inflight/verifiers/reject-invalid.js +0 -45
- package/benchmark/auto-resolve/fixtures/retired/F35-cli-apply-journal/NOTES.md +0 -30
- package/benchmark/auto-resolve/fixtures/retired/F35-cli-apply-journal/RETIRED.md +0 -16
- package/benchmark/auto-resolve/fixtures/retired/F35-cli-apply-journal/expected.json +0 -64
- package/benchmark/auto-resolve/fixtures/retired/F35-cli-apply-journal/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/retired/F35-cli-apply-journal/setup.sh +0 -21
- package/benchmark/auto-resolve/fixtures/retired/F35-cli-apply-journal/spec.md +0 -58
- package/benchmark/auto-resolve/fixtures/retired/F35-cli-apply-journal/task.txt +0 -9
- package/benchmark/auto-resolve/fixtures/retired/F35-cli-apply-journal/verifiers/dup-op.js +0 -54
- package/benchmark/auto-resolve/fixtures/retired/F35-cli-apply-journal/verifiers/priority-apply.js +0 -82
- package/benchmark/auto-resolve/fixtures/retired/F35-cli-apply-journal/verifiers/rollback.js +0 -77
- package/benchmark/auto-resolve/fixtures/retired/F36-cli-session-admission/NOTES.md +0 -99
- package/benchmark/auto-resolve/fixtures/retired/F36-cli-session-admission/RETIRED.md +0 -18
- package/benchmark/auto-resolve/fixtures/retired/F36-cli-session-admission/expected.json +0 -64
- package/benchmark/auto-resolve/fixtures/retired/F36-cli-session-admission/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/retired/F36-cli-session-admission/setup.sh +0 -4
- package/benchmark/auto-resolve/fixtures/retired/F36-cli-session-admission/spec.md +0 -61
- package/benchmark/auto-resolve/fixtures/retired/F36-cli-session-admission/task.txt +0 -9
- package/benchmark/auto-resolve/fixtures/retired/F36-cli-session-admission/verifiers/correctness-small.js +0 -135
- package/benchmark/auto-resolve/fixtures/retired/F36-cli-session-admission/verifiers/scale.js +0 -100
- package/benchmark/auto-resolve/fixtures/retired/F36-cli-session-admission/verifiers/validation.js +0 -75
- package/benchmark/auto-resolve/fixtures/retired/F37-cli-rule-lookup/NOTES.md +0 -93
- package/benchmark/auto-resolve/fixtures/retired/F37-cli-rule-lookup/RETIRED.md +0 -16
- package/benchmark/auto-resolve/fixtures/retired/F37-cli-rule-lookup/expected.json +0 -65
- package/benchmark/auto-resolve/fixtures/retired/F37-cli-rule-lookup/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/retired/F37-cli-rule-lookup/setup.sh +0 -18
- package/benchmark/auto-resolve/fixtures/retired/F37-cli-rule-lookup/spec.md +0 -66
- package/benchmark/auto-resolve/fixtures/retired/F37-cli-rule-lookup/task.txt +0 -9
- package/benchmark/auto-resolve/fixtures/retired/F37-cli-rule-lookup/verifiers/correctness-small.js +0 -84
- package/benchmark/auto-resolve/fixtures/retired/F37-cli-rule-lookup/verifiers/scale.js +0 -184
- package/benchmark/auto-resolve/fixtures/retired/F37-cli-rule-lookup/verifiers/validation.js +0 -74
- package/benchmark/auto-resolve/fixtures/retired/F9-e2e-ideate-to-preflight/NOTES.md +0 -60
- package/benchmark/auto-resolve/fixtures/retired/F9-e2e-ideate-to-preflight/RETIRED.md +0 -29
- package/benchmark/auto-resolve/fixtures/retired/F9-e2e-ideate-to-preflight/expected.json +0 -73
- package/benchmark/auto-resolve/fixtures/retired/F9-e2e-ideate-to-preflight/metadata.json +0 -10
- package/benchmark/auto-resolve/fixtures/retired/F9-e2e-ideate-to-preflight/setup.sh +0 -28
- package/benchmark/auto-resolve/fixtures/retired/F9-e2e-ideate-to-preflight/spec.md +0 -58
- package/benchmark/auto-resolve/fixtures/retired/F9-e2e-ideate-to-preflight/task.txt +0 -5
- package/benchmark/auto-resolve/fixtures/test-repo/README.md +0 -12
- package/benchmark/auto-resolve/fixtures/test-repo/bin/cli.js +0 -63
- package/benchmark/auto-resolve/fixtures/test-repo/package-lock.json +0 -823
- package/benchmark/auto-resolve/fixtures/test-repo/package.json +0 -22
- package/benchmark/auto-resolve/fixtures/test-repo/playwright.config.js +0 -17
- package/benchmark/auto-resolve/fixtures/test-repo/server/index.js +0 -37
- package/benchmark/auto-resolve/fixtures/test-repo/tests/cli.test.js +0 -25
- package/benchmark/auto-resolve/fixtures/test-repo/tests/server.test.js +0 -58
- package/benchmark/auto-resolve/fixtures/test-repo/web/index.html +0 -37
- package/benchmark/auto-resolve/results/20260507-f10-f11-tier1-full-pipeline/headroom-gate.json +0 -25
- package/benchmark/auto-resolve/results/20260507-f10-f11-tier1-full-pipeline/headroom-gate.md +0 -10
- package/benchmark/auto-resolve/results/20260508-f22-exact-error-headroom/headroom-gate.json +0 -18
- package/benchmark/auto-resolve/results/20260508-f22-exact-error-headroom/headroom-gate.md +0 -9
- package/benchmark/auto-resolve/results/20260508-f26-headroom/headroom-gate.json +0 -18
- package/benchmark/auto-resolve/results/20260508-f26-headroom/headroom-gate.md +0 -9
- package/benchmark/auto-resolve/results/20260510-f16-f23-f25-combined-proof/F16-cli-quote-tax-rules/l2_risk_probes/result.json +0 -28
- package/benchmark/auto-resolve/results/20260510-f16-f23-f25-combined-proof/F23-cli-fulfillment-wave/l2_risk_probes/result.json +0 -28
- package/benchmark/auto-resolve/results/20260510-f16-f23-f25-combined-proof/F25-cli-cart-promotion-rules/l2_risk_probes/result.json +0 -30
- package/benchmark/auto-resolve/results/20260510-f16-f23-f25-combined-proof/full-pipeline-pair-gate.json +0 -82
- package/benchmark/auto-resolve/results/20260510-f16-f23-f25-combined-proof/full-pipeline-pair-gate.md +0 -18
- package/benchmark/auto-resolve/results/20260510-f16-f23-f25-combined-proof/headroom-gate.json +0 -46
- package/benchmark/auto-resolve/results/20260510-f16-f23-f25-combined-proof/headroom-gate.md +0 -17
- package/benchmark/auto-resolve/results/20260511-f12-webhook-headroom/headroom-gate.json +0 -28
- package/benchmark/auto-resolve/results/20260511-f12-webhook-headroom/headroom-gate.md +0 -15
- package/benchmark/auto-resolve/results/20260511-f15-concurrency-headroom/headroom-gate.json +0 -28
- package/benchmark/auto-resolve/results/20260511-f15-concurrency-headroom/headroom-gate.md +0 -15
- package/benchmark/auto-resolve/results/20260511-f21-current-riskprobes-v1/F21-cli-scheduler-priority/l2_risk_probes/result.json +0 -32
- package/benchmark/auto-resolve/results/20260511-f21-current-riskprobes-v1/full-pipeline-pair-gate.json +0 -44
- package/benchmark/auto-resolve/results/20260511-f21-current-riskprobes-v1/full-pipeline-pair-gate.md +0 -16
- package/benchmark/auto-resolve/results/20260511-f21-current-riskprobes-v1/headroom-gate.json +0 -18
- package/benchmark/auto-resolve/results/20260511-f21-current-riskprobes-v1/headroom-gate.md +0 -9
- package/benchmark/auto-resolve/results/20260511-f3-http-error-headroom/headroom-gate.json +0 -28
- package/benchmark/auto-resolve/results/20260511-f3-http-error-headroom/headroom-gate.md +0 -15
- package/benchmark/auto-resolve/results/20260512-f2-medium-headroom/headroom-gate.json +0 -28
- package/benchmark/auto-resolve/results/20260512-f2-medium-headroom/headroom-gate.md +0 -15
- package/benchmark/auto-resolve/results/20260512-f31-seat-rebalance-headroom/headroom-gate.json +0 -28
- package/benchmark/auto-resolve/results/20260512-f31-seat-rebalance-headroom/headroom-gate.md +0 -15
- package/benchmark/auto-resolve/results/20260512-f32-subscription-renewal-headroom/headroom-gate.json +0 -28
- package/benchmark/auto-resolve/results/20260512-f32-subscription-renewal-headroom/headroom-gate.md +0 -15
- package/benchmark/auto-resolve/results/20260512-f4-web-headroom/headroom-gate.json +0 -28
- package/benchmark/auto-resolve/results/20260512-f4-web-headroom/headroom-gate.md +0 -15
- package/benchmark/auto-resolve/results/20260512-f5-fixloop-headroom/headroom-gate.json +0 -28
- package/benchmark/auto-resolve/results/20260512-f5-fixloop-headroom/headroom-gate.md +0 -15
- package/benchmark/auto-resolve/results/20260512-f6-checksum-headroom/headroom-gate.json +0 -28
- package/benchmark/auto-resolve/results/20260512-f6-checksum-headroom/headroom-gate.md +0 -15
- package/benchmark/auto-resolve/results/20260512-f7-scope-headroom/headroom-gate.json +0 -28
- package/benchmark/auto-resolve/results/20260512-f7-scope-headroom/headroom-gate.md +0 -15
- package/benchmark/auto-resolve/results/20260512-f9-e2e-headroom/headroom-gate.json +0 -28
- package/benchmark/auto-resolve/results/20260512-f9-e2e-headroom/headroom-gate.md +0 -15
- package/benchmark/auto-resolve/run-real-benchmark.md +0 -303
- package/benchmark/auto-resolve/scripts/audit-headroom-rejections.py +0 -441
- package/benchmark/auto-resolve/scripts/audit-pair-evidence.py +0 -1256
- package/benchmark/auto-resolve/scripts/build-pair-eligible-manifest.py +0 -306
- package/benchmark/auto-resolve/scripts/check-f9-artifacts.py +0 -268
- package/benchmark/auto-resolve/scripts/collect-swebench-predictions.py +0 -108
- package/benchmark/auto-resolve/scripts/compile-report.py +0 -493
- package/benchmark/auto-resolve/scripts/fetch-swebench-instances.py +0 -129
- package/benchmark/auto-resolve/scripts/frozen-verify-gate.py +0 -434
- package/benchmark/auto-resolve/scripts/full-pipeline-pair-gate.py +0 -612
- package/benchmark/auto-resolve/scripts/headroom-gate.py +0 -378
- package/benchmark/auto-resolve/scripts/iter-0033c-compare.py +0 -683
- package/benchmark/auto-resolve/scripts/iter-0033c-l1-summary.py +0 -97
- package/benchmark/auto-resolve/scripts/judge-opus-pass.sh +0 -542
- package/benchmark/auto-resolve/scripts/judge.sh +0 -565
- package/benchmark/auto-resolve/scripts/oracle-scope-tier-a.py +0 -256
- package/benchmark/auto-resolve/scripts/oracle-scope-tier-b.py +0 -287
- package/benchmark/auto-resolve/scripts/oracle-test-fidelity.py +0 -328
- package/benchmark/auto-resolve/scripts/pair-candidate-frontier.py +0 -469
- package/benchmark/auto-resolve/scripts/pair-plan-idgen.py +0 -401
- package/benchmark/auto-resolve/scripts/pair-plan-lint.py +0 -475
- package/benchmark/auto-resolve/scripts/pair-rejected-fixtures.sh +0 -103
- package/benchmark/auto-resolve/scripts/pair_evidence_contract.py +0 -270
- package/benchmark/auto-resolve/scripts/prepare-swebench-frozen-case.py +0 -273
- package/benchmark/auto-resolve/scripts/prepare-swebench-frozen-corpus.py +0 -148
- package/benchmark/auto-resolve/scripts/prepare-swebench-solver-worktree.py +0 -210
- package/benchmark/auto-resolve/scripts/recent-benchmark-summary.py +0 -232
- package/benchmark/auto-resolve/scripts/run-fixture.sh +0 -1024
- package/benchmark/auto-resolve/scripts/run-frozen-verify-pair.sh +0 -683
- package/benchmark/auto-resolve/scripts/run-full-pipeline-pair-candidate.sh +0 -458
- package/benchmark/auto-resolve/scripts/run-headroom-candidate.sh +0 -336
- package/benchmark/auto-resolve/scripts/run-iter-0033c.sh +0 -208
- package/benchmark/auto-resolve/scripts/run-suite.sh +0 -251
- package/benchmark/auto-resolve/scripts/run-swebench-frozen-corpus.sh +0 -310
- package/benchmark/auto-resolve/scripts/run-swebench-solver-batch.sh +0 -257
- package/benchmark/auto-resolve/scripts/ship-gate.py +0 -391
- package/benchmark/auto-resolve/scripts/solo-ceiling-avoidance.py +0 -53
- package/benchmark/auto-resolve/scripts/solo-headroom-hypothesis.py +0 -77
- package/benchmark/auto-resolve/scripts/swebench-frozen-matrix.py +0 -478
- package/benchmark/auto-resolve/scripts/test-audit-headroom-rejections.sh +0 -288
- package/benchmark/auto-resolve/scripts/test-audit-pair-evidence.sh +0 -1672
- package/benchmark/auto-resolve/scripts/test-benchmark-arg-parsing.sh +0 -1015
- package/benchmark/auto-resolve/scripts/test-build-pair-eligible-manifest.sh +0 -491
- package/benchmark/auto-resolve/scripts/test-check-f9-artifacts.sh +0 -91
- package/benchmark/auto-resolve/scripts/test-frozen-verify-gate.sh +0 -517
- package/benchmark/auto-resolve/scripts/test-full-pipeline-pair-gate.sh +0 -610
- package/benchmark/auto-resolve/scripts/test-headroom-gate.sh +0 -401
- package/benchmark/auto-resolve/scripts/test-iter-0033c-compare.sh +0 -525
- package/benchmark/auto-resolve/scripts/test-iter-0033c-l1-summary.sh +0 -254
- package/benchmark/auto-resolve/scripts/test-lint-fixtures.sh +0 -580
- package/benchmark/auto-resolve/scripts/test-pair-candidate-frontier.sh +0 -591
- package/benchmark/auto-resolve/scripts/test-run-full-pipeline-pair-candidate.sh +0 -497
- package/benchmark/auto-resolve/scripts/test-run-headroom-candidate.sh +0 -401
- package/benchmark/auto-resolve/scripts/test-run-swebench-solver-batch.sh +0 -111
- package/benchmark/auto-resolve/scripts/test-ship-gate.sh +0 -1189
- package/benchmark/auto-resolve/scripts/test-swebench-frozen-case.sh +0 -1221
- package/benchmark/auto-resolve/shadow-fixtures/S1-cli-lang-flag/NOTES.md +0 -28
- package/benchmark/auto-resolve/shadow-fixtures/S1-cli-lang-flag/expected.json +0 -63
- package/benchmark/auto-resolve/shadow-fixtures/S1-cli-lang-flag/metadata.json +0 -10
- package/benchmark/auto-resolve/shadow-fixtures/S1-cli-lang-flag/setup.sh +0 -3
- package/benchmark/auto-resolve/shadow-fixtures/S1-cli-lang-flag/spec.md +0 -47
- package/benchmark/auto-resolve/shadow-fixtures/S1-cli-lang-flag/task.txt +0 -1
- package/benchmark/auto-resolve/shadow-fixtures/S2-cli-inventory-reservation/NOTES.md +0 -34
- package/benchmark/auto-resolve/shadow-fixtures/S2-cli-inventory-reservation/expected.json +0 -53
- package/benchmark/auto-resolve/shadow-fixtures/S2-cli-inventory-reservation/metadata.json +0 -10
- package/benchmark/auto-resolve/shadow-fixtures/S2-cli-inventory-reservation/setup.sh +0 -3
- package/benchmark/auto-resolve/shadow-fixtures/S2-cli-inventory-reservation/spec.md +0 -50
- package/benchmark/auto-resolve/shadow-fixtures/S2-cli-inventory-reservation/task.txt +0 -1
- package/benchmark/auto-resolve/shadow-fixtures/S2-cli-inventory-reservation/verifiers/duplicate-order-error.js +0 -27
- package/benchmark/auto-resolve/shadow-fixtures/S2-cli-inventory-reservation/verifiers/priority-stock-reservation.js +0 -44
- package/benchmark/auto-resolve/shadow-fixtures/S3-cli-ticket-assignment/NOTES.md +0 -34
- package/benchmark/auto-resolve/shadow-fixtures/S3-cli-ticket-assignment/expected.json +0 -55
- package/benchmark/auto-resolve/shadow-fixtures/S3-cli-ticket-assignment/metadata.json +0 -10
- package/benchmark/auto-resolve/shadow-fixtures/S3-cli-ticket-assignment/setup.sh +0 -3
- package/benchmark/auto-resolve/shadow-fixtures/S3-cli-ticket-assignment/spec.md +0 -52
- package/benchmark/auto-resolve/shadow-fixtures/S3-cli-ticket-assignment/task.txt +0 -1
- package/benchmark/auto-resolve/shadow-fixtures/S3-cli-ticket-assignment/verifiers/duplicate-ticket-error.js +0 -29
- package/benchmark/auto-resolve/shadow-fixtures/S3-cli-ticket-assignment/verifiers/priority-agent-assignment.js +0 -48
- package/benchmark/auto-resolve/shadow-fixtures/S4-cli-return-routing/NOTES.md +0 -34
- package/benchmark/auto-resolve/shadow-fixtures/S4-cli-return-routing/expected.json +0 -55
- package/benchmark/auto-resolve/shadow-fixtures/S4-cli-return-routing/metadata.json +0 -10
- package/benchmark/auto-resolve/shadow-fixtures/S4-cli-return-routing/setup.sh +0 -3
- package/benchmark/auto-resolve/shadow-fixtures/S4-cli-return-routing/spec.md +0 -55
- package/benchmark/auto-resolve/shadow-fixtures/S4-cli-return-routing/task.txt +0 -1
- package/benchmark/auto-resolve/shadow-fixtures/S4-cli-return-routing/verifiers/duplicate-return-error.js +0 -43
- package/benchmark/auto-resolve/shadow-fixtures/S4-cli-return-routing/verifiers/priority-return-routing.js +0 -70
- package/benchmark/auto-resolve/shadow-fixtures/S5-cli-credit-grant-ledger/NOTES.md +0 -37
- package/benchmark/auto-resolve/shadow-fixtures/S5-cli-credit-grant-ledger/expected.json +0 -54
- package/benchmark/auto-resolve/shadow-fixtures/S5-cli-credit-grant-ledger/metadata.json +0 -10
- package/benchmark/auto-resolve/shadow-fixtures/S5-cli-credit-grant-ledger/setup.sh +0 -3
- package/benchmark/auto-resolve/shadow-fixtures/S5-cli-credit-grant-ledger/spec.md +0 -59
- package/benchmark/auto-resolve/shadow-fixtures/S5-cli-credit-grant-ledger/task.txt +0 -1
- package/benchmark/auto-resolve/shadow-fixtures/S5-cli-credit-grant-ledger/verifiers/credit-ledger-priority.js +0 -98
- package/benchmark/auto-resolve/shadow-fixtures/S5-cli-credit-grant-ledger/verifiers/duplicate-charge-error.js +0 -38
- package/benchmark/auto-resolve/shadow-fixtures/S6-cli-refund-window-ledger/NOTES.md +0 -36
- package/benchmark/auto-resolve/shadow-fixtures/S6-cli-refund-window-ledger/expected.json +0 -56
- package/benchmark/auto-resolve/shadow-fixtures/S6-cli-refund-window-ledger/metadata.json +0 -10
- package/benchmark/auto-resolve/shadow-fixtures/S6-cli-refund-window-ledger/setup.sh +0 -3
- package/benchmark/auto-resolve/shadow-fixtures/S6-cli-refund-window-ledger/spec.md +0 -59
- package/benchmark/auto-resolve/shadow-fixtures/S6-cli-refund-window-ledger/task.txt +0 -1
- package/benchmark/auto-resolve/shadow-fixtures/S6-cli-refund-window-ledger/verifiers/duplicate-refund-error.js +0 -41
- package/benchmark/auto-resolve/shadow-fixtures/S6-cli-refund-window-ledger/verifiers/priority-refund-ledger.js +0 -65
- package/config/skills/_shared/pair-plan-schema.md +0 -298
- package/scripts/lint-fixtures.sh +0 -352
- package/scripts/lint-shadow-fixtures.sh +0 -58
- package/scripts/lint-skills.sh +0 -4265
- package/scripts/test-owner-phases.py +0 -193
package/benchmark/auto-resolve/fixtures/F16-cli-quote-tax-rules/verifiers/no-hardcoded-pricing.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const fs = require('node:fs');
|
|
4
|
-
const os = require('node:os');
|
|
5
|
-
const path = require('node:path');
|
|
6
|
-
const { spawnSync } = require('node:child_process');
|
|
7
|
-
|
|
8
|
-
const pricingPath = path.join(process.env.BENCH_WORKDIR, 'data', 'pricing.json');
|
|
9
|
-
const pricing = JSON.parse(fs.readFileSync(pricingPath, 'utf8'));
|
|
10
|
-
pricing.products.A.unit_cents = 2111;
|
|
11
|
-
pricing.products.A.stock = 5;
|
|
12
|
-
pricing.shipping_cents = 123;
|
|
13
|
-
fs.writeFileSync(pricingPath, JSON.stringify(pricing, null, 2));
|
|
14
|
-
|
|
15
|
-
const orderPath = path.join(os.tmpdir(), `quote-pricing-${process.pid}.json`);
|
|
16
|
-
fs.writeFileSync(orderPath, JSON.stringify({
|
|
17
|
-
state: 'OR',
|
|
18
|
-
coupon: null,
|
|
19
|
-
items: [{ sku: 'A', qty: 2 }]
|
|
20
|
-
}));
|
|
21
|
-
|
|
22
|
-
const cli = path.join(process.env.BENCH_WORKDIR, 'bin', 'cli.js');
|
|
23
|
-
const result = spawnSync('node', [cli, 'quote', '--input', orderPath], {
|
|
24
|
-
cwd: process.env.BENCH_WORKDIR,
|
|
25
|
-
encoding: 'utf8'
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
let quote;
|
|
29
|
-
try {
|
|
30
|
-
quote = JSON.parse(result.stdout);
|
|
31
|
-
} catch {
|
|
32
|
-
quote = null;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const ok = result.status === 0
|
|
36
|
-
&& result.stderr === ''
|
|
37
|
-
&& quote
|
|
38
|
-
&& quote.subtotal_cents === 4222
|
|
39
|
-
&& quote.shipping_cents === 123
|
|
40
|
-
&& quote.total_cents === 4345;
|
|
41
|
-
|
|
42
|
-
console.log(JSON.stringify({
|
|
43
|
-
ok,
|
|
44
|
-
status: result.status,
|
|
45
|
-
quote
|
|
46
|
-
}));
|
|
47
|
-
process.exit(ok ? 0 : 1);
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const fs = require('node:fs');
|
|
4
|
-
const os = require('node:os');
|
|
5
|
-
const path = require('node:path');
|
|
6
|
-
const { spawnSync } = require('node:child_process');
|
|
7
|
-
|
|
8
|
-
const orderPath = path.join(os.tmpdir(), `quote-stock-${process.pid}.json`);
|
|
9
|
-
fs.writeFileSync(orderPath, JSON.stringify({
|
|
10
|
-
state: 'NY',
|
|
11
|
-
coupon: null,
|
|
12
|
-
items: [
|
|
13
|
-
{ sku: 'A', qty: 2 },
|
|
14
|
-
{ sku: 'A', qty: 2 }
|
|
15
|
-
]
|
|
16
|
-
}));
|
|
17
|
-
|
|
18
|
-
const cli = path.join(process.env.BENCH_WORKDIR, 'bin', 'cli.js');
|
|
19
|
-
const result = spawnSync('node', [cli, 'quote', '--input', orderPath], {
|
|
20
|
-
cwd: process.env.BENCH_WORKDIR,
|
|
21
|
-
encoding: 'utf8'
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
let err;
|
|
25
|
-
try {
|
|
26
|
-
err = JSON.parse(result.stderr);
|
|
27
|
-
} catch {
|
|
28
|
-
err = null;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const ok = result.status === 2
|
|
32
|
-
&& result.stdout === ''
|
|
33
|
-
&& err
|
|
34
|
-
&& err.error === 'invalid_stock'
|
|
35
|
-
&& err.sku === 'A'
|
|
36
|
-
&& err.available === 3
|
|
37
|
-
&& err.requested === 4;
|
|
38
|
-
|
|
39
|
-
console.log(JSON.stringify({
|
|
40
|
-
ok,
|
|
41
|
-
status: result.status,
|
|
42
|
-
stdout: result.stdout,
|
|
43
|
-
err
|
|
44
|
-
}));
|
|
45
|
-
process.exit(ok ? 0 : 1);
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# F2 — Notes
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
|
|
5
|
-
Canonical **medium-complexity single-file CLI task** in the suite. Tests the
|
|
6
|
-
middle-ground: a task big enough that first-draft implementations often miss
|
|
7
|
-
an edge case (EACCES vs missing-dir distinction, TTY gating, HOME guard),
|
|
8
|
-
small enough that every arm can plausibly finish in < 10 minutes.
|
|
9
|
-
|
|
10
|
-
## What failure mode does it detect?
|
|
11
|
-
|
|
12
|
-
- **Silent catches.** The pattern `try { readdirSync(...) } catch { return [] }`
|
|
13
|
-
is a natural shortcut here. Bare prompt arms tend to take it. The pipeline's
|
|
14
|
-
EVAL phase catches it as a `correctness.silent-error` or
|
|
15
|
-
`hygiene.silent-catch` finding.
|
|
16
|
-
- **Edge-case distinction.** ENOENT vs EACCES must be reported differently.
|
|
17
|
-
Arms that collapse both into a generic FAIL miss a spec Requirement.
|
|
18
|
-
- **Over-engineering.** Since v3.6's CRITIC calibration, hand-rolled
|
|
19
|
-
mode-bit writable checks are blocked in favor of `fs.accessSync(...,
|
|
20
|
-
fs.constants.W_OK)`.
|
|
21
|
-
|
|
22
|
-
## Which pipeline phases does it exercise?
|
|
23
|
-
|
|
24
|
-
- Phase 0: routing — `permission`, `env` risk keywords in the task body
|
|
25
|
-
escalate to `strict`.
|
|
26
|
-
- Phase 1 BUILD: main implementation pass.
|
|
27
|
-
- Phase 1.4 BUILD GATE: `node --check` syntax gate.
|
|
28
|
-
- Phase 2 EVAL: catches silent-catch trap if present.
|
|
29
|
-
- Phase 3 CRITIC design: applies stdlib-vs-hand-rolled calibration.
|
|
30
|
-
- Phase 3 CRITIC security (native): minimal — no deps changed.
|
|
31
|
-
- Phase 4 DOCS: spec frontmatter `status: done`.
|
|
32
|
-
|
|
33
|
-
## Why can't another fixture cover this?
|
|
34
|
-
|
|
35
|
-
- F1 is trivial (single-line edit, no edge cases).
|
|
36
|
-
- F3 is backend (different idioms, tests run differently).
|
|
37
|
-
- F5 is designed to force fix-loop (not applicable here).
|
|
38
|
-
- F7 is scope-creep (orthogonal concern).
|
|
39
|
-
|
|
40
|
-
## When should this fixture be retired or replaced?
|
|
41
|
-
|
|
42
|
-
When both `bare` and `solo_claude` score > 95 for two consecutive shipped
|
|
43
|
-
versions — i.e., the fixture saturates and no longer differentiates. Candidate
|
|
44
|
-
replacement: a similar-size CLI task with multiple interacting flags or a
|
|
45
|
-
subcommand that spawns a child process.
|
|
46
|
-
|
|
47
|
-
## Calibration history
|
|
48
|
-
|
|
49
|
-
- v3.4 skill 57 / bare 45 / margin +12 (gpt-5.3-codex judge)
|
|
50
|
-
- v3.4.1 skill 59 / bare 43 / margin +16 (gpt-5.3-codex judge)
|
|
51
|
-
- v3.5 skill 92 / bare 81 / margin +11 (gpt-5.4 xhigh judge) — huge absolute jump; bare silent-catch caught
|
|
52
|
-
- 20260512-f2-medium-headroom bare 83 / solo_claude 95 — rejected as
|
|
53
|
-
pair-lift evidence because both baseline scores exceed current headroom
|
|
54
|
-
ceilings.
|
|
55
|
-
|
|
56
|
-
Absolute scores jumped with the stronger judge. Margin stays solid (+11
|
|
57
|
-
after stdlib calibration is expected to open a few points more).
|
package/benchmark/auto-resolve/fixtures/F2-cli-medium-subcommand/expected-pair-plan-registry.json
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"fixture_id": "F2-cli-medium-subcommand",
|
|
3
|
-
"generated_at": "2026-04-29T09:57:53Z",
|
|
4
|
-
"generated_from": {
|
|
5
|
-
"expected_path": "benchmark/auto-resolve/fixtures/F2-cli-medium-subcommand/expected.json",
|
|
6
|
-
"expected_sha256": "ddef8feba49f20b6957e37840bc6a03e78e554776e380d81ad6390944c72fcab",
|
|
7
|
-
"metadata_path": "benchmark/auto-resolve/fixtures/F2-cli-medium-subcommand/metadata.json",
|
|
8
|
-
"metadata_sha256": "1b8066a7c649eb6baad7a3e056edbdb16cc3b796e154cedee0cf2258c5543b18",
|
|
9
|
-
"oracle_script_shas": {
|
|
10
|
-
"scope-tier-a": "baaf21ed4a67f35d2a8af825e72869ef9737b5dfe08d65dd1a11c26fafe297ae",
|
|
11
|
-
"scope-tier-b": "9349d00a5c7456a4df9142923334e7004407d53f2443f2e210945bb771971e25",
|
|
12
|
-
"test-fidelity": "401184da51ae500cecfc75a6c5819b0d28acb63a397f788fb628c2913562f903"
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
"required_invariants": [
|
|
16
|
-
{
|
|
17
|
-
"authority": "expected.json/forbidden_patterns",
|
|
18
|
-
"id": "forbidden_pattern__silent_catch_returning_a_fallback_value_violates_no_silent_c__bin_cli_js",
|
|
19
|
-
"operational_check": "variant arm output MUST NOT contain regex pattern \"catch\\\\s*\\\\([^)]*\\\\)\\\\s*\\\\{[^}]*return\\\\s+(\\\\[\\\\]|null|undefined|\\\\{|false|'')\" in files ['bin/cli.js']; rationale: silent catch returning a fallback value — violates no-silent-catches policy",
|
|
20
|
-
"severity": "disqualifier",
|
|
21
|
-
"source_field": "expected.json/forbidden_patterns/0",
|
|
22
|
-
"source_ref": "expected.json:forbidden_patterns[0]"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"authority": "expected.json/forbidden_patterns",
|
|
26
|
-
"id": "forbidden_pattern__ts_ignore_escape_hatch__bin_cli_js",
|
|
27
|
-
"operational_check": "variant arm output MUST NOT contain regex pattern '@ts-ignore' in files ['bin/cli.js']; rationale: @ts-ignore escape hatch",
|
|
28
|
-
"severity": "disqualifier",
|
|
29
|
-
"source_field": "expected.json/forbidden_patterns/1",
|
|
30
|
-
"source_ref": "expected.json:forbidden_patterns[1]"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"authority": "expected.json/max_deps_added",
|
|
34
|
-
"id": "max_deps_added__0",
|
|
35
|
-
"operational_check": "variant arm MUST NOT add more than 0 new npm dependencies (count delta of package.json:dependencies + devDependencies)",
|
|
36
|
-
"severity": "hard",
|
|
37
|
-
"source_field": "expected.json/max_deps_added",
|
|
38
|
-
"source_ref": "expected.json:max_deps_added"
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"authority": "expected.json/required_files",
|
|
42
|
-
"id": "required_file__bin_cli_js",
|
|
43
|
-
"operational_check": "variant arm output MUST contain file 'bin/cli.js' (created or preserved)",
|
|
44
|
-
"severity": "hard",
|
|
45
|
-
"source_field": "expected.json/required_files",
|
|
46
|
-
"source_ref": "expected.json:required_files[bin/cli.js]"
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
"authority": "metadata/oracle-allowlist",
|
|
50
|
-
"id": "scope-tier-a:lockfile-deletion",
|
|
51
|
-
"operational_check": "variant arm MUST NOT delete a scaffold-present lockfile",
|
|
52
|
-
"severity": "hard",
|
|
53
|
-
"source_field": "oracle/scope-tier-a/scope-tier-a:lockfile-deletion",
|
|
54
|
-
"source_ref": "oracle-scope-tier-a.py"
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"authority": "metadata/oracle-allowlist",
|
|
58
|
-
"id": "scope-tier-a:tier-a-violation",
|
|
59
|
-
"operational_check": "variant arm MUST NOT add or modify paths matching: docs/roadmap/** | docs/VISION.md | docs/ROADMAP.md | .github/** | node_modules/** | **/node_modules/** | test-results/** | coverage/** | .nyc_output/** | basename suffix .log | basename prefix .env or secrets.",
|
|
60
|
-
"severity": "hard",
|
|
61
|
-
"source_field": "oracle/scope-tier-a/scope-tier-a:tier-a-violation",
|
|
62
|
-
"source_ref": "oracle-scope-tier-a.py"
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
"authority": "metadata/oracle-allowlist",
|
|
66
|
-
"id": "scope-tier-b:scope-unmatched",
|
|
67
|
-
"operational_check": "every variant-touched file MUST be either inside spec_output_files (Tier C) OR reachable from a Tier C seed via static JS/TS imports OR matched by expected.json:tier_a_waivers",
|
|
68
|
-
"severity": "warn",
|
|
69
|
-
"source_field": "oracle/scope-tier-b/scope-tier-b:scope-unmatched",
|
|
70
|
-
"source_ref": "oracle-scope-tier-b.py"
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
"authority": "expected.json/spec_output_files",
|
|
74
|
-
"id": "spec_output_file__bin_cli_js",
|
|
75
|
-
"operational_check": "variant-touched files MUST be inside (or reachable via static imports from) the spec_output_files set; 'bin/cli.js' is one Tier C seed",
|
|
76
|
-
"severity": "warn",
|
|
77
|
-
"source_field": "expected.json/spec_output_files",
|
|
78
|
-
"source_ref": "expected.json:spec_output_files[bin/cli.js]"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"authority": "expected.json/spec_output_files",
|
|
82
|
-
"id": "spec_output_file__tests_cli_test_js",
|
|
83
|
-
"operational_check": "variant-touched files MUST be inside (or reachable via static imports from) the spec_output_files set; 'tests/cli.test.js' is one Tier C seed",
|
|
84
|
-
"severity": "warn",
|
|
85
|
-
"source_field": "expected.json/spec_output_files",
|
|
86
|
-
"source_ref": "expected.json:spec_output_files[tests/cli.test.js]"
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
"authority": "metadata/oracle-allowlist",
|
|
90
|
-
"id": "test-fidelity:assertion-regression",
|
|
91
|
-
"operational_check": "effective assertion count MUST NOT drop and skipped-test count MUST NOT rise; vacuous expect.assertions(0) is treated as a real regression",
|
|
92
|
-
"severity": "warn",
|
|
93
|
-
"source_field": "oracle/test-fidelity/test-fidelity:assertion-regression",
|
|
94
|
-
"source_ref": "oracle-test-fidelity.py"
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
"authority": "metadata/oracle-allowlist",
|
|
98
|
-
"id": "test-fidelity:mock-swap",
|
|
99
|
-
"operational_check": "post-arm test file MUST NOT swap REAL_PATTERNS hits for MOCK_PATTERNS hits (jest/vi/sinon, nock/msw, app.handle/inject/callback, hand-rolled IncomingMessage/ServerResponse, etc.); a drop in real_calls combined with a rise in mock_calls is a mock-swap flag",
|
|
100
|
-
"severity": "flag",
|
|
101
|
-
"source_field": "oracle/test-fidelity/test-fidelity:mock-swap",
|
|
102
|
-
"source_ref": "oracle-test-fidelity.py"
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
"authority": "metadata/oracle-allowlist",
|
|
106
|
-
"id": "test-fidelity:test-file-deleted",
|
|
107
|
-
"operational_check": "no scaffold-present test file may be deleted by the variant arm; deletion of an existing tests/*.test.* / *.spec.* / *.e2e.* file is a flag-severity finding",
|
|
108
|
-
"severity": "flag",
|
|
109
|
-
"source_field": "oracle/test-fidelity/test-fidelity:test-file-deleted",
|
|
110
|
-
"source_ref": "oracle-test-fidelity.py"
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"authority": "metadata/oracle-allowlist",
|
|
114
|
-
"id": "test-fidelity:test-file-renamed",
|
|
115
|
-
"operational_check": "rename of a scaffold-present test file is warn-severity (content fidelity not verified across renames in step 1)",
|
|
116
|
-
"severity": "warn",
|
|
117
|
-
"source_field": "oracle/test-fidelity/test-fidelity:test-file-renamed",
|
|
118
|
-
"source_ref": "oracle-test-fidelity.py"
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
"authority": "expected.json/verification_commands",
|
|
122
|
-
"id": "verification__3f35982a",
|
|
123
|
-
"operational_check": "running `node bin/cli.js doctor` in the post-arm work dir MUST exit with code 0; stdout MUST contain all of ['doctor:']; stdout MUST NOT contain any of ['undefined', 'Error:']",
|
|
124
|
-
"severity": "hard",
|
|
125
|
-
"source_field": "expected.json/verification_commands/0",
|
|
126
|
-
"source_ref": "expected.json:verification_commands[0]"
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"authority": "expected.json/verification_commands",
|
|
130
|
-
"id": "verification__460fce04",
|
|
131
|
-
"operational_check": "running `HOME=/nonexistent node bin/cli.js doctor` in the post-arm work dir MUST exit with code 1; stdout MUST contain all of ['/nonexistent']; stdout MUST NOT contain any of []",
|
|
132
|
-
"severity": "hard",
|
|
133
|
-
"source_field": "expected.json/verification_commands/1",
|
|
134
|
-
"source_ref": "expected.json:verification_commands[1]"
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
"authority": "expected.json/verification_commands",
|
|
138
|
-
"id": "verification__973e287e",
|
|
139
|
-
"operational_check": "running `python3 -c \"import subprocess; r = subprocess.run(['node', 'bin/cli.js', 'doctor'], capture_output=True); n = r.stdout.count(b'\\x1b['); print(n); exit(0 if n == 0 else 1)\"` in the post-arm work dir MUST exit with code 0; stdout MUST contain all of ['0']; stdout MUST NOT contain any of []",
|
|
140
|
-
"severity": "hard",
|
|
141
|
-
"source_field": "expected.json/verification_commands/2",
|
|
142
|
-
"source_ref": "expected.json:verification_commands[2]"
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
"authority": "expected.json/verification_commands",
|
|
146
|
-
"id": "verification__d6253a97",
|
|
147
|
-
"operational_check": "running `node bin/cli.js doctor --help` in the post-arm work dir MUST exit with code 0; stdout MUST contain all of ['doctor']; stdout MUST NOT contain any of []",
|
|
148
|
-
"severity": "hard",
|
|
149
|
-
"source_field": "expected.json/verification_commands/3",
|
|
150
|
-
"source_ref": "expected.json:verification_commands[3]"
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
"authority": "expected.json/verification_commands",
|
|
154
|
-
"id": "verification__e0f149e4",
|
|
155
|
-
"operational_check": "running `node bin/cli.js --help` in the post-arm work dir MUST exit with code 0; stdout MUST contain all of ['doctor']; stdout MUST NOT contain any of []",
|
|
156
|
-
"severity": "hard",
|
|
157
|
-
"source_field": "expected.json/verification_commands/4",
|
|
158
|
-
"source_ref": "expected.json:verification_commands[4]"
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
"authority": "expected.json/verification_commands",
|
|
162
|
-
"id": "verification__fdbcd321",
|
|
163
|
-
"operational_check": "running `node bin/cli.js doctor --verbose` in the post-arm work dir MUST exit with code 0; stdout MUST contain all of ['doctor:']; stdout MUST NOT contain any of ['Error:']",
|
|
164
|
-
"severity": "hard",
|
|
165
|
-
"source_field": "expected.json/verification_commands/5",
|
|
166
|
-
"source_ref": "expected.json:verification_commands[5]"
|
|
167
|
-
}
|
|
168
|
-
],
|
|
169
|
-
"schema_version": "1"
|
|
170
|
-
}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"verification_commands": [
|
|
3
|
-
{
|
|
4
|
-
"cmd": "node bin/cli.js doctor",
|
|
5
|
-
"exit_code": 0,
|
|
6
|
-
"stdout_contains": [
|
|
7
|
-
"doctor:"
|
|
8
|
-
],
|
|
9
|
-
"stdout_not_contains": [
|
|
10
|
-
"undefined",
|
|
11
|
-
"Error:"
|
|
12
|
-
]
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"cmd": "HOME=/nonexistent node bin/cli.js doctor",
|
|
16
|
-
"exit_code": 1,
|
|
17
|
-
"stdout_contains": [
|
|
18
|
-
"/nonexistent"
|
|
19
|
-
],
|
|
20
|
-
"stdout_not_contains": []
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
"cmd": "python3 -c \"import subprocess; r = subprocess.run(['node', 'bin/cli.js', 'doctor'], capture_output=True); n = r.stdout.count(b'\\x1b['); print(n); exit(0 if n == 0 else 1)\"",
|
|
24
|
-
"exit_code": 0,
|
|
25
|
-
"stdout_contains": [
|
|
26
|
-
"0"
|
|
27
|
-
],
|
|
28
|
-
"stdout_not_contains": []
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
"cmd": "node bin/cli.js doctor --help",
|
|
32
|
-
"exit_code": 0,
|
|
33
|
-
"stdout_contains": [
|
|
34
|
-
"doctor"
|
|
35
|
-
],
|
|
36
|
-
"stdout_not_contains": []
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"cmd": "node bin/cli.js --help",
|
|
40
|
-
"exit_code": 0,
|
|
41
|
-
"stdout_contains": [
|
|
42
|
-
"doctor"
|
|
43
|
-
],
|
|
44
|
-
"stdout_not_contains": []
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
"cmd": "node bin/cli.js doctor --verbose",
|
|
48
|
-
"exit_code": 0,
|
|
49
|
-
"stdout_contains": [
|
|
50
|
-
"doctor:"
|
|
51
|
-
],
|
|
52
|
-
"stdout_not_contains": [
|
|
53
|
-
"Error:"
|
|
54
|
-
]
|
|
55
|
-
}
|
|
56
|
-
],
|
|
57
|
-
"forbidden_patterns": [
|
|
58
|
-
{
|
|
59
|
-
"pattern": "catch\\s*\\([^)]*\\)\\s*\\{[^}]*return\\s+(?:\\[\\]|null|undefined|false|''|\\{\\s*\\})",
|
|
60
|
-
"description": "silent catch returning a fallback value (null / undefined / [] / false / '' / empty {}) \u2014 violates no-silent-catches policy. Structured error returns like `return { level: 'fail', message }` are NOT silent (they surface a user-visible failure object) and must not match.",
|
|
61
|
-
"files": [
|
|
62
|
-
"bin/cli.js"
|
|
63
|
-
],
|
|
64
|
-
"severity": "disqualifier"
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
"pattern": "@ts-ignore",
|
|
68
|
-
"description": "@ts-ignore escape hatch",
|
|
69
|
-
"files": [
|
|
70
|
-
"bin/cli.js"
|
|
71
|
-
],
|
|
72
|
-
"severity": "disqualifier"
|
|
73
|
-
}
|
|
74
|
-
],
|
|
75
|
-
"required_files": [
|
|
76
|
-
"bin/cli.js"
|
|
77
|
-
],
|
|
78
|
-
"forbidden_files": [],
|
|
79
|
-
"max_deps_added": 0,
|
|
80
|
-
"spec_output_files": [
|
|
81
|
-
"bin/cli.js",
|
|
82
|
-
"tests/cli.test.js"
|
|
83
|
-
]
|
|
84
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "F2-cli-medium-subcommand",
|
|
3
|
-
"category": "medium",
|
|
4
|
-
"difficulty": "medium",
|
|
5
|
-
"timeout_seconds": 1500,
|
|
6
|
-
"required_tools": [
|
|
7
|
-
"node"
|
|
8
|
-
],
|
|
9
|
-
"browser": false,
|
|
10
|
-
"deps_change_expected": false,
|
|
11
|
-
"intent": "Add a `doctor` subcommand to bin/cli.js that diagnoses the local environment: node version check, $HOME/.claude directory check, installed plugins count, installed skills count, TTY-gated ANSI color, summary line, exit code, --verbose flag, help integration. Zero new npm dependencies. No silent error catches.",
|
|
12
|
-
"pair_plan_oracle_categories": [
|
|
13
|
-
"scope-tier-a:lockfile-deletion",
|
|
14
|
-
"scope-tier-a:tier-a-violation",
|
|
15
|
-
"scope-tier-b:scope-unmatched",
|
|
16
|
-
"test-fidelity:assertion-regression",
|
|
17
|
-
"test-fidelity:mock-swap",
|
|
18
|
-
"test-fidelity:test-file-deleted",
|
|
19
|
-
"test-fidelity:test-file-renamed"
|
|
20
|
-
]
|
|
21
|
-
}
|
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"accepted_invariants": [
|
|
3
|
-
{
|
|
4
|
-
"authority": "expected.json/forbidden_patterns",
|
|
5
|
-
"id": "forbidden_pattern__ts_ignore_escape_hatch__bin_cli_js",
|
|
6
|
-
"operational_check": "variant arm output MUST NOT contain regex pattern '@ts-ignore' in files ['bin/cli.js']; rationale: @ts-ignore escape hatch",
|
|
7
|
-
"paraphrase": "variant arm output MUST NOT contain regex pattern '@ts-ignore' in files ['bin/cli.js']; rationale: @ts-ignore escape hat",
|
|
8
|
-
"source_refs": [
|
|
9
|
-
"expected.json:forbidden_patterns[1]"
|
|
10
|
-
]
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"authority": "expected.json/max_deps_added",
|
|
14
|
-
"id": "max_deps_added__0",
|
|
15
|
-
"operational_check": "variant arm MUST NOT add more than 0 new npm dependencies (count delta of package.json:dependencies + devDependencies)",
|
|
16
|
-
"paraphrase": "variant arm MUST NOT add more than 0 new npm dependencies (count delta of package.json:dependencies + devDependencies)",
|
|
17
|
-
"source_refs": [
|
|
18
|
-
"expected.json:max_deps_added"
|
|
19
|
-
]
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"authority": "expected.json/required_files",
|
|
23
|
-
"id": "required_file__bin_cli_js",
|
|
24
|
-
"operational_check": "variant arm output MUST contain file 'bin/cli.js' (created or preserved)",
|
|
25
|
-
"paraphrase": "variant arm output MUST contain file 'bin/cli.js' (created or preserved)",
|
|
26
|
-
"source_refs": [
|
|
27
|
-
"expected.json:required_files[bin/cli.js]"
|
|
28
|
-
]
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
"authority": "metadata/oracle-allowlist",
|
|
32
|
-
"id": "scope-tier-a:lockfile-deletion",
|
|
33
|
-
"operational_check": "variant arm MUST NOT delete a scaffold-present lockfile",
|
|
34
|
-
"paraphrase": "variant arm MUST NOT delete a scaffold-present lockfile",
|
|
35
|
-
"source_refs": [
|
|
36
|
-
"oracle-scope-tier-a.py"
|
|
37
|
-
]
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"authority": "metadata/oracle-allowlist",
|
|
41
|
-
"id": "scope-tier-a:tier-a-violation",
|
|
42
|
-
"operational_check": "variant arm MUST NOT add or modify paths matching: docs/roadmap/** | docs/VISION.md | docs/ROADMAP.md | .github/** | node_modules/** | **/node_modules/** | test-results/** | coverage/** | .nyc_output/** | basename suffix .log | basename prefix .env or secrets.",
|
|
43
|
-
"paraphrase": "variant arm MUST NOT add or modify paths matching: docs/roadmap/** | docs/VISION.md | docs/ROADMAP.md | .github/** | nod",
|
|
44
|
-
"source_refs": [
|
|
45
|
-
"oracle-scope-tier-a.py"
|
|
46
|
-
]
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
"authority": "metadata/oracle-allowlist",
|
|
50
|
-
"id": "scope-tier-b:scope-unmatched",
|
|
51
|
-
"operational_check": "every variant-touched file MUST be either inside spec_output_files (Tier C) OR reachable from a Tier C seed via static JS/TS imports OR matched by expected.json:tier_a_waivers",
|
|
52
|
-
"paraphrase": "every variant-touched file MUST be either inside spec_output_files (Tier C) OR reachable from a Tier C seed via static J",
|
|
53
|
-
"source_refs": [
|
|
54
|
-
"oracle-scope-tier-b.py"
|
|
55
|
-
]
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"authority": "expected.json/spec_output_files",
|
|
59
|
-
"id": "spec_output_file__bin_cli_js",
|
|
60
|
-
"operational_check": "variant-touched files MUST be inside (or reachable via static imports from) the spec_output_files set; 'bin/cli.js' is one Tier C seed",
|
|
61
|
-
"paraphrase": "variant-touched files MUST be inside (or reachable via static imports from) the spec_output_files set; 'bin/cli.js' is o",
|
|
62
|
-
"source_refs": [
|
|
63
|
-
"expected.json:spec_output_files[bin/cli.js]"
|
|
64
|
-
]
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
"authority": "expected.json/spec_output_files",
|
|
68
|
-
"id": "spec_output_file__tests_cli_test_js",
|
|
69
|
-
"operational_check": "variant-touched files MUST be inside (or reachable via static imports from) the spec_output_files set; 'tests/cli.test.js' is one Tier C seed",
|
|
70
|
-
"paraphrase": "variant-touched files MUST be inside (or reachable via static imports from) the spec_output_files set; 'tests/cli.test.j",
|
|
71
|
-
"source_refs": [
|
|
72
|
-
"expected.json:spec_output_files[tests/cli.test.js]"
|
|
73
|
-
]
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
"authority": "metadata/oracle-allowlist",
|
|
77
|
-
"id": "test-fidelity:assertion-regression",
|
|
78
|
-
"operational_check": "effective assertion count MUST NOT drop and skipped-test count MUST NOT rise; vacuous expect.assertions(0) is treated as a real regression",
|
|
79
|
-
"paraphrase": "effective assertion count MUST NOT drop and skipped-test count MUST NOT rise; vacuous expect.assertions(0) is treated as",
|
|
80
|
-
"source_refs": [
|
|
81
|
-
"oracle-test-fidelity.py"
|
|
82
|
-
]
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
"authority": "metadata/oracle-allowlist",
|
|
86
|
-
"id": "test-fidelity:mock-swap",
|
|
87
|
-
"operational_check": "post-arm test file MUST NOT swap REAL_PATTERNS hits for MOCK_PATTERNS hits (jest/vi/sinon, nock/msw, app.handle/inject/callback, hand-rolled IncomingMessage/ServerResponse, etc.); a drop in real_calls combined with a rise in mock_calls is a mock-swap flag",
|
|
88
|
-
"paraphrase": "post-arm test file MUST NOT swap REAL_PATTERNS hits for MOCK_PATTERNS hits (jest/vi/sinon, nock/msw, app.handle/inject/c",
|
|
89
|
-
"source_refs": [
|
|
90
|
-
"oracle-test-fidelity.py"
|
|
91
|
-
]
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
"authority": "metadata/oracle-allowlist",
|
|
95
|
-
"id": "test-fidelity:test-file-deleted",
|
|
96
|
-
"operational_check": "no scaffold-present test file may be deleted by the variant arm; deletion of an existing tests/*.test.* / *.spec.* / *.e2e.* file is a flag-severity finding",
|
|
97
|
-
"paraphrase": "no scaffold-present test file may be deleted by the variant arm; deletion of an existing tests/*.test.* / *.spec.* / *.e",
|
|
98
|
-
"source_refs": [
|
|
99
|
-
"oracle-test-fidelity.py"
|
|
100
|
-
]
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
"authority": "metadata/oracle-allowlist",
|
|
104
|
-
"id": "test-fidelity:test-file-renamed",
|
|
105
|
-
"operational_check": "rename of a scaffold-present test file is warn-severity (content fidelity not verified across renames in step 1)",
|
|
106
|
-
"paraphrase": "rename of a scaffold-present test file is warn-severity (content fidelity not verified across renames in step 1)",
|
|
107
|
-
"source_refs": [
|
|
108
|
-
"oracle-test-fidelity.py"
|
|
109
|
-
]
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
"authority": "expected.json/verification_commands",
|
|
113
|
-
"id": "verification__3f35982a",
|
|
114
|
-
"operational_check": "running `node bin/cli.js doctor` in the post-arm work dir MUST exit with code 0; stdout MUST contain all of ['doctor:']; stdout MUST NOT contain any of ['undefined', 'Error:']",
|
|
115
|
-
"paraphrase": "running `node bin/cli.js doctor` in the post-arm work dir MUST exit with code 0; stdout MUST contain all of ['doctor:'];",
|
|
116
|
-
"source_refs": [
|
|
117
|
-
"expected.json:verification_commands[0]"
|
|
118
|
-
]
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
"authority": "expected.json/verification_commands",
|
|
122
|
-
"id": "verification__460fce04",
|
|
123
|
-
"operational_check": "running `HOME=/nonexistent node bin/cli.js doctor` in the post-arm work dir MUST exit with code 1; stdout MUST contain all of ['/nonexistent']; stdout MUST NOT contain any of []",
|
|
124
|
-
"paraphrase": "running `HOME=/nonexistent node bin/cli.js doctor` in the post-arm work dir MUST exit with code 1; stdout MUST contain a",
|
|
125
|
-
"source_refs": [
|
|
126
|
-
"expected.json:verification_commands[1]"
|
|
127
|
-
]
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
"authority": "expected.json/verification_commands",
|
|
131
|
-
"id": "verification__973e287e",
|
|
132
|
-
"operational_check": "running `python3 -c \"import subprocess; r = subprocess.run(['node', 'bin/cli.js', 'doctor'], capture_output=True); n = r.stdout.count(b'\\x1b['); print(n); exit(0 if n == 0 else 1)\"` in the post-arm work dir MUST exit with code 0; stdout MUST contain all of ['0']; stdout MUST NOT contain any of []",
|
|
133
|
-
"paraphrase": "running `python3 -c \"import subprocess; r = subprocess.run(['node', 'bin/cli.js', 'doctor'], capture_output=True); n = r",
|
|
134
|
-
"source_refs": [
|
|
135
|
-
"expected.json:verification_commands[2]"
|
|
136
|
-
]
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
"authority": "expected.json/verification_commands",
|
|
140
|
-
"id": "verification__d6253a97",
|
|
141
|
-
"operational_check": "running `node bin/cli.js doctor --help` in the post-arm work dir MUST exit with code 0; stdout MUST contain all of ['doctor']; stdout MUST NOT contain any of []",
|
|
142
|
-
"paraphrase": "running `node bin/cli.js doctor --help` in the post-arm work dir MUST exit with code 0; stdout MUST contain all of ['doc",
|
|
143
|
-
"source_refs": [
|
|
144
|
-
"expected.json:verification_commands[3]"
|
|
145
|
-
]
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
"authority": "expected.json/verification_commands",
|
|
149
|
-
"id": "verification__e0f149e4",
|
|
150
|
-
"operational_check": "running `node bin/cli.js --help` in the post-arm work dir MUST exit with code 0; stdout MUST contain all of ['doctor']; stdout MUST NOT contain any of []",
|
|
151
|
-
"paraphrase": "running `node bin/cli.js --help` in the post-arm work dir MUST exit with code 0; stdout MUST contain all of ['doctor']; ",
|
|
152
|
-
"source_refs": [
|
|
153
|
-
"expected.json:verification_commands[4]"
|
|
154
|
-
]
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
"authority": "expected.json/verification_commands",
|
|
158
|
-
"id": "verification__fdbcd321",
|
|
159
|
-
"operational_check": "running `node bin/cli.js doctor --verbose` in the post-arm work dir MUST exit with code 0; stdout MUST contain all of ['doctor:']; stdout MUST NOT contain any of ['Error:']",
|
|
160
|
-
"paraphrase": "running `node bin/cli.js doctor --verbose` in the post-arm work dir MUST exit with code 0; stdout MUST contain all of ['",
|
|
161
|
-
"source_refs": [
|
|
162
|
-
"expected.json:verification_commands[5]"
|
|
163
|
-
]
|
|
164
|
-
}
|
|
165
|
-
],
|
|
166
|
-
"authority_order": [
|
|
167
|
-
"spec.md",
|
|
168
|
-
"expected.json/rubric",
|
|
169
|
-
"phase prompt",
|
|
170
|
-
"model preference"
|
|
171
|
-
],
|
|
172
|
-
"escalated_to_user": [],
|
|
173
|
-
"fixture_id": "F2-cli-medium-subcommand",
|
|
174
|
-
"model_stamps": {
|
|
175
|
-
"claude": {
|
|
176
|
-
"blocked_ids": [],
|
|
177
|
-
"model": "claude-opus-4-7",
|
|
178
|
-
"signed_plan_sha256": "05d19dc09a1c8820f58afcd091c2cd20888f7bf1141af4ec451a69723af0588a",
|
|
179
|
-
"status": "sign",
|
|
180
|
-
"timestamp": "2026-04-29T18:30:00Z"
|
|
181
|
-
},
|
|
182
|
-
"codex": {
|
|
183
|
-
"blocked_ids": [],
|
|
184
|
-
"model": "gpt-5.5",
|
|
185
|
-
"signed_plan_sha256": "05d19dc09a1c8820f58afcd091c2cd20888f7bf1141af4ec451a69723af0588a",
|
|
186
|
-
"status": "sign",
|
|
187
|
-
"timestamp": "2026-04-29T18:31:00Z"
|
|
188
|
-
}
|
|
189
|
-
},
|
|
190
|
-
"plan_status": "final",
|
|
191
|
-
"planning_mode": "pair",
|
|
192
|
-
"rejected_alternatives": [],
|
|
193
|
-
"rounds": [
|
|
194
|
-
{
|
|
195
|
-
"claude_draft_sha256": "0000000000000000000000000000000000000000000000000000000000000000",
|
|
196
|
-
"codex_draft_sha256": "1111111111111111111111111111111111111111111111111111111111111111",
|
|
197
|
-
"merged_sha256": "2222222222222222222222222222222222222222222222222222222222222222",
|
|
198
|
-
"note": "sample-pass synthetic round (test fixture)",
|
|
199
|
-
"round": 1
|
|
200
|
-
}
|
|
201
|
-
],
|
|
202
|
-
"schema_version": "1",
|
|
203
|
-
"source": {
|
|
204
|
-
"canonical_id_registry_path": "benchmark/auto-resolve/fixtures/F2-cli-medium-subcommand/expected-pair-plan-registry.json",
|
|
205
|
-
"canonical_id_registry_sha256": "98ac16e4536ea3ef2e51d3c728982c014211c193a742cea74f1331e4fbba76be",
|
|
206
|
-
"expected_path": "benchmark/auto-resolve/fixtures/F2-cli-medium-subcommand/expected.json",
|
|
207
|
-
"expected_sha256": "ddef8feba49f20b6957e37840bc6a03e78e554776e380d81ad6390944c72fcab",
|
|
208
|
-
"rubric_path": "benchmark/auto-resolve/RUBRIC.md",
|
|
209
|
-
"rubric_sha256": "5b5b709a0b57f7e6f4fbc072af91e1edbc8d7910ae16b9b7be7170616aeaa9af",
|
|
210
|
-
"spec_path": "benchmark/auto-resolve/fixtures/F2-cli-medium-subcommand/spec.md",
|
|
211
|
-
"spec_sha256": "9b0949c2afd4a522de2bdbbf267d93907fd908bf0f1d0dc5e111ee30ba875bb7"
|
|
212
|
-
},
|
|
213
|
-
"unresolved": []
|
|
214
|
-
}
|