@plazmodium/odin 0.3.2-beta → 0.3.4-beta

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 (73) hide show
  1. package/README.md +82 -11
  2. package/builtin/ODIN.md +1045 -0
  3. package/builtin/agent-definitions/README.md +170 -0
  4. package/builtin/agent-definitions/_shared-context.md +377 -0
  5. package/builtin/agent-definitions/architect.md +627 -0
  6. package/builtin/agent-definitions/builder.md +716 -0
  7. package/builtin/agent-definitions/discovery.md +293 -0
  8. package/builtin/agent-definitions/documenter.md +238 -0
  9. package/builtin/agent-definitions/guardian.md +1049 -0
  10. package/builtin/agent-definitions/integrator.md +363 -0
  11. package/builtin/agent-definitions/planning.md +236 -0
  12. package/builtin/agent-definitions/product.md +405 -0
  13. package/builtin/agent-definitions/release.md +430 -0
  14. package/builtin/agent-definitions/reviewer.md +447 -0
  15. package/builtin/agent-definitions/watcher.md +402 -0
  16. package/builtin/skills/api/graphql/SKILL.md +548 -0
  17. package/builtin/skills/api/grpc/SKILL.md +554 -0
  18. package/builtin/skills/api/rest-api/SKILL.md +469 -0
  19. package/builtin/skills/api/trpc/SKILL.md +503 -0
  20. package/builtin/skills/architecture/clean-architecture/SKILL.md +141 -0
  21. package/builtin/skills/architecture/domain-driven-design/SKILL.md +129 -0
  22. package/builtin/skills/architecture/event-driven/SKILL.md +145 -0
  23. package/builtin/skills/architecture/microservices/SKILL.md +143 -0
  24. package/builtin/skills/architecture/tla-precheck/SKILL.md +171 -0
  25. package/builtin/skills/backend/golang-gin/SKILL.md +141 -0
  26. package/builtin/skills/backend/nodejs-express/SKILL.md +277 -0
  27. package/builtin/skills/backend/nodejs-fastify/SKILL.md +152 -0
  28. package/builtin/skills/backend/python-django/SKILL.md +128 -0
  29. package/builtin/skills/backend/python-fastapi/SKILL.md +140 -0
  30. package/builtin/skills/database/mongodb/SKILL.md +132 -0
  31. package/builtin/skills/database/postgresql/SKILL.md +120 -0
  32. package/builtin/skills/database/prisma-orm/SKILL.md +366 -0
  33. package/builtin/skills/database/redis/SKILL.md +140 -0
  34. package/builtin/skills/database/supabase/SKILL.md +416 -0
  35. package/builtin/skills/devops/aws/SKILL.md +382 -0
  36. package/builtin/skills/devops/docker/SKILL.md +359 -0
  37. package/builtin/skills/devops/github-actions/SKILL.md +435 -0
  38. package/builtin/skills/devops/kubernetes/SKILL.md +459 -0
  39. package/builtin/skills/devops/terraform/SKILL.md +453 -0
  40. package/builtin/skills/frontend/alpine-dev/SKILL.md +27 -0
  41. package/builtin/skills/frontend/angular-dev/SKILL.md +28 -0
  42. package/builtin/skills/frontend/astro-dev/SKILL.md +28 -0
  43. package/builtin/skills/frontend/htmx-dev/SKILL.md +28 -0
  44. package/builtin/skills/frontend/nextjs-dev/SKILL.md +470 -0
  45. package/builtin/skills/frontend/react-patterns/SKILL.md +166 -0
  46. package/builtin/skills/frontend/svelte-dev/SKILL.md +28 -0
  47. package/builtin/skills/frontend/tailwindcss/SKILL.md +131 -0
  48. package/builtin/skills/frontend/vuejs-dev/SKILL.md +28 -0
  49. package/builtin/skills/generic-dev/SKILL.md +307 -0
  50. package/builtin/skills/testing/cypress/SKILL.md +372 -0
  51. package/builtin/skills/testing/jest/SKILL.md +176 -0
  52. package/builtin/skills/testing/playwright/SKILL.md +341 -0
  53. package/builtin/skills/testing/unit-tests-eval-sdd/SKILL.md +73 -0
  54. package/builtin/skills/testing/unit-tests-sdd/SKILL.md +83 -0
  55. package/builtin/skills/testing/vitest/SKILL.md +249 -0
  56. package/dist/adapters/skills/filesystem.d.ts.map +1 -1
  57. package/dist/adapters/skills/filesystem.js +2 -18
  58. package/dist/adapters/skills/filesystem.js.map +1 -1
  59. package/dist/builtin-assets.d.ts +8 -0
  60. package/dist/builtin-assets.d.ts.map +1 -0
  61. package/dist/builtin-assets.js +90 -0
  62. package/dist/builtin-assets.js.map +1 -0
  63. package/dist/init.js +69 -11
  64. package/dist/init.js.map +1 -1
  65. package/dist/schemas.d.ts +1 -1
  66. package/dist/server.js +1 -1
  67. package/dist/server.js.map +1 -1
  68. package/dist/tools/prepare-phase-context.d.ts.map +1 -1
  69. package/dist/tools/prepare-phase-context.js +5 -0
  70. package/dist/tools/prepare-phase-context.js.map +1 -1
  71. package/dist/types.d.ts +3 -0
  72. package/dist/types.d.ts.map +1 -1
  73. package/package.json +5 -3
package/README.md CHANGED
@@ -6,13 +6,13 @@ A single-install MCP server that gives your AI coding agent an 11-phase developm
6
6
 
7
7
  ### 1. Install
8
8
 
9
- Preferred published-package flow after the first npm publish:
9
+ Preferred published-package flow:
10
10
 
11
11
  ```bash
12
12
  npx -y @plazmodium/odin init --project-root /path/to/your/project --tool opencode --write-mcp
13
13
  ```
14
14
 
15
- Current repo-checkout flow that works today:
15
+ Maintainer repo-checkout flow:
16
16
 
17
17
  ```bash
18
18
  cd runtime
@@ -23,26 +23,82 @@ npm run build
23
23
  ### 2. Bootstrap your project
24
24
 
25
25
  ```bash
26
- # Published-package MCP command snippets after the first npm publish
26
+ # Published-package MCP command snippets
27
27
  npx -y @plazmodium/odin init --project-root /path/to/your/project --tool amp --write-mcp
28
28
  npx -y @plazmodium/odin init --project-root /path/to/your/project --tool opencode --write-mcp
29
29
 
30
- # Source-checkout snippets while working from odin-workflow today
30
+ # Source-checkout snippets while working on Odin from this repo
31
31
  npm run init:project -- --project-root /path/to/your/project --tool amp --distribution source --write-mcp
32
32
  npm run init:project -- --project-root /path/to/your/project --tool codex --distribution source --write-mcp
33
33
  ```
34
34
 
35
35
  This creates:
36
36
  - `.odin/config.yaml` — runtime configuration (commit this)
37
+ - `.odin/ODIN.md` — bundled Odin framework guide for the harness to read locally
38
+ - `.odin/agents/definitions/` — bundled phase agent definitions and shared context
37
39
  - `.odin/skills/` — project-local skill overrides (commit this)
38
40
  - `.env.example` — required environment variables (commit this)
39
41
  - Your harness config file (`opencode.json`, `.mcp.json`, or `.codex/config.toml`, depending on tool)
40
42
 
41
43
  Important: Odin bootstraps with `runtime.mode: in_memory` by default so MCP wiring can work without external services. Switch `.odin/config.yaml` to `runtime.mode: supabase` when you are ready for persistent workflow state.
42
44
 
43
- Until `@plazmodium/odin` is actually published, use the repo-checkout `--distribution source` flow shown above.
45
+ If you are developing Odin from this repo, use the repo-checkout `--distribution source` flow shown above.
44
46
 
45
- If you are the maintainer preparing that publish, use [`../docs/guides/NPM-PUBLISH.md`](../docs/guides/NPM-PUBLISH.md).
47
+ If you are the maintainer preparing that publish, use [the npm publish guide](https://github.com/Plazmodium/odin-workflow/blob/dev/docs/guides/NPM-PUBLISH.md).
48
+
49
+ ### Manual MCP wiring
50
+
51
+ If you do not want Odin to write your harness config for you, add the MCP server manually.
52
+
53
+ For Claude Code / Amp:
54
+
55
+ ```json
56
+ {
57
+ "mcpServers": {
58
+ "odin": {
59
+ "command": "npx",
60
+ "args": ["-y", "@plazmodium/odin", "mcp"],
61
+ "env": {
62
+ "ODIN_PROJECT_ROOT": "/absolute/path/to/your/project"
63
+ }
64
+ }
65
+ }
66
+ }
67
+ ```
68
+
69
+ For OpenCode:
70
+
71
+ ```json
72
+ {
73
+ "$schema": "https://opencode.ai/config.json",
74
+ "mcp": {
75
+ "odin": {
76
+ "type": "local",
77
+ "command": [
78
+ "npx",
79
+ "-y",
80
+ "@plazmodium/odin",
81
+ "mcp"
82
+ ],
83
+ "enabled": true,
84
+ "environment": {
85
+ "ODIN_PROJECT_ROOT": "/absolute/path/to/your/project"
86
+ }
87
+ }
88
+ }
89
+ }
90
+ ```
91
+
92
+ For Codex:
93
+
94
+ ```toml
95
+ [mcp_servers.odin]
96
+ command = "npx"
97
+ args = ["-y", "@plazmodium/odin", "mcp"]
98
+ env = { ODIN_PROJECT_ROOT = "/absolute/path/to/your/project" }
99
+ ```
100
+
101
+ For Cursor, use the same command, args, and env values in the MCP Servers settings UI.
46
102
 
47
103
  ### 3. Add your database credentials
48
104
 
@@ -102,6 +158,17 @@ Your AI agent now has these tools available:
102
158
  | `odin.explore_knowledge` | Explore knowledge clusters, cross-domain bridges, and domain stats |
103
159
  | `odin.apply_migrations` | Apply pending database migrations (auto-detects existing schema) |
104
160
 
161
+ ## Dashboard
162
+
163
+ `@plazmodium/odin` ships the MCP runtime only. It does **not** bundle the Next.js dashboard.
164
+
165
+ If you want the dashboard UI for feature health, learnings, claims, and eval visibility, use the full Odin repository:
166
+
167
+ - Repo: https://github.com/Plazmodium/odin-workflow
168
+ - Dashboard app: https://github.com/Plazmodium/odin-workflow/tree/dev/dashboard
169
+
170
+ The dashboard is a separate app and is not included in the npm tarball.
171
+
105
172
  ## Configuration
106
173
 
107
174
  Odin uses two files:
@@ -208,8 +275,10 @@ Recommended harness behavior:
208
275
  ```text
209
276
  1. Call odin.prepare_phase_context(...)
210
277
  2. Build the agent prompt from:
278
+ - .odin/ODIN.md (framework-level rules)
211
279
  - context.agent.role_summary
212
280
  - context.agent.constraints
281
+ - context.agent.definition_markdown
213
282
  - context.development_evals.harness_prompt_block
214
283
  3. Keep context.development_evals.status_summary visible to the operator
215
284
  4. Do not treat eval instructions as a replacement for formal verification, Semgrep, tests, runtime checks, or watcher checks
@@ -219,14 +288,16 @@ Canonical eval-aware orchestration snippet:
219
288
 
220
289
  ```text
221
290
  When orchestrating Odin phases:
222
- 1. Call odin.prepare_phase_context({ feature_id, phase, agent_name }).
223
- 2. Build the active agent prompt from:
291
+ 1. Read `.odin/ODIN.md` once so the harness has the framework-level rules in project context.
292
+ 2. Call odin.prepare_phase_context({ feature_id, phase, agent_name }).
293
+ 3. Build the active agent prompt from:
224
294
  - context.agent.role_summary
225
295
  - context.agent.constraints
296
+ - context.agent.definition_markdown
226
297
  - context.development_evals.harness_prompt_block
227
- 3. Use odin.get_development_eval_status({ feature_id }) when you need focused eval state.
228
- 4. Record eval artifacts/gates with odin.record_eval_plan, odin.record_eval_run, and odin.record_quality_gate.
229
- 5. Never let Development Evals override odin.verify_design, odin.run_review_checks, tests, runtime verification, or watcher checks.
298
+ 4. Use odin.get_development_eval_status({ feature_id }) when you need focused eval state.
299
+ 5. Record eval artifacts/gates with odin.record_eval_plan, odin.record_eval_run, and odin.record_quality_gate.
300
+ 6. Never let Development Evals override odin.verify_design, odin.run_review_checks, tests, runtime verification, or watcher checks.
230
301
  ```
231
302
 
232
303
  If the harness wants a focused eval-only read path instead of parsing `odin.get_feature_status`, call: