From 34a3a5dec1ea3e405d0ffd7fddbba7b25a70b445 Mon Sep 17 00:00:00 2001 From: csh Date: Tue, 11 Aug 2026 14:56:21 +0800 Subject: [PATCH] :recycle: refactor(agent): streamline skills and rulesets --- .../codebase-recon.patch | 85 ++++++++++ .gitea/ci/thirdparty_skills.json | 71 ++++---- .gitea/workflows/update-thirdparty-skills.yml | 158 +++++++++++++++++- README.md | 10 +- SKILLS.md | 3 +- rulesets/cpp/index.md | 7 - rulesets/markdown/index.md | 2 +- rulesets/python/index.md | 7 - rulesets/typescript/index.md | 7 - skills/README.md | 20 +-- skills/thirdparty/thirdparty-skills.yml | 67 ++++---- templates/AGENT_RULES.template.md | 15 +- templates/README.md | 2 +- 13 files changed, 333 insertions(+), 121 deletions(-) create mode 100644 .gitea/ci/thirdparty-skill-overlays/codebase-recon.patch diff --git a/.gitea/ci/thirdparty-skill-overlays/codebase-recon.patch b/.gitea/ci/thirdparty-skill-overlays/codebase-recon.patch new file mode 100644 index 00000000..beafdb7b --- /dev/null +++ b/.gitea/ci/thirdparty-skill-overlays/codebase-recon.patch @@ -0,0 +1,85 @@ +diff --git a/skills/thirdparty/codebase-recon/SKILL.md b/skills/thirdparty/codebase-recon/SKILL.md +--- a/skills/thirdparty/codebase-recon/SKILL.md ++++ b/skills/thirdparty/codebase-recon/SKILL.md +@@ -252 +252 @@ Core methodology: +-- [confidence.md](../pathfinding/references/confidence.md) — confidence calibration (shared with pathfinding) ++- [confidence-calibration.md](references/confidence-calibration.md) — evidence-based confidence calibration +@@ -263 +263,0 @@ Related skills: +-- `outfitter:pathfinding` — clarifying requirements before analysis +diff --git a/skills/thirdparty/codebase-recon/references/confidence-calibration.md b/skills/thirdparty/codebase-recon/references/confidence-calibration.md +new file mode 100644 +--- /dev/null ++++ b/skills/thirdparty/codebase-recon/references/confidence-calibration.md +@@ -0,0 +1,66 @@ ++# Confidence Calibration ++ ++Confidence measures how strongly the available evidence supports a codebase ++finding. It does not measure requirement clarity or implementation readiness. ++ ++## Calibration Dimensions ++ ++Consider these dimensions together; do not average them mechanically: ++ ++- **Directness**: runtime observation and source code outweigh inference. ++- **Coverage**: evidence spans the relevant execution paths and modules. ++- **Corroboration**: code, tests, documentation, and history agree. ++- **Counter-evidence**: plausible alternatives and contradictory cases were checked. ++- **Remaining gaps**: unknown behavior is bounded and stated explicitly. ++ ++## Typical Levels ++ ++| Level | Evidence state | ++| --- | --- | ++| 0 | No repository evidence collected yet. | ++| 1 | Broad structure or search results only. | ++| 2 | Relevant code located, but behavior or scope is not verified. | ++| 3 | Main path traced with some corroboration; meaningful gaps remain. | ++| 4 | Multiple sources support the finding and counter-examples were checked. | ++| 5 | Relevant scope is covered, alternatives are ruled out, and conclusions are directly supported. | ++ ++A clear user request can narrow the investigation but cannot raise confidence in ++a finding by itself. Documentation alone normally remains at level 1-2. A ++single code path without tests, history, or runtime confirmation normally ++remains at level 2-3. ++ ++## Examples ++ ++### Focused Question, Strong Evidence ++ ++Question: "Does deleting this adapter break the HTTP client?" ++ ++Evidence: imports show no production consumer, tests cover the replacement ++adapter, and history confirms the old adapter was retained only for migration. ++After checking dynamic loading and configuration references, report at level ++4-5. Cite each source and distinguish observed facts from the final inference. ++ ++### Cross-Module Finding, Incomplete Evidence ++ ++Question: "Why do all write operations depend on the legacy package?" ++ ++Evidence: searches show imports in several modules, but runtime registration ++and generated code have not been inspected. Stay at level 2-3. Continue tracing ++composition roots and tests before claiming an architectural dependency. ++ ++### Early Delivery ++ ++The user asks for findings before runtime behavior or history can be checked. ++Deliver the verified portion at its current level and include `△ Caveats` with: ++ ++- the evidence already inspected; ++- assumptions required by the conclusion; ++- unverified modules or execution paths; ++- the next checks that would materially change confidence. ++ ++Do not present the early report as level 5 even when the likely explanation is ++simple. ++ ++## Delivery Check ++ ++Before assigning level 4 or 5, confirm that: ++ ++- more than one relevant evidence source supports the conclusion; ++- direct observations and inferences are labeled separately; ++- at least one plausible counter-example was considered; ++- the investigated scope matches the wording of the conclusion; ++- remaining uncertainty is absent or explicitly bounded. diff --git a/.gitea/ci/thirdparty_skills.json b/.gitea/ci/thirdparty_skills.json index 2eaf2bb8..bdf14c0b 100644 --- a/.gitea/ci/thirdparty_skills.json +++ b/.gitea/ci/thirdparty_skills.json @@ -13,35 +13,25 @@ "skills/misc" ], "include_skill_dirs": [ - "ask-matt", "code-review", "codebase-design", "diagnosing-bugs", "domain-modeling", - "git-guardrails-claude-code", - "grill-me", "grill-with-docs", "grilling", "handoff", - "implement", "improve-codebase-architecture", "migrate-to-shoehorn", - "prototype", "research", "resolving-merge-conflicts", - "scaffold-exercises", "setup-matt-pocock-skills", - "setup-pre-commit", "tdd", - "teach", "to-questionnaire", "to-spec", "to-tickets", "triage", - "wait-what", "wayfinder", - "wizard", - "writing-for-agents" + "wizard" ] }, { @@ -57,15 +47,6 @@ "data_dir": "src/ui-ux-pro-max/data", "scripts_dir": "src/ui-ux-pro-max/scripts" }, - { - "id": "andrej-karpathy-skills", - "upstream_repo": "https://github.com/forrestchang/andrej-karpathy-skills.git", - "upstream_ref": "main", - "snapshot_dir": "andrej-karpathy-skills", - "sync_mode": "copy_skill_dirs", - "source_list": "skills/thirdparty/.sources/andrej-karpathy-skills.list", - "skills_subdir": "skills" - }, { "id": "brooks-lint", "upstream_repo": "https://github.com/hyhmrright/brooks-lint.git", @@ -92,27 +73,41 @@ "sync_mode": "copy_skill_dirs", "source_list": "skills/thirdparty/.sources/codebase-recon.list", "skills_subdir": "plugins/outfitter/skills", - "include_skill_dirs": ["codebase-recon", "pathfinding"] + "include_skill_dirs": ["codebase-recon"], + "overlay_patch": ".gitea/ci/thirdparty-skill-overlays/codebase-recon.patch" }, { - "id": "codebase-migrate", - "upstream_repo": "https://github.com/ComposioHQ/awesome-codex-skills.git", - "upstream_ref": "master", - "snapshot_dir": "awesome-codex-skills", - "sync_mode": "copy_skill_dirs", - "source_list": "skills/thirdparty/.sources/codebase-migrate.list", - "skills_subdir": ".", - "include_skill_dirs": ["codebase-migrate"] - }, - { - "id": "uncle-bob-craft", - "upstream_repo": "https://github.com/sickn33/antigravity-awesome-skills.git", + "id": "cangjie-skill", + "upstream_repo": "https://github.com/kangarooking/cangjie-skill.git", "upstream_ref": "main", - "snapshot_dir": "antigravity-awesome-skills", - "sync_mode": "copy_skill_dirs", - "source_list": "skills/thirdparty/.sources/uncle-bob-craft.list", - "skills_subdir": "skills", - "include_skill_dirs": ["uncle-bob-craft"] + "snapshot_dir": "cangjie-skill", + "sync_mode": "copy_skill_root", + "source_list": "skills/thirdparty/.sources/cangjie-skill.list", + "output_name": "cangjie-skill", + "include_paths": [ + "SKILL.md", + "LICENSE", + "methodology", + "extractors", + "templates" + ] + }, + { + "id": "darwin-skill", + "upstream_repo": "https://github.com/alchaincyf/darwin-skill.git", + "upstream_ref": "master", + "snapshot_dir": "darwin-skill", + "sync_mode": "copy_skill_root", + "source_list": "skills/thirdparty/.sources/darwin-skill.list", + "output_name": "darwin-skill", + "include_paths": [ + "SKILL.md", + "LICENSE", + "references", + "scripts", + "templates", + "test-prompts.json" + ] } ] } diff --git a/.gitea/workflows/update-thirdparty-skills.yml b/.gitea/workflows/update-thirdparty-skills.yml index 4dcd15e2..3609adfb 100644 --- a/.gitea/workflows/update-thirdparty-skills.yml +++ b/.gitea/workflows/update-thirdparty-skills.yml @@ -293,7 +293,26 @@ jobs: exit 1 fi + # Remove snapshot directories that were managed by an older manifest. + # Managed snapshots are identified by their root SOURCE.md marker. + declare -A active_snapshots=() + while IFS=$'\x1f' read -r source_id upstream_repo upstream_ref snapshot_dir sync_mode remove_paths; do + [ -n "$source_id" ] || continue + active_snapshots["$snapshot_dir"]=1 + done < "$sources_file" + changed=0 + for source_marker in */SOURCE.md; do + [ -f "$source_marker" ] || continue + stale_snapshot="${source_marker%/SOURCE.md}" + if [ -z "${active_snapshots[$stale_snapshot]:-}" ]; then + echo "Removing orphaned third-party snapshot: $stale_snapshot" + rm -rf -- "$stale_snapshot" + git add -A -- "$stale_snapshot" + changed=1 + fi + done + while IFS=$'\x1f' read -r source_id upstream_repo upstream_ref snapshot_dir sync_mode remove_paths; do [ -n "$source_id" ] || continue remove_paths_md="${remove_paths//$'\x1e'/,}" @@ -377,8 +396,9 @@ jobs: echo "📌 Current $THIRDPARTY_BRANCH: $after_ref" if [ "$after_ref" = "$before_ref" ]; then - echo "✅ No thirdparty snapshot change; skip main sync." - exit 0 + echo "✅ No thirdparty snapshot change; continue with manifest-driven main sync." + else + echo "📌 Updated $THIRDPARTY_BRANCH: $before_ref -> $after_ref" fi echo "========================================" @@ -428,6 +448,8 @@ jobs: entry.get("data_dir", ""), entry.get("scripts_dir", ""), "\x1e".join(entry.get("include_skill_dirs", [])), + entry.get("overlay_patch", ""), + "\x1e".join(entry.get("include_paths", [])), ] ) ) @@ -521,6 +543,96 @@ jobs: return 1 } + apply_overlay_patch() { + local source_id="$1" + local patch_file="$2" + + [ -n "$patch_file" ] || return 0 + if [ ! -f "$patch_file" ]; then + echo "ERROR: overlay patch not found for $source_id: $patch_file" >&2 + exit 1 + fi + if ! git apply --check "$patch_file"; then + echo "ERROR: overlay patch no longer applies for $source_id: $patch_file" >&2 + exit 1 + fi + + git apply "$patch_file" + echo "Applied overlay patch for $source_id: $patch_file" + } + + copy_skill_root() { + local snapshot_root="$1" + local output_dir="$2" + local include_paths="$3" + + python3 - "$snapshot_root" "$output_dir" "$include_paths" <<'PY' + import os + import pathlib + import shutil + import sys + + snapshot_root = pathlib.Path(sys.argv[1]).resolve(strict=True) + output_dir = pathlib.Path(sys.argv[2]) + raw_paths = [value for value in sys.argv[3].split("\x1e") if value] + + if not raw_paths: + raise SystemExit("ERROR: copy_skill_root requires include_paths") + + sources = [] + seen = set() + for value in raw_paths: + relative = pathlib.PurePosixPath(value) + if ( + relative.is_absolute() + or not relative.parts + or any(part in ("", ".", "..") for part in relative.parts) + ): + raise SystemExit(f"ERROR: unsafe copy_skill_root include path: {value}") + if value in seen: + raise SystemExit(f"ERROR: duplicate copy_skill_root include path: {value}") + seen.add(value) + + source_path = snapshot_root / pathlib.Path(*relative.parts) + if not source_path.exists(): + raise SystemExit( + f"ERROR: copy_skill_root include path not found: {value}" + ) + source = source_path.resolve(strict=True) + try: + source.relative_to(snapshot_root) + except ValueError: + raise SystemExit( + f"ERROR: copy_skill_root include path escapes snapshot: {value}" + ) + if not source.is_file() and not source.is_dir(): + raise SystemExit( + f"ERROR: unsupported copy_skill_root source type: {value}" + ) + sources.append((relative, source)) + + if os.path.lexists(output_dir): + if output_dir.is_symlink() or output_dir.is_file(): + output_dir.unlink() + else: + shutil.rmtree(output_dir) + output_dir.mkdir(parents=True) + + for relative, source in sources: + destination = output_dir.joinpath(*relative.parts) + destination.parent.mkdir(parents=True, exist_ok=True) + if source.is_dir(): + shutil.copytree(source, destination) + else: + shutil.copy2(source, destination) + + if not (output_dir / "SKILL.md").is_file(): + raise SystemExit( + f"ERROR: copy_skill_root output is missing SKILL.md: {output_dir}" + ) + PY + } + cd "$REPO_DIR" @@ -546,19 +658,39 @@ jobs: exit 1 fi - while IFS=$'\x1f' read -r source_id snapshot_dir sync_mode source_list skills_subdirs output_name platform_config template_root data_dir scripts_dir include_skill_dirs; do + # Clean skill directories and source lists left by sources removed from + # the manifest. Active lists are cleared below before being rewritten. + declare -A active_source_lists=() + while IFS=$'\x1f' read -r source_id snapshot_dir sync_mode source_list skills_subdirs output_name platform_config template_root data_dir scripts_dir include_skill_dirs overlay_patch include_paths; do + [ -n "$source_id" ] || continue + active_source_lists["$source_list"]=1 + done < "$sources_file" + + for source_list in skills/thirdparty/.sources/*.list; do + [ -f "$source_list" ] || continue + if [ -z "${active_source_lists[$source_list]:-}" ]; then + echo "Removing orphaned third-party source list: $source_list" + while IFS= read -r name; do + [ -n "$name" ] || continue + rm -rf -- "skills/thirdparty/$name" + done < "$source_list" + rm -f -- "$source_list" + fi + done + + while IFS=$'\x1f' read -r source_id snapshot_dir sync_mode source_list skills_subdirs output_name platform_config template_root data_dir scripts_dir include_skill_dirs overlay_patch include_paths; do [ -n "$source_id" ] || continue if [ -f "$source_list" ]; then while IFS= read -r name; do [ -n "$name" ] || continue - rm -rf "skills/$name" + rm -rf "skills/thirdparty/$name" done < "$source_list" fi done < "$sources_file" declare -A owners=() - while IFS=$'\x1f' read -r source_id snapshot_dir sync_mode source_list skills_subdirs output_name platform_config template_root data_dir scripts_dir include_skill_dirs; do + while IFS=$'\x1f' read -r source_id snapshot_dir sync_mode source_list skills_subdirs output_name platform_config template_root data_dir scripts_dir include_skill_dirs overlay_patch include_paths; do [ -n "$source_id" ] || continue git archive --format=tar "origin/${THIRDPARTY_BRANCH}" "$snapshot_dir" | tar -xf - -C "$tmp_dir" @@ -615,12 +747,28 @@ jobs: names+=("$name") owners["$name"]="$source_id" ;; + copy_skill_root) + name="$output_name" + if [ -n "${owners[$name]:-}" ] && [ "${owners[$name]}" != "$source_id" ]; then + echo "ERROR: duplicate third-party skill name: $name" >&2 + exit 1 + fi + if tracked_skill_exists "$name"; then + echo "ERROR: skill name conflict with tracked skill: $name" >&2 + exit 1 + fi + + copy_skill_root "$snapshot_root" "skills/thirdparty/$name" "$include_paths" + names+=("$name") + owners["$name"]="$source_id" + ;; *) echo "ERROR: unsupported sync mode: $sync_mode" >&2 exit 1 ;; esac + apply_overlay_patch "$source_id" "$overlay_patch" printf "%s\n" "${names[@]}" | sort > "$source_list" done < "$sources_file" diff --git a/README.md b/README.md index 499aab09..aa426dfb 100644 --- a/README.md +++ b/README.md @@ -110,10 +110,10 @@ TSL 语法事实唯一由 `tsl-syntax-reference` 管理;`rulesets/tsl/index.md - `rulesets/index.md`:规则集索引(跨语言) - `rulesets/tsl/index.md`:TSL 领域路由与事实边界 -- `rulesets/cpp/index.md`:C++ 核心约定(46 行) -- `rulesets/python/index.md`:Python 核心约定(44 行) -- `rulesets/typescript/index.md`:TypeScript 核心约定(47 行) -- `rulesets/markdown/index.md`:Markdown 核心约定(31 行,仅代码格式化) +- `rulesets/cpp/index.md`:C++ 核心约定 +- `rulesets/python/index.md`:Python 核心约定 +- `rulesets/typescript/index.md`:TypeScript/JavaScript 核心约定 +- `rulesets/markdown/index.md`:Markdown 格式化边界(仅代码格式化) 更多说明:`rulesets/index.md` @@ -247,7 +247,7 @@ skills = ["tsl-syntax-reference", "tsl-api-reference"] 1. **仓库级(跨语言)共识**:对所有语言都成立的规则与流程。 - 提交信息:`docs/common/commit_message.md` - 行尾与文本规范:`.gitattributes` - - 智能体最低要求:`.agents/*`(工作原则、质量底线、安全边界) + - 智能体最低要求:`.agents/*`(语言硬约束、事实所有者路由和阻断边界) 2. **语言级(Language-specific)规范**:只对某个语言成立的风格与工具。 - 例如 TSL 的命名/文件顶层声明限制、C++ 的 `.clang-format/.clang-tidy`、Python 的 `ruff`、TypeScript 的 ESLint/类型约束等。 diff --git a/SKILLS.md b/SKILLS.md index 55f66ba3..4daa0178 100644 --- a/SKILLS.md +++ b/SKILLS.md @@ -171,7 +171,8 @@ skills/ **来源登记**: - `skills/thirdparty/.sources/`:来源清单目录(`*.list` 文件) -- `skills/thirdparty/thirdparty-skills.yml`:统一配置文件 +- `.gitea/ci/thirdparty_skills.json`:工作流读取的同步来源清单 +- `skills/thirdparty/thirdparty-skills.yml`:供人工查阅的第三方来源登记表 **同步流程**: diff --git a/rulesets/cpp/index.md b/rulesets/cpp/index.md index 503cc74c..8db153b0 100644 --- a/rulesets/cpp/index.md +++ b/rulesets/cpp/index.md @@ -7,13 +7,6 @@ - 作为仓库级基线规则集使用;更靠近代码目录的规则更具体并可覆盖基线。 - 当智能体规则与 docs 冲突:安全/合规优先,其次保持仓库一致性。 -## 智能体工作原则(铁律) - -1. 先理解目标与上下文,再动手改代码 -2. 修改要小而清晰;避免无关重构 -3. 发现安全问题(内存安全/鉴权漏洞)立即标注或修复 -4. 不引入新依赖或工具,除非明确要求 - ## C++ 核心约定(不可违反) - 使用 C++23,关闭编译器扩展,并固定经过验证的 CMake、编译器和 Conan 2 版本。 diff --git a/rulesets/markdown/index.md b/rulesets/markdown/index.md index d4e2cee4..5f88cadb 100644 --- a/rulesets/markdown/index.md +++ b/rulesets/markdown/index.md @@ -2,7 +2,7 @@ 本规则集定义 AI/自动化智能体在处理 Markdown(`.md`)文件时必须遵守的核心约束。 -## 智能体工作原则(铁律) +## Markdown 格式化边界 1. 只调整代码块与行内代码;不改写正文内容 2. 不改变标题层级、列表结构、段落顺序 diff --git a/rulesets/python/index.md b/rulesets/python/index.md index eadab96c..8312fe6d 100644 --- a/rulesets/python/index.md +++ b/rulesets/python/index.md @@ -7,13 +7,6 @@ - 作为仓库级基线规则集使用;更靠近代码目录的规则更具体并可覆盖基线。 - 当智能体规则与 docs 冲突:安全/合规优先,其次保持仓库一致性。 -## 智能体工作原则(铁律) - -1. 先理解目标与上下文,再动手改代码 -2. 修改要小而清晰;避免无关重构 -3. 发现安全问题(明文密钥/鉴权漏洞)立即标注或修复 -4. 不引入新依赖或工具,除非明确要求 - ## Python 核心约定(不可违反) - 代码风格:Google Python Style Guide;优先使用仓库既有配置(`pyproject.toml`, `.flake8`, `.pylintrc`) diff --git a/rulesets/typescript/index.md b/rulesets/typescript/index.md index 1ce0daf6..9562e1aa 100644 --- a/rulesets/typescript/index.md +++ b/rulesets/typescript/index.md @@ -7,13 +7,6 @@ - 作为仓库级基线规则集使用;更靠近代码目录的规则更具体并可覆盖基线。 - 当智能体规则与 docs 冲突:安全/合规优先,其次保持仓库一致性。 -## 智能体工作原则(铁律) - -1. 先理解目标与上下文,再动手改代码 -2. 修改要小而清晰;避免无关重构 -3. 发现安全问题(明文密钥/鉴权漏洞)立即标注或修复 -4. 不引入新依赖或工具,除非明确要求 - ## TypeScript/JavaScript 核心约定(不可违反) - 语言标准:业务代码优先 TypeScript(`.ts/.tsx`);JavaScript(`.js/.mjs/.cjs`)仅用于脚本、配置或兼容场景 diff --git a/skills/README.md b/skills/README.md index 7ba60667..059f8447 100644 --- a/skills/README.md +++ b/skills/README.md @@ -28,7 +28,7 @@ | `grill-with-docs` / `grilling` | 收敛 design tree 并同步领域词汇/ADR | | `to-spec` | 把已确认上下文合成为 feature spec | | `to-tickets` | 拆成带 blocking edges 的 tracer-bullet tickets | -| `implement` / `tdd` | 在约定 seam 上按 ticket 实现和验证 | +| `tdd` | 在约定 seam 上按 ticket 采用测试驱动实现和验证 | | `code-review` | 对固定点后的提交做 Standards/Spec 双轴审查 | | `handoff` | 跨 session 交接未完成上下文 | @@ -51,16 +51,14 @@ Code review 和质量审查工具集,包含共享参考资料目录 `_shared` ### 代码库侦察与迁移 -| Skill | 作用 | -| ------------------ | --------------------------------------------------------- | -| `codebase-recon` | 通过 git 历史和代码结构做 risk scan、热点分析、重构前侦察 | -| `pathfinding` | 需求澄清和 confidence calibration | -| `codebase-migrate` | 大代码库迁移、多文件 refactor、分批变更与 CI 验证工作流 | +| Skill | 作用 | +| ---------------- | --------------------------------------------------------- | +| `codebase-recon` | 通过 git 历史和代码结构做 risk scan、热点分析、重构前侦察 | ### 其他 -| Skill | 作用 | -| --------------------- | ------------------------------------------------------------- | -| `ui-ux-pro-max` | UI/UX 设计知识库,包含风格、配色、字体、组件和栈相关建议 | -| `karpathy-guidelines` | 写代码、审查、重构时降低 LLM 常见错误:保持简单、聚焦、可验证 | -| `uncle-bob-craft` | Clean Architecture、SOLID、设计模式误用和代码工匠实践审查 | +| Skill | 作用 | +| --------------- | -------------------------------------------------------- | +| `ui-ux-pro-max` | UI/UX 设计知识库,包含风格、配色、字体、组件和栈相关建议 | +| `cangjie-skill` | 将书籍、课程、访谈等长内容蒸馏为原子化、可执行的 skills | +| `darwin-skill` | 评估并迭代优化 skills,以测试提示和成对评审控制质量回归 | diff --git a/skills/thirdparty/thirdparty-skills.yml b/skills/thirdparty/thirdparty-skills.yml index de701b5d..82a04e1b 100644 --- a/skills/thirdparty/thirdparty-skills.yml +++ b/skills/thirdparty/thirdparty-skills.yml @@ -31,46 +31,55 @@ skills: upstream_ref: main upstream_paths: - plugins/outfitter/skills/codebase-recon - - plugins/outfitter/skills/pathfinding upstream_layout: multi_skill_subset selected_for: - risk scan - git-history hotspot analysis - codebase reconnaissance before planning - refactor-risk assessment - - confidence calibration reference dependency + - evidence-based confidence calibration playbook_fit: pre-design and pre-refactor codebase risk discovery notes: - Upstream skills live inside a larger agents repository. - - pathfinding is included because codebase-recon links to pathfinding/references/confidence.md. + - A sync overlay makes codebase-recon confidence calibration self-contained. - - id: codebase-migrate + - id: cangjie-skill sync: enabled - upstream_repo: https://github.com/ComposioHQ/awesome-codex-skills - upstream_ref: master - upstream_path: codebase-migrate - upstream_layout: single_skill_dir - selected_for: - - large codebase migrations - - multi-file refactors - - reviewable refactor batches - - CI-verified migration workflows - notes: - - Sourced from awesome-codex-skills. - - - id: uncle-bob-craft - sync: enabled - upstream_repo: https://github.com/sickn33/antigravity-awesome-skills + upstream_repo: https://github.com/kangarooking/cangjie-skill upstream_ref: main - upstream_path: skills/uncle-bob-craft - upstream_layout: single_skill_from_suite + upstream_layout: repository_root_skill + upstream_paths: + - SKILL.md + - LICENSE + - methodology + - extractors + - templates selected_for: - - Clean Architecture review - - SOLID review - - design-pattern misuse checks - - architecture-boundary refactoring - - code craftsmanship review - playbook_fit: architecture and code-quality craft review support + - distilling books and long-form content into executable skills + - extracting reusable frameworks, principles, and methods + - generating Darwin-compatible skill test prompts + playbook_fit: long-form knowledge distillation into reusable skills notes: - - Upstream skill includes references for Clean Architecture, Clean Coder, Clean Agile, and design-pattern discipline. - - Registered as a single selected skill from a larger community skill suite. + - The repository root is the skill directory. + - Licensed under AGPL-3.0. + + - id: darwin-skill + sync: enabled + upstream_repo: https://github.com/alchaincyf/darwin-skill + upstream_ref: master + upstream_layout: repository_root_skill + upstream_paths: + - SKILL.md + - LICENSE + - references + - scripts + - templates + - test-prompts.json + selected_for: + - skill quality assessment + - test-prompt-driven skill optimization + - paired evaluation and regression control + playbook_fit: evaluation and iterative optimization of skills + notes: + - The repository root is the skill directory. + - Licensed under MIT. diff --git a/templates/AGENT_RULES.template.md b/templates/AGENT_RULES.template.md index 9afb91e4..4ba8b8d8 100644 --- a/templates/AGENT_RULES.template.md +++ b/templates/AGENT_RULES.template.md @@ -80,7 +80,7 @@ setup-matt-pocock-skills ``` - 每个仓库首次使用时运行 `setup-matt-pocock-skills`,本地开发选择 local markdown tracker -- 正式仓库设计使用 `grill-with-docs`;`grill-me` 只用于无仓库的一次性讨论 +- 正式仓库设计使用 `grill-with-docs` - 进入 `grill-with-docs` 或本地 ticket 执行协议前,重新读取 `memory-bank/project-brief.md`、 `memory-bank/tech-context.md` 和 `memory-bank/system-patterns.md` - `grilling` 必须走完整 design tree,frontier 清空并经用户确认后才进入 `to-spec` @@ -96,8 +96,6 @@ setup-matt-pocock-skills `to-spec -> to-tickets`,不得从决策 ticket 直接跳到实现 - `research` 产出的高可信一手来源报告先进入 `grill-with-docs`,作为设计输入;调研不能 替代 grilling -- 设计问题需要 runnable answer 时,从原设计会话 `handoff` 到独立目录运行 - `prototype`,再 `handoff` 结论回原设计会话 - 已由 `to-tickets` 生成的 ticket 直接从 `main_loop.py claim -> 本地 ticket 执行协议` 开始, 不再 triage 或重复需求采访 @@ -367,12 +365,11 @@ partial feature 还需 `--allow-partial`。返回 `RETRY: feature needs main syn 以下能力在对应阶段内按需使用,不替代上面的入口路由和证据门禁: -| Skill | 触发条件 | -| ------------------ | ----------------------------------- | -| `codebase-recon` | 架构、跨模块、重构、迁移或风险不明 | -| `brooks-audit` | 架构边界和长期维护性审查 | -| `codebase-migrate` | 大规模迁移或宽重构 | -| `commit-message` | 需要检查 staged diff 或生成提交信息 | +| Skill | 触发条件 | +| ---------------- | ----------------------------------- | +| `codebase-recon` | 架构、跨模块、重构、迁移或风险不明 | +| `brooks-audit` | 架构边界和长期维护性审查 | +| `commit-message` | 需要检查 staged diff 或生成提交信息 | ## 需要确认的场景 diff --git a/templates/README.md b/templates/README.md index bda3809a..e033cb72 100644 --- a/templates/README.md +++ b/templates/README.md @@ -108,7 +108,7 @@ setup-matt-pocock-skills -> to-tickets -> main_loop.py enqueue -> main_loop.py claim - -> implement + tdd + -> 本地 ticket 执行协议(tdd) -> commit -> code-review -> main_loop.py finish