Skip to content

Commit cb99940

Browse files
committed
skills(pm-dispatch): a REST request body travels through a file or a quoted heredoc, never an inline double-quoted string
The filing path that command-substituted an issue title is an agent's own REST create from Bash: the instruction surface prescribes `POST /issues` without saying how the body travels, and a JSON body built inline in a double-quoted string hands every backticked identifier in the title to the shell before the request exists. rest-channel.md gains the carriage rule and its signature on the write side; platform-readings.md gains the measured fact. Both files are at their ratchet ceiling, so both additions are fold-paid: two restatements leave rest-channel (each survives in platform-readings, which that table's own rule says holds them), and one restatement leaves platform-readings. Claude-Session: https://claude.ai/code/session_018dxq7YqsLDMeZDZ5AzsgJX Co-authored-by: Claude <noreply@anthropic.com>
1 parent 7797102 commit cb99940

2 files changed

Lines changed: 3 additions & 3 deletions

File tree

.claude/skills/pm-dispatch/references/platform-readings.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,8 +346,8 @@
346346
- 判 required 集为空要读 ruleset 的 required 集本身,或看队列合并是否真在等检查。
347347
- ⛔ 别处写下的计数值一律先复测再用。
348348
- MCP `issue_write create` 落库丢掉正文尾部的署名页脚块,正文其余部分完好。
349-
- 同一路径吃掉标题里的尖括号跨度 ⇒ 标题占位写裸词(NAME / :id),⛔ 不写尖括号形。
350349
- 建卡改走 REST `POST /issues` 页脚存活;回读后 `PATCH /issues/{n}` 重送正文逐字节存下。
350+
- 内联双引号 JSON 建卡:标题反引号标识符被 shell 以 root 展开,正文完好 —— 内容被执行。
351351
- CI job 的失败 step 不必与 job 名一致 ⇒ ⛔ 不由 job 名推原因,先读 step 名再下结论。
352352
- Actions 日志保留把老 job 截到 post-job cleanup ⇒ 归档只剩清理输出时原因不可断言。
353353
-`packageManager` 的目录里 corepack 运行时解析 registry `latest` ⇒ 同 SHA 前绿后红是 tag 移了。

.claude/skills/pm-dispatch/references/rest-channel.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,9 @@
2222
- ⛔ 查重必须含 closed:卡刚关闭时最易被重开,开域查重漏掉刚关闭的同题卡即重复派发。
2323
- 开域查重是要申报的例外,不是默认;状态与标签列卡仍 `state=open`,那是状态读不是查重。
2424
- ✓ 卡与 PR 元数据 `GET .../issues/{n}` · `GET .../pulls/{n}`,assignees、labels、body 齐全。
25-
- MCP `list_issues` 永不返回 assignees,这条差别本身就是走 REST 的理由。
2625
- ✓ 整条评论线 `GET .../issues/{n}/comments?per_page=100`
2726
- ✓ Timeline 事件 `GET .../issues/{n}/timeline`:cross-ref`added_to_merge_queue`、ready_for_review。
2827
- ✓ PR diff `GET .../pulls/{n}` 带 Accept `application/vnd.github.diff`;文件清单 `.../pulls/{n}/files`
29-
- 后者可瞬态 404 ⇒ PR 文件读取优先走 git。
3028
- ✓ 取某 ref 上的文件 `GET .../contents/{path}?ref=...`,raw accept。
3129
- ✓ 祖先与对比 `GET .../compare/{base}...{head}` —— 浅检出上本地祖先判据不可信时的正解。
3230
- ✓ 门禁与 workflow `GET .../commits/{sha}/check-runs` · `GET .../actions/runs`
@@ -39,6 +37,8 @@
3937
- 加法写剥不掉并发席位刚挂的标签,比 MCP `issue_write` 的整组替换安全。
4038
- 门关席位无此端点 ⇒ 回退 = MCP 读现值、并集、整组写、读回;读回是它安全的全部理由。
4139
- ✓ 建卡带标签 `POST .../issues` · 改正文 `PATCH .../issues/{n}` · 认领 `POST .../issues/{n}/assignees`
40+
- 请求体走文件(`-d @file`)或引号定界 heredoc(`<<'EOF'`),⛔ 永不内联双引号串。
41+
- 双引号内 shell 先展开反引号、`$(...)``$VAR`,请求尚未成形;只标题坏而正文完好即此形。
4242
- ✓ 请求复审 `POST .../pulls/{n}/requested_reviewers` · 开 PR `POST .../pulls``draft=true`
4343
- GraphQL 池为 0 的同一分钟里开得出 draft PR ⇒ 交付不必等重置。
4444
- ✓ 把 `origin/main` 合进 PR head:`PUT .../pulls/{n}/update-branch`,PM 席位可用。

0 commit comments

Comments
 (0)