{
  "schemaVersion": "1.0",
  "item": {
    "slug": "zettelclaw",
    "name": "Zettelclaw",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/maxpetretta/zettelclaw",
    "canonicalUrl": "https://clawhub.ai/maxpetretta/zettelclaw",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/zettelclaw",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=zettelclaw",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "package.json"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "zettelclaw",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-11T12:10:23.646Z",
      "expiresAt": "2026-05-18T12:10:23.646Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=zettelclaw",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=zettelclaw",
        "contentDisposition": "attachment; filename=\"zettelclaw-2026.3.11.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "zettelclaw"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/zettelclaw"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/zettelclaw",
    "agentPageUrl": "https://openagent3.xyz/skills/zettelclaw/agent",
    "manifestUrl": "https://openagent3.xyz/skills/zettelclaw/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/zettelclaw/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Zettelclaw",
        "body": "Follow the canonical Zettelclaw vault model: capture externally, write durable notes manually, and use the agent for navigation/synthesis.\n\nThis is an instruction-only skill. It does not install software by itself. qmd is optional when it is already available in the environment, and rg is the supported fallback for search."
      },
      {
        "title": "Vault structure",
        "body": "<vault>/\n├── 00 Inbox/\n├── 01 Notes/\n├── 02 Journal/\n├── 03 Templates/\n├── 04 Attachments/\n└── README.md"
      },
      {
        "title": "Note types",
        "body": "Use YAML frontmatter on every note:\n\nRequired on all notes:\n\ntype\ntags\ncreated\n\n\nRequired on doc and content notes:\n\nstatus (queued | in-progress | done | archived)\n\n\nOptional content metadata:\n\nauthor\nsource\n\nUse these primary types:\n\nnote: durable atomic thinking note; no status\ndoc: non-atomic working/reference note; uses status\njournal: daily log note; no status\ncontent types: article, book, movie, tv, youtube, tweet, podcast, paper (and extensible additional content types); uses status"
      },
      {
        "title": "Templates",
        "body": "Always read the matching template in 03 Templates/ before creating a note:\n\nnote.md\njournal.md\nclipper-capture.json\n\nUse core templates/date syntax. Do not require Templater."
      },
      {
        "title": "Inbox workflow",
        "body": "Web captures land in 00 Inbox/ via clipper-capture.json.\nClipper sets type by URL (tweet, youtube, else article) and status: queued.\nProcess inbox captures by keeping/moving, converting into a type: note, or deleting.\nDo not auto-write durable thinking notes from captured content unless explicitly asked."
      },
      {
        "title": "Bases workflow",
        "body": "00 Inbox/inbox.base is the canonical queue view.\nGrouping is by note.type for scan-by-content-type triage.\nPrefer creating/editing .base files over Dataview."
      },
      {
        "title": "Titles as APIs",
        "body": "A note's title is its interface. Use complete, declarative phrases: \"Spaced Repetition Works Because of Retrieval,\" not \"Spaced Repetition.\" A well-titled note can be linked and understood without opening it. When creating or renaming notes, always prefer a full declarative statement."
      },
      {
        "title": "Tag conventions",
        "body": "Tags live in the frontmatter tags array, not inline in the body.\n\nLowercase, hyphenated: spaced-repetition, not Spaced Repetition or spacedRepetition.\nTopic-oriented, not structural: learning (what it's about), not important (how you feel about it).\nNest only when a hierarchy is genuinely useful: ai/transformers is fine, deep nesting is not.\nSuggest tags based on the vault's existing taxonomy rather than inventing new ones."
      },
      {
        "title": "Editing rules",
        "body": "Preserve existing prose unless user asks to rewrite.\nDo not add or maintain an updated frontmatter field.\nUse dense wikilinking ([[Note Title]]) and allow unresolved links as stubs.\nDo not create top-level folders unless explicitly requested.\nDo not assign/change status, move notes, or delete notes without explicit instruction.\nAgent write surface is limited to:\n\n/ask response callouts\noptional daily briefing callout in journals"
      },
      {
        "title": "Search patterns",
        "body": "Default QMD collections:\n\nzettelclaw-inbox\nzettelclaw-notes\nzettelclaw-journal\nzettelclaw-attachments\n\n# qmd (preferred when installed)\nqmd query \"spaced repetition and retrieval\" -c zettelclaw-notes\nqmd search \"status: queued\" -c zettelclaw-inbox\nqmd vsearch \"what have I been learning about memory\" -c zettelclaw-notes\n\n# ripgrep fallback\nrg -l 'type: note' \"01 Notes/\"\nrg -l 'type: article' \"00 Inbox/\" \"01 Notes/\"\nrg -l 'status: queued' \"00 Inbox/\" \"01 Notes/\""
      },
      {
        "title": "OpenClaw integration",
        "body": "If configuring OpenClaw memory paths, use:\n\nagents.defaults.memorySearch.extraPaths\n\nDo not write legacy top-level memorySearch.\nOnly change OpenClaw config when the operator explicitly wants this vault wired into an OpenClaw installation."
      }
    ],
    "body": "Zettelclaw\n\nFollow the canonical Zettelclaw vault model: capture externally, write durable notes manually, and use the agent for navigation/synthesis.\n\nThis is an instruction-only skill. It does not install software by itself. qmd is optional when it is already available in the environment, and rg is the supported fallback for search.\n\nVault structure\n<vault>/\n├── 00 Inbox/\n├── 01 Notes/\n├── 02 Journal/\n├── 03 Templates/\n├── 04 Attachments/\n└── README.md\n\nNote types\n\nUse YAML frontmatter on every note:\n\nRequired on all notes:\ntype\ntags\ncreated\nRequired on doc and content notes:\nstatus (queued | in-progress | done | archived)\nOptional content metadata:\nauthor\nsource\n\nUse these primary types:\n\nnote: durable atomic thinking note; no status\ndoc: non-atomic working/reference note; uses status\njournal: daily log note; no status\ncontent types: article, book, movie, tv, youtube, tweet, podcast, paper (and extensible additional content types); uses status\nTemplates\n\nAlways read the matching template in 03 Templates/ before creating a note:\n\nnote.md\njournal.md\nclipper-capture.json\n\nUse core templates/date syntax. Do not require Templater.\n\nInbox workflow\nWeb captures land in 00 Inbox/ via clipper-capture.json.\nClipper sets type by URL (tweet, youtube, else article) and status: queued.\nProcess inbox captures by keeping/moving, converting into a type: note, or deleting.\nDo not auto-write durable thinking notes from captured content unless explicitly asked.\nBases workflow\n00 Inbox/inbox.base is the canonical queue view.\nGrouping is by note.type for scan-by-content-type triage.\nPrefer creating/editing .base files over Dataview.\nTitles as APIs\n\nA note's title is its interface. Use complete, declarative phrases: \"Spaced Repetition Works Because of Retrieval,\" not \"Spaced Repetition.\" A well-titled note can be linked and understood without opening it. When creating or renaming notes, always prefer a full declarative statement.\n\nTag conventions\n\nTags live in the frontmatter tags array, not inline in the body.\n\nLowercase, hyphenated: spaced-repetition, not Spaced Repetition or spacedRepetition.\nTopic-oriented, not structural: learning (what it's about), not important (how you feel about it).\nNest only when a hierarchy is genuinely useful: ai/transformers is fine, deep nesting is not.\nSuggest tags based on the vault's existing taxonomy rather than inventing new ones.\nEditing rules\nPreserve existing prose unless user asks to rewrite.\nDo not add or maintain an updated frontmatter field.\nUse dense wikilinking ([[Note Title]]) and allow unresolved links as stubs.\nDo not create top-level folders unless explicitly requested.\nDo not assign/change status, move notes, or delete notes without explicit instruction.\nAgent write surface is limited to:\n/ask response callouts\noptional daily briefing callout in journals\nSearch patterns\n\nDefault QMD collections:\n\nzettelclaw-inbox\nzettelclaw-notes\nzettelclaw-journal\nzettelclaw-attachments\n# qmd (preferred when installed)\nqmd query \"spaced repetition and retrieval\" -c zettelclaw-notes\nqmd search \"status: queued\" -c zettelclaw-inbox\nqmd vsearch \"what have I been learning about memory\" -c zettelclaw-notes\n\n# ripgrep fallback\nrg -l 'type: note' \"01 Notes/\"\nrg -l 'type: article' \"00 Inbox/\" \"01 Notes/\"\nrg -l 'status: queued' \"00 Inbox/\" \"01 Notes/\"\n\nOpenClaw integration\n\nIf configuring OpenClaw memory paths, use:\n\nagents.defaults.memorySearch.extraPaths\n\nDo not write legacy top-level memorySearch. Only change OpenClaw config when the operator explicitly wants this vault wired into an OpenClaw installation."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/maxpetretta/zettelclaw",
    "publisherUrl": "https://clawhub.ai/maxpetretta/zettelclaw",
    "owner": "maxpetretta",
    "version": "2026.3.11",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/zettelclaw",
    "downloadUrl": "https://openagent3.xyz/downloads/zettelclaw",
    "agentUrl": "https://openagent3.xyz/skills/zettelclaw/agent",
    "manifestUrl": "https://openagent3.xyz/skills/zettelclaw/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/zettelclaw/agent.md"
  }
}