@heretek-ai/epistemic-swarm 0.7.9 → 0.7.10

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.
Files changed (69) hide show
  1. package/.agents/skills/factory/SKILL.md +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.omp/README.md +1 -1
  4. package/.omp/SYSTEM.md +8 -3
  5. package/MARKETPLACE.md +3 -2
  6. package/README.md +189 -63
  7. package/package.json +6 -3
  8. package/plugins/antigravity/README.md +1 -1
  9. package/plugins/antigravity/plugin.json +3 -1
  10. package/plugins/antigravity/skills/factory/SKILL.md +1 -1
  11. package/plugins/codex/README.md +1 -1
  12. package/plugins/codex/skills/factory/SKILL.md +1 -1
  13. package/plugins/gemini/GEMINI.md +5 -4
  14. package/plugins/gemini/README.md +2 -1
  15. package/plugins/gemini/skills/factory/SKILL.md +1 -1
  16. package/plugins/research-cache/skills/research_cache/SKILL.md +2 -2
  17. package/prompts/agent_alpha_thesis.md +1 -1
  18. package/prompts/agent_beta_antithesis.md +1 -1
  19. package/runner/__pycache__/__init__.cpython-311.pyc +0 -0
  20. package/runner/__pycache__/auctioneer.cpython-311.pyc +0 -0
  21. package/runner/__pycache__/auditor_engine.cpython-311.pyc +0 -0
  22. package/runner/__pycache__/claim_store.cpython-311.pyc +0 -0
  23. package/runner/__pycache__/claim_witness.cpython-311.pyc +0 -0
  24. package/runner/__pycache__/living_dossiers.cpython-311.pyc +0 -0
  25. package/runner/__pycache__/mcp_protocol.cpython-311.pyc +0 -0
  26. package/runner/__pycache__/mcp_server.cpython-311.pyc +0 -0
  27. package/runner/__pycache__/path_safety.cpython-311.pyc +0 -0
  28. package/runner/__pycache__/pcrb.cpython-311.pyc +0 -0
  29. package/runner/__pycache__/pcrb_verify.cpython-311.pyc +0 -0
  30. package/runner/__pycache__/refinement.cpython-311.pyc +0 -0
  31. package/runner/__pycache__/research_swarm.cpython-311.pyc +0 -0
  32. package/runner/__pycache__/state_machine.cpython-311.pyc +0 -0
  33. package/runner/pcrb.py +4 -2
  34. package/runner/research_swarm.py +131 -10
  35. package/runner/state_machine.py +166 -63
  36. package/runner/tests/__pycache__/test_auction_order.cpython-311.pyc +0 -0
  37. package/runner/tests/__pycache__/test_backends.cpython-311.pyc +0 -0
  38. package/runner/tests/__pycache__/test_bet1_spike.cpython-311.pyc +0 -0
  39. package/runner/tests/__pycache__/test_claim_store.cpython-311.pyc +0 -0
  40. package/runner/tests/__pycache__/test_claim_witness.cpython-311.pyc +0 -0
  41. package/runner/tests/__pycache__/test_claude_plugin.cpython-311.pyc +0 -0
  42. package/runner/tests/__pycache__/test_domain_packs.cpython-311.pyc +0 -0
  43. package/runner/tests/__pycache__/test_factory.cpython-311.pyc +0 -0
  44. package/runner/tests/__pycache__/test_fleet_seam.cpython-311.pyc +0 -0
  45. package/runner/tests/__pycache__/test_living_dossiers.cpython-311.pyc +0 -0
  46. package/runner/tests/__pycache__/test_manifest_concurrency.cpython-311.pyc +0 -0
  47. package/runner/tests/__pycache__/test_mcp_server.cpython-311.pyc +0 -0
  48. package/runner/tests/__pycache__/test_opencode_ux.cpython-311.pyc +0 -0
  49. package/runner/tests/__pycache__/test_opencode_v2_registrars.cpython-311.pyc +0 -0
  50. package/runner/tests/__pycache__/test_pcrb.cpython-311.pyc +0 -0
  51. package/runner/tests/__pycache__/test_refinement.cpython-311.pyc +0 -0
  52. package/runner/tests/__pycache__/test_swarm.cpython-311.pyc +0 -0
  53. package/runner/tests/__pycache__/test_swarm_config.cpython-311.pyc +0 -0
  54. package/runner/tests/__pycache__/test_sweep_regressions.cpython-311.pyc +0 -0
  55. package/runner/tests/__pycache__/test_webcache.cpython-311.pyc +0 -0
  56. package/runner/tests/test_backends.py +20 -1
  57. package/runner/tests/test_manifest_concurrency.py +187 -0
  58. package/scripts/__pycache__/bet1_advisory_spike.cpython-311.pyc +0 -0
  59. package/scripts/__pycache__/build_adapters.cpython-311.pyc +0 -0
  60. package/scripts/__pycache__/divergence_experiment.cpython-311.pyc +0 -0
  61. package/scripts/build_adapters.py +1 -5
  62. package/skills/brainstorming/SKILL.md +1 -1
  63. package/skills/epistemic_search/scripts/__pycache__/search.cpython-311.pyc +0 -0
  64. package/skills/research_cache/SKILL.md +2 -2
  65. package/skills/research_cache/__pycache__/__init__.cpython-311.pyc +0 -0
  66. package/skills/research_cache/__pycache__/hasher.cpython-311.pyc +0 -0
  67. package/skills/swarm_config/SKILL.md +2 -2
  68. package/skills/swarm_config/__pycache__/__init__.cpython-311.pyc +0 -0
  69. package/skills/swarm_config/__pycache__/configure.cpython-311.pyc +0 -0
@@ -6,7 +6,7 @@ discovery finds an entry; the real skill lives in the IUMBTEMS repo.
6
6
  - Canonical prose & scripts: `skills/factory/`
7
7
  - Canonical programmatic surface: `python3 runner/mcp_server.py` (stdio MCP),
8
8
  or one-shot: `python3 runner/mcp_server.py call <tool> '{...json...}'`
9
- - MCP tools for this skill: `iumbtems_brainstorm`, `iumbtems_darkharvest`, `iumbtems_socratic_frontier`
9
+ - MCP tools for this skill: `iumbtems_factory`
10
10
 
11
11
  Epistemic rules apply regardless of harness: tag claims as
12
12
  `[VERIFIED: <hash>]`, `[INFERRED: <reasoning>]`, `[HYPOTHESIS: <test>]`, or
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "epistemic-swarm",
3
- "version": "0.7.9",
3
+ "version": "0.7.10",
4
4
  "description": "High-Integrity Dialectic Research Agent Harness for Claude Code enforcing empirical evidence over parametric hallucination.",
5
5
  "author": {
6
6
  "name": "Heretek AI",
package/.omp/README.md CHANGED
@@ -29,7 +29,7 @@ tail -F ~/.omp/logs/omp.$(date +%F).log # extension load errors land here, not
29
29
  .omp/
30
30
  ├── README.md # this file
31
31
  ├── SYSTEM.md # project system-prompt override (safe subset of base_epistemic_system.md)
32
- ├── commands/*.md # reusable slash commands: /swarm /grill /audit /scout /brainstorming /swarm-config
32
+ ├── commands/*.md # reusable slash commands: /swarm /grill /audit /scout /brainstorming /darkharvest /factory /domainexpansion /swarm-config
33
33
  ├── prompts/*.md # prompt templates with `description:` frontmatter + $1/$@ expansion
34
34
  └── hooks/pre/*.ts # pre-tool hooks (epistemic redirect)
35
35
  └── hooks/post/*.ts # post-tool hooks (audit-trail log)
package/.omp/SYSTEM.md CHANGED
@@ -5,8 +5,13 @@ You operate under the Epistemic Integrity Protocol (see `prompts/base_epistemic_
5
5
  - Parametric memory is quarantined. Fetch, verify, then assert.
6
6
  - Tag every factual claim: `[VERIFIED:<hash>]`, `[INFERRED:<chain>]`, `[HYPOTHESIS:<falsification>]`, `[NEGATIVE_KNOWLEDGE:<query>]`.
7
7
  - Cache every source to `.research/sources/<sha256>.md` before citing
8
- (`python3 skills/research-cache/hasher.py cache --url "<URL>" --content "$(cat file.md)"`).
9
- - Skills: `skills/{grilling,research_cache,epistemic_search,swarm_config,code_audit,oss_scout,brainstorming}/SKILL.md`.
8
+ (`python3 skills/research_cache/hasher.py cache --url "<URL>" --content "$(cat file.md)"`).
9
+ - Skills: `skills/{grilling,research_cache,epistemic_search,swarm_config,code_audit,oss_scout,brainstorming,darkharvest,factory}/SKILL.md`.
10
10
  - Runners (Bun/Python kernels may call back into agent tools read/search/task):
11
- `python3 runner/research_swarm.py --mode <research|audit|scout|hybrid|brainstorm> --objective "<...>"`.
11
+ `python3 runner/research_swarm.py --mode <research|audit|scout|hybrid|brainstorm|darkharvest> --objective "<...>"`.
12
+ - Backends are host-native by default: `claude -p` on Claude Code, `opencode run` on
13
+ OpenCode (via `IUMBTEMS_HOST`). Override with `--backend {auto,claude,opencode}`,
14
+ `IUMBTEMS_BACKEND_<ROLE>`, or `.research/config.json` `agents.<role>.backend`.
15
+ - Evidence lives under `.research/`: dossiers in `.research/scratchpads/<scope_id>/`,
16
+ content-addressed sources in `.research/sources/`.
12
17
  - `/brainstorming` MUST produce feature vectors + lateral moves + falsifiable spikes, never bug-fix lists.
package/MARKETPLACE.md CHANGED
@@ -40,7 +40,8 @@ claude plugin marketplace list
40
40
  ### 1. `epistemic-swarm` (Flagship Harness)
41
41
  - **Manifest**: [`.claude-plugin/plugin.json`](file:///.claude-plugin/plugin.json)
42
42
  - **Components**:
43
- - **Skills**: `skills/grilling`, `skills/research_cache`, `skills/epistemic_search`
43
+ - **Skills** (9): `skills/grilling`, `skills/research_cache`, `skills/epistemic_search`, `skills/swarm_config`, `skills/code_audit`, `skills/oss_scout`, `skills/brainstorming`, `skills/darkharvest`, `skills/factory`
44
+ - **Agent Tools** (MCP): `iumbtems_swarm_research`, `iumbtems_code_audit`, `iumbtems_oss_scout`, `iumbtems_brainstorm`, `iumbtems_darkharvest`, `iumbtems_factory`, `iumbtems_config`, `iumbtems_verify_quote`, `iumbtems_socratic_frontier`, plus the brief/ledger/domain-pack tools (`export_brief`, `verify_brief`, `reindex_claims`, `report_retraction`, `check_staleness`, `set_domain_pack`)
44
45
  - **Hooks**: `hooks/hooks.json` (`PreToolUse` hook intercepting ungrounded `WebSearch` and `WebFetch` to enforce verifiable SHA-256 caching)
45
46
  - **Zero-Key Search**: DuckDuckGo Lite search and automated content-addressed document caching out of the box (zero API key required).
46
47
  - **Safe MCP Servers & Accelerators**:
@@ -68,7 +69,7 @@ claude plugin marketplace list
68
69
  ### 3. `research-cache` (Modular Tool)
69
70
  - **Manifest**: [`plugins/research-cache/.claude-plugin/plugin.json`](file:///plugins/research-cache/.claude-plugin/plugin.json)
70
71
  - **Components**:
71
- - **Skill & Engine**: `skills/research-cache` (Content-addressed SHA256 raw source storage and quote validation).
72
+ - **Skill & Engine**: `skills/research_cache` (published under the plugin id `research-cache`) — content-addressed SHA-256 raw source storage and verbatim quote validation.
72
73
  - **Install**:
73
74
  ```bash
74
75
  claude plugin install research-cache@heretek-official
package/README.md CHANGED
@@ -11,13 +11,23 @@
11
11
 
12
12
  ---
13
13
 
14
+ ## 🏷️ Naming
15
+
16
+ Two names appear throughout this project, and they are not interchangeable:
17
+
18
+ | Name | What it is |
19
+ | :--- | :--- |
20
+ | **IUMBTEMS** | The project and brand ("I Use My Brain To Express My Self"). Repo: [`Heretek-AI/IUMBTEMS`](https://github.com/Heretek-AI/IUMBTEMS). |
21
+ | **Epistemic Swarm** | The technical/product name of the harness. Ships as the npm package [`@heretek-ai/epistemic-swarm`](https://www.npmjs.com/package/@heretek-ai/epistemic-swarm), the Claude Code plugin `epistemic-swarm@heretek-official`, and the `iumbtems` / `epistemic-swarm` binaries. |
22
+
14
23
  ## 💡 The Philosophy of IUMBTEMS
15
24
 
16
- **IUMBTEMS** (**I Use My Brain To Express My Self**) is grounded in a singular design mandate: **Epistemic Sovereignty**.
25
+ **IUMBTEMS** is grounded in a singular design mandate: **Epistemic Sovereignty**.
17
26
 
18
27
  Modern LLMs suffer from parametric hallucination, sycophancy, and premature narrative consensus. They invent citations, smooth over technical contradictions, and extrapolate beyond empirical bounds.
19
28
 
20
- **IUMBTEMS** restores rigorous empirical grounding by pairing an unconstrained divergent exploration phase (Matt Pocock-style Socratic grilling and assumption inversion) with a multi-agent dialectic swarm:
29
+ **IUMBTEMS** restores rigorous empirical grounding by pairing an unconstrained divergent exploration phase (Socratic grilling and assumption inversion) with a multi-agent dialectic swarm:
30
+
21
31
  1. **Agent Alpha (The Proponent / Thesis)**: Gathers corroborating primary sources, empirical proofs, and implementation benchmarks.
22
32
  2. **Agent Beta (The Adversary / Antithesis / Red Team)**: Hunts for counter-arguments, retracted data, methodology flaws, and edge-case failures.
23
33
  3. **Epistemic Auditor**: Verifies cited quotes verbatim against content-addressed raw markdown caches (`.research/sources/<sha256>.md`), prunes ungrounded assertions, and scores dialectic divergence.
@@ -26,8 +36,7 @@ Modern LLMs suffer from parametric hallucination, sycophancy, and premature narr
26
36
 
27
37
  ## 🌐 Universal Multi-Platform Support
28
38
 
29
- IUMBTEMS is packaged as a single universal npm package (`@heretek-ai/epistemic-swarm` with `iumbtems` binary) that runs across seven major autonomous agent harnesses.
30
- Single source of truth: `skills/*` + `prompts/*`. The canonical programmatic surface is the first-party MCP server (`python3 runner/mcp_server.py`), which exposes the `iumbtems_*` tools in-process. Harness targets register that server and carry only thin skill stubs generated with `python3 scripts/build_adapters.py` (`iumbtems adapters`) into `plugins/*`, `.agents/skills` — stubs point at the canonical `skills/*` prose instead of copying code.
39
+ IUMBTEMS is packaged as a single universal npm package that runs across seven autonomous agent harnesses. Single source of truth: `skills/*` + `prompts/*`. The canonical programmatic surface is the first-party MCP server (`python3 runner/mcp_server.py`), which exposes the `iumbtems_*` tools. Harness targets register that server and carry only thin skill stubs generated with `python3 scripts/build_adapters.py` (`iumbtems adapters`) into `plugins/*` and `.agents/skills`.
31
40
 
32
41
  ### 1. Claude Code (Native Marketplace & Overlay)
33
42
 
@@ -44,6 +53,8 @@ claude plugin install epistemic-swarm@heretek-official
44
53
  # Or install standalone modular plugins:
45
54
  claude plugin install socratic-grilling@heretek-official
46
55
  claude plugin install research-cache@heretek-official
56
+ claude plugin install darkharvest@heretek-official
57
+ claude plugin install factory@heretek-official
47
58
  ```
48
59
  See [MARKETPLACE.md](MARKETPLACE.md) for full component specifications.
49
60
 
@@ -51,7 +62,7 @@ See [MARKETPLACE.md](MARKETPLACE.md) for full component specifications.
51
62
  Install skills and MCP servers directly into `~/.claude/` and `~/.claude.json`:
52
63
  ```bash
53
64
  npx @heretek-ai/epistemic-swarm install
54
- # or from local repo:
65
+ # or from a local clone:
55
66
  npm run install-local
56
67
  ```
57
68
  - Run `/grilling` inside any interactive Claude Code session.
@@ -61,22 +72,14 @@ npm run install-local
61
72
  ```
62
73
 
63
74
  ### 2. Pi (`pi.dev`)
64
- Install directly into Pi via its native package manager:
65
75
  ```bash
66
76
  pi install npm:@heretek-ai/epistemic-swarm
67
77
  ```
68
- - **Slash Commands**:
69
- - `/swarm <objective>`: Run autonomous dialectic research swarm
70
- - `/grill`: Launch Socratic assumption-inversion and decision trees
71
- - `/swarm-config`: Inspect or tune search engine, depth (1-4), and mode
72
- - `/audit <target>`: Run dialectic codebase architecture and security audit
73
- - `/scout <feature>`: Scout open-source software and clean-room blueprints
74
- - **Agent Tools**: `iumbtems_config`, `iumbtems_verify_quote`, `iumbtems_brainstorm`.
75
- - OMP (`omp.sh`, oh-my-pi) shares the same entry point: `omp install npm:@heretek-ai/epistemic-swarm`, project commands in `.omp/commands/` (`/swarm`, `/grill`, `/audit`, `/scout`, `/brainstorming`, `/swarm-config`), prompts in `.omp/prompts/`, hooks in `.omp/hooks/pre|post/`.
76
- - All commands automatically respect `.research/config.json`.
78
+ - **Slash Commands**: `/swarm`, `/grill`, `/swarm-config`, `/audit`, `/scout`, `/brainstorming`, `/darkharvest`, `/factory`, `/domainexpansion`.
79
+ - **Agent Tools**: the full `iumbtems_*` MCP surface (see [MCP Tool Reference](#-mcp-tool-reference)).
77
80
 
78
81
  ### 3. OpenCode V2 ([opencode.ai/v2/docs](https://opencode.ai/v2/docs))
79
- Enable IUMBTEMS in your `~/.config/opencode/opencode.jsonc` or project `opencode.jsonc`. You can configure settings declaratively using native OpenCode V2 syntax:
82
+ Enable IUMBTEMS in `~/.config/opencode/opencode.jsonc` or a project `opencode.jsonc`:
80
83
  ```jsonc
81
84
  {
82
85
  "$schema": "https://opencode.ai/config.json",
@@ -92,26 +95,21 @@ Enable IUMBTEMS in your `~/.config/opencode/opencode.jsonc` or project `opencode
92
95
  ]
93
96
  }
94
97
  ```
95
- OpenCode V2 automatically registers the full tool suite:
96
- - `iumbtems_config`: Inspect or dynamically adjust active parameters in `.research/config.json`.
97
- - `iumbtems_code_audit`: Dispatches dialectic codebase review (structural architect vs. red-team).
98
- - `iumbtems_oss_scout`: Scouts open-source libraries, audits licenses, and builds clean-room blueprints.
99
- - `iumbtems_swarm_research`: Dispatches dialectic researcher pairs (Thesis vs. Antithesis).
100
- - `iumbtems_verify_quote`: Audits verbatim citations against the SHA-256 source cache.
101
- - `iumbtems_socratic_frontier`: Advances the Socratic decision tree frontier.
102
- - `iumbtems_brainstorm`: Lateral ideation portfolio (feature vectors + paradigm moves + falsifiable spikes).
98
+ The plugin registers through OpenCode V2's transform domains at setup — `tool.transform` and `command.transform` (catalog), `agent.transform` (the shipped role profiles), and `skill.transform` (bundled `skills/*/SKILL.md`) — so no config-snippet install step is required. Agent profiles are registered with `AgentEditor.update` (V2 has no `add()`).
99
+
100
+ Slash commands: `/swarm`, `/grill`, `/swarm-config`, `/audit`, `/scout`, `/brainstorming` (alias `/brainstorm`), `/darkharvest`, `/factory`, `/domainexpansion`.
103
101
 
104
- *(See [config/opencode-snippet.json](config/opencode-snippet.json) for custom agent definitions).*
102
+ *(See [config/opencode-snippet.json](config/opencode-snippet.json) for the agent definitions.)*
105
103
 
106
104
  ### 4. Gemini CLI
107
105
  ```bash
108
106
  gemini extensions install https://github.com/Heretek-AI/IUMBTEMS --path plugins/gemini
109
107
  # local dev: gemini extensions link ./plugins/gemini
110
108
  ```
111
- Bundle: `plugins/gemini/gemini-extension.json` (MCP servers, incl. the canonical `iumbtems` server), `GEMINI.md` (context), `commands/*.toml` (`/swarm`, `/grill`, `/audit`, `/scout`, `/brainstorming`, `/swarm-config`), `hooks/hooks.json`, `skills/` thin stubs.
109
+ Bundle: `plugins/gemini/gemini-extension.json` (manifest + MCP servers), `GEMINI.md` (context), `commands/*.toml` (`/swarm`, `/grill`, `/audit`, `/scout`, `/brainstorming`, `/darkharvest`, `/factory`, `/domainexpansion`, `/swarm-config`), `hooks/hooks.json`, `skills/` thin stubs.
112
110
 
113
111
  ### 5. Codex CLI
114
- Codex reads repo-local `.agents/skills/*` (already generated in this repo) — `$brainstorming <prompt>` or implicit activation. Distributable pack in `plugins/codex/` (`openai.yaml`, `config.toml.snippet` for `[mcp_servers.*]`, `AGENTS.md.snippet`). Legacy `~/.codex/prompts/*.md` (`/prompts:<name>`) is deprecated; use skills.
112
+ Codex reads repo-local `.agents/skills/*` (generated in this repo) — `$brainstorming <prompt>` or implicit activation. Distributable pack in `plugins/codex/` (`openai.yaml`, `config.toml.snippet` for `[mcp_servers.*]`, `AGENTS.md.snippet`). Legacy `~/.codex/prompts/*.md` (`/prompts:<name>`) is deprecated; use skills.
115
113
 
116
114
  ### 6. Google AntiGravity (`agy`)
117
115
  ```bash
@@ -124,14 +122,49 @@ Bundle: `plugins/antigravity/plugin.json`, `mcp_config.json`, `hooks.json`, `ski
124
122
  ```bash
125
123
  omp install npm:@heretek-ai/epistemic-swarm
126
124
  ```
127
- Shares the pi extension entry point (`package.json: {omp, pi}` blocks). Project-local slash commands (`.omp/commands/*.md`), prompt templates (`.omp/prompts/*.md`), hooks (`.omp/hooks/pre|post/*.ts`), system override (`.omp/SYSTEM.md`).
125
+ Shares the Pi extension entry point (`package.json: {omp, pi}` blocks). Project-local slash commands (`.omp/commands/*.md`), prompt templates (`.omp/prompts/*.md`), hooks (`.omp/hooks/pre|post/*.ts`), system override (`.omp/SYSTEM.md`).
126
+
127
+ ---
128
+
129
+ ## 🔌 Agent Runtime Backends
130
+
131
+ Agent work runs on whichever harness invoked it — **host-native by default**:
132
+
133
+ | Host | Default backend |
134
+ | :--- | :--- |
135
+ | Claude Code | `claude -p` |
136
+ | OpenCode V2 | `opencode run` (selected via `IUMBTEMS_HOST=opencode`) |
137
+ | Manual CLI run | `claude -p`, or `opencode run` when `claude` is absent from `PATH` |
138
+
139
+ Override, highest precedence first:
140
+
141
+ 1. `--backend {auto,claude,opencode}` (CLI) / `backend` argument (MCP tools)
142
+ 2. `IUMBTEMS_BACKEND_ALPHA` / `IUMBTEMS_BACKEND_BETA` (and `IUMBTEMS_MODEL_<ROLE>`)
143
+ 3. `.research/config.json` → `agents.<role>.backend` / `agents.<role>.model`
144
+ 4. Host-native default
145
+
146
+ Related environment variables:
147
+
148
+ | Variable | Purpose |
149
+ | :--- | :--- |
150
+ | `IUMBTEMS_HOST` | Host hint (`claude` / `opencode`); set automatically by the OpenCode plugin. |
151
+ | `IUMBTEMS_BACKEND_<ROLE>` / `IUMBTEMS_MODEL_<ROLE>` | Per-role backend argv / model override (e.g. `IUMBTEMS_BACKEND_BETA=opencode`). |
152
+ | `IUMBTEMS_AGENT_CWD` | Working directory for spawned agents: `project` (default), `package`, or an absolute path. |
153
+ | `IUMBTEMS_PROJECT_DIR` | Project root used to resolve the `.research/` workspace (set by the OpenCode plugin; wins over the process cwd). |
154
+ | `IUMBTEMS_PCRB_KEY` | HMAC key for proof-carrying brief signing/verification. |
155
+ | `IUMBTEMS_FETCH_TTL_DAYS` / `IUMBTEMS_FETCH_MAX_INLINE` | Fetch-cache TTL and inline size cap (bytes). |
156
+ | `IUMBTEMS_TOOL_NAMES` | Override the projected tool-name list. |
157
+
158
+ Spawned agents inherit `PWD` set to their working directory, so harnesses that resolve their project root from `$PWD` (OpenCode) land in the same tree the runner reads from.
159
+
160
+ > **Legacy config migration:** configs written before 0.7.6 could pin `agents.<role>.backend = ["claude", "-p"]`, which silently overrode the host-native default. That pin is now migrated to `null` on load (only when the top-level `backend` is not an explicit `"claude"`), and the migration is persisted by `iumbtems config`. To deliberately keep Claude on an OpenCode host, set `"backend": "claude"`.
128
161
 
129
162
  ---
130
163
 
131
164
  ## ⚡ CLI Command Reference
132
165
 
133
166
  ```bash
134
- # Inspect or update active configuration (search engine, depth, mode)
167
+ # Inspect or update active configuration (search engine, depth, mode, backend)
135
168
  iumbtems config
136
169
  iumbtems config --engine duckduckgo --depth 3 --mode audit
137
170
 
@@ -148,82 +181,175 @@ iumbtems run "Sub-millisecond ZK state updates on L1 rollups"
148
181
  iumbtems brainstorm "Where do we go from here?"
149
182
 
150
183
  # Product competitor teardown with per-feature harvest verdicts
151
- iumbtems darkharvest "Paseo-class agent harness competitor" --seeds https://github.com/a/b,https://github.com/c/d --max-repos 6 --mock-claude
184
+ iumbtems darkharvest "Paseo-class agent harness competitor" --seeds https://github.com/a/b,https://github.com/c/d --max-repos 6
152
185
 
153
- # Coding-factory run-state helper (init, phase-add, qa-record, expansion, stop)
186
+ # Coding-factory run-state helper
154
187
  iumbtems factory init --run arena
155
188
  iumbtems factory phase-add --run arena --phase 01-handoff --goal "Session handoff" --accept "round-trips;STOP kills loop"
156
- iumbtems factory expansion --run arena --loops 10
157
-
158
- # OpenCode slash commands (also Pi/OMP/Gemini): /factory, /domainexpansion, /darkharvest, /scout, /audit, /grill, /swarm
189
+ iumbtems factory qa-record --run arena --phase 01-handoff --seat qa-a --verdict pass
190
+ iumbtems factory expansion --run arena --loops 10 --max-loops 10
191
+ iumbtems factory stop --run arena # writes .factory/STOP kill-file
159
192
 
160
- # Run Socratic grilling and decision frontier calculation
193
+ # Socratic grilling and decision-frontier calculation
161
194
  iumbtems grill --objective "L1 vs L2 state verification trade-offs"
162
195
 
163
- # Environment diagnostics (Claude Code, Node, Python)
164
- iumbtems doctor
196
+ # Rebuild harness adapter mirrors (skills -> plugins/*, .agents/skills)
197
+ iumbtems adapters
165
198
 
166
- # Run automated test suite
167
- iumbtems test
199
+ # Other utility commands
200
+ iumbtems install # install skills & MCP servers into ~/.claude/
201
+ iumbtems marketplace # print the Claude Code marketplace catalog
202
+ iumbtems doctor # check environment requirements
203
+ iumbtems test # run the automated test suite
204
+ iumbtems help # full usage text
168
205
  ```
169
206
 
170
- ### Specialized Dialectic Skills & Slash Commands
171
- - **`/swarm-config`**: Interactive tuning of search engines (DuckDuckGo, Brave, Firecrawl, SearXNG), iteration depth, divergence thresholds, and operating modes.
172
- - **`/code-audit`**: Dialectic codebase review pairing a Structural Architect (thesis) with a Vulnerability Red-Teamer (antithesis) enforcing line-number proofs (`file:///path#L10-25`).
173
- - **`/oss-scout`**: Evaluates GitHub repositories, package ecosystems (npm, crates.io, PyPI), license contamination (GPL/AGPL copyleft vs MIT/Apache), and outputs clean-room re-implementation blueprints.
207
+ Common options: `--mock-claude` (synthetic responses, zero API cost), `--frontier <file>` (settled `frontier.json`), `--mode <research|audit|scout|hybrid|brainstorm|darkharvest>`, `--engine <duckduckgo|brave|firecrawl|searxng>`, `--depth <1-4>`, `--backend <auto|claude|opencode>`, `--dir <path>`.
208
+
209
+ The `epistemic-swarm` binary is an alias of `iumbtems`.
210
+
211
+ ---
212
+
213
+ ## 🧰 MCP Tool Reference
214
+
215
+ The canonical MCP server (`python3 runner/mcp_server.py`, stdio) exposes these tools to every harness:
216
+
217
+ | Tool | Purpose |
218
+ | :--- | :--- |
219
+ | `iumbtems_config` | Inspect or adjust active parameters in `.research/config.json` (search engine, depth, mode, backend, per-agent backends). |
220
+ | `iumbtems_swarm_research` | Dispatch the dialectic researcher pair (Alpha thesis vs Beta antithesis) with epistemic auditing. Long-running; blocks until complete. |
221
+ | `iumbtems_code_audit` | Dialectic codebase review: structural architect vs vulnerability red-team. |
222
+ | `iumbtems_oss_scout` | Scout open-source libraries, audit licenses, and build clean-room blueprints. |
223
+ | `iumbtems_brainstorm` | Lateral ideation portfolio: feature vectors, paradigm moves, falsifiable spikes. Never bug fixes. |
224
+ | `iumbtems_darkharvest` | Product competitor teardown with per-feature `depend\|vendor\|clean-room\|skip` verdicts and SPDX attribution. |
225
+ | `iumbtems_factory` | Drive factory run state: `init` / `phase-add` / `qa-record` / `expansion` / `stop`. State in `<project>/.factory` and `.roadmap`. |
226
+ | `iumbtems_verify_quote` | Audit a verbatim citation against the SHA-256 source cache (`.research/sources/<hash>.md`). |
227
+ | `iumbtems_socratic_frontier` | Inspect or advance the Socratic decision-tree frontier (`.research/frontier.json`). |
228
+ | `iumbtems_export_brief` | Export a proof-carrying research brief (PCRB): a self-contained signed bundle of synthesis, claims, quote witnesses, and full source texts. |
229
+ | `iumbtems_verify_brief` | Verify a PCRB against its bundled sources: manifest integrity, HMAC signature, and every quote re-checked. Exit-fail semantics — no trust in the producing LLM. |
230
+ | `iumbtems_reindex_claims` | Rebuild the derived `claims.sqlite` index from `.research` flat files (idempotent; flat files are the source of truth). |
231
+ | `iumbtems_report_retraction` | Record a RETRACTED/REVISED event for a cached source; dependent `VERIFIED` claims degrade to STALE/SUSPECT on the next audit. |
232
+ | `iumbtems_check_staleness` | One claim-degradation pass: join claims against retraction events, write the status ledger, queue re-runs for degraded scopes. Never mutates dossiers. |
233
+ | `iumbtems_set_domain_pack` | Activate a Regulated Domain Pack (`biopharma` / `quant` / `legal` epistemic constitution) for subsequent audits. |
234
+
235
+ ---
236
+
237
+ ## 🎯 Skills & Slash Commands
238
+
239
+ Nine canonical skills live in `skills/*/SKILL.md`. Each maps to a slash command on harnesses that support them and to the MCP tool that carries its programmatic surface.
240
+
241
+ | Skill | Slash | Surface |
242
+ | :--- | :--- | :--- |
243
+ | `grilling` | `/grill` | `iumbtems_socratic_frontier` |
244
+ | `research_cache` | — | `iumbtems_verify_quote` |
245
+ | `epistemic_search` | — | research MCP servers (`brave-search`, `firecrawl`, `searxng`) |
246
+ | `swarm_config` | `/swarm-config` | `iumbtems_config` |
247
+ | `code_audit` | `/audit` | `iumbtems_code_audit` |
248
+ | `oss_scout` | `/scout` | `iumbtems_oss_scout` |
249
+ | `brainstorming` | `/brainstorming` | `iumbtems_brainstorm` |
250
+ | `darkharvest` | `/darkharvest` | `iumbtems_darkharvest` |
251
+ | `factory` | `/factory` | `iumbtems_factory` |
252
+
253
+ - **`/swarm-config`**: Interactive tuning of search engines (DuckDuckGo, Brave, Firecrawl, SearXNG), iteration depth, divergence threshold, backend, and operating mode.
254
+ - **`/audit`**: Dialectic codebase review pairing a Structural Architect (thesis) with a Vulnerability Red-Teamer (antithesis) enforcing line-number proofs (`file:///path#L10-25`).
255
+ - **`/scout`**: Evaluates GitHub repositories and package ecosystems (npm, crates.io, PyPI), license contamination (GPL/AGPL copyleft vs MIT/Apache), and outputs clean-room re-implementation blueprints.
174
256
  - **`/darkharvest`**: Product competitor teardown (seed inspirations + prompt, expand to adjacents). Competitor × capability matrix, both-ways white-space gaps, per-feature `depend|vendor|clean-room-rebuild|skip` verdicts with SPDX attribution. Permissive-only vendoring; GPL/AGPL spec-rebuild only.
175
- - **`/factory`**: Coding-factory Manager loop — grill-gated phased build (manager profile), per-phase programmer spawns, dual QA (3 retries then escalate), explicit sign-off per phase.
257
+ - **`/factory`**: Coding-factory Manager loop — grill-gated phased build, per-phase programmer spawns, dual QA (3 failures then escalate), explicit sign-off per phase.
176
258
  - **`/domainexpansion`**: Autonomous agent-guided self-improvement loop (`/domainexpansion <n>`, max 10); bypasses gates, stops on count OR `.factory/STOP` OR user kill.
177
- - **`/grilling`**: Socratic assumption-inversion and Matt Pocock-style design tree frontier discovery.
259
+ - **`/grilling`**: Socratic assumption-inversion and design-tree frontier discovery.
178
260
  - **`epistemic_search`**: Zero-key DuckDuckGo Lite search and content-addressed fetch with automatic SHA-256 caching.
179
261
 
262
+ ---
263
+
264
+ ## 🗂️ Workspace & Evidence Model
265
+
266
+ All state lives in a local `.research/` directory (resolved from `IUMBTEMS_PROJECT_DIR` when set, else the process cwd):
267
+
268
+ ```
269
+ .research/
270
+ ├── config.json # active parameters (engine, depth, mode, backend, agents)
271
+ ├── manifest.json # session metadata, scope DAG, status
272
+ ├── frontier.json # settled Socratic decision frontier (input)
273
+ ├── sources/ # content-addressed raw cache
274
+ │ ├── <sha256>.md # verbatim cleaned markdown
275
+ │ └── <sha256>.json # provenance: url, title, headers, timestamp, query
276
+ ├── scratchpads/<scope_id>/ # per-scope dossiers
277
+ │ ├── alpha_dossier.json # proponent findings
278
+ │ ├── beta_dossier.json # adversary counter-evidence
279
+ │ ├── audit_report.json # quote-verification log, divergence score, trimmed claims
280
+ │ └── scope_synthesis.md
281
+ ├── ledger/claim_status.json # Living Dossiers status ledger
282
+ ├── requeue.json # scopes queued for re-run after degradation
283
+ ├── claims.sqlite # derived claim index (rebuildable)
284
+ └── final_synthesis.md # master report
285
+ ```
286
+
287
+ **Living Dossiers:** when a cached source is retracted or revised (`iumbtems_report_retraction`), dependent verified claims degrade to STALE/SUSPECT on the next `iumbtems_check_staleness` pass, and affected scopes are queued for re-run. Dossiers are never mutated in place.
288
+
289
+ **Proof-Carrying Research Briefs (PCRB):** `iumbtems_export_brief` emits a self-contained, HMAC-signed bundle (synthesis + claims + quote witnesses + full source texts); `iumbtems_verify_brief` re-checks every quote against the bundled sources with exit-fail semantics.
290
+
291
+ **Regulated Domain Packs:** `iumbtems_set_domain_pack` activates a stricter epistemic constitution for `biopharma`, `quant`, or `legal` audits.
180
292
 
181
293
  ---
182
294
 
183
295
  ## 🏷️ Epistemic Tagging Taxonomy
184
296
 
185
- Every factual claim in IUMBTEMS carries an explicit evidentiary tag:
297
+ Every factual claim carries an explicit evidentiary tag:
186
298
 
187
299
  | Tag | Formal Definition | Verification Standard |
188
300
  | :--- | :--- | :--- |
189
- | `[VERIFIED: <hash>]` | Direct empirical fact from primary source. | Verbatim quote must exist in `.research/sources/<hash>.md`. |
301
+ | `[VERIFIED: <hash>]` | Direct empirical fact from a primary source. | Verbatim quote must exist in `.research/sources/<hash>.md`. |
190
302
  | `[INFERRED: <reasoning>]` | Deductive conclusion from verified facts. | Explicit list of parent verified premises and bridging logic. |
191
303
  | `[HYPOTHESIS: <test>]` | Speculative assertion or projection. | Must define a measurable falsification criterion. |
192
- | `[NEGATIVE_KNOWLEDGE: <query>]` | Verified absence of empirical evidence. | Records exact search query and literature gap. |
304
+ | `[NEGATIVE_KNOWLEDGE: <query>]` | Verified absence of empirical evidence. | Records the exact search query and literature gap. |
193
305
 
194
306
  ---
195
307
 
196
308
  ## 🔍 Multi-Tier OSINT & Search Pipeline
197
309
 
198
- 1. **Discovery Tier**: SearXNG (unbiased metasearch) and Brave Search API.
199
- 2. **Extraction Tier**: Firecrawl (headless JavaScript rendering, DOM cleaning, Markdown extraction).
310
+ 1. **Discovery Tier**: DuckDuckGo Lite (zero-key default), SearXNG (self-hosted metasearch), Brave Search API.
311
+ 2. **Extraction Tier**: Firecrawl (headless JavaScript rendering, DOM cleaning, Markdown extraction), with a clean readability fallback.
200
312
  3. **Academic Tier**: Semantic Scholar / arXiv MCPs for DOI citation resolution.
201
313
  4. **Caching Tier**: Content-addressed SHA-256 storage (`skills/research_cache/hasher.py`).
202
314
 
203
315
  ### Local Infrastructure (Optional)
204
- Run local SearXNG and Firecrawl instances via Docker Compose:
205
316
  ```bash
206
- docker compose -f config/docker-compose.infra.yml up -d
317
+ docker compose -f config/docker-compose.infra.yml up -d # local SearXNG + Firecrawl
207
318
  ```
208
319
 
209
320
  ---
210
321
 
211
- ## 📦 CI/CD & Trusted Publishing
322
+ ## 🛠️ Repository Layout & Adapter Generation
212
323
 
213
- This package is distributed on npm under `@heretek-ai` with [npm Trusted Publishing (OIDC)](https://docs.npmjs.com/trusted-publishers) and GitHub Actions.
324
+ - **Canonical prose/specs**: `skills/*/SKILL.md`, `prompts/*.md`, `docs/*.md`.
325
+ - **Canonical programmatic surface**: `runner/mcp_server.py`.
326
+ - **Generated — never hand-edit**: `plugins/{antigravity,gemini,codex}/skills/**`, `.agents/skills/**`, and the modular copies under `plugins/{research-cache,socratic-grilling,darkharvest,factory}/skills/**`.
214
327
 
215
- ### First-Time CLI Bootstrap
328
+ Regenerate and verify:
216
329
  ```bash
217
- git pull origin main
218
- npm publish --access public
330
+ python3 scripts/build_adapters.py # rebuild stubs + modular copies
331
+ python3 scripts/build_adapters.py --check # CI gate: fails on drift
332
+ python3 -m unittest discover -s runner/tests
219
333
  ```
220
334
 
221
- ### GitHub Actions OIDC Setup
222
- 1. In `npmjs.com/package/@heretek-ai/epistemic-swarm/access`, add **GitHub Actions** as a Trusted Publisher:
223
- - **Repository Owner**: `Heretek-AI`
224
- - **Repository Name**: `IUMBTEMS`
225
- - **Workflow Pattern**: `.github/workflows/publish.yml`
226
- 2. Future releases publish automatically upon pushing a GitHub Release or version tag (`v*.*.*`)!
335
+ `skills/research-cache` is a symlink to `skills/research_cache`, kept so the legacy hyphenated path resolves in a checkout (the Claude Code overlay installer creates the same alias under `~/.claude/skills/`).
336
+
337
+ ---
338
+
339
+ ## 📦 CI/CD & Trusted Publishing
340
+
341
+ The package is distributed on npm as `@heretek-ai/epistemic-swarm` using [npm Trusted Publishing (OIDC)](https://docs.npmjs.com/trusted-publishers) with GitHub Actions — no long-lived npm token.
342
+
343
+ **Release flow** (see [AGENTS.md](AGENTS.md#releases)):
344
+
345
+ 1. Bump `package.json` **and** `.claude-plugin/plugin.json` **and** the lockfile in lockstep.
346
+ 2. Commit and push to `main`.
347
+ 3. `gh release create vX.Y.Z` — the `Publish to npm` workflow
348
+ (`.github/workflows/publish.yml`) runs on `release: published`, executes the
349
+ test suite, and publishes with provenance.
350
+ 4. Verify: `curl https://registry.npmjs.org/@heretek-ai%2Fepistemic-swarm` (allow propagation time).
351
+
352
+ Manual `npm publish` is not part of the flow; the trusted publisher is bound to `Heretek-AI/IUMBTEMS` + `.github/workflows/publish.yml`.
227
353
 
228
354
  ---
229
355
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@heretek-ai/epistemic-swarm",
3
- "version": "0.7.9",
4
- "description": "IUMBTEMS: I Use My Brain To Express My Self — High-Integrity Dialectic Research Agent Harness for Claude Code, OpenCode V2, Pi, OMP (oh-my-pi), Gemini CLI, Codex CLI, and AntiGravity",
3
+ "version": "0.7.10",
4
+ "description": "IUMBTEMS (Epistemic Swarm) — High-Integrity Dialectic Research Agent Harness for Claude Code, OpenCode V2, Pi (pi.dev), OMP (oh-my-pi), Gemini CLI, Codex CLI, and AntiGravity",
5
5
  "main": "bin/cli.js",
6
6
  "bin": {
7
7
  "iumbtems": "bin/cli.js",
@@ -32,6 +32,7 @@
32
32
  "homepage": "https://github.com/Heretek-AI/IUMBTEMS#readme",
33
33
  "keywords": [
34
34
  "iumbtems",
35
+ "epistemic-swarm",
35
36
  "i-use-my-brain-to-express-my-self",
36
37
  "pi-package",
37
38
  "omp-package",
@@ -66,7 +67,9 @@
66
67
  "swarm-intelligence",
67
68
  "code-audit",
68
69
  "oss-scout",
69
- "clean-room-engineering"
70
+ "clean-room-engineering",
71
+ "proof-carrying-briefs",
72
+ "living-dossiers"
70
73
  ],
71
74
  "pi": {
72
75
  "extensions": [
@@ -22,7 +22,7 @@ plugins/antigravity/
22
22
  └── rules/ # workspace rules (epistemic integrity invariant)
23
23
  ```
24
24
 
25
- Skills auto-promote to slash commands (`/grilling`, `/brainstorming`, ...).
25
+ Skills auto-promote to slash commands (`/grilling`, `/brainstorming`, `/darkharvest`, `/factory`, ...).
26
26
  Set optional secrets via workspace settings / env:
27
27
  `BRAVE_SEARCH_API_KEY`, `FIRECRAWL_API_KEY`, `FIRECRAWL_API_URL`, `SEARXNG_URL`.
28
28
  Zero-key DuckDuckGo + readability fallback works with no keys.
@@ -14,7 +14,9 @@
14
14
  "./skills/swarm_config",
15
15
  "./skills/code_audit",
16
16
  "./skills/oss_scout",
17
- "./skills/brainstorming"
17
+ "./skills/brainstorming",
18
+ "./skills/darkharvest",
19
+ "./skills/factory"
18
20
  ],
19
21
  "agents": ["./agents"],
20
22
  "rules": ["./rules"]
@@ -6,7 +6,7 @@ discovery finds an entry; the real skill lives in the IUMBTEMS repo.
6
6
  - Canonical prose & scripts: `skills/factory/`
7
7
  - Canonical programmatic surface: `python3 runner/mcp_server.py` (stdio MCP),
8
8
  or one-shot: `python3 runner/mcp_server.py call <tool> '{...json...}'`
9
- - MCP tools for this skill: `iumbtems_brainstorm`, `iumbtems_darkharvest`, `iumbtems_socratic_frontier`
9
+ - MCP tools for this skill: `iumbtems_factory`
10
10
 
11
11
  Epistemic rules apply regardless of harness: tag claims as
12
12
  `[VERIFIED: <hash>]`, `[INFERRED: <reasoning>]`, `[HYPOTHESIS: <test>]`, or
@@ -10,7 +10,7 @@ Codex auto-discovers `.agents/skills/*` from CWD up to repo root.
10
10
  This repo ships generated mirrors there (see `scripts/build_adapters.py`):
11
11
 
12
12
  ```
13
- .agents/skills/{grilling,research_cache,epistemic_search,swarm_config,code_audit,oss_scout,brainstorming}/SKILL.md
13
+ .agents/skills/{grilling,research_cache,epistemic_search,swarm_config,code_audit,oss_scout,brainstorming,darkharvest,factory}/SKILL.md
14
14
  ```
15
15
 
16
16
  Invoke: `$brainstorming Where do we go from here?` or let Codex pick
@@ -6,7 +6,7 @@ discovery finds an entry; the real skill lives in the IUMBTEMS repo.
6
6
  - Canonical prose & scripts: `skills/factory/`
7
7
  - Canonical programmatic surface: `python3 runner/mcp_server.py` (stdio MCP),
8
8
  or one-shot: `python3 runner/mcp_server.py call <tool> '{...json...}'`
9
- - MCP tools for this skill: `iumbtems_brainstorm`, `iumbtems_darkharvest`, `iumbtems_socratic_frontier`
9
+ - MCP tools for this skill: `iumbtems_factory`
10
10
 
11
11
  Epistemic rules apply regardless of harness: tag claims as
12
12
  `[VERIFIED: <hash>]`, `[INFERRED: <reasoning>]`, `[HYPOTHESIS: <test>]`, or
@@ -8,8 +8,9 @@ You operate under the Epistemic Integrity Protocol
8
8
  `[HYPOTHESIS:<falsification>]`, `[NEGATIVE_KNOWLEDGE:<query>]`.
9
9
  - Cache every source to `.research/sources/<sha256>.md` before citing.
10
10
  - Available skills: `grilling`, `research_cache`, `epistemic_search`,
11
- `swarm_config`, `code_audit`, `oss_scout`, `brainstorming`
12
- (see `skills/<name>/SKILL.md`).
13
- - Runners: `python3 runner/research_swarm.py --mode <research|audit|scout|hybrid|brainstorm> --objective "<...>"`.
11
+ `swarm_config`, `code_audit`, `oss_scout`, `brainstorming`, `darkharvest`,
12
+ `factory` (see `skills/<name>/SKILL.md`).
13
+ - Runners: `python3 runner/research_swarm.py --mode <research|audit|scout|hybrid|brainstorm|darkharvest> --objective "<...>"`.
14
14
  - Custom commands (`commands/*.toml`): `/swarm`, `/grill`, `/audit`,
15
- `/scout`, `/brainstorming`, `/swarm-config`.
15
+ `/scout`, `/brainstorming`, `/darkharvest`, `/factory`, `/domainexpansion`,
16
+ `/swarm-config`.
@@ -12,7 +12,8 @@ gemini extensions list
12
12
 
13
13
  Contents: `gemini-extension.json` (manifest + MCP servers), `GEMINI.md`
14
14
  (context loader), `commands/*.toml` (`/swarm`, `/grill`, `/audit`,
15
- `/scout`, `/brainstorming`, `/swarm-config`), `hooks/hooks.json`,
15
+ `/scout`, `/brainstorming`, `/darkharvest`, `/factory`, `/domainexpansion`,
16
+ `/swarm-config`), `hooks/hooks.json`,
16
17
  `skills/` (generated copies of canonical `skills/` — run
17
18
  `scripts/build_adapters.py`). Secrets via env:
18
19
  `BRAVE_SEARCH_API_KEY`, `FIRECRAWL_API_KEY`, `FIRECRAWL_API_URL`,
@@ -6,7 +6,7 @@ discovery finds an entry; the real skill lives in the IUMBTEMS repo.
6
6
  - Canonical prose & scripts: `skills/factory/`
7
7
  - Canonical programmatic surface: `python3 runner/mcp_server.py` (stdio MCP),
8
8
  or one-shot: `python3 runner/mcp_server.py call <tool> '{...json...}'`
9
- - MCP tools for this skill: `iumbtems_brainstorm`, `iumbtems_darkharvest`, `iumbtems_socratic_frontier`
9
+ - MCP tools for this skill: `iumbtems_factory`
10
10
 
11
11
  Epistemic rules apply regardless of harness: tag claims as
12
12
  `[VERIFIED: <hash>]`, `[INFERRED: <reasoning>]`, `[HYPOTHESIS: <test>]`, or
@@ -10,7 +10,7 @@ To maintain epistemic integrity, every document fetched from the web, arXiv, or
10
10
  ## 1. CACHING A SOURCE
11
11
  When you fetch or scrape a URL:
12
12
  ```bash
13
- python3 skills/research-cache/hasher.py cache \
13
+ python3 skills/research_cache/hasher.py cache \
14
14
  --url "https://arxiv.org/abs/2407.21783" \
15
15
  --title "Llama 3 Herd of Models" \
16
16
  --content "$(cat fetched_paper.md)"
@@ -29,7 +29,7 @@ Ensure that any `verbatim_quote` you provide is an exact substring from the cach
29
29
  ## 3. AUDITING A QUOTE
30
30
  The Epistemic Auditor verifies claims using:
31
31
  ```bash
32
- python3 skills/research-cache/hasher.py verify \
32
+ python3 skills/research_cache/hasher.py verify \
33
33
  --hash "3f8a9e21..." \
34
34
  --quote "Our FPGA pipeline executes the Poseidon round constraints in 184ms"
35
35
  ```
@@ -17,7 +17,7 @@ You are **Agent Alpha (The Proponent)** within the Epistemic Swarm dialectic har
17
17
  1. **Search**: Use Brave Search, SearXNG, or academic MCP tools to discover primary sources.
18
18
  2. **Extract & Cache**: For every relevant source found, fetch the full content and invoke the research cache utility to store it:
19
19
  ```bash
20
- python3 skills/research-cache/hasher.py cache --url "<URL>" --content "<MARKDOWN_CONTENT>" --title "<TITLE>"
20
+ python3 skills/research_cache/hasher.py cache --url "<URL>" --content "<MARKDOWN_CONTENT>" --title "<TITLE>"
21
21
  ```
22
22
  This will output the content-addressed hash (e.g., `3f8a9e21...`).
23
23
  3. **Extract Verbatim Excerpts**: Note the exact sentence or paragraph that substantiates your claim. The Epistemic Auditor will verify that your quote matches the cached markdown file character-for-character.
@@ -27,7 +27,7 @@ Execute inverted and adversarial queries across Brave Search, SearXNG, and acade
27
27
  1. When you discover counter-evidence, fetch the full content.
28
28
  2. Cache the source immediately using the research cache utility:
29
29
  ```bash
30
- python3 skills/research-cache/hasher.py cache --url "<URL>" --content "<MARKDOWN_CONTENT>" --title "<TITLE>"
30
+ python3 skills/research_cache/hasher.py cache --url "<URL>" --content "<MARKDOWN_CONTENT>" --title "<TITLE>"
31
31
  ```
32
32
  3. Extract exact verbatim quotes showing the contradiction, flaw, or boundary condition.
33
33