Docs & rules

helsome/folioGitHub

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

main2b5b88dLast read Oct 3

Is this yours? Install to manage it

Once installed, Striff checks every pull request.

Documents
Rules
22
22
4
4
6
5
6
1
26 docs
helsome/folioOpen repository

helsome/folio — documented rules

22 of 22 rules, printed October 14, 2026.

The sentence in your docs
Read Oct 3
The envelope already has id / sessionId / runId / timestamp / sequence, but the protocol lacks:
3 rules from this sentence
StreamEventEnvelope has runId
Holds
StreamEventEnvelope has timestamp
Holds
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
2 rules from this sentence
AgentKernel depends on SessionManager
HoldsPR #259 · Oct 2
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.
2 rules from this sentence
LocalRuntimeAdapter depends on LocalFinanceAgentBackend
HoldsPR #259 · Oct 2
LocalRuntimeAdapter implements AgentRuntime
HoldsPR #259 · Oct 2
Read Oct 3
AppPreferencesSnapshot = { preference, systemLocale, effectiveLocale }
3 rules from this sentence
AppPreferencesSnapshot has preference
Holds
AppPreferencesSnapshot has systemLocale
Holds
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 等
2 rules from this sentence
FinancialEvidenceEnvelope is in packages/core/src
Holds
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[] 已预留
2 rules from this sentence
AnswerBlockBase is in packages/core/src
Holds
AnswerBlockBase has evidenceIds
Holds
Read Oct 3
数据流:ResearchService → ResearchRunner(runner.ts)→ CapabilityExecutor(并发 4 / 20s 超时)→ synthesizer → assembleReport。
2 rules from this sentence
ResearchService depends on ResearchRunner
Holds
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.