Sync vendored skills with skills main (7d0b141 / #66) - #26
Conversation
Vendor-sync plugins/arcjet/skills/ from arcjet/skills main at 7d0b141f71636ff2d466dd2dff448d242f9df3b2 (skills#66). Includes skills#62 (integrate-arcjet-guard-agent-framework-go), #64, and #65. Published @arcjet/guard 1.13.0 / Python arcjet 1.2.0: label grammar allows underscores, every JS wrapper takes actor/inputs, and the validateGuardLabel pre-check lands. Apply this repo's dprint formatter after the copy. Supersedes plugin#25 (b7514f09). Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
There was a problem hiding this comment.
Arcjet Review — 🟢 Low Risk
Decision: Checked
Rationale: Documentation-only sync of the vendored arcjet/skills tree at commit 7d0b141. All changes are markdown files under plugins/arcjet/skills/ plus a CHANGELOG.md entry describing the sync. No code, config, build, dependency, CI, or infrastructure changes. Content is internally consistent (version bumps from 1.12.0→1.13.0 for @arcjet/guard and 1.1.0→1.2.0 for Python arcjet, Go SDK from v1.0.0-rc.2→v1.0.0, new Go Microsoft Agent Framework skill, label grammar update to allow underscores) and the diff matches what the description claims. No secrets, no user-input handling, no security-sensitive code. The PR is ~1000 lines but the vast majority is documentation prose in tables and prose sections; automated review is reliable for this kind of content.
Summary of Changes
Syncs the vendored arcjet/skills tree to upstream main at 7d0b141: bumps documented SDK versions (@arcjet/guard 1.13.0, Python arcjet 1.2.0, Go arcjet-go v1.0.0), adds a new integrate-arcjet-guard-agent-framework-go skill, updates Go SDK references to remove pre-release pinning, updates label grammar (underscores now allowed, uppercase rejected), notes that all JS wrappers now accept actor/inputs from 1.13.0, and adds validateGuardLabel/validate_guard_label / ArcjetInvalidLabelError / AJ1023 label pre-check. Also renames Go CorrelationId/DecisionId to CorrelationID/DecisionID in examples. CHANGELOG updated accordingly.
Notes
PR is ~1000 lines but entirely markdown documentation; size threshold note is informational only, not a concern here. Security-review skill checklist was applied mentally: no code paths, no secrets (only the literal test key ajkey_test in an example, explicitly called out as a test literal), no input handling, no auth, no crypto. Nothing to flag.
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: d55e9fcb | Model: anthropic/claude-opus-4-7 | Powered by Arcjet Review
…uirement Separate framework symbols from the Import column in the Go skill table, and spell out that Go 1.26 is an agentframework module requirement while root arcjet-go stays at Go 1.25+. Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
Vendor the skill tree from arcjet/skills at c7bc1bb (skills#67). The two clarified files already matched plugin main via #26 review nits, so the copy + dprint produced no skill-file delta. Changelog records the new tip so the next sync does not reintroduce pre-#67 wording. Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
Summary
Updates the vendored skill tree to match current
arcjet/skillsmainat7d0b141f71636ff2d466dd2dff448d242f9df3b2(arcjet/skills#66, merged 2026-09-17).That SHA is skills
mainafter:@arcjet/guard1.13.0 / Pythonarcjet1.2.0This is a follow-up to #23, which synced
f8959e14.#25 can close as superseded once this lands. That PR vendors skills tip
b7514f09(#62 + #65). This PR vendors7d0b141(everything #25 has, plus #66). Do not push onto rei’s branch.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. Most of the upstream delta does not appear in this diff: the vendored tree stores formatted copies, so formatting-only paths collapsed to no-ops.What changed
Canonical copy is
plugins/arcjet/skills/(skills/is the inbound symlink). Only that tree was updated.New skill:
integrate-arcjet-guard-agent-framework-go(skills#62 + #65)For Go agents built on Microsoft Agent Framework. Covers
GuardToolfor a single tool,GuardToolsandGuardMiddlewarefor every tool an agent can see plus inbound screening, andarcjet.GuardActionfor any Go function outside the framework. Thearcjetrouter skill and the Go Guard reference route to it.The coverage test is attached to the policy it verifies. Deny by default asserts every tool comes back guarded; allow by default names the tools deliberately left unguarded and asserts they are the only ones.
Go SDK is a release, not a pre-release (skills#62)
github.com/arcjet/arcjet-gov1.0.0 andgithub.com/arcjet/arcjet-go/agentframeworkv0.1.0 were tagged on 2026-09-17, sogo get ...@latestresolves v1.0.0. The previous text told readers to pin@v1.0.0-rc.2, which would now send them to an older version than the default. The agent framework helpers are a separate module requiring Go 1.26; the root module stays on Go 1.25.WithCorrelationIdbecameWithCorrelationID, with theCorrelationIdandDecisionIdfield spellings following.Published
@arcjet/guard1.13.0 / Pythonarcjet1.2.0 (skills#66)actor/inputsfrom 1.13.0, not onlyvercel-ai/v7.validateGuardLabel/validate_guard_label,ArcjetInvalidLabelError,AJ1023. A label the service will not match reads asALLOWwithhasFailedOpen()false, so the SDKs now refuse one up front.Existing files updated in place:
arcjet/SKILL.md, Go request/guard references, JS/Python request + guard references, and the two JS adapter notes that mentionedactor/inputs(guards_js_langchain.md,guards_js_vercel_ai.md).Skills
mainstill has no JSintegrate-arcjet-guard-*dirs. JS adapters stay inarcjet/.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.evals/is not vendored.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.shmainat7d0b141(arcjet/+ the sevenintegrate-arcjet-guard-*dirs; no JS integrate dirs on skills main;evals/not copied)\\|\\|escapes survived dprint