@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 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
- only no workspace, no framework, nothing core-specific. Planning
122
- intake designs an opinionated build order and stack for what you
123
- actually describe, then bootstrap lands that workspace for the first
124
- time. Don't pick `--ts-full-stack-app` or `--landing-page` by elimination
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 no workspace yet — planner picks the core
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): which core applies hasn't been decided yet, so nothing
81
- // core-specific no golden-core workspace, no filled CLAUDE.md section
82
- // gets written speculatively. `bootstrap` lands the real workspace, for
83
- // whichever core `planner` picks, the first time either way. An explicit
84
- // flag (`--ts-full-stack-app`, `--landing-page`) is a confirmed choice,
85
- // not a guess, so it scaffolds immediately as before.
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 no workspace yet — planner picks the core
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 only, nothing core-specific.
221
- The planner agent designs a core at planning intake (hedgehog-core-design)
222
- and bootstrap generates that workspace once it's confirmed. Describe the
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` — no golden-core workspace, nothing core-specific.
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. Nothing core-specific landed no workspace,\n' +
325
- 'no framework, no lockfile. planner decides which core applies at\n' +
326
- 'planning intake, then bootstrap lands that core\'s workspace for\n' +
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyf0xx/hedgehog",
3
- "version": "3.0.3",
3
+ "version": "3.0.4",
4
4
  "description": "Install the Hedgehog build discipline (agents + skills) into a repo.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -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 only agents/skills/the build graph, nothing core-specific. 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).
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 never touches the workspace itselfno `pnpm init`, no
242
- generator, no install. `hedgehog init` lands nothing core-specific until
243
- a core is chosen, so there's nothing on disk yet for this skill to
244
- conflict with; its job ends at the design artifacts. `bootstrap`'s
245
- `hedgehog-bootstrap-authored-core` is what later generates the real
246
- workspace for the stack chosen here a separate step, run only once
247
- Phase 1 mining and Confirm & Lock have both landed.
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.