关于 join-project
join-project 是面向 Agent 和开发者的只读技能,用于快速了解已有 llmwiki 的项目。它汇总项目背景、近期变化、技术概念及本地 skills 和 harness 状态,不会臆测 wiki 中的缺失内容。
主要功能
- 01读取 llmwiki 索引、日志和架构
- 02提取引用最多的三个概念
- 03检查本地 skills 和 harness 状态
- 04标明信息缺口,不虚构内容
- 05生成导向报告草稿
适用场景
- 01帮助新加入项目的开发者熟悉代码库
- 02查看近期变化和待处理事项
- 03发现缺失的 skills 或 harness 配置
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ rheinmir/ setup --skill join-project安装后在 Claude Code 中输入/join-project确认已加载。
详细介绍
技能:join-project
内容
目的与背景
- 目的: 快速了解已有
llmwiki/的进行中项目,掌握其背景(项目是什么、主要技术要点、近期变更、工具状态),而无需重新分析整个代码库。 - 触发条件(何时使用): Agent 或开发者在项目进行中途加入,且项目已有
llmwiki/;需要快速了解背景,而无需重新分析整个代码库。 - 非目标: 不修改 wiki(对 wiki 页面只读);不安装 harness / RTK / 工具(由
new-project-setup或/harness-update处理,由用户决定);不为尚无 wiki 的代码库做 onboarding(→new-project-setup;缺口部分 →onboard-codebase)。
思维模型
已有 llmwiki/ → index + log + Architecture → 被 [[link]] 引用最多的 3 个概念 → skills/harness 状态 → 为新加入的人员/Agent 整理导览报告。Wiki 是信息源;该技能只读取并总结,不通过猜测填补空白。
输入与输出约定
| 字段 | 必需? | 含义 | |
|---|---|---|---|
| 输入 | repo 有 llmwiki/wiki/index.md | 是 | 缺少 → 停止,建议使用 new-project-setup |
| 输入 | llmwiki/wiki/concepts/Architecture.md | 否 | 若存在,则读取以获取技术栈 |
| 输出 | 导览报告 | 是 | 项目 + 技术栈 · 3 个技术要点 · 近期变更与待处理事项 · skills 状态(已安装/缺失)· 对重大缺口建议使用 onboard-codebase |
| 输出 | harness 状态 | 是 | harness: ON 或 MISSING(仅报告) |
| 输出 | 报告草稿 | 是(无产物/决策时除外) | llmwiki/wiki/sources/draft/DDMMYY-<ten>.md(Delivery 部分) |
规则与能力
- RULE-01(必须):只读——不创建或修改任何 wiki 文件
- RULE-02(必须):不设置 RTK 或其他工具——这是
new-project-setup的工作 - RULE-03(必须):如果 wiki 为空或已过时,明确说明,不得编造背景
- 能力:读取 wiki + 列出本地 skills 目录;仅在 Delivery 部分写入报告草稿。不联网,不安装任何内容。
失败边界
- 不存在
llmwiki/wiki/index.md→ 阻塞:停止,建议运行new-project-setup。 - harness 为 MISSING → 部分完成:仅报告,建议使用
/harness-update,不自行安装。 - Wiki 为空/已过时 → 部分完成:在报告中明确说明,不编造背景。
- Skills 缺失 → 报告并建议
INVOKE: sync-template。
使用方法
主工作流
| 步骤 | 类型 | 输入 | 操作 | 输出/退出 | 失败/后续 |
|---|---|---|---|---|---|
| W01 | 确定性 | repo | 检查 llmwiki 是否有效 + harness 是否已安装 | 正常 / 缺失 | llmwiki 缺失 → 阻塞;harness 缺失 → B01 |
| W02 | 有副作用 | wiki | 读取 index、最新的 20 条 log entries,以及 Architecture.md(如有) | 概览 | — |
| W03 | 确定性 | wiki | 找出被 [[reference]] 引用最多的 3 个概念,并读取各自文件 | 3 个概念 | 结果为空 → B02 |
| W04 | 确定性 | 机器 | 检查工具(.claude/commands/、~/.agents/skills/) | 已安装/缺失 | 缺失 → B03 |
| W05 | 判断 | W02–W04 | 综合并报告 | 导览报告 | 存在重大缺口 → 建议使用 onboard-codebase |
| W06 | 有副作用 | 结果 | 输出报告草稿(Delivery 部分) | 草稿 + index + log | 无产物/决策 → 跳过 |
各步骤详情(W01–W05 的权威来源):
1. 检查——llmwiki 是否有效?Harness 是否已安装?
test -f llmwiki/wiki/index.md && echo ok || echo "llmwiki missing — run new-project-setup instead"
# Harness enforcement (hooks chặn raw/, Origin, index-sync) có chưa:
test -f llmwiki/.claude/hooks/pre_tool_use.py && echo "harness: ON" \
|| echo "harness: MISSING — đề xuất user gọi /harness-update (skill tự cài + backfill nợ)"
如果 llmwiki 缺失:停止,建议运行 new-project-setup。
如果 harness 为 MISSING:仅报告(此技能为只读)——是否安装由用户决定。
2. 读取概览:
# Đọc theo thứ tự:
READ: llmwiki/wiki/index.md # danh sách toàn bộ wiki pages
READ: llmwiki/wiki/log.md (20 entries mới nhất) # recent changes
READ: llmwiki/wiki/concepts/Architecture.md # nếu tồn tại
3. 找出被引用最多的 3 个概念:
grep -roh '\[\[.*?\]\]' llmwiki/wiki/ | sort | uniq -c | sort -rn | head -5
→ 从列表中选出 3 个概念文件,并逐一读取。 结果为空时的回退方式:
ls -t llmwiki/wiki/concepts/ | head -3
按 mtime 读取最前面的 3 个文件。
4. 检查工具:
ls .claude/commands/ 2>/dev/null || echo "Claude skills: not installed"
ls ~/.agents/skills/ 2>/dev/null || echo "Agent skills: not installed"
如果缺失:INVOKE: sync-template(第 7 步会自动安装所有内容)。
5. 综合并报告: 输出:
- 项目是什么、主要技术栈(来自 Architecture.md 或 index)
- 最重要的 3 个技术要点(来自刚才读取的 concepts)
- 近期变更与待处理事项(来自 log.md)
- Skills 状态(已安装/缺失)
- 如果 wiki 存在重大缺口:建议针对相应部分使用
INVOKE: onboard-codebase
分支
| ID | 类型 | 条件 | 行为 | 跳过 / 失败 | 汇合点 |
|---|---|---|---|---|---|
| B01 | conditional_required | 不存在 llmwiki/.claude/hooks/pre_tool_use.py | 报告 "harness: MISSING",建议用户调用 /harness-update | 不自动安装 | W02 |
| B02 | recovery | grep [[...]] 结果为空 | 回退到 ls -t llmwiki/wiki/concepts/,获取最新的 3 个文件,并按修改时间读取前 3 个文件 | concepts/ 为空 → 报告 wiki 为空 | W04 |
| B03 | conditional_required | 缺少 skills(Claude 或 Agent) | 建议 INVOKE: sync-template | — | W05 |
验证与停止条件
W05 报告必须包含全部 5 个部分;所有陈述都必须能追溯到已读取的 wiki 文件。如果缺少 llmwiki,则立即在 W01 停止。
示例
- 正例: repo 中有
llmwiki/+ harness → W01 "ok" + "harness: ON" → 读取 index/log/Architecture → 3 个 concept 顶部链接 → 报告 "Project X,技术栈为 Next.js + Postgres;3 个技术要点……;recent:5 条 log 记录;skills:已安装"。 - 边界情况/失败: repo 中没有
llmwiki/wiki/index.md→ 输出 "llmwiki missing — run new-project-setup instead" 并停止,不再继续读取,也不编造概述。
交付 — 输出报告
完成所有主要 skill 任务后,将一份提案草稿写入 wiki。
步骤
1. 构建文件名:
- 格式:
DDMMYY-<ten>.md DDMMYY= 今天的日期(例如,2026 年 6 月 2 日为020626)<ten>= 用 2–4 个 kebab-case 单词概括完成的工作(例如,landing-page-coteccons、brand-kit-fintech、ingest-auth-spec)
2. 写入 llmwiki/wiki/sources/draft/DDMMYY-<ten>.md:
---
type: draft
title: "DDMMYY-<ten>"
status: proposed
tags: [<skill-name>, output-report]
timestamp: YYYY-MM-DD
---
# DDMMYY-<ten>
**Type:** draft
**Status:** proposed
**Tags:** <skill-name>, output-report
**Proposed:** YYYY-MM-DD
## What
<One sentence — what this skill invocation produced or decided>
## Output
<Key artefacts, files created/modified, or decisions made>
## Files
| File | Action |
|------|--------|
| `path/to/file` | created / modified |
## Notes
- Invoked via: `/<skill-name>` skill
## Origin
- **Draft:** `wiki/sources/draft/DDMMYY-<ten>.md`
- **Commit:** _(filled by verify-before-commit)_
- **Date promoted:** _(filled by verify-before-commit)_
3. 更新 wiki 索引和日志:
llmwiki/wiki/index.md— 追加一行:| [DDMMYY-<ten>](sources/draft/DDMMYY-<ten>.md) | draft | YYYY-MM-DD |llmwiki/wiki/log.md— 追加:## YYYY-MM-DD — <skill-name> — <ten>
仅当该 skill 未产生任何产物且未做出任何决策时才跳过(例如,像
/caveman-stats这样的纯显示模式)。