@bradheitmann/odin-sentinel 0.2.1

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 (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +285 -0
  3. package/dist/src/bin/index.d.ts +2 -0
  4. package/dist/src/bin/index.js +17 -0
  5. package/dist/src/bin/index.js.map +1 -0
  6. package/dist/src/mcp/server.d.ts +2 -0
  7. package/dist/src/mcp/server.js +159 -0
  8. package/dist/src/mcp/server.js.map +1 -0
  9. package/dist/src/protocol/index.d.ts +2 -0
  10. package/dist/src/protocol/index.js +2 -0
  11. package/dist/src/protocol/index.js.map +1 -0
  12. package/dist/src/protocol/repository.d.ts +16 -0
  13. package/dist/src/protocol/repository.js +103 -0
  14. package/dist/src/protocol/repository.js.map +1 -0
  15. package/dist/src/protocol/schemas.d.ts +64 -0
  16. package/dist/src/protocol/schemas.js +39 -0
  17. package/dist/src/protocol/schemas.js.map +1 -0
  18. package/dist/src/protocol/service.d.ts +52 -0
  19. package/dist/src/protocol/service.js +322 -0
  20. package/dist/src/protocol/service.js.map +1 -0
  21. package/dist/src/protocol/validators.d.ts +16 -0
  22. package/dist/src/protocol/validators.js +56 -0
  23. package/dist/src/protocol/validators.js.map +1 -0
  24. package/dist/src/protocol/version.d.ts +1 -0
  25. package/dist/src/protocol/version.js +26 -0
  26. package/dist/src/protocol/version.js.map +1 -0
  27. package/docs/guides/quick-start.md +74 -0
  28. package/docs/guides/recommended-starter-team.md +35 -0
  29. package/docs/reference/client-compatibility.md +59 -0
  30. package/docs/reference/cost-and-privacy.md +35 -0
  31. package/docs/reference/distribution.md +74 -0
  32. package/docs/reference/public-surface-audit.md +133 -0
  33. package/package.json +69 -0
  34. package/protocol/SCP.md +34 -0
  35. package/protocol/closeout.yaml +20 -0
  36. package/protocol/delegation.yaml +38 -0
  37. package/protocol/model-profiles.yaml +63 -0
  38. package/protocol/receipts/boot-receipt.yaml +23 -0
  39. package/protocol/receipts/team-manifest.yaml +9 -0
  40. package/protocol/roles.yaml +62 -0
  41. package/protocol/topology.yaml +22 -0
  42. package/scripts/audit/public-surface.mjs +67 -0
  43. package/scripts/audit/verify-pack.mjs +71 -0
@@ -0,0 +1,74 @@
1
+ # Quick Start
2
+
3
+ ODIN Sentinel runs as a local MCP server over stdio.
4
+
5
+ It does not provide model inference. It does not host a backend. Your MCP client
6
+ starts the process, calls ODIN tools, and reads ODIN protocol resources.
7
+
8
+ ## From Source
9
+
10
+ ```bash
11
+ pnpm install
12
+ pnpm run build
13
+ node dist/src/bin/index.js
14
+ ```
15
+
16
+ ## Client Configuration
17
+
18
+ Use the built server as a stdio command:
19
+
20
+ ```json
21
+ {
22
+ "mcpServers": {
23
+ "odin-sentinel": {
24
+ "command": "node",
25
+ "args": ["/absolute/path/to/odin-sentinel/dist/src/bin/index.js"]
26
+ }
27
+ }
28
+ }
29
+ ```
30
+
31
+ For local development:
32
+
33
+ ```json
34
+ {
35
+ "mcpServers": {
36
+ "odin-sentinel": {
37
+ "command": "pnpm",
38
+ "args": ["exec", "tsx", "/absolute/path/to/odin-sentinel/src/bin/index.ts"]
39
+ }
40
+ }
41
+ }
42
+ ```
43
+
44
+ ## First Calls
45
+
46
+ Ask the client to call:
47
+
48
+ 1. `odin.get_version`
49
+ 2. `odin.get_runtime_notice`
50
+ 3. `odin.get_startup_packet`
51
+
52
+ Then read:
53
+
54
+ 1. `odin://protocol/main`
55
+ 2. `odin://protocol/roles`
56
+ 3. `odin://protocol/topology`
57
+ 4. `odin://protocol/delegation`
58
+
59
+ That is enough for a client to understand the default team shape and how to
60
+ start cleanly.
61
+
62
+ For a suggested starter team, see
63
+ [recommended-starter-team.md](recommended-starter-team.md).
64
+
65
+ ## Local State
66
+
67
+ ODIN may point agents at these project-local locations:
68
+
69
+ - `docs/handoffs/`
70
+ - `.odin/handoffs/`
71
+ - `.odin/audit/`
72
+
73
+ They are not bundled state. Create them in the project where your agents are
74
+ working if you want persistent handoffs or audit notes.
@@ -0,0 +1,35 @@
1
+ # Recommended Starter Team
2
+
3
+ ODIN is opinionated, but not rigid.
4
+
5
+ The profiles below are a good starting point for a visible multi-agent session.
6
+ They are not bundled dependencies. Install and configure the harnesses you want,
7
+ then point them at ODIN Sentinel through MCP.
8
+
9
+ ## Executive Office
10
+
11
+ | Role | Suggested Harness | Suggested Model Class | Why |
12
+ | --- | --- | --- | --- |
13
+ | `A/EXEC-PM` | Codex CLI | GPT-5.5-class frontier reasoning model | Stable coordination, claim-bound reporting, and careful instruction handling. |
14
+ | `A/EXEC-ODIN` | Codex CLI | GPT-5.5-class frontier reasoning model | Sentinel work: staying awake, polling, quality control, and closeout hygiene. |
15
+ | `A/EXEC-ASST` | Claude Code | Claude Haiku-class fast assistant model | Low-latency ledger work, reminders, artifact indexing, and simple checks. |
16
+ | `A/EXEC-RSCH` | Droid | Kimi K2.6-class orchestration model | Research, alternatives, synthesis, and context recovery. |
17
+ | `A/EXEC-QA` | Droid | Kimi K2.6-class review model | Independent process review, evidence checks, and drift detection. |
18
+
19
+ ## Development Pod
20
+
21
+ | Role | Suggested Harness | Suggested Model Class | Why |
22
+ | --- | --- | --- | --- |
23
+ | `<TEAM>/TEAM-PM` | Claude Code | Claude Opus/Sonnet-class coding model | Pod orchestration, task decomposition, dispatch, and worker follow-up. |
24
+ | `<TEAM>/ODIN` | Codex CLI | GPT-5.5-class frontier reasoning model | Lightweight pod sentinel duties, blocker detection, and quality reminders. |
25
+ | `<TEAM>/DEV-1` | Droid | Kimi K2.6-class coding model | Bounded implementation work. |
26
+ | `<TEAM>/QA-1` | Crush | GLM-5.1-class independent review model | Independent QA with a different review style from the implementer. |
27
+ | `<TEAM>/SHADOW-1` | Droid | Kimi K2.6-class review model | Second-pass critique, architectural concerns, and risk surfacing. |
28
+
29
+ ## Notes
30
+
31
+ Use faster models for ledger work, routine research, and low-risk monitoring.
32
+ Use stronger models for coordination, implementation, QA, and places where the
33
+ cost of a missed detail is high.
34
+
35
+ The defaults live in `protocol/model-profiles.yaml`. Change them freely.
@@ -0,0 +1,59 @@
1
+ # Client Compatibility
2
+
3
+ ODIN Sentinel is implemented in TypeScript and runs on Node.js, but MCP clients
4
+ do not need to be TypeScript or JavaScript. Clients interact with the server
5
+ through MCP over stdio, which is JSON-RPC framed over standard input/output.
6
+
7
+ ## Compatibility Contract
8
+
9
+ The server keeps the MCP boundary language-neutral:
10
+
11
+ - tools accept and return JSON-compatible values
12
+ - resources return text, JSON, Markdown, or YAML content
13
+ - no tool requires a JavaScript object prototype, class instance, or local Node-specific object
14
+ - no tool requires filesystem access from the client
15
+ - fallback protocol snapshots are returned as plain filename-to-text maps
16
+
17
+ ## Rust, Zig, Go, And Native Clients
18
+
19
+ Native clients that can spawn stdio subprocesses should launch the server as a
20
+ subprocess:
21
+
22
+ ```text
23
+ command: node
24
+ args: [/path/to/odin-sentinel/dist/src/bin/index.js]
25
+ transport: stdio
26
+ ```
27
+
28
+ Then call normal MCP methods:
29
+
30
+ - `tools/list`
31
+ - `tools/call`
32
+ - `resources/list`
33
+ - `resources/read`
34
+
35
+ ## WebAssembly Clients
36
+
37
+ WASM runtimes vary. Some can spawn subprocesses through a host capability; many
38
+ cannot. If the WASM client cannot spawn a stdio process, use one of these
39
+ patterns:
40
+
41
+ 1. Host bridge: native host process runs `odin-sentinel` and exposes MCP calls
42
+ to the WASM guest.
43
+ 2. Sidecar bridge: an external local process runs `odin-sentinel` and the WASM
44
+ client talks to the host through its supported bridge channel.
45
+ 3. Snapshot fallback: call `odin.export_protocol_snapshot` from a capable host and
46
+ provide the generated text files to the WASM agent as static context.
47
+
48
+ ## Portability Limits
49
+
50
+ The current server runtime requires Node.js 20 or newer. This does not restrict
51
+ the client implementation language; it only means the machine hosting the MCP
52
+ server needs Node available.
53
+
54
+ Future options if a pure native server is needed:
55
+
56
+ - Rust MCP server using the same `protocol/` data files.
57
+ - Go MCP server using the same `protocol/` data files.
58
+ - Single-file generated JSON protocol bundle for embedded clients.
59
+ - WASI-compatible read-only server if the target runtime supports stdio.
@@ -0,0 +1,35 @@
1
+ # Cost And Privacy
2
+
3
+ ODIN Sentinel does not provide inference.
4
+
5
+ It does not proxy model calls, host a backend, phone home, collect telemetry, or
6
+ ship credentials. It is a local MCP server that returns protocol resources,
7
+ startup packets, validation results, delegation envelopes, closeout checklists,
8
+ and fallback text snapshots.
9
+
10
+ ## Who Pays For What
11
+
12
+ The maintainer does not pay when another person runs ODIN Sentinel locally.
13
+
14
+ Users are responsible for their own harness setup and any model calls those
15
+ harnesses make. ODIN Sentinel only returns coordination data over MCP.
16
+
17
+ ODIN Sentinel only names preferred harness slots and model capability profiles.
18
+ Those are dispatch preferences, not hosted compute.
19
+
20
+ ## Network Boundary
21
+
22
+ The server is stdio-only by default:
23
+
24
+ ```text
25
+ MCP client <-> local stdio process <-> protocol files
26
+ ```
27
+
28
+ No network call is required for normal operation.
29
+
30
+ ## Standalone Boundary
31
+
32
+ ODIN Sentinel is standalone.
33
+
34
+ The default handoff search list uses `.odin/` paths. A fresh repo does not need
35
+ any separate orchestration system installed for ODIN Sentinel to work.
@@ -0,0 +1,74 @@
1
+ # Distribution
2
+
3
+ ODIN Sentinel is a local stdio MCP server. The simplest public distribution is
4
+ an npm package that ships prebuilt JavaScript and protocol files.
5
+
6
+ ## Recommended Install Path
7
+
8
+ After publishing:
9
+
10
+ ```bash
11
+ pnpm dlx odin-sentinel
12
+ ```
13
+
14
+ MCP client configuration can then use:
15
+
16
+ ```json
17
+ {
18
+ "mcpServers": {
19
+ "odin-sentinel": {
20
+ "command": "pnpm",
21
+ "args": ["dlx", "odin-sentinel"]
22
+ }
23
+ }
24
+ }
25
+ ```
26
+
27
+ `npx -y odin-sentinel` is also viable for npm-first clients.
28
+
29
+ ## Local Clone Path
30
+
31
+ For source builds:
32
+
33
+ ```bash
34
+ pnpm install
35
+ pnpm run build
36
+ node dist/src/bin/index.js
37
+ ```
38
+
39
+ Then point the client at the built file:
40
+
41
+ ```json
42
+ {
43
+ "mcpServers": {
44
+ "odin-sentinel": {
45
+ "command": "node",
46
+ "args": ["/absolute/path/to/odin-sentinel/dist/src/bin/index.js"]
47
+ }
48
+ }
49
+ }
50
+ ```
51
+
52
+ ## Advanced Root Override
53
+
54
+ The server normally finds its bundled `protocol/` directory automatically.
55
+
56
+ Advanced deployments can set `ODIN_SENTINEL_ROOT` to point at another checked-out
57
+ ODIN Sentinel root that contains the full `protocol/` tree. Most users do not
58
+ need this.
59
+
60
+ ## Binary Strategy
61
+
62
+ A native binary is possible, but it should not be the first distribution path.
63
+ The server is small, stdio-only, and already fits the package manager workflow
64
+ most MCP clients expect.
65
+
66
+ Good future binary routes:
67
+
68
+ - Rust or Go implementation over the same `protocol/` files.
69
+ - Generated single-file protocol bundle for embedded clients.
70
+ - Homebrew formula once the public package name and release cadence are stable.
71
+
72
+ Avoid a bundled Node executable unless users ask for it. Those bundles tend to
73
+ make asset paths, source maps, and platform support more awkward than the code
74
+ deserves.
@@ -0,0 +1,133 @@
1
+ # Public Surface Audit
2
+
3
+ This document records the current public-release audit scope for ODIN Sentinel.
4
+
5
+ ## Current Tree Result
6
+
7
+ Current tracked source, docs, protocol files, tests, and package metadata pass
8
+ the public-surface audit:
9
+
10
+ ```bash
11
+ pnpm run audit:public
12
+ ```
13
+
14
+ The audit checks for:
15
+
16
+ - local home-directory paths
17
+ - local agent configuration paths
18
+ - legacy extension terminology from adjacent agent systems
19
+ - secret-looking assignments
20
+
21
+ ## Named External Concepts
22
+
23
+ ODIN Sentinel intentionally names these external concepts:
24
+
25
+ - MCP / Model Context Protocol
26
+ - stdio
27
+ - Node.js
28
+ - TypeScript / JavaScript
29
+ - pnpm / npm / npx
30
+ - Codex CLI
31
+ - Claude Code
32
+ - Droid
33
+ - Crush
34
+ - Goose
35
+ - Zed
36
+ - OpenCode
37
+ - Cursor
38
+ - Rust
39
+ - Go
40
+ - Zig
41
+ - WebAssembly / WASM
42
+ - Homebrew
43
+
44
+ These are examples, runtimes, package managers, languages, or harnesses. They
45
+ are not bundled dependencies unless listed in `package.json`.
46
+
47
+ ## Named ODIN Concepts
48
+
49
+ - ODIN Sentinel
50
+ - ODIN
51
+ - SCP / Sentinel Coordination Protocol
52
+ - CMUX-compatible terminal-pane teams
53
+ - EXEC PM
54
+ - EXEC ODIN
55
+ - EXEC ASST
56
+ - EXEC RSCH
57
+ - EXEC QA
58
+ - TEAM PM
59
+ - TEAM ODIN
60
+ - DEV WORKER
61
+ - QA WORKER
62
+ - SHADOW REVIEWER
63
+
64
+ ## Local Paths
65
+
66
+ ODIN Sentinel intentionally mentions these project-local paths:
67
+
68
+ - `docs/handoffs/`
69
+ - `.odin/handoffs/`
70
+ - `.odin/audit/`
71
+
72
+ These are caller-created paths for projects that use ODIN. They are not bundled
73
+ private state.
74
+
75
+ Docs also use placeholder install paths such as:
76
+
77
+ - `/absolute/path/to/odin-sentinel/dist/src/bin/index.js`
78
+ - `/path/to/odin-sentinel/dist/src/bin/index.js`
79
+
80
+ These are examples, not real local paths.
81
+
82
+ ## Scripts Mentioned
83
+
84
+ Repo scripts in `package.json`:
85
+
86
+ - `pnpm run clean`
87
+ - `pnpm run build`
88
+ - `pnpm run dev`
89
+ - `pnpm run audit:public`
90
+ - `pnpm run test:package`
91
+ - `pnpm test`
92
+ - `pnpm run typecheck`
93
+ - `pnpm run validate`
94
+
95
+ Referenced local script files:
96
+
97
+ - `scripts/audit/public-surface.mjs`
98
+ - `scripts/audit/verify-pack.mjs`
99
+
100
+ No missing repo-local scripts are known.
101
+
102
+ External commands mentioned in docs:
103
+
104
+ - `node`
105
+ - `pnpm`
106
+ - `npm`
107
+ - `npx`
108
+ - `codex mcp add`
109
+ - `droid mcp add`
110
+
111
+ These are external user-installed tools, not files this repository must provide.
112
+
113
+ ## Snapshot Tools
114
+
115
+ Current MCP snapshot tool:
116
+
117
+ - `odin.export_protocol_snapshot`
118
+
119
+ No external local extension is required for ODIN Sentinel to work.
120
+
121
+ ## Git History Warning
122
+
123
+ The current tree is sanitized, but this private development repository has older
124
+ commits that contain removed terminology and experimental paths.
125
+
126
+ Do not make this private development history public as-is. For an open-source
127
+ release, publish from a fresh repository, a squashed root commit, or a sanitized
128
+ history rewrite after re-running:
129
+
130
+ ```bash
131
+ pnpm run validate
132
+ pnpm run audit:public
133
+ ```
package/package.json ADDED
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "@bradheitmann/odin-sentinel",
3
+ "version": "0.2.1",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "description": "Multi-harness terminal-pane team builder and orchestrator over MCP.",
8
+ "type": "module",
9
+ "main": "./dist/src/protocol/index.js",
10
+ "types": "./dist/src/protocol/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/src/protocol/index.d.ts",
14
+ "import": "./dist/src/protocol/index.js"
15
+ },
16
+ "./mcp": {
17
+ "types": "./dist/src/mcp/server.d.ts",
18
+ "import": "./dist/src/mcp/server.js"
19
+ },
20
+ "./package.json": "./package.json"
21
+ },
22
+ "bin": {
23
+ "odin-sentinel": "./dist/src/bin/index.js",
24
+ "odin-sentinel-mcp": "./dist/src/bin/index.js"
25
+ },
26
+ "files": [
27
+ "dist",
28
+ "docs",
29
+ "protocol",
30
+ "scripts",
31
+ "README.md",
32
+ "LICENSE"
33
+ ],
34
+ "keywords": [
35
+ "mcp",
36
+ "model-context-protocol",
37
+ "agent-orchestration",
38
+ "multi-agent",
39
+ "sentinel"
40
+ ],
41
+ "author": "ODIN Sentinel contributors",
42
+ "license": "MIT",
43
+ "dependencies": {
44
+ "@modelcontextprotocol/sdk": "^1.29.0",
45
+ "yaml": "^2.8.2",
46
+ "zod": "^4.1.12"
47
+ },
48
+ "devDependencies": {
49
+ "@types/node": "^24.10.1",
50
+ "@vitest/coverage-v8": "4.1.5",
51
+ "tsx": "^4.20.6",
52
+ "typescript": "^5.9.3",
53
+ "vitest": "4.1.5"
54
+ },
55
+ "engines": {
56
+ "node": ">=22.13.0"
57
+ },
58
+ "scripts": {
59
+ "clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
60
+ "build": "pnpm run clean && tsc -p tsconfig.build.json",
61
+ "dev": "tsx src/bin/index.ts",
62
+ "audit:public": "node scripts/audit/public-surface.mjs",
63
+ "test:package": "node scripts/audit/verify-pack.mjs",
64
+ "test": "vitest run",
65
+ "test:coverage": "vitest run --coverage",
66
+ "typecheck": "tsc -p tsconfig.json --noEmit",
67
+ "validate": "pnpm run audit:public && pnpm run typecheck && pnpm test && pnpm run build && pnpm run test:package"
68
+ }
69
+ }
@@ -0,0 +1,34 @@
1
+ # ODIN Sentinel Coordination Protocol
2
+
3
+ Version: 0.2.1
4
+
5
+ ODIN Sentinel is a portable coordination layer for visible multi-agent teams.
6
+ SCP means Sentinel Coordination Protocol in this repository. It is not Secure
7
+ Copy.
8
+ It provides generic role contracts, startup packets, receipt validation, team
9
+ manifest validation, native visible-role delegation packets, closeout
10
+ checklists, and fallback protocol snapshots through an MCP server.
11
+
12
+ ## Principles
13
+
14
+ - Visible role slots are the audit surface.
15
+ - ODIN roles are meta-control roles accountable to user authority.
16
+ - PM roles coordinate delivery but do not own ODIN oversight.
17
+ - Worker roles implement bounded scope and produce evidence.
18
+ - QA roles verify independently and do not accept their own work.
19
+ - Handoffs, closeout, and restart packets must be explicit.
20
+ - Secrets are never printed or embedded in receipts.
21
+ - Delegation is native to the server and must not require an external extension.
22
+
23
+ ## Startup Defaults
24
+
25
+ Fresh startup creates an executive office and one development pod unless the
26
+ user or a handoff requests another topology.
27
+
28
+ ## Closeout Defaults
29
+
30
+ Closeout supports two modes:
31
+
32
+ - `PARK_FOR_CONTINUITY`: keep role slots open and park occupants.
33
+ - `FULL_SESSION_SHUTDOWN`: quit occupants, verify exit, and close panes except
34
+ the final user-designated surface.
@@ -0,0 +1,20 @@
1
+ version: 0.2.1
2
+ modes:
3
+ PARK_FOR_CONTINUITY:
4
+ description: Keep role slots open, park occupants, save handoffs, and preserve continuity.
5
+ required_steps:
6
+ - collect_handoffs
7
+ - classify_worktree
8
+ - record_metrics
9
+ - park_or_reset_occupants
10
+ - verify_restart_path
11
+ FULL_SESSION_SHUTDOWN:
12
+ description: Save handoffs, quit occupants, verify exit, close panes, and leave only the final user-designated surface.
13
+ required_steps:
14
+ - collect_handoffs
15
+ - classify_worktree
16
+ - record_metrics
17
+ - quit_each_agent_occupant
18
+ - verify_agent_exit
19
+ - close_agent_panes
20
+ - deliver_final_report
@@ -0,0 +1,38 @@
1
+ version: 0.2.1
2
+ delegation_contract:
3
+ required_fields:
4
+ - receipt_type
5
+ - source_role
6
+ - target_role_slot
7
+ - task
8
+ - scope
9
+ - authority
10
+ - report_back
11
+ - visibility
12
+ authority_fields:
13
+ - may_implement
14
+ - may_qa_accept
15
+ - write_scope
16
+ - read_scope
17
+ - prohibited_paths
18
+ visibility_fields:
19
+ - requires_visible_role_slot
20
+ - hidden_agents_allowed
21
+ - delivery_proof_required
22
+ receipt_types:
23
+ - SCP-DELEGATE
24
+ - SCP-TERMINAL-DELIVERY
25
+ - SCP-CMUX-DELIVERY
26
+ - SCP-COORDINATION
27
+ delivery_states:
28
+ - DELIVERED_ACKED
29
+ - DELIVERED_NO_ACK
30
+ - INPUT_BAR_ONLY
31
+ - PANE_BLOCKED_ON_PERMISSION
32
+ - PANE_STILL_THINKING
33
+ rules:
34
+ - Delegation must target a visible role slot.
35
+ - Delegation must not create hidden agents or off-ledger workers.
36
+ - Delegation must include exact authority and scope.
37
+ - Terminal text left in an input bar is not delivery.
38
+ - QA acceptance cannot be delegated to the same role that implemented the deliverable.
@@ -0,0 +1,63 @@
1
+ version: 0.2.1
2
+ policy:
3
+ semantics: Recommended starter profiles, not bundled dependencies or availability guarantees.
4
+ runtime_requirement: Users must install and configure their own harnesses. Launchers must verify local harness/model availability before dispatch and apply fallbacks when unavailable.
5
+ profiles:
6
+ A/EXEC-PM:
7
+ model: GPT-5.5-class frontier reasoning model
8
+ harness: Codex CLI
9
+ reasoning: high
10
+ rationale: "Use for steady executive coordination, careful instruction following, and claim-bound status control."
11
+ A/EXEC-ODIN:
12
+ model: GPT-5.5-class frontier reasoning model
13
+ harness: Codex CLI
14
+ reasoning: xhigh
15
+ rationale: "Use for sentinel work: staying awake, polling, quality control, closeout hygiene, and follow-up."
16
+ A/EXEC-ASST:
17
+ model: Claude Haiku-class fast assistant model
18
+ harness: Claude Code
19
+ reasoning: default_or_high_if_supported
20
+ rationale: "Use for low-latency ledger, reminders, artifact indexing, and assistant chores."
21
+ A/EXEC-RSCH:
22
+ model: Kimi K2.6-class orchestration model
23
+ harness: Droid
24
+ reasoning: high
25
+ rationale: "Use for broad research, alternatives, synthesis, and context recovery."
26
+ A/EXEC-QA:
27
+ model: Kimi K2.6-class review model
28
+ harness: Droid
29
+ reasoning: high
30
+ rationale: "Use for independent process review, evidence checks, and drift detection."
31
+ TEAM_PM:
32
+ model: Claude Opus/Sonnet-class coding model
33
+ harness: Claude Code
34
+ reasoning: high_if_supported
35
+ rationale: "Use for pod orchestration, task decomposition, dispatch, and worker follow-up."
36
+ TEAM_ODIN:
37
+ model: GPT-5.5-class frontier reasoning model
38
+ harness: Codex CLI
39
+ reasoning: low
40
+ rationale: "Use for lightweight pod sentinel duties, polling, blocker detection, and quality reminders."
41
+ DEV_WORKER:
42
+ model: Kimi K2.6-class coding model
43
+ harness: Droid
44
+ reasoning: high
45
+ rationale: "Use for bounded implementation work when the task benefits from strong local execution."
46
+ QA_WORKER:
47
+ model: GLM-5.1-class independent review model
48
+ harness: Crush
49
+ reasoning: high
50
+ rationale: "Use for independent QA so the reviewer differs from the implementer."
51
+ SHADOW_REVIEWER:
52
+ model: Kimi K2.6-class review model
53
+ harness: Droid
54
+ reasoning: high
55
+ rationale: "Use for second-pass critique, architectural concerns, and risk surfacing."
56
+ fallbacks:
57
+ worker:
58
+ - harness: Droid
59
+ model: Kimi K2.6-class coding model
60
+ reasoning: high
61
+ - harness: Claude Code
62
+ model: Claude Sonnet-class balanced coding model
63
+ reasoning: high_if_supported
@@ -0,0 +1,23 @@
1
+ required_fields:
2
+ - role
3
+ - authority_layer
4
+ - team
5
+ - terminal_locator
6
+ - branch
7
+ - cwd
8
+ - model_harness
9
+ - permission_mode
10
+ - may_implement
11
+ - may_qa_accept
12
+ - reports_to
13
+ - write_scope
14
+ - evidence_path
15
+ - current_task
16
+ recommended_fields:
17
+ - upstream
18
+ - head_sha
19
+ - cost_tier
20
+ - capability_profile
21
+ - delegates_to
22
+ - prohibited_paths
23
+ - proof_source
@@ -0,0 +1,9 @@
1
+ required_fields:
2
+ - session_id
3
+ - topology
4
+ - executive_office
5
+ - development_pods
6
+ - odin_mesh
7
+ - model_profile
8
+ - handoff_sources
9
+ - startup_objectives