僅限 workflow template 使用的工具,用於把 reviewed-sync candidate 寫入 Obsidian,並在核准後透過 frontmatter 正規化、index 更新與 dedupe 升格到 20-reviewed。
這是一個 只允許在 workflow template repo 使用 的 maintainer-local 工具,用來處理 Obsidian 的兩段式 reviewed sync 流程:
write-candidate
10-inbox/reviewed-sync-candidates/promote-candidate
20-reviewed/pending-review-notes.github/workflow-core/skills/reviewed-sync-manager/SKILL.md.github/workflow-core/skills/reviewed-sync-manager/scripts/reviewed_sync_manager.pywrite-candidate 支援三種來源:
JSON mode 已收斂成固定欄位、固定版本的 contract。
schema_version 必須固定為 reviewed-sync-candidate.v1schema_version: stringtitle: stringsource_repo: stringsource_path: stringsource_type: stringsummary_text: stringtarget_reviewed_dir: stringindex_targets: string[]why_in_inbox: string[]reusability_check: string[]next_review_action: string[]source_notes: string[]source_excerpt: stringtags: string[]related_topics: string[]related_projects: string[]candidate_source_mode: stringcandidate_key: stringreviewed_key: stringsynced_on: string{
"schema_version": "reviewed-sync-candidate.v1",
"title": "reviewed sync policy summary",
"source_repo": "agent-workflow-template",
"source_path": "maintainers/chat/2026-03-22-obsidian-reviewed-sync-operating-model.md",
"source_type": "maintainer-policy",
"summary_text": "整理 reviewed-sync policy 的核心結論。",
"target_reviewed_dir": "agent-workflow-template/workflow-knowledge",
"index_targets": ["workflows.md"],
"why_in_inbox": ["需要人工確認是否值得沉澱成長期知識"],
"reusability_check": ["可跨 session 重用"],
"next_review_action": ["人工 review 後決定 promotion"],
"source_notes": ["repo file: maintainers/chat/2026-03-22-obsidian-reviewed-sync-operating-model.md"],
"source_excerpt": "# reviewed-sync policy\n...",
"tags": ["inbox", "candidate", "reviewed-sync"],
"related_topics": ["obsidian", "reviewed-sync"],
"related_projects": ["agent-workflow-template"],
"candidate_source_mode": "repo-file",
"candidate_key": "agent-workflow-template|maintainers/chat/2026-03-22-obsidian-reviewed-sync-operating-model.md|maintainer-policy|agent-workflow-template/workflow-knowledge|reviewed sync policy summary",
"reviewed_key": "agent-workflow-template|maintainers/chat/2026-03-22-obsidian-reviewed-sync-operating-model.md|agent-workflow-template/workflow-knowledge|reviewed sync policy summary",
"synced_on": "2026-03-21"
}
payload_schema_versionpython .github/workflow-core/skills/reviewed-sync-manager/scripts/reviewed_sync_manager.py write-candidate \
--vault-root /obsidian/vault \
--source-file maintainers/chat/2026-03-22-obsidian-reviewed-sync-operating-model.md \
--title "reviewed sync policy summary" \
--target-reviewed-dir agent-workflow-template/workflow-knowledge
python .github/workflow-core/skills/reviewed-sync-manager/scripts/reviewed_sync_manager.py write-candidate \
--vault-root /obsidian/vault \
--summary-text "整理這輪 Obsidian mount 與 reviewed-sync 邊界的結論" \
--title "obsidian mount governance summary" \
--target-reviewed-dir agent-workflow-template/maintainer-sops
python .github/workflow-core/skills/reviewed-sync-manager/scripts/reviewed_sync_manager.py write-candidate \
--vault-root /obsidian/vault \
--payload-file /tmp/reviewed_sync_payload.json
10-inbox/reviewed-sync-candidates/reviewed-sync-candidate 類型 frontmattercandidate_key / reviewed_keytarget_reviewed_dirindex_targetsrelated_topicsrelated_projectspython .github/workflow-core/skills/reviewed-sync-manager/scripts/reviewed_sync_manager.py promote-candidate \
--vault-root /obsidian/vault \
--candidate-file /obsidian/vault/10-inbox/reviewed-sync-candidates/2026-03-21-candidate-reviewed-sync-policy-summary.md \
--reviewed-by human
20-reviewed/<target_reviewed_dir>review_status 改為 approvedpromotion_status 改為 reviewedreviewed_byreviewed_key 搜尋既有 reviewed note00-indexes/*.md30-archives/superseded/script 會在執行前檢查這是不是 workflow template repo。
若不是,直接回傳錯誤,不做任何寫入。
write-candidateaction: create / updatetarget_notecandidate_keyreviewed_keypromote-candidateaction: promote / mergetarget_notearchived_candidate(若有)updated_indexesreviewed_keypending-review-notes triage 記錄