Skip to content
This repository was archived by the owner on Apr 8, 2026. It is now read-only.

Commit c01ce8b

Browse files
Update compliance docs: Article 86 explain(), on_event_async, monitoring
Aligns with flowscript-agents 0.2.7 release: - Enterprise & Compliance table updated (Art 86 → explain(), Art 72 → on_event) - Learn page: audit section expanded with Article 86 and SIEM async - TS README notes Python explain() with v1.2 TS port planned Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 93a4fd7 commit c01ce8b

2 files changed

Lines changed: 25 additions & 7 deletions

File tree

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,13 +317,16 @@ Vector search and reasoning queries are orthogonal — use both. Mem0 for retrie
317317

318318
FlowScript's typed reasoning chains are also compliance-ready audit infrastructure. This isn't a separate product — it's a structural property of how FlowScript works.
319319

320-
**EU AI Act (Articles 12, 13, 86):**
320+
**EU AI Act coverage:**
321321

322322
| Requirement | Article | How FlowScript satisfies it |
323323
|:---|:---|:---|
324324
| Record-keeping | Art. 12 | Hash-chained audit trail, append-only, tamper-evident, 7yr default retention |
325325
| Transparency | Art. 13 | `why()` queries return typed causal chains — not reconstructions, actual reasoning records |
326-
| Right to explanation | Art. 86 | `alternatives()` reconstructs what was considered, what was chosen, and the rationale |
326+
| Right to explanation | Art. 86 | `explain()` generates deterministic compliance documents (Python SDK) |
327+
| Monitoring | Art. 72 | `onEvent` / `on_event_async` callbacks stream audit events to SIEM/monitoring |
328+
329+
**Article 86 — Right to Explanation:** The [Python SDK](https://pypi.org/project/flowscript-agents/) provides `explain()` — a deterministic, no-LLM function that converts `why()` results into formal compliance documents with Article 86 citation, hash-chain reference, and three audience modes (general/legal/technical). Also available as the `explain_decision` MCP tool. TypeScript port planned for v1.2.
327330

328331
**Enforcement begins August 2026.** Audit trails can't be backdated. Organizations using FlowScript today have unbroken reasoning records from day one. You can turn on logging tomorrow — you can't manufacture the last 18 months of decision provenance.
329332

@@ -337,6 +340,7 @@ FlowScript's typed reasoning chains are also compliance-ready audit infrastructu
337340
│ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ │
338341
│ │ Memory │ │ Queries │ │ Audit Trail │ │
339342
│ │ (graph) │ │ (5 ops) │ │ (SHA-256 hash chain) │ │
343+
│ │ explain() │ │ on_event_async │ │
340344
│ └──────────┘ └──────────┘ └──────────────────────┘ │
341345
├─────────────────────────────────────────────────────┤
342346
│ Your Storage (files, database, cloud) │

web/src/pages/Learn.tsx

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -273,9 +273,9 @@ mem.query.alternatives(dbQuestion);{"\n"}
273273
</p>
274274
</section>
275275

276-
{/* Audit Trail */}
276+
{/* Audit Trail & Compliance */}
277277
<section className="learn-section">
278-
<h2>Audit trail</h2>
278+
<h2>Audit trail &amp; compliance</h2>
279279
<p>
280280
Every mutation to the reasoning graph is recorded in a SHA-256 hash-chained, append-only audit trail.
281281
Each entry links to the previous via cryptographic hash. Tampering with history breaks the chain.
@@ -286,11 +286,25 @@ mem.query.alternatives(dbQuestion);{"\n"}
286286
<li><strong>Framework attribution:</strong> Every entry tagged with which adapter (LangGraph, CrewAI, etc.) made the change.</li>
287287
<li><strong>Cross-language:</strong> Same canonical JSON serialization in TypeScript and Python. Chains verify across languages.</li>
288288
<li><strong>Configurable retention:</strong> Default 7 years (SOX). Monthly rotation with gzip compression.</li>
289-
<li><strong>SIEM integration:</strong> <code>onEvent</code> callback for streaming audit events to external systems.</li>
289+
<li><strong>SIEM integration:</strong> <code>onEvent</code> / <code>on_event_async</code> callbacks stream audit events to external systems. Async mode uses a background thread so slow webhooks never block agent operations.</li>
290290
</ul>
291+
292+
<h3>EU AI Act &mdash; Article 86 (Right to Explanation)</h3>
293+
<p>
294+
The Python SDK includes <code>explain()</code> &mdash; a deterministic, no-LLM function that converts{" "}
295+
<code>why()</code> results into formal compliance documents. Three audience modes: plain English for
296+
affected individuals, formal compliance language for regulatory submissions (with Article 86 citation
297+
and hash-chain verification reference), and structured output for developers. Same input always produces
298+
the same output. Also available as the <code>explain_decision</code> MCP tool.
299+
</p>
300+
<p>
301+
Enforcement begins August 2026. Audit trails can't be backdated. Organizations using FlowScript today
302+
have unbroken reasoning records from day one.
303+
</p>
304+
291305
<p>
292-
You can't audit a deletion. You can query a tension. This is the structural argument for RELATE &gt; DELETE
293-
. FlowScript preserves the full reasoning record, not just the latest version.
306+
You can't audit a deletion. You can query a tension. This is the structural argument for RELATE &gt; DELETE.
307+
FlowScript preserves the full reasoning record, not just the latest version.
294308
</p>
295309
</section>
296310

0 commit comments

Comments
 (0)