vault-operator-kr
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseVault Operator 빌더 (한글판)
Vault Operator Builder(韩文版)
이 스킬 자신은 매 실행마다 세컨드브레인을 관리하는 오퍼레이터가 아니다. 이 스킬은 오퍼레이터를
만들어주는 빌더다. 실행하면 대상자의 볼트와 커넥터에 맞춰 개인화된 오퍼레이터 프롬프트를
그 사람의 볼트 안에 생성하고, 자동 실행 스케줄까지 걸어준다.
렌더된 오퍼레이터는 데일리·프로젝트 노트뿐 아니라 폴더 인덱스 파일을 os-optimizer F9 형식으로
매 실행 순환 유지한다. 덕분에 대상자가 os-optimizer를 따로 돌리지 않아도 볼트가 상시 감사 통과
상태(발견가능성 체인 유지, frontmatter·em dash·시그니처 정합)로 유지된다. 코호트 배포처럼 여러
볼트에 같은 품질을 보장해야 할 때 특히 유효하다.
한 명(Michael)만을 위해 하드코딩된 예시가 에 있다. 이 스킬을
실행하면 그 예시와 같은 구조지만, 대상자 본인의 이름·Slack ID·볼트 경로·활성 프로젝트가 들어간
새 파일을 생성한다.
references/example-filled-michael.md이 스킬은 네 단계를 순서대로 수행한다:
- 발견(Discover) — 대상자 볼트가 이미 알고 있는 것을 조용히 읽는다. 와
Context/에서 이름, 브랜드, 볼트 폴더 구조를 뽑아낸다.CLAUDE.md - 부족한 것만 질문(Ask only the gaps) — 캐던스, 커넥터(라이브 프로브 결과 확인), DM 수신자, 예산, 시그니처 색. 1단계에서 이미 알아낸 것은 다시 묻지 않는다.
- 렌더링 후 저장(Render and save) — 개인화된 프롬프트를 대상자 볼트에 저장한다.
- 스케줄링(Schedule) — 스킬로 넘겨 자동 실행 트리거를 건다. 사용자가 직접
schedule를 실행할 필요가 없게 한다./schedule create
此 skill 本身并不是每次执行都用于管理 Second Brain 的 Operator。它是一个用于创建 Operator 的 Builder。执行后,它会根据目标用户的 vault 和 connector,在该用户的 vault 内生成个性化 Operator prompt,并设置自动执行 schedule。
渲染后的 Operator 不仅维护每日笔记和项目笔记,还会在每次执行时循环维护文件夹索引文件的 os-optimizer F9 格式。这样,即使目标用户没有单独运行 os-optimizer,vault 也能持续保持审计通过状态(维持可发现性链,并确保 frontmatter、em dash 和签名一致)。在需要像 cohort 部署那样为多个 vault 保证相同质量时,尤其有效。
仅针对 Michael 硬编码的示例位于 。运行此 skill 时,将生成一个结构相同的新文件,但其中会填入目标用户本人的名称、Slack ID、vault 路径和活跃项目。
references/example-filled-michael.md此 skill 按顺序执行四个阶段:
- 发现(Discover)——静默读取目标用户 vault 中已经包含的信息。从 和
Context/中提取名称、品牌和 vault 文件夹结构。CLAUDE.md - 仅询问缺失项(Ask only the gaps)——询问 cadence、connector(确认实时 probe 结果)、DM 接收者、预算和签名颜色。对于第 1 阶段已经获知的信息,不会再次询问。
- 渲染并保存(Render and save)——将个性化 prompt 保存到目标用户的 vault。
- 调度(Schedule)——移交给 skill,设置自动执行触发器。用户无需亲自执行
schedule。/schedule create
참조 파일
参考文件
- — 파라미터화된 오퍼레이터 프롬프트 (
references/operator-prompt-template-kr.md포함, 약 350줄).{{PLACEHOLDER}} - — 커넥터별 스플라이스 블록(Slack/Calendar/Gmail/Notion/ Drive/Firecrawl, Wiki 파이프라인, 프로젝트 README 단계).
references/connector-fragments-kr.md - — 오퍼레이터 노트를 os-optimizer 감사에 상시 통과시키기 위한 형식 계약(frontmatter 스키마, 폴더 인덱스 형식, 조율 포인트). 대상자
references/os-optimizer-alignment-kr.md시드 기준.CLAUDE.md - — 참고용 완성 예시(그대로 쓰지 않음, 위 안내 참고).
references/example-filled-michael.md
Phase 2(렌더링)를 시작하기 전에 위 두 참조 파일(템플릿 + 프래그먼트)을 모두 읽는다.
- ——参数化的 Operator prompt(包含
references/operator-prompt-template-kr.md,约 350 行)。{{PLACEHOLDER}} - ——各 connector 的 splice 块(Slack/Calendar/Gmail/Notion/Drive/Firecrawl、Wiki pipeline、项目 README 阶段)。
references/connector-fragments-kr.md - ——确保 Operator 笔记始终通过 os-optimizer 审计的格式约定(frontmatter schema、文件夹索引格式和协调点)。以目标用户的
references/os-optimizer-alignment-kr.md为 seed。CLAUDE.md - ——完整参考示例(不要直接使用,请参考以上说明)。
references/example-filled-michael.md
开始第 2 阶段(渲染)之前,必须读取上述两个参考文件(模板和 fragment)。
Phase 0 — 조용한 발견 (질문 없음, 쓰기 없음)
第 0 阶段——静默发现(不提问、不写入)
이 스킬은 대상자의 볼트 폴더가 연결된 상태(Cowork에서 그 폴더를 선택했거나, 로컬에서 그 볼트
안에 있을 때)에서 실행한다. 전부 파일시스템 읽기 전용 작업이다.
- cwd/연결된 폴더가 볼트인지 확인한다. 루트에 가 있어야 한다. 없으면 대상자에게 세컨드브레인 볼트 폴더를 알려달라고 요청하고, 그 전에는 진행하지 않는다.
CLAUDE.md - 최상위 폴더 목록.
Glob.*/은 이 폴더의 절대경로(끝에{{VAULT_ROOT}}포함)로 캐시한다./ - 를 읽는다. 시그니처 스타일, em-dash 규칙, 문체 규칙, 폴더 라우팅, Wiki 시스템(있으면
CLAUDE.md→raw/파이프라인 존재로 판단) 여부를 뽑아낸다. 폴더 인덱스 컨벤션도 확인한다: 폴더별 인덱스 파일명이Wiki//README.md/Plot.md중 무엇인지 (index.md으로 실제 인덱스 파일을 찾아 확인). 명시가 없으면Glob를 기본값으로 캐시한다. 렌더된 오퍼레이터는 이 컨벤션으로 os-optimizer F9 형식의 폴더 인덱스를 매 실행 유지한다.README.md - 의 파일들을 읽는다. 있는 것만:
Context/- — 소유자 이름, 역할 →
Context/me.md{{OWNER_NAME}} - /
Context/business.md— 브랜드/조직명 →Context/brand.md(없으면{{BRAND_NAME}}으로 대체하고{{OWNER_NAME}}의 세컨드브레인는 빈 문자열){{BRAND_WIKILINK}} - — 브랜드 색상 hex 코드가 있으면
Context/brand.md후보로.{{SIGNATURE_BG_COLOR}}
- 활성 프로젝트를 찾는다.
Glob. 각 프로젝트명을 모아Projects/*/README.md용 목록으로 캐시(각 줄{{ACTIVE_PROJECTS_BLOCK}}Projects/{name}/README.md`: [[Projects/{name}]]- \{{PROJECT_README_STEP}}`은 connector-fragments-kr.md의 "비활성" 블록을 쓴다.형식). 하나도 없으면 빈 목록으로 두고 - Wiki 파이프라인 여부. 와
Wiki/폴더가 모두 최상위 폴더 목록에 있으면 활성으로 간주. 없으면 비활성. 활성이면raw/Glob로 기존 토픽 폴더명을 모아Wiki/*/로 캐시한다(예:{{WIKI_TOPICS_LIST}}). 하나도 없으면ai-agents, ai-business, second-brain는 "아직 토픽 없음, 첫 아티클의 주제로 새로 만든다"로 둔다.{{WIKI_TOPICS_LIST}} - 기타 캐시 값:
- (기본값) ←
{{OPERATOR_NAME}}.{{BRAND_NAME}} 볼트 오퍼레이터 - ←
{{OPERATOR_BASE_PATH}}(Projects/ 폴더가 있으면), 없으면 대상자에게 어디에 오퍼레이터 관련 파일을 둘지 한 번 물어본다.Projects/Vault-Operator/ - ← brand.md에서 못 찾으면
{{SIGNATURE_BG_COLOR}}.#D2ECD0 - ←
{{SIGNATURE_FG_COLOR}}.#020309
발견이 끝나면 4~6줄로 요약한다:
볼트에서 발견한 정보:
- 소유자:
{{OWNER_NAME}}- 브랜드:
{{BRAND_NAME}}- 최상위 폴더:
개 ({count}){list first 5}- 활성 프로젝트:
개{count}- Wiki/raw 파이프라인: {있음 | 없음}
- 폴더 인덱스 컨벤션:
{README.md | Plot.md | index.md | 없음 → README.md 기본값}- os-optimizer 정합 컨벤션: {CLAUDE.md에 있음 | 없음 → 시드 권장}
- 오퍼레이터 경로(제안):
{{OPERATOR_BASE_PATH}}바꿀 게 있나요? (필드 이름을 말하거나, "이대로 좋다"고 하면 계속 진행합니다.)
수정 요청이 있으면 짧게 반영하고 캐시를 갱신한다. "이대로 좋다"면 바로 Phase 1로 간다. 위
항목들을 별도 질문으로 다시 묻지 않는다. Phase 1은 볼트가 알려줄 수 없는 것만 다룬다.
此 skill 必须在目标用户的 vault 文件夹已连接的情况下运行(在 Cowork 中选择了该文件夹,或在本地位于该 vault 内)。此阶段的所有操作均为文件系统只读操作。
- 确认 cwd/已连接文件夹是否为 vault。 根目录中必须存在 。如果没有,则请目标用户提供 Second Brain vault 文件夹,并在此之前停止执行。
CLAUDE.md - 获取顶层文件夹列表。 使用
Glob。将*/缓存为此文件夹的绝对路径(末尾包含{{VAULT_ROOT}})。/ - 读取 。 提取签名样式、em dash 规则、文体规则、文件夹路由,以及是否存在 Wiki 系统(如果存在,则根据是否存在
CLAUDE.md→raw/pipeline 判断)。还需确认文件夹索引约定:每个文件夹的索引文件名是Wiki/、README.md还是Plot.md(使用index.md查找实际索引文件并确认)。如果未明确指定,则缓存默认值Glob。渲染后的 Operator 会按照此约定,在每次执行时维护 os-optimizer F9 格式的文件夹索引。README.md - 读取 中的文件。 仅处理存在的文件:
Context/- ——所有者名称、角色 →
Context/me.md{{OWNER_NAME}} - /
Context/business.md——品牌或组织名称 →Context/brand.md(如果不存在,则使用{{BRAND_NAME}},并将{{OWNER_NAME}}的 Second Brain设为空字符串){{BRAND_WIKILINK}} - ——如果包含品牌颜色 hex code,则将其作为
Context/brand.md候选值。{{SIGNATURE_BG_COLOR}}
- 查找活跃项目。 使用
Glob。收集每个项目名称,并将其缓存为Projects/*/README.md所用列表(每行格式为{{ACTIVE_PROJECTS_BLOCK}}Projects/{name}/README.md-)。如果没有项目,则使用空列表,并将: [[Projects/{name}/]]设置为 connector-fragments-kr.md 中的“禁用”块。{{PROJECT_README_STEP}} - 判断是否存在 Wiki pipeline。 如果顶层文件夹列表中同时存在 和
Wiki/,则视为启用;否则视为禁用。启用时,使用raw/Glob收集现有主题文件夹名称,并将其缓存为Wiki/*/(例如{{WIKI_TOPICS_LIST}})。如果没有任何主题,则将ai-agents, ai-business, second-brain设为“尚无主题,将以第一篇文章的主题新建”。{{WIKI_TOPICS_LIST}} - 其他缓存值:
- (默认值)←
{{OPERATOR_NAME}}。{{BRAND_NAME}} Vault Operator - ←
{{OPERATOR_BASE_PATH}}(如果存在Projects/Vault-Operator/文件夹);如果不存在,则向目标用户询问一次 Operator 相关文件应存放在哪里。Projects/ - ← 如果无法从 brand.md 中找到,则使用
{{SIGNATURE_BG_COLOR}}。#D2ECD0 - ←
{{SIGNATURE_FG_COLOR}}。#020309
发现完成后,用 4~6 行进行总结:
从 vault 中发现的信息:
- 所有者:
{{OWNER_NAME}}- 品牌:
{{BRAND_NAME}}- 顶层文件夹:
个({count}){list first 5}- 活跃项目:
个{count}- Wiki/raw pipeline:{有 | 无}
- 文件夹索引约定:
{README.md | Plot.md | index.md | 无 → 默认 README.md}- os-optimizer 对齐约定:{CLAUDE.md 中有 | 无 → 建议采用 seed}
- Operator 路径(建议):
{{OPERATOR_BASE_PATH}}有需要更改的内容吗?(说出字段名,或说“就这样”以继续。)
如果用户提出修改要求,则简要应用修改并更新缓存。如果用户回答“就这样”,则直接进入第 1 阶段。不要再次单独询问以上项目。 第 1 阶段只处理 vault 无法获知的信息。
Phase 1 — 부족한 것만 질문
第 1 阶段——仅询问缺失项
Q1 — 캐던스
Q1——Cadence
AskUserQuestion- 하루 2회 — 오전 9시 / 오후 9시. 기존 Michael 인스턴스의 실 운영값과 동일. 대부분의 1인 세컨드브레인에 적당.
- 몇 시간마다 — 예: 4시간마다. 활동이 많은 경우.
- 하루 1회 — 저활동 볼트에 적당.
- 직접 입력 — cron 표현식이나 문구.
{{CADENCE_HUMAN}}{{CADENCE_CRON}}0 9,21 * * *使用 询问:
AskUserQuestion- 每天 2 次——上午 9 点/下午 9 点。与现有 Michael 实例的实际运行值相同,适合大多数个人 Second Brain。
- 每隔几小时——例如每 4 小时。适合活动频繁的情况。
- 每天 1 次——适合低活跃度 vault。
- 直接输入——cron 表达式或自然语言描述。
将结果保存为 和 (例如每天 2 次 → “每天上午 9 点/下午 9 点”,)。
{{CADENCE_HUMAN}}{{CADENCE_CRON}}0 9,21 * * *Q2 — 커넥터 (라이브로 프로브하고, 그냥 묻지 않는다)
Q2——Connector(实时 probe,不要直接询问)
체크리스트를 던지고 대상자의 대답을 그대로 믿지 않는다. 이 세션에 실제로 연결된 도구를
프로브한 다음 확인받는다.
不要只是列出 checklist,然后直接相信目标用户的回答。必须先实际 probe 当前会话中已连接的工具,再让用户确认。
2a — 감지
2a——检测
세션에서 사용 가능한 도구 이름을 살펴본다. 아래 접두어 패턴을 찾는다(네임스페이스 무관):
| 커넥터 | 감지 신호 | 읽기 전용 프로브 |
|---|---|---|
| Slack | | |
| Google Calendar | | |
| Gmail | | 좁은 범위(예: 최근 1일, limit 1)로 호출. |
| Notion | | |
| Google Drive | | 작은 범위로 호출. |
| Firecrawl | | 감지만 하고 실제 스크레이프 호출은 하지 않는다(불필요한 크레딧 소모 방지). |
감지된 프로브를 한 배치로 병렬 실행한다. 배치 전후로 한 문장씩 내레이션한다.
- ✅ 감지되고 프로브 성공 → 활성. 실제 MCP 접두어를 으로 캡처.
{{*_MCP_NAME}} - ⚠️ 감지됐지만 프로브 실패(인증 오류 등) → "연결은 됐지만 문제 있음"으로 표시. 정확한 오류를 보여주고 (a) 건너뛸지 (b) 대상자가 고친 뒤 다시 프로브할지 (c) 그래도 포함할지 물어본다.
- ❌ 감지 안 됨 → 비활성. "추가할까요?"라고 묻지 않는다. 그건 별도 설치 작업이다.
查看会话中可用的工具名称,寻找以下前缀模式(与 namespace 无关):
| Connector | 检测信号 | 只读 probe |
|---|---|---|
| Slack | | 调用 |
| Google Calendar | | 使用今天的完整日期调用 |
| Gmail | | 使用较窄范围调用,例如最近 1 天、limit 1。 |
| Notion | | 调用时将 |
| Google Drive | | 使用较小范围调用。 |
| Firecrawl | | 仅检测,不实际执行 scrape 调用,以免无谓消耗额度。 |
将检测到的 probe 放在一个批次中并行执行。批次执行前后各进行一句话说明。
- ✅ 已检测到且 probe 成功 → 启用。捕获实际 MCP 前缀,并保存为 。
{{*_MCP_NAME}} - ⚠️ 已检测到但 probe 失败(例如认证错误)→ 标记为“已连接但存在问题”。准确显示错误,并询问用户:(a) 跳过;(b) 修复后重新 probe;(c) 仍然包含。
- ❌ 未检测到 → 禁用。不要询问“是否添加?”,因为这属于单独的安装任务。
2b — 사용자 확인
2b——用户确认
요약 블록 하나로 보여준다:
감지된 커넥터:
- ✅ Slack —
{{SLACK_MCP_NAME}}- ✅ Google Calendar —
{{CALENDAR_MCP_NAME}}- ❌ Gmail — 감지 안 됨
- ❌ Notion — 감지 안 됨
- ❌ Google Drive — 감지 안 됨
- ❌ Firecrawl — 감지 안 됨
이대로 오퍼레이터에 쓸까요? (예 / 직접 조정)
"직접 조정"이면 개별 항목을 끌 수 있게 한다(단, 감지되지 않은 걸 켜지는 못한다. 그건 먼저 그
MCP를 연결해야 한다).
읽기 전용 프로브만 한다. 감지 단계에서 쓰기/전송 도구(DM 보내기, 게시 등)는 절대 호출하지 않는다.
显示一个汇总块:
已检测到的 connector:
- ✅ Slack —
{{SLACK_MCP_NAME}}- ✅ Google Calendar —
{{CALENDAR_MCP_NAME}}- ❌ Gmail — 未检测到
- ❌ Notion — 未检测到
- ❌ Google Drive — 未检测到
- ❌ Firecrawl — 未检测到
要按此配置用于 Operator 吗?(例如 / 手动调整)
如果用户选择“手动调整”,则允许逐项开关 connector(但不能启用未检测到的 connector,必须先连接相应的 MCP)。
只执行只读 probe。检测阶段绝不能调用写入或发送工具(发送 DM、发布内容等)。
Q3 — Slack DM 수신자 (Slack이 활성일 때만)
Q3——Slack DM 接收者(仅当 Slack 已启用时)
오퍼레이터가 사람의 대응이 필요한 항목을 찾으면 누구에게 1:1 DM으로 알릴까요? 딱 한 명만. 채널이나 그룹은 안 됩니다.
slack_search_users{{SLACK_USER_ID}}如果 Operator 找到需要人工响应的事项,应向谁发送 1:1 DM 提醒?只能指定一个人。 不能是频道或群组。
使用 搜索姓名并确认 Slack user ID,将其保存为 。如果 Slack 未启用,则跳过此问题。
slack_search_users{{SLACK_USER_ID}}Q4 — 예산
Q4——预算
AskUserQuestion- Light — 읽기 25 / 쓰기 15 / DM 3 / 하우스키핑 5. 1인 볼트, 하루 2회 캐던스에 적당(기본값).
- 기본 — 읽기 50 / 쓰기 30 / DM 5 / 하우스키핑 10.
- Heavy — 읽기 100 / 쓰기 60 / DM 10 / 하우스키핑 20. 활동이 많거나 캐던스가 잦을 때.
- 직접 입력.
{{BUDGET_READS}}{{BUDGET_WRITES}}{{BUDGET_DMS}}{{BUDGET_HOUSEKEEPING}}使用 询问:
AskUserQuestion- Light——读取 25 / 写入 15 / DM 3 / housekeeping 5。适合个人 vault 和每天 2 次的 cadence(默认值)。
- 标准——读取 50 / 写入 30 / DM 5 / housekeeping 10。
- Heavy——读取 100 / 写入 60 / DM 10 / housekeeping 20。适合活动频繁或 cadence 较高的情况。
- 直接输入。
将结果保存为 、、 和 。
{{BUDGET_READS}}{{BUDGET_WRITES}}{{BUDGET_DMS}}{{BUDGET_HOUSEKEEPING}}Q5 — 시그니처 색 (Phase 0에서 못 찾았을 때만)
Q5——签名颜色(仅当第 0 阶段未找到时)
Context/brand.md오퍼레이터가 수정한 모든 파일 하단에 색깔 있는 span으로 서명을 남깁니다. 배경색을 고르세요(기본값:, 민트 그린).#D2ECD0
{{SIGNATURE_BG_COLOR}}{{SIGNATURE_FG_COLOR}}#020309如果已经从 找到颜色,则跳过此步骤。否则询问:
Context/brand.mdOperator 修改的所有文件底部都会留下带颜色的 span 签名。请选择背景色(默认值:,薄荷绿)。#D2ECD0
将结果保存为 和 ()。
{{SIGNATURE_BG_COLOR}}{{SIGNATURE_FG_COLOR}}#020309Phase 2 — 렌더링
第 2 阶段——渲染
- 를 읽는다.
references/operator-prompt-template-kr.md - 를 읽는다.
references/connector-fragments-kr.md - 모든 를 캡처된 값으로 치환한다. 커넥터별 자리(
{{PLACEHOLDER}},{{SLACK_BOOTSTRAP_LINE}},{{SLACK_PULL_BULLET}},{{CALENDAR_BOOTSTRAP_LINE}},{{CALENDAR_PULL_BULLET}},{{GMAIL_BOOTSTRAP_LINE}},{{GMAIL_PULL_BULLET}},{{NOTION_BOOTSTRAP_LINE}},{{NOTION_PULL_BULLET}},{{DRIVE_BOOTSTRAP_LINE}},{{DRIVE_PULL_BULLET}},{{LINK_INGESTION_BLOCK}},{{RAW_WIKI_SWEEP_BLOCK}},{{SLACK_ESCALATION_STEP}},{{PROJECT_README_STEP}},{{ENABLED_CONNECTORS_LINE}})는:{{MCP_BLOCK}}- 활성 커넥터 → connector-fragments-kr.md의 활성 블록을 스플라이스하고, 그 안에 중첩된
placeholder(등)를 다시 한번 치환한다.
{{OWNER_NAME}} - 비활성 → 비활성 블록으로 대체(대부분 "이 단계를 생략한다"는 한 줄).
- 활성 커넥터 → connector-fragments-kr.md의 활성 블록을 스플라이스하고, 그 안에 중첩된
placeholder(
- : Wiki 파이프라인 활성이면
{{RAW_GLOB_BULLET}}줄을 넣고, 비활성이면 통째로 삭제한다.- Glob 패턴 raw/*.md로 컴파일 대기 중인 raw 클리핑 목록을 확인한다. - 괄호로 "(Slack 활성 시)", "(Wiki 파이프라인 활성 시)" 등으로 표시된 하드 룰/실패 처리 문장은 해당 커넥터가 비활성이면 그 문장(괄호 포함)을 통째로 삭제한다. 활성이면 괄호 표시만 지우고 문장은 남긴다.
- 경로 파생값을 만든다:
- = 이메일을 알면
{{OWNER_EMAIL_SUFFIX}}, 모르면 빈 문자열., 이메일 {{OWNER_EMAIL}} - = 브랜드명이 있으면
{{BRAND_WIKILINK}}, 없으면 빈 문자열., [[{{BRAND_NAME}}]] 브랜드
- 정합성 검사. 렌더링된 결과에서 가 남아있는지 스캔한다. 남아있으면 저장 전에 고치거나 대상자에게 알린다.
{{
대상자에게 짧은 미리보기(제목, 캐던스 줄, 활성 커넥터 목록, MCP 블록)를 보여주고 예/아니오로
"저장할까요?"를 묻는다.
- 读取 。
references/operator-prompt-template-kr.md - 读取 。
references/connector-fragments-kr.md - 使用捕获到的值替换所有 。各 connector 的占位符(
{{PLACEHOLDER}}、{{SLACK_BOOTSTRAP_LINE}}、{{SLACK_PULL_BULLET}}、{{CALENDAR_BOOTSTRAP_LINE}}、{{CALENDAR_PULL_BULLET}}、{{GMAIL_BOOTSTRAP_LINE}}、{{GMAIL_PULL_BULLET}}、{{NOTION_BOOTSTRAP_LINE}}、{{NOTION_PULL_BULLET}}、{{DRIVE_BOOTSTRAP_LINE}}、{{DRIVE_PULL_BULLET}}、{{LINK_INGESTION_BLOCK}}、{{RAW_WIKI_SWEEP_BLOCK}}、{{SLACK_ESCALATION_STEP}}、{{PROJECT_README_STEP}}、{{ENABLED_CONNECTORS_LINE}})处理如下:{{MCP_BLOCK}}- 已启用的 connector → splice connector-fragments-kr.md 中的启用块,并再次替换块内嵌套的 placeholder(例如 )。
{{OWNER_NAME}} - 未启用的 connector → 替换为禁用块(大多数情况下是一行“省略此阶段”)。
- 已启用的 connector → splice connector-fragments-kr.md 中的启用块,并再次替换块内嵌套的 placeholder(例如
- :如果 Wiki pipeline 已启用,则加入一行
{{RAW_GLOB_BULLET}};如果未启用,则整行删除。- 检查等待编译的 raw 剪辑列表,Glob 模式为 raw/*.md。 - 对于以括号标注的条件性硬规则或失败处理语句,例如“(Slack 启用时)”“(Wiki pipeline 启用时)”:如果对应 connector 未启用,则删除整条语句(包括括号);如果已启用,则仅移除括号标记并保留正文。
- 生成路径派生值:
- 如果已知邮箱,则 =
{{OWNER_EMAIL_SUFFIX}};否则为空字符串。, 邮箱 {{OWNER_EMAIL}} - 如果存在品牌名称,则 =
{{BRAND_WIKILINK}};否则为空字符串。, [[{{BRAND_NAME}}]] 品牌
- 如果已知邮箱,则
- 一致性检查。 扫描渲染结果中是否仍存在 。如果存在,则在保存前修复或告知目标用户。
{{
向目标用户显示一个简短预览,包括标题、cadence 行、已启用的 connector 列表和 MCP 块,然后以是/否方式询问“是否保存?”。
Phase 3 — 저장
第 3 阶段——保存
예라고 하면:
- 도구로 대상자 볼트의 로컬 파일시스템에 쓴다.
Write - 경로: .
{{VAULT_ROOT}}{{OPERATOR_BASE_PATH}}operator-prompt.md - 로 다시 읽어 내용이 실제로 있는지 확인한다.
Read - 없다면 함께 생성: (빈 스켈레톤:
{{OPERATOR_BASE_PATH}}task-list/Tasks.md,## Slack Seen,## Slack Escalated,## Link Ingested,## Raw Compiled,## Index Refreshed,## Housekeeping Queue— 비활성 커넥터의 섹션은 뺀다.Last run: 없음는 커넥터와 무관하게 항상 포함한다),## Index Refreshed폴더(빈 채로 둬도 됨, 첫 실행 때 리포트가 여기 쌓인다).{{OPERATOR_BASE_PATH}}operator-logs/
이미 파일이 있으면 덮어쓰기 전에 확인한다.
如果用户回答“是”:
- 使用 工具将文件写入目标用户 vault 的本地文件系统。
Write - 路径:。
{{VAULT_ROOT}}{{OPERATOR_BASE_PATH}}operator-prompt.md - 使用 再次读取文件,确认内容确实已经写入。
Read - 如果文件不存在,则同时创建 (空 skeleton:
{{OPERATOR_BASE_PATH}}task-list/Tasks.md、## Slack 已查看、## Slack 已升级、## 链接已摄取、## Raw 已编译、## 索引已刷新、## Housekeeping 队列——省略未启用 connector 对应的章节。上次运行:无无论 connector 配置如何都始终保留),以及## 索引已刷新文件夹(可以为空,首次执行时报告会累积在这里)。{{OPERATOR_BASE_PATH}}operator-logs/
如果文件已经存在,则在覆盖前请求确认。
Phase 4 — 스케줄링 ("저장했다"에서 멈추지 않는다)
第 4 阶段——调度(不要停在“已保存”)
프롬프트를 저장한 직후, 즉시 도구로 스킬을 호출한다. "저장했습니다"에서
멈추지 않는다. 대상자에게 직접 를 하라고 넘기지 않는다.
Skillschedule/schedule create保存 prompt 后,立即使用 工具调用 skill。 不要停在“已保存”。不要让目标用户自行执行 。
Skillschedule/schedule create캐던스 → cron 매핑
Cadence → cron 映射
| 캐던스 | cron |
|---|---|
| 하루 2회(09:00/21:00) | |
| 몇 시간마다(4시간) | |
| 하루 1회 | |
| 직접 입력 | 사용자가 입력한 값 그대로 |
| Cadence | Cron |
|---|---|
| 每天 2 次(09:00/21:00) | |
| 每隔几小时(4 小时) | |
| 每天 1 次 | |
| 直接输入 | 原样使用用户输入的值 |
트리거 페이로드
触发器 Payload
- cron 표현식 — 위 표에서.
- 작업 디렉터리 — 대상자의 볼트 루트(). 오퍼레이터는 반드시 이 볼트 안에서 돌아야 파일 경로가 맞는다.
{{VAULT_ROOT}} - 프롬프트 —
"오퍼레이터를 실행하라. {{VAULT_ROOT}}{{OPERATOR_BASE_PATH}}operator-prompt.md를 읽고 그대로 정확히 실행하라. 한 번의 실행 = 하나의 리포트. 끝나면 멈춘다." - 트리거 이름 — (슬러그화, 예:
{{OPERATOR_HANDLE}}-{{CADENCE_TAG}}).vault-operator-kr-daily2x - 설명 — .
"{{OPERATOR_NAME}} — {{CADENCE_HUMAN}}"
schedule- Cron 表达式——使用上表中的值。
- 工作目录——目标用户的 vault 根目录()。Operator 必须始终在此 vault 中运行,才能使用正确的文件路径。
{{VAULT_ROOT}} - Prompt——“运行 Operator。读取 ,并严格按原样执行。一次执行 = 一份报告。完成后停止。”
{{VAULT_ROOT}}{{OPERATOR_BASE_PATH}}operator-prompt.md - 触发器名称——(slug 化,例如
{{OPERATOR_HANDLE}}-{{CADENCE_TAG}})。vault-operator-kr-daily2x - 描述——“—
{{OPERATOR_NAME}}”。{{CADENCE_HUMAN}}
由 skill 自行执行时区确认、cron 复核等检查流程。如果该 skill 尚未安装,则以文本形式提供准确的 cron 表达式和可供粘贴的 prompt。如果触发器实际上没有设置成功,绝不能声称其已经设置成功。
schedule마무리 안내
结束提示
한 짧은 문단으로 알린다:
오퍼레이터 프롬프트를에 저장했고, {{CADENCE_HUMAN}}(cron{{OPERATOR_BASE_PATH}}operator-prompt.md)으로 스케줄을 걸었습니다. 다음 tick에 첫 실행이 돌아갑니다.{cron}나/schedule list로 언제든 관리할 수 있습니다./schedule update
멈춘다. 다른 후속 제안을 하지 않는다.
用一段简短文字告知用户:
已将 Operator prompt 保存到,并按 {{CADENCE_HUMAN}}(cron{{OPERATOR_BASE_PATH}}operator-prompt.md)设置了 schedule。下一次 tick 将运行首次执行。 可以随时使用{cron}或/schedule list管理。/schedule update
然后停止,不提供其他后续建议。
이 빌더 스킬의 하드 룰
此 Builder skill 的硬规则
- 발견이 먼저다. 와
Context/를 읽기 전에는 아무것도 묻지 않는다. 볼트가 이미 담고 있는 값은 절대 다시 묻지 않는다.CLAUDE.md - 볼트 콘텐츠는 로컬 우선. 커넥터 프로브를 제외한 모든 볼트 읽기/쓰기는 ,
Glob,Read로 로컬 파일시스템에 대해 한다.Write - 묻지 말고 프로브한다. Q2(커넥터)에서 "Slack 있어요?"라고 절대 묻지 않는다. 감지한다.
- 항상 스케줄링으로 마무리한다. Phase 4는 필수다. 저장 → 같은 실행 안에서 스킬 호출까지.
schedule - 를 절대 수정하지 않는다. 그 파일은 런타임에 오퍼레이터가 참조만 한다.
CLAUDE.md - 비활성 커넥터는 완전히 지운다. Slack과 Notion만 켰다면 Gmail, Google Drive, Firecrawl은 렌더링된 프롬프트 어디에도 등장하면 안 된다.
- 폴더 인덱스 스윕은 항상 켠다. 6.5 폴더 인덱스 스윕은 커넥터와 무관한 코어 기능이다. 커넥터 구성이 어떻든 렌더된 프롬프트에서 이 단계를 제거하지 않는다.
- 렌더링 후 잔존 여부를 한 번 검사한다. 저장 전에 미치환 placeholder를 잡아낸다.
{{ - 기본값을 기본으로. 대상자가 "Light 예산"을 골랐으면 개별 예산 필드를 하나하나 캐묻지 않는다.
- 대상자 본인의 정보로만 채운다. Michael이나 다른 특정 인물의 이름, Slack ID, 이메일, 볼트 경로가 새로 생성되는 프롬프트에 절대 섞여 들어가지 않는다. 예시 파일(example-filled-michael.md) 은 참고용일 뿐 값의 출처가 아니다.
- 发现优先。 在读取 和
Context/之前不要提出任何问题。绝不能再次询问 vault 已经包含的值。CLAUDE.md - vault 内容本地优先。 除 connector probe 外,所有 vault 读取和写入操作都通过 、
Glob和Read在本地文件系统上完成。Write - 不要询问,而是 probe。 在 Q2(connector)中绝不能直接询问“是否使用 Slack?”,必须先检测。
- 始终以调度结束。 第 4 阶段是必需步骤:保存 → 在同一次执行中调用 skill。
schedule - 绝不修改 。 该文件只在运行时由 Operator 引用。
CLAUDE.md - 完全删除未启用的 connector。 如果只启用 Slack 和 Notion,那么渲染后的 prompt 中任何位置都不得出现 Gmail、Google Drive 或 Firecrawl。
- 始终启用文件夹索引 sweep。 6.5 文件夹索引 sweep 是与 connector 无关的核心功能。无论 connector 如何配置,都不能从渲染后的 prompt 中删除此阶段。
- 渲染后检查一次是否存在 残留。 保存前捕获所有未替换的 placeholder。
{{ - 默认值就是默认值。 如果目标用户选择了“Light 预算”,则不要逐个追问各项预算字段。
- 只能使用目标用户本人的信息。 创建新 prompt 时,绝不能混入 Michael 或其他特定人员的名称、Slack ID、邮箱或 vault 路径。示例文件 example-filled-michael.md 仅供参考,不能作为数据来源。