@hupan56/wlkj 3.1.21 → 3.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hupan56/wlkj",
3
- "version": "3.1.21",
3
+ "version": "3.1.22",
4
4
  "description": "AI Product R&D Workflow - PRD/Prototype/Search/Task/Report",
5
5
  "bin": {
6
6
  "wlkj": "bin/cli.js"
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -34,7 +34,7 @@ PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
34
34
 
35
35
  ## ⚙️ 自取上下文(QoderWork 无 hook 注入,必须自读)
36
36
 
37
- - **当前身份**:当前设计师名(产出归属)。读法:先 `R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
37
+ - **当前身份**:当前设计师名(产出归属)。读法:先 `R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
38
38
  再 `$PY "$R/.qoder/scripts/foundation/core/paths.py" whoami`(输出开发者名;空=未初始化)。
39
39
  ⚠️ 勿用裸相对路径 `.qoder/.developer`(QoderWork 桌面端 cwd 不在仓库根,会读不到而误报未初始化)。
40
40
  - **活动任务**:若存在,spec 命名带上任务关键词。读法 `$PY "$R/.qoder/scripts/foundation/core/paths.py" current-task`(输出任务路径;空=无活动任务)。
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -28,7 +28,7 @@ PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
28
28
 
29
29
  ## ⚙️ 自取上下文(Quest / QoderWork 无 hook 注入,必须自读)
30
30
 
31
- - **当前身份**:当前评审人。读法:先 `R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
31
+ - **当前身份**:当前评审人。读法:先 `R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
32
32
  再 `$PY "$R/.qoder/scripts/foundation/core/paths.py" whoami`(输出开发者名;空=未初始化)。
33
33
  ⚠️ 勿用裸相对路径 `.qoder/.developer`(QoderWork 桌面端 cwd 不在仓库根,会读不到而误报未初始化)。
34
34
  - 设计文件路径由用户指定,或扫 `workspace/members/{dev}/drafts/prototype-*.html`
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -40,7 +40,7 @@ PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
40
40
 
41
41
  ## 自取上下文(Quest / QoderWork 无 hook,必须自读)
42
42
 
43
- - **当前身份**:当前开发者名。读法:先 `R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
43
+ - **当前身份**:当前开发者名。读法:先 `R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
44
44
  再 `$PY "$R/.qoder/scripts/foundation/core/paths.py" whoami`(输出开发者名;空=未初始化)。
45
45
  ⚠️ 勿用裸相对路径 `.qoder/.developer`(QoderWork 桌面端 cwd 不在仓库根,会读不到而误报未初始化)。
46
46
  - **活动任务**:当前活动任务。读法 `$PY "$R/.qoder/scripts/foundation/core/paths.py" current-task`(输出任务路径;空=无活动任务)。
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -18,7 +18,7 @@ PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
18
18
 
19
19
  ## ⚙️ 自取上下文(Quest / QoderWork 无 hook 注入,必须自读)
20
20
 
21
- - **当前身份**:当前评审人。读法:先 `R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
21
+ - **当前身份**:当前评审人。读法:先 `R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
22
22
  再 `$PY "$R/.qoder/scripts/foundation/core/paths.py" whoami`(输出开发者名;空=未初始化)。
23
23
  ⚠️ 勿用裸相对路径 `.qoder/.developer`(QoderWork 桌面端 cwd 不在仓库根,会读不到而误报未初始化)。
24
24
  - `data/index/.index-meta.json` — 图谱新鲜度(影响"现实锚定"能否校验)
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -27,7 +27,7 @@ Generate production-ready HTML prototypes that match the project's actual UI sty
27
27
 
28
28
  ## ⚙️ 自取上下文(Quest / QoderWork 无 hook 注入,必须自读)
29
29
 
30
- - **当前身份**:决定产出存到 `workspace/members/{dev}/drafts/`。读法:先 `R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
30
+ - **当前身份**:决定产出存到 `workspace/members/{dev}/drafts/`。读法:先 `R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
31
31
  再 `$PY "$R/.qoder/scripts/foundation/core/paths.py" whoami`(输出开发者名;空=未初始化)。
32
32
  ⚠️ 勿用裸相对路径 `.qoder/.developer`(QoderWork 桌面端 cwd 不在仓库根,会读不到而误报未初始化)。
33
33
  - 若 `.qoder/.current-task` 存在,原型命名带上任务关键词
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -26,7 +26,7 @@ PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
26
26
 
27
27
  ## ⚙️ 自取上下文(Quest / QoderWork 无 hook 注入,必须自读)
28
28
 
29
- - **当前身份**:当前开发者。读法:先 `R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
29
+ - **当前身份**:当前开发者。读法:先 `R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
30
30
  再 `$PY "$R/.qoder/scripts/foundation/core/paths.py" whoami`(输出开发者名;空=未初始化)。
31
31
  ⚠️ 勿用裸相对路径 `.qoder/.developer`(QoderWork 桌面端 cwd 不在仓库根,会读不到而误报未初始化)。
32
32
  - **活动任务**:当前任务(含任务相关的 Spec 路径)。读法 `$PY "$R/.qoder/scripts/foundation/core/paths.py" current-task`(输出任务路径;空=无活动任务)。
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -24,7 +24,7 @@ PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
24
24
 
25
25
  ## ⚙️ 自取上下文(Quest / QoderWork 无 hook 注入,必须自读)
26
26
 
27
- - **当前身份**:当前开发者。读法:先 `R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
27
+ - **当前身份**:当前开发者。读法:先 `R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
28
28
  再 `$PY "$R/.qoder/scripts/foundation/core/paths.py" whoami`(输出开发者名;空=未初始化)。
29
29
  ⚠️ 勿用裸相对路径 `.qoder/.developer`(QoderWork 桌面端 cwd 不在仓库根,会读不到而误报未初始化)。
30
30
  - **活动任务**:当前任务(决定 spec 存到哪个 task 目录)。读法 `$PY "$R/.qoder/scripts/foundation/core/paths.py" current-task`(输出任务路径;空=无活动任务)。
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -26,7 +26,7 @@ PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
26
26
 
27
27
  ## ⚙️ 自取上下文(Quest / QoderWork 无 hook 注入,必须自读)
28
28
 
29
- - **当前身份**:当前开发者。读法:先 `R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
29
+ - **当前身份**:当前开发者。读法:先 `R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
30
30
  再 `$PY "$R/.qoder/scripts/foundation/core/paths.py" whoami`(输出开发者名;空=未初始化)。
31
31
  ⚠️ 勿用裸相对路径 `.qoder/.developer`(QoderWork 桌面端 cwd 不在仓库根,会读不到而误报未初始化)。
32
32
  - **活动任务**:当前任务。读法 `$PY "$R/.qoder/scripts/foundation/core/paths.py" current-task`(输出任务路径;空=无活动任务)。
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -23,7 +23,7 @@ PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
23
23
 
24
24
  ## ⚙️ 自取上下文(Quest / QoderWork 无 hook 注入,必须自读)
25
25
 
26
- - **当前身份**:当前开发者。读法:先 `R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
26
+ - **当前身份**:当前开发者。读法:先 `R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
27
27
  再 `$PY "$R/.qoder/scripts/foundation/core/paths.py" whoami`(输出开发者名;空=未初始化)。
28
28
  ⚠️ 勿用裸相对路径 `.qoder/.developer`(QoderWork 桌面端 cwd 不在仓库根,会读不到而误报未初始化)。
29
29
  - **活动任务**:当前活动任务(找对应的 spec)。读法 `$PY "$R/.qoder/scripts/foundation/core/paths.py" current-task`(输出任务路径;空=无活动任务)。
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -22,7 +22,7 @@ PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
22
22
 
23
23
  ## ⚙️ 自取上下文(Quest / QoderWork 无 hook 注入,必须自读)
24
24
 
25
- - **当前身份**:当前开发者(提交作者)。读法:先 `R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
25
+ - **当前身份**:当前开发者(提交作者)。读法:先 `R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
26
26
  再 `$PY "$R/.qoder/scripts/foundation/core/paths.py" whoami`(输出开发者名;空=未初始化)。
27
27
  ⚠️ 勿用裸相对路径 `.qoder/.developer`(QoderWork 桌面端 cwd 不在仓库根,会读不到而误报未初始化)。
28
28
  - 当前工作目录的 `git status` 和 `git diff --stat` 看改了什么
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -37,7 +37,7 @@ PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
37
37
 
38
38
  ## ⚙️ 自取上下文(Quest / QoderWork 无 hook 注入,必须自读)
39
39
 
40
- - **当前身份**:当前设计师名(产出归属)。读法:先 `R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
40
+ - **当前身份**:当前设计师名(产出归属)。读法:先 `R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
41
41
  再 `$PY "$R/.qoder/scripts/foundation/core/paths.py" whoami`(输出开发者名;空=未初始化)。
42
42
  ⚠️ 勿用裸相对路径 `.qoder/.developer`(QoderWork 桌面端 cwd 不在仓库根,会读不到而误报未初始化)。
43
43
  - **活动任务**:若存在,spec/原型命名带上任务关键词。读法 `$PY "$R/.qoder/scripts/foundation/core/paths.py" current-task`(输出任务路径;空=无活动任务)。
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -55,7 +55,7 @@ insight(探索/调研/规划)→ [用户确认转PRD] → prd(落地)→
55
55
 
56
56
  ## ⚙️ 自取上下文(Quest / QoderWork 无 hook 注入,必须自读)
57
57
 
58
- - **当前身份**:当前探索者(报告归属)。读法:先 `R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
58
+ - **当前身份**:当前探索者(报告归属)。读法:先 `R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
59
59
  再 `$PY "$R/.qoder/scripts/foundation/core/paths.py" whoami`(输出开发者名;空=未初始化)。
60
60
  ⚠️ 勿用裸相对路径 `.qoder/.developer`(QoderWork 桌面端 cwd 不在仓库根,会读不到而误报未初始化)。
61
61
  - **现状锚点(必跑,只跑这一次)**:用 prefetch 一次取全,不要串行换词搜:
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -23,7 +23,7 @@ PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
23
23
  ### ⚡ Fast Path:一次拿全(必须先跑,禁止逐个 cat/ls/git log)
24
24
 
25
25
  ```bash
26
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
26
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
27
27
  $PY "$R/.qoder/scripts/orchestration/wlkj.py" report-snapshot "$R" # 日报
28
28
  $PY "$R/.qoder/scripts/orchestration/wlkj.py" report-snapshot "$R" --days 7 # 周报
29
29
  ```
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -23,7 +23,7 @@ PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
23
23
 
24
24
  ## ⚙️ 自取上下文(Quest / QoderWork 无 hook 注入,必须自读)
25
25
 
26
- - **当前身份**:当前开发者。读法:先 `R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
26
+ - **当前身份**:当前开发者。读法:先 `R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
27
27
  再 `$PY "$R/.qoder/scripts/foundation/core/paths.py" whoami`(输出开发者名;空=未初始化)。
28
28
  ⚠️ 勿用裸相对路径 `.qoder/.developer`(QoderWork 桌面端 cwd 不在仓库根,会读不到而误报未初始化)。
29
29
  - **活动任务**:当前任务(决定 spec 存哪个 task 目录)。读法 `$PY "$R/.qoder/scripts/foundation/core/paths.py" current-task`(输出任务路径;空=无活动任务)。
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -23,7 +23,7 @@ PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
23
23
  ### ⚡ Fast Path:一次拿全(必须先跑,禁止逐个 cat/ls)
24
24
 
25
25
  ```bash
26
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
26
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
27
27
  $PY "$R/.qoder/scripts/orchestration/wlkj.py" status-snapshot "$R"
28
28
  ```
29
29
 
@@ -9,7 +9,7 @@ trigger: "user invokes /wl-* command explicitly"
9
9
 
10
10
  **后续脚本里的 `$R` 代表仓库根**,先确定它(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
11
11
  ```bash
12
- R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
12
+ R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
13
13
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
14
14
  ```
15
15
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。找不到时先跑 `$PY "$R/.qoder/scripts/orchestration/wlkj.py" install-qw`。
@@ -119,7 +119,7 @@ AI: ✅ 需求#761 已关联 build#22(本周) + #16(未来)
119
119
 
120
120
  ## ⚙️ 自取上下文(Quest / QoderWork 无 hook 注入,必须自读)
121
121
 
122
- - **当前身份**:当前开发者(assignee 默认值)。读法:先 `R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
122
+ - **当前身份**:当前开发者(assignee 默认值)。读法:先 `R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.` 定位仓库根,
123
123
  再 `$PY "$R/.qoder/scripts/foundation/core/paths.py" whoami`(输出开发者名;空=未初始化)。
124
124
  ⚠️ 勿用裸相对路径 `.qoder/.developer`(QoderWork 桌面端 cwd 不在仓库根,会读不到而误报未初始化)。
125
125
  - **活动任务**:当前活动任务("开始做""完成了"默认对它操作)。读法 `$PY "$R/.qoder/scripts/foundation/core/paths.py" current-task`(输出任务路径;空=无活动任务)。
@@ -95,7 +95,7 @@ $PY "$R/.qoder/scripts/orchestration/wlkj.py" test recall --url /auth/login
95
95
  >
96
96
  > **先确定仓库根 R**(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
97
97
  > ```bash
98
- > R=$($PY ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
98
+ > R=$(python ~/.qoderwork/repo_root.py 2>/dev/null || python3 ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
99
99
  PY=$(python --version >/dev/null 2>&1 && echo python || echo python3)
100
100
  > ```
101
101
  > `repo_root.py` 从 `~/.qoderwork/mcp.json` 反推仓库根;失败回退 `.`(IDE/CLI 工作目录即仓库根)。