ethanreedlabs/sulde/configure-sulde
Claude Code and agent skill by ethanreedlabs/sulde
- community
- ext:[{"type":"hook","description":"Pre/post lifecycle hooks"}]
Checking that the SKILL.md file is still in the repository.
sulde-cc 项目配置 / 接入 / 升级 / 团队管理 / 加 frontend / 加 scaffold / 加 skill trigger / 结束 grace period。8 mode 统一入口:init(新项目接入)/ migrate-from-v0.1.0(老版本升级)/ add-frontend / add-team-member / add-sensitive-file / add-scaffold / add-skill-trigger / end-grace。当用户跑 `/sulde-init` / `/sulde-migrate-from-v0.1.0` / `/sulde-add-*` / `/sulde-end-grace` 任一命令时触发。**单 SKILL 多 mode**,根据入口 command name 选 mode dispatch。
Install
npx vskill@latest install ethanreedlabs/sulde/configure-suldeSemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
/configure-sulde — 项目配置 / 升级 / 维护 8 mode
入口 command(在 commands/sulde-*.md 定义),都走本 skill。根据用户 invoke 的 command 选 mode。
§0 Mode dispatch
| Command | Mode | 备注 | |
|---|---|---|---|
/sulde-init [project-dir] | init | 新项目从零接入 sulde-cc | |
/sulde-migrate-from-v0.1.0 | migrate | v0.1.0 → v0.2.0 升级 | |
/sulde-add-frontend <name> <path> <stack> | add-frontend | 增加一个 frontend(已有项目) | |
/sulde-add-team-member <alias> <name> <email> <frontend> | add-team-member | 加团队成员 + 创建 git as-<alias> | |
/sulde-add-sensitive-file <path> | add-sensitive-file | 标记敏感文件(Dev 不得自发改) | |
/sulde-add-scaffold <name> [trigger] | add-scaffold | 加 scaffold 条目到 <docs-hub>/scaffold-map.yaml | |
/sulde-add-skill-trigger <regex> <skill> | add-skill-trigger | 加 UserPromptSubmit 触发词 → .sulde-config.yaml: skill_triggers | |
/sulde-end-grace | end-grace | 主动结束 7d grace period,切真 enforcement_level |
任一 mode 跑完输出“结果与阻塞”段。范围内的 next steps 由 Agent 继续执行;只有缺少外部事实、 物理接入或高风险授权时才向用户询问,不输出让用户代跑的命令。
§1 Mode: init(对话式 8 步)
新项目接入 sulde-cc。步骤:
- Detect existing
.sulde-config.yaml(若有,refuse + 提示/sulde-migrate-from-v0.1.0) - Q1:project name(default = dir basename)
- Q2:role(coordinator / dev / both,default coordinator)
- Q3:stack 多选(default
[android, ios],可加flutter/harmony) - Q4:design source MCP(default
pencil)+ file 路径(./design/app.pen等) - Q5:team(每个 frontend 至少 1 个 alias;先收集 N,后跑 add-team-member mode 加 alias)
- Q6:enforcement_level(default
balanced)+ grace_period_days(default7) - Q7:lang(default
auto)+ os_primary_target(defaultunix) - 生成 `.sulde-config.yaml` 写入 project root
- 复制 `${CLAUDE_PLUGIN_ROOT}/template/_project/*` 到 project root(根级 + scripts/ + docs-hub/ 骨架)
- 复制 `${CLAUDE_PLUGIN_ROOT}/template/<stack>/*` 到
<frontend>/每个 frontend(对应 stack 骨架) - 写 grace marker:
echo '{"started_at":"<ISO>","grace_period_days":7}' > .sulde-grace-started - 跑各 frontend 的 `scripts/pre-commit-installer.sh` 装 git hook
- cp `template/_project/docs-hub/design/page-relation.yaml.example` → `<docs-hub>/design/page-relation.yaml`(空骨架,首次跑
/ui-impl阶段 0 强制读取本图谱,缺则报错) - 由 Agent 完成后续收尾并输出结果:
- 7 day grace period 已起,hook 强制 lenient mode 直到
.sulde-grace-endedmarker - Agent 检查运行时依赖;缺 PyYAML 时在当前环境安装并回读版本,权限或网络需要扩大时走原生确认
- 若多人协作:Agent 根据已收集的团队信息继续执行 add-team-member;缺少身份事实时一次问齐
- 若独立开发者:
team: []留空即可(check_commit_alias.shhook 自动 skip alias 强制,plaingit commit工作) - 若有设计工具(Pencil / Figma MCP):Agent 继续执行
/update-design起初版 design-truth - 若无设计工具:
.sulde-config.yaml: design_source.mcp设为none,Agent 根据用户提供的设计源生成 design-truth - 首次跑
/ui-impl前由 Agent 根据可验证页面关系填写<docs-hub>/design/page-relation.yaml;
只有关系语义不明时才问一个自然语言问题
- 用户明确要求提前结束 grace 时,Agent 执行
/sulde-end-grace
复制实现 见 §9 跨目录 cp 权限段。
§2 Mode: migrate(v0.1.0 → v0.2.0)
老版本(v0.1.0)用户升级。步骤:
- Read existing
.sulde-config.yaml(v0.1.0 schema) - 显示 diff:
frontend-aplaceholder → 提示 rename(用户选android/ios/flutter/harmony)- 新增字段填 default(
enforcement_level: balanced/lang: auto/enforcement_grace_period_days: 7/scope_inheritance: parent/os_compatibility: {primary_target: unix, windows_shell_hint: git-bash}/build_verify: {...}/enforcement: {...}) - skill paths 从 v0.1.0 的 user-private bundle → v0.2.0 generic(假定用户没改 plugin 源)
- Dry-run write to
.sulde-config.yaml.v2-preview - 用户已经请求迁移且 preview 无未决语义时,Agent 备份原 file 为
.sulde-config.yaml.v0.1.0-backup 后写新 file;只有字段含义无法推断时才询问具体选择
- 写 grace marker
.sulde-grace-started(7d grace 让用户适应新 enforcement) - Agent 安装并回读 Python 依赖与各 frontend git hook,输出 migration report;若失败自动恢复备份。
报告保留 v0.1.0 回滚路径,但不要求用户代跑安装命令。
§3 Mode: add-frontend
Args: <name> <path> <stack>(例:/sulde-add-frontend harmony ./harmony mobile-harmony)
- Read existing config → 检查 name 不重复
- Append to
frontends:数组 - 复制
${CLAUDE_PLUGIN_ROOT}/template/<stack>/*到<path>/(用户可未存在该目录,创建) - 跑
<path>/scripts/pre-commit-installer.sh装 git hook - 已提供团队身份时由 Agent 继续配置;缺少 alias/name/email 时一次问齐,不输出待用户再次触发的命令
可用 stack(v0.2.0):mobile-android / mobile-ios / mobile-flutter / mobile-harmony。
§4 Mode: add-team-member
Args: <alias> <name> <email> <frontend>(例:/sulde-add-team-member as-c Carol carol@team.com flutter)
- Read existing config → 检查 alias 不重复
- Append to
team:数组:
```yaml
- alias: as-c
name: Carol email: carol@team.com frontend: flutter ```
- 创建 git alias
as-<alias>:
- 写入项目
.git/config的[alias]section:
`` [alias] as-c = "!SULDE_COMMIT_ALIAS=as-c git -c user.name='Carol' -c user.email='carol@team.com' commit" ``
- 注:
SULDE_COMMIT_ALIAS是 sentinel,check_commit_alias.shpre-commit hook 据此放行
- 回读 alias 配置并报告;后续提交由 Agent 使用
git as-c commit ...。alias 是 per-repo,
新 clone 由 Agent 重新执行本 mode,不让用户手工编辑 .git/config
§5 Mode: add-sensitive-file
Args: <path>(例:/sulde-add-sensitive-file core-ui/AppRouter.kt)
委托 skills/sulde-add-sensitive-file/SKILL.md 完整执行:
- Read existing config → append to
scope_sensitivity.sensitive_files:数组(去重),作为 advisory/self-fix 边界。 - 同时向项目
.claude/settings.json: permissions.deny去重追加Edit(<相对路径>)与Write(<相对路径>),作为 harness 级 deny;保留其他键,首次修改已有 settings 前备份为.claude/settings.json.bak-sulde。 - 输出双保险 reminder:Dev 端 self-fix-boundary 会 block 自发改这些文件,harness 拒绝直接 Edit/Write;改动必经 task md。
§6 Mode: add-scaffold
Args: <name> [trigger-regex](例:/sulde-add-scaffold AppTopBar "TopBar|TitleBar")
- Read
<docs-hub>/scaffold-map.yaml→ append:
```yaml
- name: AppTopBar
triggers: ["TopBar", "TitleBar"] contract: <docs-hub>/scaffolds/AppTopBar.md # 需协调端补 owner: coordinator ```
- 提示协调端补
<docs-hub>/scaffolds/<name>.md契约文档
§7 Mode: add-skill-trigger
Args: <regex> <skill> [role](例:/sulde-add-skill-trigger "pen-truth.*更新" update-design coordinator)
- Append to
.sulde-config.yaml: skill_triggers:(已是 v0.2.0 字段)
```yaml skill_triggers:
- regex: "pen-truth.*更新"
skill: update-design role: coordinator reminder: "Invoke the update-design skill..." ```
- 输出 reminder:hook
skill_trigger.py会在 UserPromptSubmit 时合并 default + user triggers
§8 Mode: end-grace
无 args。
- 检查
.sulde-grace-started存在(若不存在 → "no grace period active") - 写
.sulde-grace-ended(空 file 即可,或{"ended_at": "<ISO>"}内容) - 输出:enforcement 立刻切回 config
enforcement_level(strict / balanced / lenient) - 提示:
.sulde-grace-*marker 已加.gitignore(不进 git,per-machine state)
§9 跨目录 cp 权限 / 实现细节(B4 fix)
复制 template 时:
权限失败:Agent 先解析精确目标并通过宿主原生权限面申请一次性写入;获准后重试并回读。 若权限仍不可用,报告精确 blocker 并保持原文件不变,禁止输出让用户代跑的 cp 命令。
跨 OS windows:
shutil.copytreeworks.sh在 Windows 没 executable bit,git pre-commit 会以 bash 解释器跑(via Git for Windows / WSL2)—pre-commit-installer.sh内含 OS detect 提示
§10 default 字段写入(各 mode 共用)
写 .sulde-config.yaml 时,默认字段 + 必填字段 区分:
| 字段 | 默认 | 必填? | |
|---|---|---|---|
enabled | true | ❌ | |
role | coordinator | ✅ | |
frontends[] | — | ✅(至少 1) | |
docs_hub | ./docs-hub | ❌ | |
enforcement_level | balanced | ❌ | |
enforcement_grace_period_days | 7 | ❌ | |
lang | auto | ❌ | |
design_source | pencil + ./design/app.pen | ❌ | |
team[] | — | ❌(可后补) | |
build_verify | per-stack 默认(android / ios / flutter / harmony) | ❌ | |
enforcement | 各子项默认 | ❌ | |
session_baseline | {claude_md_inject_lines: 60} | ❌ | |
scope_sensitivity | {sensitive_files: [], sensitive_scaffolds: []} | ❌ | |
os_compatibility | {primary_target: unix, windows_shell_hint: git-bash} | ❌ | |
scope_inheritance | parent | ❌ | |
antipattern.index_path | ./docs-hub/ADR/INDEX.md | ❌ | |
skill_triggers[] | [] | ❌ |
§11 mode 错误处理
| Error | 处理 | |
|---|---|---|
.sulde-config.yaml 不存在 但 mode != init | 提示 "run /sulde-init first" | |
.sulde-config.yaml 存在 但 mode == init | 提示 "use /sulde-migrate-from-v0.1.0 to upgrade or delete .sulde-config.yaml to re-init" | |
| add-* 重名 | 提示 + abort(不覆盖) | |
| copytree 权限失败 | Agent 请求精确的一次性宿主权限并重试;仍失败则安全停止并报告 blocker | |
| 用户 Ctrl-C 中途退出 | .sulde-config.yaml.v2-preview 保留,提示"恢复"路径 |
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/coordinator/configure-sulde/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Extension points
hookPre/post lifecycle hooks
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/ethanreedlabs/sulde/configure-sulde)