@chrono-meta/fh-gate 1.1.0 → 1.2.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/challenger.md +169 -0
- package/AGENTS.md +160 -0
- package/CATALOG.md +256 -0
- package/CHEATSHEET.md +367 -0
- package/CLAUDE.md +331 -0
- package/CONTRIBUTING.md +198 -0
- package/LICENSE +21 -0
- package/README.md +60 -7
- package/bin/fh-goal.js +9 -0
- package/bin/fh-run.js +9 -0
- package/docs/banner.png +0 -0
- package/docs/codex-compat.md +123 -0
- package/docs/pillars.svg +70 -0
- package/knowledge/shared/harness-core/fh_integration_contract.md +45 -28
- package/package.json +31 -6
- package/plugins/fh-commons/README.md +37 -0
- package/plugins/fh-commons/agents/quench-challenger.md +373 -0
- package/plugins/fh-commons/skills/convergence-loop/SKILL.md +155 -0
- package/plugins/fh-commons/skills/deliberation/SKILL.md +288 -0
- package/plugins/fh-commons/skills/mcp-circuit-breaker/SKILL.md +196 -0
- package/plugins/fh-commons/skills/token-budget-gate/SKILL.md +175 -0
- package/plugins/fh-meta/agents/fact-checker.md +121 -0
- package/plugins/fh-meta/agents/hub-persona-auditor.md +109 -0
- package/plugins/fh-meta/agents/persona-innovator.md +195 -0
- package/plugins/fh-meta/skills/agent-composer/SKILL.md +461 -0
- package/plugins/fh-meta/skills/agent-composer/SKILL_detail.md +464 -0
- package/plugins/fh-meta/skills/apex-review/SKILL.md +185 -0
- package/plugins/fh-meta/skills/asset-placement-gate/SKILL.md +135 -0
- package/plugins/fh-meta/skills/contention-layer/SKILL.md +127 -0
- package/plugins/fh-meta/skills/context-bridge-dispatch/SKILL.md +30 -0
- package/plugins/fh-meta/skills/context-bridge-dispatch/SKILL_detail.md +144 -0
- package/plugins/fh-meta/skills/context-doctor/SKILL.md +341 -0
- package/plugins/fh-meta/skills/cross-ecosystem-synergy-detection/SKILL.md +202 -0
- package/plugins/fh-meta/skills/deep-clarify/SKILL.md +144 -0
- package/plugins/fh-meta/skills/edit-manifest/SKILL.md +210 -0
- package/plugins/fh-meta/skills/field-harvest/SKILL.md +384 -0
- package/plugins/fh-meta/skills/frontier-digest/SKILL.md +272 -0
- package/plugins/fh-meta/skills/goal-quench/SKILL.md +509 -0
- package/plugins/fh-meta/skills/harness-doctor/SKILL.md +277 -0
- package/plugins/fh-meta/skills/harness-doctor/SKILL_detail.md +484 -0
- package/plugins/fh-meta/skills/harvest-loop/SKILL.md +231 -0
- package/plugins/fh-meta/skills/harvest-loop/SKILL_detail.md +201 -0
- package/plugins/fh-meta/skills/hub-cc-pr-reviewer/SKILL.md +129 -0
- package/plugins/fh-meta/skills/hub-cc-pr-reviewer/SKILL_detail.md +158 -0
- package/plugins/fh-meta/skills/install-doctor/SKILL.md +207 -0
- package/plugins/fh-meta/skills/install-wizard/SKILL.md +613 -0
- package/plugins/fh-meta/skills/marketplace-gate/SKILL.md +193 -0
- package/plugins/fh-meta/skills/memory-hygiene/SKILL.md +143 -0
- package/plugins/fh-meta/skills/meta-prompt-builder/SKILL.md +167 -0
- package/plugins/fh-meta/skills/meta-prompt-builder/SKILL_detail.md +37 -0
- package/plugins/fh-meta/skills/pipeline-conductor/SKILL.md +430 -0
- package/plugins/fh-meta/skills/plugin-recommender/SKILL.md +221 -0
- package/plugins/fh-meta/skills/plugin-recommender/SKILL_detail.md +220 -0
- package/plugins/fh-meta/skills/prompt-regression/SKILL.md +178 -0
- package/plugins/fh-meta/skills/public-surface-audit/SKILL.md +224 -0
- package/plugins/fh-meta/skills/return-path-gate/SKILL.md +257 -0
- package/plugins/fh-meta/skills/self-marketing-lint/SKILL.md +129 -0
- package/plugins/fh-meta/skills/sim-conductor/SKILL.md +364 -0
- package/plugins/fh-meta/skills/sim-conductor/SKILL_detail.md +337 -0
- package/plugins/fh-meta/skills/skill-splitter/SKILL.md +126 -0
- package/plugins/fh-meta/skills/skill-splitter/SKILL_detail.md +185 -0
- package/plugins/fh-meta/skills/source-grounding-audit/SKILL.md +230 -0
- package/plugins/fh-meta/skills/source-grounding-audit/SKILL_detail.md +182 -0
- package/plugins/fh-meta/skills/steel-quench/SKILL.md +226 -0
- package/plugins/fh-meta/skills/steel-quench/SKILL_detail.md +453 -0
- package/plugins/fh-meta/skills/verify-bidirectional/SKILL.md +238 -0
- package/scripts/fh-gate.sh +175 -40
- package/scripts/fh-goal.sh +182 -0
- package/scripts/fh-run.sh +269 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: asset-placement-gate
|
|
3
|
+
description: Routes a proposed skill, plugin, or agent to its correct home — forge-harness (FH) meta-skill, project-local agent, or drop — by applying a 4-criteria meta-skill bar followed by a project-local value test.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
allowed-tools: ["Read", "Grep", "Glob"]
|
|
6
|
+
model: sonnet
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# asset-placement-gate
|
|
10
|
+
|
|
11
|
+
Routes new skills, agents, and plugins to the correct location when proposed.
|
|
12
|
+
|
|
13
|
+
## Triggers
|
|
14
|
+
- "Should I make this an FH skill?"
|
|
15
|
+
- "Where should I put this agent?"
|
|
16
|
+
- When a new FH asset creation is proposed
|
|
17
|
+
- `/asset-placement-gate {asset name or description}`
|
|
18
|
+
|
|
19
|
+
### Natural Language Triggers (example user phrases)
|
|
20
|
+
|
|
21
|
+
When unsure where to place a new asset or skill:
|
|
22
|
+
|
|
23
|
+
| Example phrase | Intent |
|
|
24
|
+
|---|---|
|
|
25
|
+
| "Should I put this in a separate file?" | Asset necessity + placement decision |
|
|
26
|
+
| "Can this pattern be shared across projects?" | FH cross-project value assessment |
|
|
27
|
+
| "Is this only for our project, or can others use it too?" | cross-project vs local routing |
|
|
28
|
+
| "What if I turn this into a skill and use it across projects?" | FH 4-criteria trigger |
|
|
29
|
+
| "Where should I put this agent if I want to share it?" | Placement routing needed |
|
|
30
|
+
| "Should I extract this to a separate file, or leave it?" | Asset necessity + placement decision |
|
|
31
|
+
| "I'd like to manage this as a shared resource" | Cross-project shared management review |
|
|
32
|
+
| "Decide whether this stays local or is available to other teams too" | cross-project vs local routing |
|
|
33
|
+
| "I don't know where to save this" | Placement routing needed |
|
|
34
|
+
| "Should this become a shared asset?" | FH 4-criteria trigger |
|
|
35
|
+
|
|
36
|
+
### Execution Order (summary)
|
|
37
|
+
|
|
38
|
+
1. Request full file path from user (or accept natural language description)
|
|
39
|
+
2. Load asset content via `Read` (if path provided)
|
|
40
|
+
3. Evaluate Step 1 4-criteria in order (LLM makes the judgment directly)
|
|
41
|
+
4. ① + ④ both pass + at least one of ②③ passes → output **"FH suitable"**
|
|
42
|
+
Otherwise, proceed to Step 2 local assessment → if fails, output **"Project-local agent or no asset needed"**
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Step 0. Parse Input + Fetch Asset
|
|
47
|
+
|
|
48
|
+
Immediately after trigger, acquire asset content in the following order.
|
|
49
|
+
|
|
50
|
+
1. **Path provided** (contains `.md` or starts with `/`): Read the file.
|
|
51
|
+
- If read fails: "File not found. Please verify the path or provide a direct description." — then stop.
|
|
52
|
+
2. **Description provided** (natural language): Check whether all 3 fields can be identified:
|
|
53
|
+
- **Purpose**: What this asset does (1 line)
|
|
54
|
+
- **Trigger**: In what situation is it invoked?
|
|
55
|
+
- **Expected callers**: Which project / which users will use it?
|
|
56
|
+
|
|
57
|
+
All 3 identifiable → use as asset description.
|
|
58
|
+
Any 1 unclear → stop with this question:
|
|
59
|
+
> **The asset description is insufficient. Please provide:**
|
|
60
|
+
> 1. Purpose of this asset (one line)
|
|
61
|
+
> 2. In what situation is it invoked?
|
|
62
|
+
> 3. Which project/users will primarily use it?
|
|
63
|
+
3. **No input**: Stop with the question below.
|
|
64
|
+
> **Which asset should I evaluate?**
|
|
65
|
+
> Enter a file path (e.g., `.claude/agents/jira-create.md`) or a description.
|
|
66
|
+
|
|
67
|
+
After acquiring the asset content, **Claude directly** applies Step 1 4-criteria (no external calls).
|
|
68
|
+
|
|
69
|
+
## Done When
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
All steps 0–3 completed
|
|
73
|
+
+ Step 3 routing result output (location: FH meta-skill / local agent / drop)
|
|
74
|
+
+ Next action specified (write SKILL.md / create .claude/agents/ / none)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Step 1. FH Meta-Skill 4-Criteria Evaluation
|
|
80
|
+
|
|
81
|
+
| # | Criterion | Evaluation Question |
|
|
82
|
+
|:-:|---|---|
|
|
83
|
+
| ① | Cross-project value | Is this asset equally useful in other projects without depending on a specific project? |
|
|
84
|
+
| ② | Orchestration / judgment layer | Is it just a list of MCP/Bash calls, or a judgment layer that synthesizes multiple signals? |
|
|
85
|
+
| ③ | Not replaceable by built-ins | Can this be equally achieved with direct MCP calls or basic bash? (If yes, fails this criterion) |
|
|
86
|
+
| ④ | No overlap with existing FH skills | Does it not overlap 90%+ with existing FH skills? |
|
|
87
|
+
|
|
88
|
+
**FH suitable** → ① + ④ both pass + at least one of ②③ passes.
|
|
89
|
+
**Fail** → ① or ④ fails → immediate fail. Or both ②③ fail → proceed to Step 2.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Step 2. Project-Local Agent Value Assessment
|
|
94
|
+
|
|
95
|
+
For assets that failed Step 1:
|
|
96
|
+
|
|
97
|
+
| # | Criterion | Evaluation Question |
|
|
98
|
+
|:-:|---|---|
|
|
99
|
+
| A | Project-specific knowledge | Does it encode paths, conventions, or domain rules specific to a project? |
|
|
100
|
+
| B | Repeated workflow pattern | Is it a workflow performed repeatedly within that project? |
|
|
101
|
+
| C | Differentiation from built-ins | Does it provide local-context-based convenience such as automatic convention application or step integration? |
|
|
102
|
+
|
|
103
|
+
**Local agent suitable** → A satisfied + at least one of B·C.
|
|
104
|
+
→ Recommend creating `{project}/.claude/agents/{name}.md`.
|
|
105
|
+
|
|
106
|
+
**Drop** → A not satisfied or both B·C not satisfied.
|
|
107
|
+
→ Equivalent to built-in capability. No asset needed.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Step 3. Routing Result Output
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
[asset-placement-gate verdict]
|
|
115
|
+
|
|
116
|
+
Asset: {asset name}
|
|
117
|
+
Description: {one-line summary}
|
|
118
|
+
|
|
119
|
+
── FH 4-criteria ──────────────────
|
|
120
|
+
① Cross-project value : O / X
|
|
121
|
+
② Orchestration/judgment : O / X
|
|
122
|
+
③ Not replaceable : O / X
|
|
123
|
+
④ No overlap with existing : O / X ← required gate with ① (immediate fail if either fails)
|
|
124
|
+
→ FH suitable: Pass / Fail (① + ④ required + at least one of ②③)
|
|
125
|
+
|
|
126
|
+
── Project-local assessment ────── (if FH failed)
|
|
127
|
+
A. Project-specific knowledge : O / X
|
|
128
|
+
B. Repeated workflow pattern : O / X
|
|
129
|
+
C. Differentiation from built-ins : O / X
|
|
130
|
+
→ Local agent: Suitable / Drop
|
|
131
|
+
|
|
132
|
+
── Conclusion ────────────────────
|
|
133
|
+
Location: [FH meta-skill | {project} local agent | Drop]
|
|
134
|
+
Next action: [Write SKILL.md | Create .claude/agents/ | None]
|
|
135
|
+
```
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: contention-layer
|
|
3
|
+
description: When two skills or agents produce conflicting verdicts on the same output, reads the conflict as a signal rather than an error and harvests new skill candidates. Routes skills born from contention to fh-meta if they are meta-layer, to commons plugin if project-agnostic, or to field harvest if domain-specific. Triggered by "two skills conflict", "they produce different conclusions", "contention-layer", "contention harvest".
|
|
4
|
+
user-invocable: true
|
|
5
|
+
allowed-tools: ["Read", "Bash", "Grep", "Write"]
|
|
6
|
+
model: sonnet
|
|
7
|
+
category: Ecosystem Growth
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# contention-layer — Contention Harvest + New Skill Routing
|
|
11
|
+
|
|
12
|
+
When two skills conflict, **harvest the signal** instead of discarding one. Find the validation angle that neither skill addressed, and onboard new skill candidates into the FH ecosystem according to their routing path.
|
|
13
|
+
|
|
14
|
+
> Philosophical basis: Cognitive dissonance in humans is not a failure but a core asset — the ability to hold contradictions created culture. In the FH ecosystem, conflict is the signal from which new skills are born.
|
|
15
|
+
|
|
16
|
+
## Triggers
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
/contention-layer # analyze current conflict situation
|
|
20
|
+
/contention-layer --skills A B # specify two skills for contention analysis
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Phrase triggers: "two skills conflict" · "weird when used together" · "they produce different conclusions" · "contention harvest" · "contention"
|
|
24
|
+
|
|
25
|
+
## Step 1. Collect Conflict Points
|
|
26
|
+
|
|
27
|
+
Record clearly which skills conflicted on which output, and in which direction.
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
Conflicting skill A: {skill name} — verdict: {conclusion}
|
|
31
|
+
Conflicting skill B: {skill name} — verdict: {conclusion}
|
|
32
|
+
Conflicting output: {TC / diagnostic report / design document / ...}
|
|
33
|
+
Conflict point: {which item, by which criteria difference}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Conflict type classification**:
|
|
37
|
+
- `Criteria conflict`: Same item evaluated by different criteria (e.g., coverage 50% = Pass vs Fail)
|
|
38
|
+
- `Scope conflict`: A includes, B excludes a certain domain
|
|
39
|
+
- `Order conflict`: Same goal approached with different preconditions
|
|
40
|
+
- `Philosophy conflict`: The measurement purpose itself differs (e.g., risk reduction vs coverage maximization)
|
|
41
|
+
|
|
42
|
+
## Step 2. Contention Essence — Harvest Gate
|
|
43
|
+
|
|
44
|
+
Determine whether the conflict will be resolved by **exclusion** or converted to **harvest**.
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
Question 1: Did the two skills produce different verdicts because they had different validation angles?
|
|
48
|
+
→ Yes: Harvest candidate ✅
|
|
49
|
+
→ No (bug / malfunction): Exclude → escalate to install-doctor
|
|
50
|
+
|
|
51
|
+
Question 2: If that tension is resolved, can it be absorbed into one of the existing skills?
|
|
52
|
+
→ Possible: Recommend improving existing skill (no new skill needed)
|
|
53
|
+
→ Not possible (new angle): New skill candidate ✅
|
|
54
|
+
|
|
55
|
+
Question 3: Can the candidate skill be transplanted to any project without a specific domain?
|
|
56
|
+
→ Transplantable: Route to commons plugin ✅
|
|
57
|
+
→ Domain-specific: Field harvest signal
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Harvest Gate pass criteria: Question 1 ✅ + Question 2 not possible ✅ = new skill birth verdict
|
|
61
|
+
|
|
62
|
+
## Step 3. Placement Routing
|
|
63
|
+
|
|
64
|
+
| Skill nature | Routing path | Criterion |
|
|
65
|
+
|---|---|---|
|
|
66
|
+
| Harness engineering · install/audit/validation/onboarding | `fh-meta` candidate | Skills that operate/diagnose FH itself |
|
|
67
|
+
| Project-independent · transplantable anywhere · domain-agnostic | `commons` plugin | Universal utilities like validation angles or analysis frameworks |
|
|
68
|
+
| Specific domain/team/language/tech-stack | `field harvest` signal | Field team decision domain — not included in FH |
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
Routing conclusion:
|
|
72
|
+
New skill name candidate: {name}
|
|
73
|
+
Routing path: {fh-meta / commons / field}
|
|
74
|
+
Rationale: {1-line nature verdict}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Step 4. Generate SKILL.md Draft
|
|
78
|
+
|
|
79
|
+
After confirming routing path, auto-generate a new skill SKILL.md skeleton.
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
---
|
|
83
|
+
name: {slug}
|
|
84
|
+
description: {one line — include trigger keywords, no marketing language}
|
|
85
|
+
user-invocable: true
|
|
86
|
+
allowed-tools: [...]
|
|
87
|
+
model: sonnet
|
|
88
|
+
category: {category}
|
|
89
|
+
origin: contention-layer # contention birth history
|
|
90
|
+
contention-parents: [{skill A}, {skill B}]
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
# {skill name} — {subtitle}
|
|
94
|
+
|
|
95
|
+
{One sentence capturing the validation angle discovered from contention}
|
|
96
|
+
|
|
97
|
+
## Triggers
|
|
98
|
+
...
|
|
99
|
+
|
|
100
|
+
## Step 1. ...
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
After generating skeleton: **"I will place this draft at {path}. Shall I proceed?"** — confirmation gate.
|
|
104
|
+
|
|
105
|
+
## Output Format
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
[Contention Harvest Report]
|
|
109
|
+
Conflicting skills: {A} vs {B}
|
|
110
|
+
Conflict type: {Criteria / Scope / Order / Philosophy}
|
|
111
|
+
Harvest Gate: Pass / Fail
|
|
112
|
+
└ Reason: {1 line}
|
|
113
|
+
New skill candidate: {name or none}
|
|
114
|
+
Routing path: {fh-meta / commons / field / n/a}
|
|
115
|
+
Next action: {generate draft / exclude / recommend improving existing skill}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Done When
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
All steps 1–4 completed
|
|
122
|
+
+ [Contention Harvest Report] output (Harvest Gate Pass/Fail stated)
|
|
123
|
+
+ If new skill candidate exists: SKILL.md skeleton generated + user confirmation gate complete
|
|
124
|
+
+ If no new skill candidate: "Exclude / recommend improving existing skill" stated and exit
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Verdict: PASS (Harvest Gate Pass — new skill skeleton generated or no candidates confirmed) | CONDITIONAL_PASS (candidates found, user confirmation pending) | FAIL (Harvest Gate Fail — collision unresolvable, no new skill justified) | ESCALATE (role boundary ambiguous, requires human judgment)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: context-bridge-dispatch
|
|
3
|
+
description: >-
|
|
4
|
+
DEPRECATED — merged into agent-composer Step 3-a (2026-06-02).
|
|
5
|
+
Context Card injection (N≤2 standard / N≥3 Registry mode) + coordination-overhead budget + Focus Mode
|
|
6
|
+
are now part of agent-composer Step 3. Invoke /agent-composer for parallel dispatch.
|
|
7
|
+
user-invocable: false
|
|
8
|
+
allowed-tools: []
|
|
9
|
+
model: sonnet
|
|
10
|
+
deprecated: true
|
|
11
|
+
deprecated_reason: absorbed into agent-composer Step 3-a
|
|
12
|
+
deprecated_date: 2026-06-02
|
|
13
|
+
successor: agent-composer
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# context-bridge-dispatch — DEPRECATED
|
|
17
|
+
|
|
18
|
+
> **Merged into `agent-composer` Step 3-a (2026-06-02).**
|
|
19
|
+
> Context Card injection, Registry mode, coordination-overhead budget, and Focus Mode are now part of agent-composer Step 3.
|
|
20
|
+
> Use `/agent-composer` for all parallel dispatch with context injection.
|
|
21
|
+
|
|
22
|
+
## Content preserved at
|
|
23
|
+
|
|
24
|
+
`plugins/fh-meta/skills/agent-composer/SKILL.md §Step 3-a`
|
|
25
|
+
|
|
26
|
+
> **Detail**: See `SKILL_detail.md §Archive` — full original content preserved — read only for historical reference.
|
|
27
|
+
|
|
28
|
+
## Done When
|
|
29
|
+
|
|
30
|
+
Deprecated — no active execution path. Done When: skill is never directly invoked; all dispatch routes through `/agent-composer` Step 3-a (the successor). This entry satisfies the harness-doctor L2 M-tier requirement for missing Done When (CLAUDE.md §New Skill Creation Pre-Commit Gate).
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: context-bridge-dispatch-detail
|
|
3
|
+
description: Archived original body of the deprecated context-bridge-dispatch skill
|
|
4
|
+
load: on-demand
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## §Archive
|
|
8
|
+
|
|
9
|
+
# context-bridge-dispatch — Parallel Agent Context Bridge (archived)
|
|
10
|
+
|
|
11
|
+
In agent dispatch, sub-agents can read files but do not have access to the live conversation context of the main session. This skill generates a session context card before dispatch and injects it into each agent prompt.
|
|
12
|
+
|
|
13
|
+
## Triggers
|
|
14
|
+
|
|
15
|
+
| Phrase pattern | Situation |
|
|
16
|
+
|---|---|
|
|
17
|
+
| "do it in parallel" / "agent view" + 2+ tasks | Auto-triggered |
|
|
18
|
+
| "create a context bridge" | Explicit call |
|
|
19
|
+
| `/context-bridge-dispatch` | Explicit call |
|
|
20
|
+
| Immediately before dispatching 2+ agents | Auto-injected |
|
|
21
|
+
|
|
22
|
+
## Context Card Format
|
|
23
|
+
|
|
24
|
+
**N≤2 (standard)**:
|
|
25
|
+
```
|
|
26
|
+
[Session Context Card]
|
|
27
|
+
Purpose: {the goal of this session / task}
|
|
28
|
+
Completed: {what has already been decided or implemented — risk of duplication if agent doesn't know}
|
|
29
|
+
This agent's task: {the specific task for this agent}
|
|
30
|
+
Note: {constraints, directions, or history the agent must know before acting}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**N≥3 (Registry mode — DACS-inspired)**:
|
|
34
|
+
```
|
|
35
|
+
[Session Context Card]
|
|
36
|
+
Purpose: {session goal}
|
|
37
|
+
Completed: {done items + file paths}
|
|
38
|
+
This agent's task: {specific task}
|
|
39
|
+
Note: {constraints}
|
|
40
|
+
|
|
41
|
+
[Agent Registry]
|
|
42
|
+
Agent-1 ({role}): {≤1 sentence — what it's doing, key files}
|
|
43
|
+
Agent-2 ({role}): {≤1 sentence}
|
|
44
|
+
... (all agents except this one)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Registry entries keep other agents visible (≤200 tokens total) without flooding context.
|
|
48
|
+
Each agent gets its own full card + compressed view of the parallel picture.
|
|
49
|
+
|
|
50
|
+
## Step 1. Extract Session Context
|
|
51
|
+
|
|
52
|
+
Summarize the 3 key items from the current conversation:
|
|
53
|
+
- **Purpose**: Core goal of this session / request
|
|
54
|
+
- **Completed**: What has already been built or decided (include file paths and commits)
|
|
55
|
+
- **Note**: Constraints that could lead an agent in the wrong direction if unknown
|
|
56
|
+
|
|
57
|
+
## Step 2. Identify Agent List + Generate Individual Cards
|
|
58
|
+
|
|
59
|
+
For each of the N agents to dispatch:
|
|
60
|
+
- Common Context Card (Step 1 summary)
|
|
61
|
+
- Agent-specific item (`This agent's task` field customized per agent)
|
|
62
|
+
|
|
63
|
+
**N≥3 — Registry mode**: additionally generate one Registry entry per agent:
|
|
64
|
+
```
|
|
65
|
+
Agent-X ({role}): {what it's doing in ≤1 sentence} | files: {key paths}
|
|
66
|
+
```
|
|
67
|
+
Each agent's card includes the Registry entries for all *other* agents (omit its own).
|
|
68
|
+
Keep total Registry section ≤200 tokens. If an agent's task is simple (read-only lookup), its registry entry can be a single phrase.
|
|
69
|
+
|
|
70
|
+
## Step 3. Execute Parallel Dispatch
|
|
71
|
+
|
|
72
|
+
Prepend the Context Card to each agent's prompt and dispatch as a single message.
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
[Session Context Card]
|
|
76
|
+
...
|
|
77
|
+
|
|
78
|
+
{Agent's original task instruction}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Focus Mode (on-demand, N≥3)
|
|
82
|
+
|
|
83
|
+
When an agent's result is incomplete and it signals it needs another agent's full output:
|
|
84
|
+
1. Orchestrator identifies the target agent (a_i) whose full context is needed
|
|
85
|
+
2. Re-dispatch the requesting agent with: full Context Card of a_i + Registry-compressed entries for all others
|
|
86
|
+
3. Use only when genuinely needed — adds one round-trip latency
|
|
87
|
+
|
|
88
|
+
Trigger signal from agent: `"Need full context from Agent-X to proceed"` or equivalent explicit statement.
|
|
89
|
+
|
|
90
|
+
## Coordination-Overhead Budget
|
|
91
|
+
|
|
92
|
+
Centralized multi-agent coordination is not free: external reporting cites orchestrator-worker coordination adding ~+285% token overhead (see the digest Provenance), and coordination cost dominates once a wave exceeds ~4 agents. Apply the following before each dispatch wave.
|
|
93
|
+
|
|
94
|
+
| Rule | Constraint |
|
|
95
|
+
|---|---|
|
|
96
|
+
| **Parallel fan-out cap** | 3–4 agents per dispatch wave. This is the upper bound for the 2+ parallel dispatch in the Simplification Guard — do not flat-fan-out past 4. |
|
|
97
|
+
| **Capability-aware routing** | Route each subtask to the agent whose declared capability fits, reading `.claude/registry/agent_cards.json` as the routing source (`role` + `allowed_tools` + `writes`). Do not dispatch a `writes: false` audit agent (e.g. `fact-checker`, `hub-persona-auditor`) for a task needing edits. |
|
|
98
|
+
| **Escalation** | If a task genuinely needs >4 parallel agents, decompose hierarchically (supervisor → sub-waves) rather than flat fan-out. |
|
|
99
|
+
|
|
100
|
+
Source: `../../../../knowledge/shared/harness-core/harness_frontier_diagnosis_2026-06-02.md`
|
|
101
|
+
|
|
102
|
+
## Step 4. Aggregate Results
|
|
103
|
+
|
|
104
|
+
After all agents complete, consolidate results in the main session and report to the user.
|
|
105
|
+
|
|
106
|
+
## Simplification Guard
|
|
107
|
+
|
|
108
|
+
- Simple file lookup agents unrelated to context (e.g., "read file A") → card may be omitted
|
|
109
|
+
- Single agent dispatch → card injection optional
|
|
110
|
+
- 2+ parallel dispatch → card injection required
|
|
111
|
+
|
|
112
|
+
## Why This Is Necessary
|
|
113
|
+
|
|
114
|
+
Agents are spawned in an isolated environment (sub-agent sandbox). They can read what is recorded in files, but decisions made during the current main session conversation — direction changes, completed implementations, design intent — do not exist for the agent unless saved to a file.
|
|
115
|
+
|
|
116
|
+
Problems this disconnection causes:
|
|
117
|
+
- Attempting to redo already completed work
|
|
118
|
+
- Working in the old direction without knowing the current session's direction change
|
|
119
|
+
- Making wrong decisions without knowing the constraints
|
|
120
|
+
|
|
121
|
+
Context Bridge corrects this asymmetry.
|
|
122
|
+
|
|
123
|
+
## Done When
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
All steps 1–4 completed
|
|
127
|
+
+ Context Card injected at the front of each agent prompt
|
|
128
|
+
+ Results aggregated and reported after all agents complete
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Connected Skills
|
|
132
|
+
|
|
133
|
+
| Situation | Connection |
|
|
134
|
+
|---|---|
|
|
135
|
+
| Context collapse risk after a long session | `/context-doctor` |
|
|
136
|
+
| Task of promoting field patterns to FH | `/field-harvest` |
|
|
137
|
+
| When agent orchestration itself is complex | `agent-composer` |
|
|
138
|
+
| N≥3 agents / long-running orchestration (context drifts post-dispatch) | See sister asset: DACS (arXiv:2604.07911) — Registry+Focus dynamic isolation |
|
|
139
|
+
|
|
140
|
+
## Design Basis
|
|
141
|
+
|
|
142
|
+
Registry mode and Focus mode patterns absorbed from **DACS** (arXiv:2604.07911, Nickson Patel, 2026-04-09).
|
|
143
|
+
DACS validated: steering accuracy 98.4% vs 21% baseline at N=10; context efficiency 3.53×.
|
|
144
|
+
Cross-audit + import/propagate analysis: `tracks/_audit/session_2026-06-02_dacs-sister.md`
|