@coralai/sps-cli 0.34.0 → 0.34.1
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/dist/commands/acpCommand.d.ts.map +1 -1
- package/dist/commands/acpCommand.js +21 -1
- package/dist/commands/acpCommand.js.map +1 -1
- package/dist/commands/agentCommand.d.ts.map +1 -1
- package/dist/commands/agentCommand.js +25 -15
- package/dist/commands/agentCommand.js.map +1 -1
- package/dist/commands/agentDaemon.d.ts.map +1 -1
- package/dist/commands/agentDaemon.js +19 -2
- package/dist/commands/agentDaemon.js.map +1 -1
- package/dist/commands/agentRenderer.d.ts.map +1 -1
- package/dist/commands/agentRenderer.js +18 -3
- package/dist/commands/agentRenderer.js.map +1 -1
- package/dist/commands/cardAdd.d.ts.map +1 -1
- package/dist/commands/cardAdd.js +22 -2
- package/dist/commands/cardAdd.js.map +1 -1
- package/dist/commands/cardDashboard.d.ts.map +1 -1
- package/dist/commands/cardDashboard.js +23 -3
- package/dist/commands/cardDashboard.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +35 -69
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +18 -8
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/monitorTick.d.ts.map +1 -1
- package/dist/commands/monitorTick.js +23 -3
- package/dist/commands/monitorTick.js.map +1 -1
- package/dist/commands/pipelineRunner.d.ts.map +1 -1
- package/dist/commands/pipelineRunner.js +21 -7
- package/dist/commands/pipelineRunner.js.map +1 -1
- package/dist/commands/pipelineTick.d.ts.map +1 -1
- package/dist/commands/pipelineTick.js +6 -6
- package/dist/commands/pipelineTick.js.map +1 -1
- package/dist/commands/pmCommand.d.ts.map +1 -1
- package/dist/commands/pmCommand.js +21 -1
- package/dist/commands/pmCommand.js.map +1 -1
- package/dist/commands/projectInit.d.ts.map +1 -1
- package/dist/commands/projectInit.js +22 -2
- package/dist/commands/projectInit.js.map +1 -1
- package/dist/commands/qaTick.d.ts.map +1 -1
- package/dist/commands/qaTick.js +6 -6
- package/dist/commands/qaTick.js.map +1 -1
- package/dist/commands/reset.d.ts.map +1 -1
- package/dist/commands/reset.js +21 -25
- package/dist/commands/reset.js.map +1 -1
- package/dist/commands/schedulerTick.d.ts.map +1 -1
- package/dist/commands/schedulerTick.js +23 -3
- package/dist/commands/schedulerTick.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +68 -30
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +20 -7
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +19 -14
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/tick.d.ts.map +1 -1
- package/dist/commands/tick.js +8 -8
- package/dist/commands/tick.js.map +1 -1
- package/dist/commands/workerDashboard.d.ts.map +1 -1
- package/dist/commands/workerDashboard.js +23 -3
- package/dist/commands/workerDashboard.js.map +1 -1
- package/dist/commands/workerLaunch.d.ts.map +1 -1
- package/dist/commands/workerLaunch.js +6 -6
- package/dist/commands/workerLaunch.js.map +1 -1
- package/dist/commands/workerPs.d.ts +0 -4
- package/dist/commands/workerPs.d.ts.map +1 -1
- package/dist/commands/workerPs.js +22 -6
- package/dist/commands/workerPs.js.map +1 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +17 -2
- package/dist/core/config.js.map +1 -1
- package/dist/core/config.test.js +19 -4
- package/dist/core/config.test.js.map +1 -1
- package/dist/core/context.d.ts +15 -0
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +15 -0
- package/dist/core/context.js.map +1 -1
- package/dist/core/lock.d.ts.map +1 -1
- package/dist/core/lock.js +17 -10
- package/dist/core/lock.js.map +1 -1
- package/dist/core/lock.test.js +18 -3
- package/dist/core/lock.test.js.map +1 -1
- package/dist/core/logger.d.ts.map +1 -1
- package/dist/core/logger.js +16 -1
- package/dist/core/logger.js.map +1 -1
- package/dist/core/memory.d.ts +11 -12
- package/dist/core/memory.d.ts.map +1 -1
- package/dist/core/memory.js +13 -14
- package/dist/core/memory.js.map +1 -1
- package/dist/core/paths.d.ts +0 -1
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/core/paths.js +16 -4
- package/dist/core/paths.js.map +1 -1
- package/dist/core/pipelineConfig.d.ts +6 -4
- package/dist/core/pipelineConfig.d.ts.map +1 -1
- package/dist/core/pipelineConfig.js +67 -30
- package/dist/core/pipelineConfig.js.map +1 -1
- package/dist/core/projectPipelineAdapter.d.ts +3 -3
- package/dist/core/projectPipelineAdapter.d.ts.map +1 -1
- package/dist/core/projectPipelineAdapter.js +41 -24
- package/dist/core/projectPipelineAdapter.js.map +1 -1
- package/dist/core/queue.d.ts.map +1 -1
- package/dist/core/queue.js +16 -1
- package/dist/core/queue.js.map +1 -1
- package/dist/core/queue.test.js +19 -4
- package/dist/core/queue.test.js.map +1 -1
- package/dist/core/runtimeSnapshot.d.ts +1 -1
- package/dist/core/runtimeSnapshot.d.ts.map +1 -1
- package/dist/core/runtimeSnapshot.js +18 -3
- package/dist/core/runtimeSnapshot.js.map +1 -1
- package/dist/core/runtimeStore.d.ts +1 -1
- package/dist/core/runtimeStore.d.ts.map +1 -1
- package/dist/core/runtimeStore.js +15 -0
- package/dist/core/runtimeStore.js.map +1 -1
- package/dist/core/sessionContext.d.ts +1 -1
- package/dist/core/sessionContext.d.ts.map +1 -1
- package/dist/core/sessionContext.js +12 -3
- package/dist/core/sessionContext.js.map +1 -1
- package/dist/core/sessionLiveness.d.ts +17 -1
- package/dist/core/sessionLiveness.d.ts.map +1 -1
- package/dist/core/sessionLiveness.js +2 -11
- package/dist/core/sessionLiveness.js.map +1 -1
- package/dist/core/shellEnv.d.ts +15 -0
- package/dist/core/shellEnv.d.ts.map +1 -1
- package/dist/core/shellEnv.js +13 -3
- package/dist/core/shellEnv.js.map +1 -1
- package/dist/core/shellEnv.test.js +19 -4
- package/dist/core/shellEnv.test.js.map +1 -1
- package/dist/core/state.d.ts +1 -1
- package/dist/core/state.d.ts.map +1 -1
- package/dist/core/state.js +16 -1
- package/dist/core/state.js.map +1 -1
- package/dist/core/state.test.js +19 -4
- package/dist/core/state.test.js.map +1 -1
- package/dist/core/taskPrompts.d.ts +15 -8
- package/dist/core/taskPrompts.d.ts.map +1 -1
- package/dist/core/taskPrompts.js +0 -37
- package/dist/core/taskPrompts.js.map +1 -1
- package/dist/core/workerRuntimeSummary.d.ts.map +1 -1
- package/dist/core/workerRuntimeSummary.js +15 -0
- package/dist/core/workerRuntimeSummary.js.map +1 -1
- package/dist/daemon/daemonClient.d.ts +16 -1
- package/dist/daemon/daemonClient.d.ts.map +1 -1
- package/dist/daemon/daemonClient.js +13 -4
- package/dist/daemon/daemonClient.js.map +1 -1
- package/dist/daemon/sessionDaemon.d.ts +15 -0
- package/dist/daemon/sessionDaemon.d.ts.map +1 -1
- package/dist/daemon/sessionDaemon.js +12 -8
- package/dist/daemon/sessionDaemon.js.map +1 -1
- package/dist/engines/EventHandler.d.ts +18 -9
- package/dist/engines/EventHandler.d.ts.map +1 -1
- package/dist/engines/EventHandler.js +18 -0
- package/dist/engines/EventHandler.js.map +1 -1
- package/dist/engines/MonitorEngine.d.ts +21 -4
- package/dist/engines/MonitorEngine.d.ts.map +1 -1
- package/dist/engines/MonitorEngine.js +18 -2
- package/dist/engines/MonitorEngine.js.map +1 -1
- package/dist/engines/SchedulerEngine.d.ts +20 -2
- package/dist/engines/SchedulerEngine.d.ts.map +1 -1
- package/dist/engines/SchedulerEngine.js +20 -2
- package/dist/engines/SchedulerEngine.js.map +1 -1
- package/dist/engines/StageEngine.d.ts +22 -4
- package/dist/engines/StageEngine.d.ts.map +1 -1
- package/dist/engines/StageEngine.js +23 -13
- package/dist/engines/StageEngine.js.map +1 -1
- package/dist/engines/engine-pipeline-adapter.test.d.ts +15 -0
- package/dist/engines/engine-pipeline-adapter.test.d.ts.map +1 -1
- package/dist/engines/engine-pipeline-adapter.test.js +19 -11
- package/dist/engines/engine-pipeline-adapter.test.js.map +1 -1
- package/dist/interfaces/ACPClient.d.ts +16 -1
- package/dist/interfaces/ACPClient.d.ts.map +1 -1
- package/dist/interfaces/ACPClient.js +15 -0
- package/dist/interfaces/ACPClient.js.map +1 -1
- package/dist/interfaces/AgentRuntime.d.ts +16 -1
- package/dist/interfaces/AgentRuntime.d.ts.map +1 -1
- package/dist/interfaces/AgentRuntime.js +15 -0
- package/dist/interfaces/AgentRuntime.js.map +1 -1
- package/dist/interfaces/Notifier.d.ts +15 -0
- package/dist/interfaces/Notifier.d.ts.map +1 -1
- package/dist/interfaces/Notifier.js +15 -0
- package/dist/interfaces/Notifier.js.map +1 -1
- package/dist/interfaces/RepoBackend.d.ts +15 -0
- package/dist/interfaces/RepoBackend.d.ts.map +1 -1
- package/dist/interfaces/RepoBackend.js +15 -0
- package/dist/interfaces/RepoBackend.js.map +1 -1
- package/dist/interfaces/TaskBackend.d.ts +15 -0
- package/dist/interfaces/TaskBackend.d.ts.map +1 -1
- package/dist/interfaces/TaskBackend.js +15 -0
- package/dist/interfaces/TaskBackend.js.map +1 -1
- package/dist/main.d.ts +15 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +40 -26
- package/dist/main.js.map +1 -1
- package/dist/manager/completion-judge.d.ts +15 -0
- package/dist/manager/completion-judge.d.ts.map +1 -1
- package/dist/manager/completion-judge.js +14 -5
- package/dist/manager/completion-judge.js.map +1 -1
- package/dist/manager/completion-judge.test.d.ts +15 -0
- package/dist/manager/completion-judge.test.d.ts.map +1 -1
- package/dist/manager/completion-judge.test.js +19 -4
- package/dist/manager/completion-judge.test.js.map +1 -1
- package/dist/manager/integration-queue.d.ts +11 -5
- package/dist/manager/integration-queue.d.ts.map +1 -1
- package/dist/manager/integration-queue.js +11 -5
- package/dist/manager/integration-queue.js.map +1 -1
- package/dist/manager/integration-queue.test.d.ts +15 -0
- package/dist/manager/integration-queue.test.d.ts.map +1 -1
- package/dist/manager/integration-queue.test.js +18 -3
- package/dist/manager/integration-queue.test.js.map +1 -1
- package/dist/manager/pm-client.d.ts.map +1 -1
- package/dist/manager/pm-client.js +12 -5
- package/dist/manager/pm-client.js.map +1 -1
- package/dist/manager/resource-limiter.d.ts.map +1 -1
- package/dist/manager/resource-limiter.js +12 -3
- package/dist/manager/resource-limiter.js.map +1 -1
- package/dist/manager/resource-limiter.test.d.ts +15 -0
- package/dist/manager/resource-limiter.test.d.ts.map +1 -1
- package/dist/manager/resource-limiter.test.js +16 -1
- package/dist/manager/resource-limiter.test.js.map +1 -1
- package/dist/manager/runtime-coordinator.d.ts +15 -0
- package/dist/manager/runtime-coordinator.d.ts.map +1 -1
- package/dist/manager/runtime-coordinator.js +18 -3
- package/dist/manager/runtime-coordinator.js.map +1 -1
- package/dist/manager/supervisor.d.ts +13 -5
- package/dist/manager/supervisor.d.ts.map +1 -1
- package/dist/manager/supervisor.js +2 -2
- package/dist/manager/supervisor.js.map +1 -1
- package/dist/manager/supervisor.test.d.ts +15 -0
- package/dist/manager/supervisor.test.d.ts.map +1 -1
- package/dist/manager/supervisor.test.js +17 -2
- package/dist/manager/supervisor.test.js.map +1 -1
- package/dist/manager/worker-manager-impl.d.ts +4 -4
- package/dist/manager/worker-manager-impl.d.ts.map +1 -1
- package/dist/manager/worker-manager-impl.js +12 -6
- package/dist/manager/worker-manager-impl.js.map +1 -1
- package/dist/manager/worker-manager-impl.test.d.ts +15 -0
- package/dist/manager/worker-manager-impl.test.d.ts.map +1 -1
- package/dist/manager/worker-manager-impl.test.js +20 -5
- package/dist/manager/worker-manager-impl.test.js.map +1 -1
- package/dist/manager/worker-manager.d.ts +11 -6
- package/dist/manager/worker-manager.d.ts.map +1 -1
- package/dist/manager/worker-manager.js +11 -6
- package/dist/manager/worker-manager.js.map +1 -1
- package/dist/models/acp.d.ts +15 -0
- package/dist/models/acp.d.ts.map +1 -1
- package/dist/models/acp.js +15 -0
- package/dist/models/acp.js.map +1 -1
- package/dist/models/types.d.ts +15 -0
- package/dist/models/types.d.ts.map +1 -1
- package/dist/models/types.js +15 -0
- package/dist/models/types.js.map +1 -1
- package/dist/providers/ACPWorkerRuntime.d.ts +2 -2
- package/dist/providers/ACPWorkerRuntime.d.ts.map +1 -1
- package/dist/providers/ACPWorkerRuntime.js.map +1 -1
- package/dist/providers/GitLabRepoBackend.d.ts +0 -4
- package/dist/providers/GitLabRepoBackend.d.ts.map +1 -1
- package/dist/providers/GitLabRepoBackend.js +15 -4
- package/dist/providers/GitLabRepoBackend.js.map +1 -1
- package/dist/providers/LocalACPClient.d.ts +15 -0
- package/dist/providers/LocalACPClient.d.ts.map +1 -1
- package/dist/providers/LocalACPClient.js.map +1 -1
- package/dist/providers/MarkdownTaskBackend.d.ts.map +1 -1
- package/dist/providers/MarkdownTaskBackend.js +17 -2
- package/dist/providers/MarkdownTaskBackend.js.map +1 -1
- package/dist/providers/MatrixNotifier.d.ts +15 -0
- package/dist/providers/MatrixNotifier.d.ts.map +1 -1
- package/dist/providers/MatrixNotifier.js.map +1 -1
- package/dist/providers/PlaneTaskBackend.d.ts +0 -6
- package/dist/providers/PlaneTaskBackend.d.ts.map +1 -1
- package/dist/providers/PlaneTaskBackend.js +15 -6
- package/dist/providers/PlaneTaskBackend.js.map +1 -1
- package/dist/providers/TrelloTaskBackend.d.ts +15 -7
- package/dist/providers/TrelloTaskBackend.d.ts.map +1 -1
- package/dist/providers/TrelloTaskBackend.js +0 -8
- package/dist/providers/TrelloTaskBackend.js.map +1 -1
- package/dist/providers/adapters/AcpSdkAdapter.d.ts +1 -1
- package/dist/providers/adapters/AcpSdkAdapter.d.ts.map +1 -1
- package/dist/providers/adapters/AcpSdkAdapter.js +32 -32
- package/dist/providers/adapters/AcpSdkAdapter.js.map +1 -1
- package/dist/providers/adapters/acp-fs-handlers.d.ts.map +1 -1
- package/dist/providers/adapters/acp-fs-handlers.js +13 -4
- package/dist/providers/adapters/acp-fs-handlers.js.map +1 -1
- package/dist/providers/adapters/acp-fs-handlers.test.js +17 -2
- package/dist/providers/adapters/acp-fs-handlers.test.js.map +1 -1
- package/dist/providers/adapters/acp-permissions.d.ts +12 -5
- package/dist/providers/adapters/acp-permissions.d.ts.map +1 -1
- package/dist/providers/adapters/acp-permissions.js +12 -5
- package/dist/providers/adapters/acp-permissions.js.map +1 -1
- package/dist/providers/adapters/acp-permissions.test.js +17 -2
- package/dist/providers/adapters/acp-permissions.test.js.map +1 -1
- package/dist/providers/adapters/acp-session-accumulator.d.ts.map +1 -1
- package/dist/providers/adapters/acp-session-accumulator.js +12 -4
- package/dist/providers/adapters/acp-session-accumulator.js.map +1 -1
- package/dist/providers/adapters/acp-session-accumulator.test.js +16 -1
- package/dist/providers/adapters/acp-session-accumulator.test.js.map +1 -1
- package/dist/providers/adapters/acp-terminal-manager.d.ts.map +1 -1
- package/dist/providers/adapters/acp-terminal-manager.js +12 -3
- package/dist/providers/adapters/acp-terminal-manager.js.map +1 -1
- package/dist/providers/adapters/acp-terminal-manager.test.js +16 -1
- package/dist/providers/adapters/acp-terminal-manager.test.js.map +1 -1
- package/dist/providers/outputParser.d.ts +16 -1
- package/dist/providers/outputParser.d.ts.map +1 -1
- package/dist/providers/outputParser.js +14 -3
- package/dist/providers/outputParser.js.map +1 -1
- package/dist/providers/outputParser.test.js +19 -4
- package/dist/providers/outputParser.test.js.map +1 -1
- package/dist/providers/registry.d.ts +19 -4
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +4 -4
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/streamRenderer.d.ts +13 -1
- package/dist/providers/streamRenderer.d.ts.map +1 -1
- package/dist/providers/streamRenderer.js +13 -1
- package/dist/providers/streamRenderer.js.map +1 -1
- package/dist/test-setup.js +12 -3
- package/dist/test-setup.js.map +1 -1
- package/package.json +4 -3
- package/skills/dev-worker/SKILL.md +40 -0
- package/skills/sps-pipeline/SKILL.md +273 -0
- package/profiles/_template.md +0 -48
- package/profiles/critic.md +0 -35
- /package/{profiles → skills/dev-worker/references}/architect.md +0 -0
- /package/{profiles → skills/dev-worker/references}/backend.md +0 -0
- /package/{profiles → skills/dev-worker/references}/frontend.md +0 -0
- /package/{profiles → skills/dev-worker/references}/fullstack.md +0 -0
- /package/{profiles → skills/dev-worker/references}/optimizer.md +0 -0
- /package/{profiles → skills/dev-worker/references}/phaser.md +0 -0
- /package/{profiles → skills/dev-worker/references}/prototyper.md +0 -0
- /package/{profiles → skills/dev-worker/references}/reviewer.md +0 -0
- /package/{profiles → skills/dev-worker/references}/security.md +0 -0
- /package/{profiles → skills/dev-worker/references}/senior.md +0 -0
- /package/{profiles → skills/dev-worker/references}/typescript.md +0 -0
- /package/{profiles → skills/dev-worker/references}/writer.md +0 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sps-pipeline
|
|
3
|
+
description: |
|
|
4
|
+
SPS pipeline management — create YAML configs, manage task cards, start/stop pipelines,
|
|
5
|
+
memory system, and monitor worker status. Use when asked to "create a pipeline", "set up a project",
|
|
6
|
+
"add tasks", "start the pipeline", "check pipeline status", or manage SPS workflow.
|
|
7
|
+
Proactively use when the user discusses project setup, task planning, or CI/CD automation. (🪸 Coral SPS)
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# SPS Pipeline Management (v0.34.0)
|
|
11
|
+
|
|
12
|
+
Manage the full lifecycle of SPS development pipelines: project setup, YAML configuration, task cards, memory system, and pipeline execution.
|
|
13
|
+
|
|
14
|
+
## Interactive Pipeline Creation
|
|
15
|
+
|
|
16
|
+
When the user asks to create a pipeline, set up a project, or configure YAML, follow this guided flow:
|
|
17
|
+
|
|
18
|
+
### Step 1: Gather project info
|
|
19
|
+
|
|
20
|
+
Ask the user:
|
|
21
|
+
1. **项目名称** — 用于 SPS 内部标识(如 `my-app`)
|
|
22
|
+
2. **代码仓库路径** — 本地路径(如 `~/projects/my-app`)
|
|
23
|
+
3. **Git 远程仓库** — GitLab/GitHub 项目路径(如 `user/my-app`),留空则跳过
|
|
24
|
+
4. **合并目标分支** — 默认 `main`
|
|
25
|
+
5. **PM 后端** — `markdown`(本地文件,零配置)/ `plane` / `trello`
|
|
26
|
+
|
|
27
|
+
### Step 2: Design the pipeline stages
|
|
28
|
+
|
|
29
|
+
Ask the user:
|
|
30
|
+
1. **你的开发流程有几个阶段?** 常见选择:
|
|
31
|
+
- **简单**(1 stage):开发完直接 Done
|
|
32
|
+
- **标准**(2 stages):开发 → 合并
|
|
33
|
+
- **完整**(3+ stages):开发 → Code Review → 测试 → 合并
|
|
34
|
+
2. **每个阶段用什么 Agent?** — `claude`(默认)/ `codex` / `gemini`
|
|
35
|
+
3. **需要什么 skill profile?** — 如 `frontend`、`backend`、`phaser`(可选,留空用默认)
|
|
36
|
+
4. **最大并发 Worker 数?** — 默认 `1`
|
|
37
|
+
|
|
38
|
+
### Step 3: Generate and deploy
|
|
39
|
+
|
|
40
|
+
Based on the answers:
|
|
41
|
+
1. Run `sps project init <name>` if project doesn't exist
|
|
42
|
+
2. Generate the pipeline YAML file at `<repo>/.sps/pipelines/project.yaml`
|
|
43
|
+
3. Update project conf at `~/.coral/projects/<name>/conf`
|
|
44
|
+
4. Run `sps doctor <name> --fix` to validate
|
|
45
|
+
5. Show the user the generated YAML and explain each section
|
|
46
|
+
|
|
47
|
+
### Pipeline YAML location
|
|
48
|
+
|
|
49
|
+
The YAML file goes in the **project repository** (not ~/.coral/):
|
|
50
|
+
```
|
|
51
|
+
<project-repo>/
|
|
52
|
+
└── .sps/
|
|
53
|
+
└── pipelines/
|
|
54
|
+
└── project.yaml ← pipeline definition
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
`.sps/` should be in `.gitignore` (sps doctor --fix handles this automatically).
|
|
58
|
+
|
|
59
|
+
### Example conversation
|
|
60
|
+
|
|
61
|
+
User: "帮我创建一个新项目的 pipeline"
|
|
62
|
+
|
|
63
|
+
Agent flow:
|
|
64
|
+
1. Ask project name and repo path
|
|
65
|
+
2. Ask how many stages they want
|
|
66
|
+
3. Ask agent preference
|
|
67
|
+
4. Generate YAML + conf
|
|
68
|
+
5. Run doctor to validate
|
|
69
|
+
6. Show next steps (add cards, start pipeline)
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Quick Reference
|
|
74
|
+
|
|
75
|
+
### Project Setup
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# Install SPS CLI
|
|
79
|
+
npm install -g @coralai/sps-cli
|
|
80
|
+
|
|
81
|
+
# Initial setup (creates directories, installs skills, configures credentials)
|
|
82
|
+
sps setup
|
|
83
|
+
|
|
84
|
+
# Initialize a new project
|
|
85
|
+
sps project init <project-name>
|
|
86
|
+
|
|
87
|
+
# Edit project config
|
|
88
|
+
vim ~/.coral/projects/<project-name>/conf
|
|
89
|
+
|
|
90
|
+
# Health check
|
|
91
|
+
sps doctor <project-name> --fix
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Pipeline YAML Configuration
|
|
95
|
+
|
|
96
|
+
Create `.sps/pipelines/<name>.yaml` in the project repo. Minimum viable config (1 stage):
|
|
97
|
+
|
|
98
|
+
```yaml
|
|
99
|
+
mode: project
|
|
100
|
+
|
|
101
|
+
states:
|
|
102
|
+
backlog: Backlog
|
|
103
|
+
ready: Todo
|
|
104
|
+
done: Done
|
|
105
|
+
|
|
106
|
+
stages:
|
|
107
|
+
- name: develop
|
|
108
|
+
trigger: "card_enters 'Todo'"
|
|
109
|
+
card_state: Inprogress
|
|
110
|
+
agent: claude
|
|
111
|
+
completion: git-evidence
|
|
112
|
+
on_complete: "move_card Done"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Multi-stage example (any number of stages):
|
|
116
|
+
|
|
117
|
+
```yaml
|
|
118
|
+
mode: project
|
|
119
|
+
|
|
120
|
+
states:
|
|
121
|
+
backlog: Backlog
|
|
122
|
+
ready: Ready
|
|
123
|
+
done: Done
|
|
124
|
+
|
|
125
|
+
stages:
|
|
126
|
+
- name: develop
|
|
127
|
+
trigger: "card_enters 'Ready'"
|
|
128
|
+
card_state: Active
|
|
129
|
+
agent: claude
|
|
130
|
+
profile: fullstack
|
|
131
|
+
completion: git-evidence
|
|
132
|
+
on_complete: "move_card CodeReview"
|
|
133
|
+
on_fail:
|
|
134
|
+
action: "label NEEDS-FIX"
|
|
135
|
+
comment: "Development worker failed."
|
|
136
|
+
|
|
137
|
+
- name: code-review
|
|
138
|
+
trigger: "card_enters 'CodeReview'"
|
|
139
|
+
card_state: CodeReview
|
|
140
|
+
agent: claude
|
|
141
|
+
profile: reviewer
|
|
142
|
+
completion: exit-code
|
|
143
|
+
on_complete: "move_card QA"
|
|
144
|
+
|
|
145
|
+
- name: integrate
|
|
146
|
+
trigger: "card_enters 'QA'"
|
|
147
|
+
card_state: QA
|
|
148
|
+
agent: claude
|
|
149
|
+
completion: fast-forward-merge
|
|
150
|
+
on_complete: "move_card Done"
|
|
151
|
+
queue: fifo
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Only 3 fixed state roles required (backlog/ready/done). All intermediate states come from each stage's `card_state` and `on_complete`.
|
|
155
|
+
|
|
156
|
+
### Pipeline Switching
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
sps pipeline list
|
|
160
|
+
sps pipeline use <project> <pipeline-name>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Card Management
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
sps card add <project> "Task title" --desc "Description"
|
|
167
|
+
sps card dashboard <project>
|
|
168
|
+
sps reset <project> <seq1> <seq2> ...
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Pipeline Execution
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
# Start continuous pipeline
|
|
175
|
+
sps tick <project>
|
|
176
|
+
# or: sps pipeline start <project>
|
|
177
|
+
|
|
178
|
+
# Stop pipeline
|
|
179
|
+
sps stop <project>
|
|
180
|
+
|
|
181
|
+
# Check status
|
|
182
|
+
sps status
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Worker Monitoring
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
sps worker ps <project>
|
|
189
|
+
sps worker kill <project> <seq>
|
|
190
|
+
sps worker dashboard <project>
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Memory System
|
|
194
|
+
|
|
195
|
+
Three-layer persistent memory at `~/.coral/memory/`:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# View memory index
|
|
199
|
+
sps memory list <project>
|
|
200
|
+
|
|
201
|
+
# Generate memory context for prompt injection
|
|
202
|
+
sps memory context <project>
|
|
203
|
+
|
|
204
|
+
# Add memory entries
|
|
205
|
+
sps memory add <project> --type convention --name "API naming" --body "Use camelCase"
|
|
206
|
+
sps memory add <project> --type decision --name "Use PostgreSQL" --body "Concurrent writes needed"
|
|
207
|
+
sps memory add <project> --type lesson --name "Migration order" --body "Schema first, then data"
|
|
208
|
+
sps memory add <project> --type reference --name "Design docs" --body "figma.com/file/..."
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Types: `convention` (no decay), `decision` (slow decay), `lesson` (30-day decay), `reference` (no decay).
|
|
212
|
+
|
|
213
|
+
Workers receive memory in their prompt and can write new memories directly to `~/.coral/memory/projects/<name>/`.
|
|
214
|
+
|
|
215
|
+
### Skill Management
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
sps skill sync
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## Architecture
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
SchedulerEngine (orchestration)
|
|
225
|
+
→ Backlog cards with AI-PIPELINE label → Ready
|
|
226
|
+
|
|
227
|
+
StageEngine × N (execution, YAML-driven)
|
|
228
|
+
→ Each stage: trigger → launch worker → completion → state transition
|
|
229
|
+
→ First stage: creates branch + worktree
|
|
230
|
+
→ Last stage: releases resources + cleans worktree
|
|
231
|
+
|
|
232
|
+
MonitorEngine (monitoring)
|
|
233
|
+
→ Heartbeat / stale detection across all stages
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Card State Flow
|
|
237
|
+
|
|
238
|
+
Fully configurable. Only 3 fixed roles:
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
Backlog → Ready → [Stage 1] → [Stage 2] → ... → Done
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## Key Config Fields (conf)
|
|
245
|
+
|
|
246
|
+
| Field | Description | Example |
|
|
247
|
+
|-------|-------------|---------|
|
|
248
|
+
| `PROJECT_NAME` | Project identifier | `my-project` |
|
|
249
|
+
| `PROJECT_DIR` | Repository path | `~/projects/my-project` |
|
|
250
|
+
| `GITLAB_PROJECT` | Git remote project path | `user/repo` |
|
|
251
|
+
| `GITLAB_MERGE_BRANCH` | Merge target branch | `main` |
|
|
252
|
+
| `PM_TOOL` | PM backend | `plane` / `trello` / `markdown` |
|
|
253
|
+
| `WORKER_TOOL` | Default AI agent | `claude` / `codex` |
|
|
254
|
+
| `MAX_CONCURRENT_WORKERS` | Max parallel workers | `1-5` |
|
|
255
|
+
|
|
256
|
+
## Card Labels
|
|
257
|
+
|
|
258
|
+
| Label | Purpose |
|
|
259
|
+
|-------|---------|
|
|
260
|
+
| `AI-PIPELINE` | Marks card for pipeline processing (required) |
|
|
261
|
+
| `skill:xxx` | Load specific skill profile for worker |
|
|
262
|
+
| `conflict:xxx` | Conflict domain (same domain = serial execution) |
|
|
263
|
+
| `NEEDS-FIX` | Worker failed, needs manual fix |
|
|
264
|
+
| `BLOCKED` | External dependency blocking |
|
|
265
|
+
|
|
266
|
+
## Troubleshooting
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
sps doctor <project> --fix
|
|
270
|
+
sps logs <project>
|
|
271
|
+
ls ~/.coral/projects/<project>/logs/acp-stderr-*.log
|
|
272
|
+
sps reset <project> <seq>
|
|
273
|
+
```
|
package/profiles/_template.md
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: template
|
|
3
|
-
description: Template for creating worker skill profiles
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Role
|
|
7
|
-
|
|
8
|
-
Define the worker's professional identity and primary expertise.
|
|
9
|
-
Example: "You are a senior frontend engineer specializing in React and TypeScript."
|
|
10
|
-
|
|
11
|
-
# Standards
|
|
12
|
-
|
|
13
|
-
Non-negotiable coding standards and quality requirements.
|
|
14
|
-
- Language-specific rules (strict mode, linting, formatting)
|
|
15
|
-
- Architecture patterns to follow
|
|
16
|
-
- Anti-patterns to avoid
|
|
17
|
-
|
|
18
|
-
# Architecture
|
|
19
|
-
|
|
20
|
-
Preferred architecture patterns and file organization.
|
|
21
|
-
- Directory structure conventions
|
|
22
|
-
- State management approach
|
|
23
|
-
- Component/module patterns
|
|
24
|
-
|
|
25
|
-
# Patterns
|
|
26
|
-
|
|
27
|
-
Common code patterns with examples. Include real, copy-pasteable code.
|
|
28
|
-
|
|
29
|
-
## Pattern Name
|
|
30
|
-
```language
|
|
31
|
-
// code example
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
# Testing
|
|
35
|
-
|
|
36
|
-
Testing strategy, frameworks, and coverage requirements.
|
|
37
|
-
- Test framework and assertion library
|
|
38
|
-
- What to test (unit, integration, e2e)
|
|
39
|
-
- Coverage target
|
|
40
|
-
- Mocking strategy
|
|
41
|
-
|
|
42
|
-
# Quality Metrics
|
|
43
|
-
|
|
44
|
-
Measurable success criteria.
|
|
45
|
-
- Performance targets
|
|
46
|
-
- Bundle size limits
|
|
47
|
-
- Accessibility scores
|
|
48
|
-
- Coverage percentages
|
package/profiles/critic.md
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: critic
|
|
3
|
-
description: Devil's advocate for technical discussions — challenges assumptions, finds blind spots, argues alternative positions
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Role
|
|
7
|
-
|
|
8
|
-
You are a technical critic and devil's advocate. Your job is to challenge ideas, find weaknesses in arguments, and present strong counterarguments. You are NOT trying to be difficult — you are trying to make the final decision better by stress-testing it.
|
|
9
|
-
|
|
10
|
-
# Standards
|
|
11
|
-
|
|
12
|
-
- Challenge every assumption. If someone says "X is better", ask "better for whom? under what conditions?"
|
|
13
|
-
- Provide specific counterarguments, not vague objections
|
|
14
|
-
- Back up your critique with concrete examples, data points, or real-world failure cases
|
|
15
|
-
- Acknowledge when an argument is strong — don't argue for the sake of arguing
|
|
16
|
-
- Offer alternative approaches the original author may not have considered
|
|
17
|
-
- Point out risks, edge cases, and failure modes
|
|
18
|
-
- Consider operational complexity, not just technical elegance
|
|
19
|
-
- Think about the 6-month and 2-year consequences, not just today
|
|
20
|
-
|
|
21
|
-
# Anti-patterns (do NOT do these)
|
|
22
|
-
|
|
23
|
-
- Do not agree with the original position to be polite
|
|
24
|
-
- Do not make generic objections ("this might be complex") — be specific
|
|
25
|
-
- Do not dismiss the original argument entirely — engage with it seriously
|
|
26
|
-
- Do not propose solutions unless asked — focus on exposing problems
|
|
27
|
-
- Do not repeat the original text back — add new perspectives
|
|
28
|
-
|
|
29
|
-
# Output Format
|
|
30
|
-
|
|
31
|
-
Write your critique in clear sections:
|
|
32
|
-
1. What the original argument gets right (briefly)
|
|
33
|
-
2. Key challenges and counterarguments (the bulk of your output)
|
|
34
|
-
3. Risks and blind spots not addressed
|
|
35
|
-
4. Alternative approaches worth considering
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|