soturail 0.7.0 → 0.8.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 (48) hide show
  1. package/README.md +38 -3
  2. package/dist/cli.js +4 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/brain.d.ts +2 -0
  5. package/dist/commands/brain.js +32 -0
  6. package/dist/commands/brain.js.map +1 -0
  7. package/dist/commands/eval.js +9 -4
  8. package/dist/commands/eval.js.map +1 -1
  9. package/dist/commands/reverse.d.ts +2 -0
  10. package/dist/commands/reverse.js +20 -0
  11. package/dist/commands/reverse.js.map +1 -0
  12. package/dist/commands/rules.d.ts +1 -0
  13. package/dist/commands/rules.js +24 -0
  14. package/dist/commands/rules.js.map +1 -1
  15. package/dist/core/agent-exporter.js +1 -0
  16. package/dist/core/agent-exporter.js.map +1 -1
  17. package/dist/core/agent-runtime.js +5 -2
  18. package/dist/core/agent-runtime.js.map +1 -1
  19. package/dist/core/config.d.ts +16 -0
  20. package/dist/core/config.js +27 -2
  21. package/dist/core/config.js.map +1 -1
  22. package/dist/core/evaluation-suite.d.ts +7 -3
  23. package/dist/core/evaluation-suite.js +137 -13
  24. package/dist/core/evaluation-suite.js.map +1 -1
  25. package/dist/core/evidence-pack.js +9 -0
  26. package/dist/core/evidence-pack.js.map +1 -1
  27. package/dist/core/project-brain.d.ts +202 -0
  28. package/dist/core/project-brain.js +790 -0
  29. package/dist/core/project-brain.js.map +1 -0
  30. package/dist/core/reverse-specification.d.ts +34 -0
  31. package/dist/core/reverse-specification.js +361 -0
  32. package/dist/core/reverse-specification.js.map +1 -0
  33. package/dist/core/version.d.ts +1 -1
  34. package/dist/core/version.js +1 -1
  35. package/docs/agents.md +18 -0
  36. package/docs/diagram-rail.md +8 -0
  37. package/docs/evaluation-suite.md +20 -0
  38. package/docs/future-rails-index.md +5 -5
  39. package/docs/harness-rail.md +14 -0
  40. package/docs/knowledge-to-rules.md +37 -14
  41. package/docs/memory-rail.md +11 -0
  42. package/docs/project-brain.md +92 -0
  43. package/docs/releases/README.md +1 -0
  44. package/docs/releases/RELEASE_NOTES_v0.8.0.md +44 -0
  45. package/docs/reverse-specification-rail.md +73 -0
  46. package/docs/rules.md +18 -0
  47. package/docs/workflow-rail.md +15 -0
  48. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-brain.js","sourceRoot":"","sources":["../../src/core/project-brain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { BrainClaimRecord, BrainGapRecord } from "./project-brain.js";
2
+ export interface ReverseScanReport {
3
+ schemaVersion: "soturail.reverse.scan.v1";
4
+ createdAt: string;
5
+ roots: string[];
6
+ filesScanned: number;
7
+ commandsDetected: string[];
8
+ modulesDetected: string[];
9
+ likelyRails: string[];
10
+ testsLinked: string[];
11
+ docsLinked: string[];
12
+ gaps: string[];
13
+ }
14
+ export declare function reverseScan(target: string, root?: string): Promise<{
15
+ report: ReverseScanReport;
16
+ output: string;
17
+ }>;
18
+ export declare function reverseClaims(target: string, root?: string): Promise<{
19
+ claims: BrainClaimRecord[];
20
+ output: string;
21
+ }>;
22
+ export declare function reverseSpecs(target: string, root?: string): Promise<{
23
+ paths: string[];
24
+ output: string;
25
+ }>;
26
+ export declare function reverseGaps(root?: string): Promise<{
27
+ gaps: BrainGapRecord[];
28
+ markdownPath: string;
29
+ output: string;
30
+ }>;
31
+ export declare function reverseExport(target?: string, root?: string): Promise<{
32
+ path: string;
33
+ output: string;
34
+ }>;
@@ -0,0 +1,361 @@
1
+ import { promises as fs } from "node:fs";
2
+ import path from "node:path";
3
+ import { appendJsonl, getWorkspacePaths, readJsonl, relativeToRoot, writeJson } from "./config.js";
4
+ import { initBrain } from "./project-brain.js";
5
+ import { makeRailId, sha256Text, summarizeText } from "./rail-utils.js";
6
+ export async function reverseScan(target, root = process.cwd()) {
7
+ await initBrain(root);
8
+ const files = await listTargetFiles(target, root);
9
+ const texts = await Promise.all(files.map(async (file) => ({ file, text: await fs.readFile(path.resolve(root, file), "utf8").catch(() => "") })));
10
+ const commandsDetected = [...new Set(texts.flatMap(({ text }) => [...text.matchAll(/\.command\(["']([^"']+)["']\)/g)].map((match) => match[1] ?? "")).filter(Boolean))].sort();
11
+ const modulesDetected = files.filter((file) => /src[\\/]core[\\/]/.test(file)).map((file) => path.basename(file).replace(/\.ts$/, "")).sort();
12
+ const likelyRails = detectLikelyRails(texts.map((item) => `${item.file}\n${item.text}`).join("\n"));
13
+ const testsLinked = await listTargetFiles("tests", root).catch(() => []);
14
+ const docsLinked = await listTargetFiles("docs", root).catch(() => []);
15
+ const gaps = [
16
+ ...(commandsDetected.length === 0 ? ["No CLI command registrations found in scan target."] : []),
17
+ ...(testsLinked.length === 0 ? ["No tests linked from repository."] : []),
18
+ ...(docsLinked.length === 0 ? ["No docs linked from repository."] : [])
19
+ ];
20
+ const report = {
21
+ schemaVersion: "soturail.reverse.scan.v1",
22
+ createdAt: new Date().toISOString(),
23
+ roots: [target],
24
+ filesScanned: files.length,
25
+ commandsDetected,
26
+ modulesDetected,
27
+ likelyRails,
28
+ testsLinked: testsLinked.slice(0, 50),
29
+ docsLinked: docsLinked.slice(0, 50),
30
+ gaps
31
+ };
32
+ const paths = getWorkspacePaths(root);
33
+ await writeJson(paths.brainReverseScanJson, report);
34
+ await fs.writeFile(paths.brainReverseScanMd, renderReverseScan(report), "utf8");
35
+ return {
36
+ report,
37
+ output: [
38
+ "SotuRail reverse scan",
39
+ `target: ${target}`,
40
+ `files_scanned: ${report.filesScanned}`,
41
+ `commands_detected: ${report.commandsDetected.length}`,
42
+ `modules_detected: ${report.modulesDetected.length}`,
43
+ `json: ${relativeToRoot(root, paths.brainReverseScanJson)}`,
44
+ `markdown: ${relativeToRoot(root, paths.brainReverseScanMd)}`
45
+ ].join("\n") + "\n"
46
+ };
47
+ }
48
+ export async function reverseClaims(target, root = process.cwd()) {
49
+ await initBrain(root);
50
+ const files = await listTargetFiles(target, root);
51
+ const now = new Date().toISOString();
52
+ const claims = [];
53
+ for (const file of files) {
54
+ const text = await fs.readFile(path.resolve(root, file), "utf8").catch(() => "");
55
+ for (const command of [...text.matchAll(/\.command\(["']([^"']+)["']\)/g)].map((match) => match[1] ?? "").filter(Boolean)) {
56
+ claims.push(await makeClaim(root, `CLI command '${command}' is implemented.`, "command", file, ["reverse", "command", command], now));
57
+ }
58
+ for (const schema of [...text.matchAll(/soturail\.[a-z0-9.-]+\.v\d+/gi)].map((match) => match[0] ?? "").filter(Boolean)) {
59
+ claims.push(await makeClaim(root, `Schema '${schema}' is referenced.`, "architecture", file, ["reverse", "schema"], now));
60
+ }
61
+ if (/docs[\\/]releases|RELEASE_NOTES_v/.test(text)) {
62
+ claims.push(await makeClaim(root, "Release note paths are handled by this source.", "release", file, ["reverse", "release"], now));
63
+ }
64
+ if (/arbitrary shell|secret|redact|policy|approval/i.test(text)) {
65
+ claims.push(await makeClaim(root, "This source contains safety or policy behavior.", "security", file, ["reverse", "policy"], now));
66
+ }
67
+ if (/\.soturail[\\/][\w/-]+/.test(text)) {
68
+ claims.push(await makeClaim(root, "This source writes or reads local .soturail storage.", "architecture", file, ["reverse", "storage"], now));
69
+ }
70
+ }
71
+ const paths = getWorkspacePaths(root);
72
+ const added = await appendRecordsIfNew(paths.brainClaimsFile, claims);
73
+ return {
74
+ claims,
75
+ output: [
76
+ "SotuRail reverse claims",
77
+ `target: ${target}`,
78
+ `claims_found: ${claims.length}`,
79
+ `claims_added: ${added}`,
80
+ `jsonl: ${relativeToRoot(root, paths.brainClaimsFile)}`
81
+ ].join("\n") + "\n"
82
+ };
83
+ }
84
+ export async function reverseSpecs(target, root = process.cwd()) {
85
+ await initBrain(root);
86
+ await reverseClaims(target, root);
87
+ const paths = getWorkspacePaths(root);
88
+ const claims = await readJsonl(paths.brainClaimsFile);
89
+ const specs = [
90
+ ["release.spec.md", "Release", ["release", "version", "publish"]],
91
+ ["workflow.spec.md", "Workflow", ["workflow", "evidence", "harness"]],
92
+ ["agent-runtime.spec.md", "Agent Runtime", ["agent", "mcp", "prompt-only"]],
93
+ ["brain.spec.md", "Project Brain", ["brain", "claim", "reverse"]]
94
+ ];
95
+ const written = [];
96
+ await fs.mkdir(paths.brainSpecsDir, { recursive: true });
97
+ for (const [file, title, keywords] of specs) {
98
+ const relevant = claims.filter((claim) => keywords.some((keyword) => `${claim.claim} ${claim.tags.join(" ")}`.toLowerCase().includes(keyword)));
99
+ const specPath = path.join(paths.brainSpecsDir, file);
100
+ await fs.writeFile(specPath, renderSpec(title, relevant), "utf8");
101
+ written.push(specPath);
102
+ }
103
+ return {
104
+ paths: written,
105
+ output: [
106
+ "SotuRail reverse specs",
107
+ `target: ${target}`,
108
+ `specs_written: ${written.length}`,
109
+ ...written.map((filePath) => `- ${relativeToRoot(root, filePath)}`)
110
+ ].join("\n") + "\n"
111
+ };
112
+ }
113
+ export async function reverseGaps(root = process.cwd()) {
114
+ await initBrain(root);
115
+ const paths = getWorkspacePaths(root);
116
+ const claims = await readJsonl(paths.brainClaimsFile);
117
+ const now = new Date().toISOString();
118
+ const gaps = [];
119
+ for (const claim of claims.filter((item) => item.status === "verified" && item.validatedBy.length === 0).slice(0, 20)) {
120
+ gaps.push({
121
+ schemaVersion: "soturail.brain.gap.v1",
122
+ id: makeRailId("gap", `claim-without-test:${claim.id}`),
123
+ gap: `Claim lacks deterministic validation reference: ${claim.claim}`,
124
+ severity: "medium",
125
+ needsHumanValidation: true,
126
+ sourcePath: claim.sourcePath,
127
+ status: "open",
128
+ createdAt: now
129
+ });
130
+ }
131
+ if (!(await exists(path.join(root, "docs", "project-brain.md")))) {
132
+ gaps.push({
133
+ schemaVersion: "soturail.brain.gap.v1",
134
+ id: makeRailId("gap", "project-brain-doc-missing"),
135
+ gap: "Project Brain docs are missing.",
136
+ severity: "high",
137
+ needsHumanValidation: true,
138
+ sourcePath: "docs/project-brain.md",
139
+ status: "open",
140
+ createdAt: now
141
+ });
142
+ }
143
+ if (!(await exists(path.join(root, "src", "commands", "diagram.ts"))) && await exists(path.join(root, "docs", "diagram-rail.md"))) {
144
+ gaps.push({
145
+ schemaVersion: "soturail.brain.gap.v1",
146
+ id: makeRailId("gap", "diagram-doc-without-command"),
147
+ gap: "Diagram docs exist but diagram command was not found.",
148
+ severity: "medium",
149
+ needsHumanValidation: true,
150
+ sourcePath: "docs/diagram-rail.md",
151
+ status: "open",
152
+ createdAt: now
153
+ });
154
+ }
155
+ const added = await appendRecordsIfNew(paths.brainGapsFile, gaps);
156
+ const markdownPath = path.join(paths.brainDir, "gaps.md");
157
+ await fs.writeFile(markdownPath, [
158
+ "# Reverse Specification Gaps",
159
+ "",
160
+ ...gaps.map((gap) => `- [${gap.severity}] ${gap.gap} (source: ${gap.sourcePath})`),
161
+ ""
162
+ ].join("\n"), "utf8");
163
+ return {
164
+ gaps,
165
+ markdownPath,
166
+ output: [
167
+ "SotuRail reverse gaps",
168
+ `gaps_found: ${gaps.length}`,
169
+ `gaps_added: ${added}`,
170
+ `jsonl: ${relativeToRoot(root, paths.brainGapsFile)}`,
171
+ `markdown: ${relativeToRoot(root, markdownPath)}`
172
+ ].join("\n") + "\n"
173
+ };
174
+ }
175
+ export async function reverseExport(target = "agent", root = process.cwd()) {
176
+ if (target !== "agent")
177
+ throw new Error(`Unknown reverse export target "${target}". Supported: agent.`);
178
+ await initBrain(root);
179
+ const paths = getWorkspacePaths(root);
180
+ const claims = await readJsonl(paths.brainClaimsFile);
181
+ const gaps = await readJsonl(paths.brainGapsFile);
182
+ const specs = await listTargetFiles(path.relative(root, paths.brainSpecsDir), root).catch(() => []);
183
+ const outputPath = path.join(paths.brainExportsDir, "reverse-agent-brief.md");
184
+ await fs.writeFile(outputPath, [
185
+ "# Reverse Specification Agent Brief",
186
+ "",
187
+ "Use this as compact local context. It is deterministic, source-backed and does not rely on an LLM.",
188
+ "",
189
+ "## Source Claims",
190
+ "",
191
+ ...claims.slice(0, 20).map((claim) => `- ${claim.id}: ${claim.claim} (${claim.sourcePath})`),
192
+ "",
193
+ "## Draft Specs",
194
+ "",
195
+ ...(specs.length > 0 ? specs.map((spec) => `- ${spec}`) : ["- none generated yet; run `soturail reverse specs ./src`."]),
196
+ "",
197
+ "## Open Gaps",
198
+ "",
199
+ ...nonEmpty(gaps.filter((gap) => gap.status === "open").slice(0, 20).map((gap) => `- [${gap.severity}] ${gap.gap}`), "- none recorded"),
200
+ "",
201
+ "## Next Safe Commands",
202
+ "",
203
+ "- soturail brain doctor",
204
+ "- soturail rules from-brain",
205
+ "- soturail eval run --suite brain",
206
+ ""
207
+ ].join("\n"), "utf8");
208
+ return {
209
+ path: outputPath,
210
+ output: [
211
+ "SotuRail reverse export",
212
+ `target: ${target}`,
213
+ `path: ${relativeToRoot(root, outputPath)}`
214
+ ].join("\n") + "\n"
215
+ };
216
+ }
217
+ async function makeClaim(root, claim, kind, sourcePath, tags, now) {
218
+ const absolute = path.resolve(root, sourcePath);
219
+ const raw = await fs.readFile(absolute, "utf8").catch(() => "");
220
+ const lines = raw.split(/\r?\n/);
221
+ const firstWord = claim.split(/\s+/)[0] ?? "";
222
+ const index = lines.findIndex((line) => line.toLowerCase().includes(firstWord.toLowerCase()));
223
+ const startLine = index >= 0 ? index + 1 : 1;
224
+ const endLine = Math.min(lines.length || 1, startLine + 2);
225
+ const rangeText = raw ? lines.slice(startLine - 1, endLine).join("\n") : "";
226
+ return {
227
+ schemaVersion: "soturail.brain.claim.v1",
228
+ id: makeRailId("claim", `${claim}:${sourcePath}`),
229
+ claim,
230
+ kind,
231
+ status: raw ? "verified" : "unverified",
232
+ confidence: raw ? "medium" : "low",
233
+ sourcePath,
234
+ sourceCommit: "reverse-scan",
235
+ sourceRange: { startLine, endLine },
236
+ fileHash: raw ? `sha256-${sha256Text(raw)}` : "sha256-missing",
237
+ rangeHash: rangeText ? `sha256-${sha256Text(rangeText)}` : "sha256-missing",
238
+ validatedBy: sourcePath.startsWith("tests/") ? [sourcePath] : [],
239
+ relatedWorkflowIds: [],
240
+ relatedEvidenceIds: [],
241
+ tags,
242
+ createdAt: now,
243
+ updatedAt: now
244
+ };
245
+ }
246
+ async function listTargetFiles(target, root) {
247
+ const resolved = path.resolve(root, target);
248
+ const stat = await fs.stat(resolved).catch(() => null);
249
+ if (!stat)
250
+ return [];
251
+ const output = [];
252
+ async function visit(current) {
253
+ const entries = await fs.readdir(current, { withFileTypes: true }).catch(() => []);
254
+ for (const entry of entries) {
255
+ if (["node_modules", ".git", "dist", ".soturail", "coverage"].includes(entry.name))
256
+ continue;
257
+ const absolute = path.join(current, entry.name);
258
+ if (entry.isDirectory()) {
259
+ await visit(absolute);
260
+ }
261
+ else if (entry.isFile() && /\.(ts|tsx|js|mjs|cjs|md|json|yml|yaml)$/.test(entry.name)) {
262
+ output.push(relativeToRoot(root, absolute).replace(/\\/g, "/"));
263
+ }
264
+ }
265
+ }
266
+ if (stat.isDirectory())
267
+ await visit(resolved);
268
+ if (stat.isFile())
269
+ output.push(relativeToRoot(root, resolved).replace(/\\/g, "/"));
270
+ return output.sort((a, b) => a.localeCompare(b));
271
+ }
272
+ function detectLikelyRails(text) {
273
+ const rails = [
274
+ ["memory", /memory/i],
275
+ ["context", /context/i],
276
+ ["workflow", /workflow/i],
277
+ ["harness", /harness/i],
278
+ ["diagram", /diagram|Mermaid/i],
279
+ ["evaluation", /evaluation|eval/i],
280
+ ["agents", /agent/i],
281
+ ["rules", /rules?/i],
282
+ ["brain", /brain/i]
283
+ ];
284
+ return rails.filter(([, pattern]) => pattern.test(text)).map(([name]) => name);
285
+ }
286
+ function renderReverseScan(report) {
287
+ return [
288
+ "# SotuRail Reverse Scan",
289
+ "",
290
+ `createdAt: ${report.createdAt}`,
291
+ `files_scanned: ${report.filesScanned}`,
292
+ "",
293
+ "## Commands",
294
+ "",
295
+ ...(report.commandsDetected.length > 0 ? report.commandsDetected.map((command) => `- ${command}`) : ["- none"]),
296
+ "",
297
+ "## Modules",
298
+ "",
299
+ ...(report.modulesDetected.length > 0 ? report.modulesDetected.map((module) => `- ${module}`) : ["- none"]),
300
+ "",
301
+ "## Likely Rails",
302
+ "",
303
+ ...(report.likelyRails.length > 0 ? report.likelyRails.map((rail) => `- ${rail}`) : ["- none"]),
304
+ "",
305
+ "## Gaps",
306
+ "",
307
+ ...(report.gaps.length > 0 ? report.gaps.map((gap) => `- ${gap}`) : ["- none"]),
308
+ ""
309
+ ].join("\n");
310
+ }
311
+ function nonEmpty(values, fallback) {
312
+ return values.length > 0 ? values : [fallback];
313
+ }
314
+ function renderSpec(title, claims) {
315
+ return [
316
+ `# ${title} Reverse Spec`,
317
+ "",
318
+ "## Purpose",
319
+ "",
320
+ `Describe the verified local behavior for ${title.toLowerCase()} rail surfaces.`,
321
+ "",
322
+ "## Source Claims",
323
+ "",
324
+ ...(claims.length > 0 ? claims.slice(0, 20).map((claim) => `- ${claim.id}: ${claim.claim} (source: ${claim.sourcePath})`) : ["- No source claims yet."]),
325
+ "",
326
+ "## Required Behavior",
327
+ "",
328
+ ...(claims.length > 0 ? claims.slice(0, 10).map((claim) => `- Preserve: ${summarizeText(claim.claim, 160)}`) : ["- Add claims with `soturail reverse claims ./src`."]),
329
+ "",
330
+ "## Acceptance Criteria",
331
+ "",
332
+ "- Source claims have source paths.",
333
+ "- Gaps are explicit.",
334
+ "- Validation references are linked when available.",
335
+ "",
336
+ "## Known Gaps",
337
+ "",
338
+ "- Human review required before treating this draft spec as policy.",
339
+ "",
340
+ "## Validation References",
341
+ "",
342
+ ...(claims.flatMap((claim) => claim.validatedBy).length > 0 ? [...new Set(claims.flatMap((claim) => claim.validatedBy))].map((item) => `- ${item}`) : ["- none yet"]),
343
+ ""
344
+ ].join("\n");
345
+ }
346
+ async function appendRecordsIfNew(filePath, records) {
347
+ const existing = new Set((await readJsonl(filePath)).map((record) => record.id));
348
+ let added = 0;
349
+ for (const record of records) {
350
+ if (existing.has(record.id))
351
+ continue;
352
+ await appendJsonl(filePath, record);
353
+ existing.add(record.id);
354
+ added += 1;
355
+ }
356
+ return added;
357
+ }
358
+ async function exists(filePath) {
359
+ return fs.access(filePath).then(() => true).catch(() => false);
360
+ }
361
+ //# sourceMappingURL=reverse-specification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reverse-specification.js","sourceRoot":"","sources":["../../src/core/reverse-specification.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const SOTURAIL_VERSION = "0.7.0";
1
+ export declare const SOTURAIL_VERSION = "0.8.0";
@@ -1,3 +1,3 @@
1
1
  // Generated by scripts/sync-version.mjs from package.json. Do not edit manually.
2
- export const SOTURAIL_VERSION = "0.7.0";
2
+ export const SOTURAIL_VERSION = "0.8.0";
3
3
  //# sourceMappingURL=version.js.map
package/docs/agents.md CHANGED
@@ -11,6 +11,7 @@ soturail agents status --json
11
11
  soturail agents doctor
12
12
  soturail agents doctor --verbose
13
13
  soturail agents export --agent all
14
+ soturail brain export --agent codex
14
15
  soturail agents export --agent deepagents
15
16
  soturail agents export --agent deepagents-js
16
17
  soturail agents install --agent claude --dry-run
@@ -25,6 +26,8 @@ soturail agents uninstall --agent claude --dry-run
25
26
 
26
27
  Exports are written under `.soturail/exports/agents/<agent>/`. They are meant to be reviewed before use.
27
28
 
29
+ Project Brain exports are written under `.soturail/brain/exports/`. They provide verified claims, rules, gaps, stale warnings and source references for agent handoff.
30
+
28
31
  ## Safe Defaults
29
32
 
30
33
  - Install commands support `--dry-run`.
@@ -148,6 +151,21 @@ Generic -> Markdown
148
151
 
149
152
  See [structured-payload-rail.md](structured-payload-rail.md).
150
153
 
154
+ ## Project Brain Briefs
155
+
156
+ v0.8.0 adds:
157
+
158
+ ```bash
159
+ soturail brain scan
160
+ soturail brain export --agent claude
161
+ soturail brain export --agent codex
162
+ soturail brain export --agent gemini
163
+ soturail brain export --agent cursor
164
+ soturail brain export --agent generic
165
+ ```
166
+
167
+ Use these briefs when an agent needs repo-wide facts without a giant context dump. They include source references and stale/suspect warnings, and they remind agents not to overclaim beyond evidence.
168
+
151
169
  ## Tutorials
152
170
 
153
171
  - [SotuRail with Claude Code](tutorial-claude-code.md)
@@ -98,6 +98,14 @@ Workflow evidence can include:
98
98
  - generated workflow state diagram;
99
99
  - release or policy diagram when present.
100
100
 
101
+ ## Project Brain Integration
102
+
103
+ v0.8.0 Project Brain recognizes `docs/diagrams/` and `.spec.md` contracts as evidence sources.
104
+
105
+ Brain stale checks can flag source drift where a claim points at a diagram or spec range. Reverse specs can also generate gaps when diagram docs exist without matching command or validation evidence.
106
+
107
+ Diagram validation remains intentionally lightweight. SotuRail should not claim it is a full Mermaid parser.
108
+
101
109
  ## Example Diagram
102
110
 
103
111
  ```mermaid
@@ -5,6 +5,7 @@ SotuRail v0.6.1 adds a local evaluation suite for context quality. It is determi
5
5
  ```bash
6
6
  soturail eval list
7
7
  soturail eval run
8
+ soturail eval run --suite brain
8
9
  soturail eval report
9
10
  ```
10
11
 
@@ -33,6 +34,7 @@ The suite uses small fixtures that verify whether critical evidence survives sel
33
34
  | Evidence packs | Workflow/run evidence includes raw IDs, policy decisions, changed files and harness contract notes. |
34
35
  | Harness scenarios | Repeated failures become candidate rules, docs, memory or workflow checks. |
35
36
  | Diagram validation | Invalid Mermaid and missing verification transitions are reported clearly. |
37
+ | Project Brain | Verified claims, stale detection, brain-derived rules, brain briefs, reverse specs and gap detection. |
36
38
 
37
39
  ## Evaluation Dimensions
38
40
 
@@ -184,6 +186,24 @@ SotuRail should only make performance or quality claims when the repository incl
184
186
 
185
187
  Those can be tested separately, but the default evaluation suite must stay cheap enough for regular local development.
186
188
 
189
+ ## Brain Suite
190
+
191
+ v0.8.0 adds a focused Project Brain suite:
192
+
193
+ ```bash
194
+ soturail eval run --suite brain
195
+ ```
196
+
197
+ It validates that:
198
+
199
+ - verified claims include source paths and hashes;
200
+ - stale evidence detection reports source drift;
201
+ - rules derived from brain records link back to claims or decisions;
202
+ - agent briefs include verified rules, gaps, safe commands and source references;
203
+ - reverse specs include source claims;
204
+ - gaps are generated for missing proof;
205
+ - brain recall explains match reason, status, confidence and source.
206
+
187
207
  ## Acceptance Criteria
188
208
 
189
209
  Evaluation Suite changes should not be promoted until:
@@ -54,8 +54,8 @@ It tightens how the future rails connect around current agent-runtime patterns:
54
54
  | Filesystem Evidence Rail | Snapshot, touched-file and diff evidence tied to workflows and raw IDs | v0.5.0 seeds, v0.7.0 expansion | `docs/filesystem-evidence-rail.md`, `docs/workflow-rail.md` |
55
55
  | Evidence Pack | Connect build/test/audit/pack/raw IDs/policy decisions/release notes | v0.5.0 seeds, v0.7.0 expansion | `docs/harness-rail.md`, `docs/workflow-rail.md` |
56
56
  | Evaluation Suite | Quality benchmarks for context, payload formats, diagrams, evidence and role packs | v0.6.1 | `docs/evaluation-suite.md`, `docs/benchmarking.md`, `ROADMAP.md` |
57
- | Reverse Specification Rail | Turn existing code/docs/config/logs into claims, rules, specs, gaps and validation tasks | v0.8.0 primary, v0.5.x design | `docs/roadmap-agent-runtime-addendum.md`, `docs/knowledge-to-rules.md` |
58
- | Project Brain | Docs, diagrams, decisions, recurring bugs and release history | v0.8.0 | `ROADMAP.md` |
57
+ | Reverse Specification Rail | Turn existing code/docs/config/logs into claims, rules, specs, gaps and validation tasks | v0.8.0 primary | `docs/reverse-specification-rail.md`, `docs/knowledge-to-rules.md` |
58
+ | Project Brain | Verified claims, decisions, bugs, gaps, rules, stale events and agent-safe briefs | v0.8.0 | `docs/project-brain.md`, `ROADMAP.md` |
59
59
  | Local Dashboard | Local reports, trace viewer, Mermaid rendering and policy/evidence views | v0.10.0 | `ROADMAP.md` |
60
60
 
61
61
  ## Version Summary
@@ -152,10 +152,10 @@ Focus:
152
152
 
153
153
  Focus:
154
154
 
155
- - Knowledge Rail;
155
+ - Verified Project Brain;
156
156
  - Reverse Specification Rail;
157
- - Project Brain;
158
- - diagrams and specs as part of project memory;
157
+ - JSONL claims, decisions, bugs, gaps, rules and stale events;
158
+ - diagrams and specs as source-backed project knowledge;
159
159
  - recurring bugs and harness failures as rules/checks;
160
160
  - agent docs freshness.
161
161