Files
reporting-governance-plugin/README.md

272 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Reporting Governance Plugin / 回報治理外掛
> 讓「代理有沒有按規則回報、卡住時有沒有誠實升級、通知到底有沒有真的送出去」變成**可驗證的流程與 artifact**,而不是只靠口頭承諾。
## 中文說明
### 這個 repo 在做什麼?
這個 repo 正在把一套 **agent reporting governance** 規則,整理成可安裝、可測試、可留痕跡的 OpenClaw plugin。
目前最具體的能力是:
- 定義 governance 的事件 / 證據 / 決策 / capability / deployment profile 契約
- 提供一個正在成形的 package`plugins/reporting-governance/`
- 提供一條已可執行的 **watchdog auto-notify reference chain**
- `watchdog -> queue -> dispatcher -> bridge -> sender binding -> receipt`
- 誠實區分通知狀態,例如:
- `dispatched`
- `pending_external_send`
- `acked`
- `blocked`
白話說:它不是通用聊天 plugin而是要處理這類問題
- long task 太久沒回報時,能不能自動留下證據並產生通知義務?
- 通知在多段 handoff 之後,能不能還是看得出「真的送到了」還是「其實還沒」?
- policy / profile / capability 能不能從文件變成 package 自己擁有的 contract
### 目前狀態:哪些真的可用、哪些還沒完整?
#### 已經可用 / 有測試證據
1. **Package skeleton 已存在**
- 位置:`plugins/reporting-governance/`
- 已有 `core/`, `adapters/`, `storage/`, `profiles/`, `capabilities/`, `schemas/`, `scripts/`
2. **最小 governance core 已可執行**
- policy evaluator
- decision runner
- compatibility preflight
- runtime-integrated execution slice
3. **Watchdog reference chain 已可執行且有整合測試**
- 會產生 event / queue / spool / receipt
- 不會把「尚未證明送達」假裝成 `acked`
4. **Package-owned profile / capability artifacts 已落地**
- `plugins/reporting-governance/profiles/strict-manager-mode.profile.json`
- `plugins/reporting-governance/capabilities/openclaw-watchdog-reference.json`
5. **打包 / 安裝 smoke test 已存在**
- 代表目前 package 至少能以受測方式被打包、安裝、再透過公開 exports/bin 驗證
#### 還沒完成 / 不能誇大宣稱的部分
1. **還不是 1.0 穩定 API**
- 版本目前是 `0.1.0-mainline`
- package surface 仍在收斂
- 不應依賴 repo 內部 `src/` 深層 private 路徑
2. **還不是完整通用治理框架**
- 現在最成熟的是 watchdog-driven notify path
- 還沒把所有 inline governance decision 都接成完整 runtime enforcement
3. **adapter 仍有過渡成分**
- 一部分 adapter 目前仍是 package 對既有 repo scripts 的包裝/收斂
- 這是 MVP 過程中的刻意設計,不是假裝全部已抽乾淨
4. **storage / audit export 仍未全面完成**
- 已有最小 decision/profile artifact slice
- 但還不是完整 event/evidence/decision/audit framework
### 如何驗證它目前真的有在工作?
最實用的驗證方式有三種。
#### 1) 跑 package smoke
```bash
npm --prefix plugins/reporting-governance run smoke
```
目前預期:
- 指令成功
- 會輸出 JSON
- `ok: true`
- `orchestrator.ok: true`
- 在 sender 未完整配置時,通常會誠實停在 `pending` / `pending_external_send` 類狀態,而不是假裝已送達
#### 2) 跑 package tests
```bash
node --test \
plugins/reporting-governance/test/package-structure.test.mjs \
plugins/reporting-governance/test/watchdog-chain.integration.test.mjs \
plugins/reporting-governance/test/runtime-integrated.integration.test.mjs \
plugins/reporting-governance/test/packed-consumer-install.smoke.test.mjs
```
這組測試重點驗證:
- package 結構存在
- tarball 可安裝到乾淨 consumer
- 公開 exports / bin 可用
- watchdog chain truth model 正常
- mixed terminal outcomes 不會被錯誤提升成 `acked`
#### 3) 直接看參考 artifact / profile / capability
可先從這幾個檔案讀起:
- `plugins/reporting-governance/README.md`
- `plugins/reporting-governance/src/reference/openclaw-watchdog-chain.md`
- `plugins/reporting-governance/capabilities/openclaw-watchdog-reference.json`
- `plugins/reporting-governance/profiles/strict-manager-mode.profile.json`
- `docs/roadmaps/reporting-governance-plugin-status-plain-language.md`
### 目前適合怎麼使用?
#### 如果你是來理解這個專案
建議閱讀順序:
1. 先看這份 `README.md`
2. 再看 `plugins/reporting-governance/README.md`
3. 想看白話版現況,讀:
- `docs/roadmaps/reporting-governance-plugin-status-plain-language.md`
4. 想看 watchdog 參考鏈,讀:
- `plugins/reporting-governance/src/reference/openclaw-watchdog-chain.md`
#### 如果你想驗證 package 現況
```bash
npm --prefix plugins/reporting-governance install
npm --prefix plugins/reporting-governance test
npm --prefix plugins/reporting-governance run smoke
```
#### 如果你想把它當成「OpenClaw reference runtime slice」來試
目前最合適的理解方式是:
- 它已經提供一個 **reference runtime composition**
- 不是完整 production installer
- 也不是所有治理規則都已接上 live runtime
- 最成熟的入口是 watchdog/orchestrator 這條鏈
### Repo 結構重點
```text
plugins/reporting-governance/ # 主 package
capabilities/ # capability descriptors
profiles/ # generated deployment profile artifacts
profiles-src/ # profile source
schemas/ # package-owned schemas
scripts/ # executable entrypoints / smoke helpers
src/
core/ # policy/decision/runtime-integrated core slice
adapters/ # runtime adapter boundary
storage/ # artifact/store contracts
reference/ # reference runtime docs
test/ # package tests
docs/specs/ # mainline specs
docs/roadmaps/ # status + roadmap docs
scripts/ # repo-level compatibility / fixture scripts
state/ # runtime artifact examples / local state
```
### 誠實的專案定位
最準確的說法是:
- **不是只有 spec**
- **也還不是完整成熟產品**
- **目前是一個已有真實可測 slice 的 plugin package 主線**
也就是:
> 已經能證明某些治理邊界真的成立,尤其是 watchdog 通知鏈與 truthful delivery state但整體仍在往更完整、可攜、可安裝的 plugin 收斂中。
---
## English
### What does this repository do?
This repository is turning a set of **agent reporting governance** rules into an installable, testable, artifact-backed OpenClaw plugin.
Today, the most concrete slice is a **watchdog auto-notify reference chain** that can:
- detect overdue reporting situations,
- emit canonical events,
- create queue/spool/receipt artifacts,
- and preserve truthful delivery states instead of claiming success too early.
In plain English: this project is about making agent reporting obligations auditable and automatable, especially around “silent long task” failures and notification handoff truth.
### Honest current status
What works now:
- a real package boundary under `plugins/reporting-governance/`
- package-owned schemas, capability descriptors, and deployment profile artifacts
- a minimal runnable governance core
- a tested OpenClaw watchdog reference composition
- packaging/install smoke coverage via public exports and bin entrypoints
What is not complete yet:
- this is still **pre-1.0** (`0.1.0-mainline`)
- the API surface is still tightening
- not all governance decisions are wired into a generalized runtime enforcement layer
- some adapters still wrap existing repo scripts as part of MVP extraction
- this is not yet a finished production-wide governance framework
### How to verify the current state
Run the package smoke check:
```bash
npm --prefix plugins/reporting-governance run smoke
```
Run a focused package verification set:
```bash
node --test \
plugins/reporting-governance/test/package-structure.test.mjs \
plugins/reporting-governance/test/watchdog-chain.integration.test.mjs \
plugins/reporting-governance/test/runtime-integrated.integration.test.mjs \
plugins/reporting-governance/test/packed-consumer-install.smoke.test.mjs
```
Or run the package test suite:
```bash
npm --prefix plugins/reporting-governance test
```
### Practical usage guidance
Use the repository today as:
- a **reference implementation** for reporting-governance package boundaries,
- a **tested watchdog notification chain** for OpenClaw,
- and a **working MVP package slice** for further extraction.
Do **not** treat it yet as:
- a stable 1.0 public API,
- a complete governance framework for every runtime,
- or a finished production installer.
### Start here
- Repo overview: `README.md`
- Package details: `plugins/reporting-governance/README.md`
- Plain-language status: `docs/roadmaps/reporting-governance-plugin-status-plain-language.md`
- Reference chain: `plugins/reporting-governance/src/reference/openclaw-watchdog-chain.md`
---
## See also
- `plugins/reporting-governance/README.md`
- `docs/roadmaps/reporting-governance-plugin-status-plain-language.md`
- `docs/roadmaps/reporting-governance-plugin-mvp.md`
- `docs/specs/reporting-governance-capability-descriptor.md`
- `docs/specs/reporting-governance-deployment-model.md`
- `plugins/reporting-governance/src/reference/openclaw-watchdog-chain.md`
- `CODER_WATCHDOG_REPORT.md`