sync: WIN10-I9-64G 2026-07-20
This commit is contained in:
@@ -7,31 +7,38 @@ description: Use the LangGraph plan-review workflow from the current Claude Code
|
||||
|
||||
Use this skill to run the LangGraph plan-review workflow. All scripts are bundled under the skill's own `scripts\` directory (`C:\Users\bowei\.claude\skills\langgraph-plan-review\scripts\`) — no dependency on `E:\LangGraph_Design\lab00`.
|
||||
|
||||
## ⚠️ 强制执行规则(MANDATORY — read first)
|
||||
## 运行方式:进程内驱动,无 dev server(2026-07 起)
|
||||
|
||||
**plan-review 工作流必须、且只能通过 `langgraph dev` 服务器来驱动。**
|
||||
**本 skill 已去掉 `langgraph dev` 服务器**。工作流由进程内 runner **`scripts\clean_run.py`** 直接驱动:
|
||||
它 `build_workflow()` 编译图、用 **SqliteSaver**(`scripts\.plan_review_state.sqlite`)做跨调用持久化、
|
||||
自己处理 `interrupt`/`Command(resume=...)`。不再需要 `manage_dev_server.ps1` / `run_langgraph.ps1` /
|
||||
`run_workflow.py`(这些是旧的 dev-server 路径,保留仅作参考,勿再使用)。
|
||||
|
||||
- ✅ **唯一允许的入口**:`run_langgraph.ps1` → `run_workflow.py`。后者是一个**纯 REST/SDK 客户端**
|
||||
(`langgraph_sdk.get_sync_client(url=http://127.0.0.1:2024)`),每次 start/resume 都把 run
|
||||
投递到 `langgraph dev` 服务器执行。先用 `manage_dev_server.ps1 start` 把服务器拉起。
|
||||
这样 LangGraph Studio 才能实时追踪线程、节点、中断与状态。
|
||||
- **入口**:用 `langgraph` conda 环境的 python 跑 `clean_run.py`:
|
||||
```powershell
|
||||
$PY = "C:\Users\bowei\.conda\envs\langgraph\python.exe"
|
||||
$RUN = "C:\Users\bowei\.claude\skills\langgraph-plan-review\scripts\clean_run.py"
|
||||
# 首次(到 write_plan 中断):
|
||||
& $PY $RUN --task-id 10 --work-dir "<work_dir>" --notes-dir Notes --prompt "<原始请求>"
|
||||
# resume(写完/改完 Task10.md 后;resume 值 base64(JSON)):
|
||||
$resume = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('true'))
|
||||
& $PY $RUN --task-id 10 --work-dir "<work_dir>" --notes-dir Notes --resume-b64 $resume --codex-review-command-b64 $CMD --timeout 900
|
||||
```
|
||||
每次调用推进到下一个 `interrupt` 或结束,打印一行 JSON:`{"status":"waiting","action_required":{...}}`
|
||||
或 `{"status":"done","has_serious_issue":...}`。`action_required` 的处理同下(write_plan / decide /
|
||||
revise / write_rejection),resume 值:`write_plan`/`revise`/`write_rejection` 用 `true`;`decide` 用
|
||||
`{"accepts":true}` 或 `{"accepts":false,"reason":"..."}`。
|
||||
|
||||
- 🚫 **绝对禁止**:直接 `import` / 在进程内运行本 skill 的图定义模块
|
||||
(`scripts\graph.py`、`scripts\workflow.py`、`scripts\agents.py`)来跑工作流。包括但不限于:
|
||||
- `python -c "from graph import ...; graph.invoke(...)"` 或 `.stream(...)`
|
||||
- 写临时脚本 build 编译图后在进程内调用
|
||||
- 任何绕过 `http://127.0.0.1:2024` 的「就地执行」方式
|
||||
- **codex 评审的两个必备条件**(本次踩坑记录):
|
||||
1. **codex CLI 要足够新**。config.toml 若配了较新模型(如 `gpt-5.6-sol`),旧 codex 会返回 400
|
||||
`requires a newer version of Codex`。升级:`npm i -g @openai/codex@latest`(≥0.144.5 实测可用)。
|
||||
2. **codex 子进程要能到 chatgpt.com**。`clean_run.py` 会自动读 Windows 系统代理(HKCU Internet
|
||||
Settings 的 `ProxyServer`)设进 `HTTP(S)_PROXY`,让 codex 走代理;也可用 `PLAN_REVIEW_PROXY` 覆盖。
|
||||
3. **codex 超时**:`review_task.py` 的内层 codex 超时取 argv[5](默认 300s,评审常不够)。用
|
||||
`--codex-review-command-b64` 传一条**末尾带超时秒数**的命令(见 Workflow),并把 `--timeout` 设一致。
|
||||
|
||||
这类调用在 dev server 进程**之外**运行,Studio 追踪不到状态,**一律不允许**——
|
||||
即使只是想「快速验证一个节点」也不行。
|
||||
|
||||
- ℹ️ **例外说明**:`review_task.py`(Codex 评审 shim)会直接调 `codex`,这是**合规的**——
|
||||
它是由运行在 dev server 内的图通过 `codex_review_command` 调起的评审步骤,不是绕过
|
||||
dev server 去驱动工作流本身。区别在于:驱动图 = 必须走 dev server;图内部调用的工具 = 正常。
|
||||
|
||||
- 🛠 **改了 `graph.py`/`workflow.py`/`agents.py` 后**:dev server 内存里仍是旧代码。先
|
||||
`manage_dev_server.ps1 stop` 再 `start`(或让 `--reload` 生效),再经 `run_langgraph.ps1`
|
||||
重跑,使改动在被追踪的运行中生效。
|
||||
- **改了 `workflow.py`/`agents.py`/`clean_run.py` 后**:无 dev server 缓存,下次 `clean_run.py` 直接生效。
|
||||
若图结构改到与旧 checkpoint 不兼容,删 `scripts\.plan_review_state.sqlite` 重新开始该 thread。
|
||||
|
||||
## Pre-flight: Environment Setup
|
||||
|
||||
@@ -75,7 +82,10 @@ conda run -n langgraph langgraph --version
|
||||
- The workflow uses LangGraph `interrupt()` and persists state via the langgraph dev server.
|
||||
- Each `run_langgraph.ps1` invocation advances the graph to the next interrupt or completion. Use `-Resume` to continue the same thread after completing the requested Claude Code action.
|
||||
|
||||
## Dev Server Lifecycle
|
||||
## Dev Server Lifecycle ⛔ DEPRECATED
|
||||
|
||||
> **已弃用(2026-07 起)。** 本 skill 现用 `clean_run.py` 进程内驱动,**不再需要 dev server**。
|
||||
> 下面这套 `manage_dev_server.ps1` / `langgraph dev` / Studio 仅作历史参考,正常流程不要用。
|
||||
|
||||
The `langgraph dev` server must be running for the entire duration of a workflow session.
|
||||
Use `manage_dev_server.ps1` to start it before the first `run_langgraph.ps1` call and stop it after the workflow completes.
|
||||
@@ -99,6 +109,10 @@ C:\Users\bowei\.claude\skills\langgraph-plan-review\scripts\manage_dev_server.ps
|
||||
|
||||
## Workflow
|
||||
|
||||
> **注意**:下列步骤是**旧的 dev-server 流程**(`manage_dev_server.ps1` + `run_langgraph.ps1`)。
|
||||
> 正常请用上方"**运行方式:进程内驱动**"节的 `clean_run.py`。以下 action 语义(write_plan / decide /
|
||||
> revise / write_rejection 及其 resume 值)两种流程通用,可参考。
|
||||
|
||||
1. Determine `TaskId` from the user. If missing, ask for it.
|
||||
2. Start the dev server (idempotent):
|
||||
```powershell
|
||||
|
||||
Reference in New Issue
Block a user