Docs & Rules

helsome/folioGitHubLast refreshed Oct 3, 2026

This is a public, read-only report. Striff reads this repository's docs, turns each sentence that makes a claim about the code into a rule, and checks the rule against the code on the default branch. How this works

main2b5b88dlisted 35 min ago

Is this yours? Install to manage it

Once installed, Striff checks every pull request.

22
22
4
4
6
5
6
1
26 docs, listed Oct 3
helsome/folioOpen repository

helsome/folio — documented rules

22 of 22 rules, printed October 3, 2026.

The sentence in your docs
Read Oct 3
The envelope already has id / sessionId / runId / timestamp / sequence, but the protocol lacks:
StreamEventEnvelope has runId
Holds
Read Oct 3
The envelope already has id / sessionId / runId / timestamp / sequence, but the protocol lacks:
StreamEventEnvelope has timestamp
Holds
Read Oct 3
The envelope already has id / sessionId / runId / timestamp / sequence, but the protocol lacks:
StreamEventEnvelope has sequence
Holds
Read Oct 3
Capability Reconnect, Contract Implemented (v1, in-memory) RunManager.replayStream(runId, lastSequence) returns the contiguous tail from StreamEventHistory ( packages/shared/src/kernel/stream-history.ts ) when the run is unknown or the tail is non-contiguous (buffer eviction), it returns recoverable false — an explicit unrecoverable path the renderer must surface IPC runs:stream-replay
RunManager has a replayStream method
Holds
Read Oct 3
raw Pi JSONL events are converted by PiEventAdapter in the PiRuntimeAdapter.
PiRuntimeAdapter depends on PiEventAdapter
HoldsPR #259 · Oct 2
Read Oct 3
Component AgentKernel, Responsibility Composition root owns SessionManager , RunManager , and the runtime adapter
AgentKernel depends on SessionManager
HoldsPR #259 · Oct 2
Read Oct 3
Component AgentKernel, Responsibility Composition root owns SessionManager , RunManager , and the runtime adapter
AgentKernel depends on RunManager
HoldsPR #259 · Oct 2
Read Oct 3
Component PiRuntimeAdapter, Responsibility AgentRuntime implementation Folio session ↔ Pi session file lifecycle, prompt construction (workspace context + progressive skill index), symbol memory, and the LlmRuntimeApi control plane
PiRuntimeAdapter implements AgentRuntime
Holds
Read Oct 3
LocalRuntimeAdapter wraps LocalFinanceAgentBackend in the AgentRuntime contract so the full session → run → event → UI loop works without a Pi process and in tests.
LocalRuntimeAdapter depends on LocalFinanceAgentBackend
HoldsPR #259 · Oct 2
Read Oct 3
LocalRuntimeAdapter wraps LocalFinanceAgentBackend in the AgentRuntime contract so the full session → run → event → UI loop works without a Pi process and in tests.
LocalRuntimeAdapter implements AgentRuntime
HoldsPR #259 · Oct 2
Read Oct 3
AppPreferencesSnapshot = { preference, systemLocale, effectiveLocale }
AppPreferencesSnapshot has preference
Holds
Read Oct 3
AppPreferencesSnapshot = { preference, systemLocale, effectiveLocale }
AppPreferencesSnapshot has systemLocale
Holds
Read Oct 3
AppPreferencesSnapshot = { preference, systemLocale, effectiveLocale }
AppPreferencesSnapshot has effectiveLocale
Holds
Read Oct 3
LocalePreferenceStorage = { locale?: LocalePreference }
LocalePreferenceStorage has locale
Holds
Read Oct 3
EvaluationCase.locale(可选,默认 en-US)保证旧 benchmark 可复现。
EvaluationCase has locale
Holds
Read Oct 3
环节 证据数据模型, 位置 packages/core/src/financial-evidence.ts, 说明 FinancialEvidenceEnvelope (schema financial-evidence/v1 ),含 id ( fe_<sha256(runId:toolCallId:resultHash)[:24]> ,确定性生成)、 toolCallId 、 provider 、 values 、 lineage 、 resultSnapshot 、 resultHash 、 stale 、 retrievedAt 等
FinancialEvidenceEnvelope is in packages/core/src
Holds
Read Oct 3
环节 证据数据模型, 位置 packages/core/src/financial-evidence.ts, 说明 FinancialEvidenceEnvelope (schema financial-evidence/v1 ),含 id ( fe_<sha256(runId:toolCallId:resultHash)[:24]> ,确定性生成)、 toolCallId 、 provider 、 values 、 lineage 、 resultSnapshot 、 resultHash 、 stale 、 retrievedAt 等
FinancialEvidenceEnvelope has id, toolCallId, provider, values, lineage, resultSnapshot, resultHash, stale and retrievedAt
Holds
Read Oct 3
环节 类型化答案块, 位置 packages/core/src/answer-blocks.ts, 说明 块以 folio-block 围栏内嵌于回答文本; AnswerBlockBase.evidenceIds string[] 已预留
AnswerBlockBase is in packages/core/src
Holds
Read Oct 3
环节 类型化答案块, 位置 packages/core/src/answer-blocks.ts, 说明 块以 folio-block 围栏内嵌于回答文本; AnswerBlockBase.evidenceIds string[] 已预留
AnswerBlockBase has evidenceIds
Holds
Read Oct 3
数据流:ResearchService → ResearchRunner(runner.ts)→ CapabilityExecutor(并发 4 / 20s 超时)→ synthesizer → assembleReport。
ResearchService depends on ResearchRunner
Holds
Read Oct 3
数据流:ResearchService → ResearchRunner(runner.ts)→ CapabilityExecutor(并发 4 / 20s 超时)→ synthesizer → assembleReport。
ResearchRunner depends on CapabilityExecutor
Holds
Read Oct 3
**设计要点**:引用 id 采用 toolCall.id(生成期两条后端路径均可用、跨流式与持久化稳定),经 FinancialEvidenceEnvelope.toolCallId 关联到持久化 fe_* 信封。
FinancialEvidenceEnvelope has toolCallId
Holds
22 rules from 5 docs

See these where the change is. The browser extension puts a pull request's doc findings, and a diagram of what it changed, on the GitHub page itself, so the code and what your docs say about it are side by side.