new-project-setup

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Skill: new-project-setup

Skill: new-project-setup

WHAT

是什么

Purpose và context

目的与上下文

  • Purpose: dựng
    llmwiki/
    từ đầu cho một project: pull template + install skill, khung thư mục wiki, RTK (WSL), seed wiki, rồi onboard codebase.
  • Trigger (when to use): Project chưa có
    llmwiki/
    . Hoặc reset từ đầu.
  • 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
    ).
  • 目的: 为一个项目从零构建
    llmwiki/
    :拉取 template + 安装 skill、创建 wiki 目录结构、配置 RTK(WSL)、初始化 wiki,然后 onboard codebase。
  • 触发条件(何时使用): 项目尚无
    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

输入与输出契约

FieldRequired?Ý nghĩa
Inthư mục projectcóchạy tại root project
InREADME.md, package.json hoặc go.modkhôngnguồn project name + stack cho seed
Intrả lời resetkhi
llmwiki/
đã tồn tại
có reset hay không
Out
llmwiki/wiki/{concepts,entities,sources/draft}
,
llmwiki/{skills,raw}
cókhung thư mục +
index.md
,
log.md
,
raw/.gitkeep
Out
llmwiki/wiki/sources/project-requirements.md
cófrontmatter OKF +
## Origin
OutRTK đã hookchỉ WSL
rtk init -g
+ hook trong
~/.claude/settings.json
Outwiki đã onboard + draft output reportcóconcepts/entities do onboard-codebase sinh
字段是否必填含义
输入项目目录是在项目根目录运行
输入README.md、package.json 或 go.mod否seed 所需的项目名称与技术栈来源
输入重置答复当
llmwiki/
已存在时
是否重置
输出
llmwiki/wiki/{concepts,entities,sources/draft}
、
llmwiki/{skills,raw}
是目录结构 +
index.md
、
log.md
、
raw/.gitkeep
输出
llmwiki/wiki/sources/project-requirements.md
是符合 OKF 的 frontmatter +
## Origin
输出RTK 已完成 hook仅 WSL
rtk init -g
+
~/.claude/settings.json
中的 hook
输出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
    uname -r | grep -qi microsoft
    bắt buộc trước curl
  • Capabilities: ghi filesystem project; mạng (pull template, tải RTK); sửa config agent global (
    ~/.claude/settings.json
    ) chỉ qua
    rtk init -g
    ; gọi skill con sync-template và onboard-codebase.
  • 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);仅通过
    rtk init -g
    修改全局 Agent 配置(
    ~/.claude/settings.json
    );调用 sync-template 和 onboard-codebase 子 skill。

Failure boundaries

失败边界

  • llmwiki/
    đã tồn tại → clarify: hỏi user reset không; không reset thì dừng.
  • 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.
  • llmwiki/
    已存在 → clarify:询问用户是否重置;如果不重置则停止。
  • 不是 WSL → 跳过 RTK 步骤(不是错误)。
  • 在 settings.json 中找不到 RTK hook → partial,输出
    "MANUAL: add rtk hook to settings.json"
    。
  • sync-template 或 onboard-codebase 失败 → 在该步骤标记 failed,并告知用户。

HOW

如何执行

Main workflow

主工作流

StepTypeInputsActionOutputs/exitFailure/next
W01deterministicproject rootCHECK llmwiki tồn tại
exists
hoặc
missing
exists → B01
W02effectmạngINVOKE sync-template: pull template + install skillscommands + skills đã càilỗi → failed
W03effect—Init wiki folder structurekhung thư mục—
W04effectOSRTK token proxy (WSL only) — B02RTK hookedkhông WSL → skip; thiếu hook → MANUAL
W05judgmentREADME/package.json/go.modSeed wiki: project-requirements, log, indextrang seed—
W06effectcodebaseINVOKE onboard-codebaseconcepts + entities + lintlỗi → failed
W07effectkết quảOutput Report draftdraft + 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 missing
exists
→ hỏi user reset không. Reset = xóa
concepts/
+
entities/
, GIỮ
log.md
+
sources/
.
2. Pull template + install skills:
bash
undefined
步骤类型输入操作输出/退出失败/下一步
W01deterministic项目根目录检查 llmwiki 是否存在
exists
或
missing
exists → B01
W02effect网络调用 sync-template:拉取 template + 安装 skills已安装 commands + skills失败 → failed
W03effect—初始化 wiki 目录结构目录结构—
W04effect操作系统RTK token proxy(仅 WSL)— B02RTK 已完成 hook非 WSL → skip;缺少 hook → MANUAL
W05judgmentREADME/package.json/go.mod初始化 wiki:project-requirements、log、indexseed 页面—
W06effectcodebase调用 onboard-codebaseconcepts + entities + lint失败 → failed
W07effect执行结果起草 Output Report草稿 + index + log—
以下是每个步骤的详细信息(W01–W07 的唯一事实来源):
1. 检查 llmwiki 是否存在:
bash
test -d llmwiki && echo exists || echo missing
exists
→ 询问用户是否重置。重置 = 删除
concepts/
+
entities/
,保留
log.md
+
sources/
。
2. 拉取 template + 安装 skills:
bash
undefined

INVOKE: 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/.gitkeep
4. 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/.gitkeep
4. RTK token proxy(仅 WSL):
bash
undefined

Guard — 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 }
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 }

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:**
```bash
grep -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

分支

IDKindGuardHành viSkip / failureRejoin
B01conditional_requiredW01 trả
exists
hỏi user reset; reset = xóa
concepts/
+
entities/
, GIỮ
log.md
+
sources/
user không reset → dừngW02
B02conditional_requiredkernel chứa "microsoft" (WSL)cài RTK nếu chưa có,
rtk init -g
, verify hook
không WSL → skip bước 4W05
ID类型Guard行为跳过/失败汇合点
B01conditional_requiredW01 返回
exists
询问用户是否重置;重置 = 删除
concepts/
+
entities/
,保留
log.md
+
sources/
用户不重置 → 停止W02
B02conditional_requiredkernel 包含
microsoft
(WSL)
如果尚未安装则安装 RTK,执行
rtk init -g
,验证 hook
非 WSL → 跳过第 4 步W05

Validation và stopping

验证与停止条件

Kiểm bằng lệnh:
test -d llmwiki
ra
exists
; trên WSL grep settings.json in "RTK hooked";
project-requirements.md
có frontmatter
type
(R9) +
## Origin
. Lint chạy trong onboard-codebase, không chạy lại. Dừng sau output report.
使用以下命令进行验证:
test -d llmwiki
输出
exists
;在 WSL 上,grep settings.json 输出
"RTK hooked"
;
project-requirements.md
包含 frontmatter
type
(R9)+
## Origin
。Lint 在 onboard-codebase 中运行,不重复运行。输出报告后停止。

Examples

示例

  • Positive: repo Go mới chưa có
    llmwiki/
    trên macOS → W01
    missing
    → sync-template → mkdir khung → bước RTK in "RTK install: WSL only — skip" → seed từ
    go.mod
    → onboard-codebase → draft
    DDMMYY-init-<project>.md
    .
  • Boundary/failure: chạy lại trên project đã có
    llmwiki/
    → W01
    exists
    → hỏi reset; user đồng ý → chỉ xóa
    concepts/
    +
    entities/
    ,
    log.md
    và
    sources/
    còn nguyên.
  • 正向: macOS 上一个尚无
    llmwiki/
    的新 Go repo → W01
    missing
    → sync-template → mkdir 目录结构 → RTK 步骤输出
    "RTK install: WSL only — skip"
    → 从
    go.mod
    seed → onboard-codebase → 草稿
    DDMMYY-init-<project>.md
    。
  • 边界/失败: 在已有
    llmwiki/
    的项目中重新运行 → W01
    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
  • DDMMYY
    = today (e.g.,
    020626
    for 2 June 2026)
  • <ten>
    = 2–4 kebab-case words summarising what was done (e.g.,
    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
    = 今天(例如,
    020626
    表示 2026 年 6 月 2 日)
  • <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>

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

FileAction
path/to/file
created / modified
FileAction
path/to/file
created / modified

Notes

Notes

  • Invoked via:
    /<skill-name>
    skill
  • Invoked via:
    /<skill-name>
    skill

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` 这类纯显示模式)。