Skip to content

Sync vendored skills with skills main (7d0b141 / #66) - #26

Merged
davidmytton merged 2 commits into
mainfrom
david/cursor/vendor-skills-7d0b141-0bed
Sep 17, 2026
Merged

davidmytton merged 2 commits into
mainfrom
david/cursor/vendor-skills-7d0b141-0bed

Conversation

@davidmytton

@davidmytton davidmytton commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Updates the vendored skill tree to match current arcjet/skills main at 7d0b141f71636ff2d466dd2dff448d242f9df3b2 (arcjet/skills#66, merged 2026-09-17).

That SHA is skills main after:

This 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 vendors 7d0b141 (everything #25 has, plus #66). Do not push onto rei’s branch.

Files were fetched from GitHub (cloned arcjet/skills at that SHA) rather than rewritten by hand. After copy, this repo’s dprint formatter 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 GuardTool for a single tool, GuardTools and GuardMiddleware for every tool an agent can see plus inbound screening, and arcjet.GuardAction for any Go function outside the framework. The arcjet router 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-go v1.0.0 and github.com/arcjet/arcjet-go/agentframework v0.1.0 were tagged on 2026-09-17, so go get ...@latest resolves 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.

WithCorrelationId became WithCorrelationID, with the CorrelationId and DecisionId field spellings following.

Published @arcjet/guard 1.13.0 / Python arcjet 1.2.0 (skills#66)

  • “Currently” / “last verified” notes moved to those versions. Floors such as “ships in 1.12.0” stay, because those releases are still where those adapters first appeared.
  • Label grammar: underscores allowed; uppercase rejected (the camelCase MCP-name trap). The claim that rate-limit bucket names follow the same rule is dropped.
  • Every JS wrapper takes actor / inputs from 1.13.0, not only vercel-ai/v7.
  • Label pre-check: validateGuardLabel / validate_guard_label, ArcjetInvalidLabelError, AJ1023. A label the service will not match reads as ALLOW with hasFailedOpen() 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 mentioned actor / inputs (guards_js_langchain.md, guards_js_vercel_ai.md).

Skills main still has no JS integrate-arcjet-guard-* dirs. JS adapters stay in arcjet/.

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

dprint table 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 check
  • bash scripts/validate.sh
  • Vendored skill dirs match skills main at 7d0b141 (arcjet/ + the seven integrate-arcjet-guard-* dirs; no JS integrate dirs on skills main; evals/ not copied)
  • Confirmed Node version-range \\|\\| escapes survived dprint
  • Confirmed alias skill directories unchanged
  • CI lint + validate jobs
Open in Web Open in Cursor 

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>
@davidmytton
davidmytton marked this pull request as ready for review September 17, 2026 11:12

@arcjet-review arcjet-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment thread plugins/arcjet/skills/arcjet/SKILL.md Outdated
Comment thread plugins/arcjet/skills/integrate-arcjet-guard-agent-framework-go/SKILL.md Outdated
…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>
@davidmytton
davidmytton merged commit 1c0087b into main Sep 17, 2026
4 checks passed
@davidmytton
davidmytton deleted the david/cursor/vendor-skills-7d0b141-0bed branch September 17, 2026 11:36
@arcjet-review arcjet-review Bot removed the needs review Awaiting human review label Sep 17, 2026
davidmytton added a commit that referenced this pull request Sep 17, 2026
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants