Aikodoc
Aiko Chat

安全与权限

Diff Approval / Permission Rules / YOLO Mode / Custom Agents 全套护栏

Aiko Chat 写代码不靠 prompt 自觉,靠机器化护栏。本页讲清四层保护机制。

1. Diff Approval

所有文件改动落地前 unified diff 预览 + 一键 approve / reject

  • Edit / Write 工具卡片内嵌 inline diff preview
  • 点开扩展为 full-panel 高保真 diff(Shiki 语法高亮)
  • 多 diff 并发支持
  • Subagent 改动可独立 approve / reject(不影响主会话)

2. Permission Rules

Claude Code CLI 兼容的 allow/deny 规则文件:

// .claude/settings.json
{
  "permissions": {
    "allow": [
      "Bash(git:*)",
      "Bash(npm:test:*)",
      "Edit(src/**/*.ts)",
      "Edit(tests/**/*)"
    ],
    "deny": [
      "Bash(rm:-rf:*)",
      "Bash(git:push:--force:*)",
      "Edit(.env)",
      "Edit(secrets/**)"
    ]
  }
}
  • 模式匹配:Tool(pattern) 语法
  • Permission prompts 内置 "Always allow" / "Always deny",选了就写回 settings 文件
  • 项目级 ./.claude/settings.json + 用户级 ~/.claude/settings.json

3. YOLO Mode

一键 auto-approve 所有 tool calls(除 plan approval 和 question)。

  • Ephemeral —— 会话清空时重置,不持久化
  • 适合:跑确定性大批量任务(如 aiko-apply-dev 跑 §1-§5)
  • 不适合:生产代码库初次接入

4. Per-Panel Permission Mode

每个 panel 可独立设 permission mode,不被全局默认影响。多人多 Agent 并发跑不互相污染。

5. Subagent-Scoped Accept All

点 subagent 的 "Accept all edits":

  • 仅该 subagent 自动批准 —— global session mode 不变
  • 每个 subagent 独立 auto-approve
  • 主会话与其他 subagent 不受影响

6. Custom Agents / Skills / Hooks

完整支持 Claude Code 原生扩展点:

扩展点项目级用户级
Custom Agents.claude/agents/*.md~/.claude/agents/*.md
Custom Skills.claude/skills/*~/.claude/skills/*
Hooks.claude/hooks/*~/.claude/hooks/*
Commands.claude/commands/*~/.claude/commands/*

Hook 是 shell 脚本,在 tool 调用 / pre-commit / session start 等事件触发。可以:

  • pre-commit 强制跑 aiko-validate
  • pre-tool-use 拒绝某些路径写入
  • post-tool-use 自动 lint
  • on-session-start 注入项目 context

7. 与 SDD 三层门禁的关系

Aiko Chat 的 permission rules 与 SDD 的三层门禁是叠加关系:

时机工具防什么
Aiko Chat permission工具调用前settings.json allow/denyAI 误用工具 / 改不该改的文件
SDD 本地 pre-commitgit commit.pre-commit-config.yaml → aiko-validate + hygiene制品违规 / lint / secret 泄露
SDD CIMR / pushGitLab / GitHub CIvalidate + L2/L3 E2E + pipeline check

任何一层挂掉都直接拒绝下一步,不可绕过。

安全最佳实践

  1. 生产代码库:禁用 YOLO;permission allow 列白名单,不写通配
  2. 新仓库试用:可开 YOLO + 让 Aiko Chat 跑 aiko-apply-dev 端到端
  3. secret 防护deny 必含 Edit(.env) Edit(secrets/**) Bash(git:config*)
  4. 危险操作Bash(rm:-rf:*) / Bash(git:push:--force:*) / Bash(git:reset:--hard:*) 默认 deny
  5. 审计:Hook 写 audit log,session 结束自动归档

关联阅读

On this page