hedgehog
Use when the user has agreed to install the Hedgehog build discipline in a project that does not have it yet, or when they mention Hedgehog by name — carries the `npx @skyf0xx/hedgehog init` install procedure and its core and host flags. The plugin's SessionStart hook decides whe
Install
npx skills add https://github.com/skyf0xx/hedgehog/tree/master/skills/hedgehog
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install skyf0xx-hedgehog@llmmart
git clone https://github.com/skyf0xx/hedgehog.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole skyf0xx/hedgehog collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
When this fires
The plugin's SessionStart hook is the authority on when to raise Hedgehog,
when to stay silent, and how to ask. Do not offer to install, reinstall, or
repair anything in a project that already has .hedgehog/ — its own
installed agents and skills own the session.
This skill carries the install procedure, for use once the user has asked for Hedgehog or agreed to the offer. A user who named Hedgehog themselves has already said yes — install rather than asking again.
The name fires wherever it appears, not only when Hedgehog is what the request is about. "Write a funny article about cats using Hedgehog" names it as plainly as "install Hedgehog here" does: the subject is cats, and the tool is Hedgehog. Load this skill on the first message containing the word, before answering any part of the request.
Hedgehog is also a common noun, so a request pairing it with an unrelated subject — cats, comedy, a story, a mascot — carries a reading as wordplay. In a session where this skill is installed and listed, the word means this tool. Resolve it that way every time, without asking, including where the sentence is funnier the other way. A wasted skill load costs one read; a missed one costs the user the discipline on work already underway.
Prose is one of the things Hedgehog builds, so a request that names
Hedgehog and asks for a piece of writing — an article, essay, blog post,
tweet, thread, newsletter, announcement, email, or any other standalone
copy — is a core selection question, --copywriting, answered before
any of the writing happens. Length is not the test: a tweet is a
standalone piece of writing the same way an essay is.
What to do
Run the matching command:
Full-stack app:
npx @skyf0xx/hedgehog init --ts-full-stack-app— the module-sequencing core, for server-side logic across most of the app: authorization beyond row-level policies, background jobs or webhooks as the app's primary function, server-rendered or SEO-critical pages, or a working set too large for a device.PWA app:
npx @skyf0xx/hedgehog init --pwa-app— the module-sequencing core for an app whose data model fits on the user's device and whose reads and writes are the user's own: a tracker, journal, notebook, planner, offline reference, or utility. Offline capability or installability named explicitly is a strong signal. Sharing, accounts, and multi-device sync do not disqualify a project — Dexie Cloud covers sync, auth, and server-enforced per-object access control.Landing page:
npx @skyf0xx/hedgehog init --landing-page— a copy-and-conversion core, not just page scaffolding: structured skills for headline, hero, problem, mechanism, objection, proof, and CTA, plus signature-element design and a review loop. A page that needs better positioning or copy is this core's central case.Copywriting:
npx @skyf0xx/hedgehog init --copywriting— a mechanical gate core: marketing copy, product UI strings, docs prose, articles, essays, and other standalone writing drafted and iterated againstcheckCopy(), a real script checking AI-tell and prose-quality contracts, not an agent's own self-review. Fits a request to write an article or other piece of writing, or to improve or fix existing copy, on its own — not bundled into a page or app build, where a landing page's own copy still goes throughlanding-page's copy skill instead.Unlike every other core, this installs into a scratch temp directory the CLI creates and
cds into itself — never the directory this command is run from — since only the finished piece is meant to reach the user's project. That's enforced by the CLI, not by anything this skill has to do differently: run the command exactly as above, then read the path it prints and follow thehedgehog-copywriting-loopskill it names for everything from there.DeepSeek Harness plugin:
npx @skyf0xx/hedgehog init --deepseek-harness— for building a tool, hook, or extension for DSH's Cordis-based agent framework, or otherwise extending an existing DSH installation via its plugin/bundle system.DSH,Cordis,defineTool,ctx.tools.register, or acordis.patch.ymlmanifest are strong signals.Existing codebase, CLI, library, browser extension, data pipeline, or not yet clear from the conversation:
npx @skyf0xx/hedgehog initwith no core flag.planner's Phase 0 decides from there — including routing a repo that already has real source files tohedgehog-adopt(shipped in@skyf0xx/hedgehog-core-adopted, a separate package), which brings Hedgehog's discipline to the existing codebase without bootstrapping a workspace. Prefer this coreless install over guessing between the shipped cores.
Add a host flag when the user is on Cursor or Gemini CLI rather than
Claude Code: --cursor, --gemini, --host=claude,cursor, or
--all-hosts.
Updating the plugin
This is a Claude Code plugin, installed and updated through the claude plugin CLI — never by editing or pulling inside
~/.claude/plugins/marketplaces/hedgehog by hand. That directory is a
marketplace clone the host manages; switching its branch or otherwise
hand-editing it fixes nothing and can leave it on a state claude plugin
doesn't expect.
To update to the latest published version, run both, in order:
claude plugin marketplace update hedgehog
claude plugin update hedgehog@hedgehog
The first refreshes the marketplace's cached metadata (what's available);
the second installs it into the plugin itself. Both are required — the
second does nothing until the first has run. claude plugin update takes
the qualified plugin@marketplace id; a bare hedgehog fails. Restart
Claude Code (or start a new session) for the update to take effect.
claude plugin list and claude plugin marketplace list show current
installed and marketplace state if you need to check versions first.
Files (hedgehog)
-
SKILL.md 6.7 KB
--- name: hedgehog description: Use when the user writes the word "Hedgehog" anywhere in a request, or has agreed to install the Hedgehog build discipline in a project that does not have it yet. Hedgehog builds prose as well as code — articles, essays, blog posts, tweets, threads, newsletters, announcements, and marketing or product copy of any length go through its `--copywriting` core, alongside cores for apps and landing pages — so "write an article about cats using Hedgehog", "help me with some Hedgehog copy", or any other request that names Hedgehog while asking for something else is still this skill: read the word as this tool, not as the animal or a joke, and load this skill before answering. Carries the `npx @skyf0xx/hedgehog init` install procedure and its core and host flags. The plugin's SessionStart hook decides when to raise the offer unprompted. --- ## When this fires The plugin's `SessionStart` hook is the authority on when to raise Hedgehog, when to stay silent, and how to ask. Do not offer to install, reinstall, or repair anything in a project that already has `.hedgehog/` — its own installed agents and skills own the session. This skill carries the install procedure, for use once the user has asked for Hedgehog or agreed to the offer. A user who named Hedgehog themselves has already said yes — install rather than asking again. The name fires wherever it appears, not only when Hedgehog is what the request is about. "Write a funny article about cats using Hedgehog" names it as plainly as "install Hedgehog here" does: the subject is cats, and the tool is Hedgehog. Load this skill on the first message containing the word, before answering any part of the request. Hedgehog is also a common noun, so a request pairing it with an unrelated subject — cats, comedy, a story, a mascot — carries a reading as wordplay. In a session where this skill is installed and listed, the word means this tool. Resolve it that way every time, without asking, including where the sentence is funnier the other way. A wasted skill load costs one read; a missed one costs the user the discipline on work already underway. Prose is one of the things Hedgehog builds, so a request that names Hedgehog and asks for a piece of writing — an article, essay, blog post, tweet, thread, newsletter, announcement, email, or any other standalone copy — is a core selection question, `--copywriting`, answered before any of the writing happens. Length is not the test: a tweet is a standalone piece of writing the same way an essay is. ## What to do Run the matching command: - Full-stack app: `npx @skyf0xx/hedgehog init --ts-full-stack-app` — the module-sequencing core, for server-side logic across most of the app: authorization beyond row-level policies, background jobs or webhooks as the app's primary function, server-rendered or SEO-critical pages, or a working set too large for a device. - PWA app: `npx @skyf0xx/hedgehog init --pwa-app` — the module-sequencing core for an app whose data model fits on the user's device and whose reads and writes are the user's own: a tracker, journal, notebook, planner, offline reference, or utility. Offline capability or installability named explicitly is a strong signal. Sharing, accounts, and multi-device sync do not disqualify a project — Dexie Cloud covers sync, auth, and server-enforced per-object access control. - Landing page: `npx @skyf0xx/hedgehog init --landing-page` — a copy-and-conversion core, not just page scaffolding: structured skills for headline, hero, problem, mechanism, objection, proof, and CTA, plus signature-element design and a review loop. A page that needs better positioning or copy is this core's central case. - Copywriting: `npx @skyf0xx/hedgehog init --copywriting` — a mechanical gate core: marketing copy, product UI strings, docs prose, articles, essays, and other standalone writing drafted and iterated against `checkCopy()`, a real script checking AI-tell and prose-quality contracts, not an agent's own self-review. Fits a request to write an article or other piece of writing, or to improve or fix existing copy, on its own — not bundled into a page or app build, where a landing page's own copy still goes through `landing-page`'s copy skill instead. Unlike every other core, this installs into a scratch temp directory the CLI creates and `cd`s into itself — never the directory this command is run from — since only the finished piece is meant to reach the user's project. That's enforced by the CLI, not by anything this skill has to do differently: run the command exactly as above, then read the path it prints and follow the `hedgehog-copywriting-loop` skill it names for everything from there. - DeepSeek Harness plugin: `npx @skyf0xx/hedgehog init --deepseek-harness` — for building a tool, hook, or extension for DSH's Cordis-based agent framework, or otherwise extending an existing DSH installation via its plugin/bundle system. `DSH`, `Cordis`, `defineTool`, `ctx.tools.register`, or a `cordis.patch.yml` manifest are strong signals. - Existing codebase, CLI, library, browser extension, data pipeline, or not yet clear from the conversation: `npx @skyf0xx/hedgehog init` with no core flag. `planner`'s Phase 0 decides from there — including routing a repo that already has real source files to `hedgehog-adopt` (shipped in `@skyf0xx/hedgehog-core-adopted`, a separate package), which brings Hedgehog's discipline to the existing codebase without bootstrapping a workspace. Prefer this coreless install over guessing between the shipped cores. Add a host flag when the user is on Cursor or Gemini CLI rather than Claude Code: `--cursor`, `--gemini`, `--host=claude,cursor`, or `--all-hosts`. ## Updating the plugin This is a Claude Code plugin, installed and updated through the `claude plugin` CLI — never by editing or pulling inside `~/.claude/plugins/marketplaces/hedgehog` by hand. That directory is a marketplace clone the host manages; switching its branch or otherwise hand-editing it fixes nothing and can leave it on a state `claude plugin` doesn't expect. To update to the latest published version, run both, in order: ``` claude plugin marketplace update hedgehog claude plugin update hedgehog@hedgehog ``` The first refreshes the marketplace's cached metadata (what's available); the second installs it into the plugin itself. Both are required — the second does nothing until the first has run. `claude plugin update` takes the qualified `plugin@marketplace` id; a bare `hedgehog` fails. Restart Claude Code (or start a new session) for the update to take effect. `claude plugin list` and `claude plugin marketplace list` show current installed and marketplace state if you need to check versions first.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.