soturail 1.0.1 → 1.2.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 (110) hide show
  1. package/README.md +60 -13
  2. package/dist/cli.js +6 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/agents.js +37 -7
  5. package/dist/commands/agents.js.map +1 -1
  6. package/dist/commands/feature.d.ts +2 -0
  7. package/dist/commands/feature.js +28 -0
  8. package/dist/commands/feature.js.map +1 -0
  9. package/dist/commands/handoff.d.ts +2 -0
  10. package/dist/commands/handoff.js +14 -0
  11. package/dist/commands/handoff.js.map +1 -0
  12. package/dist/commands/harness.js +20 -0
  13. package/dist/commands/harness.js.map +1 -1
  14. package/dist/commands/mcp.js +10 -1
  15. package/dist/commands/mcp.js.map +1 -1
  16. package/dist/commands/report.js +14 -3
  17. package/dist/commands/report.js.map +1 -1
  18. package/dist/commands/session.d.ts +2 -0
  19. package/dist/commands/session.js +17 -0
  20. package/dist/commands/session.js.map +1 -0
  21. package/dist/core/agent-exporter.d.ts +39 -2
  22. package/dist/core/agent-exporter.js +290 -24
  23. package/dist/core/agent-exporter.js.map +1 -1
  24. package/dist/core/agent-profile.d.ts +1 -1
  25. package/dist/core/agent-registry.js +12 -0
  26. package/dist/core/agent-registry.js.map +1 -1
  27. package/dist/core/agent-runtime.d.ts +15 -1
  28. package/dist/core/agent-runtime.js +120 -14
  29. package/dist/core/agent-runtime.js.map +1 -1
  30. package/dist/core/code-health.js +3 -0
  31. package/dist/core/code-health.js.map +1 -1
  32. package/dist/core/config.d.ts +7 -0
  33. package/dist/core/config.js +8 -0
  34. package/dist/core/config.js.map +1 -1
  35. package/dist/core/harness-lifecycle.d.ts +63 -0
  36. package/dist/core/harness-lifecycle.js +397 -0
  37. package/dist/core/harness-lifecycle.js.map +1 -0
  38. package/dist/core/harness-rail.js +1 -0
  39. package/dist/core/harness-rail.js.map +1 -1
  40. package/dist/core/mcp-resources.d.ts +27 -0
  41. package/dist/core/mcp-resources.js +104 -1
  42. package/dist/core/mcp-resources.js.map +1 -1
  43. package/dist/core/release-preflight.js +3 -0
  44. package/dist/core/release-preflight.js.map +1 -1
  45. package/dist/core/report-rail.d.ts +1 -1
  46. package/dist/core/report-rail.js +33 -8
  47. package/dist/core/report-rail.js.map +1 -1
  48. package/dist/core/schema-readiness.js +12 -1
  49. package/dist/core/schema-readiness.js.map +1 -1
  50. package/dist/core/skill-schema.d.ts +2 -2
  51. package/dist/core/version.d.ts +1 -1
  52. package/dist/core/version.js +1 -1
  53. package/docs/agent-export-contract.md +42 -0
  54. package/docs/agent-governance-rail.md +89 -0
  55. package/docs/agent-harness-synthesis-2026.md +101 -0
  56. package/docs/agent-hosts.md +24 -5
  57. package/docs/agent-qa-rail.md +92 -0
  58. package/docs/agents.md +31 -12
  59. package/docs/assets/demos/README.md +3 -0
  60. package/docs/assets/screenshots/agents-matrix.svg +35 -0
  61. package/docs/assets/screenshots/host-doctor.svg +21 -0
  62. package/docs/assets/screenshots/status-json.svg +30 -0
  63. package/docs/benchmarking.md +2 -2
  64. package/docs/conductor-mode.md +44 -0
  65. package/docs/context-packs.md +18 -0
  66. package/docs/dashboard-rail.md +6 -0
  67. package/docs/ecosystem-influences.md +65 -0
  68. package/docs/eval-datasets.md +40 -0
  69. package/docs/evaluation-suite.md +6 -0
  70. package/docs/evidence-provenance-rail.md +70 -0
  71. package/docs/external-projects-audit.md +29 -0
  72. package/docs/future-rails-index.md +75 -17
  73. package/docs/golden-agent-tests.md +44 -0
  74. package/docs/governance-cost-rail.md +10 -0
  75. package/docs/harness-lifecycle-rail.md +95 -0
  76. package/docs/harness-rail.md +27 -0
  77. package/docs/host-compatibility-rail.md +30 -6
  78. package/docs/host-matrix-schema.md +43 -0
  79. package/docs/host-router-rail.md +73 -0
  80. package/docs/knowledge-rail.md +76 -0
  81. package/docs/llm-as-judge-policy.md +45 -0
  82. package/docs/mcp-host-manifest.md +33 -0
  83. package/docs/mcp-report-resources.md +9 -0
  84. package/docs/mcp.md +4 -0
  85. package/docs/media-guide.md +27 -0
  86. package/docs/multi-agent-workflow-templates.md +63 -0
  87. package/docs/observability-rail.md +36 -0
  88. package/docs/quickstart.md +1 -1
  89. package/docs/rate-limit-and-fallback-policy.md +45 -0
  90. package/docs/release-workflow.md +12 -1
  91. package/docs/releases/README.md +3 -0
  92. package/docs/releases/RELEASE_NOTES_v1.1.0.md +55 -0
  93. package/docs/releases/RELEASE_NOTES_v1.2.0.md +43 -0
  94. package/docs/repo-docs-audit-2026-06-05.md +55 -0
  95. package/docs/report-rail.md +12 -0
  96. package/docs/resilience-rail.md +48 -0
  97. package/docs/schema-contracts.md +20 -0
  98. package/docs/security-boundaries.md +34 -0
  99. package/docs/skill-rail-2.md +11 -0
  100. package/docs/stable-command-surface.md +16 -1
  101. package/docs/tasklet-rail.md +62 -0
  102. package/docs/tutorial-antigravity.md +7 -2
  103. package/docs/tutorial-deep-agents-role-packs.md +4 -0
  104. package/docs/tutorial-gemini-cli.md +4 -0
  105. package/docs/tutorial-opencode.md +37 -0
  106. package/docs/v1-contract.md +5 -3
  107. package/docs/workflow-rail.md +12 -0
  108. package/examples/agents/README.md +6 -1
  109. package/examples/agents/opencode.md +26 -0
  110. package/package.json +2 -2
@@ -0,0 +1,89 @@
1
+ # Agent Governance And Evolution Rail
2
+
3
+ Agent Governance And Evolution Rail is a later-stage direction for controlled improvement loops around SotuRail artifacts and agent-facing harnesses.
4
+
5
+ It absorbs ideas from self-improving harness systems while keeping SotuRail conservative:
6
+
7
+ ```txt
8
+ propose -> eval -> approve -> apply
9
+ ```
10
+
11
+ No future loop should silently edit projects or bypass human approval.
12
+
13
+ ## Planned Concepts
14
+
15
+ ### Agent Boundary
16
+
17
+ A future policy can define what an agent may change, read or append:
18
+
19
+ ```yaml
20
+ mutable:
21
+ - src/**
22
+ - tests/**
23
+ - docs/**
24
+ read_only:
25
+ - package.json
26
+ - package-lock.json
27
+ - .github/**
28
+ - .env*
29
+ append_only:
30
+ - .soturail/logs/**
31
+ - .soturail/ledger/**
32
+ - .soturail/reports/**
33
+ rules:
34
+ require_tests_before_apply: true
35
+ require_no_context_regression: true
36
+ one_patch_per_run: true
37
+ ```
38
+
39
+ ### Ledger
40
+
41
+ Append-only records can explain decisions:
42
+
43
+ ```json
44
+ {
45
+ "run_id": "run_2026_06_05_001",
46
+ "agent": "claude-code",
47
+ "action": "proposed_patch",
48
+ "files_touched": ["src/context.ts"],
49
+ "approved": false,
50
+ "tests_passed": true
51
+ }
52
+ ```
53
+
54
+ ### Experiments
55
+
56
+ ```txt
57
+ .soturail/experiments/
58
+ candidates/
59
+ results/
60
+ accepted/
61
+ rejected/
62
+ ```
63
+
64
+ Candidate changes should be compared through deterministic evals before approval.
65
+
66
+ ## Proposed Commands
67
+
68
+ ```bash
69
+ soturail trace start
70
+ soturail trace stop
71
+ soturail trace list
72
+ soturail trace show <id>
73
+ soturail ledger list
74
+ soturail experiment create "improve context ranking"
75
+ soturail experiment run
76
+ soturail experiment compare
77
+ soturail improve propose
78
+ soturail improve eval
79
+ soturail improve approve
80
+ soturail improve apply
81
+ ```
82
+
83
+ ## Non-Goals
84
+
85
+ - no autonomous self-modifying runtime by default;
86
+ - no hosted multi-tenant control plane;
87
+ - no required Anthropic/OpenAI/Groq provider;
88
+ - no destructive MCP tools;
89
+ - no applying patches without reviewable diff and approval.
@@ -0,0 +1,101 @@
1
+ # Agent And Harness Synthesis 2026
2
+
3
+ This document merges the latest external-repository review into one SotuRail planning note. It distinguishes agent runtimes from harness/context infrastructure so SotuRail can absorb useful ecosystem patterns without losing its product boundary. It is not a dependency list and it is not a claim that SotuRail vendors, wraps or outperforms those projects.
4
+
5
+ SotuRail remains:
6
+
7
+ ```txt
8
+ Local-first Context OS for AI coding agents.
9
+ It prepares context, memory, policies, skills, workflows, evidence, reports and host exports.
10
+ It is not the model, not the coding agent, not a proxy, not a cloud gateway and not a trading/finance agent.
11
+ ```
12
+
13
+ ## Classification
14
+
15
+ ```txt
16
+ Agent = objective + model + tools + state/memory + decision/execution loop.
17
+ Non-agent = skill, toolkit, toolset, compressor, router, runtime helper, context, prompt, rule or adapter.
18
+ ```
19
+
20
+ Hermes Agent is a self-improving agent runtime with a model, tools, memory, execution loop, skills, routines, subagents and multiple interfaces.
21
+
22
+ Odysseus is broader: a self-hosted AI workspace combining an agent runtime, chat UI, local services, model management, memory, skills, research and personal workspace features.
23
+
24
+ SotuRail is different:
25
+
26
+ ```txt
27
+ Hermes = self-improving personal agent runtime
28
+ Odysseus = workspace + runtime + agent + UI + local services
29
+ SotuRail = local-first context/harness OS for preparing and governing agents
30
+ ```
31
+
32
+ Toolkits, compressors and routers should not be described as agents unless they own a model-plus-tool execution loop.
33
+
34
+ ## Projects Reviewed In This Wave
35
+
36
+ | Project or product | Useful pattern | SotuRail direction |
37
+ | --- | --- | --- |
38
+ | Hermes Agent | self-improving runtime, trajectory compression, routines and role packs | context optimization, bounded sessions and safe tool profiles |
39
+ | Odysseus | workspace, runtime, UI and local-service integration | local workspace organization without a required server |
40
+ | `ijmf/qa-ai-agent` | agent QA with tests, datasets, observability and CI | Agent QA Rail, golden checks, deterministic evals |
41
+ | `duckdogersxd/Orquestrando-Agents-CrewAI` | multi-agent roles, fallback, retry and throttling lessons | role-pack templates and Resilience Rail docs |
42
+ | `CaioTakedaIA/agentesdeIA` | validate -> fix -> revalidate -> analyze pipeline with visible events | pipeline recorder, evidence per stage and dashboard timeline |
43
+ | `OpenTracy/OpenTracy` | propose -> eval -> approve -> apply loop, traces, ledger, candidates | Agent Governance / Evolution Rail |
44
+ | `walkinglabs/learn-harness-engineering` | instructions, state, verification, scope and session lifecycle | Harness Lifecycle Rail and feature/session handoff commands |
45
+ | `affaan-m/ECC` | install profiles, doctor/repair/uninstall, skills/rules/hooks, multi-host packaging | install state, harness audit, skills/rules profiles and host exports |
46
+ | `companion-inc/feynman` | provenance sidecars, verified/unverified/blocked/inferred status, file-based handoff | Evidence and Provenance Rail |
47
+ | `virgiliojr94/book-to-skill` | document/book -> skill, on-demand chapters, glossary, patterns and cheatsheet | Knowledge Rail and skill build/fold-in |
48
+ | Tasklet.ai | limited public information; reusable small tasks as a concept | Tasklet Rail as local task templates only |
49
+ | 9Router | multi-host routing metaphor, token/context optimization, local dashboard | Host Router Rail for context exports; no proxy/MITM |
50
+
51
+ ## Patterns To Absorb
52
+
53
+ - Context and trajectory compression with recoverable evidence.
54
+ - Session search and bounded handoffs.
55
+ - Toolset profiles and role packs.
56
+ - Tasklet/workflow templates.
57
+ - Host Fit Doctor and compatibility notes.
58
+ - Dashboard cards for Context Packs, Memory, Reports, Evidence, Workflows, Skills, Tasklets and Handoffs.
59
+ - Local-first privacy and explicit security boundaries.
60
+ - Doctor/audit/repair/uninstall paths for generated artifacts.
61
+ - Provenance, evidence and verification status for reports.
62
+
63
+ ## Patterns To Avoid
64
+
65
+ - Mandatory web servers or hosted workspaces.
66
+ - Model serving and GPU management.
67
+ - Central shell execution or destructive MCP tools.
68
+ - Provider-specific dependencies and hidden external services.
69
+ - Unreviewed autonomous edit loops.
70
+ - Proxy, MITM, billing, unlimited-free or cloud telemetry claims.
71
+ - Interception of IDE traffic, browser sessions, cookies or provider credentials.
72
+
73
+ ## Rail Map
74
+
75
+ | New or expanded rail | Main purpose | Inspired by |
76
+ | --- | --- | --- |
77
+ | Agent QA Rail | datasets, golden checks, regression reports and optional judges | `qa-ai-agent` |
78
+ | Resilience Rail | rate-limit, retry, fallback and provider-risk policy docs | CrewAI/LiteLLM-style repo, 9Router concept |
79
+ | Pipeline Recorder | record agent-stage events and evidence packs | `agentesdeIA` |
80
+ | Agent Governance Rail | trace, ledger, candidates, approval gate and improve loop | OpenTracy |
81
+ | Harness Lifecycle Rail | init, audit, feature list, session start/end and handoff | learn-harness-engineering, Hermes, Odysseus |
82
+ | Install/Profile Rail | profile-based install state, doctor, repair and uninstall | ECC |
83
+ | Evidence/Provenance Rail | provenance sidecars and verification status | Feynman |
84
+ | Knowledge Rail | document ingestion into on-demand skills | book-to-skill |
85
+ | Host Router Rail | one context source exported to many hosts with fallback formats | 9Router metaphor |
86
+ | Tasklet Rail | small reusable local task templates | Tasklet concept |
87
+
88
+ ## SotuRail Direction
89
+
90
+ v1.2.0 implements Harness Lifecycle Rail for local state, audits, feature tracking, sessions and handoffs. The optional [Conductor Mode](conductor-mode.md) remains proposed future work behind approval gates.
91
+
92
+ ```txt
93
+ v1.1.1 Host Compatibility Polish, docs synthesis, golden export checks
94
+ v1.2.0 Harness Lifecycle Rail plus staged Spec, Design and Diagram work
95
+ v1.3.0 Knowledge, Evidence and Evaluation Rail
96
+ v1.4.0 Skill Rail 2.0, Knowledge-to-Skill and Tasklet Packs
97
+ v1.5.0 Governance, Cost, Resilience and Host Router Rail
98
+ v1.6.0 Agent Governance / Evolution Rail
99
+ ```
100
+
101
+ The exact future command names are not frozen. Related: [Ecosystem Influences](ecosystem-influences.md), [External Projects Audit](external-projects-audit.md), [Harness Lifecycle Rail](harness-lifecycle-rail.md), [Security Boundaries](security-boundaries.md).
@@ -1,15 +1,19 @@
1
1
  # Agent Hosts
2
2
 
3
- SotuRail v1.0.0 includes a conservative host compatibility matrix. It reports what SotuRail can export safely without claiming direct runtime control over every host.
3
+ SotuRail v1.1.0 includes Host Compatibility Rail 1.0. It reports what SotuRail can export safely without claiming direct runtime control over every host.
4
4
 
5
5
  ```bash
6
6
  soturail agents matrix
7
7
  soturail agents matrix --json
8
+ soturail agents doctor --host codex
9
+ soturail agents doctor --all --json
10
+ soturail mcp resources host-manifest --host codex
8
11
  ```
9
12
 
10
13
  ## Host Status Model
11
14
 
12
15
  - `stable`: covered by the v1 local export/report surface.
16
+ - `generic-compatible`: safe generic Markdown/context handoff, but not host-native integration.
13
17
  - `legacy`: supported through compatible prompt/context artifacts, but host behavior may vary.
14
18
  - `experimental`: prompt-only or docs-only until host-specific surfaces are verified.
15
19
  - `planned`: not promoted yet.
@@ -20,12 +24,27 @@ soturail agents matrix --json
20
24
  - Codex: stable prompt/context/report handoff through AGENTS-style Markdown.
21
25
  - Claude: stable local docs and dry-run-first install/export guidance.
22
26
  - Cursor: stable local rules/export guidance, with MCP treated conservatively.
23
- - Gemini compatible hosts: legacy/prompt-compatible Markdown and JSON summaries.
24
- - OpenCode-style hosts: experimental prompt-only export.
25
- - Antigravity-style hosts: experimental prompt-only export.
27
+ - Gemini: legacy/prompt-compatible Markdown and JSON summaries.
28
+ - Gemini legacy/compatible hosts: legacy AGENTS/GEMINI Markdown export.
29
+ - OpenCode-style hosts: generic-compatible `AGENTS.md` and context-pack export.
30
+ - Antigravity-style hosts: high-priority experimental `AGENTS.md` and context-pack export.
26
31
  - DeepAgents-style targets: experimental role-pack and Markdown exports only.
27
32
  - Generic: stable portable Markdown, JSON reports and read-only MCP report resources.
28
33
 
29
34
  ## Safety
30
35
 
31
- No host row enables destructive MCP tools or arbitrary shell execution. Config writes remain dry-run or review-first. Use `soturail report agent --agent <host>` and review the output before agent handoff.
36
+ No host row enables destructive MCP tools or arbitrary shell execution. Config writes remain dry-run or review-first. Use `soturail report agent --agent <host>`, `soturail agents doctor --host <host>` and review the output before agent handoff.
37
+
38
+ See [host-matrix-schema.md](host-matrix-schema.md), [agent-export-contract.md](agent-export-contract.md) and [mcp-host-manifest.md](mcp-host-manifest.md).
39
+
40
+ ## Related Host Router And Resilience Docs
41
+
42
+ Host docs are connected to several planned rails:
43
+
44
+ - [`host-router-rail.md`](host-router-rail.md): one local context source exported into host-specific formats with safe fallback.
45
+ - [`host-compatibility-rail.md`](host-compatibility-rail.md): current host matrix, schema and export contracts.
46
+ - [`rate-limit-and-fallback-policy.md`](rate-limit-and-fallback-policy.md): local documentation shape for retry/fallback/rate-limit expectations.
47
+ - [`resilience-rail.md`](resilience-rail.md): provider and workflow-risk warnings without proxying model traffic.
48
+ - [`agent-qa-rail.md`](agent-qa-rail.md): golden checks for host exports.
49
+
50
+ SotuRail host support means context, instruction, report, skill and MCP-resource packaging. It does not mean intercepting IDE traffic, reusing browser tokens, routing model requests or bypassing provider quotas.
@@ -0,0 +1,92 @@
1
+ # Agent QA Rail
2
+
3
+ Agent QA Rail is a proposed future rail for testing SotuRail-generated agent artifacts like software outputs, not magic prompts.
4
+
5
+ It is inspired by small QA-agent repos that combine automated tests, fixed datasets, scoring, observability and CI. SotuRail should keep the useful discipline while staying local-first, host-independent and deterministic by default.
6
+
7
+ ## Goals
8
+
9
+ - Test host exports, context packs, skills, rules, workflows, evidence packs and reports.
10
+ - Catch regressions in agent-facing files before release.
11
+ - Keep default evals offline and cheap.
12
+ - Allow optional provider-backed judging only when explicitly requested.
13
+ - Generate JSON and Markdown reports that can be attached to release evidence.
14
+
15
+ ## Proposed Commands
16
+
17
+ ```bash
18
+ soturail eval dataset init
19
+ soturail eval dataset run
20
+ soturail eval golden
21
+ soturail eval regression
22
+ soturail eval report
23
+ soturail eval doctor
24
+ soturail eval judge --optional
25
+ ```
26
+
27
+ These commands can begin as report-only or fixture-only surfaces before becoming full command implementations.
28
+
29
+ ## Local Artifact Layout
30
+
31
+ ```txt
32
+ .soturail/evals/
33
+ datasets/
34
+ host-compatibility.json
35
+ context-quality.json
36
+ skill-routing.json
37
+ golden/
38
+ claude-export.md
39
+ codex-export.md
40
+ cursor-rules.md
41
+ runs/
42
+ latest.json
43
+ reports/
44
+ latest.md
45
+ ```
46
+
47
+ ## Deterministic Checks First
48
+
49
+ Default checks should not call real LLMs or external services.
50
+
51
+ Examples:
52
+
53
+ - export is not empty;
54
+ - export contains safe next commands;
55
+ - export includes required policy warnings;
56
+ - export does not contain secrets;
57
+ - export does not contain unrelated project names such as SoturAI when the target is SotuRail;
58
+ - JSON artifacts parse successfully;
59
+ - duplicate JSON keys are detected where relevant;
60
+ - host matrix fields are present;
61
+ - MCP exports keep read-only mutation boundaries;
62
+ - reports include evidence paths and verification status;
63
+ - generated docs keep local-first and no-cloud-by-default claims honest.
64
+
65
+ ## Optional LLM-As-Judge
66
+
67
+ Provider-backed judges can be useful for hallucination or answer-quality review, but they must not be the default release gate.
68
+
69
+ Policy:
70
+
71
+ ```txt
72
+ Offline fixtures are release-blocking.
73
+ LLM-as-judge is optional, explicit and non-blocking unless a project opts in.
74
+ Provider outputs must be stored as separate integration evidence.
75
+ ```
76
+
77
+ ## CI Split
78
+
79
+ Recommended tiers:
80
+
81
+ | Tier | Network | Release blocking | Purpose |
82
+ | --- | --- | --- | --- |
83
+ | unit/offline | no | yes | deterministic docs, schemas, exports and fixtures |
84
+ | integration | optional | no by default | provider/API behavior, external host smoke |
85
+ | nightly | optional | no by default | long-running or flaky judge/eval experiments |
86
+
87
+ ## Non-Goals
88
+
89
+ - no required Groq, OpenAI, Anthropic, LangFuse or other provider;
90
+ - no real model calls in default tests;
91
+ - no scoring metric based only on marketing-friendly numbers;
92
+ - no claim that passing evals proves a real agent will always behave well.
package/docs/agents.md CHANGED
@@ -12,7 +12,11 @@ soturail agents status
12
12
  soturail agents status --json
13
13
  soturail agents doctor
14
14
  soturail agents doctor --verbose
15
+ soturail agents doctor --host codex
16
+ soturail agents doctor --all --json
15
17
  soturail agents export --agent all
18
+ soturail agents export --agent opencode --out .soturail/agents/opencode
19
+ soturail agents export --agent deepagents --role reviewer
16
20
  soturail brain export --agent codex
17
21
  soturail agents export --agent deepagents
18
22
  soturail agents export --agent deepagents-js
@@ -26,7 +30,7 @@ soturail agents install --agent cursor --mode rules --dry-run
26
30
  soturail agents uninstall --agent claude --dry-run
27
31
  ```
28
32
 
29
- Exports are written under `.soturail/exports/agents/<agent>/`. They are meant to be reviewed before use.
33
+ Default exports are written under both `.soturail/agents/<agent>/` and `.soturail/exports/agents/<agent>/`. The older exports path remains for compatibility; the `.soturail/agents/` path is the v1.1 host workspace. They are meant to be reviewed before use.
30
34
 
31
35
  Project Brain exports are written under `.soturail/brain/exports/`. They provide verified claims, rules, gaps, stale warnings and source references for agent handoff.
32
36
 
@@ -45,12 +49,14 @@ Project Brain exports are written under `.soturail/brain/exports/`. They provide
45
49
 
46
50
  `soturail agents capabilities` prints the host capability matrix. Use `--json` for a stable machine-readable shape.
47
51
 
48
- `soturail agents matrix` prints the v1 host compatibility matrix with stable, legacy, experimental and planned status labels. It does not claim full OpenCode, Antigravity-style or DeepAgents-style runtime support unless the row says so.
52
+ `soturail agents matrix` prints the v1/v1.1 host compatibility matrix with stable, generic-compatible, legacy, experimental and planned status labels. It does not claim full OpenCode, Antigravity-style or DeepAgents-style runtime support unless the row says so.
49
53
 
50
54
  `soturail agents status` inspects local files such as `CLAUDE.md`, `AGENTS.md`, `GEMINI.md`, `.cursor/rules/`, `.claude/settings.json`, `.soturail/exports/agents/`, role packs, skills, MCP exports, policy queues and run workspaces.
51
55
 
52
56
  `soturail agents doctor --verbose` combines readiness checks with host capability, payload, policy and dry-run install guidance.
53
57
 
58
+ `soturail agents doctor --host <host>` generates `.soturail/agents/<host>/doctor.json` and `.md`. `--all --json` writes `.soturail/agents/doctor-summary.json` and checks every host export for obvious secret patterns, unsafe MCP claims, raw evidence references and SotuRail scope contamination.
59
+
54
60
  ## v0.6.1 UX Flow
55
61
 
56
62
  Start with status, budget and one role pack, then preview the host install or export.
@@ -116,12 +122,14 @@ If context packs or exports already exist, the doctor omits those setup steps an
116
122
 
117
123
  - Claude: `CLAUDE.md`, `mcp-config.json`, `safe-hooks.md`, `context-pack.md`.
118
124
  - Codex: `AGENTS.md`, `context-pack.md`, `prompt-only.md`.
119
- - Gemini: `GEMINI.md`, `context-pack.md`, `prompt-only.md`.
120
- - Cursor: `cursor-rules.md`, `context-pack.md`, `prompt-only.md`.
121
- - Antigravity: `context-pack.md`, `prompt-only.md`.
122
- - Generic: `context-pack.md`, `prompt-only.md`.
123
- - OpenCode/Amp/Kiro-style hosts: `context-pack.md`, `prompt-only.md`.
124
- - Deep Agents/deepagents-js: `<agent>.md`, `runtime-config.json`, `context-pack.md`.
125
+ - Gemini: `AGENTS.md`, `GEMINI.md`, `context-pack.md`, `prompt-only.md`.
126
+ - Gemini legacy-compatible: `AGENTS.md`, `GEMINI.md`, `context-pack.md`, `prompt-only.md`.
127
+ - Cursor: `rules.md`, `cursor-rules.md`, `context-pack.md`, `prompt-only.md`.
128
+ - Antigravity: `AGENTS.md`, `context-pack.md`, `prompt-only.md`.
129
+ - Generic: `AGENT_CONTEXT.md`, `context-pack.md`, `prompt-only.md`.
130
+ - OpenCode-style hosts: `AGENTS.md`, `context-pack.md`, `prompt-only.md`.
131
+ - Amp/Kiro-style hosts: `context-pack.md`, `prompt-only.md`.
132
+ - Deep Agents/deepagents-js: `role-pack.md`, `subagents.md`, `<agent>.md`, `runtime-config.json`, `context-pack.md`.
125
133
 
126
134
  ## Host Capability Matrix
127
135
 
@@ -136,7 +144,8 @@ SotuRail encodes host capabilities instead of assuming every agent supports the
136
144
  | Antigravity | prompt-only Markdown/tagged fallback | prompt-only/context-pack | unknown/experimental | no deep integration until stable official surfaces are verified | do not invent config paths |
137
145
  | Deep Agents / deepagents-js | role packs, context offload notes, skills routing | export-only | future resource/config export only | no runtime coupling by default | human approval and filesystem evidence required for risky flows |
138
146
  | Claude Code Harness-style workflows | workflow/evidence docs, guardrail policy, review perspectives | docs/export only | no special MCP assumption | compatibility notes only | keep SotuRail independent from Claude-only flows |
139
- | OpenCode/Amp/Kiro-style hosts | Markdown/context packs/specs | prompt/context export first | optional read-only if supported | deeper integrations only after official surfaces are clear | host docs must remain conservative |
147
+ | OpenCode-style hosts | AGENTS.md/context packs/specs | prompt/context export first | optional read-only if supported | deeper integrations only after official surfaces are clear | generic-compatible, not full host-native support |
148
+ | Amp/Kiro-style hosts | Markdown/context packs/specs | prompt/context export first | optional read-only if supported | deeper integrations only after official surfaces are clear | host docs must remain conservative |
140
149
  | Generic agents | Markdown/context packs | file export | MCP read-only resources | none | safest fallback for unknown hosts |
141
150
 
142
151
  ## Host-Aware Payload Formats
@@ -254,11 +263,19 @@ Those exports should explain:
254
263
  - which payload format was chosen;
255
264
  - whether any long context was offloaded.
256
265
 
257
- ## Future Harness And Handoff Support
266
+ ## Harness And Handoff Support
258
267
 
259
- SotuRail can support disciplined handoffs without becoming the agent runtime.
268
+ SotuRail supports disciplined local handoffs without becoming the agent runtime:
260
269
 
261
- Possible future commands:
270
+ ```bash
271
+ soturail harness init
272
+ soturail harness audit
273
+ soturail session start "objective"
274
+ soturail handoff generate
275
+ soturail feature list
276
+ ```
277
+
278
+ Additional role-to-role host handoff aliases remain future possibilities:
262
279
 
263
280
  ```bash
264
281
  soturail agents handoff --from planner --to executor
@@ -276,3 +293,5 @@ A handoff should include:
276
293
  - evidence pack pointers;
277
294
  - raw/offload recovery IDs;
278
295
  - next safe command suggestions.
296
+
297
+ Current handoffs are written to `.soturail/state/session-handoff.md`. They include bounded local state and changed-file names, do not read private shell history and do not run verification commands.
@@ -0,0 +1,3 @@
1
+ # Demo Assets
2
+
3
+ This folder is reserved for short local demo captures. Do not add files that include real tokens, private paths, `.env` contents or raw evidence.
@@ -0,0 +1,35 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="960" height="520" viewBox="0 0 960 520" role="img" aria-labelledby="title desc">
2
+ <title id="title">SotuRail agent matrix screenshot</title>
3
+ <desc id="desc">Illustrative host compatibility matrix with stable, legacy and experimental rows.</desc>
4
+ <rect width="960" height="520" fill="#f8fafc"/>
5
+ <text x="48" y="64" font-family="Segoe UI, Arial, sans-serif" font-size="30" font-weight="700" fill="#172033">Agent Host Compatibility Matrix</text>
6
+ <rect x="48" y="100" width="864" height="336" rx="8" fill="#ffffff" stroke="#d7dee8"/>
7
+ <g font-family="Segoe UI, Arial, sans-serif" font-size="18" fill="#172033">
8
+ <text x="72" y="142" font-weight="700">Host</text>
9
+ <text x="284" y="142" font-weight="700">Status</text>
10
+ <text x="468" y="142" font-weight="700">MCP</text>
11
+ <text x="650" y="142" font-weight="700">Command</text>
12
+ <line x1="72" y1="160" x2="880" y2="160" stroke="#d7dee8"/>
13
+ <text x="72" y="198">Codex</text>
14
+ <text x="284" y="198" fill="#15803d">stable</text>
15
+ <text x="468" y="198">prompt-only</text>
16
+ <text x="650" y="198" font-family="Consolas, monospace" font-size="15">agents export --agent codex</text>
17
+ <text x="72" y="244">OpenCode</text>
18
+ <text x="284" y="244" fill="#0369a1">generic-compatible</text>
19
+ <text x="468" y="244">planned</text>
20
+ <text x="650" y="244" font-family="Consolas, monospace" font-size="15">agents export --agent opencode</text>
21
+ <text x="72" y="290">Antigravity</text>
22
+ <text x="284" y="290" fill="#b45309">experimental</text>
23
+ <text x="468" y="290">planned</text>
24
+ <text x="650" y="290" font-family="Consolas, monospace" font-size="15">agents doctor --host antigravity</text>
25
+ <text x="72" y="336">Gemini Legacy</text>
26
+ <text x="284" y="336" fill="#6d28d9">legacy</text>
27
+ <text x="468" y="336">planned</text>
28
+ <text x="650" y="336" font-family="Consolas, monospace" font-size="15">agents export --agent gemini-legacy</text>
29
+ <text x="72" y="382">DeepAgents</text>
30
+ <text x="284" y="382" fill="#b45309">experimental</text>
31
+ <text x="468" y="382">docs-only</text>
32
+ <text x="650" y="382" font-family="Consolas, monospace" font-size="15">agents export --agent deepagents</text>
33
+ </g>
34
+ <text x="48" y="472" font-family="Segoe UI, Arial, sans-serif" font-size="18" fill="#475569">All rows keep mutationAllowedByDefault=false.</text>
35
+ </svg>
@@ -0,0 +1,21 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="960" height="520" viewBox="0 0 960 520" role="img" aria-labelledby="title desc">
2
+ <title id="title">SotuRail host doctor screenshot</title>
3
+ <desc id="desc">Illustrative per-host doctor output.</desc>
4
+ <rect width="960" height="520" fill="#f8fafc"/>
5
+ <rect x="56" y="48" width="852" height="424" rx="8" fill="#0f172a"/>
6
+ <text x="88" y="94" font-family="Consolas, monospace" font-size="22" fill="#d1fae5">$ soturail agents doctor --host codex</text>
7
+ <g font-family="Consolas, monospace" font-size="18">
8
+ <text x="88" y="142" fill="#e5e7eb">SotuRail agent host doctor</text>
9
+ <text x="88" y="176" fill="#93c5fd">schemaVersion:</text>
10
+ <text x="246" y="176" fill="#fde68a">soturail.agent-host-doctor.v1</text>
11
+ <text x="88" y="210" fill="#93c5fd">host:</text>
12
+ <text x="160" y="210" fill="#fde68a">codex</text>
13
+ <text x="88" y="244" fill="#93c5fd">status:</text>
14
+ <text x="176" y="244" fill="#86efac">passed</text>
15
+ <text x="88" y="292" fill="#e5e7eb">Checks:</text>
16
+ <text x="112" y="326" fill="#86efac">- matrix-row: passed</text>
17
+ <text x="112" y="360" fill="#86efac">- export-generated: passed</text>
18
+ <text x="112" y="394" fill="#86efac">- mcp-read-only: passed</text>
19
+ <text x="112" y="428" fill="#86efac">- scope-contamination: passed</text>
20
+ </g>
21
+ </svg>
@@ -0,0 +1,30 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="960" height="520" viewBox="0 0 960 520" role="img" aria-labelledby="title desc">
2
+ <title id="title">SotuRail status JSON screenshot</title>
3
+ <desc id="desc">Illustrative terminal screenshot showing valid JSON status output.</desc>
4
+ <rect width="960" height="520" fill="#f7fafc"/>
5
+ <rect x="48" y="48" width="864" height="424" rx="8" fill="#111827"/>
6
+ <rect x="48" y="48" width="864" height="40" rx="8" fill="#243044"/>
7
+ <circle cx="72" cy="68" r="6" fill="#ef4444"/>
8
+ <circle cx="92" cy="68" r="6" fill="#f59e0b"/>
9
+ <circle cx="112" cy="68" r="6" fill="#22c55e"/>
10
+ <text x="72" y="126" font-family="Consolas, monospace" font-size="22" fill="#d1fae5">$ soturail status --json</text>
11
+ <text x="72" y="166" font-family="Consolas, monospace" font-size="18" fill="#e5e7eb">{</text>
12
+ <text x="96" y="198" font-family="Consolas, monospace" font-size="18" fill="#93c5fd">"schemaVersion"</text>
13
+ <text x="256" y="198" font-family="Consolas, monospace" font-size="18" fill="#e5e7eb">: </text>
14
+ <text x="282" y="198" font-family="Consolas, monospace" font-size="18" fill="#fde68a">"soturail.status.v1"</text>
15
+ <text x="96" y="230" font-family="Consolas, monospace" font-size="18" fill="#93c5fd">"version"</text>
16
+ <text x="196" y="230" font-family="Consolas, monospace" font-size="18" fill="#e5e7eb">: </text>
17
+ <text x="222" y="230" font-family="Consolas, monospace" font-size="18" fill="#fde68a">"1.1.0"</text>
18
+ <text x="96" y="262" font-family="Consolas, monospace" font-size="18" fill="#93c5fd">"brain"</text>
19
+ <text x="174" y="262" font-family="Consolas, monospace" font-size="18" fill="#e5e7eb">: { </text>
20
+ <text x="230" y="262" font-family="Consolas, monospace" font-size="18" fill="#93c5fd">"brainStatus"</text>
21
+ <text x="374" y="262" font-family="Consolas, monospace" font-size="18" fill="#e5e7eb">: </text>
22
+ <text x="400" y="262" font-family="Consolas, monospace" font-size="18" fill="#fde68a">"warning"</text>
23
+ <text x="496" y="262" font-family="Consolas, monospace" font-size="18" fill="#e5e7eb"> },</text>
24
+ <text x="96" y="294" font-family="Consolas, monospace" font-size="18" fill="#93c5fd">"nextCommands"</text>
25
+ <text x="248" y="294" font-family="Consolas, monospace" font-size="18" fill="#e5e7eb">: [</text>
26
+ <text x="128" y="326" font-family="Consolas, monospace" font-size="18" fill="#fde68a">"soturail report build"</text>
27
+ <text x="128" y="358" font-family="Consolas, monospace" font-size="18" fill="#fde68a">"soturail self readiness --v1 --strict"</text>
28
+ <text x="96" y="390" font-family="Consolas, monospace" font-size="18" fill="#e5e7eb">]</text>
29
+ <text x="72" y="422" font-family="Consolas, monospace" font-size="18" fill="#e5e7eb">}</text>
30
+ </svg>
@@ -18,8 +18,8 @@ Outputs:
18
18
  - `benchmarks/reports/latest.md`
19
19
  - `.soturail/bench/latest.json`
20
20
  - `.soturail/bench/latest.md`
21
- - versioned reports such as `benchmarks/reports/bench-v1.0.0.json`
22
- - versioned reports such as `benchmarks/reports/bench-v1.0.0.md`
21
+ - versioned reports such as `benchmarks/reports/bench-v<version>.json`
22
+ - versioned reports such as `benchmarks/reports/bench-v<version>.md`
23
23
 
24
24
  The suite currently groups results as:
25
25
 
@@ -0,0 +1,44 @@
1
+ # SotuRail Conductor Mode
2
+
3
+ Status: **Proposed future optional mode. Not implemented in v1.2.0.**
4
+
5
+ SotuRail Core remains the CLI-first, npm-first, local-first Context OS and harness layer. A future optional mode called **SotuRail Conductor** may coordinate planning, verification and documentation workflows without replacing agent hosts.
6
+
7
+ ```txt
8
+ SotuRail
9
+ |-- Core
10
+ | |-- context
11
+ | |-- memory
12
+ | |-- reports
13
+ | |-- workflows
14
+ | |-- evidence
15
+ | |-- host exports
16
+ | `-- dashboard
17
+ `-- Future optional Conductor mode
18
+ |-- planner
19
+ |-- verifier
20
+ |-- reviewer
21
+ |-- tasklet runner
22
+ |-- evidence collector
23
+ `-- approval gate
24
+ ```
25
+
26
+ ## Proposed Commands
27
+
28
+ These commands are documentation-only and do not currently exist:
29
+
30
+ ```bash
31
+ soturail conductor plan
32
+ soturail conductor audit
33
+ soturail conductor propose
34
+ soturail conductor verify
35
+ soturail conductor apply --approved
36
+ ```
37
+
38
+ ## Safe Capability Boundary
39
+
40
+ A future Conductor may read a repository, create plans and tasklets, generate reports, validate links, compare host exports and propose patches. Applying a patch must require explicit approval.
41
+
42
+ It must not become a chat product, unbounded fix-everything loop, central shell agent, browser agent, cloud agent or provider-specific runtime.
43
+
44
+ See [Security Boundaries](security-boundaries.md), [Harness Lifecycle Rail](harness-lifecycle-rail.md) and [Future Rails Index](future-rails-index.md).
@@ -266,6 +266,12 @@ Possible future diagram context:
266
266
 
267
267
  See [diagram-rail.md](diagram-rail.md).
268
268
 
269
+ ## Lifecycle And Context Budget
270
+
271
+ Harness Lifecycle handoffs should stay bounded. Prefer the active objective, feature state, changed-file names, verification status, blockers and next commands over copying full session history.
272
+
273
+ Hermes-style trajectory compression is useful inspiration only when raw evidence remains recoverable. Odysseus-style workspace breadth should not cause every local artifact to enter every context pack. Use `context budget`, role packs, offload pointers and host-specific exports to keep handoffs focused.
274
+
269
275
  ## Quality Rules
270
276
 
271
277
  Context selection, formatting and role packs should preserve:
@@ -280,3 +286,15 @@ Context selection, formatting and role packs should preserve:
280
286
  - raw recovery hints.
281
287
 
282
288
  If pruning or formatting would remove required evidence, SotuRail should report that pruning was not effective rather than pretending the context is sufficient.
289
+
290
+ ## Related Context Routing And Knowledge Docs
291
+
292
+ Context Packs connect directly to the newer knowledge and host-routing plans:
293
+
294
+ - [`knowledge-rail.md`](knowledge-rail.md): compile docs/specs/notes into on-demand topic packs instead of loading everything into one prompt.
295
+ - [`host-router-rail.md`](host-router-rail.md): translate one local context source into host-specific exports for Claude, Codex, Cursor, OpenCode, Gemini and generic Markdown.
296
+ - [`tasklet-rail.md`](tasklet-rail.md): attach a small task template to a minimal context pack.
297
+ - [`resilience-rail.md`](resilience-rail.md): warn when a context pack implies expensive, provider-dependent or long-running workflows.
298
+ - [`agent-qa-rail.md`](agent-qa-rail.md): test whether compact/role-specific context packs preserve required facts.
299
+
300
+ The key rule is progressive disclosure: SotuRail should send the smallest useful context first and keep large raw evidence recoverable by path, id or offload pointer.
@@ -4,6 +4,12 @@ v1.0.0 keeps the dashboard static and local. There is no server requirement, no
4
4
 
5
5
  Dashboard Rail builds a static local HTML dashboard from report and status artifacts.
6
6
 
7
+ ## Lifecycle Cards
8
+
9
+ Odysseus-style local workspace organization is useful dashboard inspiration, but SotuRail remains static and server-free by default. Future dashboard polish may surface bounded cards for Context Packs, Memory, Reports, Evidence, Workflows, Host Compatibility, Skills, Tasklets and Handoffs from existing local artifacts.
10
+
11
+ Harness Lifecycle state is currently available under `.soturail/state/`; dedicated dashboard cards remain planned.
12
+
7
13
  ```bash
8
14
  soturail dashboard build
9
15
  soturail dashboard open