The rewritten hook regex already handles all case/ordering variants of
rm flags via case-insensitive chained grep checks. Remove the 16
enumerated permutations from deny rules. Drop overly broad * | sh and
* | zsh rules that would block legitimate pipes. Revert unnecessary
case-insensitive flag on git push hook (git is always lowercase).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Deny rules previously only blocked `rm -rf` and `rm -fr` (lowercase, combined
flags only). All other flag forms bypassed both security layers silently.
Expand deny rules to cover:
- All case combinations of combined short flags: -Rf, -rF, -RF, -fR, -Fr, -FR
- All orderings of separated short flags: -r -f, -r -F, -R -f, -R -F and
their reverses (-f -r, -f -R, -F -r, -F -R)
- GNU long-form flags: --recursive, --recursive --force, --force --recursive
- Pipe-to-shell via sh and zsh: * | sh, * | zsh
- Process substitution: bash <(curl *)
- Spaced pipe variant for existing rules: curl *| bash*, wget *| bash*
Harden PreToolUse hook regex:
- Old regex required combined lowercase flags only (-rf / -fr pattern)
- New regex uses three chained case-insensitive grep checks:
1. Confirm rm is the actual command (not a substring of another word or arg)
2. Detect any recursive flag (-r, -R, -[flags]r, --recursive)
3. Detect any force flag (-f, -F, -[flags]f, --force)
- Handles commands chained with ; && || |
- Verified against 25 test cases (19 must-block, 6 must-allow)
- Add cross-repo navigation links matching trailofbits/skills format
- Note shared Exa API key in 1Password for employees
- Move parallel dispatch paragraph above command examples and shorten
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Commands are parameterized procedures. Skills encode expertise.
Agents are specialists. Remove overlapping "repeated workflow"
framing from the skills section so each concept has a clear role.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Writing and publishing skills is a workflow activity, not a one-time
configuration task. Move both subsections from Configuration > Plugins
and Skills into Usage, between Commands and Recommended Skills.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Usage is a distinct section from Configuration, not subordinate to it.
Bump Usage and all its subsections up one heading level so it renders
as a peer of the document title. Remove Granola from mcp-template.json
since it's not a core recommendation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The agent-browser CLI ships its own marketplace with a first-party skill
that Claude needs to understand the ref lifecycle and command API. Placed
the install instructions in Configuration > Plugins and Skills where
other marketplace setup lives, with a cross-reference from the Usage >
Web Browsing section.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Expand "Writing custom skills" into "Writing skills and agents" with
guidance on when to use agents over skills, how to encode expert
personas as subagents, and the plugin-dev tooling for both.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move project-level CLAUDE.md and fast mode from setup/config into
usage where they fit better as per-project and per-session concerns.
Add personalization section for spinner verbs. Update statusline
sample output, global CLAUDE.md description, sandbox docs, marketplace
descriptions, and skill authoring guidance to match current state.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Anthropic official plugins (frontend-design, pr-review-toolkit) to
recommended skills. Add recommended MCP servers section with Granola,
slither-mcp, pyghidra-mcp, and Serena. Move Granola from core MCP
config to the new section.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>