thevoidforge-methodology 23.5.3 → 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.
- package/.claude/agents/silver-surfer-herald.md +41 -0
- package/.claude/commands/ai.md +8 -10
- package/.claude/commands/architect.md +8 -10
- package/.claude/commands/assemble.md +8 -10
- package/.claude/commands/assess.md +8 -10
- package/.claude/commands/build.md +11 -10
- package/.claude/commands/campaign.md +8 -10
- package/.claude/commands/deploy.md +8 -10
- package/.claude/commands/devops.md +8 -10
- package/.claude/commands/gauntlet.md +8 -10
- package/.claude/commands/qa.md +12 -10
- package/.claude/commands/review.md +8 -10
- package/.claude/commands/security.md +8 -10
- package/.claude/commands/test.md +8 -10
- package/.claude/commands/ux.md +10 -10
- package/CHANGELOG.md +24 -0
- package/CLAUDE.md +1 -1
- package/VERSION.md +3 -1
- package/docs/NAMING_REGISTRY.md +2 -1
- package/package.json +1 -1
|
@@ -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`
|
package/.claude/commands/ai.md
CHANGED
|
@@ -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
|
-
##
|
|
18
|
+
## Silver Surfer Pre-Scan (ADR-048)
|
|
19
19
|
|
|
20
|
-
Before agent deployment,
|
|
20
|
+
Before agent deployment, the Silver Surfer selects the optimal roster:
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
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
|
-
**`--
|
|
31
|
-
**`--
|
|
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
|
-
##
|
|
13
|
+
## Silver Surfer Pre-Scan (ADR-048)
|
|
14
14
|
|
|
15
|
-
Before agent deployment,
|
|
15
|
+
Before agent deployment, the Silver Surfer selects the optimal roster:
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
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
|
-
**`--
|
|
26
|
-
**`--
|
|
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
|
-
##
|
|
16
|
+
## Silver Surfer Pre-Scan (ADR-048)
|
|
17
17
|
|
|
18
|
-
Before agent deployment,
|
|
18
|
+
Before agent deployment, the Silver Surfer selects the optimal roster:
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
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
|
-
**`--
|
|
29
|
-
**`--
|
|
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
|
-
##
|
|
5
|
+
## Silver Surfer Pre-Scan (ADR-048)
|
|
6
6
|
|
|
7
|
-
Before agent deployment,
|
|
7
|
+
Before agent deployment, the Silver Surfer selects the optimal roster:
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
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
|
-
**`--
|
|
18
|
-
**`--
|
|
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
|
-
##
|
|
13
|
+
## Silver Surfer Pre-Scan (ADR-048)
|
|
14
14
|
|
|
15
|
-
Before agent deployment,
|
|
15
|
+
Before agent deployment, the Silver Surfer selects the optimal roster:
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
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
|
-
**`--
|
|
26
|
-
**`--
|
|
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
|
|
@@ -125,6 +123,9 @@ Before agent deployment, run the Herald to select the optimal roster:
|
|
|
125
123
|
## Phase 12.5 — Wong's Pattern Usage Log
|
|
126
124
|
After build and before launch, log which patterns were used: pattern name, framework adaptation, custom mods. Store in `docs/pattern-usage.json`. Feeds Wong's promotion analysis in `/debrief`.
|
|
127
125
|
|
|
126
|
+
## Phase 12.75 — Distribution Verification Gate
|
|
127
|
+
If this build introduces a new shared file category (e.g., `.claude/agents/`, new patterns subdirectory), verify ALL 6 consumption paths include it: prepack.sh, copy-assets.sh, project-init.ts, updater.ts, FORGE_KEEPER.md, void.md. Missing one path = users silently miss the feature. (Field report #297.)
|
|
128
|
+
|
|
128
129
|
## Phase 13 — Launch (All agents)
|
|
129
130
|
1. Full checklist: SSL, email, payments, analytics, monitoring, backups, security headers, legal, performance, mobile, accessibility, all tests passing
|
|
130
131
|
2. Log final status to `/logs/phase-13-launch.md`
|
|
@@ -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
|
-
##
|
|
56
|
+
## Silver Surfer Pre-Scan (ADR-048)
|
|
57
57
|
|
|
58
|
-
Before agent deployment,
|
|
58
|
+
Before agent deployment, the Silver Surfer selects the optimal roster:
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
|
|
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
|
-
**`--
|
|
69
|
-
**`--
|
|
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
|
-
##
|
|
7
|
+
## Silver Surfer Pre-Scan (ADR-048)
|
|
8
8
|
|
|
9
|
-
Before agent deployment,
|
|
9
|
+
Before agent deployment, the Silver Surfer selects the optimal roster:
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
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
|
-
**`--
|
|
20
|
-
**`--
|
|
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
|
-
##
|
|
14
|
+
## Silver Surfer Pre-Scan (ADR-048)
|
|
15
15
|
|
|
16
|
-
Before agent deployment,
|
|
16
|
+
Before agent deployment, the Silver Surfer selects the optimal roster:
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
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
|
-
**`--
|
|
27
|
-
**`--
|
|
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
|
-
##
|
|
18
|
+
## Silver Surfer Pre-Scan (ADR-048)
|
|
19
19
|
|
|
20
|
-
Before agent deployment,
|
|
20
|
+
Before agent deployment, the Silver Surfer selects the optimal roster:
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
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
|
-
**`--
|
|
31
|
-
**`--
|
|
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
|
|
package/.claude/commands/qa.md
CHANGED
|
@@ -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
|
-
##
|
|
13
|
+
## Silver Surfer Pre-Scan (ADR-048)
|
|
14
14
|
|
|
15
|
-
Before agent deployment,
|
|
15
|
+
Before agent deployment, the Silver Surfer selects the optimal roster:
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
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
|
-
**`--
|
|
26
|
-
**`--
|
|
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
|
|
@@ -50,6 +48,10 @@ Before agent deployment, run the Herald to select the optimal roster:
|
|
|
50
48
|
## Step 2 — Baseline
|
|
51
49
|
Get the project running. Verify manually: app starts, primary flow works, auth works (if applicable), data persists, error states display.
|
|
52
50
|
|
|
51
|
+
**Dynamic count check:** Grep for hardcoded numeric claims ("263 agents", "37 patterns", etc.) across all pages and data files. Every count that can change between releases must be computed from the source, not hardcoded. (Field report #298.)
|
|
52
|
+
|
|
53
|
+
**Cross-array uniqueness audit:** If the codebase uses multiple data arrays for entity categories (e.g., leadAgents + subAgents), verify no entity appears in more than one array. Duplicates inflate totals. (Field report #298.)
|
|
54
|
+
|
|
53
55
|
## Step 2.5 — Smoke Tests
|
|
54
56
|
After build + restart, **Flash** `subagent_type: Flash` parallelizes curl commands against the running server for each new or modified feature:
|
|
55
57
|
- **Primary user flow:** Execute via curl/fetch against localhost — verify the end-to-end path works
|
|
@@ -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
|
-
##
|
|
11
|
+
## Silver Surfer Pre-Scan (ADR-048)
|
|
12
12
|
|
|
13
|
-
Before agent deployment,
|
|
13
|
+
Before agent deployment, the Silver Surfer selects the optimal roster:
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
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
|
-
**`--
|
|
24
|
-
**`--
|
|
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
|
-
##
|
|
11
|
+
## Silver Surfer Pre-Scan (ADR-048)
|
|
12
12
|
|
|
13
|
-
Before agent deployment,
|
|
13
|
+
Before agent deployment, the Silver Surfer selects the optimal roster:
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
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
|
-
**`--
|
|
24
|
-
**`--
|
|
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/.claude/commands/test.md
CHANGED
|
@@ -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
|
-
##
|
|
16
|
+
## Silver Surfer Pre-Scan (ADR-048)
|
|
17
17
|
|
|
18
|
-
Before agent deployment,
|
|
18
|
+
Before agent deployment, the Silver Surfer selects the optimal roster:
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
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
|
-
**`--
|
|
29
|
-
**`--
|
|
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:
|
package/.claude/commands/ux.md
CHANGED
|
@@ -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
|
-
##
|
|
11
|
+
## Silver Surfer Pre-Scan (ADR-048)
|
|
12
12
|
|
|
13
|
-
Before agent deployment,
|
|
13
|
+
Before agent deployment, the Silver Surfer selects the optimal roster:
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
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
|
-
**`--
|
|
24
|
-
**`--
|
|
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
|
|
@@ -32,6 +30,8 @@ Before agent deployment, run the Herald to select the optimal roster:
|
|
|
32
30
|
Detect: framework, styling system, component library, routing, state management.
|
|
33
31
|
Document in phase log: "How to run", key routes, where components/styles/copy live.
|
|
34
32
|
|
|
33
|
+
**Screenshot mandate (MANDATORY):** If the app is runnable, start the server, take screenshots of EVERY page via Playwright or browser, and READ them via the Read tool. Without screenshots, the review is code-reading — not visual verification. Take at desktop (1440x900), plus 375px and 768px for responsive proof-of-life.
|
|
34
|
+
|
|
35
35
|
## Step 1 — Product Surface Map
|
|
36
36
|
List every screen/route, primary user journeys, key shared components, and the state taxonomy (loading/empty/error/success/partial/unauthorized). Write to phase log.
|
|
37
37
|
|
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,30 @@ 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
|
+
|
|
25
|
+
## [23.5.4] - 2026-04-12
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
- **3 command-doc sync gaps** — build.md now includes Phase 12.75 (distribution verification gate), ux.md now includes screenshot mandate, qa.md now includes dynamic count check + cross-array uniqueness audit
|
|
29
|
+
- **ROADMAP.md version** — updated from v23.5.0 to v23.5.3
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
9
33
|
## [23.5.3] - 2026-04-12
|
|
10
34
|
|
|
11
35
|
### 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
|
-
|
|
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.
|
|
3
|
+
**Current:** 23.6.0
|
|
4
4
|
|
|
5
5
|
## Versioning Scheme
|
|
6
6
|
|
|
@@ -14,6 +14,8 @@ 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. |
|
|
18
|
+
| 23.5.4 | 2026-04-12 | Command-doc sync: build.md Phase 12.75, ux.md screenshots, qa.md dynamic counts |
|
|
17
19
|
| 23.5.3 | 2026-04-12 | Fix 201 broken subagent_type refs (filename→YAML name) + /campaign as default start command |
|
|
18
20
|
| 23.5.2 | 2026-04-12 | /void auto-cleanup ~/.claude/ duplicates + git init stack trace fix |
|
|
19
21
|
| 23.5.1 | 2026-04-12 | Fix CLI self-upgrade: wrong package name (voidforge → thevoidforge) + stale npx cache on re-exec |
|
package/docs/NAMING_REGISTRY.md
CHANGED
|
@@ -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
|
|