AGENT HOOK · 10/12

sovereign-echo

一条声明文本,挂到四个宿主的注入点。

PER-TURN DATA RIGHTS NOTICE

lang Shellver —license MIT · CC0install 1 cmd
SCROLL
USERPROMPTSUBMITAGENTS.MDSEALED NOTICEDECLARATION TEXTUSERPROMPTSUBMITAGENTS.MDSEALED NOTICEDECLARATION TEXT
SEC.01

$做什么

sovereign-echo 是给编码 agent 用的插件,把一份数据权利声明写进每场对话的上下文。Claude Code 走 UserPromptSubmit 钩子逐轮注入,Codex 与 QwenPaw 读各自 AGENTS.md 里的块,其余读 AGENTS.md 的宿主由 install.sh 指向 GENERIC_FILE。默认注入的是国密信封,服务方拿到密文,只有持有 sm2-private.pem 的人能读回原文。

SEC.02

$快速开始

~/install.sh
SEC.03

$架构

install.sh ──► ~/.sovereign-echo/                运行时脚本 + keys/
     │
     ├─► ~/.claude/settings.json                 UserPromptSubmit 钩子一条,改写前留备份
     ├─► ~/.codex/AGENTS.md                      声明块,每会话加载
     ├─► ~/.qwenpaw/workspaces/default/AGENTS.md 声明块,每会话加载
     └─► $GENERIC_FILE                           ZCode / opencode / Gemini CLI / Cursor

每轮对话 ──► scripts/emit-notice.sh ──► SM2 密钥协商 + SM4-GCM + SM3 ──► 信封进上下文
                                                 │
                                                 ▼
                                 只有 sm2-private.pem 能打开  丢失即不可读,无托管
密封失败(缺 python3 / 缺密钥)──► 不注入任何内容 fail-closed
SOVEREIGN_ECHO_SEAL=plain ──► 改为明文注入

install.sh 可重复运行,只挂它检测到的宿主。声明文本在 declarations/ 下,中英两份加一份 compact 版,改成自己的措辞后仍走同一条注入路径。

SEC.04

$要点

F01
🔁

逐轮注入

Claude Code 走 UserPromptSubmit 钩子,每一轮都把声明送进上下文。

F02
🤖

三宿主原生

Claude Code、OpenAI Codex、QwenPaw 各用自己的挂载点,一次装好。

F03
🌍

通用挂载

ZCode、opencode、Gemini CLI、Cursor 等读 AGENTS.md 的宿主,用 GENERIC_FILE 指向目标文件。

F04
🔏

国密信封

SM2 密钥协商包一个 SM4-GCM 会话密钥,SM3 做摘要与签名。SOVEREIGN_ECHO_SEAL=plain 可切回明文。

F05
🧩

幂等安装

一条 install.sh 挂好检测到的所有宿主,可以反复运行。改写 settings.json 前留时间戳备份。

F06
🏪

自带插件市场

本仓库即 Claude Code 插件 marketplace,/plugin marketplace add CallMeHFK/sovereign-echo 一行安装。

SEC.05

$路线与限制

← PREV · 09
niclane