Sync vendored skills with skills main (677f177 / #55–#58) - #21
Conversation
Vendor plugins/arcjet/skills/ from arcjet/skills main at 677f177b (skills#55–#58, plus #54). Adds dedicated Python Guard adapter skills and updates the shared arcjet skill. dprint applied after copy; Node version-range || escapes preserved. Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
There was a problem hiding this comment.
Arcjet Review — 🟢 Low Risk
Decision: Checked
Rationale: This PR is a documentation-only sync of vendored Markdown skill files from the upstream arcjet/skills repo at commit 677f177. It updates SKILL.md guidance for the Arcjet skill and adds six new Python integration skill dirs. No executable code, no dependencies, no CI, no infrastructure, no migrations. The description accurately enumerates the upstream PRs folded in and the new directories. No hardcoded secrets (only references to ARCJET_KEY as an env var, matching correct guidance). Size is large (~2000 diff lines) but content is well-scoped Markdown documentation that mirrors an upstream source of truth, so review risk is bounded.
Summary of Changes
Syncs the vendored plugins/arcjet/skills/ tree with arcjet/skills main at 677f177. Rewrites arcjet/SKILL.md and its JS/Python/Go reference files to add: JS Google ADK v2, TanStack AI v0, JS Strands Agents v1, JS Claude Managed Agents v0 guidance; expanded client-IP provenance teaching across JS/Python/Go request references; and dedicated adapter skills for Python LangChain, CrewAI, OpenAI Agents, Claude Agent SDK, Claude Managed Agents, and Strands Agents. Adds a CHANGELOG entry describing the sync.
Notes
PR exceeds the 500-line size threshold (roughly ~2k diff lines), but the content is entirely vendored Markdown documentation copied from a specified upstream SHA, so automated review remains reliable. Spot-checked that the new skill dirs listed in the description match the Files Changed list (six integrate-arcjet-guard-*-py SKILL.md files), that the arcjet/SKILL.md routing table cross-references them correctly, and that no hardcoded credentials were introduced (only ARCJET_KEY env-var references, which match the documented pattern).
The AI assessed this PR as approvable, but the trust level (1) does not allow auto-approval. A human reviewer must approve this PR.
Review: 81b8a047 | Model: anthropic/claude-opus-4-7 | Powered by Arcjet Review
Summary
Updates the vendored skill tree to match current
arcjet/skillsmainat677f177b844e3368a60b75381b90211a300e4e8a(arcjet/skills#58, merged 2026-09-03).That SHA is skills
mainafter:This is a follow-up to #20, which synced
116d08b5(arcjet/skills#51).Files were fetched from GitHub (cloned
arcjet/skillsat that SHA) rather than rewritten by hand. After copy, this repo’sdprintformatter was applied so CI’s format check passes.What changed
Canonical copy is
plugins/arcjet/skills/(skills/is the inbound symlink). Only that tree was updated.New skill dirs (from skills#58)
Skills
mainat this SHA has no JSintegrate-arcjet-guard-*dirs. JS adapters stay inarcjet/. Added:integrate-arcjet-guard-langchain-pyintegrate-arcjet-guard-crewaiintegrate-arcjet-guard-openai-agents-pyintegrate-arcjet-guard-claude-agent-sdk-pyintegrate-arcjet-guard-claude-managed-agents-pyintegrate-arcjet-guard-strands-agents-pyShared Python Guard fundamentals remain in
arcjet/. Thearcjetskill routes to these dedicated skills.Also included from #55 / #54 / #57 / #56
@arcjet/guard/google-adk/v2:guardPlugin+googleAdkContext)@arcjet/guard/tanstack-ai/v0:guardMiddleware+tanstackAiContext)@arcjet/guard/strands-agents/v1:guardTool+guardHooks+strandsAgentContext)@arcjet/guard/claude-managed-agents/v0)No extra remote-policy teaching (
actor/inputs/policyInput). Existing remote-rules mentions in the copied files were left as they are.What was left alone
Deprecated alias skill directories are not generated from the canonical skill. They are standalone deprecation stubs (
add-request-protection,add-guard-protection,protect-route,add-ai-protection) and were left unchanged.No marketplace catalog or plugin-manifest work. Hosts discover skills by scanning
plugins/arcjet/skills/(./skills/in the Codex manifest).Formatter note
dprinttable alignment treats unescaped||inside backticks as a column break (same issue as prior sync PRs). The Node version-range cells keep the escapes (\|\|) so the upstream ranges survive formatting:Node >=22.21.0 <23 || >=24.5.0(requests + guards JS tables)Test plan
dprint checkbash scripts/validate.shmainat677f177(arcjet/+ the sixintegrate-arcjet-guard-*dirs; no JS integrate dirs on skills main)\|\|escapes survived dprintactor/inputs/policyInputteaching