<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/.github/workflows/claude.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.yml?h=master</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/.github/workflows/claude.yml?h=master'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-06-02T04:18:14Z</updated>
<entry>
<title>ci(claude): drop Bash allowlist entirely (Codex P1, round 2)</title>
<updated>2026-06-02T04:18:14Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-02T04:18:14Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=2fc46b690996f776e3b36bcaa9865e7d2a8f8c89'/>
<id>urn:sha1:2fc46b690996f776e3b36bcaa9865e7d2a8f8c89</id>
<content type='text'>
Codex correctly noted that allowing python3/python (and really cmake/make
too) is arbitrary code + network execution: a command allowlist cannot
contain a prompt-injected or malicious fork PR when this job holds the
OAuth secret + write token, and the review workflow directs fork PRs to
@claude.

The Bash allowlist was beyond the original scope (auto-commit/PR) anyway.
Remove it: Claude edits files and the action commits/opens the PR, and the
resulting commit is verified by the existing CircleCI matrix. Keep
use_commit_signing and --max-turns 30.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>ci(claude): scope Bash allowlist instead of wide-open (Codex P1)</title>
<updated>2026-06-02T03:42:39Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-02T03:42:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=6936cc630dfc0d125337e3f4f6e9322b503df3b2'/>
<id>urn:sha1:6936cc630dfc0d125337e3f4f6e9322b503df3b2</id>
<content type='text'>
Codex flagged that @claude can be summoned on a fork PR (the review
workflow even directs fork PRs here), so the checked-out PR content is
potentially attacker-controlled. Unrestricted Bash in this write-token +
OAuth-secret job let prompt injection steer Claude into arbitrary
shell/network commands.

Scope Bash to the repo's actual verification commands (cmake, ninja,
make, ctest, python/python3, pre-commit, clang-format, codespell, git).
This blocks the injection-to-arbitrary-command path while still letting
Claude build/test before committing. Building fork code itself is already
done by the existing CircleCI, so that surface is unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>ci(claude): enable @claude to fix bugs and commit from comments</title>
<updated>2026-06-02T03:38:09Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-02T03:38:09Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=b009ddb01232192538762f21371d65a4e6d04f14'/>
<id>urn:sha1:b009ddb01232192538762f21371d65a4e6d04f14</id>
<content type='text'>
Configure the @claude summon workflow so it can actually produce a
verified fix when asked in an issue/PR comment:

- use_commit_signing: bot commits show as Verified
- --allowedTools Bash: lets Claude build/test to verify the fix before
  committing (default allowlist blocks Bash). Safe because the job `if`
  gate restricts this to OWNER/MEMBER/COLLABORATOR.
- --max-turns 30: enough turns to investigate -&gt; fix -&gt; verify

Auto-commit/PR is already built into claude-code-action and the
required write permissions were already present, so no permission
changes are needed.

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>
<entry>
<title>ci: address codex/copilot review on claude workflows</title>
<updated>2026-06-01T17:16:54Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-01T17:16:54Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=1ea04f7fe67bac927848e9dfd3ce2f607e7b93d7'/>
<id>urn:sha1:1ea04f7fe67bac927848e9dfd3ce2f607e7b93d7</id>
<content type='text'>
- claude.yml: gate @claude on author_association (OWNER/MEMBER/COLLABORATOR)
  so the write-scoped token and OAuth secret are never issued for an
  untrusted commenter on this public repo (defense-in-depth).
- claude-code-review.yml: skip fork PRs in the job condition
  (head.repo.full_name == github.repository) since forks get no secrets
  and would only fail noisily; fix the misleading token comment; pass
  additional_permissions: actions: read so actions: read is effective.
- hil SKILL.md: reword hostname guidance, use full test/hil/* paths, and
  show an explicit CONFIG= assignment so the local command is runnable.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>ci: re-enable Claude PR review and harden auth/permissions</title>
<updated>2026-06-01T16:51:41Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-01T16:51:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=87f9cc01cfd3134594d196210d28ee590c7a5fc3'/>
<id>urn:sha1:87f9cc01cfd3134594d196210d28ee590c7a5fc3</id>
<content type='text'>
  - claude-code-review.yml: re-enable (drop `if: false`); switch from
    pull_request_target to pull_request so fork PRs never receive the
    OAuth token (avoids prompt-injection token leak). Auto-review on
    open/synchronize/reopen/ready_for_review, skip drafts, sticky comment.
  - claude.yml: grant contents/pull-requests/issues write so @claude can
    reply and push fixes; @claude is the on-demand path for fork PRs.
</content>
</entry>
<entry>
<title>chore(workflows): update GitHub Actions dependencies and improve membrowse error handling</title>
<updated>2026-03-12T08:48:49Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-03-12T08:48:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=2052111bac10fc3184b1dd9558fc1b9ab5c85ea4'/>
<id>urn:sha1:2052111bac10fc3184b1dd9558fc1b9ab5c85ea4</id>
<content type='text'>
update AGENTS.md with metrics compare
</content>
</entry>
<entry>
<title>fix trailing newline in workflow files to pass pre-commit</title>
<updated>2026-03-04T11:13:51Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-03-04T11:13:51Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=f021d5c1e1de5c1b47fcbdd6d8fb1eea70eafe61'/>
<id>urn:sha1:f021d5c1e1de5c1b47fcbdd6d8fb1eea70eafe61</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>"Claude PR Assistant workflow"</title>
<updated>2026-03-04T11:08:07Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-03-04T11:08:07Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=80a05cfcafbaa279c3b0e71d9c26bccaffe11bc4'/>
<id>urn:sha1:80a05cfcafbaa279c3b0e71d9c26bccaffe11bc4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>remove claude code workflow</title>
<updated>2025-10-03T04:05:39Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2025-10-03T04:05:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=e2dbf2bdd19f8e125f27223b874f9f8f68eb4f4c'/>
<id>urn:sha1:e2dbf2bdd19f8e125f27223b874f9f8f68eb4f4c</id>
<content type='text'>
</content>
</entry>
</feed>
