@coralai/sps-cli 0.58.35 → 0.58.37

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.
Files changed (85) hide show
  1. package/dist/commands/skillCommand.d.ts.map +1 -1
  2. package/dist/commands/skillCommand.js +121 -2
  3. package/dist/commands/skillCommand.js.map +1 -1
  4. package/dist/console/routes/chat.d.ts.map +1 -1
  5. package/dist/console/routes/chat.js +25 -7
  6. package/dist/console/routes/chat.js.map +1 -1
  7. package/dist/console/routes/skills.d.ts.map +1 -1
  8. package/dist/console/routes/skills.js +16 -0
  9. package/dist/console/routes/skills.js.map +1 -1
  10. package/dist/console-assets/assets/{index-BIbr0M7C.css → index-BeI6qh0C.css} +1 -1
  11. package/dist/console-assets/assets/{index-CBx2UTEQ.js → index-DAkhHrLT.js} +185 -180
  12. package/dist/console-assets/index.html +2 -2
  13. package/dist/core/agents/AcpBackend.d.ts.map +1 -1
  14. package/dist/core/agents/AcpBackend.js +3 -2
  15. package/dist/core/agents/AcpBackend.js.map +1 -1
  16. package/dist/core/claudeJsonl.d.ts +10 -0
  17. package/dist/core/claudeJsonl.d.ts.map +1 -1
  18. package/dist/core/claudeJsonl.js +35 -0
  19. package/dist/core/claudeJsonl.js.map +1 -1
  20. package/dist/core/processInspect.d.ts.map +1 -1
  21. package/dist/core/processInspect.js +12 -6
  22. package/dist/core/processInspect.js.map +1 -1
  23. package/dist/core/skills/SkillsManager.d.ts.map +1 -1
  24. package/dist/core/skills/SkillsManager.js +3 -0
  25. package/dist/core/skills/SkillsManager.js.map +1 -1
  26. package/dist/core/skills/distribution.d.ts.map +1 -1
  27. package/dist/core/skills/distribution.js +7 -0
  28. package/dist/core/skills/distribution.js.map +1 -1
  29. package/dist/core/skills/lint.d.ts +13 -0
  30. package/dist/core/skills/lint.d.ts.map +1 -0
  31. package/dist/core/skills/lint.js +87 -0
  32. package/dist/core/skills/lint.js.map +1 -0
  33. package/dist/core/skills/registry.d.ts +15 -0
  34. package/dist/core/skills/registry.d.ts.map +1 -0
  35. package/dist/core/skills/registry.js +63 -0
  36. package/dist/core/skills/registry.js.map +1 -0
  37. package/dist/core/skills/types.d.ts +7 -0
  38. package/dist/core/skills/types.d.ts.map +1 -1
  39. package/dist/main.js +3 -1
  40. package/dist/main.js.map +1 -1
  41. package/dist/manager/worker-manager-impl.d.ts.map +1 -1
  42. package/dist/manager/worker-manager-impl.js +1 -0
  43. package/dist/manager/worker-manager-impl.js.map +1 -1
  44. package/dist/services/AgentGenService.d.ts +8 -0
  45. package/dist/services/AgentGenService.d.ts.map +1 -1
  46. package/dist/services/AgentGenService.js +43 -0
  47. package/dist/services/AgentGenService.js.map +1 -1
  48. package/dist/services/SkillService.d.ts +4 -0
  49. package/dist/services/SkillService.d.ts.map +1 -1
  50. package/dist/services/SkillService.js +44 -1
  51. package/dist/services/SkillService.js.map +1 -1
  52. package/dist/shared/domainEvents.d.ts +13 -1
  53. package/dist/shared/domainEvents.d.ts.map +1 -1
  54. package/dist/shared/domainEvents.js.map +1 -1
  55. package/package.json +3 -1
  56. package/skills/checklist-review/SKILL.md +1 -1
  57. package/skills/probe-playbook/SKILL.md +1 -1
  58. package/skills/registry.yaml +66 -0
  59. package/skills/skill-creator/LICENSE.txt +202 -0
  60. package/skills/skill-creator/SKILL.md +516 -0
  61. package/skills/skill-creator/agents/analyzer.md +274 -0
  62. package/skills/skill-creator/agents/comparator.md +202 -0
  63. package/skills/skill-creator/agents/grader.md +223 -0
  64. package/skills/skill-creator/assets/eval_review.html +146 -0
  65. package/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  66. package/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  67. package/skills/skill-creator/references/schemas.md +430 -0
  68. package/skills/skill-creator/scripts/__init__.py +0 -0
  69. package/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  70. package/skills/skill-creator/scripts/generate_report.py +326 -0
  71. package/skills/skill-creator/scripts/improve_description.py +247 -0
  72. package/skills/skill-creator/scripts/package_skill.py +136 -0
  73. package/skills/skill-creator/scripts/quick_validate.py +103 -0
  74. package/skills/skill-creator/scripts/run_eval.py +310 -0
  75. package/skills/skill-creator/scripts/run_loop.py +328 -0
  76. package/skills/skill-creator/scripts/utils.py +47 -0
  77. package/skills/sps-chat/SKILL.md +1 -1
  78. package/skills/sps-pipeline/SKILL.md +65 -462
  79. package/skills/sps-pipeline/references/architecture.md +46 -0
  80. package/skills/sps-pipeline/references/cards.md +69 -0
  81. package/skills/sps-pipeline/references/console-and-wiki.md +53 -0
  82. package/skills/sps-pipeline/references/operations.md +83 -0
  83. package/skills/sps-pipeline/references/pipeline-yaml.md +84 -0
  84. package/skills/sps-pipeline/references/setup-and-config.md +80 -0
  85. package/skills/visual-rubric/SKILL.md +2 -1
@@ -0,0 +1,69 @@
1
+ # Card State Machine, Lifecycle & Labels
2
+
3
+ 卡片状态机、机器管理的生命周期命令、以及完整标签词表。建卡命令与验收清单写法在主 SKILL.md。
4
+
5
+ ## Card state machine
6
+
7
+ ```
8
+ v0.51.9 起:
9
+
10
+ Backlog → Todo → Inprogress → [QA / Review] → Done
11
+ ↑↓
12
+ Planning(用户手动暂存;不自动派发)
13
+ ↓ fail
14
+ NEEDS-FIX (halt)
15
+ ```
16
+
17
+ Default states (configurable in YAML `pm.card_states`):
18
+
19
+ - **Planning** — v0.51.10+:人工暂存 / 草稿。**console "新卡片" 表单**默认入此状态;用户拖到 Backlog 才会跑。
20
+ - **Backlog** — **`sps card add`(CLI / agent)**默认入此状态;StageEngine 抢卡执行。
21
+ - **Todo** — StageEngine 已 prep(建分支 / worktree),下次 tick 派 worker
22
+ - **Inprogress** — worker active
23
+ - **QA** (or **Review**) — code complete, awaiting human/auto verification
24
+ - **Done** — finished
25
+ - **Canceled** — folded into Done view (rare state)
26
+
27
+ Engines walk this graph each tick. The **active stage** writes a per-slot marker
28
+ file at `~/.coral/projects/<p>/runtime/worker-<slot>-current.json` (v0.50.21+).
29
+ Stop hook reads this to detect which card the worker just finished.
30
+
31
+ ## Where new cards land — depends on caller (v0.51.10+)
32
+
33
+ | 调用方 | 默认入场 state | 行为 |
34
+ |---|---|---|
35
+ | **`sps card add`** (CLI / Worker / agent) | **Backlog** | 下次 tick 立即被 StageEngine 抢卡跑 |
36
+ | **Console "新卡片" 表单** | **Planning** | 暂存;用户在看板拖到 Backlog 才会跑 |
37
+ | **`POST /api/projects/<p>/cards`** 直接调 API | **Planning** | 默认人工语义;body 传 `initialState: 'Backlog'` 立即跑 |
38
+
39
+ **Agent 调 `sps card add` → 卡进 Backlog → 自动跑。** 这是 SPS 的主路径。Worker 在某个卡里需要"派生子任务"时用 `sps card add`,子任务会被下一个 tick 自动 pickup。
40
+
41
+ ## Lifecycle (machine-managed, but you can intervene)
42
+
43
+ ```bash
44
+ sps card mark-started <p> <seq> # called by Claude Code UserPromptSubmit hook
45
+ sps card mark-complete <p> <seq> # called by Claude Code Stop hook
46
+ sps reset <p> # reset all non-Done
47
+ sps reset <p> --card 5,6,7 # reset specific seq
48
+ sps reset <p> --all # full reset incl. Done
49
+ ```
50
+
51
+ 注:`sps reset` 把卡退回 **Planning**(不是 Backlog) — 重置 = 退回人工控制,需手动拖回 Backlog 才会再跑。这是 v0.51.9 起的语义。
52
+
53
+ ## Card label vocabulary
54
+
55
+ | Label | Meaning | Who sets |
56
+ |---|---|---|
57
+ | `AI-PIPELINE` | "SPS pipeline 卡" 的标记(v0.51.9+ 不再触发任何自动行为,仅识别) | `sps card add` 自动加 |
58
+ | `PRIORITY` | 插队 —— 抢卡时排到同队列其它卡之前 | `sps card insert` / reviewer 插修正卡 |
59
+ | `REVIEWED` | 该卡验收清单已被 reviewer 审过(幂等,不重审) | ReviewEngine(`SPS_REVIEW=on`) |
60
+ | `STARTED-<stage>` | ACK signal — Claude received the prompt | UserPromptSubmit hook |
61
+ | `COMPLETED-<stage>` | Worker finished a stage | Stop hook |
62
+ | `CLAIMED` | StageEngine reserved a worker slot | Engine |
63
+ | `NEEDS-FIX` | Worker failed; pipeline halted | Engine |
64
+ | `BLOCKED` | External dep; pipeline skips | User |
65
+ | `WAITING-CONFIRMATION` | Worker waiting on user input | Engine |
66
+ | `STALE-RUNTIME` | Inprogress > timeout | MonitorEngine |
67
+ | `ACK-TIMEOUT` | Claude never ACK'd within `WORKER_ACK_TIMEOUT_S` | MonitorEngine |
68
+ | `skill:<name>` | Force-load specific skill | User on card |
69
+ | `conflict:<domain>` | Serial-with-others-in-same-domain | User |
@@ -0,0 +1,53 @@
1
+ # Web Console & Wiki
2
+
3
+ ## Web Console (`sps console`)
4
+
5
+ Single binary launches the web UI:
6
+
7
+ ```bash
8
+ sps console # opens http://127.0.0.1:4311
9
+ sps console --port 5000
10
+ sps console --no-open
11
+ sps console --kill # stop running console
12
+ sps console --dev # vite dev server (development)
13
+ ```
14
+
15
+ Console listens on `127.0.0.1:4311` by default; opens browser auto. Single-instance
16
+ guard via `~/.coral/console.lock`.
17
+
18
+ Pages:
19
+
20
+ - `/projects` — list, summary cards
21
+ - `/projects/new` — create project (with Wiki toggle, v0.51)
22
+ - `/projects/<n>` — pipeline editor + conf editor + delete
23
+ - `/board` — kanban (with **per-column scrolling**, v0.51.1+)
24
+ - `/workers` — aggregate worker dashboard (all projects)
25
+ - `/logs` — live SSE log viewer
26
+ - `/skills` — user-level skill management
27
+ - `/system` — global settings, daemon status
28
+ - `/chat` — agent chat (multi-session, persistent)
29
+
30
+ ## Wiki (auto-injected into Worker prompts)
31
+
32
+ > **记忆系统重构中**:本地记忆(旧 `sps-memory` skill + `sps memory` CLI)已在 v2 重构里移除;新工具(`memory_*` / `sps memory recall/save`)上线后补。见 `docs/design/memory-v2.md`。
33
+
34
+ **Wiki** (`wiki-update` skill) — structured project knowledge: modules, concepts, decisions, lessons.
35
+
36
+ | | Wiki |
37
+ |---|---|
38
+ | Path | `<repo>/wiki/` (per-project, in repo) |
39
+ | Schema | 5 page types with zod-validated frontmatter |
40
+ | Cross-link | `[[type/Title]]` wikilinks |
41
+ | Auto-inject | `wikiRead` 5-layer → prompt's `wikiContext` section (only when `WIKI_ENABLED=true`) |
42
+
43
+ Enable Wiki at create time for structured knowledge accumulation.
44
+
45
+ CLI helpers:
46
+ ```bash
47
+ sps wiki init <p> # scaffold (auto when WIKI_ENABLED=true)
48
+ sps wiki update <p> # source diff
49
+ sps wiki update <p> --finalize # flush manifest after pages written
50
+ sps wiki check <p> # lint
51
+ sps wiki read <p> "<query>" # preview prompt injection
52
+ sps wiki list/get/add/status # browse / inspect
53
+ ```
@@ -0,0 +1,83 @@
1
+ # Operations: Lifecycle Commands, Worker Control, Logs & Troubleshooting
2
+
3
+ 流水线生命周期命令全集、worker 控制、日志、排障。启动流水线的**核心纪律**(非阻塞)在主 SKILL.md。
4
+
5
+ ## Pipeline lifecycle commands
6
+
7
+ > 🔴 **启动流水线:agent 一律用 `sps pipeline start`(非阻塞,后台起,瞬间返回)。**
8
+ > **绝不要跑 `sps tick`**——那是**前台无限循环**,会把你的终端/回合永久卡死。
9
+
10
+ ```bash
11
+ # ✅ 启动(非阻塞,后台跑,瞬回)—— agent / 脚本用这个
12
+ sps pipeline start <project> # detached 后台起 tick,立即返回 pid;看日志:sps logs <p> --no-follow
13
+ # ⚠️ 前台跟着看(阻塞,只给人在终端用,agent 别用)
14
+ sps tick <project> # foreground 无限循环 — Ctrl+C to stop
15
+ sps pipeline stop <project> # graceful stop
16
+ sps stop <project> # CLI alias for stop
17
+ sps stop --all # stop all running ticks
18
+
19
+ # Status
20
+ sps status # all projects
21
+ sps pipeline status # alias
22
+ sps doctor <project> # health check
23
+ sps doctor <project> --fix # auto-repair drift
24
+
25
+ # One-off ticks (each engine separately, useful for cron / debugging)
26
+ sps scheduler tick <p> # v0.51.9 起为 no-op(dormant,保留接口)
27
+ sps pipeline tick <p> # full StageEngine pass
28
+ sps qa tick <p> # QA → Done finalization
29
+ sps monitor tick <p> # health probe (ACK timeout, stale runtime)
30
+ sps pm scan <p> # rebuild card index from disk
31
+ ```
32
+
33
+ ## Worker control
34
+
35
+ ```bash
36
+ sps worker ps <project> # list slots + PIDs
37
+ sps worker dashboard <project> # rich UI (also in console)
38
+ sps worker kill <project> <seq> # SIGKILL one slot
39
+ sps worker launch <project> <seq> # manual spawn (debugging)
40
+ ```
41
+
42
+ ## Logs
43
+
44
+ ```bash
45
+ sps logs <project> # follow mode (default)
46
+ sps logs <project> --err # stderr only
47
+ sps logs <project> --lines 50 --no-follow
48
+ # console: /logs?project=<name> (live SSE)
49
+ ```
50
+
51
+ ## Troubleshooting
52
+
53
+ ```bash
54
+ sps doctor <project> --fix # ★ first thing to try
55
+ sps logs <project> --err # stderr / errors
56
+ sps reset <project> --card <seq> # nuke a stuck card
57
+ sps reset <project> --all # full project reset (worktrees, branches, state)
58
+
59
+ # Worker / daemon issues
60
+ sps worker ps <project>
61
+ sps agent daemon status # is the chat daemon up?
62
+ sps agent daemon stop && sps agent daemon start # restart daemon (clears stale cwd)
63
+
64
+ # Wiki issues (v0.51+)
65
+ sps wiki check <project> # lint
66
+ sps wiki status <project> # source / manifest / pages diff
67
+ ```
68
+
69
+ Common issues:
70
+
71
+ - **Pipeline halted with NEEDS-FIX** — open the failed card, fix the issue, remove
72
+ the label. Console makes this 2 clicks.
73
+ - **Worker not starting** — `sps worker ps`, then check `sps logs --err`. Often
74
+ Claude API key missing or `claude-agent-acp` adapter not installed (`sps setup`
75
+ reinstalls it).
76
+ - **Cards stuck in Planning (v0.51.9+)** — Planning 是人工暂存。**Console 表单建卡默认到这里**,需手动拖到 Backlog 派发。Agent / `sps card add` 默认进 Backlog 自动跑(不会卡在 Planning)。
77
+ - **ACK timeout on every card** — Claude cold-start is slow with many skills/memory
78
+ files. Raise `WORKER_ACK_TIMEOUT_S` in conf (default 300s as of v0.50.24).
79
+ - **Console shows stale data** — SSE may have dropped; reload page; if persistent,
80
+ `sps console --kill && sps console`.
81
+ - **Wiki context not injecting** — verify `WIKI_ENABLED=true` in conf and
82
+ `wiki/WIKI.md` exists. StageEngine logs a warning if conf says yes but scaffold
83
+ is missing.
@@ -0,0 +1,84 @@
1
+ # Pipeline YAML Reference
2
+
3
+ **Location**: `~/.coral/projects/<name>/pipelines/project.yaml`
4
+
5
+ **Single source of truth** for stages, profiles, transitions. Edit this file (or in
6
+ console at `/projects/<name>` pipeline editor) to customize.
7
+
8
+ ## Critical YAML rules
9
+
10
+ 1. **`mode: project`** — orchestrate cards through states. (`mode: steps` is for
11
+ one-shot custom pipelines via `sps pipeline run <name>`.)
12
+ 2. **`on_complete` of each stage points to the next stage's target state.** No
13
+ skipping, no looping.
14
+ 3. **Last stage's `on_complete: "move_card Done"`.**
15
+ 4. **Don't write `agent:` field** — it's accepted for back-compat but ignored.
16
+ Claude (via ACP) is the only supported worker as of v0.38.0.
17
+ 5. **Single worker, serial execution** — set `MAX_CONCURRENT_WORKERS` in conf if
18
+ you want >1 slot reserved, but cards still run one at a time.
19
+ 6. **Failure halts pipeline** by default (`on_fail.halt: true`). Worker labels card
20
+ `NEEDS-FIX`; user must resolve before next card runs.
21
+
22
+ ## Templates
23
+
24
+ **Simple (1 stage):**
25
+ ```yaml
26
+ mode: project
27
+ git: true
28
+ stages:
29
+ - name: develop
30
+ on_complete: "move_card Done"
31
+ on_fail:
32
+ action: "label NEEDS-FIX"
33
+ halt: true
34
+ ```
35
+
36
+ **With review (2 stages):**
37
+ ```yaml
38
+ mode: project
39
+ git: true
40
+ stages:
41
+ - name: develop
42
+ profile: fullstack
43
+ on_complete: "move_card Review"
44
+ on_fail: { action: "label NEEDS-FIX", halt: true }
45
+ - name: review
46
+ profile: reviewer
47
+ on_complete: "move_card Done"
48
+ on_fail: { action: "label REVIEW-FAILED", halt: true }
49
+ ```
50
+
51
+ **Non-git (data / docs project):**
52
+ ```yaml
53
+ mode: project
54
+ git: false
55
+ stages:
56
+ - name: process
57
+ profile: tax-worker
58
+ on_complete: "move_card Done"
59
+ on_fail: { action: "label PROCESS-FAILED", halt: true }
60
+ ```
61
+
62
+ ## YAML field reference
63
+
64
+ | Field | Required | Notes |
65
+ |---|---|---|
66
+ | `mode` | yes | `project` (state machine) or `steps` (one-shot, run via `sps pipeline run`) |
67
+ | `git` | no | `true` (default) — worker commits + pushes / `false` — no git ops |
68
+ | `stages` | yes | Array |
69
+ | `stages[].name` | yes | Unique within file |
70
+ | `stages[].profile` | no | Skill profile (e.g. `fullstack` / `reviewer` / `tax-worker`); falls back to `DEFAULT_WORKER_SKILLS` in conf |
71
+ | `stages[].on_complete` | yes | `"move_card <NextState>"` |
72
+ | `stages[].on_fail.action` | no | `"label NEEDS-FIX"` etc. |
73
+ | `stages[].on_fail.halt` | no | default `true` |
74
+ | `stages[].on_fail.comment` | no | Comment text |
75
+ | `stages[].timeout` | no | `30s` / `5m` / `2h` (rare) |
76
+
77
+ `trigger` and `card_state` are auto-derived per stage from the position. Don't set
78
+ manually.
79
+
80
+ ## Custom pipelines (mode: steps)
81
+
82
+ For one-shot scripted runs (e.g. canary deploy, bulk ingest), use `mode: steps` and
83
+ invoke via `sps pipeline run <pipeline-name> "<prompt>"`. Out of scope for normal
84
+ card pipelines; see `sample.yaml.example` for syntax.
@@ -0,0 +1,80 @@
1
+ # Setup & Config Reference
2
+
3
+ 首次安装、`sps setup` 做了什么、项目建出来的目录结构、以及 conf 全字段参考。
4
+
5
+ ## First-time setup
6
+
7
+ ```bash
8
+ npm install -g @coralai/sps-cli # latest
9
+ sps setup # ⭐ MUST RUN: interactive wizard
10
+ ```
11
+
12
+ `sps setup` does:
13
+
14
+ 1. Creates `~/.coral/` directory tree (`projects/`, `memory/user/`, `memory/agents/`).
15
+ 2. Copies bundled skills → `~/.coral/skills/`.
16
+ 3. Interactively writes `~/.coral/env` (Git remote token, Matrix credentials, etc.).
17
+ 4. Symlinks user skills → `~/.coral/.claude/skills/` and `~/.claude/skills/`.
18
+ 5. Installs `@agentclientprotocol/claude-agent-acp` globally if missing.
19
+
20
+ Re-run safe: `sps setup --force` keeps existing values as defaults.
21
+
22
+ **No separate console config** — Console reads `~/.coral/env` + per-project conf.
23
+
24
+ ## What a project looks like on disk
25
+
26
+ ```
27
+ ~/.coral/projects/<name>/
28
+ ├── conf # your active settings (private, mode 600)
29
+ ├── conf.example # full reference with comments (read-only docs)
30
+ ├── pipelines/
31
+ │ ├── project.yaml # default 1-stage pipeline (develop → Done)
32
+ │ └── sample.yaml.example # heavily-commented YAML reference
33
+ ├── pipeline_order.json # active pipeline pointer
34
+ ├── runtime/
35
+ │ ├── state.json # worker slot + active card state (machine-managed)
36
+ │ └── tick.lock # lock file
37
+ ├── logs/ # per-tick logs
38
+ ├── pm_meta/ # markdown card backend metadata
39
+ └── cards/ # state subdirs created on first use
40
+ └── seq.txt
41
+ ```
42
+
43
+ Plus, in the **target repo** (PROJECT_DIR):
44
+
45
+ - `.claude/CLAUDE.md` — worker rules + (if wiki=on) wiki SOP block
46
+ - `.claude/skills/` — symlinked from `~/.coral/skills/`
47
+ - `.claude/settings.local.json` — Claude Code local config
48
+ - `wiki/` (if wiki=on) — knowledge base scaffold
49
+ - `ATTRIBUTION.md` (if wiki=on) — borrows declaration
50
+
51
+ ## Conf reference (essentials)
52
+
53
+ Live at `~/.coral/projects/<name>/conf` (shell `export VAR="value"` syntax).
54
+
55
+ | Field | Default | Notes |
56
+ |---|---|---|
57
+ | `PROJECT_NAME` | (required) | Internal id |
58
+ | `PROJECT_DIR` | (required) | Repo absolute path |
59
+ | `GITLAB_PROJECT` | — | `user/repo` (optional, for GitLab API) |
60
+ | `GITLAB_MERGE_BRANCH` | `main` | Worker pushes here |
61
+ | `PM_TOOL` | `markdown` | **Only `markdown` supported as of v0.42.0**. Plane/Trello removed. Cards live in `~/.coral/projects/<n>/cards/<state>/<seq>.md` |
62
+ | `PIPELINE_LABEL` | `AI-PIPELINE` | Marker label auto-added by `sps card add` — identifies SPS-managed cards. v0.51.9+ 不再触发自动状态提升(卡按入场 state 决定是否跑) |
63
+ | `MR_MODE` | `none` | `none` (push direct) / `create` (open MR; needs `GITLAB_PROJECT_ID`) |
64
+ | `WORKER_TRANSPORT` | `acp-sdk` | Fixed; do not change |
65
+ | `MAX_CONCURRENT_WORKERS` | `1` | Slot count; cards still serial within a project |
66
+ | `MAX_ACTIONS_PER_TICK` | `3` | New tasks claimable per tick |
67
+ | `INPROGRESS_TIMEOUT_HOURS` | `2` | After this, MonitorEngine flags STALE-RUNTIME |
68
+ | `WORKER_ACK_TIMEOUT_S` | `300` | Wait for STARTED-<stage> label after dispatch (5min, raised in v0.50.24) |
69
+ | `WORKER_ACK_MAX_RETRIES` | `1` | ACK timeout retry count |
70
+ | `MONITOR_AUTO_QA` | `true` | Auto-advance to QA on stale runtime |
71
+ | `SPS_REVIEW` | unset (off) | `on` 开清单验收:卡带 `## 检查清单` → worker 完成后独立 reviewer 逐条审 → 全过留 Done / 有不过自动插修正卡。见主 SKILL.md「验收清单」 |
72
+ | `CONFLICT_DEFAULT` | `serial` | Fallback for cards without `conflict:` label |
73
+ | `MATRIX_ROOM_ID` | — | Project-level Matrix override |
74
+ | `WORKTREE_DIR` | `~/.coral/worktrees/<p>` | Worker scratch space |
75
+ | `DEFAULT_WORKER_SKILLS` | — | Comma-separated skill list when no `profile:` and no `card.skills` |
76
+ | `ENABLE_MEMORY` | `true` | Set `false` to skip memory write instructions in prompt |
77
+ | `WIKI_ENABLED` | unset (off) | **v0.51+**: `true` enables wiki context injection + reminder block |
78
+ | `COMPLETION_SIGNAL` | `done` | Word the Stop hook listens for |
79
+
80
+ Full reference: `~/.coral/projects/<n>/conf.example` (auto-generated, comment-rich).
@@ -1,8 +1,9 @@
1
1
  ---
2
2
  name: visual-rubric
3
3
  description: 审核视觉评分卡——按"当前任务该看到什么"分阶段评判游戏截图,避免对早期框架任务强求"实战可玩"导致死循环。
4
+ category: review
4
5
  audience: reviewer
5
- tags: [reviewer, visual]
6
+ tags: [game]
6
7
  ---
7
8
 
8
9
  # 视觉评分卡(游戏类,截图评审专用)