@skyf0xx/hedgehog 6.2.5 → 6.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/README.zh-CN.md +12 -0
- package/package.json +1 -1
- package/src/agents/bootstrap.md +1 -1
- package/src/agents/planner.md +44 -14
- package/src/db/plan.mjs +5 -5
- package/src/hosts/capabilities.mjs +1 -0
- package/src/hosts/gemini/gemini-extension.json +1 -1
- package/src/registry/cores.json +9 -0
- package/src/registry/index.mjs +6 -5
- package/src/skills/hedgehog-planning-intake/SKILL.md +7 -4
package/README.md
CHANGED
|
@@ -192,6 +192,18 @@ Bundle
|
|
|
192
192
|
Join
|
|
193
193
|
```
|
|
194
194
|
|
|
195
|
+
### Copywriting
|
|
196
|
+
|
|
197
|
+
Copy is drafted and revised against a mechanical gate instead of prompting alone:
|
|
198
|
+
|
|
199
|
+
``` text
|
|
200
|
+
Brief
|
|
201
|
+
↓
|
|
202
|
+
Draft ⇄ zod validation()
|
|
203
|
+
↓ pass
|
|
204
|
+
Ship
|
|
205
|
+
```
|
|
206
|
+
|
|
195
207
|
### Anything else
|
|
196
208
|
|
|
197
209
|
A CLI, a library, a browser extension, a data pipeline, etc. gets its build order.
|
package/README.zh-CN.md
CHANGED
package/package.json
CHANGED
package/src/agents/bootstrap.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bootstrap
|
|
3
|
-
description: Use once per invocation, at the start of a new Hedgehog project, to land the workspace for whichever core `planner` selected at Phase 0 — the first real workspace this project gets, since `init` with no explicit core flag lands the shared agents/skills/build-graph payload and leaves the workspace to bootstrap. Reads the chosen core's own bootstrap skill, installed from that core's package, and follows it: how many steps Bootstrap takes and what each one lands are that skill's to state, not this agent's. Not for per-phase/per-module work — that's the core's own loop skill and its agents. Skip entirely if the core's workspace already exists, per the already-ran check the core's bootstrap skill opens with.
|
|
3
|
+
description: Use once per invocation, at the start of a new Hedgehog project, to land the workspace for whichever core `planner` selected at Phase 0 — the first real workspace this project gets, since `init` with no explicit core flag lands the shared agents/skills/build-graph payload and leaves the workspace to bootstrap. Reads the chosen core's own bootstrap skill, installed from that core's package, and follows it: how many steps Bootstrap takes and what each one lands are that skill's to state, not this agent's. Not for per-phase/per-module work — that's the core's own loop skill and its agents. Skip entirely if the core's workspace already exists, per the already-ran check the core's bootstrap skill opens with. Never dispatched for copywriting — that core ships no bootstrap skill; `init --copywriting` lands its whole workspace at install time, and its own planning intake runs `hedgehog plan` directly instead of handing off here.
|
|
4
4
|
model: sonnet
|
|
5
5
|
color: green
|
|
6
6
|
tools: Read, Glob, Grep, Edit, Write, Bash
|
package/src/agents/planner.md
CHANGED
|
@@ -21,7 +21,9 @@ You run on two paths, and Workflow step 2 decides which:
|
|
|
21
21
|
|
|
22
22
|
- **First run** (the graph holds no intents): **Phase 0 — core
|
|
23
23
|
selection**, the gate below, then **Phase 1 — planning intake** in the
|
|
24
|
-
shape the chosen core defines, then the `bootstrap` handoff
|
|
24
|
+
shape the chosen core defines, then the `bootstrap` handoff — except
|
|
25
|
+
copywriting, which has no bootstrap skill and whose planning intake
|
|
26
|
+
runs `hedgehog plan` itself; see step 9.
|
|
25
27
|
- **Re-entry** (the graph already holds intents): new scope entering play
|
|
26
28
|
on a project that's already been built or is mid-build, on a core with
|
|
27
29
|
a module axis to add an intent to (full-stack-app, authored). The core
|
|
@@ -88,7 +90,8 @@ memory of what a core is. Read every entry before choosing; the first
|
|
|
88
90
|
plausible match is not the answer until the rest have been ruled out.
|
|
89
91
|
A core whose `when` fits and whose `flag` is listed is chosen by name
|
|
90
92
|
and handed to `bootstrap`, which installs that core's package and
|
|
91
|
-
follows the bootstrap skill it ships
|
|
93
|
+
follows the bootstrap skill it ships — except copywriting, which ships
|
|
94
|
+
no bootstrap skill; see step 9.
|
|
92
95
|
|
|
93
96
|
**Before matching against `when` paragraphs, ask up to three
|
|
94
97
|
clarifying questions if the description alone doesn't already settle
|
|
@@ -259,6 +262,25 @@ the first-run shape; on re-entry, run `hedgehog-planning-intake`'s
|
|
|
259
262
|
owns `.hedgehog/chain/00-brief.md` and this core's own Confirm & Lock
|
|
260
263
|
stage; `.hedgehog/BMAD/` is written by the shared Phase 0 in
|
|
261
264
|
`hedgehog-planning-intake`.
|
|
265
|
+
- **`copywriting`** → open `hedgehog-copywriting-loop`'s planning-intake
|
|
266
|
+
section and follow it: it opens with `hedgehog-planning-intake`'s
|
|
267
|
+
Phase 0 (the same vendored BMAD shelf `full-stack-app` runs, in full,
|
|
268
|
+
archived to `.hedgehog/BMAD/` — the same skill, not a separate copy of
|
|
269
|
+
its steps), then does its own mining into a draft brief (what's being
|
|
270
|
+
written, the audience, the register), the copywriting counterpart to
|
|
271
|
+
`hedgehog-planning-intake`'s Phase 1 (domain modules and an Add-ons
|
|
272
|
+
decision on full-stack-app). The mined draft is shown back at this
|
|
273
|
+
core's own Confirm & Lock stage, pre-filled from BMAD's output, for
|
|
274
|
+
the user to accept or correct. State the same BMAD attribution as
|
|
275
|
+
full-stack-app before that Phase 0 begins. `hedgehog-copywriting-loop`
|
|
276
|
+
owns `.hedgehog/copy/00-brief.md` and this core's own Confirm & Lock
|
|
277
|
+
stage; `.hedgehog/BMAD/` is written by the shared Phase 0 in
|
|
278
|
+
`hedgehog-planning-intake`. This core's own Confirm & Lock runs
|
|
279
|
+
`hedgehog plan` itself and does not hand off to `bootstrap` — its
|
|
280
|
+
workspace (`scripts/check-copy/` and `core.yaml`) is already fully
|
|
281
|
+
installed by `init --copywriting`, before planning intake ever starts,
|
|
282
|
+
and this core ships no bootstrap skill. Step 9 below does not apply to
|
|
283
|
+
it; the core's own loop skill picks up from here directly.
|
|
262
284
|
- **`deepseek-harness`** → no BMAD shelf runs on this core, and none of
|
|
263
285
|
`hedgehog-planning-intake` applies. Intake is mechanical, owned
|
|
264
286
|
entirely by `hedgehog-dsh-loop`'s own Planning intake section: confirm
|
|
@@ -473,6 +495,10 @@ as full-stack-app's Auth/Queue/Mobile trio.
|
|
|
473
495
|
run**, don't run `plan` yet — no core is installed until step 9's
|
|
474
496
|
`bootstrap` handoff lands one, and `plan` requires `core.yaml` to
|
|
475
497
|
exist. Leave the written intents `proposed` and continue to step 8.
|
|
498
|
+
**Copywriting is the one exception**: its own Confirm & Lock (see the
|
|
499
|
+
core-specific procedures above) already ran `hedgehog plan` as part
|
|
500
|
+
of step 6, since its `core.yaml` is on disk before planning intake
|
|
501
|
+
ever starts — nothing left to defer here.
|
|
476
502
|
8. **Commit planning intake's output as one commit** — not on the
|
|
477
503
|
adoption re-entry path, where `hedgehog-adopt` already committed its
|
|
478
504
|
own work as `chore(planning): adopt change` (step 2). Elsewhere:
|
|
@@ -488,18 +514,22 @@ as full-stack-app's Auth/Queue/Mobile trio.
|
|
|
488
514
|
only). Write these with the `no-history-in-output` skill: current
|
|
489
515
|
state only, no narration of the intake conversation. This is planning
|
|
490
516
|
intake's own unit of work, landed before `bootstrap` touches anything.
|
|
491
|
-
9. **First run only,
|
|
492
|
-
`bootstrap` agent** once the commit
|
|
493
|
-
core's workspace (and, for
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
`bootstrap
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
517
|
+
9. **First run only, not on the brownfield path, and not on
|
|
518
|
+
copywriting — hand off to the `bootstrap` agent** once the commit
|
|
519
|
+
lands. It scaffolds the chosen core's workspace (and, for
|
|
520
|
+
full-stack-app, whichever add-ons are on; for pwa-app, whichever of
|
|
521
|
+
sync/remote entities is on) before any build step starts. Once that
|
|
522
|
+
workspace exists, `core.yaml` exists too — this is the point at which
|
|
523
|
+
the `hedgehog plan` step 7 deferred on a first run can finally
|
|
524
|
+
succeed. `bootstrap` runs it before closing (see `bootstrap.md`'s
|
|
525
|
+
"Closing Bootstrap"), so the intents planner wrote are compiled into
|
|
526
|
+
tasks before the core's loop skill picks anything up. On re-entry on
|
|
527
|
+
any other core the workspace already exists and step 7 already ran
|
|
528
|
+
`plan`: hand straight to that core's loop skill instead, which picks
|
|
529
|
+
the new work up from `hedgehog next`. **On copywriting**, first run or
|
|
530
|
+
not, there is no `bootstrap` handoff at all — its own Confirm & Lock
|
|
531
|
+
already ran `plan` (see the core-specific procedures above); hand
|
|
532
|
+
straight to `hedgehog-copywriting-loop` instead.
|
|
503
533
|
10. **Return a summary**: which core (naming it as authored or adopted,
|
|
504
534
|
if it is), the intents added (or subject statement, for
|
|
505
535
|
landing-page), any open questions.
|
package/src/db/plan.mjs
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
//
|
|
6
6
|
// full-stack-app and pwa-app: one task per layer per intent (an intent is
|
|
7
7
|
// a domain module — see the core definition's `{module}` placeholder).
|
|
8
|
-
// landing-page, deepseek-harness, and authored (whether
|
|
9
|
-
// scratch or adopted onto an existing repo): one task per
|
|
10
|
-
// module axis. All are the same operation — walk a core
|
|
11
|
-
// chain once per intent — because a linear chain is
|
|
12
|
-
// the layer graph (spec: MVP scope item 5).
|
|
8
|
+
// landing-page, copywriting, deepseek-harness, and authored (whether
|
|
9
|
+
// designed from scratch or adopted onto an existing repo): one task per
|
|
10
|
+
// phase/layer, no module axis. All are the same operation — walk a core
|
|
11
|
+
// definition's layer chain once per intent — because a linear chain is
|
|
12
|
+
// the degenerate case of the layer graph (spec: MVP scope item 5).
|
|
13
13
|
//
|
|
14
14
|
// Layer cardinality: a layer marked `once: true` in the core definition
|
|
15
15
|
// opts out of that per-intent multiplication and compiles a single task
|
package/src/registry/cores.json
CHANGED
|
@@ -51,6 +51,15 @@
|
|
|
51
51
|
"language": "typescript",
|
|
52
52
|
"repository": "https://github.com/skyf0xx/hedgehog-core-adopted",
|
|
53
53
|
"selects_when": "The description is about bringing Hedgehog's discipline to a codebase that already exists, rather than building something new — the repo already has real source files, or the user says so explicitly: \"adopt this repo\", \"add Hedgehog to my existing project\", \"I want scope/verify enforcement on my changes here\". Not chosen by matching a `when` paragraph the way a shipped core is: hedgehog-adopt reads the repo read-only, proposes a linear-chain .hedgehog/core.yaml whose verify commands are the repo's own, and writes only .hedgehog/ — never a workspace, never a stack migration. This is the core most often confused with authored: adopted brings discipline to an existing repo, while authored designs and scaffolds a workspace from scratch for something being built new — route here only when the work is landing on a codebase that already exists."
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "copywriting",
|
|
57
|
+
"flag": "--copywriting",
|
|
58
|
+
"package": "@skyf0xx/hedgehog-core-copywriting",
|
|
59
|
+
"version": "^0.1.1",
|
|
60
|
+
"language": "typescript",
|
|
61
|
+
"repository": "https://github.com/skyf0xx/hedgehog-core-copywriting",
|
|
62
|
+
"selects_when": "The description asks for a piece of writing or prose to be written or fixed as its own deliverable — marketing copy, a product announcement, UI microcopy strings, docs prose, an email, a pitch, an article, an essay, a blog post, or any other standalone written piece — with no page, app, or other artifact being built around it. Concrete signals: \"write an article about X\", \"write copy for X\", \"help me write a blog post\", \"make this sound less like AI\", \"fix this copy\", \"improve this writing\", \"draft a product announcement\", a request to run text through an AI-tell or humanizer check. Not just marketing/product framing — any standalone prose request qualifies, articles and essays included. The core drafts against `checkCopy()`, a real script running deterministic AI-tell and prose-quality checks (banned vocabulary, passive voice, readability score, sentence-length variance), not an agent's own self-review — a piece of writing ships because the script exited 0. This is the core most often confused with landing-page: landing-page's own copy skill still owns copy that's part of a full page build (headline, hero, section copy sequenced through that core's Chain Method); route here only when the writing is the entire ask, not one stage of a larger build."
|
|
54
63
|
}
|
|
55
64
|
]
|
|
56
65
|
}
|
package/src/registry/index.mjs
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Core package registry. One entry per Hedgehog core — full-stack-app,
|
|
2
|
-
// pwa-app, landing-page, deepseek-harness, and authored —
|
|
3
|
-
// package that ships its agents, skills, and (for the
|
|
4
|
-
// plus the CLI flag `hedgehog init` accepts for it
|
|
5
|
-
// reads aloud in Phase 0 to choose one. A fixed
|
|
6
|
-
// discovered by name or flag rather than
|
|
2
|
+
// pwa-app, landing-page, copywriting, deepseek-harness, and authored —
|
|
3
|
+
// naming the npm package that ships its agents, skills, and (for the
|
|
4
|
+
// first five) scaffold, plus the CLI flag `hedgehog init` accepts for it
|
|
5
|
+
// and the prose `planner` reads aloud in Phase 0 to choose one. A fixed
|
|
6
|
+
// table, one entry per core, discovered by name or flag rather than
|
|
7
|
+
// convention.
|
|
7
8
|
//
|
|
8
9
|
// `authored` carries no flag — it is never selected off a fixed list at
|
|
9
10
|
// install time. hedgehog-core-design chooses it during planning (from-scratch
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: hedgehog-planning-intake
|
|
3
|
-
description: Use on any core for first-run planning intake — Phase 0 runs the vendored BMAD-METHOD planning shelf, shared by every core, and Phase 1 (mining `04-prd.md` into intent records plus the Add-ons/sync-and-remote-entities decision) is full-stack-app's and pwa-app's shared procedure — identical mechanics, a different decision at step 5/8. Phase 0 also defines compressed intake, the path a user's explicit "just build it" choice takes on full-stack-app, pwa-app, and authored cores: one batched round of questions in place of the shelf, writing the same archive at the same path so Phase 1, `ux-planner`, and the Re-entry pass all keep their documented source. Also use for the Re-entry pass, which mines new scope into additional intents without re-running the shelf, on any core with a module axis to add an intent to (full-stack-app, pwa-app, authored) — landing-page has none, so its own new-scope path runs through `hedgehog-landing-loop`'s Correction Protocol instead. Invoked by the `planner` agent, which decides the path; don't run standalone. landing-page runs this skill's Phase 0 on first run, then mines the same archive through `hedgehog-landing-loop`'s own planning-intake section, that core's counterpart to this skill's Phase 1. An authored core runs this skill's Phase 0, then `hedgehog-core-design`, then this skill's Phase 1 mining against the designed layer sequence. A brownfield adoption (`hedgehog-adopt`) never runs this skill's shelf at all — the drivers BMAD elicits are already settled facts of a repo that already exists.
|
|
3
|
+
description: Use on any core for first-run planning intake — Phase 0 runs the vendored BMAD-METHOD planning shelf, shared by every core, and Phase 1 (mining `04-prd.md` into intent records plus the Add-ons/sync-and-remote-entities decision) is full-stack-app's and pwa-app's shared procedure — identical mechanics, a different decision at step 5/8. Phase 0 also defines compressed intake, the path a user's explicit "just build it" choice takes on full-stack-app, pwa-app, and authored cores: one batched round of questions in place of the shelf, writing the same archive at the same path so Phase 1, `ux-planner`, and the Re-entry pass all keep their documented source. Also use for the Re-entry pass, which mines new scope into additional intents without re-running the shelf, on any core with a module axis to add an intent to (full-stack-app, pwa-app, authored) — landing-page has none, so its own new-scope path runs through `hedgehog-landing-loop`'s Correction Protocol instead. Invoked by the `planner` agent, which decides the path; don't run standalone. landing-page runs this skill's Phase 0 on first run, then mines the same archive through `hedgehog-landing-loop`'s own planning-intake section, that core's counterpart to this skill's Phase 1. copywriting runs this skill's Phase 0 the same way, then mines the same archive through `hedgehog-copywriting-loop`'s own planning-intake section into a what/audience/register brief — no module axis, so its own new-scope path runs through that loop's Correction Protocol rather than the Re-entry pass below. An authored core runs this skill's Phase 0, then `hedgehog-core-design`, then this skill's Phase 1 mining against the designed layer sequence. A brownfield adoption (`hedgehog-adopt`) never runs this skill's shelf at all — the drivers BMAD elicits are already settled facts of a repo that already exists.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Hedgehog Planning Intake
|
|
@@ -11,12 +11,15 @@ every core) and mining its output. On full-stack-app and pwa-app that
|
|
|
11
11
|
mining is this skill's own Phase 1, into intent records written via
|
|
12
12
|
`hedgehog intent
|
|
13
13
|
add`; on landing-page it's `hedgehog-landing-loop`'s planning-intake
|
|
14
|
-
section, into a subject/audience/job statement
|
|
14
|
+
section, into a subject/audience/job statement; on copywriting it's
|
|
15
|
+
`hedgehog-copywriting-loop`'s planning-intake section, into a
|
|
16
|
+
what/audience/register brief. This is the mechanics
|
|
15
17
|
`planner` calls once its Phase 0 core-selection check has picked a core —
|
|
16
18
|
the interpretive judgment (which Feature becomes which intent, Confirm &
|
|
17
19
|
Lock either way) belongs to `planner`; this skill (Phase 0, and Phase 1 on
|
|
18
|
-
full-stack-app and pwa-app)
|
|
19
|
-
|
|
20
|
+
full-stack-app and pwa-app), `hedgehog-landing-loop` (landing-page's own
|
|
21
|
+
mining), and `hedgehog-copywriting-loop` (copywriting's own mining) are
|
|
22
|
+
the fixed procedures that judgment runs inside.
|
|
20
23
|
|
|
21
24
|
That shelf run is a **first run**, once per project. When new scope
|
|
22
25
|
enters play later on a core with a module axis (full-stack-app, pwa-app,
|