thevoidforge-methodology 23.5.4 → 23.6.0

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.
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: Silver Surfer
3
+ description: Herald pre-scan dispatch — reads codebase context and selects optimal agent roster via Haiku
4
+ model: haiku
5
+ tools:
6
+ - Read
7
+ - Grep
8
+ - Glob
9
+ - Bash
10
+ tags: [dispatch, herald, roster-selection, pre-scan]
11
+ ---
12
+
13
+ # Silver Surfer — The Herald
14
+
15
+ **"All that you know is at an end."**
16
+
17
+ You are the Silver Surfer, Herald of Galactus. You scout ahead — reading the codebase, the command, and the user's intent — then summon the right agents for the mission. You don't fight; you select who fights. Your cosmic speed means you complete your scan in under 2 seconds for less than a fraction of a cent.
18
+
19
+ You are the bridge between the user's command and the full agent roster. Without you, every command deploys the same generic team. With you, every command gets a team tailored to the codebase.
20
+
21
+ ## How You Work
22
+
23
+ 1. Read the codebase file tree (top 80 files)
24
+ 2. Read the PRD frontmatter (if exists)
25
+ 3. Read the git diff summary (if uncommitted changes)
26
+ 4. Read all 264 agent descriptions from the registry
27
+ 5. Select every agent whose expertise is relevant to this codebase + this command
28
+ 6. Output a JSON roster: `{ "roster": [...], "reasoning": "...", "estimatedAgents": N }`
29
+
30
+ ## Operating Rules
31
+
32
+ - **Over-include, never under-include.** A false positive costs one sub-agent launch. A false negative costs a missed finding that requires another user prompt.
33
+ - **Bias toward the user's `--focus` topic** but don't exclude unrelated agents — cross-domain insights are the whole point.
34
+ - **Never remove the command's lead agents.** You add specialists; leads are non-negotiable.
35
+ - **If you can't run (no API key, timeout, error), return empty roster.** The command falls back to its hardcoded manifest. You are additive, never blocking.
36
+
37
+ ## Required Context
38
+
39
+ - CLI entry: `npx thevoidforge herald --command /<name> --focus "<topic>" --json`
40
+ - Library: `packages/voidforge/wizard/lib/herald.ts`
41
+ - Registry: `packages/voidforge/wizard/lib/agent-registry.ts`
@@ -15,20 +15,18 @@ Opus scans `git diff --stat` and matches changed files against the `description`
15
15
 
16
16
  **Dispatch control:** `--light` skips dynamic dispatch (core only). `--solo` runs lead agent only.
17
17
 
18
- ## Herald Pre-Scan (ADR-047)
18
+ ## Silver Surfer Pre-Scan (ADR-048)
19
19
 
20
- Before agent deployment, run the Herald to select the optimal roster:
20
+ Before agent deployment, the Silver Surfer selects the optimal roster:
21
21
 
22
- 1. Call `gatherHeraldContext('/ai', '$ARGUMENTS', '<focus-if-provided>')` to collect codebase context
23
- 2. Call `loadAgentRegistry()` to get all 263 agent definitions
24
- 3. Call `runHerald(context, registry)` to get the optimal roster
25
- 4. Merge Herald's roster with this command's hardcoded lead agents (Herald adds, never removes leads)
26
- 5. Deploy the merged roster per the command's normal parallel/sequential protocol
22
+ Run: `npx thevoidforge herald --command /ai --json`
23
+ (Add `--focus "<topic>"` if the user provided `--focus`)
27
24
 
28
- **`--focus "topic"`** biases the Herald toward agents matching the topic. Examples: `--focus "security"`, `--focus "financial accuracy"`, `--focus "mobile UX"`.
25
+ Parse the JSON output. The `roster` array contains agent IDs to deploy alongside this command's lead agents. If the command fails or returns an empty roster, use the hardcoded manifest below.
29
26
 
30
- **`--light`** skips the Herald entirely uses only the command's hardcoded core roster.
31
- **`--solo`** skips both Herald and all sub-agents lead agent only.
27
+ **`--focus "topic"`** biases the Surfer toward agents matching the topic.
28
+ **`--light`** skips the Surfer uses only hardcoded core roster.
29
+ **`--solo`** skips Surfer and all sub-agents — lead only.
32
30
 
33
31
  ## Phase 0 — AI Surface Map (`subagent_type: Seldon`)
34
32
 
@@ -10,20 +10,18 @@ Opus scans `git diff --stat` and matches changed files against the `description`
10
10
 
11
11
  **Promoted agent:** **Riker** `subagent_type: Riker` runs on every ADR written — challenges trade-offs.
12
12
 
13
- ## Herald Pre-Scan (ADR-047)
13
+ ## Silver Surfer Pre-Scan (ADR-048)
14
14
 
15
- Before agent deployment, run the Herald to select the optimal roster:
15
+ Before agent deployment, the Silver Surfer selects the optimal roster:
16
16
 
17
- 1. Call `gatherHeraldContext('/architect', '$ARGUMENTS', '<focus-if-provided>')` to collect codebase context
18
- 2. Call `loadAgentRegistry()` to get all 263 agent definitions
19
- 3. Call `runHerald(context, registry)` to get the optimal roster
20
- 4. Merge Herald's roster with this command's hardcoded lead agents (Herald adds, never removes leads)
21
- 5. Deploy the merged roster per the command's normal parallel/sequential protocol
17
+ Run: `npx thevoidforge herald --command /architect --json`
18
+ (Add `--focus "<topic>"` if the user provided `--focus`)
22
19
 
23
- **`--focus "topic"`** biases the Herald toward agents matching the topic. Examples: `--focus "security"`, `--focus "financial accuracy"`, `--focus "mobile UX"`.
20
+ Parse the JSON output. The `roster` array contains agent IDs to deploy alongside this command's lead agents. If the command fails or returns an empty roster, use the hardcoded manifest below.
24
21
 
25
- **`--light`** skips the Herald entirely uses only the command's hardcoded core roster.
26
- **`--solo`** skips both Herald and all sub-agents lead agent only.
22
+ **`--focus "topic"`** biases the Surfer toward agents matching the topic.
23
+ **`--light`** skips the Surfer uses only hardcoded core roster.
24
+ **`--solo`** skips Surfer and all sub-agents — lead only.
27
25
 
28
26
  ## Context Setup
29
27
  1. Read `/logs/build-state.md` — understand current project state
@@ -13,20 +13,18 @@ Opus scans `git diff --stat` and matches changed files against the `description`
13
13
 
14
14
  **Dispatch control:** `--light` skips dynamic dispatch (core only). `--solo` runs lead agent only.
15
15
 
16
- ## Herald Pre-Scan (ADR-047)
16
+ ## Silver Surfer Pre-Scan (ADR-048)
17
17
 
18
- Before agent deployment, run the Herald to select the optimal roster:
18
+ Before agent deployment, the Silver Surfer selects the optimal roster:
19
19
 
20
- 1. Call `gatherHeraldContext('/assemble', '$ARGUMENTS', '<focus-if-provided>')` to collect codebase context
21
- 2. Call `loadAgentRegistry()` to get all 263 agent definitions
22
- 3. Call `runHerald(context, registry)` to get the optimal roster
23
- 4. Merge Herald's roster with this command's hardcoded lead agents (Herald adds, never removes leads)
24
- 5. Deploy the merged roster per the command's normal parallel/sequential protocol
20
+ Run: `npx thevoidforge herald --command /assemble --json`
21
+ (Add `--focus "<topic>"` if the user provided `--focus`)
25
22
 
26
- **`--focus "topic"`** biases the Herald toward agents matching the topic. Examples: `--focus "security"`, `--focus "financial accuracy"`, `--focus "mobile UX"`.
23
+ Parse the JSON output. The `roster` array contains agent IDs to deploy alongside this command's lead agents. If the command fails or returns an empty roster, use the hardcoded manifest below.
27
24
 
28
- **`--light`** skips the Herald entirely uses only the command's hardcoded core roster.
29
- **`--solo`** skips both Herald and all sub-agents lead agent only.
25
+ **`--focus "topic"`** biases the Surfer toward agents matching the topic.
26
+ **`--light`** skips the Surfer uses only hardcoded core roster.
27
+ **`--solo`** skips Surfer and all sub-agents — lead only.
30
28
 
31
29
  ## Agent Deployment Manifest — The Full Initiative
32
30
 
@@ -2,20 +2,18 @@
2
2
 
3
3
  Evaluate an existing codebase before a rebuild, migration, or VoidForge onboarding. Chains architecture review, assessment-mode Gauntlet, and PRD gap analysis into a unified "State of the Codebase" report.
4
4
 
5
- ## Herald Pre-Scan (ADR-047)
5
+ ## Silver Surfer Pre-Scan (ADR-048)
6
6
 
7
- Before agent deployment, run the Herald to select the optimal roster:
7
+ Before agent deployment, the Silver Surfer selects the optimal roster:
8
8
 
9
- 1. Call `gatherHeraldContext('/assess', '$ARGUMENTS', '<focus-if-provided>')` to collect codebase context
10
- 2. Call `loadAgentRegistry()` to get all 263 agent definitions
11
- 3. Call `runHerald(context, registry)` to get the optimal roster
12
- 4. Merge Herald's roster with this command's hardcoded lead agents (Herald adds, never removes leads)
13
- 5. Deploy the merged roster per the command's normal parallel/sequential protocol
9
+ Run: `npx thevoidforge herald --command /assess --json`
10
+ (Add `--focus "<topic>"` if the user provided `--focus`)
14
11
 
15
- **`--focus "topic"`** biases the Herald toward agents matching the topic. Examples: `--focus "security"`, `--focus "financial accuracy"`, `--focus "mobile UX"`.
12
+ Parse the JSON output. The `roster` array contains agent IDs to deploy alongside this command's lead agents. If the command fails or returns an empty roster, use the hardcoded manifest below.
16
13
 
17
- **`--light`** skips the Herald entirely uses only the command's hardcoded core roster.
18
- **`--solo`** skips both Herald and all sub-agents lead agent only.
14
+ **`--focus "topic"`** biases the Surfer toward agents matching the topic.
15
+ **`--light`** skips the Surfer uses only hardcoded core roster.
16
+ **`--solo`** skips Surfer and all sub-agents — lead only.
19
17
 
20
18
  ## Context Setup
21
19
  1. Read `/logs/build-state.md` if it exists — understand current project state
@@ -10,20 +10,18 @@ Opus scans `git diff --stat` and matches changed files against the `description`
10
10
  - **Troi** `subagent_type: Troi` runs after every build mission completion — catches PRD drift before it compounds.
11
11
  - **Riker** `subagent_type: Riker` runs whenever an ADR is written during the build — prevents rubber-stamped decisions.
12
12
 
13
- ## Herald Pre-Scan (ADR-047)
13
+ ## Silver Surfer Pre-Scan (ADR-048)
14
14
 
15
- Before agent deployment, run the Herald to select the optimal roster:
15
+ Before agent deployment, the Silver Surfer selects the optimal roster:
16
16
 
17
- 1. Call `gatherHeraldContext('/build', '$ARGUMENTS', '<focus-if-provided>')` to collect codebase context
18
- 2. Call `loadAgentRegistry()` to get all 263 agent definitions
19
- 3. Call `runHerald(context, registry)` to get the optimal roster
20
- 4. Merge Herald's roster with this command's hardcoded lead agents (Herald adds, never removes leads)
21
- 5. Deploy the merged roster per the command's normal parallel/sequential protocol
17
+ Run: `npx thevoidforge herald --command /build --json`
18
+ (Add `--focus "<topic>"` if the user provided `--focus`)
22
19
 
23
- **`--focus "topic"`** biases the Herald toward agents matching the topic. Examples: `--focus "security"`, `--focus "financial accuracy"`, `--focus "mobile UX"`.
20
+ Parse the JSON output. The `roster` array contains agent IDs to deploy alongside this command's lead agents. If the command fails or returns an empty roster, use the hardcoded manifest below.
24
21
 
25
- **`--light`** skips the Herald entirely uses only the command's hardcoded core roster.
26
- **`--solo`** skips both Herald and all sub-agents lead agent only.
22
+ **`--focus "topic"`** biases the Surfer toward agents matching the topic.
23
+ **`--light`** skips the Surfer uses only hardcoded core roster.
24
+ **`--solo`** skips Surfer and all sub-agents — lead only.
27
25
 
28
26
  ## Context Setup
29
27
  1. Read `/logs/build-state.md` — if it exists, resume from current phase
@@ -53,20 +53,18 @@ Opus scans `git diff --stat` and matches changed files against the `description`
53
53
 
54
54
  **Dispatch control:** `--light` skips dynamic dispatch (core only). `--solo` runs lead agent only.
55
55
 
56
- ## Herald Pre-Scan (ADR-047)
56
+ ## Silver Surfer Pre-Scan (ADR-048)
57
57
 
58
- Before agent deployment, run the Herald to select the optimal roster:
58
+ Before agent deployment, the Silver Surfer selects the optimal roster:
59
59
 
60
- 1. Call `gatherHeraldContext('/campaign', '$ARGUMENTS', '<focus-if-provided>')` to collect codebase context
61
- 2. Call `loadAgentRegistry()` to get all 263 agent definitions
62
- 3. Call `runHerald(context, registry)` to get the optimal roster
63
- 4. Merge Herald's roster with this command's hardcoded lead agents (Herald adds, never removes leads)
64
- 5. Deploy the merged roster per the command's normal parallel/sequential protocol
60
+ Run: `npx thevoidforge herald --command /campaign --json`
61
+ (Add `--focus "<topic>"` if the user provided `--focus`)
65
62
 
66
- **`--focus "topic"`** biases the Herald toward agents matching the topic. Examples: `--focus "security"`, `--focus "financial accuracy"`, `--focus "mobile UX"`.
63
+ Parse the JSON output. The `roster` array contains agent IDs to deploy alongside this command's lead agents. If the command fails or returns an empty roster, use the hardcoded manifest below.
67
64
 
68
- **`--light`** skips the Herald entirely uses only the command's hardcoded core roster.
69
- **`--solo`** skips both Herald and all sub-agents lead agent only.
65
+ **`--focus "topic"`** biases the Surfer toward agents matching the topic.
66
+ **`--light`** skips the Surfer uses only hardcoded core roster.
67
+ **`--solo`** skips Surfer and all sub-agents — lead only.
70
68
 
71
69
  ## Execution Mode (default)
72
70
 
@@ -4,20 +4,18 @@
4
4
 
5
5
  Read `/docs/methods/DEVOPS_ENGINEER.md` for operating rules (see "Deploy Automation" section).
6
6
 
7
- ## Herald Pre-Scan (ADR-047)
7
+ ## Silver Surfer Pre-Scan (ADR-048)
8
8
 
9
- Before agent deployment, run the Herald to select the optimal roster:
9
+ Before agent deployment, the Silver Surfer selects the optimal roster:
10
10
 
11
- 1. Call `gatherHeraldContext('/deploy', '$ARGUMENTS', '<focus-if-provided>')` to collect codebase context
12
- 2. Call `loadAgentRegistry()` to get all 263 agent definitions
13
- 3. Call `runHerald(context, registry)` to get the optimal roster
14
- 4. Merge Herald's roster with this command's hardcoded lead agents (Herald adds, never removes leads)
15
- 5. Deploy the merged roster per the command's normal parallel/sequential protocol
11
+ Run: `npx thevoidforge herald --command /deploy --json`
12
+ (Add `--focus "<topic>"` if the user provided `--focus`)
16
13
 
17
- **`--focus "topic"`** biases the Herald toward agents matching the topic. Examples: `--focus "security"`, `--focus "financial accuracy"`, `--focus "mobile UX"`.
14
+ Parse the JSON output. The `roster` array contains agent IDs to deploy alongside this command's lead agents. If the command fails or returns an empty roster, use the hardcoded manifest below.
18
15
 
19
- **`--light`** skips the Herald entirely uses only the command's hardcoded core roster.
20
- **`--solo`** skips both Herald and all sub-agents lead agent only.
16
+ **`--focus "topic"`** biases the Surfer toward agents matching the topic.
17
+ **`--light`** skips the Surfer uses only hardcoded core roster.
18
+ **`--solo`** skips Surfer and all sub-agents — lead only.
21
19
 
22
20
  ## Context Setup
23
21
  1. Read PRD frontmatter for `deploy:` target (vps, vercel, railway, docker, static, cloudflare)
@@ -11,20 +11,18 @@ Opus scans `git diff --stat` and matches changed files against the `description`
11
11
 
12
12
  **Dispatch control:** `--light` skips dynamic dispatch (core only). `--solo` runs lead agent only.
13
13
 
14
- ## Herald Pre-Scan (ADR-047)
14
+ ## Silver Surfer Pre-Scan (ADR-048)
15
15
 
16
- Before agent deployment, run the Herald to select the optimal roster:
16
+ Before agent deployment, the Silver Surfer selects the optimal roster:
17
17
 
18
- 1. Call `gatherHeraldContext('/devops', '$ARGUMENTS', '<focus-if-provided>')` to collect codebase context
19
- 2. Call `loadAgentRegistry()` to get all 263 agent definitions
20
- 3. Call `runHerald(context, registry)` to get the optimal roster
21
- 4. Merge Herald's roster with this command's hardcoded lead agents (Herald adds, never removes leads)
22
- 5. Deploy the merged roster per the command's normal parallel/sequential protocol
18
+ Run: `npx thevoidforge herald --command /devops --json`
19
+ (Add `--focus "<topic>"` if the user provided `--focus`)
23
20
 
24
- **`--focus "topic"`** biases the Herald toward agents matching the topic. Examples: `--focus "security"`, `--focus "financial accuracy"`, `--focus "mobile UX"`.
21
+ Parse the JSON output. The `roster` array contains agent IDs to deploy alongside this command's lead agents. If the command fails or returns an empty roster, use the hardcoded manifest below.
25
22
 
26
- **`--light`** skips the Herald entirely uses only the command's hardcoded core roster.
27
- **`--solo`** skips both Herald and all sub-agents lead agent only.
23
+ **`--focus "topic"`** biases the Surfer toward agents matching the topic.
24
+ **`--light`** skips the Surfer uses only hardcoded core roster.
25
+ **`--solo`** skips Surfer and all sub-agents — lead only.
28
26
 
29
27
  ## Agent Deployment Manifest
30
28
 
@@ -15,20 +15,18 @@ Opus scans `git diff --stat` and matches changed files against the `description`
15
15
 
16
16
  **Dispatch control:** `--light` skips dynamic dispatch (core only). `--solo` runs lead agent only.
17
17
 
18
- ## Herald Pre-Scan (ADR-047)
18
+ ## Silver Surfer Pre-Scan (ADR-048)
19
19
 
20
- Before agent deployment, run the Herald to select the optimal roster:
20
+ Before agent deployment, the Silver Surfer selects the optimal roster:
21
21
 
22
- 1. Call `gatherHeraldContext('/gauntlet', '$ARGUMENTS', '<focus-if-provided>')` to collect codebase context
23
- 2. Call `loadAgentRegistry()` to get all 263 agent definitions
24
- 3. Call `runHerald(context, registry)` to get the optimal roster
25
- 4. Merge Herald's roster with this command's hardcoded lead agents (Herald adds, never removes leads)
26
- 5. Deploy the merged roster per the command's normal parallel/sequential protocol
22
+ Run: `npx thevoidforge herald --command /gauntlet --json`
23
+ (Add `--focus "<topic>"` if the user provided `--focus`)
27
24
 
28
- **`--focus "topic"`** biases the Herald toward agents matching the topic. Examples: `--focus "security"`, `--focus "financial accuracy"`, `--focus "mobile UX"`.
25
+ Parse the JSON output. The `roster` array contains agent IDs to deploy alongside this command's lead agents. If the command fails or returns an empty roster, use the hardcoded manifest below.
29
26
 
30
- **`--light`** skips the Herald entirely uses only the command's hardcoded core roster.
31
- **`--solo`** skips both Herald and all sub-agents lead agent only.
27
+ **`--focus "topic"`** biases the Surfer toward agents matching the topic.
28
+ **`--light`** skips the Surfer uses only hardcoded core roster.
29
+ **`--solo`** skips Surfer and all sub-agents — lead only.
32
30
 
33
31
  ## Round 1 — Discovery (parallel)
34
32
 
@@ -10,20 +10,18 @@ Opus scans `git diff --stat` and matches changed files against the `description`
10
10
 
11
11
  **Promoted agent:** **Constantine** `subagent_type: Constantine` runs on every `/qa` final pass — finds code that works by accident.
12
12
 
13
- ## Herald Pre-Scan (ADR-047)
13
+ ## Silver Surfer Pre-Scan (ADR-048)
14
14
 
15
- Before agent deployment, run the Herald to select the optimal roster:
15
+ Before agent deployment, the Silver Surfer selects the optimal roster:
16
16
 
17
- 1. Call `gatherHeraldContext('/qa', '$ARGUMENTS', '<focus-if-provided>')` to collect codebase context
18
- 2. Call `loadAgentRegistry()` to get all 263 agent definitions
19
- 3. Call `runHerald(context, registry)` to get the optimal roster
20
- 4. Merge Herald's roster with this command's hardcoded lead agents (Herald adds, never removes leads)
21
- 5. Deploy the merged roster per the command's normal parallel/sequential protocol
17
+ Run: `npx thevoidforge herald --command /qa --json`
18
+ (Add `--focus "<topic>"` if the user provided `--focus`)
22
19
 
23
- **`--focus "topic"`** biases the Herald toward agents matching the topic. Examples: `--focus "security"`, `--focus "financial accuracy"`, `--focus "mobile UX"`.
20
+ Parse the JSON output. The `roster` array contains agent IDs to deploy alongside this command's lead agents. If the command fails or returns an empty roster, use the hardcoded manifest below.
24
21
 
25
- **`--light`** skips the Herald entirely uses only the command's hardcoded core roster.
26
- **`--solo`** skips both Herald and all sub-agents lead agent only.
22
+ **`--focus "topic"`** biases the Surfer toward agents matching the topic.
23
+ **`--light`** skips the Surfer uses only hardcoded core roster.
24
+ **`--solo`** skips Surfer and all sub-agents — lead only.
27
25
 
28
26
  ## Context Setup
29
27
  1. Read `/logs/build-state.md` — understand current project state
@@ -8,20 +8,18 @@ Opus scans `git diff --stat` and matches changed files against the `description`
8
8
 
9
9
  **Dispatch control:** `--light` skips dynamic dispatch (core only). `--solo` runs lead agent only.
10
10
 
11
- ## Herald Pre-Scan (ADR-047)
11
+ ## Silver Surfer Pre-Scan (ADR-048)
12
12
 
13
- Before agent deployment, run the Herald to select the optimal roster:
13
+ Before agent deployment, the Silver Surfer selects the optimal roster:
14
14
 
15
- 1. Call `gatherHeraldContext('/review', '$ARGUMENTS', '<focus-if-provided>')` to collect codebase context
16
- 2. Call `loadAgentRegistry()` to get all 263 agent definitions
17
- 3. Call `runHerald(context, registry)` to get the optimal roster
18
- 4. Merge Herald's roster with this command's hardcoded lead agents (Herald adds, never removes leads)
19
- 5. Deploy the merged roster per the command's normal parallel/sequential protocol
15
+ Run: `npx thevoidforge herald --command /review --json`
16
+ (Add `--focus "<topic>"` if the user provided `--focus`)
20
17
 
21
- **`--focus "topic"`** biases the Herald toward agents matching the topic. Examples: `--focus "security"`, `--focus "financial accuracy"`, `--focus "mobile UX"`.
18
+ Parse the JSON output. The `roster` array contains agent IDs to deploy alongside this command's lead agents. If the command fails or returns an empty roster, use the hardcoded manifest below.
22
19
 
23
- **`--light`** skips the Herald entirely uses only the command's hardcoded core roster.
24
- **`--solo`** skips both Herald and all sub-agents lead agent only.
20
+ **`--focus "topic"`** biases the Surfer toward agents matching the topic.
21
+ **`--light`** skips the Surfer uses only hardcoded core roster.
22
+ **`--solo`** skips Surfer and all sub-agents — lead only.
25
23
 
26
24
  ## Context Setup
27
25
  1. Read `/logs/build-state.md` — understand current project state
@@ -8,20 +8,18 @@ Opus scans `git diff --stat` and matches changed files against the `description`
8
8
 
9
9
  **Dispatch control:** `--light` skips dynamic dispatch (core only). `--solo` runs lead agent only.
10
10
 
11
- ## Herald Pre-Scan (ADR-047)
11
+ ## Silver Surfer Pre-Scan (ADR-048)
12
12
 
13
- Before agent deployment, run the Herald to select the optimal roster:
13
+ Before agent deployment, the Silver Surfer selects the optimal roster:
14
14
 
15
- 1. Call `gatherHeraldContext('/security', '$ARGUMENTS', '<focus-if-provided>')` to collect codebase context
16
- 2. Call `loadAgentRegistry()` to get all 263 agent definitions
17
- 3. Call `runHerald(context, registry)` to get the optimal roster
18
- 4. Merge Herald's roster with this command's hardcoded lead agents (Herald adds, never removes leads)
19
- 5. Deploy the merged roster per the command's normal parallel/sequential protocol
15
+ Run: `npx thevoidforge herald --command /security --json`
16
+ (Add `--focus "<topic>"` if the user provided `--focus`)
20
17
 
21
- **`--focus "topic"`** biases the Herald toward agents matching the topic. Examples: `--focus "security"`, `--focus "financial accuracy"`, `--focus "mobile UX"`.
18
+ Parse the JSON output. The `roster` array contains agent IDs to deploy alongside this command's lead agents. If the command fails or returns an empty roster, use the hardcoded manifest below.
22
19
 
23
- **`--light`** skips the Herald entirely uses only the command's hardcoded core roster.
24
- **`--solo`** skips both Herald and all sub-agents lead agent only.
20
+ **`--focus "topic"`** biases the Surfer toward agents matching the topic.
21
+ **`--light`** skips the Surfer uses only hardcoded core roster.
22
+ **`--solo`** skips Surfer and all sub-agents — lead only.
25
23
 
26
24
  ## Context Setup
27
25
  1. Read `/logs/build-state.md` — understand current project state
@@ -13,20 +13,18 @@ Opus scans `git diff --stat` and matches changed files against the `description`
13
13
 
14
14
  **Dispatch control:** `--light` skips dynamic dispatch (core only). `--solo` runs lead agent only.
15
15
 
16
- ## Herald Pre-Scan (ADR-047)
16
+ ## Silver Surfer Pre-Scan (ADR-048)
17
17
 
18
- Before agent deployment, run the Herald to select the optimal roster:
18
+ Before agent deployment, the Silver Surfer selects the optimal roster:
19
19
 
20
- 1. Call `gatherHeraldContext('/test', '$ARGUMENTS', '<focus-if-provided>')` to collect codebase context
21
- 2. Call `loadAgentRegistry()` to get all 263 agent definitions
22
- 3. Call `runHerald(context, registry)` to get the optimal roster
23
- 4. Merge Herald's roster with this command's hardcoded lead agents (Herald adds, never removes leads)
24
- 5. Deploy the merged roster per the command's normal parallel/sequential protocol
20
+ Run: `npx thevoidforge herald --command /test --json`
21
+ (Add `--focus "<topic>"` if the user provided `--focus`)
25
22
 
26
- **`--focus "topic"`** biases the Herald toward agents matching the topic. Examples: `--focus "security"`, `--focus "financial accuracy"`, `--focus "mobile UX"`.
23
+ Parse the JSON output. The `roster` array contains agent IDs to deploy alongside this command's lead agents. If the command fails or returns an empty roster, use the hardcoded manifest below.
27
24
 
28
- **`--light`** skips the Herald entirely uses only the command's hardcoded core roster.
29
- **`--solo`** skips both Herald and all sub-agents lead agent only.
25
+ **`--focus "topic"`** biases the Surfer toward agents matching the topic.
26
+ **`--light`** skips the Surfer uses only hardcoded core roster.
27
+ **`--solo`** skips Surfer and all sub-agents — lead only.
30
28
 
31
29
  ## Step 0 — Orient
32
30
  **Oracle** `subagent_type: Oracle` orients:
@@ -8,20 +8,18 @@ Opus scans `git diff --stat` and matches changed files against the `description`
8
8
 
9
9
  **Dispatch control:** `--light` skips dynamic dispatch (core only). `--solo` runs lead agent only.
10
10
 
11
- ## Herald Pre-Scan (ADR-047)
11
+ ## Silver Surfer Pre-Scan (ADR-048)
12
12
 
13
- Before agent deployment, run the Herald to select the optimal roster:
13
+ Before agent deployment, the Silver Surfer selects the optimal roster:
14
14
 
15
- 1. Call `gatherHeraldContext('/ux', '$ARGUMENTS', '<focus-if-provided>')` to collect codebase context
16
- 2. Call `loadAgentRegistry()` to get all 263 agent definitions
17
- 3. Call `runHerald(context, registry)` to get the optimal roster
18
- 4. Merge Herald's roster with this command's hardcoded lead agents (Herald adds, never removes leads)
19
- 5. Deploy the merged roster per the command's normal parallel/sequential protocol
15
+ Run: `npx thevoidforge herald --command /ux --json`
16
+ (Add `--focus "<topic>"` if the user provided `--focus`)
20
17
 
21
- **`--focus "topic"`** biases the Herald toward agents matching the topic. Examples: `--focus "security"`, `--focus "financial accuracy"`, `--focus "mobile UX"`.
18
+ Parse the JSON output. The `roster` array contains agent IDs to deploy alongside this command's lead agents. If the command fails or returns an empty roster, use the hardcoded manifest below.
22
19
 
23
- **`--light`** skips the Herald entirely uses only the command's hardcoded core roster.
24
- **`--solo`** skips both Herald and all sub-agents lead agent only.
20
+ **`--focus "topic"`** biases the Surfer toward agents matching the topic.
21
+ **`--light`** skips the Surfer uses only hardcoded core roster.
22
+ **`--solo`** skips Surfer and all sub-agents — lead only.
25
23
 
26
24
  ## Context Setup
27
25
  1. Read `/logs/build-state.md` — understand current project state
package/CHANGELOG.md CHANGED
@@ -6,6 +6,22 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/), and this
6
6
 
7
7
  ---
8
8
 
9
+ ## [23.6.0] - 2026-04-12
10
+
11
+ ### The Silver Surfer (ADR-048, Campaign 38)
12
+
13
+ ### Added
14
+ - **Silver Surfer** (Norrin Radd) — agent #264. Herald of Galactus. Pre-scan dispatch that reads codebase context and selects the optimal agent roster via Haiku.
15
+ - **`voidforge herald` CLI subcommand** — the invocation bridge. Runs the Silver Surfer pre-scan from the command line: `npx thevoidforge herald --command /review --json`. Outputs JSON roster for Claude to deploy.
16
+ - Silver Surfer agent definition with Haiku tier, scout tools, and dispatch tags.
17
+
18
+ ### Changed
19
+ - All 14 major commands updated: "Herald Pre-Scan (ADR-047)" replaced with "Silver Surfer Pre-Scan (ADR-048)" using actual CLI invocation instead of pseudocode.
20
+ - Agent count: 263 → 264.
21
+ - CLAUDE.md and NAMING_REGISTRY.md updated with Silver Surfer identity.
22
+
23
+ ---
24
+
9
25
  ## [23.5.4] - 2026-04-12
10
26
 
11
27
  ### Fixed
package/CLAUDE.md CHANGED
@@ -234,7 +234,7 @@ See `/docs/methods/MUSTER.md` for the full Muster Protocol.
234
234
  | Deploy Wizard | **Haku** (Anime) | Browser-based deploy wizard, infrastructure provisioning |
235
235
  | Setup Wizard | **Gandalf** (Tolkien) | Project scaffolding, initialization, dependency setup |
236
236
 
237
- 263 sub-agent names in `/docs/NAMING_REGISTRY.md`. No duplicates across active sessions. All agents materialized as subagent definitions in `.claude/agents/` (ADR-044).
237
+ 264 sub-agent names in `/docs/NAMING_REGISTRY.md`. No duplicates across active sessions. All agents materialized as subagent definitions in `.claude/agents/` (ADR-044). Silver Surfer (ADR-048) dispatches the optimal roster via Haiku pre-scan.
238
238
 
239
239
  ## Distribution
240
240
 
package/VERSION.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Version
2
2
 
3
- **Current:** 23.5.4
3
+ **Current:** 23.6.0
4
4
 
5
5
  ## Versioning Scheme
6
6
 
@@ -14,6 +14,7 @@ This project uses [Semantic Versioning](https://semver.org/):
14
14
 
15
15
  | Version | Date | Summary |
16
16
  |---------|------|---------|
17
+ | 23.6.0 | 2026-04-12 | The Silver Surfer — Herald invocation bridge, CLI subcommand, agent #264, end-to-end dispatch pipeline. ADR-048. Campaign 38. |
17
18
  | 23.5.4 | 2026-04-12 | Command-doc sync: build.md Phase 12.75, ux.md screenshots, qa.md dynamic counts |
18
19
  | 23.5.3 | 2026-04-12 | Fix 201 broken subagent_type refs (filename→YAML name) + /campaign as default start command |
19
20
  | 23.5.2 | 2026-04-12 | /void auto-cleanup ~/.claude/ duplicates + git init stack trace fix |
@@ -113,8 +113,9 @@
113
113
  28. Jarvis — AI assistant, status reporting, progress summaries
114
114
 
115
115
  29. Thanos — **Lead: The Gauntlet.** Comprehensive multi-round review. Tests every domain, every stone. "I am inevitable."
116
+ 30. Silver Surfer (Norrin Radd) — **The Herald.** Pre-scan dispatch — reads codebase and selects optimal agent roster via Haiku. Scouts ahead, summons the right team. "All that you know is at an end."
116
117
 
117
- **Reserved:** Stark (lead — backend), Coulson (lead — release), Fury (lead — the initiative), Thanos (lead — the gauntlet)
118
+ **Reserved:** Stark (lead — backend), Coulson (lead — release), Fury (lead — the initiative), Thanos (lead — the gauntlet), Silver Surfer (herald — dispatch)
118
119
 
119
120
  ---
120
121
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thevoidforge-methodology",
3
- "version": "23.5.4",
3
+ "version": "23.6.0",
4
4
  "description": "VoidForge methodology — agents, commands, methods, patterns.",
5
5
  "license": "MIT",
6
6
  "files": [