recoup-platform-build-os
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseRecoup — Build Label OS
Recoup — 构建唱片公司OS
The point is not the folders — it's to scaffold a system that both manages itself and improves
itself. It keeps its own state current (never-stale) and gets better at its own job over time:
compounding knowledge, promoting repeated work into new skills, and improving its own machinery. Hold
that as the goal of every phase below; the structure only exists to serve it.
Concretely, turn a kickoff input into a living operating system: a folder + file structure, a
self-managing (mirrored to ), a directory (an in-place installable
plugin with skills inside), a never-stale janitor backed by a read-only doctor, a compound-learning
loop, and a self-improvement loop. The plugin is named by default and includes
manifests/adapters for Claude, Cursor, and Codex.
CLAUDE.mdAGENTS.mdplugin/{DOMAIN_SLUG}-osThis builder skill is for the agent running it. Follow the phases in order. Don't stop halfway — drive to a working OS,
then report. Read the references as you reach each phase.
核心并非文件夹,而是搭建一套既能自我管理又能自我优化的系统。 它能保持自身状态实时更新(永不失效),同时随着时间推移不断提升工作能力:积累知识、将重复工作转化为新技能、优化自身机制。请将这一点作为以下每个阶段的目标;结构仅为服务于此目标而存在。
具体而言,将启动输入转化为一个活的操作系统:文件夹+文件结构、自管理的(与镜像同步)、目录(包含内置可安装插件及技能)、由只读检查器doctor支持的永不失效清理器janitor、复合学习循环以及自我改进循环。插件默认命名为,并包含适用于Claude、Cursor和Codex的清单/适配器。
CLAUDE.mdAGENTS.mdplugin/{DOMAIN_SLUG}-os此构建技能供运行它的Agent使用。请按顺序执行各阶段。不要半途而废——直至构建出可运行的OS,再进行汇报。执行到每个阶段时,请阅读对应的参考文档。
Recoup specialization — this is a music-company OS [read before Phase 0]
Recoup 专属化——这是一款音乐公司操作系统 [第0阶段前必读]
This skill is (by Sidney Swift) locked to one domain — a music company /
independent label — and wired into Recoup. The phases below are unchanged; apply them with
these Recoup rules layered on top.
workspace-os- The domain is fixed — don't re-infer it. Core unit: the artist (and their
releases). Entities folder: top-level . The release lifecycle (
artists/) is tracked per release underdemo -> A&R -> signed -> production -> release -> promo -> catalog(stage inartists/{slug}/releases/) — there is no separate top-levelRELEASE.md; unsigned candidates live inpipeline/. Spend Phase 0's effort understanding this specific label (roster, genres, deal posture, content motion, team), not which archetype it is.prospects/ - The repo is one org/label. This runs inside a single org's git repo, so artists live at
top-level — no
artists/{artist-slug}/nesting (the repo already is the org).orgs/ - Seed Recoup's conventions exactly — other recoup skills depend on them:
- — identity file, frontmatter
artists/{artist-slug}/RECOUP.md/artistName/artistSlug(artistId = the RecoupartistId). Same shapeaccount_id,recoup-roster-list-artistsread/write.recoup-roster-add-artist - and
releases/{release-slug}/RELEASE.mdper artist.releases/top-tracks.md - = lowercase-kebab; never append IDs to folder names.
slugify
- Secrets stay out of the shared repo. Always seed (documenting
.env.exampleorRECOUP_API_KEY,RECOUP_ACCESS_TOKEN, optionalRECOUP_ORG_ID) and aRECOUP_API_URLthat ignores.gitignore. Real credentials live outside the repo (env vars /.env); never commit them — the repo is shared across the label's team.~/.claude/recoup.env - The Recoup API is the system of record; the repo is the brain. Get the real roster from
the live account — never invent one:
- Connect the machine first by chaining (mints/loads the credential:
recoup-platform-connect-accountorRECOUP_API_KEY, optionalRECOUP_ACCESS_TOKEN).RECOUP_ORG_ID - If the roster is empty (0 artists), hand off to to bootstrap it (it fans
recoup-roster-onboardout across parallel subagents); otherwise materialize the existing roster intorecoup-roster-add-artistyourself:artists/(or useGET /api/organizations) ->RECOUP_ORG_ID->GET /api/artists?org_id=…and writemkdir -p artists/{slugify(name)}per artist (RECOUP.md/artistName/artistSlugfromartistId); skip existing. Useaccount_idto inventory first andrecoup-roster-list-artistsfor the call shapes.recoup-platform-api-access - Write with the contract: DB owns structured entities (roster, socials, metrics, releases-as-records, billing); the repo owns the unstructured brain (knowledge, research, plans, drafts). Entity creation is API-first — onboard a new artist with
operations/sync.md(the 8-call create -> enrich chain), then its folder appears; never create an artist byrecoup-roster-add-artistalone. Usemkdirfor raw REST / connector calls. Empty orgs+artists usually means a throwaway key, not a blank label — surface it, don't fabricate a roster.recoup-platform-api-access
- Connect the machine first by chaining
- Reuse the platform; don't reinvent it. In Phase 4, do not author that duplicate Recoup capabilities — wire to the installed
plugin/skills/skills: roster (recoup-*), research (recoup-roster-*), content (recoup-research-*), release (recoup-content-*), song (recoup-release-*), catalog (recoup-song-*). The OS's ownrecoup-catalog-*should be label-specific glue (this label's routines/orchestration) plus the standard maintenance organs (doctor/janitor/learn/reflect/skillify/intake). Default the plugin name toplugin/skills/.{label-slug}-os - Still scaffold everything else a music company needs. Beyond the core (,
artists/,knowledge/,library/,work/,artifacts/,plugin/), add optional folders only with real material:operations/(the flywheel),content/(catalog acquisitions),deals/(industry network),contacts/(press/milestones),proof/(splits/royalties/contracts),business/(A&R funnel),prospects/(label bible). Mark inferred items "draft — confirm". Seereference/for the full tree.references/blueprint.md - Filling the generic templates (doctor/dashboard/janitor). When you generate them from
, the entity is
assets/and there is no pipeline folder — leaveartists/empty, or set it to{PIPELINE}only if the label does A&R. The doctor reads release status from eachprospects/(stage inartists/{slug}/releases/), not a top-level funnel.RELEASE.md
此技能是Sidney Swift开发的锁定在单一领域的版本——音乐公司/独立唱片公司——并与Recoup集成。以下阶段流程保持不变;请在其基础上遵循Recoup的规则。
workspace-os- 领域固定——无需重新推断。 核心单元:艺人(及其发行作品)。实体文件夹:顶级目录。作品发行生命周期(
artists/)在demo -> A&R -> 签约 -> 制作 -> 发行 -> 推广 -> catalog下按单个作品追踪(状态记录在artists/{slug}/releases/中)——没有单独的顶级目录RELEASE.md;未签约候选艺人存放在pipeline/中。第0阶段需专注了解这家特定唱片公司(艺人名单、流派、合作姿态、内容运营、团队),而非其所属的类型。prospects/ - 仓库对应单个组织/唱片公司。 此系统运行在单个组织的Git仓库内,因此艺人存放在顶级目录——无需嵌套
artists/{artist-slug}/(仓库本身即代表该组织)。orgs/ - 严格遵循Recoup的约定——其他recoup技能依赖这些约定:
- ——身份文件,前置元数据包含
artists/{artist-slug}/RECOUP.md/artistName/artistSlug(artistId = Recoup的artistId)。格式与account_id、recoup-roster-list-artists的读写格式一致。recoup-roster-add-artist - 每位艺人对应和
releases/{release-slug}/RELEASE.md。releases/top-tracks.md - 规则:小写短横线分隔;切勿在文件夹名称后追加ID。
slugify
- 敏感信息请勿存入共享仓库。 务必初始化(记录
.env.example或RECOUP_API_KEY、RECOUP_ACCESS_TOKEN、可选的RECOUP_ORG_ID)以及忽略RECOUP_API_URL的.env文件。真实凭据存放在仓库外部(环境变量 /.gitignore);切勿提交这些凭据——仓库为唱片公司团队共享。~/.claude/recoup.env - Recoup API为记录系统;仓库为智能大脑。 从实时账户获取真实艺人名单——切勿虚构:
- 首先通过链式调用****连接系统(生成/加载凭据:
recoup-platform-connect-account或RECOUP_API_KEY、可选的RECOUP_ACCESS_TOKEN)。RECOUP_ORG_ID - 若艺人名单为空(0位艺人),则移交至进行引导(它会并行调用多个子Agent执行
recoup-roster-onboard);否则自行将现有艺人名单同步到recoup-roster-add-artist:artists/(或使用GET /api/organizations)->RECOUP_ORG_ID->GET /api/artists?org_id=…并为每位艺人编写mkdir -p artists/{slugify(name)}(从RECOUP.md获取account_id/artistName/artistSlug);跳过已存在的艺人。请先使用**artistId盘点,再使用recoup-roster-list-artists**获取调用格式。recoup-platform-api-access - 编写明确契约:数据库负责结构化实体(艺人名单、社交账号、数据指标、发行记录、账单);仓库负责非结构化智能内容(知识、调研、计划、草稿)。实体创建遵循API优先原则——使用**
operations/sync.md(包含8步创建->丰富流程)完成新艺人入职,之后再创建对应的文件夹;切勿仅通过recoup-roster-add-artist创建艺人。使用mkdir**进行原始REST/连接器调用。空组织+空艺人名单通常意味着临时密钥,而非空白唱片公司——请如实反馈,切勿编造艺人名单。recoup-platform-api-access
- 首先通过链式调用**
- 复用现有平台;切勿重复造轮子。 在第4阶段,请勿编写与Recoup功能重复的——请与已安装的
plugin/skills/技能集成:艺人名单(recoup-*)、调研(recoup-roster-*)、内容(recoup-research-*)、发行(recoup-content-*)、歌曲(recoup-release-*)、 catalog(recoup-song-*)。OS自身的recoup-catalog-*应包含唱片公司专属的衔接逻辑(该公司的常规流程/编排)以及标准维护组件(doctor/janitor/learn/reflect/skillify/intake)。插件默认命名为plugin/skills/。{label-slug}-os - 仍需搭建音乐公司所需的所有其他内容。 除核心目录(、
artists/、knowledge/、library/、work/、artifacts/、plugin/)外,仅当有真实内容时才添加可选文件夹:operations/(内容飞轮)、content/(catalog收购)、deals/(行业人脉)、contacts/(媒体报道/里程碑)、proof/(分成/版税/合同)、business/(A&R漏斗)、prospects/(唱片公司指南)。推断的内容请标记为「草稿——待确认」。完整目录结构请参考reference/。references/blueprint.md - 填充通用模板(doctor/dashboard/janitor)。 从生成这些模板时,实体目录为
assets/,且无pipeline文件夹——将artists/留空,或仅当唱片公司开展A&R业务时设置为{PIPELINE}。doctor从每个prospects/读取作品发行状态(记录在artists/{slug}/releases/中),而非从顶级漏斗目录读取。RELEASE.md
Operating beliefs (apply to every OS you build)
核心理念(适用于所有构建的OS)
Every belief below serves one goal: a system that manages itself (stays current) and improves
itself (compounds its knowledge, its capabilities, and its own machinery).
- Separate what compounds from what flows. Compounding = reusable assets that improve every time (templates, knowledge base, skills, proof). Flowing = instances moving through stages (deals, tickets, releases, experiments). Wire feedback so every flowing instance deposits back into a compounding asset.
- Never stale. It is the agent's job to manage state. Any time new input arrives OR the user works in the OS, every file/folder that should change gets touched in the same turn. A janitor skill + scheduled task is the safety net.
- Compound learning. Every session makes the system smarter — capture decisions, recurring answers, and patterns into the knowledge base. Never solve the same thing twice.
- Skillify proven repeatable work. After finishing work, ask whether it will be done again or
maintained. If yes, promote the proven process into a staged, verified skill before it lands in
. One-off work stays in
plugin/skills/(dated) — it never becomes its own top-level folder.work/ - Self-describing. Every folder explains its own purpose; encodes where new things go and how to keep the system current.
CLAUDE.md - Evidence over confidence. "Done", "consistent", and "reachable" are decided by a checkable
surface — a run, a skill's verification, a reachable trigger — not the agent's feeling. And the OS improves itself over time (
{domain}-doctor), not just its contents.{domain}-reflect
以下每一条理念都服务于同一个目标:构建一套自我管理(保持实时更新)且自我优化(积累知识、提升能力、优化自身机制)的系统。
- 区分可积累资产与流动事务。 可积累资产=可重复使用且持续优化的资源(模板、知识库、技能、成果证明)。流动事务=处于不同阶段的实例(合作项目、工单、发行作品、实验)。建立反馈机制,让每个流动事务都能为可积累资产贡献内容。
- 永不失效。 Agent负责管理状态。每当有新输入或用户在OS中操作时,所有应更新的文件/文件夹都需在同一轮操作中完成更新。janitor技能+定时任务是安全保障。
- 复合学习。 每次会话都能让系统更智能——将决策、常见问题答案和模式存入知识库。切勿重复解决同一问题。
- 将已验证的重复工作转化为技能。 完成工作后,判断该工作是否会重复进行或需要维护。若是,则在将其存入前,将已验证的流程转化为分阶段的可验证技能。一次性工作存放在
plugin/skills/(带日期)——切勿将其提升为顶级目录。work/ - 自我描述。 每个文件夹都需说明自身用途;需明确新内容的存放位置及系统维护方式。
CLAUDE.md - 基于证据而非主观判断。 「完成」「一致」「可实现」需通过可检查的依据来判定——的运行结果、技能的验证、可触发的动作——而非Agent的主观感受。且OS需随时间自我优化(通过
{domain}-doctor),而非仅优化其内容。{domain}-reflect
Phase 0 — Understand the project deeply (always first)
第0阶段——深入理解项目(始终优先执行)
Read .
references/domain-inference.md- Ingest ALL kickoff input (files, transcripts, prompt). If files exist, read them fully.
- Determine the domain archetype and the core unit of work (e.g. consulting -> deals/clients, product -> features/releases, record label -> artists/releases, research -> questions/experiments).
- If input is rich, derive structure from the material. If input is sparse (just a prompt), use best judgment: infer the domain, predict the entities, stages, assets, routines, and metrics the project will need, and anticipate them rather than waiting — but express that preparation as stubs and subfolders inside a lean root (see Phase 1), not as extra top-level directories.
- Produce a short Understanding Brief: domain, core unit, lifecycle stages, key entities, compounding assets, recurring tasks (skill candidates), metrics, and likely external tools.
- Confirm the brief with the user only if something material is ambiguous; otherwise proceed.
阅读。
references/domain-inference.md- 导入所有启动输入(文件、转录文本、提示词)。若存在文件,请完整阅读。
- 确定领域类型和核心工作单元(例如:咨询->合作项目/客户、产品->功能/发行、唱片公司->艺人/发行作品、调研->问题/实验)。
- 若输入丰富,则从现有材料中提炼结构。若输入稀疏(仅提示词),则运用最佳判断:推断领域、预测项目所需的实体、阶段、资产、常规流程和指标,并提前准备——但请将这些准备内容作为存根和子文件夹放在精简的根目录下(见第1阶段),而非添加额外的顶级目录。
- 生成简短的理解简报:领域、核心单元、生命周期阶段、关键实体、可积累资产、重复任务(技能候选)、指标、可能的外部工具。
- 仅当存在重大歧义时才与用户确认简报;否则直接推进。
Phase 1 — Design the taxonomy
第1阶段——设计分类体系
Read .
references/blueprint.md- Start from the small core the loops maintain: the flowing stores (a staged pipeline folder +
an entity folder like /
clients//artists/), the compounding storesfeatures/andknowledge/,library/(non-recurring output, by project),work/(finalized recurring outputs like the dashboard),artifacts/(the in-place plugin), andplugin/(routines, sync, health, improvements).operations/ - Add an optional top-level folder only when the domain has real material for it now —
(canon/source),
reference/(outcomes),proof/(a real content motion),content/(legal/finance/metrics). When unsure, leave it out; adding later is onebusiness/.mkdir - Keep every top-level folder name to one lowercase word (, not
operations;operating-system, notknowledge). Rename to the domain's language but keep it a single word. (Skill folders insideknowledge-basestay kebab-case — a different convention.)plugin/skills/ - Don't reproduce the whole anatomy by reflex, and don't promote one-off work to a top-level
folder — ad-hoc tasks live in ; only work that repeats or needs upkeep becomes a skill in
work/. Push over-preparation into subfolders and stubs, not a row of empty top-level dirs.plugin/
阅读。
references/blueprint.md- 从循环维护的小型核心目录开始:流动存储(分阶段的pipeline文件夹+实体文件夹如/
clients//artists/)、可积累存储features/和knowledge/、library/(非重复输出,按项目分类)、work/(最终的重复输出如仪表盘)、artifacts/(内置插件)、plugin/(常规流程、同步、健康检查、改进)。operations/ - 仅当领域当前有真实内容时才添加可选顶级目录——(标准/来源)、
reference/(成果)、proof/(真实内容运营)、content/(法务/财务/指标)。若不确定,则暂不添加;后续只需执行business/即可添加。mkdir - 所有顶级目录名称保持单个小写单词(,而非
operations;operating-system,而非knowledge)。可根据领域术语重命名,但需保持单个单词。(knowledge-base内的技能文件夹保持短横线分隔格式——这是不同的约定。)plugin/skills/ - 切勿机械照搬完整结构,且切勿将一次性工作提升为顶级目录——临时任务存放在;仅重复进行或需要维护的工作才会成为
work/中的技能。将过度准备的内容放入子文件夹和存根,而非创建一排空的顶级目录。plugin/
Phase 2 — Scaffold structure + the brain
第2阶段——搭建结构与核心大脑
- Create only the folders the taxonomy calls for (lean root). Give every non-obvious folder a short
stub stating what belongs there.
README.md - Write from
artifacts/dashboard.html(HTML, not md). Seedassets/dashboard.html.tmpl(empty — theoperations/health.mdfills it) and{domain}-doctor(a header for theoperations/improvements.mdledger).{domain}-reflect - Write the self-managing from
CLAUDE.md, customized to the domain (filing decision tree, the auto-manage loop, never-stale contract, repetition-to-skill rule). Readassets/CLAUDE.md.tmplfor what the contract must contain.references/self-management.md - Create as a symlink to
AGENTS.md(CLAUDE.md) so agent runners that look for either file get the same brain. If symlinks aren't supported, write anln -s CLAUDE.md AGENTS.mdthat says "See CLAUDE.md" — but prefer the symlink.AGENTS.md
- 仅创建分类体系要求的文件夹(精简根目录)。为每个非显而易见的文件夹添加简短的存根,说明其用途。
README.md - 从生成
assets/dashboard.html.tmpl(HTML格式,而非md)。初始化artifacts/dashboard.html(空文件——由operations/health.md填充)和{domain}-doctor(operations/improvements.md记录的标题)。{domain}-reflect - 从编写自管理的
assets/CLAUDE.md.tmpl,针对领域定制(归档决策树、自动管理循环、永不失效契约、重复工作转技能规则)。请阅读CLAUDE.md了解契约必须包含的内容。references/self-management.md - 创建作为
AGENTS.md的符号链接(CLAUDE.md),以便查找任一文件的Agent运行器都能获取相同的核心大脑。若不支持符号链接,则编写ln -s CLAUDE.md AGENTS.md并注明「参见CLAUDE.md」——但优先使用符号链接。AGENTS.md
Phase 3 — Seed compounding assets
第3阶段——初始化可积累资产
- Populate (blank instruments you reuse — templates, scripts, checklists) and
library/(settled answers you read back — faqs, insights, decisions, sops). Rule of thumb: if you'd use it to make something it'sknowledge/; if you'd consult it to decide something it'slibrary/.knowledge/ - Extract this material from the input. With sparse input, seed sensible starter templates for the domain and mark them "draft — confirm".
- 填充(可重复使用的空白工具——模板、脚本、检查清单)和
library/(可查阅的既定答案——常见问题、洞察、决策、标准操作流程)。经验法则:若用于创建内容则存入knowledge/;若用于辅助决策则存入library/。knowledge/ - 从输入中提取这些材料。若输入稀疏,则为领域初始化合理的起始模板,并标记为「草稿——待确认」。
Phase 4 — Author skills (the in-place plugin/
)
plugin/第4阶段——编写技能(内置plugin/
)
plugin/Read and (promotion workflow).
references/skill-authoring.mdreferences/skillifying-work.md- Derive the plugin name from the domain as (kebab-case) unless the user explicitly gave a name. Use that same name in every manifest.
{DOMAIN_SLUG}-os - Scaffold as a real plugin in place:
plugin/fromplugin/.claude-plugin/plugin.json,assets/claude-plugin.json.tmplfromplugin/.codex-plugin/plugin.json, and aassets/codex-plugin.json.tmpldirectory. The Codex manifest must includeplugin/skills/; see"skills": "./skills/".references/packaging.md - Create as a symlink to
.agents/skillsso Cursor and Codex can discover the same project skills. If symlinks aren't supported, copy../plugin/skillsthere and note that it is a compatibility mirror.plugin/skills/ - For each recurring task in the brief, author (frontmatter
plugin/skills/{name}/SKILL.md+ description with real trigger phrases, then imperative steps referencing the workspace paths).name - Always include the maintenance skills (the OS's feedback organs), generated from the templates:
- a doctor () — the read-only verification surface (health score + punch list to
assets/doctor-SKILL.md.tmpl); the janitor and the build report are gated on it. Also generateoperations/health.mdfromoperations/doctor.py(fill theassets/doctor.py.tmpl/PIPELINE/slug) as its deterministic fast path — so the mechanical checks ship with the build instead of being reinvented later.ENTITY - a janitor () — run the doctor, then reconcile and fix what's safe.
assets/janitor-SKILL.md.tmpl - a compound-learn skill () — capture decisions/answers/patterns into
assets/compound-learn-SKILL.md.tmplafter each work session.knowledge/ - a reflect skill () — improve the OS itself (skills, routing, checks, templates) into
assets/reflect-SKILL.md.tmpl; the 50/50 budget.operations/improvements.md - a skillify skill () — promote proven repeatable work into staged, verified skills.
assets/skillify-SKILL.md.tmpl
- a doctor (
- Also include an orchestrator skill (the auto-manage loop as one trigger) named .
{domain}-intake - Routing stays lean: rely on each skill's for routing while the pack is small; add a
description(trigger -> skill table) only once skills grow enough that descriptions overlap or the doctor's reachability check flags ambiguity.plugin/skills/RESOLVER.md - Author a skill only for work that repeats or needs upkeep — one-off builds belong in , not a throwaway skill. For skills created from completed work, follow the skillify loop: prove provenance, extract the repeatable process, stage in
work/, verify with the strongest domain-appropriate check, ask before moving intowork/, then repackage.plugin/skills/
阅读和(晋升流程)。
references/skill-authoring.mdreferences/skillifying-work.md- 根据领域将插件命名为(短横线分隔格式),除非用户明确指定名称。所有清单均使用此名称。
{DOMAIN_SLUG}-os - 现场搭建作为真实插件:从
plugin/生成assets/claude-plugin.json.tmpl,从plugin/.claude-plugin/plugin.json生成assets/codex-plugin.json.tmpl,并创建plugin/.codex-plugin/plugin.json目录。Codex清单必须包含plugin/skills/;请参考"skills": "./skills/"。references/packaging.md - 创建作为
.agents/skills的符号链接,以便Cursor和Codex能发现相同的项目技能。若不支持符号链接,则将../plugin/skills复制到该目录,并注明这是兼容性镜像。plugin/skills/ - 针对简报中的每个重复任务,编写(前置元数据包含
plugin/skills/{name}/SKILL.md+带真实触发短语的描述,然后是引用工作空间路径的命令式步骤)。name - 务必包含从模板生成的维护技能(OS的反馈组件):
- doctor()——只读验证界面(健康评分+待办事项存入
assets/doctor-SKILL.md.tmpl);janitor和构建报告需以此为前提。同时从operations/health.md生成assets/doctor.py.tmpl(填充operations/doctor.py/PIPELINE/slug)作为确定性快速路径——这样机械检查可随构建一起交付,无需后续重新开发。ENTITY - janitor()——运行doctor,然后协调并修复安全的问题。
assets/janitor-SKILL.md.tmpl - compound-learn技能()——每次工作会话后将决策/答案/模式存入
assets/compound-learn-SKILL.md.tmpl。knowledge/ - reflect技能()——将OS自身的改进(技能、路由、检查、模板)存入
assets/reflect-SKILL.md.tmpl;遵循50/50预算。operations/improvements.md - skillify技能()——将已验证的重复工作转化为分阶段的可验证技能。
assets/skillify-SKILL.md.tmpl
- doctor(
- 还需包含一个编排器技能(自动管理循环作为单一触发器),命名为。
{domain}-intake - 路由保持精简: 在插件规模较小时,依赖每个技能的进行路由;仅当技能数量增长到描述重叠或doctor的可触达性检查标记歧义时,才添加
description(触发词->技能对照表)。plugin/skills/RESOLVER.md - 仅为重复进行或需要维护的工作编写技能——一次性构建存放在,而非创建临时技能。对于从已完成工作创建的技能,请遵循skillify循环:证明来源、提取可重复流程、存入
work/分阶段处理、通过最适合领域的检查进行验证、移入work/前征求用户同意,然后重新打包。plugin/skills/
Phase 5 — Package the plugin
第5阶段——打包插件
Read .
references/packaging.md- Run first — packaging is gated on a clean (or explained) report.
{domain}-doctor - The workspace directory is already the installable plugin — no copying. Validate it: every
plugin/has aplugin/skills/*/; both plugin manifests are valid JSON and share theSKILL.mdname; the Codex manifest points at{DOMAIN_SLUG}-os; no angle brackets in any description; no stray non-skill folders in./skills/;plugin/skills/points to or mirrors.agents/skills. Fix before packaging.plugin/skills/ - the contents of
ziptoplugin/first, then copy the/tmpto the outputs folder and present it for install..plugin
阅读。
references/packaging.md- 首先运行——打包需以干净(或已说明)的报告为前提。
{domain}-doctor - 工作空间的目录本身即为可安装插件——无需复制。验证内容:每个
plugin/都包含plugin/skills/*/;两个插件清单均为有效JSON且共享SKILL.md名称;Codex清单指向{DOMAIN_SLUG}-os;所有描述中无尖括号;./skills/中无无关非技能文件夹;plugin/skills/指向或镜像.agents/skills。打包前修复所有问题。plugin/skills/ - 先将的内容压缩到
plugin/,然后将/tmp文件复制到输出文件夹并供用户安装。.plugin
Phase 6 — Wire the never-stale schedule
第6阶段——配置永不失效的定时任务
- Try to create a scheduled task that runs the janitor skill (default weekly) so the workspace self-reconciles even when the user isn't looking.
- If no scheduling tool is available, or the user declines: this is not a failure. Record the
intended cadence in , AND drop a ready-to-use schedule from
operations/routines.md(GitHub Actions / cron / launchd / agent-runner task) so enabling it later is a single copy, not a research project. The OS is still complete — the janitor also runs on demand — but until the schedule is armed, the doctor keeps a standing low "schedule armed" finding, because "self-reconciles when no one is looking" is only true once it actually runs unattended.assets/janitor-schedule.tmpl - Don't block or leave the build "unfinished" over scheduling; treat it as the one optional step.
- 尝试创建定时任务(默认每周运行)执行janitor技能,以便即使用户未操作,工作空间也能自动协调。
- 若无可用调度工具,或用户拒绝: 这并非失败。请在中记录预期的执行频率,并从
operations/routines.md提供现成的调度配置(GitHub Actions / cron / launchd / agent-runner任务),以便后续启用时只需复制即可,无需重新调研。OS仍视为完整——janitor也可按需运行——但在调度启用前,doctor会持续标记「调度未启用」的低优先级问题,因为「无人操作时自动协调」仅在调度实际无人值守运行时才成立。assets/janitor-schedule.tmpl - 切勿因调度问题阻碍或标记构建为「未完成」;将其视为可选步骤。
Phase 7 — Report
第7阶段——汇报
Run and report its score as the build's verification surface — "done" is a clean
(or explained) doctor run, not a feeling. Summarize: the structure created, the skills authored, the
plugin produced, the schedule set, and the health score. List what was inferred vs. confirmed so the
user can correct any assumptions.
{domain}-doctor运行并将其评分作为构建的验证依据——「完成」的标准是doctor运行结果干净(或已说明),而非主观感受。总结:创建的结构、编写的技能、生成的插件、设置的调度、健康评分。列出推断内容与已确认内容,以便用户纠正任何假设。
{domain}-doctorGuardrails
约束规则
- Don't invent domain facts the user must own — mark inferred items "draft — confirm".
- Leave nothing stale: if you touched the project, update the dashboard, boards, and any affected README in the same turn.
- Prefer improving a template/skill over a one-off instance.
- 切勿编造需用户确认的领域事实——推断内容请标记为「草稿——待确认」。
- 切勿留下失效内容:若你修改了项目,请在同一轮操作中更新仪表盘、看板及所有受影响的README。
- 优先优化模板/技能,而非一次性实例。",