<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/.github/workflows/claude-code-review.yml, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/tinyusb.git/atom/.github/workflows/claude-code-review.yml?h=master</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/.github/workflows/claude-code-review.yml?h=master'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-06-30T10:14:29Z</updated>
<entry>
<title>ci(claude-review): allowlist Write too (review writes a helper script)</title>
<updated>2026-06-30T10:14:29Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-30T10:14:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=37e247176cb37e15f25622bdbdc6b03931ff3d9b'/>
<id>urn:sha1:37e247176cb37e15f25622bdbdc6b03931ff3d9b</id>
<content type='text'>
The log shows two gated tools, not one: compound Bash pipelines AND Write — the
review tried to drop check_headings.py (at /tmp, then the workdir, both denied).
Add Write to the allowlist.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>ci(claude-review): trim allowlist to Bash (the only gated tool)</title>
<updated>2026-06-30T10:04:32Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-30T10:04:32Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=2bedc60e8335e33abe6c0ed24a1785e5b0e90a8d'/>
<id>urn:sha1:2bedc60e8335e33abe6c0ed24a1785e5b0e90a8d</id>
<content type='text'>
Every blocked call in the review log was a compound Bash pipeline; Read/Grep/
Glob/Task already ran un-prompted, so only bare Bash needs allowlisting.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>ci(claude-review): allowlist the tools /code-review needs</title>
<updated>2026-06-30T09:45:34Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-30T09:45:34Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=c52a4a37f0505bb020dd4f121dfe3908b8b30783'/>
<id>urn:sha1:c52a4a37f0505bb020dd4f121dfe3908b8b30783</id>
<content type='text'>
The auto-review job runs /code-review headless, which uses Bash (git diff, gh),
file search, and Task (it fans out sub-agent reviewers). None were allowlisted,
so every such call stalled on a per-tool approval prompt and the review couldn't
gather the diff or spawn reviewers. Add --allowedTools.

Safe here (unlike claude.yml): this job is gated to same-repo PRs and its token
is contents:read, so it cannot push. Bash is broad — scope to git/gh/grep if
preferred.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>ci(review): run Claude PR review at max effort</title>
<updated>2026-06-18T12:37:12Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-18T12:37:12Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=e7b373ede2dc1ab7322d9687bc5ca87dd156e355'/>
<id>urn:sha1:e7b373ede2dc1ab7322d9687bc5ca87dd156e355</id>
<content type='text'>
Pass --effort max to the claude CLI in the auto-review workflow so PR
reviews run at maximum reasoning effort. Switch claude_args to a
multi-line block scalar for readability, keeping --max-turns 50 and
--model claude-opus-4-8 unchanged.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>ci(claude-review): run auto review on Opus (claude-opus-4-8)</title>
<updated>2026-06-11T14:13:32Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-11T14:13:32Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=b643e8108570b3a8d10dc446ca36954b90ac497a'/>
<id>urn:sha1:b643e8108570b3a8d10dc446ca36954b90ac497a</id>
<content type='text'>
The review action currently runs on the default Sonnet 4.6. On PR #3643
(musb EP0 race) it posted "No issues found" while an Opus pass on the
same diff surfaced substantive questions (ISR-boundary RXRDY lifetime,
regression scope of the DATA-state split). Pin the reviewer to
claude-opus-4-8 for higher-signal reviews; subagents keep their cheaper
default models.

Co-Authored-By: Claude Opus 4.8 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>ci(claude-review): raise --max-turns 20 -&gt; 50</title>
<updated>2026-06-11T12:41:51Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-11T12:41:51Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=c9cfd829f6a793b227f4e52df29337f2a8530ce7'/>
<id>urn:sha1:c9cfd829f6a793b227f4e52df29337f2a8530ce7</id>
<content type='text'>
The Claude Code Review action runs /code-review:code-review with a hard
--max-turns cap. On large PRs (e.g. #3636 "add stm32c5 support", 29 files
/ +1689), the agent exhausts 20 turns exploring the diff before it can
produce and post its review, so the SDK returns an error and the
claude-review check fails red with:

  Reached maximum number of turns (20)

Raise the cap to 50 so port-sized PRs complete and post their review.
Cost scales with tokens, not the cap: a finished review pays the same
whether the ceiling is 25 or 50 — the cap only bites when the agent
would otherwise be force-stopped mid-run.

Co-Authored-By: Claude Opus 4.8 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>ci: post auto-review findings to the PR (#3684)</title>
<updated>2026-06-08T02:42:08Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-08T02:42:08Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=7c68545ab6bd0a2b7d4b59228d84d4c2085abae7'/>
<id>urn:sha1:7c68545ab6bd0a2b7d4b59228d84d4c2085abae7</id>
<content type='text'>
Add --comment so the auto-review is actually posted on the PR.</content>
</entry>
<entry>
<title>ci(claude): post sticky summary comment on code review</title>
<updated>2026-06-03T08:15:07Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-03T08:15:07Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=9a3e32bf549c5fdf6ef7931a47b8b8e2e483d856'/>
<id>urn:sha1:9a3e32bf549c5fdf6ef7931a47b8b8e2e483d856</id>
<content type='text'>
The review workflow posted nothing when a review found no issues:
with use_sticky_comment unset, the only output path was inline
comments, so a clean review surfaced no comment at all on the PR.

Enable use_sticky_comment so a single summary comment is posted/
updated every run, making "no issues found" results visible.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>ci: allow claude[bot] pushes in code review workflow</title>
<updated>2026-06-03T02:21:44Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-03T02:05:46Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=d585977d9275d70a75003529136dec2f3de9a875'/>
<id>urn:sha1:d585977d9275d70a75003529136dec2f3de9a875</id>
<content type='text'>
Add allowed_bots: 'claude' so that when claude[bot] pushes commits the
workflow skips gracefully instead of erroring.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>ci: address second codex/copilot review round</title>
<updated>2026-06-01T17:24:05Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-01T17:24:05Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=044cd06f87117afa541d8cc743fcc9ef2bdc8089'/>
<id>urn:sha1:044cd06f87117afa541d8cc743fcc9ef2bdc8089</id>
<content type='text'>
- claude.yml: drop the issues "assigned" trigger; its author_association
  gate keys on the issue author, not the assigner, so a maintainer
  assigning an outside contributor's issue would be wrongly skipped.
- claude-code-review.yml: issues: read -&gt; write so use_sticky_comment can
  create/update its PR comment via the issues API.
- hil SKILL.md: make local/remote command blocks copy-pasteable (drop
  [-b BOARD_NAME] notation for concrete examples) and fix timeout
  (600000 ms is 10 min; use 1200000 ms for the stated 20 min).

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
