"Maintainer-facing drift-check and upstream sync for the firecrawl plugin's wrapper skill — tracks the firecrawl-cli npm release and the upstream SKILL.md source. Run only from a working-tree checkout. Actions: --check (default, read-only drift report) and the bare full update (gated npm upgrade + advisory skill-content integration). Not for consumers — consumers update via /plugin marketplace update."
Resources
3Install
npx skillscat add melodic-software/claude-code-plugins/plugins-firecrawl-skills-update Install via the SkillsCat registry.
Pre-computed context
Last upstream sync: !grep -m1 '^- Last sync:' "${CLAUDE_SKILL_DIR}/UPSTREAM.md" 2>/dev/null | sed 's/^- //' || echo "never — run this skill with --check"
Purpose
Keep the /firecrawl:firecrawl wrapper skill in sync with its two upstream dependencies: thefirecrawl-cli npm package (ships new versions roughly weekly) and the upstream canonical skill athttps://www.firecrawl.dev/agent-onboarding/SKILL.md (evolves alongside it). The wrapper skill
owns its content — upstream is a source, not a parallel install.
Maintainer-facing: run this in a working-tree checkout of this plugin (the marketplace clone, or a
directory loaded via --plugin-dir), never against an installed marketplace copy — the apply path
rewrites UPSTREAM.md inside this skill directory, and consumers receive updates through/plugin marketplace update. Drift detection uses the sidecar UPSTREAM.md (SHA tracking): upstreamSKILL.md is fetched fresh on --check and hashed; the sidecar records the prior hash for diff. No
vendored snapshot is kept. The action is advisory — the two approval gates in Safety below keep every
mutation behind an explicit yes. Do NOT auto-fire this skill — it is maintainer-invoked only.
Invocation
| Invocation | Effect |
|---|---|
/firecrawl:update --check (default) |
Read-only drift report. Fetches upstream + npm metadata, compares against UPSTREAM.md. No mutations. |
/firecrawl:update |
Full update pipeline with two approval gates |
When to invoke, the modes, and the full update pipeline: read context/update-flow.md. The
preservation invariants and safety guarantees below stay inline.
Preservation rules (for any skill-content integration)
These are the invariants an integration run must keep in the /firecrawl:firecrawl wrapper skill,
in this exact form:
- Single-line YAML
descriptionwithUse when:and skip guidance phrase lists - Frontmatter fields:
description,argument-hint,user-invocable: true,disable-model-invocation: false(noname— it defaults to the directory) - Pre-computed context block at top, using
firecrawl --statusfor the health line - "Core pattern — write to disk, Read selectively" rule: every non-trivial example writes to a
mktemp-created spill file with-o,Reads selectively, and the spill file is removed after the Read (kept only when the user asked for the file itself) - "When NOT to use this skill" section with the doc-site-reader-first and synthesis-tool escalation ordering
- The pointer to this maintainer update skill (
/firecrawl:update) — the wrapper skill delegates its update/drift concern here rather than carrying it inline - Gotchas section with the "don't run
firecrawl init, don't runfirecrawl login" prohibitions - Imperative tone, no marketing language
The helper at scripts/update.sh does the deterministic parts (fetch, SHA, diff); this skill body
does the Claude-facing decisions (integration and approval). For a non-trivial content delta, the/skill-creator:skill-creator plugin skill (if installed) can drive the rewrite under the
preservation rules above; otherwise inline-edit.
Safety
Nothing destructive happens without explicit approval. Four guarantees:
- Two approval gates. The update action never runs
npm install -gor rewrites SKILL.md
without asking first. Gate 1 covers the binary install; Gate 2 covers the skill content. EitherNoexits cleanly. - Atomic fetching.
update.sh --checkcompletes all network I/O (npm metadata + upstream
fetch) before printing anything. A mid-run 404 or DNS failure leaves state untouched — no partial
write. - Rollback path.
UPSTREAM.mdrecords the previous CLI version before each upgrade. If a new
version breaks something, the rollback is one line:npm install -g firecrawl-cli@<previous-version>.
Revert the plugin PR for skill-content changes. - Post-install verification. After
npm install -g, the flow re-runsfirecrawl --statusand
diffsfirecrawl --helpagainst the pre-install snapshot. A removed command or auth failure is
flagged before the skill-content integration step begins.
Network requirement. The update path needs registry.npmjs.org and www.firecrawl.dev
reachable. Some sandboxed/cloud egress proxies intermittently 503 with "DNS cache overflow" — retry
after ~30s, or run the update from an unrestricted session.
Idempotency. Running the update action with --check twice with no upstream change: "no drift,
current." Running a full update when already at latest: reports "no drift" and exits before Gate 1.
Safe to schedule or re-run.
What this skill does NOT do
- Does not run against an installed marketplace copy — maintainer-facing; the apply path writes
UPSTREAM.mdin this skill directory. Consumers update via/plugin marketplace update. - Does not auto-rewrite the wrapper SKILL.md —
update.showns only the deterministic record
(UPSTREAM.md); skill-content integration is Claude's step behind Gate 2, governed by the
Preservation rules above. - Does not run
firecrawl initorfirecrawl login— those install a parallel shadow copy /
second auth source of truth. This plugin IS the maintained integration.
Related
UPSTREAM.md(this skill root) — sync-state anchor (last sync date, upstream SHA, previous CLI
version for rollback). Updated only by the update action.scripts/update.sh— deterministic helper invoked by the update flow (npm version lookup, upstream
fetch + SHA, help diff). Regression tests:scripts/update.test.sh.context/update-flow.md— when to invoke, the modes, and the full pipeline.- The user-facing wrapper skill this maintains:
/firecrawl:firecrawl. - Firecrawl docs: https://docs.firecrawl.dev/sdks/cli. Upstream skill source: https://www.firecrawl.dev/agent-onboarding/SKILL.md.