Repository navigation
The type decision of the review, as a script with its test #103
Description
Problem
The fix for #91 moves the decision "whose type wins" into a script that claude-review.yml calls from the central checkout. While the script is not on main, the review of the pull request that starts calling it cannot find it and fails. This is the first half of #91, split so that each pull request's review passes: the review of a pull request to this repository reads its scripts from main, so the script has to be there before the workflow calls it.
Scope
scripts/review-type.sh, the decision with its--test, as the Spec of A person's type label loses to the review's on edit #91 describes it.- The scripts job runs its self-test.
Out of scope
- Any change to
claude-review.yml(that is A person's type label loses to the review's on edit #91 itself).
Acceptance criteria
- C1: Given the script on
main, when the scripts job runs, then its self-test covers a person's label winning, the review's label applying and a person's label later removed. - C2: Given this change, when it merges, then no workflow behaves differently.
Criticality
Normal
Spec: approach
Add scripts/review-type.sh, the "whose type wins" decision as the Spec of #91 describes it, without any caller yet. It takes the review's type, the bot's login, the pull request's issue timeline (JSON) and its current type:* labels, and prints the type of the last type:* label a person (not a bot) added if that label is still on the pull request, and the review's type otherwise. Its --test runs fixture timelines through it. The scripts job in pull-request.yml lists its self-tests one by one, so one line, bash scripts/review-type.sh --test, is added there. No workflow calls the script, so nothing behaves differently (C2).
Spec: files
scripts/review-type.sh(new: the decision and its--test).github/workflows/pull-request.yml(one line in the scripts job:bash scripts/review-type.sh --test)
Spec: tests
- C1 → scripts/review-type.sh (
--test: reviewfeat, bot'stype:featthen a person'stype:cistill on the PR →ci; only the bot'stype:feat→feat; a person'stype:cilater removed →feat) - C2 → scripts/review-type.sh (
--testruns without any workflow calling the script; the only workflow line added is the self-test in the scripts job)
🤖 AI-generated · Claude Opus 5.5 (Anthropic)
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
dilux-bot commentedon Oct 11, 2026
Issue ready (G1): the PRD has every section of the schema (2 acceptance criteria).
🤖 AI-generated · Claude Opus 5.5 (Anthropic)
Seal #103's PRD
dilux-bot commentedon Oct 11, 2026
The issue's board
5cbd510ff2dfreceipts/issues/103/merged-2026-10-11T04:08:05Z.json🤖 AI-generated · Claude Opus 5.5 (Anthropic)
dilux-bot commentedon Oct 11, 2026
The Spec is written above. I am stopping here, before I create a branch, because this change touches paths the autopilot may not change on its own:
scripts/review-type.sh(new). The PRD asks for it, but it sits underscripts/..github/workflows/pull-request.yml, one line in the scripts job (bash scripts/review-type.sh --test). That job lists every self-test by hand and does not pick upscripts/*.sh --testby itself, so C1 ("the scripts job runs its self-test") needs this line. The autopilot must never change.github/workflows.To go on, a maintainer can either write the change by hand from the Spec, or tell the autopilot explicitly that it may touch these two paths for this issue.
🤖 AI-generated · Claude Opus 5.5 (Anthropic)
ci(scripts): the review's type decision, as a script with its test (#104
Receipt for #103
fix(issues): the Spec appended after the AI line keeps the PRD's hash (…