这个模板不是你的真实记忆库。真实信息应该留在本地私有 vault 里。
Claude Code 与 Codex 可以读取同一个私有配置源,但真实 Cookie、token 和 API key 仍然不能进入 Markdown vault、CLAUDE.md、AGENTS.md、auto-memory、搜索日志或公开仓库。推荐把私有值放在 Git 之外、权限为 600 的结构化文件或系统 Keychain 中,并通过 runner 只向目标子进程注入所需变量;不要让 Agent 打印整个 secrets 文件。
.env- SQLite 数据库:
*.sqlite、*.db - audit 裁决库:
audit_decisions.sqlite - closeout/audit 运行日志:
logs/*.jsonl - API key、token、cookie、密码
- Hugging Face token、模型缓存
- Zvec / LanceDB / Qdrant 等派生向量库
- 真实聊天记录
- 私有项目名和客户名
- 合同、报价、账号、手机号、邮箱、身份证、银行卡
- 真实 Obsidian vault 全量内容
- 模板只放
templates/、scripts/、docs/、假示例。 - 本地真实记忆库放在另一个不公开的位置。
.env.example只放变量名和占位符。- 文档里的路径使用
/path/to/...或$HOME/...。 - 示例项目统一使用
example-app、demo-user这类假名。 - closeout/audit 只能公开脚本,不能公开本地运行产物。
- 公开 benchmark 只用假数据;真实检索、对账和安全边界样本放在 Git 之外。
- 私有 benchmark 默认只输出不可逆的 case reference、哈希、长度、名次和汇总指标,不输出原始 case id、查询原文、候选正文或绝对路径。
--show-private-details只用于本机人工排查;运行前要明确接受终端和日志里出现明文的风险。- Runtime 私有目录固定为
700;state DB、SQLite sidecar、配置文件和持久日志固定为600,每次打开都会拒绝 symlink 并复核权限。 - 普通 CLI 写入意图仅在私有 state DB 中保存有上限的 canonical proposal snapshot;宿主
writeAPI 的高级 intent 是下述无 snapshot 例外。内容不一致时默认只返回 diff 哈希和统计;只有显式--show-private-diff才返回有界且经过凭证行脱敏的 diff。对外show、receipt、搜索索引和 closeout JSONL 不保留 diff 正文。 - Studio
retrieve只从受控 stdin JSON 接收查询,不回显查询原文、候选绝对路径或后端错误正文;只返回 query hash、正式相对路径、内容指纹与有界 excerpt。重新读取时发现已知凭证模式会拒绝整份候选,避免秘密落入宿主日志。 - 宿主
writeAPI 只从 stdin 接收提案,不把正文放进 argv;内部 prewrite/postwrite reconcile query 也通过 stdin 交给 search 子进程。Studio session 只从私有环境传递,wrapper 拒绝--session-id、等号写法及其 argparse 缩写,子进程 argv 中也没有 session。它创建的高级 intent 不保存 proposal snapshot,只保留 hash、字节/行数、read token 与 scope 边界元数据;候选 excerpt、提案正文、diff 和确认 reference 都不进入持久日志,确认 reference 只存哈希。 write read-target会把不超过 2 MiB 的完整目标正文返回给调用宿主,因为安全的 UPDATE 必须基于当前全文。该正文只存在进程管道和宿主内存中,不写入 state DB、搜索日志或 closeout 日志;宿主不应把该回执记入调试日志或对话持久化。- 原子 UPDATE 在目标同目录短暂创建隐藏 proposal 文件;正常成功或已完整恢复的普通竞态会按 hash 核对后清理。若崩溃、二次竞态或恢复结果无法证明完整,系统会返回
TARGET_WRITE_RECOVERY_REQUIRED并保留隐藏 proposal/displaced/recovery sidecar,其中可能含完整提案或被竞态修改的 Markdown。它们留在私有 Vault 中用于人工恢复,不进入 state DB、回执或日志;存在时同一提案后续 apply 会持续 fail closed,不能自动删除或提交这些恢复材料。
find . -name "*.sqlite" -o -name "*.db" -o -name ".env" -o -name "*.key" -o -name "*.pem" -o -name "zvec" -o -path "*/logs/*.jsonl"
python3 scripts/agent_memory_check.py如果检查结果出现真实 key 或真实路径,先从模板里移除。