thoth-agents 0.2.11 → 0.3.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.
Files changed (149) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/.claude-plugin/marketplace.json +21 -0
  3. package/README.md +301 -311
  4. package/dist/agents/configured-role-prompt.d.ts +9 -0
  5. package/dist/agents/prompt-sections.d.ts +8 -4
  6. package/dist/agents/prompt-utils.d.ts +0 -4
  7. package/dist/{chunk-ASKXWU6E.js → chunk-2MZ5C2RN.js} +1078 -1725
  8. package/dist/chunk-XO74DXBZ.js +1781 -0
  9. package/dist/{chunk-6BNAV534.js → chunk-YUCGIJPP.js} +12 -30
  10. package/dist/cli/claude-code-install.d.ts +24 -26
  11. package/dist/cli/claude-code-paths.d.ts +0 -28
  12. package/dist/cli/codex-install.d.ts +2 -2
  13. package/dist/cli/codex-paths.d.ts +0 -2
  14. package/dist/cli/index.js +279 -119
  15. package/dist/cli/install.d.ts +5 -1
  16. package/dist/cli/model-catalog/cache.d.ts +1 -1
  17. package/dist/cli/operations/claude-code.d.ts +6 -3
  18. package/dist/cli/operations/codex.d.ts +2 -1
  19. package/dist/cli/operations/opencode.d.ts +2 -1
  20. package/dist/cli/operations/types.d.ts +9 -1
  21. package/dist/cli/package-root.d.ts +1 -0
  22. package/dist/cli/providers.d.ts +6 -116
  23. package/dist/cli/skills.d.ts +19 -32
  24. package/dist/cli/thoth-mem-install.d.ts +45 -0
  25. package/dist/cli/tui/components/StatusView.d.ts +12 -1
  26. package/dist/cli/tui/index.js +256 -142
  27. package/dist/cli/tui/operations.d.ts +4 -3
  28. package/dist/cli/types.d.ts +0 -10
  29. package/dist/config/constants.d.ts +20 -16
  30. package/dist/config/index.d.ts +0 -1
  31. package/dist/config/loader.d.ts +1 -1
  32. package/dist/config/schema.d.ts +2 -38
  33. package/dist/config/utils.d.ts +1 -2
  34. package/dist/harness/adapters/codex-surfaces.d.ts +3 -3
  35. package/dist/harness/core/agent-pack.d.ts +37 -29
  36. package/dist/harness/core/memory-governance.d.ts +24 -48
  37. package/dist/harness/core/sdd.d.ts +364 -131
  38. package/dist/harness/generate-integration-packages.d.ts +20 -0
  39. package/dist/harness/opencode-init-command.d.ts +11 -0
  40. package/dist/harness/types.d.ts +14 -1
  41. package/dist/harness/writers/claude-code-subagent.d.ts +3 -1
  42. package/dist/hooks/index.d.ts +0 -5
  43. package/dist/index.js +562 -1314
  44. package/dist/mcp/index.d.ts +1 -2
  45. package/package.json +17 -12
  46. package/plugin/.claude-plugin/.thoth-agents-plugin-assets.json +50 -0
  47. package/plugin/.claude-plugin/plugin.json +8 -0
  48. package/plugin/.codex-plugin/.thoth-agents-plugin-assets.json +16 -0
  49. package/plugin/.codex-plugin/plugin.json +7 -0
  50. package/plugin/.mcp.json +19 -0
  51. package/plugin/agents/deep.md +89 -0
  52. package/plugin/agents/designer.md +89 -0
  53. package/plugin/agents/explorer.md +90 -0
  54. package/plugin/agents/librarian.md +90 -0
  55. package/plugin/agents/oracle.md +92 -0
  56. package/plugin/agents/orchestrator.md +128 -0
  57. package/plugin/agents/quick.md +89 -0
  58. package/plugin/codex.mcp.json +17 -0
  59. package/plugin/settings.json +3 -0
  60. package/plugin/skills/thoth-archive/SKILL.md +40 -0
  61. package/plugin/skills/thoth-archive/scripts/archive.mjs +748 -0
  62. package/plugin/skills/thoth-constitution/SKILL.md +45 -0
  63. package/plugin/skills/thoth-constitution/scripts/validate.mjs +167 -0
  64. package/plugin/skills/thoth-constitution/templates/constitution.md +54 -0
  65. package/plugin/skills/thoth-init/SKILL.md +30 -0
  66. package/plugin/skills/thoth-init/scripts/init.mjs +141 -0
  67. package/plugin/skills/thoth-sdd/SKILL.md +83 -0
  68. package/plugin/skills/thoth-sdd/references/phases/analyze.md +21 -0
  69. package/plugin/skills/thoth-sdd/references/phases/checklist.md +20 -0
  70. package/plugin/skills/thoth-sdd/references/phases/clarify.md +15 -0
  71. package/plugin/skills/thoth-sdd/references/phases/converge.md +14 -0
  72. package/plugin/skills/thoth-sdd/references/phases/explore.md +10 -0
  73. package/plugin/skills/thoth-sdd/references/phases/implement.md +19 -0
  74. package/plugin/skills/thoth-sdd/references/phases/plan.md +15 -0
  75. package/plugin/skills/thoth-sdd/references/phases/specify.md +21 -0
  76. package/plugin/skills/thoth-sdd/references/phases/tasks.md +20 -0
  77. package/plugin/skills/thoth-sdd/references/phases/verify.md +22 -0
  78. package/plugin/skills/thoth-sdd/scripts/validate.mjs +1117 -0
  79. package/plugin/skills/thoth-sdd/templates/archive-report.md +25 -0
  80. package/plugin/skills/thoth-sdd/templates/checklist.md +27 -0
  81. package/plugin/skills/thoth-sdd/templates/plan.md +38 -0
  82. package/plugin/skills/thoth-sdd/templates/spec.md +54 -0
  83. package/plugin/skills/thoth-sdd/templates/tasks.md +29 -0
  84. package/plugin/skills/thoth-sdd/templates/verify-report.md +28 -0
  85. package/skills/README.md +12 -0
  86. package/skills/thoth-archive/SKILL.md +40 -0
  87. package/skills/thoth-archive/scripts/archive.mjs +748 -0
  88. package/skills/thoth-constitution/SKILL.md +45 -0
  89. package/skills/thoth-constitution/scripts/validate.mjs +167 -0
  90. package/skills/thoth-constitution/templates/constitution.md +54 -0
  91. package/skills/thoth-init/SKILL.md +30 -0
  92. package/skills/thoth-init/scripts/init.mjs +141 -0
  93. package/skills/thoth-sdd/SKILL.md +83 -0
  94. package/skills/thoth-sdd/references/phases/analyze.md +21 -0
  95. package/skills/thoth-sdd/references/phases/checklist.md +20 -0
  96. package/skills/thoth-sdd/references/phases/clarify.md +15 -0
  97. package/skills/thoth-sdd/references/phases/converge.md +14 -0
  98. package/skills/thoth-sdd/references/phases/explore.md +10 -0
  99. package/skills/thoth-sdd/references/phases/implement.md +19 -0
  100. package/skills/thoth-sdd/references/phases/plan.md +15 -0
  101. package/skills/thoth-sdd/references/phases/specify.md +21 -0
  102. package/skills/thoth-sdd/references/phases/tasks.md +20 -0
  103. package/skills/thoth-sdd/references/phases/verify.md +22 -0
  104. package/skills/thoth-sdd/scripts/validate.mjs +1117 -0
  105. package/skills/thoth-sdd/templates/archive-report.md +25 -0
  106. package/skills/thoth-sdd/templates/checklist.md +27 -0
  107. package/skills/thoth-sdd/templates/plan.md +38 -0
  108. package/skills/thoth-sdd/templates/spec.md +54 -0
  109. package/skills/thoth-sdd/templates/tasks.md +29 -0
  110. package/skills/thoth-sdd/templates/verify-report.md +28 -0
  111. package/thoth-agents.schema.json +0 -39
  112. package/dist/chunk-OZE7JVGS.js +0 -2344
  113. package/dist/cli/custom-skills.d.ts +0 -49
  114. package/dist/cli/skill-manifest.d.ts +0 -32
  115. package/dist/harness/core/skills.d.ts +0 -211
  116. package/dist/harness/generate-codex-plugin.d.ts +0 -9
  117. package/dist/harness/writers/claude-code-skill-layout.d.ts +0 -16
  118. package/dist/harness/writers/fs-skill-collect.d.ts +0 -7
  119. package/dist/harness/writers/skill-layout.d.ts +0 -16
  120. package/dist/hooks/chat-headers.d.ts +0 -16
  121. package/dist/hooks/phase-reminder/index.d.ts +0 -28
  122. package/dist/hooks/post-read-nudge/index.d.ts +0 -18
  123. package/dist/hooks/skill-sync.d.ts +0 -10
  124. package/dist/hooks/thoth-mem/index.d.ts +0 -46
  125. package/dist/hooks/thoth-mem/protocol.d.ts +0 -7
  126. package/dist/mcp/thoth.d.ts +0 -3
  127. package/dist/sdd/artifact-governance/artifact-loader.d.ts +0 -130
  128. package/dist/sdd/artifact-governance/index.d.ts +0 -6
  129. package/dist/sdd/artifact-governance/tasks-validator.d.ts +0 -17
  130. package/dist/sdd/artifact-governance/types.d.ts +0 -52
  131. package/dist/thoth/client.d.ts +0 -14
  132. package/dist/thoth/index.d.ts +0 -2
  133. package/src/skills/_shared/openspec-convention.md +0 -350
  134. package/src/skills/_shared/persistence-contract.md +0 -163
  135. package/src/skills/_shared/thoth-mem-convention.md +0 -123
  136. package/src/skills/executing-plans/SKILL.md +0 -288
  137. package/src/skills/plan-reviewer/SKILL.md +0 -219
  138. package/src/skills/requirements-interview/SKILL.md +0 -233
  139. package/src/skills/sdd-apply/SKILL.md +0 -89
  140. package/src/skills/sdd-archive/SKILL.md +0 -92
  141. package/src/skills/sdd-clarify/SKILL.md +0 -105
  142. package/src/skills/sdd-constitution/SKILL.md +0 -107
  143. package/src/skills/sdd-design/SKILL.md +0 -155
  144. package/src/skills/sdd-init/SKILL.md +0 -233
  145. package/src/skills/sdd-propose/SKILL.md +0 -101
  146. package/src/skills/sdd-spec/SKILL.md +0 -136
  147. package/src/skills/sdd-tasks/SKILL.md +0 -232
  148. package/src/skills/sdd-verify/SKILL.md +0 -131
  149. package/src/skills/thoth-mem-agents/SKILL.md +0 -210
package/README.md CHANGED
@@ -1,428 +1,418 @@
1
1
  <div align="center">
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>
5
- <p><b>thoth-agents</b> - Multi-harness orchestration - Thoth-mem persistence - Bundled SDD pipeline</p>
2
+ <img src="img/thoth-agents-header.webp" alt="Seven human cyber-Egyptian thoth-agents roles, with Thoth as the Orchestrator centered between three read-only specialists and three implementation writers" width="100%">
3
+ <h1>Thoth-Agents</h1>
4
+ <p><i>Adaptive orchestration for OpenCode, Codex, and Claude Code.</i></p>
5
+ <p><b>Seven roles</b> · <b>Three SDD routes</b> · <b>Runtime-autonomous SDD</b></p>
6
6
  <p>
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>
8
- <a href="https://www.npmjs.com/package/thoth-agents"><img src="https://img.shields.io/npm/v/thoth-agents?label=npm" alt="npm version"></a>
9
- <a href="https://github.com/EremesNG/thoth-agents/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/thoth-agents" alt="MIT license"></a>
10
- <img src="https://img.shields.io/node/v/thoth-agents" alt="Node.js version">
11
- <img src="https://img.shields.io/badge/pnpm-11.2.2-F69220?logo=pnpm&logoColor=white" alt="pnpm 11.2.2">
7
+ <a href="https://www.npmjs.com/package/thoth-agents"><img src="https://img.shields.io/npm/v/thoth-agents?style=for-the-badge&amp;color=cb9b35&amp;label=npm" alt="npm version"></a>
8
+ <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&amp;style=for-the-badge&amp;label=CI" alt="CI status"></a>
9
+ <a href="package.json"><img src="https://img.shields.io/badge/node-%3E%3D22.13-43853d?style=for-the-badge&amp;logo=node.js&amp;logoColor=white" alt="Node 22.13 or newer"></a>
10
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-1f6feb?style=for-the-badge" alt="MIT License"></a>
12
11
  </p>
13
12
  </div>
14
13
 
15
14
  ---
16
15
 
17
- thoth-agents is a delegate-first agent system for coding harnesses. It started
18
- as an OpenCode plugin and now provides a shared seven-agent workflow for
19
- OpenCode, Codex, and Claude Code, with each harness getting the integration
20
- surface that fits it best.
21
-
22
- OpenCode remains the stable default path: native plugin install, native `task`
23
- delegation, optional tmux monitoring, and generated config. Codex is supported
24
- through an explicit agent-pack and Personal plugin setup path, with documented
25
- trust review and the current `collaboration.*` delegation surface. Codex can
26
- spawn and coordinate generic tasks programmatically, while named installed-role
27
- selection and per-role enforcement remain instruction-level. Claude Code is a first-class path: a
28
- single auto-discovered plugin package with native subagents, harness-enforced
29
- hooks, MCP, skills, and per-agent tool permissions.
30
-
31
- ## What It Is
32
-
33
- - A canonical seven-agent roster: `orchestrator`, `explorer`, `librarian`,
34
- `oracle`, `designer`, `quick`, and `deep`.
35
- - A delegate-first operating model that keeps the root coordinator focused on
36
- decisions while specialists gather evidence, implement, review, and verify.
37
- - A bundled requirements interview and SDD pipeline for moving from ambiguous
38
- requests to planned, verified implementation.
39
- - A thoth-mem integration for durable project memory, SDD artifacts, and
40
- cross-session recovery.
41
- - A multi-harness package that preserves OpenCode defaults while adding a
42
- Codex setup path.
43
-
44
- ## What It Is Not
45
-
46
- - It is not a claim that every harness has identical runtime behavior.
47
- - It is not a replacement for each harness's security, trust, sandbox, or
48
- approval model.
49
- - It does not rename the seven roles or require new visual assets.
50
- - It does not make Codex tmux-aware; tmux integration is scoped to OpenCode
51
- child `task` sessions.
52
-
53
- ## Harness Support
54
-
55
-
56
- | Harness | Status | Setup path | Notes |
57
- | ----------- | -------------------------- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
58
- | 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. |
59
- | Codex | Supported explicit path | `npx thoth-agents@latest install --agent=codex` | Installs ambient/root guidance, six role subagents, and a Personal plugin source. Uses the current `collaboration.*` tools for generic delegation; named-role selection and per-role enforcement remain instruction-level. Requires `/plugins` and `/hooks` trust review. |
60
- | 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`. |
61
-
62
- OpenCode can load the plugin with:
63
-
64
- ```jsonc
65
- {
66
- "plugin": ["thoth-agents@latest"]
67
- }
68
- ```
16
+ ## What it does
69
17
 
70
- That plugin entry is not a shell command. To run the installer or TUI, use the
71
- npm binary through a global install, `npx thoth-agents@latest`, or
72
- `pnpm dlx thoth-agents@latest`.
18
+ thoth-agents is a multi-harness orchestration plugin for OpenCode, Codex, and
19
+ Claude Code. One adaptive root handles clear bounded work directly and delegates
20
+ only when specialization, context isolation, independent review, or safe
21
+ parallelism creates a net gain.
73
22
 
74
- ## Quick Start
23
+ The plugin ships the seven-role contract and thoth-owned SDD
24
+ contracts that combine Spec Kit-grade traceability with OpenSpec-style durable
25
+ deltas. Accelerated planning fast-forwards without routine pauses; structural
26
+ `ready`/`closeout` gates and independent oracle review retain rigor. During
27
+ installation, the CLI obtains four mandatory external skills
28
+ from their canonical repositories with `npx skills add` and invokes the official
29
+ provider-owned thoth-mem setup for the selected harness. During an SDD, agents
30
+ load local contracts and the installed thoth-mem guidance; they never need to
31
+ invoke either CLI or download a phase contract.
75
32
 
76
- Run the binary with no arguments in an interactive terminal to open the
77
- multi-harness TUI:
33
+ Delivery is intentionally asymmetric. OpenCode uses the CLI to configure the
34
+ npm plugin, external skills, and thoth-mem. Codex needs both a native plugin and a mandatory
35
+ CLI-managed global layer because its manifest cannot install custom agents or
36
+ global root instructions. Claude needs its two native marketplace commands
37
+ before the CLI installs external skills and requests provider-owned thoth-mem
38
+ setup.
78
39
 
79
- ```bash
80
- npx thoth-agents@latest
81
- ```
40
+ Runtime guarantees still differ by harness. OpenCode is the default and most
41
+ integrated path; Codex and Claude preserve their own trust, policy, plugin-cache,
42
+ and permission semantics.
82
43
 
83
- The same no-argument binary invocation falls back to the OpenCode install path
84
- in CI, redirected, or `TERM=dumb` terminals. Use explicit commands when you
85
- need deterministic automation.
44
+ ## Install
86
45
 
87
46
  ### OpenCode
88
47
 
48
+ Install the plugin configuration, external skills, and thoth-mem companion:
49
+
89
50
  ```bash
90
- npx thoth-agents@latest install
51
+ npx thoth-agents@latest install --agent=opencode --dry-run
91
52
  npx thoth-agents@latest install --agent=opencode
92
- opencode auth login
93
- opencode
94
53
  ```
95
54
 
96
- Then ask OpenCode to verify the roster:
55
+ Restart OpenCode and initialize the current repository:
97
56
 
98
57
  ```text
99
- ping all agents
58
+ /thoth-init
100
59
  ```
101
60
 
102
- For non-interactive setup:
61
+ This copies the four thoth-owned workflow skills into `.agents/skills/` and
62
+ creates missing `openspec/` governance files. The external skills are already in
63
+ OpenCode's global skill root and thoth-mem has completed its own provider setup
64
+ from the CLI step. Existing project-owned files are preserved.
103
65
 
104
- ```bash
105
- npx thoth-agents@latest install --no-tui --tmux=no --skills=yes
106
- ```
66
+ ### Codex
107
67
 
108
- Interactive status, list, update, sync, and model previews are available from
109
- the no-argument TUI. Command help also documents the explicit command names for
110
- terminal workflows.
68
+ Register the repository marketplace from a terminal:
111
69
 
112
- ### Codex
70
+ ```bash
71
+ codex plugin marketplace add EremesNG/thoth-agents
72
+ ```
113
73
 
114
- Review the plan first, then install explicitly:
74
+ Restart Codex, open `/plugins`, and install or enable `thoth-agents`. Then return
75
+ to a terminal and apply the mandatory global layer:
115
76
 
116
77
  ```bash
117
78
  npx thoth-agents@latest install --agent=codex --dry-run
118
79
  npx thoth-agents@latest install --agent=codex
119
80
  ```
120
81
 
121
- Restart Codex and review plugin/hook trust:
82
+ The CLI writes the orchestrator block to `~/.codex/AGENTS.md`, creates six
83
+ custom-agent TOMLs under `~/.codex/agents/`, and merges the managed feature into
84
+ `~/.codex/config.toml`. It also installs the external skills and invokes
85
+ provider-owned thoth-mem setup. Restart Codex again, then initialize each target
86
+ repository's SDD governance:
122
87
 
123
88
  ```text
124
- /plugins
125
- /hooks
89
+ $thoth-init
126
90
  ```
127
91
 
128
- Codex install does not create a selectable orchestrator TOML, does not bypass
129
- trust review, and does not make role permissions or memory governance hard
130
- runtime guarantees unless Codex exposes those controls.
92
+ The plugin contributes skills and MCP configuration. `$thoth-init` creates only
93
+ missing `openspec/` governance files; it does not pretend to install agents.
131
94
 
132
- Generated root guidance binds delegation to direct `collaboration.*` tools:
133
- `spawn_agent({ task_name, message, fork_turns? })`, mailbox-oriented
134
- `wait_agent`, live status through `list_agents`, non-triggering `send_message`,
135
- turn-triggering `followup_task`, and explicit `interrupt_agent`. A wait timeout
136
- or silence remains in progress; it is not a collected result body.
95
+ Review `/plugins` and `/hooks` after installation. Codex trust and
96
+ higher-precedence instructions remain in force.
137
97
 
138
98
  ### Claude Code
139
99
 
140
- Preview, then install the plugin package:
100
+ Claude requires its two native marketplace steps before the plugin can expose
101
+ agents or skills:
141
102
 
142
103
  ```bash
143
- npx thoth-agents@latest install --agent=claude --dry-run
144
- npx thoth-agents@latest install --agent=claude
104
+ claude plugin marketplace add EremesNG/thoth-agents --scope user
105
+ claude plugin install thoth-agents@thoth-agents --scope user
145
106
  ```
146
107
 
147
- This writes a single Claude Code **skills-directory plugin** under
148
- `~/.claude/skills/thoth-agents`: `.claude-plugin/plugin.json`, seven
149
- auto-discovered agents in `agents/` (six specialists + an `orchestrator`), an
150
- `.mcp.json` server map, bundled `skills/`, and a plugin-root `settings.json`
151
- with `{ "agent": "orchestrator" }`. That `agent` key activates the orchestrator
152
- as the **main thread** — replacing the default system prompt — so the session
153
- starts in delegate-first mode and bootstraps thoth-mem on its first turn. It
154
- auto-loads as `thoth-agents@skills-dir` on the next session (no marketplace or
155
- install step); restart Claude Code or run `/reload-plugins` to activate it
156
- (confirm in `/plugin` → Installed). The orchestrator delegates to specialists
157
- with `Task(subagent_type: explorer|librarian|oracle|designer|quick|deep)`. Role
158
- permissions are enforced through each specialist's frontmatter `tools` allowlist.
159
- You can also emit the package without installing it:
108
+ Then install the mandatory external skills and invoke provider-owned thoth-mem
109
+ setup:
160
110
 
161
111
  ```bash
162
- npx thoth-agents@latest generate --harness=claude --dry-run
112
+ npx thoth-agents@latest install --agent=claude --dry-run
113
+ npx thoth-agents@latest install --agent=claude
163
114
  ```
164
115
 
165
- See [docs/claude-code-plugin-packaging.md](docs/claude-code-plugin-packaging.md).
166
-
167
- ### Reset Generated Config
116
+ Restart Claude Code or run `/reload-plugins`, then initialize the repository:
168
117
 
169
- ```bash
170
- npx thoth-agents@latest install --reset
118
+ ```text
119
+ /thoth-agents:thoth-init
171
120
  ```
172
121
 
173
- ## Seven-Agent Roster
122
+ Claude discovers the packaged orchestrator, six namespaced subagents, and four
123
+ thoth-owned skills from the plugin. The CLI installs the external skills into
124
+ Claude's global skill root and requires thoth-mem's own setup result to be
125
+ complete. Init creates only the missing project governance files; it never edits
126
+ Claude's manager-owned plugin cache.
174
127
 
175
- The delegate-first philosophy is simple: the `orchestrator` coordinates while
176
- specialists execute. Shared concepts are the same across harnesses, but the
177
- dispatch mechanism is harness-bound. In OpenCode, specialists are launched with
178
- the native `task` tool. In Codex, the installed role agents and plugin-bundled
179
- skills provide the closest supported workflow, with some behavior enforced by
180
- instructions rather than hard runtime APIs.
128
+ See [Installation](docs/installation.md), [Codex Install](docs/codex-install.md),
129
+ and [Claude Code Install](docs/claude-code-install.md) for scopes, verification,
130
+ and limitations.
181
131
 
182
- ### Primary Agent
132
+ ## Seven roles
133
+
134
+ One adaptive root and six specialists cover repository discovery, authoritative
135
+ research, independent verification, UI/UX, narrow implementation, and
136
+ correctness-critical work.
137
+
138
+ ### Adaptive root
183
139
 
184
140
  <table width="100%">
185
141
  <tr>
186
- <td width="100%" valign="top">
187
- <img src="img/orchestrator.png" width="100%" alt="Orchestrator">
188
- <br>
142
+ <td width="34%" align="center" valign="top">
143
+ <img src="img/agents/orchestrator.webp" width="240" alt="Human cyber-Egyptian interpretation of Thoth coordinating the team as Orchestrator">
144
+ </td>
145
+ <td width="66%" valign="top">
189
146
  <b>Orchestrator</b>
190
147
  <br>
191
- <i>Root coordinator and sole primary agent.</i>
148
+ <i>Adaptive root and final synthesis.</i>
192
149
  <br><br>
193
- <b>Role:</b> The root coordinator. Handles delegation, sequencing, memory ownership, requirements routing, and SDD progress tracking. Does not read or modify source files directly when running as the root coordinator.
194
- <br>
195
- <b>Mode:</b> primary, non-mutating
196
- <br>
197
- <b>Dispatch:</b> sync coordinator
198
- <br>
199
- <b>Recommended:</b>
200
- <br>
201
- <code>anthropic/claude-opus-4-6</code> - <code>openai/gpt-5.4</code> - <code>kimi-for-coding/k2p5</code>
202
- <br>
203
- <b>Personality:</b> Autonomous deep coordinator; owns decisions and works through specialists.
150
+ Keeps task ownership and synthesis, chooses the route, coordinates SDD
151
+ artifacts, and implements bounded work directly.
152
+ <br><br>
153
+ <b>Mode:</b> <code>adaptive-root</code>
204
154
  </td>
205
155
  </tr>
206
156
  </table>
207
157
 
208
- ### Specialist Subagents
158
+ ### Read-only specialists
209
159
 
210
160
  <table width="100%">
211
161
  <tr>
212
- <td width="33%" valign="top">
213
- <img src="img/explorer.png" width="100%" alt="Explorer">
214
- <br>
162
+ <td width="34%" align="center" valign="top">
163
+ <img src="img/agents/explorer.webp" width="240" alt="Human cyber-Egyptian interpretation of Anubis tracing repository paths as Explorer">
164
+ </td>
165
+ <td width="66%" valign="top">
215
166
  <b>Explorer</b>
216
167
  <br>
217
- <i>Fast local discovery.</i>
168
+ <i>Decision-ready local discovery.</i>
218
169
  <br><br>
219
- <b>Role:</b> Local codebase discovery and navigation. Finds files, symbols, references, constraints, and verification targets.
220
- <br>
221
- <b>Mode:</b> read-only
222
- <br>
223
- <b>Dispatch:</b> harness-bound specialist dispatch
224
- <br>
225
- <b>Recommended:</b>
226
- <br>
227
- <code>Grok Code Fast</code> - <code>openai/gpt-5.4-nano</code> - <code>anthropic/claude-haiku-4-5</code>
170
+ Resolves repository uncertainty and returns decision-ready local evidence.
171
+ <br><br>
172
+ <b>Mode:</b> <code>read-only</code>
228
173
  </td>
229
- <td width="33%" valign="top">
230
- <img src="img/librarian.png" width="100%" alt="Librarian">
231
- <br>
174
+ </tr>
175
+ </table>
176
+
177
+ <table width="100%">
178
+ <tr>
179
+ <td width="34%" align="center" valign="top">
180
+ <img src="img/agents/librarian.webp" width="240" alt="Human cyber-Egyptian interpretation of Seshat consulting an authoritative scroll as Librarian">
181
+ </td>
182
+ <td width="66%" valign="top">
232
183
  <b>Librarian</b>
233
184
  <br>
234
- <i>External docs and examples.</i>
185
+ <i>Authoritative external research.</i>
235
186
  <br><br>
236
- <b>Role:</b> External docs and API research. Validates version-specific behavior with official docs or public examples.
237
- <br>
238
- <b>Mode:</b> read-only
239
- <br>
240
- <b>Dispatch:</b> harness-bound specialist dispatch
241
- <br>
242
- <b>Recommended:</b>
243
- <br>
244
- <code>openai/gpt-5.4</code> - <code>anthropic/claude-sonnet-4-6</code> - <code>google/gemini-3.1-pro-preview</code>
187
+ Gathers current authoritative external evidence and labels inference.
188
+ <br><br>
189
+ <b>Mode:</b> <code>read-only</code>
245
190
  </td>
246
- <td width="33%" valign="top">
247
- <img src="img/oracle.png" width="100%" alt="Oracle">
248
- <br>
191
+ </tr>
192
+ </table>
193
+
194
+ <table width="100%">
195
+ <tr>
196
+ <td width="34%" align="center" valign="top">
197
+ <img src="img/agents/oracle.webp" width="240" alt="Human cyber-Egyptian interpretation of Ma'at weighing independent evidence as Oracle">
198
+ </td>
199
+ <td width="66%" valign="top">
249
200
  <b>Oracle</b>
250
201
  <br>
251
- <i>Deep review and diagnosis.</i>
202
+ <i>Independent analysis and verification.</i>
252
203
  <br><br>
253
- <b>Role:</b> Strategic advisor for debugging, architecture review, code review, security/correctness risk, and SDD plan review.
254
- <br>
255
- <b>Mode:</b> read-only
256
- <br>
257
- <b>Dispatch:</b> synchronous advisory specialist
258
- <br>
259
- <b>Recommended:</b>
260
- <br>
261
- <code>openai/gpt-5.4</code> - <code>anthropic/claude-opus-4-6</code> - <code>opencode-go/glm-5</code>
204
+ Challenges plans, owns Full analysis, and independently verifies every
205
+ implementation.
206
+ <br><br>
207
+ <b>Mode:</b> <code>read-only</code>
262
208
  </td>
263
209
  </tr>
210
+ </table>
211
+
212
+ ### Implementation writers
213
+
214
+ <table width="100%">
264
215
  <tr>
265
- <td width="33%" valign="top">
266
- <img src="img/designer.png" width="100%" alt="Designer">
267
- <br>
216
+ <td width="34%" align="center" valign="top">
217
+ <img src="img/agents/designer.webp" width="240" alt="Human cyber-Egyptian interpretation of Hathor shaping interface geometry as Designer">
218
+ </td>
219
+ <td width="66%" valign="top">
268
220
  <b>Designer</b>
269
221
  <br>
270
- <i>UI, UX, frontend, and visual QA.</i>
222
+ <i>UI/UX ownership and visual quality.</i>
271
223
  <br><br>
272
- <b>Role:</b> User-facing design and implementation. Owns visual decisions, browser checks, screenshots, and UX quality.
273
- <br>
274
- <b>Mode:</b> write-capable
275
- <br>
276
- <b>Dispatch:</b> synchronous implementation specialist
277
- <br>
278
- <b>Recommended:</b>
279
- <br>
280
- <code>google/gemini-3.1-pro-preview</code> - <code>opencode-go/glm-5</code> - <code>kimi-for-coding/k2p5</code>
224
+ Owns UI/UX choices, implementation, and visual verification.
225
+ <br><br>
226
+ <b>Mode:</b> <code>write-capable</code>
281
227
  </td>
282
- <td width="33%" valign="top">
283
- <img src="img/quick.png" width="100%" alt="Quick">
284
- <br>
228
+ </tr>
229
+ </table>
230
+
231
+ <table width="100%">
232
+ <tr>
233
+ <td width="34%" align="center" valign="top">
234
+ <img src="img/agents/quick.webp" width="240" alt="Human cyber-Egyptian interpretation of Horus placing a precise component as Quick">
235
+ </td>
236
+ <td width="66%" valign="top">
285
237
  <b>Quick</b>
286
238
  <br>
287
239
  <i>Fast bounded implementation.</i>
288
240
  <br><br>
289
- <b>Role:</b> Narrow, mechanical, low-risk edits where the approach is already clear.
290
- <br>
291
- <b>Mode:</b> write-capable
292
- <br>
293
- <b>Dispatch:</b> synchronous implementation specialist
294
- <br>
295
- <b>Recommended:</b>
296
- <br>
297
- <code>openai/gpt-5.4-mini</code> - <code>anthropic/claude-haiku-4-5</code> - <code>google/gemini-3-flash-preview</code>
241
+ Makes narrow, clear, low-risk edits within an explicit surface.
242
+ <br><br>
243
+ <b>Mode:</b> <code>write-capable</code>
298
244
  </td>
299
- <td width="33%" valign="top">
300
- <img src="img/deep.png" width="100%" alt="Deep">
301
- <br>
245
+ </tr>
246
+ </table>
247
+
248
+ <table width="100%">
249
+ <tr>
250
+ <td width="34%" align="center" valign="top">
251
+ <img src="img/agents/deep.webp" width="240" alt="Human cyber-Egyptian interpretation of Sobek examining a complex mechanism as Deep">
252
+ </td>
253
+ <td width="66%" valign="top">
302
254
  <b>Deep</b>
303
255
  <br>
304
- <i>Thorough implementation and verification.</i>
256
+ <i>Correctness-critical implementation.</i>
305
257
  <br><br>
306
- <b>Role:</b> Correctness-critical, multi-file, edge-case-heavy implementation and verification.
307
- <br>
308
- <b>Mode:</b> write-capable
309
- <br>
310
- <b>Dispatch:</b> synchronous implementation specialist
311
- <br>
312
- <b>Recommended:</b>
313
- <br>
314
- <code>openai/gpt-5.4</code> - <code>anthropic/claude-opus-4-6</code> - <code>google/gemini-3.1-pro-preview</code>
258
+ Handles multi-file, edge-case-heavy, or correctness-critical
259
+ implementation.
260
+ <br><br>
261
+ <b>Mode:</b> <code>write-capable</code>
315
262
  </td>
316
263
  </tr>
317
264
  </table>
318
265
 
319
- ## SDD And Memory
266
+ Children do not delegate. Each mutable surface has one writer. Parallel work is
267
+ limited to independent surfaces. The implementation writer never reviews or
268
+ approves its own result: `oracle` owns every `verify`, including Direct and
269
+ Accelerated work.
320
270
 
321
- The bundled requirements interview is the front door for open-ended work. It
322
- clarifies intent, assesses scope, asks for user approval when needed, and routes
323
- work into direct implementation, accelerated SDD, or full SDD.
271
+ ## SDD routes
324
272
 
325
273
  ```text
326
- propose -> spec -> clarify -> design -> tasks -> apply -> verify -> archive
274
+ Direct: implement -> verify
275
+ Accelerated: specify -> plan -> tasks -> implement -> verify -> archive
276
+ Full: explore -> specify -> plan -> tasks -> analyze -> implement -> verify -> archive
327
277
  ```
328
278
 
329
- For moderate work, the accelerated path usually runs `propose -> tasks`. For
330
- high-risk or high-complexity work, the full path adds specification and design
331
- artifacts before task execution.
332
-
333
- Artifacts can be persisted in four modes:
334
-
335
-
336
- | Mode | Writes to | Cost | Use when |
337
- | ----------- | ---------------------- | ------ | ------------------------------------------ |
338
- | `thoth-mem` | Memory only | Low | Fast iteration without repo planning files |
339
- | `openspec` | `openspec/` files only | Medium | Reviewable planning artifacts in the repo |
340
- | `hybrid` | Both | High | Maximum durability; default |
341
- | `none` | Neither | Lowest | Ephemeral iterations, no persistence |
342
-
343
- [Thoth-mem](https://github.com/EremesNG/thoth-mem) is the local memory MCP used for durable observations, architectural
344
- decisions, SDD artifacts, and session summaries. The core retrieval pattern is:
279
+ | Route | Use when | Artifacts |
280
+ | --- | --- | --- |
281
+ | Direct | Clear, bounded, low-risk work, including multi-file documentation/mechanical edits | None; oracle returns its verdict in-session. |
282
+ | Accelerated | Generic SDD request, partial clarity, moderate risk, multi-surface behavior, or architecture | Canonical artifacts with fast-forward specification/planning/tasks. |
283
+ | Full | Material uncertainty, cross-cutting behavior/architecture, high contract risk, or high failure cost | Accelerated artifacts plus exploration and independent pre-implementation analysis. |
284
+
285
+ The root loads only the current phase contract from the bundled `thoth-sdd`
286
+ skill. It owns specification, clarification, planning, requirements checklists,
287
+ task decomposition, convergence, report persistence, and archive. `explorer`
288
+ owns Full discovery; `oracle` always owns `analyze` and `verify`.
289
+
290
+ An explicitly named route wins. A generic request to use SDD sets Accelerated as
291
+ the minimum. Accelerated writes `spec.md -> plan.md -> tasks.md` in one
292
+ uninterrupted root pass and does not pause for routine approval between phases.
293
+
294
+ Conditional phases remain deliberately narrow:
295
+
296
+ - `clarify` runs only for a material ambiguity and updates canonical `spec.md`;
297
+ - `checklist` audits high-risk requirement quality with `CHK###` taxonomy and a
298
+ separate revalidation pass;
299
+ - `converge` appends tasks only after failed artifact-backed verification; and
300
+ - `architectural-grilling` runs before specification only when explicitly
301
+ requested or a material human-owned decision remains unresolved.
302
+
303
+ Accelerated and Full use Spec Kit-grade formats: independent prioritized `US#`
304
+ stories with explicit FR/SC coverage, Given/When/Then scenarios, named normative
305
+ FRs with durable/internal delta metadata, buildable/outcome SC types,
306
+ Constitution checks, `T### [P?] [US#?]` task grammar, honest parallel-or-none
307
+ evidence, risk-driven checklist lenses, `ready`/`closeout` validation, compliance
308
+ reports, and transactional synchronization of declared durable deltas at archive.
309
+ Handled failures roll back within the active process; forced process or OS
310
+ termination is not crash-atomic. See
311
+ [SDD Pipeline](docs/sdd-pipeline.md).
312
+
313
+ ## Skills
314
+
315
+ Every harness package includes the workflow contracts owned by thoth-agents:
316
+
317
+ | Skill | Purpose |
318
+ | --- | --- |
319
+ | `thoth-init` | Offline, idempotent project initialization. |
320
+ | `thoth-sdd` | Route rules, phase contracts, templates, and structural validator. |
321
+ | `thoth-constitution` | Explicit governance SemVer lifecycle; routine plans only read principles. |
322
+ | `thoth-archive` | Passing closeout, transactional durable-spec sync, audit report, and dated move. |
323
+
324
+ The installer obtains these mandatory external skills from their single source
325
+ of truth:
326
+
327
+ | Skill | Canonical repository |
328
+ | --- | --- |
329
+ | `simplify` | `https://github.com/EremesNG/skills` |
330
+ | `tdd` | `https://github.com/mattpocock/skills` |
331
+ | `progressive-context-router` | `https://github.com/EremesNG/skills` |
332
+ | `architectural-grilling` | `https://github.com/EremesNG/skills` |
333
+
334
+ It invokes `npx skills add <repository> --skill <name> --global --agent
335
+ <harness> --yes`; missing external skills make installation unhealthy. Project
336
+ QA executables such as Playwright remain project-owned.
337
+
338
+ The same CLI installation then invokes `npx -y thoth-mem@latest setup
339
+ <opencode|codex|claude> --scope global --json`; dry-run adds `--plan`. Only a
340
+ consistent provider `complete` result completes installation. Provider
341
+ diagnostics, manual actions, and receipt paths remain visible for recovery.
342
+
343
+ ## Harness limitations
344
+
345
+ | Harness | Important limitation |
346
+ | --- | --- |
347
+ | OpenCode | Strongest integrated path. The CLI installs the npm plugin configuration, external skills, and provider-owned thoth-mem setup; `/thoth-init` materializes thoth-owned project skills/governance. Only the OpenAI built-in preset ships. |
348
+ | Codex | Native plugin installation is incomplete without the CLI. The CLI manages global `AGENTS.md`, six agent TOMLs, config, external skills, and thoth-mem setup; `$thoth-init` only initializes per-repository SDD governance. Runtime role matching and some permissions remain instruction-level. |
349
+ | Claude Code | Run both native marketplace commands before the CLI installs external skills and requests thoth-mem setup. The native manager owns cache files; fine-grained path restrictions remain instruction-level. |
350
+
351
+ Codex and Claude marketplace manifests are versioned in
352
+ `.agents/plugins/marketplace.json` and `.claude-plugin/marketplace.json`. The
353
+ two catalogs resolve to the same generated `plugin/` bundle. Build and npm
354
+ version lifecycle commands keep that shared bundle synchronized.
355
+
356
+ ## Models and provider boundaries
357
+
358
+ OpenCode ships only an `openai` preset. Kimi, GitHub Copilot, ZAI/GLM, and
359
+ mixed-provider mappings are not built in. Explicit per-role model overrides
360
+ remain available.
361
+
362
+ thoth-mem is an independent plugin/provider. `thoth-agents install` orchestrates
363
+ its public setup command, but thoth-mem owns the resulting hooks, MCP, skill,
364
+ session lifecycle, persistence, receipts, and recovery. thoth-agents does not
365
+ copy, edit, force, roll back, or emulate those mechanics.
366
+
367
+ At runtime the root loads the installed `thoth-mem` skill for prior-work recall,
368
+ durable decisions/root causes/conventions/discoveries, verified compaction, and
369
+ meaningful semantic completion. Delegates receive bounded `none`, `recall`, or
370
+ `observe` authorization separately from workspace write permission; root
371
+ lifecycle never transfers. `openspec/` remains canonical, so SDD phase artifacts
372
+ are not mirrored into memory.
373
+
374
+ ## CLI operations
375
+
376
+ The npm CLI is part of installation for every harness and remains available for
377
+ status, repair, and model/configuration operations:
345
378
 
346
- 1. `mem_recall(mode="compact")` for compact candidate records
347
- 2. `mem_recall(mode="context")` for expanded retrieved context
348
- 3. `mem_get(...)` for the full selected record; use
349
- `mem_get(include_timeline=true)` when chronology matters
350
-
351
- Use HyDE/fused hybrid recall (sentence + chunk vectors, FTS, KG enrichment) for
352
- semantic or ambiguous searches; set `mem_recall` `limit` from 1 to 20; narrow
353
- with `topic_key`, `type`, `time_from`, `time_to`, `scope`, `project`, and
354
- `session_id` filters. Use `mem_get` with `kind="observation"|"prompt"`,
355
- `include_timeline=true` plus `before`/`after`, and `offset`/`max_length` for
356
- large content. Use bounded `mem_context(recall_query=...)` or
357
- `mem_project(action="graph"|"topics"|"topic")` for supplemental project
358
- context; `mem_project(action="graph")` relations are `HAS_TYPE`, `IN_PROJECT`,
359
- `HAS_TOPIC_KEY`, `HAS_WHAT`, `HAS_WHY`, `HAS_WHERE`, and `HAS_LEARNED`.
360
-
361
- ## Skills And MCPs
362
-
363
- thoth-agents ships bundled skills for requirements discovery, plan review, SDD
364
- planning/execution, verification, and archiving. It also registers MCP servers
365
- for docs research, public code search, and local memory where the harness
366
- supports that delivery surface.
367
-
368
-
369
- | Surface | Shared concept | OpenCode binding | Codex binding | Claude Code binding |
370
- | ---------------- | ---------------------------------------------- | ------------------------------------------------------------ | ---------------------------------------------------------------- | ----------------------------------------------------------------- |
371
- | 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 |
372
- | 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) |
373
- | Delegation | Seven-role specialist workflow | Native`task` tool | Direct `collaboration.*` generic task delegation; role behavior carried by task name/message | Native`Task(subagent_type: ...)` over auto-discovered subagents |
374
- | Blocking choices | Use a structured question surface | OpenCode`question` tool | `request_user_input` when enabled and available | `AskUserQuestion` tool |
379
+ ```bash
380
+ npx thoth-agents@latest status
381
+ npx thoth-agents@latest list
382
+ npx thoth-agents@latest install --agent=opencode
383
+ npx thoth-agents@latest install --agent=codex
384
+ npx thoth-agents@latest install --agent=claude
385
+ npx thoth-agents@latest model --harness=codex --role=deep --model=gpt-5.6-sol
386
+ ```
375
387
 
376
- See [docs/skills-and-mcps.md](docs/skills-and-mcps.md) for the detailed matrix.
388
+ It does not replace native marketplace trust or mutate manager-owned caches.
377
389
 
378
390
  ## Documentation
379
391
 
380
- - [Installation](docs/installation.md): OpenCode default setup, explicit Codex
381
- setup, non-interactive installs, reset behavior, and troubleshooting.
382
- - [Codex Install](docs/codex-install.md): Codex targets, backups, dry-run
383
- behavior, trust review, and limitations.
384
- - [Quick Reference](docs/quick-reference.md): Agent roster, SDD flow, memory,
385
- delegation, tmux, and key config fields.
386
- - [Skills and MCPs](docs/skills-and-mcps.md): Bundled skills, MCP servers, and
387
- harness delivery surfaces.
388
- - [Provider Configurations](docs/provider-configurations.md): OpenCode provider
389
- presets, fallback chains, and Codex customization cross-links.
390
- - [Tmux Integration](docs/tmux-integration.md): OpenCode-scoped live pane
391
- monitoring for delegated `task` sessions.
392
- - [SDD Pipeline](docs/sdd-pipeline.md): Planning and execution workflow details.
393
- - [Codex Plugin Packaging](docs/codex-plugin-packaging.md): Codex plugin package
394
- layout and packaging boundaries.
395
- - [Codex Surface Validation](docs/codex-surface-validation.md): Validated,
396
- unknown, and unsupported Codex generation surfaces.
397
- - [Codex Model Customization](docs/codex-model-customization.md): Codex role
398
- model defaults and customization limits.
392
+ - [Installation](docs/installation.md)
393
+ - [Quick Reference](docs/quick-reference.md)
394
+ - [SDD Pipeline](docs/sdd-pipeline.md)
395
+ - [Skills and MCPs](docs/skills-and-mcps.md)
396
+ - [Codex Install](docs/codex-install.md)
397
+ - [Claude Code Install](docs/claude-code-install.md)
398
+ - [Codex Plugin Packaging](docs/codex-plugin-packaging.md)
399
+ - [Claude Code Plugin Packaging](docs/claude-code-plugin-packaging.md)
400
+ - [Provider Configuration](docs/provider-configurations.md)
399
401
 
400
402
  ## Development
401
403
 
402
- The OpenCode integration targets `@opencode-ai/plugin` and
403
- `@opencode-ai/sdk` v1.4.7. The repository also contains Codex adapter and
404
- packaging code for the multi-harness install path.
405
-
406
- Use Node.js `>=22.13` with Corepack-managed `pnpm@11.2.2`:
407
-
408
404
  ```bash
409
- corepack enable
410
- corepack prepare pnpm@11.2.2 --activate
411
405
  pnpm install
406
+ pnpm run check:ci
407
+ pnpm run typecheck
408
+ pnpm run build
409
+ pnpm test
412
410
  ```
413
411
 
414
-
415
- | Command | Purpose |
416
- | -------------------- | ------------------------------------------------------------- |
417
- | `pnpm run build` | Build TypeScript into`dist/` and generate declarations/schema |
418
- | `pnpm run typecheck` | Run TypeScript type checking without emit |
419
- | `pnpm test` | Run the Vitest suite |
420
- | `pnpm run lint` | Run Biome linter |
421
- | `pnpm run format` | Run Biome formatter |
422
- | `pnpm run check` | Run Biome check with auto-fix |
423
- | `pnpm run check:ci` | Run Biome check without writes |
424
- | `pnpm run dev` | Build and launch the OpenCode plugin in local dev mode |
412
+ Node.js `>=22.13` and `pnpm@11.2.2` are required. `pnpm run build` regenerates
413
+ both integration packages, compiles the runtime and declarations, and refreshes
414
+ the JSON schema.
425
415
 
426
416
  ## License
427
417
 
428
- MIT
418
+ [MIT](LICENSE)