new-project-setup
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSkill: new-project-setup
Skill: new-project-setup
WHAT
是什么
Purpose và context
目的与上下文
- Purpose: dựng từ đầu cho một project: pull template + install skill, khung thư mục wiki, RTK (WSL), seed wiki, rồi onboard codebase.
llmwiki/ - Trigger (when to use): Project chưa có . Hoặc reset từ đầu.
llmwiki/ - Non-goals: không tự cài skill riêng (sync-template step 7 lo); không gọi lint riêng (onboard-codebase đã gồm); không cài RTK ngoài WSL; không tự kích hoạt ().
disable-model-invocation: true
- 目的: 为一个项目从零构建 :拉取 template + 安装 skill、创建 wiki 目录结构、配置 RTK(WSL)、初始化 wiki,然后 onboard codebase。
llmwiki/ - 触发条件(何时使用): 项目尚无 。或者从头重置。
llmwiki/ - 非目标: 不单独安装 skill(由 sync-template 第 7 步处理);不单独调用 lint(onboard-codebase 已包含);不在 WSL 之外安装 RTK;不自行激活()。
disable-model-invocation: true
Mental model
心智模型
check llmwiki → sync-template (template + skills) → khung thư mục wiki → RTK (chỉ WSL) → seed (project-requirements + log + index) → onboard-codebase (concepts + entities + lint) → output report检查 llmwiki → sync-template(template + skills)→ wiki 目录结构 → RTK(仅 WSL)→ seed(project-requirements + log + index)→ onboard-codebase(concepts + entities + lint)→ 输出报告Input và output contract
输入与输出契约
| Field | Required? | Ý nghĩa | |
|---|---|---|---|
| In | thư mục project | có | chạy tại root project |
| In | README.md, package.json hoặc go.mod | không | nguồn project name + stack cho seed |
| In | trả lời reset | khi | có reset hay không |
| Out | | có | khung thư mục + |
| Out | | có | frontmatter OKF + |
| Out | RTK đã hook | chỉ WSL | |
| Out | wiki đã onboard + draft output report | có | concepts/entities do onboard-codebase sinh |
| 字段 | 是否必填 | 含义 | |
|---|---|---|---|
| 输入 | 项目目录 | 是 | 在项目根目录运行 |
| 输入 | README.md、package.json 或 go.mod | 否 | seed 所需的项目名称与技术栈来源 |
| 输入 | 重置答复 | 当 | 是否重置 |
| 输出 | | 是 | 目录结构 + |
| 输出 | | 是 | 符合 OKF 的 frontmatter + |
| 输出 | RTK 已完成 hook | 仅 WSL | |
| 输出 | wiki 已完成 onboarding + 草稿 Output Report | 是 | onboard-codebase 生成的 concepts/entities |
Rules và capabilities
规则与能力
- RULE-01 (MUST): Skill install: sync-template step 7 xử lý — không duplicate
- RULE-02 (MUST): onboard-codebase includes lint — không gọi lint thêm
- RULE-03 (MUST): RTK guard bắt buộc trước curl
uname -r | grep -qi microsoft - Capabilities: ghi filesystem project; mạng (pull template, tải RTK); sửa config agent global () chỉ qua
~/.claude/settings.json; gọi skill con sync-template và onboard-codebase.rtk init -g
- RULE-01(MUST):Skill 安装:由 sync-template 第 7 步处理——不重复执行
- RULE-02(MUST):onboard-codebase 包含 lint——不额外调用 lint
- RULE-03(MUST):curl 之前必须执行 RTK guard
uname -r | grep -qi microsoft - 能力:写入项目文件系统;访问网络(拉取 template、下载 RTK);仅通过 修改全局 Agent 配置(
rtk init -g);调用 sync-template 和 onboard-codebase 子 skill。~/.claude/settings.json
Failure boundaries
失败边界
- đã tồn tại → clarify: hỏi user reset không; không reset thì dừng.
llmwiki/ - Không phải WSL → bước RTK skip (không phải lỗi).
- Hook RTK không thấy trong settings.json → partial, in "MANUAL: add rtk hook to settings.json".
- sync-template hoặc onboard-codebase lỗi → failed ở bước đó, báo user.
- 已存在 → clarify:询问用户是否重置;如果不重置则停止。
llmwiki/ - 不是 WSL → 跳过 RTK 步骤(不是错误)。
- 在 settings.json 中找不到 RTK hook → partial,输出 。
"MANUAL: add rtk hook to settings.json" - sync-template 或 onboard-codebase 失败 → 在该步骤标记 failed,并告知用户。
HOW
如何执行
Main workflow
主工作流
| Step | Type | Inputs | Action | Outputs/exit | Failure/next |
|---|---|---|---|---|---|
| W01 | deterministic | project root | CHECK llmwiki tồn tại | | exists → B01 |
| W02 | effect | mạng | INVOKE sync-template: pull template + install skills | commands + skills đã cài | lỗi → failed |
| W03 | effect | — | Init wiki folder structure | khung thư mục | — |
| W04 | effect | OS | RTK token proxy (WSL only) — B02 | RTK hooked | không WSL → skip; thiếu hook → MANUAL |
| W05 | judgment | README/package.json/go.mod | Seed wiki: project-requirements, log, index | trang seed | — |
| W06 | effect | codebase | INVOKE onboard-codebase | concepts + entities + lint | lỗi → failed |
| W07 | effect | kết quả | Output Report draft | draft + index + log | — |
Chi tiết từng bước (nguồn chân lý cho W01–W07):
1. CHECK llmwiki tồn tại:
bash
test -d llmwiki && echo exists || echo missingexistsconcepts/entities/log.mdsources/2. Pull template + install skills:
bash
undefined| 步骤 | 类型 | 输入 | 操作 | 输出/退出 | 失败/下一步 |
|---|---|---|---|---|---|
| W01 | deterministic | 项目根目录 | 检查 llmwiki 是否存在 | | exists → B01 |
| W02 | effect | 网络 | 调用 sync-template:拉取 template + 安装 skills | 已安装 commands + skills | 失败 → failed |
| W03 | effect | — | 初始化 wiki 目录结构 | 目录结构 | — |
| W04 | effect | 操作系统 | RTK token proxy(仅 WSL)— B02 | RTK 已完成 hook | 非 WSL → skip;缺少 hook → MANUAL |
| W05 | judgment | README/package.json/go.mod | 初始化 wiki:project-requirements、log、index | seed 页面 | — |
| W06 | effect | codebase | 调用 onboard-codebase | concepts + entities + lint | 失败 → failed |
| W07 | effect | 执行结果 | 起草 Output Report | 草稿 + index + log | — |
以下是每个步骤的详细信息(W01–W07 的唯一事实来源):
1. 检查 llmwiki 是否存在:
bash
test -d llmwiki && echo exists || echo missingexistsconcepts/entities/log.mdsources/2. 拉取 template + 安装 skills:
bash
undefinedINVOKE: sync-template
INVOKE: sync-template
sync-template tự pull từ rheinmir/setup@orca và install skills vào:
sync-template tự pull từ rheinmir/setup@orca và install skills vào:
.claude/commands/ → Claude Code
.claude/commands/ → Claude Code
~/.agents/skills/*/SKILL.md → OpenCode / Antigravity
~/.agents/skills/*/SKILL.md → OpenCode / Antigravity
**3. Init wiki folder structure:**
```bash
mkdir -p llmwiki/wiki/{concepts,entities,sources/draft} llmwiki/{skills,raw}
touch llmwiki/wiki/index.md llmwiki/wiki/log.md llmwiki/raw/.gitkeep4. RTK token proxy (WSL only):
bash
undefined
**3. 初始化 wiki 目录结构:**
```bash
mkdir -p llmwiki/wiki/{concepts,entities,sources/draft} llmwiki/{skills,raw}
touch llmwiki/wiki/index.md llmwiki/wiki/log.md llmwiki/raw/.gitkeep4. RTK token proxy(仅 WSL):
bash
undefinedGuard — chỉ chạy trong WSL:
Guard — chỉ chạy trong WSL:
uname -r | grep -qi microsoft || { echo "RTK install: WSL only — skip"; exit 0; }
uname -r | grep -qi microsoft || { echo "RTK install: WSL only — skip"; exit 0; }
CHECK đã cài chưa:
CHECK đã cài chưa:
rtk --version 2>/dev/null || {
curl -fsSL https://github.com/rtk-ai/rtk/releases/latest/download/rtk-x86_64-unknown-linux-musl.tar.gz
| tar xz -C /usr/local/bin }
| tar xz -C /usr/local/bin }
rtk --version 2>/dev/null || {
curl -fsSL https://github.com/rtk-ai/rtk/releases/latest/download/rtk-x86_64-unknown-linux-musl.tar.gz
| tar xz -C /usr/local/bin }
| tar xz -C /usr/local/bin }
Init global config + patch ~/.claude/settings.json:
Init global config + patch ~/.claude/settings.json:
rtk init -g
rtk init -g
Verify hook:
Verify hook:
grep -q "rtk hook claude" ~/.claude/settings.json && echo "RTK hooked" || echo "MANUAL: add rtk hook to settings.json"
**5. Seed wiki:**
```bashgrep -q "rtk hook claude" ~/.claude/settings.json && echo "RTK hooked" || echo "MANUAL: add rtk hook to settings.json"
**5. 初始化 wiki:**
```bashĐọc README.md, package.json hoặc go.mod → project name + stack
Đọc README.md, package.json hoặc go.mod → project name + stack
- Tạo `llmwiki/wiki/sources/project-requirements.md` — frontmatter + `## Origin`
- **OKF v0.1 (R9):** frontmatter là khối YAML `---` có `type` không rỗng — copy `_template.md`, đừng dùng `**Type:**` bold (format cũ).
- Append `llmwiki/wiki/log.md`: `## YYYY-MM-DD — init — <project-name>`
- Tạo `llmwiki/wiki/index.md` — header + empty table
**6. INVOKE: onboard-codebase** → populate `concepts/` + `entities/` + lint.- 创建 `llmwiki/wiki/sources/project-requirements.md`——包含 frontmatter + `## Origin`
- **OKF v0.1(R9):** frontmatter 是包含非空 `type` 的 YAML `---` 块——复制 `_template.md`,不要使用 `**Type:**` 加粗格式(旧格式)。
- 向 `llmwiki/wiki/log.md` 追加:`## YYYY-MM-DD — init — <project-name>`
- 创建 `llmwiki/wiki/index.md`——标题 + 空表格
**6. 调用:onboard-codebase** → 填充 `concepts/` + `entities/` + 执行 lint。Branches
分支
| ID | Kind | Guard | Hành vi | Skip / failure | Rejoin |
|---|---|---|---|---|---|
| B01 | conditional_required | W01 trả | hỏi user reset; reset = xóa | user không reset → dừng | W02 |
| B02 | conditional_required | kernel chứa "microsoft" (WSL) | cài RTK nếu chưa có, | không WSL → skip bước 4 | W05 |
| ID | 类型 | Guard | 行为 | 跳过/失败 | 汇合点 |
|---|---|---|---|---|---|
| B01 | conditional_required | W01 返回 | 询问用户是否重置;重置 = 删除 | 用户不重置 → 停止 | W02 |
| B02 | conditional_required | kernel 包含 | 如果尚未安装则安装 RTK,执行 | 非 WSL → 跳过第 4 步 | W05 |
Validation và stopping
验证与停止条件
Kiểm bằng lệnh: ra ; trên WSL grep settings.json in "RTK hooked"; có frontmatter (R9) + . Lint chạy trong onboard-codebase, không chạy lại. Dừng sau output report.
test -d llmwikiexistsproject-requirements.mdtype## Origin使用以下命令进行验证: 输出 ;在 WSL 上,grep settings.json 输出 ; 包含 frontmatter (R9)+ 。Lint 在 onboard-codebase 中运行,不重复运行。输出报告后停止。
test -d llmwikiexists"RTK hooked"project-requirements.mdtype## OriginExamples
示例
- Positive: repo Go mới chưa có trên macOS → W01
llmwiki/→ sync-template → mkdir khung → bước RTK in "RTK install: WSL only — skip" → seed từmissing→ onboard-codebase → draftgo.mod.DDMMYY-init-<project>.md - Boundary/failure: chạy lại trên project đã có → W01
llmwiki/→ hỏi reset; user đồng ý → chỉ xóaexists+concepts/,entities/vàlog.mdcòn nguyên.sources/
- 正向: macOS 上一个尚无 的新 Go repo → W01
llmwiki/→ sync-template → mkdir 目录结构 → RTK 步骤输出missing→ 从"RTK install: WSL only — skip"seed → onboard-codebase → 草稿go.mod。DDMMYY-init-<project>.md - 边界/失败: 在已有 的项目中重新运行 → W01
llmwiki/→ 询问是否重置;用户同意 → 仅删除exists+concepts/,entities/和log.md保持不变。sources/
Delivery — Output Report
交付——Output Report
After all main skill tasks complete, write a propose draft to the wiki.
所有主 skill 任务完成后,向 wiki 写入一份 proposed 草稿。
Steps
步骤
1. Build the filename:
- Format:
DDMMYY-<ten>.md - = today (e.g.,
DDMMYYfor 2 June 2026)020626 - = 2–4 kebab-case words summarising what was done (e.g.,
<ten>,landing-page-coteccons,brand-kit-fintech)ingest-auth-spec
2. Write :
llmwiki/wiki/sources/draft/DDMMYY-<ten>.md---
type: draft
title: "DDMMYY-<ten>"
status: proposed
tags: [<skill-name>, output-report]
timestamp: YYYY-MM-DD
---1. 构建文件名:
- 格式:
DDMMYY-<ten>.md - = 今天(例如,
DDMMYY表示 2026 年 6 月 2 日)020626 - = 2–4 个用于概括工作内容的 kebab-case 单词(例如,
<ten>、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>
DDMMYY-<ten>
Type: draft
Status: proposed
Tags: <skill-name>, output-report
Proposed: YYYY-MM-DD
Type: draft
Status: proposed
Tags: <skill-name>, output-report
Proposed: YYYY-MM-DD
What
What
<One sentence — what this skill invocation produced or decided>
<One sentence — what this skill invocation produced or decided>
Output
Output
<Key artefacts, files created/modified, or decisions made>
<Key artefacts, files created/modified, or decisions made>
Files
Files
| File | Action |
|---|---|
| created / modified |
| File | Action |
|---|---|
| created / modified |
Notes
Notes
- Invoked via: skill
/<skill-name>
- Invoked via: skill
/<skill-name>
Origin
Origin
- Draft:
wiki/sources/draft/DDMMYY-<ten>.md - Commit: (filled by verify-before-commit)
- Date promoted: (filled by verify-before-commit)
**3. Update wiki index & log:**
- `llmwiki/wiki/index.md` — append one row: `| [DDMMYY-<ten>](sources/draft/DDMMYY-<ten>.md) | draft | YYYY-MM-DD |`
- `llmwiki/wiki/log.md` — append: `## YYYY-MM-DD — <skill-name> — <ten>`
> Skip only when the skill produces zero artefacts and zero decisions (e.g., a pure display mode like `/caveman-stats`).- Draft:
wiki/sources/draft/DDMMYY-<ten>.md - Commit: (filled by verify-before-commit)
- Date promoted: (filled by verify-before-commit)
**3. 更新 wiki index 与 log:**
- `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` 这类纯显示模式)。