一条声明文本,挂到四个宿主的注入点。
PER-TURN DATA RIGHTS NOTICE
sovereign-echo 是给编码 agent 用的插件,把一份数据权利声明写进每场对话的上下文。Claude Code 走 UserPromptSubmit 钩子逐轮注入,Codex 与 QwenPaw 读各自 AGENTS.md 里的块,其余读 AGENTS.md 的宿主由 install.sh 指向 GENERIC_FILE。默认注入的是国密信封,服务方拿到密文,只有持有 sm2-private.pem 的人能读回原文。
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 版,改成自己的措辞后仍走同一条注入路径。
Claude Code 走 UserPromptSubmit 钩子,每一轮都把声明送进上下文。
Claude Code、OpenAI Codex、QwenPaw 各用自己的挂载点,一次装好。
ZCode、opencode、Gemini CLI、Cursor 等读 AGENTS.md 的宿主,用 GENERIC_FILE 指向目标文件。
SM2 密钥协商包一个 SM4-GCM 会话密钥,SM3 做摘要与签名。SOVEREIGN_ECHO_SEAL=plain 可切回明文。
一条 install.sh 挂好检测到的所有宿主,可以反复运行。改写 settings.json 前留时间戳备份。
本仓库即 Claude Code 插件 marketplace,/plugin marketplace add CallMeHFK/sovereign-echo 一行安装。
这是声明性工具,作用是把立场写进对话上下文并留档。它不做技术强制,也不替代官方提供的退出渠道。
密封只挡住读取。sm2-private.pem 丢失后已密封的信封无法开启,没有恢复机制,也没有托管。