openhermes 4.3.0 → 4.11.2
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/CONTEXT.md +10 -1
- package/README.md +54 -42
- package/bootstrap.ts +396 -142
- package/harness/agents/oh-browser.md +97 -0
- package/harness/agents/oh-builder.md +78 -0
- package/harness/agents/oh-facade.md +75 -0
- package/harness/agents/oh-fusion.md +45 -0
- package/harness/agents/oh-gauntlet.md +71 -0
- package/harness/agents/oh-grill.md +71 -0
- package/harness/agents/oh-investigate.md +60 -0
- package/harness/agents/oh-manifest.md +95 -0
- package/harness/agents/oh-plan-review.md +40 -0
- package/harness/agents/oh-planner.md +50 -0
- package/harness/agents/oh-refactor.md +37 -0
- package/harness/agents/oh-retro.md +46 -0
- package/harness/agents/oh-review.md +85 -0
- package/harness/agents/oh-security.md +83 -0
- package/harness/agents/oh-ship.md +76 -0
- package/harness/agents/oh-skill-craft.md +38 -0
- package/harness/agents/openhermes.md +28 -73
- package/harness/codex/AUTOPILOT.md +235 -87
- package/harness/codex/CHARTER.md +80 -0
- package/harness/instructions/SHELL.md +76 -0
- package/harness/lib/background/background.test.ts +197 -0
- package/harness/lib/background/index.ts +7 -0
- package/harness/lib/background/interfaces.ts +31 -0
- package/harness/lib/background/manager.ts +320 -0
- package/harness/lib/composer/compose.test.ts +168 -0
- package/harness/lib/composer/compose.ts +65 -0
- package/harness/lib/composer/fragments/01-identity.md +1 -0
- package/harness/lib/composer/fragments/02-delegation.md +6 -0
- package/harness/lib/composer/fragments/03-permissions.md +13 -0
- package/harness/lib/composer/fragments/04-task-flow.md +15 -0
- package/harness/lib/composer/fragments/05-confidence.md +5 -0
- package/harness/lib/composer/fragments/06-parallelization.md +17 -0
- package/harness/lib/composer/fragments/07-shell.md +41 -0
- package/harness/lib/composer/fragments/08-routing.md +8 -0
- package/harness/lib/composer/fragments/09-guardrails.md +12 -0
- package/harness/lib/composer/index.ts +1 -0
- package/harness/lib/hooks/builtins/confidence-gate-hook.ts +70 -0
- package/harness/lib/hooks/builtins/delegation-depth-hook.ts +59 -0
- package/harness/lib/hooks/builtins/error-recovery-hook.ts +107 -0
- package/harness/lib/hooks/builtins/memory-sync-hook.ts +73 -0
- package/harness/lib/hooks/builtins/plan-check-hook.ts +43 -0
- package/harness/lib/hooks/builtins/route-tracking-hook.ts +147 -0
- package/harness/lib/hooks/builtins/sanity-check-hook.ts +52 -0
- package/harness/lib/hooks/builtins/shell-detect-hook.ts +96 -0
- package/harness/lib/hooks/hooks.test.ts +1016 -0
- package/harness/lib/hooks/index.ts +30 -0
- package/harness/lib/hooks/registry.ts +416 -0
- package/harness/lib/hooks/types.ts +71 -0
- package/harness/lib/memory/index.ts +18 -0
- package/harness/lib/memory/interfaces.ts +53 -0
- package/harness/lib/memory/memory-manager.ts +205 -0
- package/harness/lib/memory/memory.test.ts +491 -0
- package/harness/lib/memory/plan-store.ts +366 -0
- package/harness/lib/recovery/handler.ts +243 -0
- package/harness/lib/recovery/index.ts +14 -0
- package/harness/lib/recovery/interfaces.ts +48 -0
- package/harness/lib/recovery/patterns.ts +149 -0
- package/harness/lib/recovery/recovery.test.ts +312 -0
- package/harness/lib/sanity/anomaly-tracker.ts +127 -0
- package/harness/lib/sanity/checker.ts +178 -0
- package/harness/lib/sanity/index.ts +13 -0
- package/harness/lib/sanity/interfaces.ts +24 -0
- package/harness/lib/sanity/sanity.test.ts +472 -0
- package/harness/lib/sync/file-watcher.ts +174 -0
- package/harness/lib/sync/index.ts +11 -0
- package/harness/lib/sync/interfaces.ts +27 -0
- package/harness/lib/sync/plan-sync.ts +536 -0
- package/harness/lib/sync/sync.test.ts +832 -0
- package/harness/skills/oh-ascii/DEEP.md +292 -0
- package/harness/skills/oh-ascii/SKILL.md +31 -0
- package/harness/skills/oh-ascii/scripts/check_ascii_alignment.py +596 -0
- package/harness/skills/oh-browser/DEEP.md +54 -0
- package/harness/skills/oh-browser/SKILL.md +30 -0
- package/harness/skills/oh-builder/DEEP.md +63 -0
- package/harness/skills/oh-builder/SKILL.md +12 -90
- package/harness/skills/oh-expert/DEEP.md +85 -0
- package/harness/skills/oh-expert/SKILL.md +13 -106
- package/harness/skills/oh-facade/DEEP.md +182 -0
- package/harness/skills/oh-facade/SKILL.md +15 -279
- package/harness/skills/oh-freeze/DEEP.md +18 -0
- package/harness/skills/oh-freeze/SKILL.md +10 -19
- package/harness/skills/oh-full-output/DEEP.md +25 -0
- package/harness/skills/oh-full-output/SKILL.md +12 -65
- package/harness/skills/oh-fusion/DEEP.md +120 -0
- package/harness/skills/oh-fusion/SKILL.md +17 -295
- package/harness/skills/oh-gauntlet/DEEP.md +77 -0
- package/harness/skills/oh-gauntlet/SKILL.md +13 -105
- package/harness/skills/oh-grill/DEEP.md +51 -0
- package/harness/skills/oh-grill/SKILL.md +12 -63
- package/harness/skills/oh-guard/DEEP.md +19 -0
- package/harness/skills/oh-guard/SKILL.md +10 -24
- package/harness/skills/oh-handoff/DEEP.md +48 -0
- package/harness/skills/oh-handoff/SKILL.md +13 -23
- package/harness/skills/oh-health/DEEP.md +74 -0
- package/harness/skills/oh-health/SKILL.md +13 -76
- package/harness/skills/oh-init/DEEP.md +85 -0
- package/harness/skills/oh-init/SKILL.md +13 -127
- package/harness/skills/oh-investigate/DEEP.md +171 -0
- package/harness/skills/oh-investigate/SKILL.md +13 -66
- package/harness/skills/oh-issue/DEEP.md +21 -0
- package/harness/skills/oh-issue/SKILL.md +11 -27
- package/harness/skills/oh-manifest/DEEP.md +92 -0
- package/harness/skills/oh-manifest/SKILL.md +12 -109
- package/harness/skills/oh-plan-review/DEEP.md +90 -0
- package/harness/skills/oh-plan-review/SKILL.md +13 -115
- package/harness/skills/oh-planner/DEEP.md +172 -0
- package/harness/skills/oh-planner/SKILL.md +12 -149
- package/harness/skills/oh-prd/DEEP.md +45 -0
- package/harness/skills/oh-prd/SKILL.md +10 -26
- package/harness/skills/oh-refactor/DEEP.md +122 -0
- package/harness/skills/oh-refactor/SKILL.md +17 -410
- package/harness/skills/oh-retro/DEEP.md +26 -0
- package/harness/skills/oh-retro/SKILL.md +12 -24
- package/harness/skills/oh-review/DEEP.md +87 -0
- package/harness/skills/oh-review/SKILL.md +11 -97
- package/harness/skills/oh-security/DEEP.md +83 -0
- package/harness/skills/oh-security/SKILL.md +14 -96
- package/harness/skills/oh-ship/DEEP.md +141 -0
- package/harness/skills/oh-ship/SKILL.md +14 -32
- package/harness/skills/oh-skill-craft/DEEP.md +369 -0
- package/harness/skills/oh-skill-craft/SKILL.md +13 -177
- package/harness/skills/oh-skills-link/DEEP.md +16 -0
- package/harness/skills/oh-skills-link/SKILL.md +10 -20
- package/harness/skills/oh-skills-list/DEEP.md +20 -0
- package/harness/skills/oh-skills-list/SKILL.md +9 -22
- package/harness/skills/oh-triage/DEEP.md +23 -0
- package/harness/skills/oh-triage/SKILL.md +8 -24
- package/harness/skills/oh-worktree/DEEP.md +169 -0
- package/harness/skills/oh-worktree/SKILL.md +32 -0
- package/lib/harness-resolver.ts +8 -10
- package/package.json +7 -5
- package/tsconfig.json +1 -1
- package/harness/codex/CONSTITUTION.md +0 -73
- package/harness/codex/ROUTING.md +0 -92
- package/harness/commands/oh-doctor.md +0 -26
- package/harness/commands/oh-log.md +0 -18
- package/harness/instructions/RUNTIME.md +0 -30
- package/harness/skills/oh-caveman/SKILL.md +0 -42
- package/harness/skills/oh-learn/SKILL.md +0 -101
- package/lib/logger.ts +0 -75
package/CONTEXT.md
CHANGED
|
@@ -8,6 +8,15 @@
|
|
|
8
8
|
**Instruction** — Markdown loaded through `AGENTS.md` or `opencode.json` instructions.
|
|
9
9
|
**Bootstrap** — The first-message context injected by the OpenHermes plugin.
|
|
10
10
|
|
|
11
|
+
### Confidence Gate Terms
|
|
12
|
+
**Confidence Gate** — Phase 0.5 protocol in the autopilot loop that evaluates signal strength before routing. Bounded to 1 conversational exchange max.
|
|
13
|
+
**Confidence Level** — One of HIGH, MEDIUM, LOW, derived from signal axis evaluation.
|
|
14
|
+
**Transparent Gate** — HIGH confidence behavior: zero conversational overhead, proceed directly to Auto-Classify.
|
|
15
|
+
**Echo Gate** — MEDIUM confidence behavior: one-liner echo to confirm understanding, then classify.
|
|
16
|
+
**Question Gate** — LOW confidence behavior: one targeted question, then classify. Fallback to oh-planner on no answer.
|
|
17
|
+
**1 Exchange** — One user response to one orchestrator prompt. The gate is bounded to exactly 0 (HIGH) or 1 (MEDIUM/LOW) exchanges.
|
|
18
|
+
**Signal** — Evidence in user input used to evaluate confidence across 6 axes (domain vocabulary, deliverable clarity, scope, ambiguity, file reference, domain count).
|
|
19
|
+
|
|
11
20
|
## Relationships
|
|
12
21
|
- OpenHermes contains many Skills, Commands, Agents, and Instructions.
|
|
13
22
|
- Skills are invoked on demand.
|
|
@@ -15,4 +24,4 @@
|
|
|
15
24
|
- OpenHermes is the default primary Agent.
|
|
16
25
|
|
|
17
26
|
## Flagged Ambiguities
|
|
18
|
-
- Durable state
|
|
27
|
+
- Durable state resolved — 4-Tier Memory subsystem (System/Project/Mission/Task) now provides structured persistence with importance-driven retention.
|
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<h1 align="center">⟳ OpenHermes</h1>
|
|
3
|
-
<p align="center"><b>
|
|
4
|
-
<i>The AI orchestrator that never
|
|
3
|
+
<p align="center"><b>Pragmatic. Task-focused. Concise.</b><br>
|
|
4
|
+
<i>The AI orchestrator that never stalls — it classifies, delegates, and routes.</i></p>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<a href="https://www.npmjs.com/package/openhermes"><img src="https://img.shields.io/npm/v/openhermes?style=for-the-badge&label=version&color=FFD700" alt="
|
|
8
|
+
<a href="https://www.npmjs.com/package/openhermes"><img src="https://img.shields.io/npm/v/openhermes?style=for-the-badge&label=version&color=FFD700" alt="v4.11.1"></a>
|
|
9
9
|
<a href="https://github.com/nathwn12/openhermes/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green?style=for-the-badge" alt="License: MIT"></a>
|
|
10
10
|
<a href="https://opencode.ai"><img src="https://img.shields.io/badge/runs%20on-OpenCode-6366f1?style=for-the-badge" alt="Runs on OpenCode"></a>
|
|
11
11
|
<a href="https://github.com/nathwn12/openhermes"><img src="https://img.shields.io/badge/⭐%20star%20on-GitHub-181717?style=for-the-badge" alt="Star on GitHub"></a>
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
OpenHermes doesn't.
|
|
19
19
|
|
|
20
|
-
Drop it into OpenCode. Get a
|
|
20
|
+
Drop it into OpenCode. Get a closed-loop pipeline: auto-classify every request, delegate to specialists, route results automatically. No "can I?", no "shall I?", no "what next?" — just concise execution until the job is done.
|
|
21
21
|
|
|
22
22
|
```json
|
|
23
23
|
{ "plugin": ["openhermes@git+https://github.com/nathwn12/openhermes.git"] }
|
|
@@ -31,36 +31,37 @@ To install from `dev` (latest features, may be unstable):
|
|
|
31
31
|
|
|
32
32
|
---
|
|
33
33
|
|
|
34
|
-
## One sentence.
|
|
34
|
+
## One sentence. One engine.
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
OpenHermes v4.11 ships with a hardened internal architecture — 8 subsystems working together to make every session faster, more reliable, and fully autonomous:
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
|
43
|
-
|
|
44
|
-
| **
|
|
45
|
-
| **
|
|
46
|
-
| **
|
|
47
|
-
| **
|
|
48
|
-
| **5** | `oh-planner` → `oh-manifest` | Plan solid → enter build loop |
|
|
49
|
-
| **6** | `oh-planner` → `oh-builder` → `oh-gauntlet` | Implement → test → review → loop |
|
|
50
|
-
| **7** | `oh-gauntlet` → `oh-ship` | Tests pass → PR pipeline |
|
|
51
|
-
| **8** | `oh-ship` → `oh-retro` | Shipped → retrospective |
|
|
52
|
-
| **9** | `oh-retro` → `oh-planner` | Ready for the next cycle |
|
|
53
|
-
|
|
54
|
-
One sentence. Nine automated steps. Each skill loaded on demand, executed in isolation, routed to the next specialist. **Auto-classify, delegate, route, repeat.** That's the entire model.
|
|
38
|
+
| Subsystem | What it does |
|
|
39
|
+
|-----------|-------------|
|
|
40
|
+
| **Prompt Composer** | 9 modular fragments joined at runtime → byte-identical. Add a fragment, never edit the composition code. |
|
|
41
|
+
| **Auto-Recovery** | 9 error categories with typed actions — retry with backoff, compact on overflow, escalate on unknowns. Self-healing. |
|
|
42
|
+
| **4-Tier Memory** | System → Project → Mission → Task. Importance-scored, budget-enforced, plan-file-persisted. Context that survives hops. |
|
|
43
|
+
| **Hook Registry** | Pluggable pre-tool, post-tool, route, and session hooks with topological sort. 8 built-in hooks, zero routing boilerplate. |
|
|
44
|
+
| **MVCC Sync** | Atomic writes, version counters, conflict detection. Multiple sub-agents writing the same plan file — no data loss. |
|
|
45
|
+
| **Sanity Checker** | 8 output degeneration detectors — repetition, gibberish, low diversity — with automatic escalation and recovery injection. |
|
|
46
|
+
| **Background Cmd** | Fire-and-forget process spawning with timeout, status polling, and auto-cleanup. Non-blocking long-running tasks. |
|
|
47
|
+
| **Test Harness** | Disposable temp dirs (Symbol.asyncDispose), factory builders, restore-capable mocks. Professional-grade test utilities. |
|
|
55
48
|
|
|
56
49
|
---
|
|
57
50
|
|
|
58
|
-
###
|
|
51
|
+
### Four safety layers
|
|
59
52
|
|
|
60
53
|
The loop runs unsupervised because these never turn off:
|
|
61
54
|
|
|
62
|
-
- **🔁 Loop Guard** — stops if the same skill fires
|
|
55
|
+
- **🔁 Loop Guard** — stops if the same skill fires 5+ times or 8+ hops produce no progress
|
|
63
56
|
- **❓ Question Gate** — never routes into uncertainty; surfaces if input is missing
|
|
57
|
+
- **💬 Confidence Gate** — calibrates whether to skip, echo, or ask before classifying
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
HIGH ──→ classify silently (transparent gate)
|
|
61
|
+
MEDIUM ──→ echo + confirm, then classify
|
|
62
|
+
LOW ──→ ask + classify (defaults to oh-planner)
|
|
63
|
+
```
|
|
64
|
+
|
|
64
65
|
- **📋 Auto-Handoff** — writes a structured session artifact before context switches
|
|
65
66
|
|
|
66
67
|
---
|
|
@@ -69,15 +70,16 @@ The loop runs unsupervised because these never turn off:
|
|
|
69
70
|
|
|
70
71
|
| Capability | Why it matters |
|
|
71
72
|
|---|---|
|
|
72
|
-
| **Self-driving loop** | Type once. OpenHermes classifies, delegates, and routes — no pauses, no asking permission. |
|
|
73
|
-
| **
|
|
73
|
+
| **Self-driving loop** | Type once. OpenHermes classifies, delegates, and routes — no pauses, no asking permission, no verbosity. |
|
|
74
|
+
| **30 specialist skills** | Planning → building → testing → browser → security → review → shipping → retro. Every dev cycle phase. |
|
|
74
75
|
| **Auto-detected user skills** | Drop a skill in `~/.agents/skills/`. OpenHermes finds it. Same name as a built-in? Your version wins. Survives `npm update`. |
|
|
75
|
-
|
|
|
76
|
-
|
|
|
77
|
-
| **
|
|
78
|
-
| **
|
|
76
|
+
| **Shared operating model** | CHARTER + AUTOPILOT + CONTEXT + ETHOS injected every session. Every interaction grounded in the same rules. |
|
|
77
|
+
| **CORE/DEEP skill format** | Every skill is a two-file system: CORE (SKILL.md) handles 80% of passes in one read. DEEP.md loads on demand for hard cases. |
|
|
78
|
+
| **Plan file storage** | `~/.local/share/openhermes/plans/`. Survives `npm update`. |
|
|
79
|
+
| **8 internal subsystems** | Compositor, hooks, memory, recovery, sync, sanity checks, background commands, test harness — all native Node.js / TypeScript. |
|
|
80
|
+
| **Zero npm dependency additions** | All new subsystems use native Node.js and TypeScript only. No new packages. |
|
|
79
81
|
|
|
80
|
-
##
|
|
82
|
+
## 30 skills — three tiers
|
|
81
83
|
|
|
82
84
|
### Tier 4 — Pipeline orchestrators
|
|
83
85
|
Full multi-phase workflows:
|
|
@@ -95,20 +97,23 @@ Span multiple phases and coordinate other skills:
|
|
|
95
97
|
|
|
96
98
|
| Skill | Purpose |
|
|
97
99
|
|---|---|
|
|
98
|
-
| **oh-
|
|
100
|
+
| **oh-browser** | Browser automation via agent-browser CLI. Navigate pages, fill forms, take screenshots, scrape data, test web apps. |
|
|
99
101
|
| **oh-grill** | Stress-test plans through relentless Socratic questioning |
|
|
100
102
|
| **oh-plan-review** | Multi-lens review: Engineering, Design, DX, Strategy |
|
|
103
|
+
| **oh-planner** | Brainstorm, architect, autoplan, decision pipeline |
|
|
101
104
|
| **oh-security** | Audit: secrets, supply chain, CI/CD, OWASP, LLM security |
|
|
102
105
|
| **oh-refactor** | Surgical behavior-preserving refactoring |
|
|
103
106
|
| **oh-review** | Two-axis review (Standards + Spec) in parallel sub-agents |
|
|
104
107
|
| **oh-fusion** | Skill ingestion pipeline: discover → analyze → adapt → fuse → integrate |
|
|
105
108
|
| **oh-retro** | Weekly retrospective — analyze commit history and patterns |
|
|
109
|
+
| **oh-worktree** | Workspace isolation via git worktrees. Detect existing isolation, create isolated workspaces, run project setup, verify clean baseline. |
|
|
106
110
|
|
|
107
111
|
### Tier 2 — Focused skills
|
|
108
112
|
Single-purpose, one thing well:
|
|
109
113
|
|
|
110
114
|
| Skill | Purpose |
|
|
111
115
|
|---|---|
|
|
116
|
+
| **oh-ascii** | Complete ASCII diagramming: design patterns, generation, structural validation |
|
|
112
117
|
| **oh-expert** | AI self-diagnosis: sycophancy, hallucination, attention dynamics |
|
|
113
118
|
| **oh-full-output** | Override truncation, ban placeholders, enforce complete generation |
|
|
114
119
|
| **oh-health** | Code quality dashboard: tools, composite score, trend |
|
|
@@ -119,9 +124,7 @@ Single-purpose, one thing well:
|
|
|
119
124
|
| **oh-triage** | Issue triage state machine — classify, prioritise, assign |
|
|
120
125
|
| **oh-issue** | Break a plan/spec/PRD into independently-grabbable issues |
|
|
121
126
|
| **oh-prd** | Conversation → PRD → GitHub issue |
|
|
122
|
-
| **oh-caveman** | Ultra-compressed mode — cut token usage ~75% |
|
|
123
127
|
| **oh-freeze** | Restrict file edits to a specific directory |
|
|
124
|
-
| **oh-learn** | Extract, evolve, promote session learnings as instincts |
|
|
125
128
|
| **oh-guard** | Safety confirmation — warn before destructive operations |
|
|
126
129
|
| **oh-skills-link** | Verify OpenCode discovers the skill directory |
|
|
127
130
|
| **oh-skills-list** | List all available `oh-*` skills |
|
|
@@ -137,17 +140,26 @@ openhermes-pkg/
|
|
|
137
140
|
├── ETHOS.md # Operating principles
|
|
138
141
|
├── bootstrap.ts # Plugin entry — registers everything
|
|
139
142
|
├── index.ts # Package entrypoint
|
|
140
|
-
├── lib/ # harness-resolver.ts, logger.ts
|
|
141
143
|
├── harness/
|
|
142
144
|
│ ├── agents/ # Agent manifests (OpenHermes primary)
|
|
143
|
-
│ ├── codex/ #
|
|
144
|
-
│ ├── commands/ # Slash commands
|
|
145
|
-
│ ├── instructions/ #
|
|
146
|
-
│
|
|
145
|
+
│ ├── codex/ # CHARTER, AUTOPILOT
|
|
146
|
+
│ ├── commands/ # Slash commands
|
|
147
|
+
│ ├── instructions/ # SHELL.md
|
|
148
|
+
│ ├── lib/ # Internal subsystems
|
|
149
|
+
│ │ ├── composer/ # Prompt fragment composition
|
|
150
|
+
│ │ ├── recovery/ # Auto-recovery with error patterns
|
|
151
|
+
│ │ ├── memory/ # 4-tier hierarchical memory
|
|
152
|
+
│ │ ├── sync/ # MVCC plan synchronization
|
|
153
|
+
│ │ ├── hooks/ # Pluggable hook registry
|
|
154
|
+
│ │ ├── sanity/ # Output degeneration detection
|
|
155
|
+
│ │ └── background/ # Fire-and-forget command system
|
|
156
|
+
│ └── skills/ # 30 skill SKILL.md files (CORE/DEEP format)
|
|
157
|
+
├── lib/ # harness-resolver.ts
|
|
147
158
|
└── test/
|
|
159
|
+
└── harness/ # Test utilities (fixture, builders, mocks)
|
|
148
160
|
```
|
|
149
161
|
|
|
150
|
-
Plan files: `~/.local/share/
|
|
162
|
+
Plan files: `~/.local/share/openhermes/plans/<project>/plan-<nnn>.md`
|
|
151
163
|
|
|
152
164
|
---
|
|
153
165
|
|
|
@@ -155,7 +167,7 @@ Plan files: `~/.local/share/opencode/openhermes/plans/<project>-plan-<nnn>.md`
|
|
|
155
167
|
|
|
156
168
|
1. Add the plugin line to `opencode.json`
|
|
157
169
|
2. Restart or reload OpenCode
|
|
158
|
-
3.
|
|
170
|
+
3. Verify the plugin loaded in the startup log
|
|
159
171
|
4. Type *any* prompt — "plan a feature", "investigate this bug", "refactor this module"
|
|
160
172
|
|
|
161
173
|
The first time you see OpenHermes auto-route to a specialist skill without you asking — you'll feel the loop.
|