relay-kit 0.2.0
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/CHANGELOG.md +37 -0
- package/README.md +236 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +1343 -0
- package/dist/cli.js.map +1 -0
- package/docs/CLI_SPEC.md +121 -0
- package/docs/FINAL_DESIGN.md +144 -0
- package/docs/OPENSPEC_INTEGRATION.md +52 -0
- package/docs/RUN_LANE_DESIGN.md +37 -0
- package/docs/SKILLS_INSTALLATION.md +243 -0
- package/docs/SMOKE_TESTS.md +137 -0
- package/docs/USAGE_FLOW.md +116 -0
- package/docs/V0_1_ALPHA_RELEASE.md +59 -0
- package/package.json +54 -0
- package/skills/relay-delegator/SKILL.md +43 -0
- package/skills/relay-docs/SKILL.md +16 -0
- package/skills/relay-escalation/SKILL.md +47 -0
- package/skills/relay-fixer/SKILL.md +39 -0
- package/skills/relay-lane-planner/SKILL.md +21 -0
- package/skills/relay-planner/SKILL.md +52 -0
- package/skills/relay-reviewer/SKILL.md +59 -0
- package/skills/relay-runner/SKILL.md +52 -0
- package/templates/ADVISOR_DECISION.template.md +18 -0
- package/templates/AGENTS.relay.md +37 -0
- package/templates/ASK_ADVISOR.template.md +37 -0
- package/templates/EXECUTOR_TASK.template.md +23 -0
- package/templates/RESUME_PROMPT.template.md +11 -0
- package/templates/REVIEW_REPORT.template.md +22 -0
- package/templates/REVIEW_REQUEST.template.md +26 -0
- package/templates/TASK_BOARD.template.md +10 -0
- package/templates/config.template.json +58 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: relay-fixer
|
|
3
|
+
description: 当用户运行 /relay:fix 或显式要求 Advisor 直接修改代码时使用。进入 DIRECT_FIX 模式,满足 4 条件之一即可直接修改代码。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# relay-fixer
|
|
8
|
+
|
|
9
|
+
你是 Relay 修复顾问,以 DIRECT_FIX 模式运行,可以直接修改代码。
|
|
10
|
+
|
|
11
|
+
## DIRECT_FIX 入口条件
|
|
12
|
+
|
|
13
|
+
满足以下任一条件时进入 DIRECT_FIX:
|
|
14
|
+
|
|
15
|
+
1. **小型局部 patch**:修复涉及不超过 3 个文件且总计不超过 30 行
|
|
16
|
+
2. **Executor 连续失败**:`state.json.executorFailures.currentTask >= 3`
|
|
17
|
+
3. **架构级问题**:先输出架构分析,获得用户确认后再修改
|
|
18
|
+
4. **用户显式要求**:用户说"你直接改"、"你帮我改"或运行 `/relay:fix`
|
|
19
|
+
|
|
20
|
+
## 核心规则
|
|
21
|
+
|
|
22
|
+
1. 可以直接修改代码。
|
|
23
|
+
2. 修改后输出变更摘要,至少包含:修改的文件列表、每个文件的修改原因。
|
|
24
|
+
3. 完成后自动切回 REVIEW 模式。
|
|
25
|
+
4. 不可扩大修复范围,只修复当前问题。
|
|
26
|
+
5. 每次修改记录到 `state.json` 的 `directFixLog`。
|
|
27
|
+
|
|
28
|
+
## 输出格式
|
|
29
|
+
|
|
30
|
+
# DIRECT_FIX_REPORT
|
|
31
|
+
|
|
32
|
+
## Trigger Reason
|
|
33
|
+
small_patch / executor_failure / architecture / user_request
|
|
34
|
+
|
|
35
|
+
## Files Modified
|
|
36
|
+
|
|
37
|
+
## Change Summary
|
|
38
|
+
|
|
39
|
+
## Verification
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: relay-lane-planner
|
|
3
|
+
description: 预留 skill。当用户需要将 change 拆分为不重叠文件范围的并行执行 lane 时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# relay-lane-planner
|
|
8
|
+
|
|
9
|
+
预留 skill,用于并行执行规划。
|
|
10
|
+
|
|
11
|
+
## 输出
|
|
12
|
+
|
|
13
|
+
# TASK_BOARD
|
|
14
|
+
|
|
15
|
+
## Run
|
|
16
|
+
|
|
17
|
+
## Lanes
|
|
18
|
+
|
|
19
|
+
## Serial Tasks
|
|
20
|
+
|
|
21
|
+
## Worktree Recommendation
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: relay-planner
|
|
3
|
+
description: 当用户运行 /relay:plan 或需要规划功能、决定 simple vs OpenSpec 模式、创建 OpenSpec proposal/design/tasks、拆分工作任务或识别哪些任务可委派给执行模型时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# relay-planner
|
|
8
|
+
|
|
9
|
+
你是 Relay 规划顾问,不是执行者(Executor)。
|
|
10
|
+
|
|
11
|
+
## 适用场景
|
|
12
|
+
|
|
13
|
+
- 规划新功能;
|
|
14
|
+
- 决定 simple 还是 OpenSpec 模式;
|
|
15
|
+
- 创建 proposal/design/tasks;
|
|
16
|
+
- 拆分为小的可执行任务;
|
|
17
|
+
- 识别哪些任务适合交给 OpenCode 执行;
|
|
18
|
+
- 识别人类决策点。
|
|
19
|
+
|
|
20
|
+
## 核心规则
|
|
21
|
+
|
|
22
|
+
1. 不要实现代码。
|
|
23
|
+
2. 优先 MVP 范围。
|
|
24
|
+
3. 始终明确定义非目标。
|
|
25
|
+
4. 如果任务涉及架构、数据模型、API、路由、状态管理或多个模块,建议使用 OpenSpec。
|
|
26
|
+
5. 如果任务是小的 UI/文案/bugfix,simple 模式可以接受。
|
|
27
|
+
6. 你可以提出多个路线图项,但同一时间只应实施一个活跃 change。
|
|
28
|
+
|
|
29
|
+
## 输出格式
|
|
30
|
+
|
|
31
|
+
# PLAN_REPORT
|
|
32
|
+
|
|
33
|
+
## Recommended Mode
|
|
34
|
+
simple / openspec
|
|
35
|
+
|
|
36
|
+
## Goal
|
|
37
|
+
|
|
38
|
+
## Scope
|
|
39
|
+
|
|
40
|
+
## Non-goals
|
|
41
|
+
|
|
42
|
+
## Risks
|
|
43
|
+
|
|
44
|
+
## Suggested Change Name
|
|
45
|
+
|
|
46
|
+
## Proposed Tasks
|
|
47
|
+
|
|
48
|
+
## Executor-suitable Tasks
|
|
49
|
+
|
|
50
|
+
## Human Decision Points
|
|
51
|
+
|
|
52
|
+
## 建议下一步
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: relay-reviewer
|
|
3
|
+
description: 当用户运行 /relay:review 或需要审查实现、git diff、REVIEW_REQUEST.md 或判断 AI 生成的变更是否安全可提交时使用。支持 DIRECT_FIX 模式(4 条件授权)。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# relay-reviewer
|
|
8
|
+
|
|
9
|
+
你是 Relay 审查顾问。
|
|
10
|
+
|
|
11
|
+
## 裁决类型
|
|
12
|
+
|
|
13
|
+
- APPROVE — 通过
|
|
14
|
+
- NEEDS_CHANGES — 需要修改
|
|
15
|
+
- REPLAN_REQUIRED — 需要重新规划
|
|
16
|
+
|
|
17
|
+
## 核心规则
|
|
18
|
+
|
|
19
|
+
1. 除非明确要求,不要直接修改代码。
|
|
20
|
+
2. 先检查范围。
|
|
21
|
+
3. 识别不相关的变更。
|
|
22
|
+
4. 检查是否过度工程化。
|
|
23
|
+
5. 检查数据/状态/类型/API/路由/安全/UX 风险。
|
|
24
|
+
6. 区分"必须修复"和"应该改进"。
|
|
25
|
+
7. 如果需要修复,提供一份给 Executor 的提示。
|
|
26
|
+
|
|
27
|
+
## DIRECT_FIX 模式
|
|
28
|
+
|
|
29
|
+
满足以下任一条件时进入 DIRECT_FIX 直接修改代码:
|
|
30
|
+
1. 小型局部 patch(≤3 文件,≤30 行)
|
|
31
|
+
2. Executor 连续失败(state.json.executorFailures.currentTask ≥ 3)
|
|
32
|
+
3. 架构级问题(需先输出分析获确认后再修改)
|
|
33
|
+
4. 用户显式要求或运行 /relay:fix
|
|
34
|
+
|
|
35
|
+
进入 DIRECT_FIX 后:
|
|
36
|
+
- 可以直接修改代码
|
|
37
|
+
- 修改后输出变更摘要(文件、原因)
|
|
38
|
+
- 完成后自动切回 REVIEW 模式
|
|
39
|
+
- 不可扩大修复范围
|
|
40
|
+
|
|
41
|
+
## 输出格式
|
|
42
|
+
|
|
43
|
+
# REVIEW_REPORT
|
|
44
|
+
|
|
45
|
+
## Verdict
|
|
46
|
+
|
|
47
|
+
## Summary
|
|
48
|
+
|
|
49
|
+
## Scope Check
|
|
50
|
+
|
|
51
|
+
## Must Fix
|
|
52
|
+
|
|
53
|
+
## Should Improve
|
|
54
|
+
|
|
55
|
+
## Risk Check
|
|
56
|
+
|
|
57
|
+
## Verification
|
|
58
|
+
|
|
59
|
+
## Prompt For Executor
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: relay-runner
|
|
3
|
+
description: 当用户运行 /relay:run 或需要执行任务时使用。自动检测读取 EXECUTOR_TASK.md 或 RESUME_PROMPT.md,以 Executor 角色执行实现。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# relay-runner
|
|
8
|
+
|
|
9
|
+
你是 Relay 执行者(Executor),不是顾问(Advisor)。
|
|
10
|
+
|
|
11
|
+
## 触发方式
|
|
12
|
+
|
|
13
|
+
- 用户输入 `/relay:run`
|
|
14
|
+
- 用户表达执行任务的需求
|
|
15
|
+
|
|
16
|
+
## 自动检测
|
|
17
|
+
|
|
18
|
+
1. 检查当前 lane 目录下是否存在 `RESUME_PROMPT.md`
|
|
19
|
+
- 存在 → 读取 `RESUME_PROMPT.md`(恢复模式)
|
|
20
|
+
- 不存在 → 读取 `EXECUTOR_TASK.md`(新任务模式)
|
|
21
|
+
2. 两者都不存在 → 提示用户先运行 `relay start` 或 `relay resume`
|
|
22
|
+
|
|
23
|
+
## 核心规则
|
|
24
|
+
|
|
25
|
+
1. 小步执行。
|
|
26
|
+
2. 不要超出当前任务范围。
|
|
27
|
+
3. 未经批准不要引入新依赖。
|
|
28
|
+
4. 除非明确要求,不要进行大规模重构。
|
|
29
|
+
5. 有意义的变更后,报告变更文件和验证步骤。
|
|
30
|
+
|
|
31
|
+
## 停止并生成 ASK_ADVISOR.md
|
|
32
|
+
|
|
33
|
+
以下情况停止修改代码,创建 `ASK_ADVISOR.md`:
|
|
34
|
+
|
|
35
|
+
1. 同一问题尝试 2 次后仍失败。
|
|
36
|
+
2. 修复涉及架构、路由、状态管理、数据库或数据模型变更。
|
|
37
|
+
3. 看起来需要新依赖。
|
|
38
|
+
4. 需要修改超过 5 个文件。
|
|
39
|
+
5. 构建/测试错误涉及多个模块。
|
|
40
|
+
6. 任务与 OpenSpec 或 EXECUTOR_TASK.md 冲突。
|
|
41
|
+
7. 不确定应该修改哪些文件。
|
|
42
|
+
8. UI 判断需要截图对比。
|
|
43
|
+
9. 存在数据丢失、安全问题或破坏现有行为的风险。
|
|
44
|
+
|
|
45
|
+
不要继续猜测或扩大范围。
|
|
46
|
+
|
|
47
|
+
## 完成报告格式
|
|
48
|
+
|
|
49
|
+
修改完成后输出:
|
|
50
|
+
- 修改的文件列表
|
|
51
|
+
- 每个文件的修改原因
|
|
52
|
+
- 验证结果
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# ADVISOR_DECISION
|
|
2
|
+
|
|
3
|
+
## Decision Type
|
|
4
|
+
CONTINUE / PATCH / REPLAN / STOP / ASK_OWNER
|
|
5
|
+
|
|
6
|
+
## Root Cause
|
|
7
|
+
|
|
8
|
+
## What Not To Do
|
|
9
|
+
|
|
10
|
+
## Recommended Path
|
|
11
|
+
|
|
12
|
+
## Minimal Change Scope
|
|
13
|
+
|
|
14
|
+
## Execution Steps
|
|
15
|
+
|
|
16
|
+
## Verification
|
|
17
|
+
|
|
18
|
+
## Prompt For Executor
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<!-- relay-kit:start -->
|
|
2
|
+
|
|
3
|
+
## Relay Kit 执行规则
|
|
4
|
+
|
|
5
|
+
执行任务时你是 Relay Executor(执行者)。
|
|
6
|
+
|
|
7
|
+
### 核心规则
|
|
8
|
+
|
|
9
|
+
1. 小步执行。
|
|
10
|
+
2. 不要超出当前任务范围。
|
|
11
|
+
3. 未经批准不要引入新依赖。
|
|
12
|
+
4. 除非明确要求,不要进行大规模重构。
|
|
13
|
+
5. 有意义的变更后,报告变更文件和验证步骤。
|
|
14
|
+
|
|
15
|
+
### 角色模式
|
|
16
|
+
|
|
17
|
+
- 默认以 Executor 角色运行
|
|
18
|
+
- 收到 `/relay:run` 命令时加载 relay-runner skill
|
|
19
|
+
- Advisory 角色(planner/reviewer/fixer)由相应的 `/relay:` 命令触发
|
|
20
|
+
|
|
21
|
+
### 停止并求助 Relay Advisor
|
|
22
|
+
|
|
23
|
+
以下情况停止修改代码,创建 `ASK_ADVISOR.md`:
|
|
24
|
+
|
|
25
|
+
1. 同一问题尝试 2 次后仍失败。
|
|
26
|
+
2. 修复涉及架构、路由、状态管理、数据库或数据模型变更。
|
|
27
|
+
3. 看起来需要新依赖。
|
|
28
|
+
4. 需要修改超过 5 个文件。
|
|
29
|
+
5. 构建/测试错误涉及多个模块。
|
|
30
|
+
6. 任务与 OpenSpec 或 EXECUTOR_TASK.md 冲突。
|
|
31
|
+
7. 不确定应该修改哪些文件。
|
|
32
|
+
8. UI 判断需要截图对比。
|
|
33
|
+
9. 存在数据丢失、安全问题或破坏现有行为的风险。
|
|
34
|
+
|
|
35
|
+
不要继续猜测或扩大范围。
|
|
36
|
+
|
|
37
|
+
<!-- relay-kit:end -->
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# ASK_ADVISOR
|
|
2
|
+
|
|
3
|
+
## Metadata
|
|
4
|
+
- Project: {{projectName}}
|
|
5
|
+
- Run: {{runId}}
|
|
6
|
+
- Lane: {{lane}}
|
|
7
|
+
- Branch: {{branch}}
|
|
8
|
+
|
|
9
|
+
## Context Safety
|
|
10
|
+
- Ignore Rules: {{ignoreRulesStatus}}
|
|
11
|
+
- Redaction Rules: {{redactionRulesStatus}}
|
|
12
|
+
|
|
13
|
+
## Current Task
|
|
14
|
+
{{currentTask}}
|
|
15
|
+
|
|
16
|
+
## Problem
|
|
17
|
+
|
|
18
|
+
## Error Log
|
|
19
|
+
```text
|
|
20
|
+
{{errorLog}}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Git Status
|
|
24
|
+
```text
|
|
25
|
+
{{gitStatus}}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Git Diff Summary
|
|
29
|
+
```text
|
|
30
|
+
{{gitDiffStat}}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Questions For Advisor
|
|
34
|
+
1. 是否继续执行?
|
|
35
|
+
2. 最小修补足够吗?
|
|
36
|
+
3. 最小修复方案?
|
|
37
|
+
4. 给 Executor 的提示?
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# EXECUTOR_TASK
|
|
2
|
+
|
|
3
|
+
## Metadata
|
|
4
|
+
- Project: {{projectName}}
|
|
5
|
+
- Run: {{runId}}
|
|
6
|
+
- Lane: {{lane}}
|
|
7
|
+
- Mode: {{mode}}
|
|
8
|
+
- Change: {{change}}
|
|
9
|
+
|
|
10
|
+
## Role
|
|
11
|
+
你是执行者(Executor)。
|
|
12
|
+
|
|
13
|
+
## Task
|
|
14
|
+
{{taskTitle}}
|
|
15
|
+
|
|
16
|
+
## Allowed Scope
|
|
17
|
+
{{allowedScope}}
|
|
18
|
+
|
|
19
|
+
## Blocked Scope
|
|
20
|
+
{{blockedScope}}
|
|
21
|
+
|
|
22
|
+
## Escalation Rule
|
|
23
|
+
同一问题尝试 2 次后仍失败,停止并生成 ASK_ADVISOR.md。
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# REVIEW_REPORT
|
|
2
|
+
|
|
3
|
+
## Verdict
|
|
4
|
+
APPROVE / NEEDS_CHANGES / REPLAN_REQUIRED
|
|
5
|
+
|
|
6
|
+
## Summary
|
|
7
|
+
|
|
8
|
+
## Must Fix
|
|
9
|
+
|
|
10
|
+
## Should Improve
|
|
11
|
+
|
|
12
|
+
## Prompt For Executor
|
|
13
|
+
|
|
14
|
+
## DIRECT_FIX Applied
|
|
15
|
+
(当进入 DIRECT_FIX 模式时,此字段记录修改内容)
|
|
16
|
+
|
|
17
|
+
### Reason
|
|
18
|
+
small_patch / executor_failure / architecture / user_request
|
|
19
|
+
|
|
20
|
+
### Files Modified
|
|
21
|
+
|
|
22
|
+
### Change Summary
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# REVIEW_REQUEST
|
|
2
|
+
|
|
3
|
+
## Metadata
|
|
4
|
+
- Project: {{projectName}}
|
|
5
|
+
- Run: {{runId}}
|
|
6
|
+
- Lane: {{lane}}
|
|
7
|
+
|
|
8
|
+
## Context Safety
|
|
9
|
+
- Ignore Rules: {{ignoreRulesStatus}}
|
|
10
|
+
- Redaction Rules: {{redactionRulesStatus}}
|
|
11
|
+
|
|
12
|
+
## Git Diff Summary
|
|
13
|
+
```text
|
|
14
|
+
{{gitDiffStat}}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Git Diff
|
|
18
|
+
```diff
|
|
19
|
+
{{gitDiff}}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Review Checklist
|
|
23
|
+
1. 范围检查
|
|
24
|
+
2. 风险检查
|
|
25
|
+
3. 必须修复项
|
|
26
|
+
4. 是否通过?
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"projectName": "",
|
|
3
|
+
"language": "zh",
|
|
4
|
+
"mode": "simple",
|
|
5
|
+
"handoffDir": "docs/agent-handoffs",
|
|
6
|
+
"openSpecDir": "openspec",
|
|
7
|
+
"sourceDirs": [
|
|
8
|
+
"src",
|
|
9
|
+
"apps",
|
|
10
|
+
"packages"
|
|
11
|
+
],
|
|
12
|
+
"packageManager": "auto",
|
|
13
|
+
"devCommand": "",
|
|
14
|
+
"buildCommand": "",
|
|
15
|
+
"testCommand": "",
|
|
16
|
+
"defaultExecutor": "opencode",
|
|
17
|
+
"defaultAdvisor": "",
|
|
18
|
+
"maxDiffLines": 500,
|
|
19
|
+
"maxLogLines": 160,
|
|
20
|
+
"includeGitDiff": true,
|
|
21
|
+
"includeOpenSpec": false,
|
|
22
|
+
"includePackageScripts": true,
|
|
23
|
+
"runLayout": "runs-lanes",
|
|
24
|
+
"defaultLane": "main",
|
|
25
|
+
"excludePatterns": [
|
|
26
|
+
".env",
|
|
27
|
+
".env.*",
|
|
28
|
+
"node_modules/",
|
|
29
|
+
"dist/",
|
|
30
|
+
"build/",
|
|
31
|
+
"coverage/",
|
|
32
|
+
".git/",
|
|
33
|
+
"*.pem",
|
|
34
|
+
"*.key",
|
|
35
|
+
"*.crt",
|
|
36
|
+
"*.p12",
|
|
37
|
+
"*.log"
|
|
38
|
+
],
|
|
39
|
+
"skills": {
|
|
40
|
+
"install": {
|
|
41
|
+
"manager": true,
|
|
42
|
+
"claudeProject": true,
|
|
43
|
+
"codexProject": true,
|
|
44
|
+
"claudeUser": false,
|
|
45
|
+
"codexUser": false
|
|
46
|
+
},
|
|
47
|
+
"enabled": [
|
|
48
|
+
"relay-planner",
|
|
49
|
+
"relay-delegator",
|
|
50
|
+
"relay-escalation",
|
|
51
|
+
"relay-reviewer"
|
|
52
|
+
],
|
|
53
|
+
"optional": [
|
|
54
|
+
"relay-lane-planner",
|
|
55
|
+
"relay-docs"
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
}
|