Skip to content

更新#8

Open
AlgoRiff wants to merge 29 commits into
huangjia2019:mainfrom
AlgoRiff:main
Open

更新#8
AlgoRiff wants to merge 29 commits into
huangjia2019:mainfrom
AlgoRiff:main

Conversation

@AlgoRiff

@AlgoRiff AlgoRiff commented Jun 9, 2026

Copy link
Copy Markdown

No description provided.

huangjia2019 and others added 29 commits February 9, 2026 00:58
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
学员反馈 Bash 工具可绕过 Edit/Write 白名单直接修改文件。
添加 permissionMode: plan 系统级只读保障 + prompt 层只读约束。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 05-agent-skill-combo: SubAgent + Skill 组合模式
- 06-codebase-visualizer: 代码库可视化 Skill
- 06-skill-fork-demo: Skill + context:fork 模式
- 07-skill-pipeline: 多 Skill 流水线模式

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 06-skill-fork-demo → 07-skill-fork-demo
- 07-skill-pipeline → 08-skill-pipeline

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 05-agent-skill-combo: SubAgent + Skill 完整配置
- 06-codebase-visualizer: 可视化 Skill 配置
- 07-skill-fork-demo: context:fork 健康检查 Skill
- 08-skill-pipeline: 3个 SubAgent + 3个 Skill 流水线配置

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Hook 脚本的 stdout 应该只输出 JSON 给 Claude Code 解析。
原写法 2>&1 把 stderr 合并到 stdout,会让格式化工具的运行日志
(如 "src/App.tsx 120ms")和后续的 echo JSON 拼接成非法 JSON,
Claude Code 解析失败。改为 >&2 让格式化日志走 stderr,stdout 干净。

社群学员反馈,第 15 讲讲稿同步修正。
第 23 讲"实战项目——团队能力包"的可运行版本。讲稿里散落的 5 类组件
(commands / agents / skills / hooks / .mcp.json)按插件规范组织成一个
完整可安装的目录,clone 下来就能用。

包含:
- commands/ : /review、/test、/deploy
- agents/   : security-scanner(只读 sonnet)、quick-fix(写入 haiku)
- skills/   : react-patterns + chapters/ 渐进式披露三章
- hooks/    : Bash 危险命令拦截 + 文件写入后自动格式化
- .mcp.json : postgres、github、filesystem 三个 MCP 服务器

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
在标题、封面、徽章、对比表和配套代码段落多处嵌入 https://item.jd.com/15374814.html,
并新增封面图与京东购买徽章;移除关于书课重合度/差异度的具体描述。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
把《Claude Code 实战》全书 10 章的 226 个代码片段从书稿抽取整理,
按章节归类放在 99-书籍代码/ 目录,便于读者直接 copy-paste。

- 每章一个子目录,片段按出现顺序 NN- 编号
- 顶层 README 含章节概览表 + 书章节↔课程讲次对应表
- README.md 配套代码段链接由"邮件联系"改为直接指向本仓库目录
- README 表格"代码"行同步更新为 99-书籍代码/ 链接

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
把每章 README 首段改为面向读者的"配合本章 N 个代码片段,方便拷贝粘贴到 Claude Code 配置中使用",
并把顶层概览表第 3 章片段数 38→37、合计 226→225 对齐当前文件数。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
致命缺陷:Step 7 用 grep -qF "Request Changes" 判定 verdict,但 prompt
模板本身把这串字面值作为选项列出,Claude 多数时候会复述选项列表,导致
RESULT 永远包含该字符串、grep 永远命中、exit 1 永远触发——workflow
被自己的 verdict 检查自杀。

修复要点:
- Verdict 改用唯一 sentinel token <VERDICT>request_changes</VERDICT>
- 多行变量通过 env: 传,避免 \${{ }} 直接拼进 shell 的命令注入
- wc -l 改 grep -c .(空 diff 时返回 0 而不是 1)
- claude 命令失败显式报错,不让 set -eo pipefail 静默挂掉
- 校验 review.json 是合法 JSON、result 非空
- 下游全部从 review.md 文件读,不用 \${{ steps.review.outputs.result }}
  把多行 markdown 拼进 shell/JS

感谢 Geek_122fe2 同学的 bug 报告(2026-04-20,第 19 讲)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 用 `$(claude ...)` 命令替换在 set -e 下不会因 claude 失败退出,
  会导致 RESULT 为空、脚本继续跑、生成空报告。改成显式落盘 + 检查 $?
- wc -l 在空字符串时返回 1(不是 0),导致 "Found 1 file" 误报。
  改用 grep -c .,并在 0 文件时显式报错退出
- 当 claude 返回空结果时也显式报错,不再静默生成空报告

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
按读者实际会踩到的问题筛选,分 Critical / High / Medium 三级:

Critical(书中写法几乎肯定跑不通):
- 第 7 章 §7.4: GitHub Actions verdict 用 grep -qi "critical" 会
  几乎每次误触发 exit 1
- 第 8 章 多处: message.type / ClaudeAgentOptions 字段名 / @tool
  装饰器 kwarg 名 都与 SDK 实际 API 不符
- 第 9 章 §9.2: hooks/hooks.json 用扁平数组格式,Claude Code 不识别

High(代码会跑但结果错误):
- 第 1 章 §1.2.2: Hooks 配置 JSON 用扁平结构 + 虚构的 blocking 字段
- 第 1 章 §1.2.4: Python SDK 包名/import/async 用法都不对
- 第 5 章 §5.2: 虚构 PostToolUseFailure / PermissionRequest 等事件名
- 第 5 章 §5.10.1: 虚构 CLAUDE_FILE_PATH 等 env 变量
- 第 6 章 §6.4.3: 用户级 MCP 实际在 ~/.claude.json 不是 ~/.claude/
- 第 7 章 §7.4: review 输出直接拼进 JS 模板字面量会被反引号破坏

Medium(静默错误工作):
- 第 1 章: .claude.local.md 应为 CLAUDE.local.md
- 第 3 章: $ARGUMENTS[0] / $0..$2 索引语法不存在
- 第 4 章: 子代理 frontmatter permissionMode / skills 字段不存在
- 第 5 章: type: prompt/agent 和 async: true 字段不存在
- 第 7 章: review.sh 在 set -e 下命令替换屏蔽 claude 失败
- 第 9 章: marketplace.json schema 缺 owner / source 字段
- 第 9 章: /plugin install <github-url> 实际需要两步

附读者反馈入口(GitHub Issues 链接)。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants