How this skill is triggered — by the user, by Claude, or both
Slash command
/sansheng-pipeline:pipelineThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
```
用户 → 司礼监(整理背景) → 中书省(起草方案) → 门下省(审议)
↓ ↓
[循环最多2次封驳] ←───────────────────── 封驳
↓
[第3次封驳 → 用户裁决]
↓
准奏 → 用户确认 → 执行(v0.2待实现) → 回报
预计耗时:10-30 分钟(取决于方案复杂度和封驳次数)
使用 MCP tool 创建任务:
sansheng_create_task({
title: "任务标题",
context: "任务背景和需求..."
})
→ 返回 task_id: "TASK-20260311-XXX"
调用中书省 Agent:
Agent({
subagent_type: "sansheng-pipeline:zhongshu:SOUL",
description: "中书省起草方案",
prompt: `
## 中书省任务
任务 ID: ${task_id}
背景:${context}
请根据上述背景起草执行方案,包含:
1. 任务背景
2. 实施方案(5个步骤)
3. 风险评估
4. 验收标准
完成后调用 MCP tool:
sansheng_submit_plan({
task_id: "${task_id}",
plan: "你生成的方案内容"
})
`
})
调用门下省 Agent:
Agent({
subagent_type: "sansheng-pipeline:menxia:SOUL",
description: "门下省审议方案",
prompt: `
## 门下省任务
任务 ID: ${task_id}
请审议中书省提交的方案:
1. 调用 sansheng_get_task({ task_id: "${task_id}" }) 获取方案
2. 根据审议标准检查方案质量
3. 调用 sansheng_submit_decision 提交决策
审议标准:
- 第1次审议:检查风险评估
- 第2次审议:检查验收标准
- 第3次审议:建议升级司礼监裁决
`
})
如果门下省封驳(decision = "rejected"):
{原始context}
【门下省封驳意见】
{rejection_reason}
如果门下省准奏(decision = "approved"):
sansheng_finalize({
task_id: "${task_id}",
decision: "approve_zhongshu"
})
如果第3次封驳(rejection_count >= 3):
decision: "approve_zhongshu"decision: "approve_menxia"decision: "custom", custom_plan: "..."在对话中直接说:
/pipeline 任务描述...
或
帮我走三省审议流程:[任务描述]
如果已配置司礼监 agent:
@silijian 请启动审议流程:[任务描述]
本 skill 使用以下 MCP tools 进行状态管理:
创建新任务,返回任务 ID。
输入:
title: 任务标题context: 任务背景和需求输出:
{
"task_id": "TASK-20260311-XXX"
}
中书省提交方案版本(由中书省 Agent 调用)。
输入:
task_id: 任务 IDplan: 方案内容输出:
{
"version": 1,
"task_id": "TASK-20260311-XXX"
}
门下省提交审议决策(由门下省 Agent 调用)。
输入:
task_id: 任务 IDdecision: "approved" 或 "rejected"reason: 封驳理由(仅 rejected 时需要)输出:
{
"decision": "rejected",
"reason": "...",
"rejection_count": 1,
"escalated": false
}
查询任务状态和历史(由门下省 Agent 调用)。
输入:
task_id: 任务 ID输出:完整任务对象,包含状态历史、方案版本、封驳记录。
用户批准方案,进入执行阶段。
输入:
task_id: 任务 IDdecision: "approve_zhongshu" / "approve_menxia" / "custom"custom_plan: 自定义方案内容(仅 custom 时需要)输出:
{
"success": true,
"final_state": "done",
"message": "圣上批准方案,任务进入执行阶段"
}
数据存储位置:
~/.claude/plugins/sansheng-pipeline/data/tasks.json
用户输入:
我们需要给 users 表增加一个 role 字段,支持多角色用户。
要考虑数据迁移和权限系统的适配。
流程:
sansheng_create_task() 生成 task_idsansheng_finalize() 定稿用户输入:
用户列表页面加载太慢(5秒+),需要优化。
现在是直接查数据库,每次查1000条记录。
流程:
sansheng_create_task()sansheng_submit_decision({ decision: "approved" })sansheng_finalize()用户输入:
重构用户认证模块,从 session 改为 JWT。
流程:
sansheng_create_task()rejection_count = 3) → 升级用户裁决sansheng_finalize({ decision: "custom", custom_plan: "14天兼容期" })确保以下 agent 已在 ~/.claude/agents/ 中配置(plugin 安装时自动创建):
silijian - 司礼监zhongshu - 中书省menxia - 门下省shangshu - 尚书省(预留)使用 MCP tool 查询任务:
sansheng_get_task({
task_id: "TASK-20260310-001"
})
返回包含完整状态历史、方案版本、封驳记录的任务对象。
症状:调用中书省/门下省后无响应
排查:
# 检查 agent 是否存在
ls -la ~/.claude/agents/ | grep -E 'zhongshu|menxia|silijian'
# 查看 agent 的 SOUL.md
cat ~/.claude/agents/zhongshu/SOUL.md | head -20
解决:
症状:FileNotFoundError 或 JSON 解析错误
解决:
cd ~/.claude/plugins/sansheng-pipeline
# 备份现有数据
cp data/tasks.json data/tasks.backup.json
# 重置(会丢失历史数据)
echo '[]' > data/tasks.json
症状:门下省已封驳3次但未触发升级
排查:
使用 sansheng_get_task({ task_id: "TASK-20260310-001" }) 查看任务状态,检查:
rejection_count 字段的值escalated 字段是否为 truerejections 数组中的封驳记录解决:
rejection_count >= 3,门下省应触发升级而非继续封驳sansheng_submit_decision如有问题或建议,请在项目仓库提 issue: [your-repo-url]
MIT
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub wenyi1995/claude-plugins-marketplace --plugin sansheng-pipeline