2.9 KiB
2.9 KiB
id, title, status, wave, depends_on, plan, requirements, acceptance_criteria, system_design
| id | title | status | wave | depends_on | plan | requirements | acceptance_criteria | system_design | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01-bound-claude-execution | Bound Claude execution | done | 1 | plan.md |
|
|
|
Task 01: Bound Claude execution
Summary
Set a 30-minute execution budget on all three Claude execution jobs. Protect the limits with the existing workflow contract suite.
In scope
- Job timeout fields in both Claude workflows.
- Regression assertions for budgets, existing authorization, and failure behavior.
- A short internal note that approval expiration and execution timeout are different outcomes.
Out of scope
- Approval, permissions, prompts, models, action upgrades, turn limits, and automatic retries.
Acceptance
- Both automatic review jobs and the interactive job declare
timeout-minutes: 30. - Timeout cancellation cannot become a successful review through fallback logic.
- Trigger, approval, permission, checkout, and runner contracts remain unchanged.
Verification
Run commands from the repository root. Install workspace dependencies first in a fresh worktree.
python3 .github/scripts/claude-code-review-workflow-contract_test.py
python3 .github/scripts/lint-action-pinning_test.py
actionlint .github/workflows/claude-code-review.yml .github/workflows/claude.yml
git diff --check
Files likely touched
.github/workflows/claude-code-review.yml.github/workflows/claude.yml.github/scripts/claude-code-review-workflow-contract_test.pydocs/ci-merge-queue.md
Dependencies
None.
Risks
GitHub owns cancellation latency. Do not claim this change limits approval or queue waits.
Parallelism
sequential
Inputs
- Requirements, acceptance IDs in frontmatter.
- System design, corresponding implementation boundary.
- Plan, baseline and companion-package status.
- Existing workflow contract tests under
.github/scripts/.
Results
Implemented 2026-09-12. Added timeout-minutes: 30 to the same-repository
review, approved fork-review, and shared interactive Claude jobs. Added a
contract assertion for all three execution budgets and documented the
distinction between approval expiry, queue delay, and runner execution in
docs/ci-merge-queue.md. No trigger, permission, checkout, action, or success
fallback changed.
Validation:
python3 .github/scripts/claude-code-review-workflow-contract_test.pypassed (10 tests).python3 .github/scripts/lint-action-pinning_test.pypassed (9 tests).git diff --checkpassed.actionlintis not installed in this workspace; workflow syntax validation is pending. Repository contract and pinning tests cover workflow behavior and action references, not YAML parsing.