-
taskflow 0.2
+
taskflow 0.3 · candidate
{t.cta.title}
{t.cta.body}
diff --git a/website/app/page.tsx b/website/app/page.tsx
index 9e7daf36..a9031001 100644
--- a/website/app/page.tsx
+++ b/website/app/page.tsx
@@ -1,8 +1,8 @@
import type { Metadata } from "next";
-const title = "taskflow — Declarative DAG Orchestration for Coding Agents";
+const title = "taskflow 0.3 — Trusted Effects for Coding Agents";
const description =
- "A declarative, verifiable graph of task nodes for coding-agent subagents. Fan out, gate, loop, resume, and save as a command.";
+ "Declare coding-agent effects, verify typed paths, and commit admitted filesystem changes through one resource authority. 0.3.0-beta.1; beta channel and not GA.";
const canonical = "https://heggria.github.io/taskflow/en/";
export const metadata: Metadata = {
diff --git a/website/components/home/compiler-bench.tsx b/website/components/home/compiler-bench.tsx
index 4402d97c..5ae80fed 100644
--- a/website/components/home/compiler-bench.tsx
+++ b/website/components/home/compiler-bench.tsx
@@ -3,19 +3,19 @@
import { useMemo, useState } from "react";
const GRAPH_NODES = [
- { id: "input", title: "Input", meta: "args / files", x: 12, y: 50 },
- { id: "compile", title: "Compile", meta: "FlowIR build", x: 37, y: 26 },
+ { id: "input", title: "Declare", meta: "EffectIR / PathRef", x: 12, y: 50 },
+ { id: "compile", title: "Admit", meta: "labels · overlap", x: 37, y: 26 },
{
id: "verify",
- title: "Verify",
- meta: "cycles · refs · budget",
+ title: "Authorize",
+ meta: "principal · capability",
x: 37,
y: 74,
},
- { id: "fanout", title: "Fan-out", meta: "parallel review", x: 62, y: 26 },
- { id: "gate", title: "Gate", meta: "quality / policy", x: 62, y: 74 },
- { id: "cache", title: "Cache", meta: "content addressed", x: 87, y: 26 },
- { id: "final", title: "Return", meta: "finalOutput", x: 87, y: 74 },
+ { id: "fanout", title: "Stage", meta: "snapshot · intent", x: 62, y: 26 },
+ { id: "gate", title: "Commit", meta: "or restore + reject", x: 62, y: 74 },
+ { id: "cache", title: "Ledger", meta: "durable evidence", x: 87, y: 26 },
+ { id: "final", title: "Explain", meta: "why-effect", x: 87, y: 74 },
] as const;
type GraphNode = (typeof GRAPH_NODES)[number];
diff --git a/website/components/home/install-rail.tsx b/website/components/home/install-rail.tsx
index 1192bdb9..59ae4261 100644
--- a/website/components/home/install-rail.tsx
+++ b/website/components/home/install-rail.tsx
@@ -9,7 +9,7 @@ const HOSTS: { id: HostId; label: string; command: string; guide: string }[] = [
{
id: "pi",
label: "Pi",
- command: "pi install npm:pi-taskflow",
+ command: "pi install npm:pi-taskflow@beta",
guide: "/docs/getting-started",
},
{
@@ -30,21 +30,21 @@ const HOSTS: { id: HostId; label: string; command: string; guide: string }[] = [
id: "opencode",
label: "OpenCode",
command:
- "opencode mcp add taskflow -- npx -y -p opencode-taskflow opencode-taskflow-mcp",
+ "opencode mcp add taskflow -- npx -y -p opencode-taskflow@beta opencode-taskflow-mcp",
guide: "/docs/getting-started",
},
{
id: "grok",
label: "Grok",
command:
- "grok mcp add taskflow -- npx -y -p grok-taskflow grok-taskflow-mcp",
+ "grok mcp add taskflow -- npx -y -p grok-taskflow@beta grok-taskflow-mcp",
guide: "/docs/getting-started",
},
{
id: "hermes",
label: "Hermes",
command:
- "hermes mcp add taskflow --command npx --args -y -p hermes-taskflow@0.2.10 hermes-taskflow-mcp",
+ "hermes mcp add taskflow --command npx --args -y -p hermes-taskflow@beta hermes-taskflow-mcp",
guide: "/docs/guides/hermes",
},
];
diff --git a/website/content/docs/en/compiler-runtime/typescript-dsl.mdx b/website/content/docs/en/compiler-runtime/typescript-dsl.mdx
index 2f4cee4c..7533ffb3 100644
--- a/website/content/docs/en/compiler-runtime/typescript-dsl.mdx
+++ b/website/content/docs/en/compiler-runtime/typescript-dsl.mdx
@@ -8,7 +8,7 @@ description: Compile-time .tf.ts authoring — erase runes to Taskflow JSON, the
S4 adds a **compile-time** TypeScript frontend. You author `*.tf.ts` with **runes** (`agent`, `map`, `race`, …). A CLI erases them to ordinary Taskflow JSON. Hosts still run **JSON** via `taskflow_run` / `/tf run` — there is **no** interpret path and **no** host auto-build of `.tf.ts`.
- **Package status.** `taskflow-dsl` lives in the monorepo (`packages/taskflow-dsl`). It is **not** required for JSON authors. Package manifests are `0.2.10` on this release line; install from npm after the `v0.2.10` publish job, or use a workspace / local path from this monorepo.
+ **Package status.** `taskflow-dsl` lives in the monorepo (`packages/taskflow-dsl`). It is **not** required for JSON authors. Package manifests target `0.3.0-beta.1` on npm's `beta` channel; install with `npm install taskflow-dsl@beta`, or use a workspace / local path from this monorepo.
## Workflow
diff --git a/website/content/docs/en/getting-started.mdx b/website/content/docs/en/getting-started.mdx
index 4907a046..096bcfcc 100644
--- a/website/content/docs/en/getting-started.mdx
+++ b/website/content/docs/en/getting-started.mdx
@@ -5,6 +5,10 @@ description: Run your first taskflow in under five minutes.
taskflow lets you describe multi-step agent work as a declarative graph. Instead of writing a script that calls subagents one by one, you declare the nodes and edges — and the runtime handles fan-out, retries, caching, and resume.
+
+ This guide covers the stable 0.2.x host installation path. For **0.3.0-beta.1**, start with the [Trusted Effects overview](/en/docs/trusted-effects) and select npm's `beta` channel; beta is not GA.
+
+
The fastest way to see it is to run something.
## A minimal taskflow
@@ -77,7 +81,7 @@ If you have not installed taskflow yet, pick your host:
```bash title="Install pi-taskflow"
- pi install npm:pi-taskflow
+ pi install npm:pi-taskflow@beta
```
@@ -94,7 +98,7 @@ If you have not installed taskflow yet, pick your host:
```bash title="Register OpenCode MCP"
- opencode mcp add taskflow -- npx -y -p opencode-taskflow opencode-taskflow-mcp
+ opencode mcp add taskflow -- npx -y -p opencode-taskflow@beta opencode-taskflow-mcp
```
@@ -108,7 +112,7 @@ If you have not installed taskflow yet, pick your host:
```bash title="Register Grok Build MCP"
export PI_TASKFLOW_GROK_READONLY_SANDBOX_PROFILE=taskflow-readonly
export PI_TASKFLOW_GROK_MUTATING_SANDBOX_PROFILE=taskflow-workspace
- grok mcp add taskflow -- npx -y -p grok-taskflow grok-taskflow-mcp
+ grok mcp add taskflow -- npx -y -p grok-taskflow@beta grok-taskflow-mcp
# Public plugin source is not published yet. Checkout-only:
# grok plugin install ./packages/grok-taskflow/plugin --trust
```
@@ -116,7 +120,7 @@ If you have not installed taskflow yet, pick your host:
```bash title="Register Hermes Agent MCP"
- hermes mcp add taskflow --command npx --args -y -p hermes-taskflow@0.2.10 hermes-taskflow-mcp
+ hermes mcp add taskflow --command npx --args -y -p hermes-taskflow@beta hermes-taskflow-mcp
```
See the [Hermes Agent guide](/en/docs/guides/hermes) for read-only isolation and explicit mutating opt-in.
diff --git a/website/content/docs/en/guides/grok-build.mdx b/website/content/docs/en/guides/grok-build.mdx
index bf4ad461..40c36692 100644
--- a/website/content/docs/en/guides/grok-build.mdx
+++ b/website/content/docs/en/guides/grok-build.mdx
@@ -12,7 +12,7 @@ This page walks through install, verify, first run, permissions, and long-runnin
### Published MCP package (recommended)
```bash title="Register taskflow MCP"
-grok mcp add taskflow -- npx -y -p grok-taskflow@0.2.10 grok-taskflow-mcp
+grok mcp add taskflow -- npx -y -p grok-taskflow@beta grok-taskflow-mcp
```
Requires **Node.js ≥ 22.19.0**. The MCP protocol code has no MCP SDK dependency. A public Grok plugin marketplace/source is not published yet; do not substitute an imaginary source string.
@@ -170,7 +170,7 @@ MCP-driven runs are non-interactive, so an `approval` phase **auto-rejects** (fa
```bash title="Manual MCP registration"
pnpm add -g grok-taskflow
grok mcp add taskflow -- grok-taskflow-mcp
-# or: grok mcp add taskflow -- npx -y -p grok-taskflow@0.2.10 grok-taskflow-mcp
+# or: grok mcp add taskflow -- npx -y -p grok-taskflow@beta grok-taskflow-mcp
```
## Remove
diff --git a/website/content/docs/en/guides/hermes.mdx b/website/content/docs/en/guides/hermes.mdx
index 716dbed4..a9489079 100644
--- a/website/content/docs/en/guides/hermes.mdx
+++ b/website/content/docs/en/guides/hermes.mdx
@@ -12,7 +12,7 @@ The full reference lives in [`docs/hermes-mcp.md`](https://github.com/heggria/ta
### Published MCP package (after npm publish)
```bash title="Register taskflow MCP"
-hermes mcp add taskflow --command npx --args -y -p hermes-taskflow@0.2.10 hermes-taskflow-mcp
+hermes mcp add taskflow --command npx --args -y -p hermes-taskflow@beta hermes-taskflow-mcp
```
Or paste into `~/.hermes/config.yaml` / `$HERMES_HOME/config.yaml`:
@@ -21,7 +21,7 @@ Or paste into `~/.hermes/config.yaml` / `$HERMES_HOME/config.yaml`:
mcp_servers:
taskflow:
command: "npx"
- args: ["-y", "-p", "hermes-taskflow@0.2.10", "hermes-taskflow-mcp"]
+ args: ["-y", "-p", "hermes-taskflow@beta", "hermes-taskflow-mcp"]
env:
# Required for mutating agent phases (terminal / file write / coding).
# PI_TASKFLOW_HERMES_UNSAFE_YOLO: "1" # required for mutating agent phases
diff --git a/website/content/docs/en/guides/opencode.mdx b/website/content/docs/en/guides/opencode.mdx
index 54c451ad..9b901aab 100644
--- a/website/content/docs/en/guides/opencode.mdx
+++ b/website/content/docs/en/guides/opencode.mdx
@@ -16,7 +16,7 @@ OpenCode has no git-based plugin marketplace, so you register the MCP server dir
### Option A: the CLI
```bash title="Register the MCP server via the CLI"
-opencode mcp add taskflow -- npx -y -p opencode-taskflow opencode-taskflow-mcp
+opencode mcp add taskflow -- npx -y -p opencode-taskflow@beta opencode-taskflow-mcp
```
### Option B: edit opencode.json
@@ -27,7 +27,7 @@ opencode mcp add taskflow -- npx -y -p opencode-taskflow opencode-taskflow-mcp
"mcp": {
"taskflow": {
"type": "local",
- "command": ["npx", "-y", "-p", "opencode-taskflow", "opencode-taskflow-mcp"],
+ "command": ["npx", "-y", "-p", "opencode-taskflow@beta", "opencode-taskflow-mcp"],
"enabled": true
}
},
diff --git a/website/content/docs/en/guides/pi.mdx b/website/content/docs/en/guides/pi.mdx
index abadb5db..08a791a0 100644
--- a/website/content/docs/en/guides/pi.mdx
+++ b/website/content/docs/en/guides/pi.mdx
@@ -14,7 +14,7 @@ Requires **Node.js ≥ 22.19.0**.
taskflow is a Pi extension. Install it once:
```bash title="Install pi-taskflow"
-pi install npm:pi-taskflow
+pi install npm:pi-taskflow@beta
```
That's it. The extension registers a `taskflow` tool that the model can call automatically, plus a `/tf` command for you. No model-side configuration is required to start.
diff --git a/website/content/docs/en/index.mdx b/website/content/docs/en/index.mdx
index 76ce4e6a..7457e78c 100644
--- a/website/content/docs/en/index.mdx
+++ b/website/content/docs/en/index.mdx
@@ -1,130 +1,115 @@
---
-title: taskflow Documentation
-description: Start with taskflow 0.2.7 — plan before spend, close the loop after — or jump into the compiler/runtime reference.
+title: taskflow 0.3 Documentation
+description: "Trusted Effects for coding-agent workflows: declare effects, verify typed paths, and commit admitted filesystem changes through one resource authority."
---
-taskflow is a declarative orchestration runtime for coding-agent subagents. You define a graph, **plan and verify it before token spend**, execute each phase in isolation, and return only the final result to the host conversation.
+> **0.3.0-beta.1 — beta channel candidate, not GA.** This page describes the Trusted Effects MVP prepared for the beta release. The 0.3-C Control Plane remains a follow-on candidate track.
-In **0.2**, that graph became a compiled contract: TypeScript authoring, FlowIR, replay, and incremental recompute. **0.2.7** closes the daily loop: zero-token `plan`, completion hooks, approval timeouts, and read-only analytics.
+taskflow is a declarative runtime for coding-agent workflows. It turns a graph into a verifiable execution contract, runs phases in isolation, and keeps intermediate transcripts out of the host conversation. The 0.3 candidate adds **Trusted Effects**: a typed declaration and resource-controlled commit path for admitted filesystem effects.
-## Choose your path
+## Start with the right path
-
- Choose a host, install taskflow, and run a first planned + verified flow.
+
+ Learn what `effects[]`, `PathRef`, labels, resource transactions, and `why-*` evidence mean — including the limits of resolve-only execution.
-
- Plan before spend, hooks after finish, savings on recompute.
+
+ Exercise the checked-in filesystem-write vertical slice without a live model.
-
- TypeScript DSL, FlowIR, deterministic replay, background runs, and minimal recompute.
+
+ Install a host and run a declarative DAG with agent phases, gates, approvals, and resume.
-
- The tradeoff behind declarative, inspectable, resumable agent orchestration.
+
+ TypeScript authoring, FlowIR, trace, replay, background runs, and incremental recompute.
-
- Evaluating the current line? Read **[0.2.7: plan before spend](/en/docs/blog/plan-before-spend-0.2.7)** then the **[compiler/runtime](/en/docs/compiler-runtime)** overview — not the reference front to back.
+
+ Trusted Effects is not an OS sandbox. The 0.3 MVP protects admitted declared filesystem targets through the resources path. Under resolve-only execution, writes to undeclared paths remain host-policy dependent; SecretRef and ServiceRef have no live vault or network backend in this cut.
-## Install on your host
-
-
-
- ```bash title="Install the Pi extension"
- pi install npm:pi-taskflow
- ```
-
- Continue with the [Pi guide](/en/docs/guides/pi).
-
-
- ```bash title="Install the Codex plugin"
- codex plugin marketplace add heggria/taskflow
- codex plugin add taskflow@taskflow
- ```
-
- Continue with the [Codex guide](/en/docs/guides/codex).
-
-
- ```bash title="Install the Claude Code plugin"
- claude plugin marketplace add heggria/taskflow
- claude plugin install claude-taskflow@taskflow
- ```
-
- Continue with the [Claude Code guide](/en/docs/guides/claude-code).
-
-
- ```bash title="Register the OpenCode MCP server"
- opencode mcp add taskflow -- npx -y -p opencode-taskflow opencode-taskflow-mcp
- ```
-
- Continue with the [OpenCode guide](/en/docs/guides/opencode).
-
-
- Follow the current package and local-build instructions in the [Grok Build guide](/en/docs/guides/grok-build).
-
-
- ```bash title="Register the Hermes MCP server"
- hermes mcp add taskflow --command npx --args -y -p hermes-taskflow@0.2.10 hermes-taskflow-mcp
- ```
-
- Continue with the [Hermes Agent guide](/en/docs/guides/hermes).
-
-
-
-## Learn the model
-
-
-
- DAGs, phase types, interpolation, verification, isolation, and resume.
-
-
- Exact flow fields, phase requirements, control flow, caching, budgets, and scorers.
-
-
- Host walkthroughs, templates, dynamic planning, tournaments, and case studies.
-
-
- The Pi command surface, MCP tools, and task/tasks/chain shortcuts.
-
-
-
-## The compiler/runtime path
+## The 0.3 contract
- **Verify before spend.** Start with `/tf verify` or `taskflow_verify`; structural errors cost zero tokens.
+ **Declare.** Attach a closed `effects[]` list to a phase. Each effect names its kind, typed target, purpose, and optional confidentiality/integrity labels.
- **Compile the contract.** Inspect FlowIR and the content hash with `/tf ir`.
+ **Verify and admit.** Validate the EffectIR, resolve `PathRef`, check information-flow labels and mutating-path overlap, then bind the declared target to a resource intent.
- **Resume or replay intentionally.** Resume unfinished work; replay a finished trace only for zero-token what-if decisions.
+ **Stage and commit.** The resources layer snapshots, leases, journals, stages, and atomically commits the declared filesystem target — or restores and rejects when the transaction cannot complete.
- **Recompute the stale frontier.** Use `why-stale` before applying a minimal recompute.
+ **Explain.** Query `taskflow_why_effect` or the core `why-*` APIs for structured, ledger-backed reasons. Declaration alone is never presented as authorization.
-## More resources
+## Install on your host
+
+The 0.3 beta is available from npm's `beta` channel, or from this repository for source-level work. Stable host guides continue to use the published 0.2.x line unless you explicitly select the beta channel.
-These resources remain available, but are intentionally outside the primary documentation path:
+
+ Every taskflow package requires **Node.js 22.19.0 or newer**. The candidate's source and fixture checks use pnpm from the repository checkout.
+
-
- Ready-to-run flows organized with the practical guides.
+
+ Native extension, `/tf` commands, run views, and interactive approvals.
+
+
+ Plugin and stdio MCP delivery.
+
+
+ Plugin and stdio MCP delivery.
+
+
+ MCP configuration and generated skill.
-
- Compare taskflow with imperative workflows, built-in subagents, and LangGraph.
+
+ MCP configuration with explicit host profiles.
-
- Longer essays and host-specific workflow articles.
+
+ MCP delivery with explicit child toolsets and isolation policy.
+
+
+
+## Learn the foundation
+
+
+
+ DAGs, phase types, interpolation, verification, isolation, and resume.
+
+
+ Flow fields, control flow, budgets, caching, and approvals.
+
+
+ JSON, TypeScript DSL, FlowIR, trace, replay, and recompute.
+
+
+ Host commands and the current 20-tool MCP surface, including `taskflow_why_effect`.
+
+
+
+## Release boundary
+
+The current 0.3 line has two related tracks:
+
+- **Trusted Effects MVP:** the release-bound product definition. It covers EffectIR, typed refs, labels, resource-controlled filesystem transactions, overlap admission, host-baseline honesty, and ledger-backed `why-*` explainers.
+- **0.3-C Control Plane:** a follow-on track whose current code is a ControlHost/proposed-contract scaffold. Project stores, coordination, approvals, receipts, and evidence UI are later stages; none is the 0.3 MVP GA definition, and the WebUI is not shipped in this candidate.
+
+Read the [MVP freeze in the repository](https://github.com/heggria/taskflow/blob/rc/0.3.0-trusted-effects/docs/internal/0.3.0-trusted-effects-mvp.md) and the [0.3-C plan](https://github.com/heggria/taskflow/blob/rc/0.3.0-trusted-effects/docs/internal/0.3-c-control-plane-plan.md) for the normative scope.
+
+## More resources
+
+
+
+ Runnable flow definitions, including the Trusted Effects write fixture.
-
- Contribute examples, report issues, and join discussions.
+
+ Candidate notes, release boundaries, and the 0.2 history.
-
- See examples of how teams use taskflow.
+
+ Source, issues, CI, and contribution workflow.
diff --git a/website/content/docs/en/meta.json b/website/content/docs/en/meta.json
index 64d1e74f..7e6dc79e 100644
--- a/website/content/docs/en/meta.json
+++ b/website/content/docs/en/meta.json
@@ -2,6 +2,7 @@
"title": "Documentation",
"pages": [
"index",
+ "trusted-effects",
"getting-started",
"what-is-taskflow",
"compiler-runtime",
diff --git a/website/content/docs/en/trusted-effects.mdx b/website/content/docs/en/trusted-effects.mdx
new file mode 100644
index 00000000..47568aa2
--- /dev/null
+++ b/website/content/docs/en/trusted-effects.mdx
@@ -0,0 +1,42 @@
+---
+title: Trusted Effects
+---
+
+> **0.3.0-beta.1 — beta channel candidate, not GA.** This page describes the Trusted Effects MVP prepared for the beta release; npm publication is still a release gate.
+
+Trusted Effects makes a phase's side effects explicit. The model may propose content, but for an admitted declared filesystem target, the **resources transaction is the only finalizer**.
+
+## The vertical slice
+
+The checked-in [`examples/trusted-effects-write.json`](https://github.com/heggria/taskflow/blob/rc/0.3.0-trusted-effects/examples/trusted-effects-write.json) declares one `fs.write` effect for `out/report.md`. The no-LLM fixture exercises the same resource-controlled path:
+
+```bash
+pnpm exec node --conditions=development --experimental-strip-types --test \
+ packages/taskflow-core/test/effects-e2e-fixture.test.ts
+```
+
+## The contract
+
+| Concept | Meaning |
+|---|---|
+| `EffectIR` | Closed effect vocabulary carried by the flow/phase contract |
+| `PathRef` | Typed workspace-relative target; no bare string authority |
+| `SecretRef` / `ServiceRef` | Typed handles that fail closed until a real backend is bound |
+| Labels | Fixed confidentiality/integrity checks across the phase DAG |
+| Resource transaction | Durable snapshot → lease → intent/permit → stage → commit or restore/reject |
+| `why-effect` | Read-only, ledger-backed explanation of authorization and lifecycle |
+
+## What this does not claim
+
+- It is not a FileBroker or a full OS sandbox.
+- Resolve-only hosts cannot prevent every write to an undeclared path.
+- SecretRef has no vault backend in this cut.
+- ServiceRef has no live network adapter in this cut.
+- ControlHost is currently a scaffold; stores, approvals, receipts, and WebUI belong to later 0.3-C stages. None is proof that 0.3 is released or GA.
+
+## Read next
+
+- [Core concepts](/en/docs/concepts)
+- [Compiler & runtime](/en/docs/compiler-runtime)
+- [0.3 MVP freeze in the repository](https://github.com/heggria/taskflow/blob/rc/0.3.0-trusted-effects/docs/internal/0.3.0-trusted-effects-mvp.md)
+- [Host support baseline](https://github.com/heggria/taskflow/blob/rc/0.3.0-trusted-effects/conformance/workspace/host-support-baseline.json)
diff --git a/website/content/docs/zh-cn/compiler-runtime/typescript-dsl.mdx b/website/content/docs/zh-cn/compiler-runtime/typescript-dsl.mdx
index 09352c04..6dbfa123 100644
--- a/website/content/docs/zh-cn/compiler-runtime/typescript-dsl.mdx
+++ b/website/content/docs/zh-cn/compiler-runtime/typescript-dsl.mdx
@@ -8,7 +8,7 @@ description: 编译期 .tf.ts 写法 —— rune erase 成 Taskflow JSON,再
S4 增加**编译期** TypeScript 前端:用 rune(`agent`、`map`、`race`…)写 `*.tf.ts`,CLI erase 成普通 Taskflow JSON。宿主仍通过 `taskflow_run` / `/tf run` 跑 **JSON**——**没有**解释执行路径,也**没有**宿主对 `.tf.ts` 的自动 build。
- **包状态。** `taskflow-dsl` 在 monorepo 的 `packages/taskflow-dsl`。纯 JSON 作者不需要它。本发布线 manifest 为 `0.2.10`;`v0.2.10` 发布任务完成后可从 npm 安装,或使用本 monorepo 的 workspace / 本地 path。
+ **Package status.** `taskflow-dsl` lives in the monorepo (`packages/taskflow-dsl`). It is **not** required for JSON authors. Package manifests target `0.3.0-beta.1` on npm's `beta` channel; after publication, install with `npm install taskflow-dsl@beta`, or use a workspace / local path from this monorepo.
## 工作流
diff --git a/website/content/docs/zh-cn/getting-started.mdx b/website/content/docs/zh-cn/getting-started.mdx
index 9443a502..d5da5a6a 100644
--- a/website/content/docs/zh-cn/getting-started.mdx
+++ b/website/content/docs/zh-cn/getting-started.mdx
@@ -5,6 +5,10 @@ description: 五分钟内运行你的第一个 taskflow。
taskflow 让你把多步骤的 agent 工作描述成一张声明式图。你不需要写一个一个调用子代理的脚本,只需声明节点和边——运行时会替你处理 fan-out、重试、缓存和续跑。
+
+ 本指南介绍稳定的 0.2.x 宿主安装路径。对于 **0.3.0-beta.1**,请从 [Trusted Effects 总览](/zh-cn/docs/trusted-effects) 开始,并显式选择 npm 的 `beta` channel;beta 尚未 GA。
+
+
要最快地感受它,先跑一个看看。
## 一个最小的 taskflow
@@ -77,7 +81,7 @@ taskflow 让你把多步骤的 agent 工作描述成一张声明式图。你不
```bash title="安装 pi-taskflow"
- pi install npm:pi-taskflow
+ pi install npm:pi-taskflow@beta
```
@@ -94,7 +98,7 @@ taskflow 让你把多步骤的 agent 工作描述成一张声明式图。你不
```bash title="注册 OpenCode MCP"
- opencode mcp add taskflow -- npx -y -p opencode-taskflow opencode-taskflow-mcp
+ opencode mcp add taskflow -- npx -y -p opencode-taskflow@beta opencode-taskflow-mcp
```
@@ -108,7 +112,7 @@ taskflow 让你把多步骤的 agent 工作描述成一张声明式图。你不
```bash title="注册 Grok Build MCP"
export PI_TASKFLOW_GROK_READONLY_SANDBOX_PROFILE=taskflow-readonly
export PI_TASKFLOW_GROK_MUTATING_SANDBOX_PROFILE=taskflow-workspace
- grok mcp add taskflow -- npx -y -p grok-taskflow grok-taskflow-mcp
+ grok mcp add taskflow -- npx -y -p grok-taskflow@beta grok-taskflow-mcp
# 公共 plugin source 尚未发布。仅 checkout 可用:
# grok plugin install ./packages/grok-taskflow/plugin --trust
```
@@ -116,7 +120,7 @@ taskflow 让你把多步骤的 agent 工作描述成一张声明式图。你不
```bash title="注册 Hermes Agent MCP"
- hermes mcp add taskflow --command npx --args -y -p hermes-taskflow@0.2.10 hermes-taskflow-mcp
+ hermes mcp add taskflow --command npx --args -y -p hermes-taskflow@beta hermes-taskflow-mcp
```
只读隔离与显式可写 opt-in 说明见 [Hermes Agent 指南](/zh-cn/docs/guides/hermes)。
diff --git a/website/content/docs/zh-cn/guides/grok-build.mdx b/website/content/docs/zh-cn/guides/grok-build.mdx
index c25434d4..399fdad5 100644
--- a/website/content/docs/zh-cn/guides/grok-build.mdx
+++ b/website/content/docs/zh-cn/guides/grok-build.mdx
@@ -12,7 +12,7 @@ description: 将 taskflow 作为 Grok Build 插件安装,通过 MCP 编排多
### 已发布 MCP 包(推荐)
```bash title="注册 taskflow MCP"
-grok mcp add taskflow -- npx -y -p grok-taskflow@0.2.10 grok-taskflow-mcp
+grok mcp add taskflow -- npx -y -p grok-taskflow@beta grok-taskflow-mcp
```
要求 **Node.js ≥ 22.19.0**。MCP 协议代码不依赖 MCP SDK。公共 Grok plugin marketplace/source 尚未发布;不要代入一个不存在的 source。
diff --git a/website/content/docs/zh-cn/guides/hermes.mdx b/website/content/docs/zh-cn/guides/hermes.mdx
index 8187dbce..3325742e 100644
--- a/website/content/docs/zh-cn/guides/hermes.mdx
+++ b/website/content/docs/zh-cn/guides/hermes.mdx
@@ -12,7 +12,7 @@ description: 在 Hermes Agent 上通过 MCP 安装 taskflow,用隔离的 Herme
### 已发布 npm 包(发布后)
```bash title="注册 taskflow MCP"
-hermes mcp add taskflow --command npx --args -y -p hermes-taskflow@0.2.10 hermes-taskflow-mcp
+hermes mcp add taskflow --command npx --args -y -p hermes-taskflow@beta hermes-taskflow-mcp
```
或写入 `~/.hermes/config.yaml` / `$HERMES_HOME/config.yaml`:
@@ -21,7 +21,7 @@ hermes mcp add taskflow --command npx --args -y -p hermes-taskflow@0.2.10 hermes
mcp_servers:
taskflow:
command: "npx"
- args: ["-y", "-p", "hermes-taskflow@0.2.10", "hermes-taskflow-mcp"]
+ args: ["-y", "-p", "hermes-taskflow@beta", "hermes-taskflow-mcp"]
env:
# 需要写文件/终端的 mutating phase 必须打开
# PI_TASKFLOW_HERMES_UNSAFE_YOLO: "1" # required for mutating agent phases
diff --git a/website/content/docs/zh-cn/guides/opencode.mdx b/website/content/docs/zh-cn/guides/opencode.mdx
index c75a431b..511a50dd 100644
--- a/website/content/docs/zh-cn/guides/opencode.mdx
+++ b/website/content/docs/zh-cn/guides/opencode.mdx
@@ -16,7 +16,7 @@ OpenCode 没有基于 git 的插件市场,所以你直接注册 MCP 服务器
### 方式 A:CLI
```bash title="通过 CLI 注册 MCP 服务器"
-opencode mcp add taskflow -- npx -y -p opencode-taskflow opencode-taskflow-mcp
+opencode mcp add taskflow -- npx -y -p opencode-taskflow@beta opencode-taskflow-mcp
```
### 方式 B:编辑 opencode.json
@@ -27,7 +27,7 @@ opencode mcp add taskflow -- npx -y -p opencode-taskflow opencode-taskflow-mcp
"mcp": {
"taskflow": {
"type": "local",
- "command": ["npx", "-y", "-p", "opencode-taskflow", "opencode-taskflow-mcp"],
+ "command": ["npx", "-y", "-p", "opencode-taskflow@beta", "opencode-taskflow-mcp"],
"enabled": true
}
},
diff --git a/website/content/docs/zh-cn/guides/pi.mdx b/website/content/docs/zh-cn/guides/pi.mdx
index bb9ff52e..2c2c94b7 100644
--- a/website/content/docs/zh-cn/guides/pi.mdx
+++ b/website/content/docs/zh-cn/guides/pi.mdx
@@ -14,7 +14,7 @@ description: 在 Pi 编程智能体上安装、运行、保存和续跑 taskflow
taskflow 是一个 Pi 扩展。装一次就行:
```bash title="安装 pi-taskflow"
-pi install npm:pi-taskflow
+pi install npm:pi-taskflow@beta
```
就这样。这个扩展注册了一个模型可以自动调用的 `taskflow` 工具,外加一个给你的 `/tf` 命令。启动不需要任何模型侧的配置。
diff --git a/website/content/docs/zh-cn/index.mdx b/website/content/docs/zh-cn/index.mdx
index 6c37a45b..0d1c89ac 100644
--- a/website/content/docs/zh-cn/index.mdx
+++ b/website/content/docs/zh-cn/index.mdx
@@ -1,130 +1,115 @@
---
-title: taskflow 文档
-description: 从 taskflow 0.2.7 开始——花 token 前先计划,跑完闭环——或直接进入编译器 / 运行时参考。
+title: taskflow 0.3 文档
+description: "面向 coding-agent 工作流的 Trusted Effects:声明 effect,验证类型化路径,让已准入的文件修改经过唯一 resource authority。"
---
-taskflow 是面向 coding-agent 子代理的声明式编排运行时。你定义一张图,在花 token 前 **plan 并验证**,让每个阶段隔离执行,并且只把最终结果返回宿主对话。
+> **0.3.0-beta.1——beta channel candidate,尚未 GA。** 这个页面描述为 beta 发布准备的 Trusted Effects MVP;0.3-C Control Plane 仍是后续 candidate 轨道。
-在 **0.2** 中,这张图成为了编译合同:TypeScript 编写、FlowIR、replay、增量重算。**0.2.7** 补上日常闭环:零 token `plan`、完成 hooks、审批超时、只读 analytics。
+taskflow 是面向 coding-agent 工作流的声明式运行时。它把任务图变成可验证的执行合同,让阶段隔离运行,并把中间 transcript 留在宿主对话之外。0.3 candidate 增加了 **Trusted Effects**:为已准入的文件 effect 提供类型化声明与受 resources 控制的提交路径。
-## 选择你的路径
+## 先选择正确路径
-
- 选择宿主、安装 taskflow,并运行第一张先 plan 再验证的任务图。
+
+ 理解 `effects[]`、`PathRef`、labels、resource transaction 与 `why-*` evidence,同时看清 resolve-only 执行的边界。
-
- 花 token 前先计划、跑完 hooks、recompute 省钱数字。
+
+ 不连接 live model,执行仓库内的文件写入 vertical slice。
-
- TypeScript DSL、FlowIR、确定性 replay、后台运行与最小重算。
+
+ 安装宿主,运行带 agent 阶段、gate、审批与 resume 的声明式 DAG。
-
- 理解声明式、可检查、可续跑 agent 编排背后的取舍。
+
+ TypeScript 编写、FlowIR、trace、replay、后台运行与增量重算。
-
- 评估当前版本?先读 **[0.2.7:花 token 前先计划](/zh-cn/docs/blog/plan-before-spend-0.2.7)**,再看 **[编译器 / 运行时](/zh-cn/docs/compiler-runtime)** 总览——不要从头通读 Reference。
+
+ Trusted Effects 不是 OS sandbox。0.3 MVP 通过 resources 路径保护已准入的已声明文件目标。在 resolve-only 执行下,未声明路径的写入仍取决于宿主策略;这一版没有 SecretRef 的 live vault 后端或 ServiceRef 的网络后端。
-## 在你的宿主上安装
-
-
-
- ```bash title="安装 Pi 扩展"
- pi install npm:pi-taskflow
- ```
-
- 继续阅读 [Pi 指南](/zh-cn/docs/guides/pi)。
-
-
- ```bash title="安装 Codex 插件"
- codex plugin marketplace add heggria/taskflow
- codex plugin add taskflow@taskflow
- ```
-
- 继续阅读 [Codex 指南](/zh-cn/docs/guides/codex)。
-
-
- ```bash title="安装 Claude Code 插件"
- claude plugin marketplace add heggria/taskflow
- claude plugin install claude-taskflow@taskflow
- ```
-
- 继续阅读 [Claude Code 指南](/zh-cn/docs/guides/claude-code)。
-
-
- ```bash title="注册 OpenCode MCP server"
- opencode mcp add taskflow -- npx -y -p opencode-taskflow opencode-taskflow-mcp
- ```
-
- 继续阅读 [OpenCode 指南](/zh-cn/docs/guides/opencode)。
-
-
- 按 [Grok Build 指南](/zh-cn/docs/guides/grok-build)中的当前 package / 本地构建说明安装。
-
-
- ```bash title="注册 Hermes MCP server"
- hermes mcp add taskflow --command npx --args -y -p hermes-taskflow@0.2.10 hermes-taskflow-mcp
- ```
-
- 继续阅读 [Hermes Agent 指南](/zh-cn/docs/guides/hermes)。
-
-
-
-## 理解核心模型
-
-
-
- DAG、阶段类型、插值、验证、隔离与续跑。
-
-
- 精确的 flow 字段、阶段约束、控制流、缓存、预算与 scorers。
-
-
- 宿主走查、模板、动态规划、锦标赛与案例研究。
-
-
- Pi 命令、MCP 工具与 task/tasks/chain 快捷形式。
-
-
-
-## Compiler / Runtime 路径
+## 0.3 合同
- **花 token 前先验证。** 从 `/tf verify` 或 `taskflow_verify` 开始,结构错误零 token。
+ **声明。** 给 phase 附加封闭的 `effects[]` 列表。每个 effect 写明 kind、类型化 target、purpose,以及可选的 confidentiality/integrity labels。
- **编译执行合同。** 使用 `/tf ir` 检查 FlowIR 与内容哈希。
+ **验证并准入。** 校验 EffectIR,解析 `PathRef`,检查 information-flow labels 与 mutating-path 重叠,再把声明目标绑定到 resource intent。
- **有意地区分 resume 与 replay。** Resume 继续未完成工作;replay 只在零 token 下重判已完成轨迹。
+ **Stage 并提交。** Resources 层负责 snapshot、lease、journal、stage 与原子提交;事务无法完成时就 restore and reject。
- **只重算 stale frontier。** 应用最小重算之前,先运行 `why-stale`。
+ **解释。** 通过 `taskflow_why_effect` 或 core `why-*` API 查看结构化、ledger-backed 原因。声明本身永远不被当作授权。
-## 更多资源
+## 在你的宿主上使用
+
+0.3 beta 可从 npm 的 `beta` channel 安装,也可从仓库源码运行。若未显式选择 beta,稳定宿主指南仍使用已发布的 0.2.x package pin。
+
+
+ 所有 taskflow package 都要求 **Node.js 22.19.0 或更高版本**。Candidate 的源码与 fixture 检查使用仓库内的 pnpm。
+
+
+
+
+ 原生扩展、`/tf` 命令、运行视图与交互式审批。
+
+
+ Plugin 与 stdio MCP 交付。
+
+
+ Plugin 与 stdio MCP 交付。
+
+
+ MCP 配置与生成的 skill。
+
+
+ 带显式宿主 profile 的 MCP 配置。
+
+
+ 带显式子代理 toolset 与隔离策略的 MCP 交付。
+
+
-这些资源仍然可以访问,但不再占据主文档学习路径:
+## 理解基础层
-
- 与实用指南放在一起的可运行 flow 模板。
+
+ DAG、阶段类型、插值、验证、隔离与续跑。
+
+
+ Flow 字段、控制流、预算、缓存与审批。
-
- 对比命令式 workflow、内置 subagent 与 LangGraph。
+
+ JSON、TypeScript DSL、FlowIR、trace、replay 与 recompute。
-
- 长篇设计文章与宿主工作流实践。
+
+ 宿主命令与当前 20 个 MCP 工具,包括 `taskflow_why_effect`。
+
+
+
+## 发布边界
+
+当前 0.3 有两条相关轨道:
+
+- **Trusted Effects MVP:** 面向发布的产品定义。覆盖 EffectIR、类型化 ref、labels、受 resources 控制的文件 transaction、重叠准入、诚实的宿主基线与 ledger-backed `why-*` explainers。
+- **0.3-C Control Plane:** 后续实现轨道;当前代码是 ControlHost / 拟议合同的脚手架。项目 store、协调、审批、receipts 与 evidence UI 属于后续阶段,不是 0.3 MVP 的 GA 定义,WebUI 也尚未在当前 candidate 交付。
+
+规范范围请读仓库中的 [MVP 冻结定义](https://github.com/heggria/taskflow/blob/rc/0.3.0-trusted-effects/docs/internal/0.3.0-trusted-effects-mvp.md) 与 [0.3-C 计划](https://github.com/heggria/taskflow/blob/rc/0.3.0-trusted-effects/docs/internal/0.3-c-control-plane-plan.md)。
+
+## 更多资源
+
+
+
+ 可运行的 flow 定义,包括 Trusted Effects 文件写入 fixture。
-
- 贡献案例、报告问题并加入讨论。
+
+ Candidate 说明、发布边界与 0.2 历史。
-
- 查看团队使用 taskflow 的示例。
+
+ 源码、issue、CI 与贡献流程。
diff --git a/website/content/docs/zh-cn/meta.json b/website/content/docs/zh-cn/meta.json
index c6fd27a7..12bbbf4e 100644
--- a/website/content/docs/zh-cn/meta.json
+++ b/website/content/docs/zh-cn/meta.json
@@ -2,6 +2,7 @@
"title": "文档",
"pages": [
"index",
+ "trusted-effects",
"getting-started",
"what-is-taskflow",
"compiler-runtime",
diff --git a/website/content/docs/zh-cn/trusted-effects.mdx b/website/content/docs/zh-cn/trusted-effects.mdx
new file mode 100644
index 00000000..5d14fa74
--- /dev/null
+++ b/website/content/docs/zh-cn/trusted-effects.mdx
@@ -0,0 +1,42 @@
+---
+title: Trusted Effects
+---
+
+> **0.3.0-beta.1——beta channel candidate,尚未 GA。** 本页描述为 beta 发布准备的 Trusted Effects MVP;npm 发布仍是发版闸门。
+
+Trusted Effects 把阶段的副作用写进合同。模型可以提出内容,但对于已准入的已声明文件目标,**resources transaction 是唯一最终提交者**。
+
+## Vertical slice
+
+仓库内的 [`examples/trusted-effects-write.json`](https://github.com/heggria/taskflow/blob/rc/0.3.0-trusted-effects/examples/trusted-effects-write.json) 声明了一个对 `out/report.md` 的 `fs.write` effect。无 LLM fixture 会执行同一条受 resources 控制的路径:
+
+```bash
+pnpm exec node --conditions=development --experimental-strip-types --test \
+ packages/taskflow-core/test/effects-e2e-fixture.test.ts
+```
+
+## 合同
+
+| 概念 | 含义 |
+|---|---|
+| `EffectIR` | 由 flow/phase 合同携带的封闭 effect 词汇 |
+| `PathRef` | 类型化的 workspace-relative 目标,不提供裸字符串 authority |
+| `SecretRef` / `ServiceRef` | 在绑定真实后端前失败关闭的类型化句柄 |
+| Labels | 跨 phase DAG 的固定 confidentiality/integrity 检查 |
+| Resource transaction | Durable snapshot → lease → intent/permit → stage → commit 或 restore/reject |
+| `why-effect` | 只读、ledger-backed 的授权与生命周期解释 |
+
+## 它不声称什么
+
+- 它不是 FileBroker,也不是完整 OS sandbox。
+- Resolve-only 宿主无法阻止所有对未声明路径的写入。
+- 这一版没有 SecretRef vault 后端。
+- 这一版没有 ServiceRef live network adapter。
+- ControlHost 当前是脚手架;store、审批、receipts 与 WebUI 属于后续的 0.3-C 阶段。它们不证明 0.3 已发布或 GA。
+
+## 接下来阅读
+
+- [核心概念](/zh-cn/docs/concepts)
+- [编译器与运行时](/zh-cn/docs/compiler-runtime)
+- [仓库中的 0.3 MVP 冻结定义](https://github.com/heggria/taskflow/blob/rc/0.3.0-trusted-effects/docs/internal/0.3.0-trusted-effects-mvp.md)
+- [宿主支持基线](https://github.com/heggria/taskflow/blob/rc/0.3.0-trusted-effects/conformance/workspace/host-support-baseline.json)