thoth-agents 0.2.3 → 0.2.5

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/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  <div align="center">
2
- <img src="img/team.png" alt="thoth-agents agents" width="420">
3
- <p><i>Seven specialized agents, one delegate-first workflow across supported harnesses.</i></p>
2
+ <img src="img/team.png" alt="thoth-agents agents" width="420">
3
+
4
+ <p><i>Seven specialized agents, one delegate-first workflow across supported harnesses.</i></p>
4
5
  <p><b>thoth-agents</b> - Multi-harness orchestration - Thoth-mem persistence - Bundled SDD pipeline</p>
5
6
  <p>
6
7
  <a href="https://github.com/EremesNG/thoth-agents/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/EremesNG/thoth-agents/ci.yml?branch=master&label=CI" alt="CI status"></a>
@@ -50,11 +51,12 @@ hooks, MCP, skills, and per-agent tool permissions.
50
51
 
51
52
  ## Harness Support
52
53
 
53
- | Harness | Status | Setup path | Notes |
54
- | --- | --- | --- | --- |
55
- | OpenCode | Stable default | `npx thoth-agents@latest install` or `npx thoth-agents@latest install --agent=opencode` | Native plugin config, native `task` delegation, optional tmux panes, OpenCode provider auth. |
56
- | Codex | Supported explicit path | `npx thoth-agents@latest install --agent=codex` | Installs ambient/root guidance, six role subagents, and a Personal plugin source. Requires `/plugins` and `/hooks` trust review. Some governance remains instruction-level. |
57
- | Claude Code | Supported first-class path | `npx thoth-agents@latest install --agent=claude` | Installs one Claude Code plugin: six specialist subagents (`Task(subagent_type: ...)`), an `orchestrator` agent activated as the main thread via `settings.json`, `.mcp.json`, and bundled skills. Role permissions are enforced by subagent `tools`. |
54
+
55
+ | Harness | Status | Setup path | Notes |
56
+ | ----------- | -------------------------- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
57
+ | OpenCode | Stable default | `npx thoth-agents@latest install` or `npx thoth-agents@latest install --agent=opencode` | Native plugin config, native`task` delegation, optional tmux panes, OpenCode provider auth. |
58
+ | Codex | Supported explicit path | `npx thoth-agents@latest install --agent=codex` | Installs ambient/root guidance, six role subagents, and a Personal plugin source. Requires`/plugins` and `/hooks` trust review. Some governance remains instruction-level. |
59
+ | Claude Code | Supported first-class path | `npx thoth-agents@latest install --agent=claude` | Installs one Claude Code plugin: six specialist subagents (`Task(subagent_type: ...)`), an `orchestrator` agent activated as the main thread via `settings.json`, `.mcp.json`, and bundled skills. Role permissions are enforced by subagent `tools`. |
58
60
 
59
61
  OpenCode can load the plugin with:
60
62
 
@@ -323,14 +325,15 @@ artifacts before task execution.
323
325
 
324
326
  Artifacts can be persisted in four modes:
325
327
 
326
- | Mode | Writes to | Cost | Use when |
327
- | --- | --- | --- | --- |
328
- | `thoth-mem` | Memory only | Low | Fast iteration without repo planning files |
329
- | `openspec` | `openspec/` files only | Medium | Reviewable planning artifacts in the repo |
330
- | `hybrid` | Both | High | Maximum durability; default |
331
- | `none` | Neither | Lowest | Ephemeral iterations, no persistence |
332
328
 
333
- Thoth-mem is the local memory MCP used for durable observations, architectural
329
+ | Mode | Writes to | Cost | Use when |
330
+ | ----------- | ---------------------- | ------ | ------------------------------------------ |
331
+ | `thoth-mem` | Memory only | Low | Fast iteration without repo planning files |
332
+ | `openspec` | `openspec/` files only | Medium | Reviewable planning artifacts in the repo |
333
+ | `hybrid` | Both | High | Maximum durability; default |
334
+ | `none` | Neither | Lowest | Ephemeral iterations, no persistence |
335
+
336
+ [Thoth-mem](https://github.com/EremesNG/thoth-mem) is the local memory MCP used for durable observations, architectural
334
337
  decisions, SDD artifacts, and session summaries. The core retrieval pattern is:
335
338
 
336
339
  1. `mem_recall(mode="compact")` for compact candidate records
@@ -355,12 +358,13 @@ planning/execution, verification, and archiving. It also registers MCP servers
355
358
  for docs research, public code search, and local memory where the harness
356
359
  supports that delivery surface.
357
360
 
358
- | Surface | Shared concept | OpenCode binding | Codex binding | Claude Code binding |
359
- | --- | --- | --- | --- | --- |
360
- | Skills | Requirements, SDD, review, execution workflows | Copied into the OpenCode skills directory when `--skills=yes` | Packaged as plugin-bundled skills for the Personal plugin source | Bundled in the plugin `skills/` directory |
361
- | MCPs | `exa`, `context7`, `grep_app`, `thoth_mem` | Registered by generated OpenCode plugin config | Packaged/configured only on validated Codex surfaces | Bundled in the plugin `.mcp.json` (`type: "http"` for URL servers) |
362
- | Delegation | Seven-role specialist workflow | Native `task` tool | Custom agents plus prompt/plugin guidance | Native `Task(subagent_type: ...)` over auto-discovered subagents |
363
- | Blocking choices | Use a structured question surface | OpenCode `question` tool | `request_user_input` when enabled and available | `AskUserQuestion` tool |
361
+
362
+ | Surface | Shared concept | OpenCode binding | Codex binding | Claude Code binding |
363
+ | ---------------- | ---------------------------------------------- | ------------------------------------------------------------ | ---------------------------------------------------------------- | ----------------------------------------------------------------- |
364
+ | Skills | Requirements, SDD, review, execution workflows | Copied into the OpenCode skills directory when`--skills=yes` | Packaged as plugin-bundled skills for the Personal plugin source | Bundled in the plugin`skills/` directory |
365
+ | MCPs | `exa`, `context7`, `grep_app`, `thoth_mem` | Registered by generated OpenCode plugin config | Packaged/configured only on validated Codex surfaces | Bundled in the plugin`.mcp.json` (`type: "http"` for URL servers) |
366
+ | Delegation | Seven-role specialist workflow | Native`task` tool | Custom agents plus prompt/plugin guidance | Native`Task(subagent_type: ...)` over auto-discovered subagents |
367
+ | Blocking choices | Use a structured question surface | OpenCode`question` tool | `request_user_input` when enabled and available | `AskUserQuestion` tool |
364
368
 
365
369
  See [docs/skills-and-mcps.md](docs/skills-and-mcps.md) for the detailed matrix.
366
370
 
@@ -400,16 +404,17 @@ corepack prepare pnpm@11.2.2 --activate
400
404
  pnpm install
401
405
  ```
402
406
 
403
- | Command | Purpose |
404
- | --- | --- |
405
- | `pnpm run build` | Build TypeScript into `dist/` and generate declarations/schema |
406
- | `pnpm run typecheck` | Run TypeScript type checking without emit |
407
- | `pnpm test` | Run the Vitest suite |
408
- | `pnpm run lint` | Run Biome linter |
409
- | `pnpm run format` | Run Biome formatter |
410
- | `pnpm run check` | Run Biome check with auto-fix |
411
- | `pnpm run check:ci` | Run Biome check without writes |
412
- | `pnpm run dev` | Build and launch the OpenCode plugin in local dev mode |
407
+
408
+ | Command | Purpose |
409
+ | -------------------- | ------------------------------------------------------------- |
410
+ | `pnpm run build` | Build TypeScript into`dist/` and generate declarations/schema |
411
+ | `pnpm run typecheck` | Run TypeScript type checking without emit |
412
+ | `pnpm test` | Run the Vitest suite |
413
+ | `pnpm run lint` | Run Biome linter |
414
+ | `pnpm run format` | Run Biome formatter |
415
+ | `pnpm run check` | Run Biome check with auto-fix |
416
+ | `pnpm run check:ci` | Run Biome check without writes |
417
+ | `pnpm run dev` | Build and launch the OpenCode plugin in local dev mode |
413
418
 
414
419
  ## License
415
420
 
@@ -35,7 +35,7 @@ import {
35
35
  renderRolePrompt,
36
36
  writeConfig,
37
37
  writeLiteConfig
38
- } from "./chunk-37QKOSBR.js";
38
+ } from "./chunk-HFZAL6NE.js";
39
39
 
40
40
  // src/cli/codex-paths.ts
41
41
  import { homedir } from "os";
@@ -1480,8 +1480,11 @@ function renderCodexRootInstructions(config) {
1480
1480
  codexInternalHandoffGuidance(),
1481
1481
  "<codex-runtime>",
1482
1482
  "- The ambient Codex root session is the root/main orchestrator; orchestrator-only and root-owned instructions apply to it because Codex does not generate a selectable orchestrator agent TOML.",
1483
- '- On each new root session, when thoth-mem tools are installed and session/project identity is known, call mem_session(action="start") as step 0 before any other thoth-mem call, then save the real user prompt with mem_save(kind="prompt") before later delegation.',
1484
- "- If thoth-mem tools or identity values are unavailable, disclose that memory bootstrap could not run and continue without claiming memory was saved.",
1483
+ '- On each new root session, first resolve the stable root session identity from Codex request metadata in this order: `nodeRepl.requestMeta["x-codex-turn-metadata"].session_id`, then `nodeRepl.requestMeta["x-codex-turn-metadata"].thread_id`, then `nodeRepl.requestMeta.threadId`. Do not use `nodeRepl.requestMeta["x-codex-turn-metadata"].turn_id` as the stable session id.',
1484
+ '- `nodeRepl.requestMeta["x-codex-turn-metadata"].turn_id` is per-turn metadata only, not the stable root session id.',
1485
+ "- If `nodeRepl.requestMeta` is not yet visible and `tool_search` is available, load/discover the `node_repl` MCP tool before concluding metadata is unavailable.",
1486
+ '- When thoth-mem tools are installed and stable root session identity is resolved, call mem_session(action="start") as step 0 before any other thoth-mem call, then save the real user prompt with mem_save(kind="prompt") before later delegation.',
1487
+ "- If metadata tooling is unavailable, or the required fields are missing, disclose that memory bootstrap could not run and continue without claiming memory was saved.",
1485
1488
  '- Before delegating after meaningful context changes, save or refresh the handoff body with root-owned mem_session(action="summary") or mem_save(kind="session_summary") when available; if unavailable, disclose that root-owned compaction could not be persisted.',
1486
1489
  "- Use the ambient Codex root session as the delegate-first root coordinator; do not generate or select an orchestrator TOML.",
1487
1490
  "- Delegate by invoking `multi_agent_v1.spawn_agent` for the installed Codex role agents: explorer, librarian, oracle, designer, quick, and deep.",
@@ -1749,6 +1749,14 @@ var BUNDLED_SKILL_REGISTRY = [
1749
1749
  kind: "skill",
1750
1750
  purpose: "sdd"
1751
1751
  },
1752
+ {
1753
+ name: "sdd-clarify",
1754
+ description: "Resolve residual spec ambiguity in place before design, with a bounded taxonomy-driven clarification pass.",
1755
+ allowedRoles: ORCHESTRATOR_ONLY,
1756
+ sourcePath: "src/skills/sdd-clarify",
1757
+ kind: "skill",
1758
+ purpose: "sdd"
1759
+ },
1752
1760
  {
1753
1761
  name: "sdd-design",
1754
1762
  description: "Create technical solution design artifacts for changes",
@@ -13,7 +13,7 @@ import {
13
13
  getStepBudgetPromptSection,
14
14
  loadAgentPrompt,
15
15
  renderRolePrompt
16
- } from "./chunk-37QKOSBR.js";
16
+ } from "./chunk-HFZAL6NE.js";
17
17
 
18
18
  // src/agents/deep.ts
19
19
  var DEEP_PROMPT = renderRolePrompt(
package/dist/cli/index.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  getOpenCodeVersion,
5
5
  isOpenCodeInstalled,
6
6
  opencodeAdapter
7
- } from "../chunk-7KLRUFZ4.js";
7
+ } from "../chunk-YZNH23HZ.js";
8
8
  import {
9
9
  CODEX_ROLE_NAMES,
10
10
  RECOMMENDED_SKILLS,
@@ -36,7 +36,7 @@ import {
36
36
  getOperationHarness,
37
37
  installRecommendedSkill,
38
38
  listOperationHarnesses
39
- } from "../chunk-FHEYA3VV.js";
39
+ } from "../chunk-C3VQMXQL.js";
40
40
  import {
41
41
  ALL_AGENT_NAMES,
42
42
  CUSTOM_SKILLS,
@@ -48,7 +48,7 @@ import {
48
48
  getExistingLiteConfigPath,
49
49
  installCustomSkills,
50
50
  writeLiteConfig
51
- } from "../chunk-37QKOSBR.js";
51
+ } from "../chunk-HFZAL6NE.js";
52
52
 
53
53
  // src/cli/index.ts
54
54
  import { pathToFileURL } from "url";
@@ -25,13 +25,13 @@ import {
25
25
  listOperationHarnesses,
26
26
  parseRoleTomlModel,
27
27
  parseSubagentModel
28
- } from "../../chunk-FHEYA3VV.js";
28
+ } from "../../chunk-C3VQMXQL.js";
29
29
  import {
30
30
  ALL_AGENT_NAMES,
31
31
  DEFAULT_MODELS,
32
32
  getExistingLiteConfigPath,
33
33
  parseConfig
34
- } from "../../chunk-37QKOSBR.js";
34
+ } from "../../chunk-HFZAL6NE.js";
35
35
 
36
36
  // src/cli/tui/index.tsx
37
37
  import { render } from "ink";
@@ -51,6 +51,13 @@ export declare const BUNDLED_SKILL_REGISTRY: readonly [{
51
51
  readonly sourcePath: "src/skills/sdd-spec";
52
52
  readonly kind: "skill";
53
53
  readonly purpose: "sdd";
54
+ }, {
55
+ readonly name: "sdd-clarify";
56
+ readonly description: "Resolve residual spec ambiguity in place before design, with a bounded taxonomy-driven clarification pass.";
57
+ readonly allowedRoles: AgentRoleName[];
58
+ readonly sourcePath: "src/skills/sdd-clarify";
59
+ readonly kind: "skill";
60
+ readonly purpose: "sdd";
54
61
  }, {
55
62
  readonly name: "sdd-design";
56
63
  readonly description: "Create technical solution design artifacts for changes";
@@ -143,6 +150,13 @@ export declare const SKILL_REGISTRY: readonly [{
143
150
  readonly sourcePath: "src/skills/sdd-spec";
144
151
  readonly kind: "skill";
145
152
  readonly purpose: "sdd";
153
+ }, {
154
+ readonly name: "sdd-clarify";
155
+ readonly description: "Resolve residual spec ambiguity in place before design, with a bounded taxonomy-driven clarification pass.";
156
+ readonly allowedRoles: AgentRoleName[];
157
+ readonly sourcePath: "src/skills/sdd-clarify";
158
+ readonly kind: "skill";
159
+ readonly purpose: "sdd";
146
160
  }, {
147
161
  readonly name: "sdd-design";
148
162
  readonly description: "Create technical solution design artifacts for changes";
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  renderOpenCodeAgentConfigs,
4
4
  spawn,
5
5
  spawnSync
6
- } from "./chunk-7KLRUFZ4.js";
6
+ } from "./chunk-YZNH23HZ.js";
7
7
  import {
8
8
  DEFAULT_THOTH_COMMAND,
9
9
  POLL_INTERVAL_BACKGROUND_MS,
@@ -14,7 +14,7 @@ import {
14
14
  installCustomSkills,
15
15
  loadPluginConfig,
16
16
  stripJsonComments
17
- } from "./chunk-37QKOSBR.js";
17
+ } from "./chunk-HFZAL6NE.js";
18
18
 
19
19
  // src/index.ts
20
20
  import path4 from "path";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thoth-agents",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "Delegate-first OpenCode plugin with seven agents, thoth-mem persistence, and bundled SDD skills.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -201,6 +201,7 @@ Hand off to:
201
201
  - **Explore**: delegate read-only repository discovery to explorer before artifact-producing phases.
202
202
  - **Propose**: [../sdd-propose/SKILL.md](../sdd-propose/SKILL.md)
203
203
  - **Spec** (full SDD only): [../sdd-spec/SKILL.md](../sdd-spec/SKILL.md)
204
+ - **Clarify** (full SDD only): [../sdd-clarify/SKILL.md](../sdd-clarify/SKILL.md)
204
205
  - **Design** (full SDD only): [../sdd-design/SKILL.md](../sdd-design/SKILL.md)
205
206
  - **Tasks**: [../sdd-tasks/SKILL.md](../sdd-tasks/SKILL.md)
206
207