Summary
给 Vibe Builder 的项目文件归位与升级判断 skill。用于把 AI 生成文件、用户手动导入文件、源码、素材、构建产物、过程资料、历史版本和未归属文件,按“先 Inbox、再归位、装不下再升级”的原则,折进普通项目或项目族。触发:整理项目文件、收纳、归类、归档、把文件归位、项目太乱、下载文件夹太乱、散文件不…
pakco77/mishu.skill · Archived
给 Vibe Builder 的项目文件归位与升级判断 skill。用于把 AI 生成文件、用户手动导?
npx skills add pakco77/mishu.skill --skill project-fold
给 Vibe Builder 的项目文件归位与升级判断 skill。用于把 AI 生成文件、用户手动导入文件、源码、素材、构建产物、过程资料、历史版本和未归属文件,按“先 Inbox、再归位、装不下再升级”的原则,折进普通项目或项目族。触发:整理项目文件、收纳、归类、归档、把文件归位、项目太乱、下载文件夹太乱、散文件不…
This repository is archived — consider an actively maintained alternative.
>- A local, low-interruption boss-profile, project-continuity, and project-growth companion. Us…
4 installs把一个"开工要?
4 installsSafely modifies Xcode projects (.pbxproj) to add Swift Packages and link files. Use this skill …
104.1K installsUse when the user wants to provision infrastructure or third-party services using Stripe Projec…
62.4K installsRelated neighbors and high-traction skills in the same topics — useful to compare before installing.
Guidance for distinctive, intentional visual design when building new UI or reshaping an existi…
866.4K installsBrowser automation CLI for AI agents. Use when the user needs to interact with websites, includ…
810.4K installsReview UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "chec…
617.3K installsBuild, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and …
576.5K installsDebug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe …
568.9K installsOther skills from pakco77/mishu.skill.
npx skills add pakco77/mishu.skill
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
main
Parsed from SKILL.md frontmatter.
Files included with this skill beyond the listing page.
SKILL.md
14,264 B
SUMMARY.md
485 B
skill 名:project-fold 版本:v0.2.0-candidate 中文名:项目文件自动收纳 定位:给 Vibe Builder 的项目文件归位与升级判断 skill
第一性原理:升级。
默认用最小可用结构;只有当现有结构装不下真实复杂度时,才升级目录形态。目录服务做成,不服务洁癖。
开始扫描前先确定本次项目根使用 zh 还是 en:
MISHUHOME(若已设置)或 ~/.mishu 解析 store 根,再读取 SELF.md 的 folderlanguage。references/folder-names.md](references/folder-names.md):先写完整映射文件,再把本轮映射快照写进搬运日志。NOW.md、HANDOFF.md、SKILL.md 不翻译,避免跨 Agent 发现失败。当 project-fold 由 mishu 调用时,defaultprojectsroot 只是新项目和未归属资料的默认落点。已有项目即使位于其他位置,也先在原地只读盘点;不得因为设置了默认根目录就搬迁。只有用户确认集中整理,并看过 move plan 后,才执行可逆移动。
Projects 第一层只允许三类:
Projects/
<Project>/
_Project-Inbox/
_Archive/
<Project> 是一个可持续推进、复盘、归档的开发目标。不要让散文件、下载名、临时 demo、单个构建包、过程文档或旧仓库副本占据第一层。
归档语义只有两层,名称不重复:Projects 根的 Archive/ 只接收整个退役项目容器;项目内部旧版本、旧 demo 和历史副本只进入 90History/。
非开发目标不要留在 Projects 第一层。素材、参考图、字体、截图等去全局 Assets 或项目 30Assets/ / 70References/;不确定就进 _Project-Inbox/。
未判断归属的 AI 生成文件或用户手动导入文件先进入:
_Project-Inbox/
不要让用户先想分类。Agent 后续二次分类。
Inbox 边界:
_Project-Inbox/ = 不知道属于哪个项目
<Project>/_Inbox/ = 知道属于这个项目,但不知道放哪个意图目录
<ProjectFamily>/_Inbox/ = 知道属于这个项目族,但不知道属于共享级还是子项目级
默认形态。一个目标,一个主要开发对象。
最小结构:
<Project>/
00_Context/
10_Source/
20_Docs/
90_History/
按需生长(不预建全套,按“文件意图判断表”长出真实需要的目录):
30_Assets/
40_Builds/
50_Data/
60_Run-Release/
70_References/
清理任务才加:
99_Delete-Review/
当同一项目内出现多份源码、多类素材、构建产物、数据、运行/发布流程时,不新建项目、不升级层级,只补对应目录。这仍是 L1,只是长胖了。
当一个目标下面出现 2 个以上会独立演化的输出形态,才升级为项目族。
项目族比普通项目多两个核心判断点:
<ProjectFamily>/
00_Context/
10_Shared/
20_Subprojects/
_Inbox/
90_History/
注意编号语义变了:项目族用 10Shared/20Subprojects 替代 L1 的 10Source/20Docs,同一层不并存。子项目内部才重新回到 L1 的 10Source/20Docs 逻辑。
按需增加普通项目目录,如 30Assets/、40Builds/、50Data/、60Run-Release/。
铁律:
10_Shared/20_Subprojects/_Inbox/示例:一个 vibe builder 用户的同一目标下同时出现 Web App、Browser Extension、Landing Site、Skill Pack,才升级为项目族。只有一个 Web demo 时保持普通项目。
先按层级选对 schema:L1 普通项目用 10Source/20Docs;L2 项目族根用 10Shared/20Subprojects。两套不并存。下表「层级」列标明各目录适用哪一层。
| 目录 | 层级 | 放什么 | 不放什么 / 冲突判断 |
|---|---|---|---|
00_Context/ |
L1 / L2 通用 | 当前开工必读的最小真相:项目定义、当前状态、下一步、关键决策 | 历史长文不放这里;如果每次开工都要读,提炼进 Context,原文留 Docs |
10_Source/ |
仅 L1(或子项目内) | 会改变产品本体的源头:代码仓库、worktree、App/Web/CLI 工程、skill 源目录 | 多个 Git 仓库不合并,先用 local-worktree/、public-repo/ 等标身份 |
10_Shared/ |
仅 L2 根 | 项目族里跨子项目复用的源头、协议、模板、代码、可编辑规范 | 媒体素材去 Assets;外部参考去 References;决策边界去 Context |
20_Subprojects/ |
仅 L2 根 | 项目族里会独立开发、发布、演化的子项目 | 只共享资源不算子项目 |
20_Docs/ |
仅 L1(或子项目内) | 过程资料:PRD、讨论记录、复盘、方案、说明、分析结论 | 当前必读去 Context;机器数据去 Data |
30_Assets/ |
L1 / L2 通用 | 项目会直接使用的素材:logo、截图、视频、设计稿、发布媒体 | 只作参考的外部素材去 References |
40_Builds/ |
L1 / L2 通用 | 可再生成或对外交付的成品:app、dmg、zip、导出 HTML、release | 源码不放这里 |
50_Data/ |
L1 / L2 通用 | CSV/JSON/测试数据/用户记录/清洗中间结果/分析输入输出 | 分析结论文档去 Docs |
60_Run-Release/ |
L1 / L2 通用 | 怎么运行和发布:部署、签名、公证、server、环境说明 | token、证书、私钥、.env 去敏感复核区 |
70_References/ |
L1 / L2 通用 | 外部参考:竞品、模板、第三方示例、设计参考 | 会进入交付物的素材去 Assets |
90_History/ |
L1 / L2 通用 | 项目内部的旧版本、旧 demo、历史副本、合并前备份 | 当前入口不从这里开始;整个退役项目才进入 Projects 根的 _Archive/ |
99_Delete-Review/ |
L1 / L2 通用 | 只在清理任务中放准备删除但要复核的候选 | 普通整理不主动创建 |
一堆同源文件(版本号、日期、"备份/backup/副本/copy/bak/old"、"xxx前备份")是整理里最占地方、最不敢删的东西。规则:识别一族 → 留最新 → 旧的收进待删除区 → 永不自动删 → 用户复核。
识别「同源族」:主名相同、只差版本或备注后缀。例:
CAM需求清单_v2.7.xlsx
CAM需求清单_v2.7_修改前备份.xlsx
CAM需求清单_v2.7_版本号统一前备份.xlsx
CAM需求清单_v2.8.xlsx
CAM需求清单_v2.9.xlsx <- 最新,留在正常目录
处理:
99Delete-Review/<族名>/(或用户项目已有的备份目录,如 09备份/——沿用用户现有约定,不新造)。.sqlite-wal/-shm、pycache/、-recovery-backups/、Thumbs.db、.DSStore 等是工具运行残留,不是资料,进 99Delete-Review/_runtime/ 或列为待删除复核候选;不要当项目文件归档,Skill 自己不删除。不要只按文件后缀分类。先判断归属层级,再判断文件意图。
顺序:
置信度:
High -> 可建议直接移动
Medium -> 列入 move plan,等用户确认
Low -> 留在 Inbox,并说明缺什么信息
示例:
index.html
可能是 10Source/、40Builds/、90History/ 或 Project-Inbox/;看相邻文件、引用关系、文件名和用户意图再定。
logo.png
可能是项目 30Assets/、项目族 30Assets/、子项目 30Assets/ 或 70References/;不要只因后缀是 png 就移动。
Mini case:
导入文件:
landing.html
app-demo.mp4
logo.png
prompt.md
old-v1.zip
判断:
landing.html -> 10_Source 或 40_Builds,看是否还会继续编辑
app-demo.mp4 -> 30_Assets
logo.png -> 30_Assets
prompt.md -> 00_Context 或 20_Docs,看是否定义项目行为
old-v1.zip -> 90_History
起手先判断走哪种模式,别默认闷头整理。
- 用户明示「现在马上整理 / 直接执行 / 不用给我看方案」; - 目标目录已经是这套结构(目录名可为映射表中的中文或英文;第一层只有项目容器、Inbox、Archive),说明用户在用这套框架,只是日常归位。 - 即便直接模式,High 置信度才真移动;Medium/Low 仍留 Inbox 并在日志里说明。
判断不了走哪种,就默认方案模式。
$PROJECTS_ROOT;不假设、不硬猜。$PROJECTS_ROOT 第一层和 Inbox。git status --short;有未提交内容时只按身份包裹,不合并、不删除。90History / 90历史;只有整个项目退役时,项目容器才进入 Projects 根的 Archive / 归档。不要删除。原路径 -> 新路径、时间、置信度,确保能逐条反向还原。没有用户指定输出目录时,英文模式放 $PROJECTSROOT/Project-Inbox/cleanup-log.md,中文模式放 $PROJECTSROOT/项目收件箱/搬运日志.md。格式示例:## 2026-07-07 14:30 整理
- ./landing.html -> ./Tuck/10_Source/landing.html [High]
- ./old-v1.zip -> ./Tuck/90_History/old-v1.zip [High]
- ./mystery.dat 留 _Project-Inbox(Low:无法判断归属)
find "$PROJECTS_ROOT" -maxdepth 1 -type f -not -name '.DS_Store' -not -name '.localized' -print
find "$PROJECTS_ROOT" -maxdepth 1 -mindepth 1 -not -name '.DS_Store' -not -name '.localized' -print
第一条应为空;第二条应只显示项目容器以及所选语言对应的 Inbox、Archive。
tuck 和 Tuck 视为同一路径。遇到只改大小写或同名容器包裹时,必须用临时名中转:tuck -> __tmptucksource -> Tuck/10_Source/local-workspace。.DS_Store 和 .localized 是系统噪音;验证时忽略,只提示用户可清理或列入待删除复核,Skill 自己不删除。Archive/、Project-Inbox/ 或项目内 70_References/。90_History/<old-name>/,再建立新结构。原路径 -> 新路径),这是复原兜底;没有日志的移动等于不可逆,不允许。node_modules、.next、.build、模型、venv。bin。local-worktree/、github-repo/、public-repo/ 标身份。.env、私钥放进项目仓库;放敏感复核区。/Applications,除非它是明确的 .app 安装包且用户要求。