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.
- package/README.md +60 -13
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/agents.js +37 -7
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/feature.d.ts +2 -0
- package/dist/commands/feature.js +28 -0
- package/dist/commands/feature.js.map +1 -0
- package/dist/commands/handoff.d.ts +2 -0
- package/dist/commands/handoff.js +14 -0
- package/dist/commands/handoff.js.map +1 -0
- package/dist/commands/harness.js +20 -0
- package/dist/commands/harness.js.map +1 -1
- package/dist/commands/mcp.js +10 -1
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/report.js +14 -3
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/session.d.ts +2 -0
- package/dist/commands/session.js +17 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/core/agent-exporter.d.ts +39 -2
- package/dist/core/agent-exporter.js +290 -24
- package/dist/core/agent-exporter.js.map +1 -1
- package/dist/core/agent-profile.d.ts +1 -1
- package/dist/core/agent-registry.js +12 -0
- package/dist/core/agent-registry.js.map +1 -1
- package/dist/core/agent-runtime.d.ts +15 -1
- package/dist/core/agent-runtime.js +120 -14
- package/dist/core/agent-runtime.js.map +1 -1
- package/dist/core/code-health.js +3 -0
- package/dist/core/code-health.js.map +1 -1
- package/dist/core/config.d.ts +7 -0
- package/dist/core/config.js +8 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/harness-lifecycle.d.ts +63 -0
- package/dist/core/harness-lifecycle.js +397 -0
- package/dist/core/harness-lifecycle.js.map +1 -0
- package/dist/core/harness-rail.js +1 -0
- package/dist/core/harness-rail.js.map +1 -1
- package/dist/core/mcp-resources.d.ts +27 -0
- package/dist/core/mcp-resources.js +104 -1
- package/dist/core/mcp-resources.js.map +1 -1
- package/dist/core/release-preflight.js +3 -0
- package/dist/core/release-preflight.js.map +1 -1
- package/dist/core/report-rail.d.ts +1 -1
- package/dist/core/report-rail.js +33 -8
- package/dist/core/report-rail.js.map +1 -1
- package/dist/core/schema-readiness.js +12 -1
- package/dist/core/schema-readiness.js.map +1 -1
- package/dist/core/skill-schema.d.ts +2 -2
- package/dist/core/version.d.ts +1 -1
- package/dist/core/version.js +1 -1
- package/docs/agent-export-contract.md +42 -0
- package/docs/agent-governance-rail.md +89 -0
- package/docs/agent-harness-synthesis-2026.md +101 -0
- package/docs/agent-hosts.md +24 -5
- package/docs/agent-qa-rail.md +92 -0
- package/docs/agents.md +31 -12
- package/docs/assets/demos/README.md +3 -0
- package/docs/assets/screenshots/agents-matrix.svg +35 -0
- package/docs/assets/screenshots/host-doctor.svg +21 -0
- package/docs/assets/screenshots/status-json.svg +30 -0
- package/docs/benchmarking.md +2 -2
- package/docs/conductor-mode.md +44 -0
- package/docs/context-packs.md +18 -0
- package/docs/dashboard-rail.md +6 -0
- package/docs/ecosystem-influences.md +65 -0
- package/docs/eval-datasets.md +40 -0
- package/docs/evaluation-suite.md +6 -0
- package/docs/evidence-provenance-rail.md +70 -0
- package/docs/external-projects-audit.md +29 -0
- package/docs/future-rails-index.md +75 -17
- package/docs/golden-agent-tests.md +44 -0
- package/docs/governance-cost-rail.md +10 -0
- package/docs/harness-lifecycle-rail.md +95 -0
- package/docs/harness-rail.md +27 -0
- package/docs/host-compatibility-rail.md +30 -6
- package/docs/host-matrix-schema.md +43 -0
- package/docs/host-router-rail.md +73 -0
- package/docs/knowledge-rail.md +76 -0
- package/docs/llm-as-judge-policy.md +45 -0
- package/docs/mcp-host-manifest.md +33 -0
- package/docs/mcp-report-resources.md +9 -0
- package/docs/mcp.md +4 -0
- package/docs/media-guide.md +27 -0
- package/docs/multi-agent-workflow-templates.md +63 -0
- package/docs/observability-rail.md +36 -0
- package/docs/quickstart.md +1 -1
- package/docs/rate-limit-and-fallback-policy.md +45 -0
- package/docs/release-workflow.md +12 -1
- package/docs/releases/README.md +3 -0
- package/docs/releases/RELEASE_NOTES_v1.1.0.md +55 -0
- package/docs/releases/RELEASE_NOTES_v1.2.0.md +43 -0
- package/docs/repo-docs-audit-2026-06-05.md +55 -0
- package/docs/report-rail.md +12 -0
- package/docs/resilience-rail.md +48 -0
- package/docs/schema-contracts.md +20 -0
- package/docs/security-boundaries.md +34 -0
- package/docs/skill-rail-2.md +11 -0
- package/docs/stable-command-surface.md +16 -1
- package/docs/tasklet-rail.md +62 -0
- package/docs/tutorial-antigravity.md +7 -2
- package/docs/tutorial-deep-agents-role-packs.md +4 -0
- package/docs/tutorial-gemini-cli.md +4 -0
- package/docs/tutorial-opencode.md +37 -0
- package/docs/v1-contract.md +5 -3
- package/docs/workflow-rail.md +12 -0
- package/examples/agents/README.md +6 -1
- package/examples/agents/opencode.md +26 -0
- 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).
|
package/docs/agent-hosts.md
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
# Agent Hosts
|
|
2
2
|
|
|
3
|
-
SotuRail v1.
|
|
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
|
|
24
|
-
-
|
|
25
|
-
-
|
|
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
|
-
|
|
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
|
-
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
123
|
-
-
|
|
124
|
-
-
|
|
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
|
|
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
|
-
##
|
|
266
|
+
## Harness And Handoff Support
|
|
258
267
|
|
|
259
|
-
SotuRail
|
|
268
|
+
SotuRail supports disciplined local handoffs without becoming the agent runtime:
|
|
260
269
|
|
|
261
|
-
|
|
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,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>
|
package/docs/benchmarking.md
CHANGED
|
@@ -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-
|
|
22
|
-
- versioned reports such as `benchmarks/reports/bench-
|
|
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).
|
package/docs/context-packs.md
CHANGED
|
@@ -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.
|
package/docs/dashboard-rail.md
CHANGED
|
@@ -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
|