skills: unpublished Guard adapters (TanStack, JS Strands, Python CAS, Python OpenAI Agents) - #57
Conversation
… Python OpenAI Agents) Fold remaining unpublished Guard teaching onto main: TanStack AI JS, JS Strands Agents, Python Claude Agent SDK, and Python OpenAI Agents. Leave CMA (#56) and client IP (#54) on their own PRs. Do not retread #55 (Google ADK JS + Python Strands). Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
There was a problem hiding this comment.
Arcjet Review — 🟢 Low Risk
Decision: Approved
Rationale: Documentation-only change to three Markdown files in the arcjet skill (SKILL.md and two reference files). Adds teaching content for four unpublished Guard adapters (TanStack AI, JS Strands Agents, Python Claude Agent SDK, Python OpenAI Agents). No code paths, no secrets, no dependency/CI/infra changes. Content matches the PR description precisely: adapter names, git SHA pins, PR references, and docs URLs align. Internal cross-references in SKILL.md (JS wrapper list, Python wrapper list, Common misclassifications, denial envelopes section) are all updated consistently for the four new adapters. Size is at the ~500-line threshold, but the changes are prose-only and repetitive in structure.
Summary of Changes
Adds documentation for four unpublished Arcjet Guard adapters — TanStack AI (JS), Strands Agents (JS), Claude Agent SDK (Python), and OpenAI Agents (Python) — to arcjet/SKILL.md, arcjet/references/guards_javascript.md, and arcjet/references/guards_python.md. Each adapter gets a full teaching section (exports, gotchas, code example, git SHA pin) plus updates to the aggregate lists, framework tables, denial-envelope table, and 'common misclassifications' notes. No code changes.
Notes
Diff is ~500 lines and near the size threshold, but content is documentation-only and structured repetitively per adapter, which keeps reviewability high. Worth a human spot-check that the four git SHA pins (d730d57a, f3a07ee6, 9ea0b06a, cafe6a66) match the referenced upstream PRs before merge, since those are the load-bearing facts in the teaching content.
Review: d0f200c5 | Model: anthropic/claude-opus-4-7 | Powered by Arcjet Review
… adapters #54 landed on main after this branch forked. Resolve the SKILL.md conflict by keeping both the client-IP warning-bypass gotcha and the TanStack / JS Strands denial-envelope teaching. Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
Address review nits: teaching pins as a scanable list (like JS) and a nested pick-the-helper list in SKILL.md instead of one long sentence. Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
Rebase CMA teaching onto main after #55, #54, and #57. Keep hosted Claude Managed Agents wrappers (JS + Python) without dropping TanStack AI, JS Strands, Python Claude Agent SDK, Python OpenAI Agents, Google ADK, Python Strands, or client-IP provenance. No plugin vendoring. Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
Teach remaining unpublished Guard adapters on current
main. This is not Claude Managed Agents (#56 stays open) and not Google ADK JS / Python Strands (#55 already merged).Rebased/merged
origin/mainafter #54 (client IP) landed. Kept #54's provenance teaching plus this PR's Guard adapters.Included
cursor/teach-js-tanstack-ai-guard@bdd5887@arcjet/guardd730d57a(arcjet-js#6260)david/cursor/teach-js-strands-agents-guard-ff60@290c6ae@arcjet/guardf3a07ee6(arcjet-js#6251)david/cursor/teach-python-claude-agent-sdk-guard-4d7e@24e3451arcjet9ea0b06acursor/teach-python-openai-agents-guard@a50d1ffarcjetcafe6a66(arcjet-py#226)Files:
arcjet/SKILL.md,arcjet/references/guards_javascript.md,arcjet/references/guards_python.md. Request IP files from #54 come along via merge ofmain. No plugin vendoring.Already on main (not retread)
@arcjet/guard/google-adk/v2, pin41ef3681) + Python Strands Agents (arcjet.guard.strands_agents, pina6308061)main; kept in this merge)@arcjet/guard/claude-agent-sdk/v0) and JS OpenAI Agents teaching — not overwrittenLeft on their own PRs (not folded)