feat: add benchmark task suite (task 0028) #29
Reference in New Issue
Block a user
Delete Branch "task-0028-bench-task-suite"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Task file:
.claude/tasks/0028-bench-task-suite.mdSummary
Adds the full scored task suite and the capability-asymmetric bonus definitions for the benchmark harness, plus the self-review capability probe.
bench/task-suite.ts—buildScoredSuite({ selfReviewPermitted })returns the 20 shared-surface tasks weighted four read / six single-mutation / six find-then-act / four multi-step. Each is a natural-language intent parametrized against the seed, carrying a tier and a scoring spec keyed on the single user. The two find-then-act review tasks are approve/request-changes when self-review is permitted and comment reviews otherwise.buildBonusTasks({ selfReviewPermitted })returns the capability-asymmetric operations kept out of the scored suite in both directions — gitea-axi's edges (full-text search, diff, checks, checkout, issue dependencies) and the not-applicable repository/release/milestone operations — plus the approve/request-changes pair as bonus entries when self-review is unavailable.bench/self-review.ts—probeSelfReview/detectSelfReviewSupport, the live boundary that resolves self-review support once per sweep (provision a throwaway repo, seed it, attempt a self-approval, delete, report). Smoke-validated, not mocked.bench/seed.ts— exports the existing non-throwingrequesthelper so the probe can read a 4xx as "not permitted" without it throwing (a network failure still propagates). Only edit outside the new files.Deviations
ms-create-and-apply-stalecreates a label, read as "label management" (shared surface) and kept scored rather than bonus.No acceptance criteria were dropped. All 20 specs were cross-checked against the
SEED_PLANground truth.Review
Overall: Low
bench/; the only outside touch is exporting the existingrequesthelper inseed.ts, with no behaviour change to callers.bench/is internal tooling, excluded from the published npm package.Standards and Spec axes: no unaddressed findings. The one Standards finding (a duplicated
stateWithReviewhelper in the test file) was fixed by hoisting it to module scope; a grammar slip in a doc-comment was corrected. The Spec axis reported clean fidelity with no defects.