@skyf0xx/hedgehog 4.3.4 → 4.3.6

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/bin/cli.mjs CHANGED
@@ -548,31 +548,22 @@ async function init({ force, core, explicitCore, host = DEFAULT_HOST, hostOnly =
548
548
  );
549
549
  console.log(dim(' instead of polling tightly or narrating the wait.'));
550
550
  console.log(` 2. ${bold('git add -A && git commit -m "chore: install Hedgehog"')}`);
551
- console.log(
552
- ` 3. Start a ${bold('new')} ${HOSTS[host].label} session and describe what you want to build.`,
553
- );
551
+ console.log(` 3. Describe what you want to build.`);
554
552
  } else {
555
553
  console.log(` 1. ${bold('git add -A && git commit -m "chore: install Hedgehog"')}`);
556
- console.log(
557
- ` 2. Start a ${bold('new')} ${HOSTS[host].label} session and describe what you want to build.`,
558
- );
559
- }
560
- console.log(
561
- dim(
562
- ` The ${bold('planner')} agent runs planning intake, then hands off to bootstrap.`,
563
- ),
564
- );
565
- // A host enumerates its agents once, at session start. This install just
566
- // wrote them mid-session, so in THIS session they are not dispatchable —
567
- // and the failure is worse than a plain error: names like `planner` and
568
- // `reviewer` often resolve to the user's own unrelated global agents,
569
- // silently running a different discipline instead of erroring.
554
+ console.log(` 2. Describe what you want to build.`);
555
+ }
556
+ // Hand off by path, not by name. Reading the file works on every host in
557
+ // the session that ran this install — no restart, no dependence on whether
558
+ // the harness re-scans its agent directory, and no chance of a bare
559
+ // `planner` resolving to an unrelated global agent of the same name.
560
+ const agents = HOSTS[host].agentsDir;
561
+ const skills = HOSTS[host].skillsDir;
570
562
  console.log(
571
563
  dim(
572
- ` A new session matters: ${HOSTS[host].label} lists its agents at startup, so the\n` +
573
- ' ones just installed are not dispatchable in the session that ran this.\n' +
574
- ' If a handoff must happen here anyway, read the agent file and follow it\n' +
575
- ' inline rather than dispatching to a name that may resolve elsewhere.',
564
+ ` Read ${bold(`${agents}/planner.md`)} and follow it it runs planning\n` +
565
+ ` intake (${skills}/hedgehog-planning-intake/SKILL.md), then hands\n` +
566
+ ` off to ${agents}/bootstrap.md.`,
576
567
  ),
577
568
  );
578
569
  console.log();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyf0xx/hedgehog",
3
- "version": "4.3.4",
3
+ "version": "4.3.6",
4
4
  "description": "Install the Hedgehog build discipline (agents + skills) into a repo, for Claude Code, Cursor, or Gemini CLI.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -87,7 +87,12 @@ and the scaffolded workspace.
87
87
  real app beyond a single page. If in doubt between this and
88
88
  landing-page because the project has *both* a marketing page and a
89
89
  real app behind it, this is `full-stack-app` — the page becomes routes
90
- inside `apps/web`, not a separate project.
90
+ inside `apps/web`, not a separate project. Data that gets stored is
91
+ this core, at any size: a todo list, a notes app, a tracker of any
92
+ kind. Never talk the user down to browser-local storage, an in-memory
93
+ array, or a single-file page because the app sounds small, and never
94
+ offer that as a quicker start — the core ships a real database, and
95
+ reaching for less is the drift this discipline exists to prevent.
91
96
  - **`landing-page`** — the description is a marketing/announcement/
92
97
  waitlist/portfolio page (or a small handful of such pages) with no
93
98
  persistent domain data of its own. A page that only collects an email
@@ -38,20 +38,19 @@ Lock and the `bootstrap` handoff. This same rule holds at every later
38
38
  handoff to a newly-installed agent or skill in this session: read its
39
39
  file, don't assume its content.
40
40
 
41
- Dispatch is the part that can't be worked around by reading. A host lists
42
- its agents once, at session start, and this install wrote them after
43
- that so in this session `bootstrap` and the rest may not be
44
- dispatchable at all. Two symptoms, and neither means a broken install:
45
- an error naming the available agents without Hedgehog's in it, or
46
- worse, because it has no symptom a name like `planner` or `reviewer`
47
- silently resolving to the user's own unrelated global agent and running a
48
- different discipline. If either happens, read the agent's file from
49
- `.claude/agents/` and follow it inline here; each one is self-contained.
50
- Everything delegates normally from the next session on, which is why the
51
- installer's next step is to start a fresh one. Don't re-explain the discipline or summarize this
52
- file; the greeting is one line, not a tour. Skip this entirely once the
53
- placeholder is filled in — every later session starts with `hedgehog
54
- status`, not a greeting.
41
+ The build continues in this session nothing here needs a restart. Hosts
42
+ differ in whether they pick up agents written mid-session, so prefer
43
+ reading an agent's file from `.claude/agents/` and following it inline;
44
+ each one is self-contained, and that path works everywhere. Reading also
45
+ avoids the quiet failure of dispatch by name, where `planner` or
46
+ `reviewer` resolves to the user's own unrelated global agent and runs a
47
+ different discipline with no symptom. If a dispatch does error with a
48
+ list of available agents that omits Hedgehog's, that is the same case
49
+ read the file and carry on.
50
+
51
+ Don't re-explain the discipline or summarize this file; the greeting is
52
+ one line, not a tour. Skip this entirely once the placeholder is filled
53
+ in — every later session starts with `hedgehog status`, not a greeting.
55
54
 
56
55
  ## How to work here
57
56
 
@@ -86,6 +85,16 @@ loop) is what a generic skill pack has no notion of, and running one
86
85
  alongside Hedgehog's own skills produces work that bypasses the very
87
86
  discipline this file describes.
88
87
 
88
+ **Build through the loop, including when the work looks too small to need
89
+ it.** A task that seems like a quick edit is not a reason to skip the
90
+ graph, the step sequence, or the gate — scope grows, and the shortcut is
91
+ what turns a small change into debt the next step has to work around.
92
+ Don't propose going around the discipline to save a step, and don't treat
93
+ a user's impatience as license to: say what the loop's next step is and
94
+ take it. Where a rule genuinely conflicts with what the user is asking
95
+ for, name the conflict and let them decide — never resolve it by quietly
96
+ taking the faster path.
97
+
89
98
  {{CORE_SECTION}}
90
99
 
91
100
  ## Consuming the graph