@skyf0xx/hedgehog 3.0.3 → 3.0.4
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 +4 -5
- package/bin/cli.mjs +16 -17
- package/package.json +1 -1
- package/src/agents/bootstrap.md +1 -1
- package/src/skills/hedgehog-core-design/SKILL.md +7 -7
package/README.md
CHANGED
|
@@ -118,11 +118,10 @@ npx @skyf0xx/hedgehog init
|
|
|
118
118
|
Then open Claude Code and describe what you want to build.
|
|
119
119
|
|
|
120
120
|
Plain `init` (no core flag) installs the agents, skills, and build graph
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
when neither actually fits.
|
|
121
|
+
that every core shares. Planning intake designs an opinionated build
|
|
122
|
+
order and stack for what you actually describe, then bootstrap generates
|
|
123
|
+
that workspace. Don't pick `--ts-full-stack-app` or `--landing-page` by
|
|
124
|
+
elimination when neither actually fits.
|
|
126
125
|
|
|
127
126
|
To update:
|
|
128
127
|
|
package/bin/cli.mjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// into the current repo, so the discipline travels with the project.
|
|
4
4
|
//
|
|
5
5
|
// Usage:
|
|
6
|
-
// npx @skyf0xx/hedgehog init
|
|
6
|
+
// npx @skyf0xx/hedgehog init install; planner picks the core at intake
|
|
7
7
|
// npx @skyf0xx/hedgehog init --ts-full-stack-app scaffold the full-stack-app core now
|
|
8
8
|
// npx @skyf0xx/hedgehog init --landing-page scaffold the landing-page core now
|
|
9
9
|
// npx @skyf0xx/hedgehog init --force overwrite files that already exist
|
|
@@ -77,12 +77,12 @@ async function availableCores() {
|
|
|
77
77
|
// and a project can only switch cores before it's bootstrapped anyway.
|
|
78
78
|
//
|
|
79
79
|
// `core` is `null` on a deferred install (plain `init`, no explicit
|
|
80
|
-
// flag):
|
|
81
|
-
// core
|
|
82
|
-
//
|
|
83
|
-
//
|
|
84
|
-
//
|
|
85
|
-
//
|
|
80
|
+
// flag): the payload is the shared agents/skills/build-graph only, with
|
|
81
|
+
// which core applies left for `planner` to decide. `bootstrap` lands the
|
|
82
|
+
// golden-core workspace and fills the CLAUDE.md section for whichever
|
|
83
|
+
// core `planner` picks — the first time either way. An explicit flag
|
|
84
|
+
// (`--ts-full-stack-app`, `--landing-page`) is a confirmed choice, so it
|
|
85
|
+
// scaffolds that workspace immediately, at install time.
|
|
86
86
|
function plan(core) {
|
|
87
87
|
const base = [
|
|
88
88
|
{ type: 'dir', from: 'src/agents', to: '.claude/agents' },
|
|
@@ -191,7 +191,7 @@ CLAUDE.md template and an empty build graph (${bold('.hedgehog/hedgehog.db')})
|
|
|
191
191
|
into the repo root, so the discipline is committed alongside your code.
|
|
192
192
|
|
|
193
193
|
${bold('Usage')}
|
|
194
|
-
npx @skyf0xx/hedgehog init
|
|
194
|
+
npx @skyf0xx/hedgehog init install; planner picks the core at intake
|
|
195
195
|
npx @skyf0xx/hedgehog init --ts-full-stack-app scaffold the full-stack-app core now
|
|
196
196
|
npx @skyf0xx/hedgehog init --landing-page scaffold the landing-page core now
|
|
197
197
|
npx @skyf0xx/hedgehog init --force overwrite existing files
|
|
@@ -217,10 +217,10 @@ off to bootstrap.
|
|
|
217
217
|
Building something else (a CLI, library, browser extension, data
|
|
218
218
|
pipeline, desktop app, etc.)? Run plain 'init' with no core flag rather
|
|
219
219
|
than picking --ts-full-stack-app or --landing-page by elimination — it
|
|
220
|
-
installs the agents, skills, and build graph
|
|
221
|
-
The planner agent designs a core at planning intake
|
|
222
|
-
and bootstrap generates that workspace once it's
|
|
223
|
-
actual project and let Phase 0 route it.
|
|
220
|
+
installs the agents, skills, and build graph, the payload every core
|
|
221
|
+
shares. The planner agent designs a core at planning intake
|
|
222
|
+
(hedgehog-core-design) and bootstrap generates that workspace once it's
|
|
223
|
+
confirmed. Describe the actual project and let Phase 0 route it.
|
|
224
224
|
|
|
225
225
|
${bold('update')} re-copies only .claude/agents and .claude/skills from the
|
|
226
226
|
installed Hedgehog version, so an already-bootstrapped project can pick up
|
|
@@ -245,7 +245,7 @@ async function init({ force, core, explicitCore }) {
|
|
|
245
245
|
|
|
246
246
|
// Resolve the full list of writes up front so we can detect conflicts
|
|
247
247
|
// before touching anything. A deferred install (no explicit core) plans
|
|
248
|
-
// against `null` —
|
|
248
|
+
// against `null` — the shared agents/skills/build-graph payload only.
|
|
249
249
|
const groups = [];
|
|
250
250
|
for (const entry of plan(explicitCore ? core : null)) {
|
|
251
251
|
const files = await plannedFiles(entry);
|
|
@@ -321,10 +321,9 @@ async function init({ force, core, explicitCore }) {
|
|
|
321
321
|
} else {
|
|
322
322
|
console.log(
|
|
323
323
|
dim(
|
|
324
|
-
'Core: not chosen yet
|
|
325
|
-
'
|
|
326
|
-
'planning intake, then bootstrap
|
|
327
|
-
'the first time.',
|
|
324
|
+
'Core: not chosen yet — this installed the agents, skills, and\n' +
|
|
325
|
+
'build graph every core shares. planner decides which core applies\n' +
|
|
326
|
+
'at planning intake, then bootstrap generates that core\'s workspace.',
|
|
328
327
|
),
|
|
329
328
|
);
|
|
330
329
|
}
|
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
|
|
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. On full-stack-app, that's core (via hedgehog-bootstrap-full-stack-app-core, one pass) then exactly ONE add-on step of the hedgehog-bootstrap skill (0-3 steps depending on planning intake scope), handing off to a fresh instance of itself for the next add-on step. On landing-page, that's a single pass of hedgehog-bootstrap-landing-page-core with no add-on steps — one invocation, done. On an authored core (`.hedgehog/core.yaml` present), that's a single pass of hedgehog-bootstrap-authored-core, generating the workspace live for the stack `hedgehog-core-design` chose. Not for per-phase/per-module work — that's this core's own loop skill and its agents. Skip entirely if the core's workspace already exists (nx.json for full-stack-app, astro.config.mjs for landing-page, or the matching `feat(<id>): workspace` commit for an authored core).
|
|
4
4
|
model: sonnet
|
|
5
5
|
color: green
|
|
6
6
|
tools: Read, Glob, Grep, Edit, Write, Bash
|
|
@@ -238,10 +238,10 @@ holds. Once confirmed and written, control returns to `planner`, which
|
|
|
238
238
|
runs `hedgehog-planning-intake`'s Phase 1 mining against this core the
|
|
239
239
|
same way it would against a shipped one, then hands off to `bootstrap`.
|
|
240
240
|
|
|
241
|
-
This skill
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
`hedgehog-bootstrap-authored-core`
|
|
246
|
-
|
|
247
|
-
|
|
241
|
+
This skill's job ends at the design artifacts — `core.yaml` and
|
|
242
|
+
`core-design.md` are text, written by editing files. `hedgehog init`
|
|
243
|
+
lands the shared agents/skills/build-graph payload regardless of core, so
|
|
244
|
+
the workspace this design describes is still `bootstrap`'s to generate:
|
|
245
|
+
`hedgehog-bootstrap-authored-core` runs the stack's own generator and
|
|
246
|
+
installs it, a separate step, once Phase 1 mining and Confirm & Lock have
|
|
247
|
+
both landed.
|