本文件是 Onevoke 仓库自身的开发规则. 仓库对外发布的工作流规则在 rules/, 那些文件是交付物, 不是本仓库的开发指引.
- 本仓库第三阶段安全角色
CSA和Hacker一律标记 N/A, 不运行;PM和QA保持适用.
rules/SOLO-AGENTS.md是发布规则的入口, 其余分册由它对应小节按需引用:KANBAN-RULES.md看板行为契约,GIT-RULES.mdGit 工作流,CODEX-REVIEW-RULES.md审核契约,CODE-RULES.md架构与代码质量契约. 它们是面向用户和 Agent 的对外接口, 改动前确认与bin/下实现一致. 全部装到~/.agents/下的同名文件; 用户自己的~/.agents/AGENTS.md不是安装目标, 任何脚本都不得写它.- 新增分册时把引用加进
SOLO-AGENTS.md对应小节即可;install.sh和安装测试都遍历rules/*.md, 不必改. - 本仓库根目录的
AGENTS.md是本仓库自己的开发规则, 与rules/下的发布物是两回事, 不要混改. bin/kanban是 Python 3 CLI 的唯一实现, 包含看板定位、任务校验、状态迁移和命令解析.bin/codex-review.sh是审核 wrapper, 只读运行 Codex CLI 并输出角色报告.bin/merge-worktree-memory.py在集成后合并 worktree 的 memsearch 记忆, 并清除合并结果中的非法 UTF-8 字节.tests/test-kanban.py使用临时目录覆盖小任务、大任务、非法迁移、无效入口隔离、归档、安装及初始化流程.tests/test-merge-worktree-memory.py覆盖条目切分、哈希兼容性、去重、字节清理和原子替换.tests/test-codex-review.py覆盖审核门禁的全部拒绝路径、隔离参数和篡改检测.- 运行时创建的
kanban/是本机共享数据, 不属于仓库源码, 不得提交.
本项目仅依赖 Python 标准库和 POSIX shell, 无构建步骤或依赖安装.
./install.sh
python3 bin/kanban --help
python3 tests/test-kanban.py
python3 tests/test-merge-worktree-memory.py
python3 tests/test-codex-review.py
python3 -m py_compile bin/kanban bin/merge-worktree-memory.py tests/*.py
sh -n install.sh && bash -n bin/codex-review.sh测试默认针对当前工作树. tests/test-kanban.py 可用 KANBAN_COMMAND 指向别的入口; tests/test-codex-review.py 用假 Codex 二进制驱动, 不调用真的 CLI, 也不产生网络请求.
安装脚本把三个命令复制到 ~/.local/bin/, 把 rules/ 下全部规则复制到 ~/.agents/, 不接受参数, 不读写用户的 ~/.agents/AGENTS.md. 后续命令依次检查入口、测试当前工作树脚本和执行快速语法检查. 手工试验应设置临时 KANBAN_DIR, 不要污染真实看板.
使用 Python 3、UTF-8、4 空格缩进及标准库优先的实现. 函数和变量采用 snake_case, 类采用 PascalCase, 常量采用 UPPER_SNAKE_CASE. 保持函数职责单一, 对无效输入抛出 KanbanError, 不静默忽略失败.
Shell 脚本使用 2 空格缩进, set -eu, 引用所有变量展开, 错误信息写 stderr 并返回非零状态.
任务 ID 必须匹配 YYYYMMDD-short-slug-task; slug 仅使用小写 ASCII 字母、数字和连字符. 用户可见错误信息及规则文档沿用中文和 ASCII 标点.
测试框架为 unittest; 测试方法命名为 test_<behavior>. 每项行为变更至少覆盖成功路径和相关拒绝路径. 使用 TemporaryDirectory 隔离文件系统状态, 不依赖或改写用户真实看板, 不写入真实 $HOME. 提交前运行完整测试命令; 当前项目未设置覆盖率阈值.
新提交使用简短中文动宾 subject, 每个 commit 只包含一个关注点, 例如 修复重复任务检测. PR 应说明行为变化、原因和实际验证命令; 关联任务或 issue. CLI 输出变化附终端示例, 无界面改动时无需截图.
KANBAN_DIR 仅用于测试、非 Git 项目或明确覆盖. 不提交 token、凭据、敏感服务地址、真实任务卡片或本机路径. 文件写入和状态迁移必须继续经过现有校验, 不得绕过 scan() 或 validate_target() 直接操作任务入口.
bin/codex-review.sh 的只读 sandbox、commit 校验和 worktree 篡改检测是审核门禁的一部分, 不得为方便调试而放宽.