{
  "schemaVersion": "1.0",
  "item": {
    "slug": "osori",
    "name": "Osori",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/oozoofrog/osori",
    "canonicalUrl": "https://clawhub.ai/oozoofrog/osori",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/osori",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=osori",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "docs/examples/doctor-safe-fix.md",
      "docs/examples/multi-root-quickstart.md",
      "docs/multi-root-design.md",
      "docs/roadmap-v1.5.md"
    ],
    "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/osori"
    },
    "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/osori",
    "agentPageUrl": "https://openagent3.xyz/skills/osori/agent",
    "manifestUrl": "https://openagent3.xyz/skills/osori/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/osori/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Osori (오소리)",
        "body": "Local project registry & context loader for AI agents."
      },
      {
        "title": "Prerequisites",
        "body": "macOS: mdfind (Spotlight, built-in), python3, git, gh CLI\nLinux: mdfind unavailable → uses find as fallback automatically. python3, git, gh CLI required.\nEntire integration (optional): entire CLI installed (for /entire-* commands)"
      },
      {
        "title": "Dependencies",
        "body": "python3 — Required. Used for JSON processing.\ngit — Project detection and status checks.\nentire — Optional. Required only for /entire-status, /entire-enable, /entire-rewind-list."
      },
      {
        "title": "Telegram Bot Commands (Updated in v1.6.1)",
        "body": "Osori now supports Telegram slash commands for quick project management:\n\n/list [root] — Show registered projects (optional root filter)\n/status [root] — Check status of projects (optional root filter)\n/find <name> [root|--root <root>] — Find a project by name (optional root scope)\n/switch <name> [root|--root <root>] [--index <n>] — Switch to project and load context (multi-match selection)\n/fingerprints [name] [--root <root>] — Show repo remote + last commit + open PR/issue counts\n/doctor [--fix] [--dry-run] [--yes] [--json] — Registry health check (preview-first, risk-gated)\n/list-roots — List roots, labels, paths, and project counts\n/root-add <key> [label] — Add root (or update label)\n/root-path-add <key> <path> — Add discovery path to root\n/root-path-remove <key> <path> — Remove discovery path from root\n/root-set-label <key> <label> — Update root label\n/root-remove <key> [--reassign <target>] [--force] — Safely remove root\n/alias-add <alias> <project> — Add alias for project\n/alias-remove <alias> — Remove alias\n/favorites — Show favorite projects\n/favorite-add <project> — Mark project as favorite\n/favorite-remove <project> — Unmark favorite\n/entire-status <project> [root|--root <root>] — Show Entire status in a project\n/entire-enable <project> [root|--root <root>] [--agent <name>] [--strategy <name>] — Enable Entire in a project\n/entire-rewind-list <project> [root|--root <root>] — List rewind points in a project\n/add <path> — Add project to registry\n/remove <name> — Remove project from registry\n/scan <path> [root] — Scan directory for git projects, optional root key\n/help — Show command help"
      },
      {
        "title": "Setup",
        "body": "Add to your OpenClaw agent's TOOLS.md or Telegram bot config:\n\n# In Telegram bot commands (BotFather)\nlist - Show all projects (or by root)\nstatus - Check project statuses (or by root)\nfind - Find project by name\nswitch - Switch to project\nfingerprints - Show repo/commit/PR/issue fingerprint\ndoctor - Health check (preview-first, risk-gated fix)\nlist-roots - Show roots and discovery paths\nroot-add - Add root\nroot-path-add - Add path to root\nroot-path-remove - Remove path from root\nroot-set-label - Rename root label\nroot-remove - Safely remove root (with reassign/force options)\nalias-add - Add alias for a project\nalias-remove - Remove alias\nfavorites - Show favorite projects\nfavorite-add - Mark favorite project\nfavorite-remove - Unmark favorite project\nentire-status - Show Entire status for a project\nentire-enable - Enable Entire for a project\nentire-rewind-list - List rewind points for a project\nadd - Add project to registry\nremove - Remove project\nscan - Scan directory (optional root)\nhelp - Show help"
      },
      {
        "title": "Usage Examples",
        "body": "/list work\n/status personal\n/find agent-avengers work\n/switch Tesella --root personal\n/switch Tesella --root personal --index 1\n/fingerprints Tesella --root personal\n/doctor --fix\n/list-roots\n/root-add work Work\n/root-path-add work /path/to/workspace\n/root-remove work --reassign default\n/alias-add rh RunnersHeart\n/favorite-add RunnersHeart\n/favorites\n/entire-status osori\n/entire-enable osori --agent claude-code --strategy manual-commit\n/add /Volumes/disk/MyProject\n/scan /path/to/workspace work"
      },
      {
        "title": "Registry",
        "body": "${OSORI_REGISTRY:-$HOME/.openclaw/osori.json}\n\nOverride with the OSORI_REGISTRY environment variable."
      },
      {
        "title": "Versioning & Migration (v1.6.1)",
        "body": "Current schema: osori.registry\nCurrent version: 2\nOn every load, Osori auto-migrates older registry formats:\n\nlegacy array ([]) → versioned object\nobject without schema/version → normalized versioned object\n\n\nNormalized registry fields:\n\ntop-level roots[]\ntop-level aliases{} (alias → project name)\neach projects[] item includes favorite: bool\n\n\nMigration safety:\n\ncreates backup: osori.json.bak-<timestamp>\ncorrupted JSON is preserved as: osori.json.broken-<timestamp>\nwrite path uses atomic replace + rollback fallback"
      },
      {
        "title": "Finding Projects (when path is unknown)",
        "body": "When the project path is unknown, search in order:\n\nRegistry lookup — Fuzzy match name in osori.json\nmdfind (macOS only) — mdfind \"kMDItemFSName == '<name>'\" | head -5\nfind fallback — Search priority:\n\nroots[].paths from registry (if root is specified, that root first)\npaths from OSORI_SEARCH_PATHS\nCommand form: find <search_paths> -maxdepth 4 -type d -name '<name>' 2>/dev/null\n\n\nAsk the user — If all methods fail, ask for the project path directly.\nOffer to register the found project in the registry."
      },
      {
        "title": "List",
        "body": "Show all registered projects. Optional root filter supported in Telegram command:\n\n/list [root]\n\n(Example: /list work)"
      },
      {
        "title": "Switch",
        "body": "Supports optional root scope and explicit candidate selection:\n\n/switch <name> [root|--root <root>] [--index <n>]\n\nFlow:\n\nSearch registry (fuzzy match, root-scoped if provided)\nIf multiple matches:\n\nshow candidate list (name/root/path/last commit/dirty/score)\n--index <n> to pick explicitly\nno index => auto-pick highest score\n\n\nIf not found → run \"Finding Projects\" flow above and suggest add path\nLoad context:\n\ngit status --short\ngit branch --show-current\ngit log --oneline -5\ngh issue list -R <repo> --limit 5 (when repo is set)\n\n\nPresent summary\n\nAuto score policy:\n\n+50 root exact (if root scope provided)\n+30 name exact\n+20 name prefix\n+10 latest commit recency\n-10 missing path\n-5 repo missing\ntie-break: latest commit, then name"
      },
      {
        "title": "Fingerprints",
        "body": "Show a one-shot project fingerprint view:\n\nrepo remote URL\nlast commit hash/date\nopen PR count\nopen issue count\n\nbash {baseDir}/scripts/project-fingerprints.sh [project-name]\nbash {baseDir}/scripts/project-fingerprints.sh --root <root-key> [project-name]\n\nGitHub open-count cache (PR/Issue):\n\ndefault cache file: $HOME/.openclaw/osori-cache.json\ndefault TTL: 600 seconds\nenv overrides:\n\nOSORI_CACHE_FILE\nOSORI_CACHE_TTL"
      },
      {
        "title": "Add",
        "body": "bash {baseDir}/scripts/add-project.sh <path> [--tag <tag>] [--name <name>]\n\nAuto-detects: git remote, language, description."
      },
      {
        "title": "Scan",
        "body": "bash {baseDir}/scripts/scan-projects.sh <root-dir> [--depth 3]\nOSORI_ROOT_KEY=work bash {baseDir}/scripts/scan-projects.sh <root-dir> [--depth 3]\n\nBulk-scan a directory for git repos and add them to the registry.\n\nTelegram command supports optional root key too:\n\n/scan <path> [root]"
      },
      {
        "title": "Remove",
        "body": "Delete an entry from osori.json by name."
      },
      {
        "title": "Status",
        "body": "Run git status + gh issue list for one or all projects.\n\nTelegram root filter:\n\n/status [root]"
      },
      {
        "title": "Doctor",
        "body": "Registry health check with preview-first pipeline and risk-gated fixes.\n\nDefault (no flags): analyze + preview plan — no changes applied.\n\n/doctor                     # preview only (default)\n/doctor --fix               # preview + apply (high-risk blocked)\n/doctor --fix --yes         # preview + apply all (including high-risk)\n/doctor --dry-run           # explicit preview only (never applies)\n/doctor --json              # machine-readable JSON output\n\nRisk levels:\n\n🟢 low — schema normalization, migration, missing fields\n🟡 medium — duplicate removal, root reference repair\n🔴 high — registry re-initialization from corrupted state\n\nShell equivalent:\n\nbash {baseDir}/scripts/doctor.sh [--fix] [--dry-run] [--yes] [--json]\n\nSee also: Doctor Safe Fix Guide"
      },
      {
        "title": "Root Management",
        "body": "/list-roots\n/root-add <key> [label]\n/root-path-add <key> <path>\n/root-path-remove <key> <path>\n/root-set-label <key> <label>\n/root-remove <key> [--reassign <target>] [--force]\n\nShell equivalents:\n\nbash {baseDir}/scripts/root-manager.sh list\nbash {baseDir}/scripts/root-manager.sh add <key> [label]\nbash {baseDir}/scripts/root-manager.sh path-add <key> <path>\nbash {baseDir}/scripts/root-manager.sh path-remove <key> <path>\nbash {baseDir}/scripts/root-manager.sh set-label <key> <label>\nbash {baseDir}/scripts/root-manager.sh remove <key> [--reassign <target>] [--force]\n\nSafety rules for remove:\n\ndefault root cannot be removed\nif projects exist in root:\n\n--reassign <target> to move projects then remove\nor --force to move projects to default and remove"
      },
      {
        "title": "Alias & Favorites",
        "body": "/alias-add <alias> <project>\n/alias-remove <alias>\n/favorites\n/favorite-add <project>\n/favorite-remove <project>\n\nShell equivalents:\n\nbash {baseDir}/scripts/alias-favorite-manager.sh alias-add <alias> <project>\nbash {baseDir}/scripts/alias-favorite-manager.sh alias-remove <alias>\nbash {baseDir}/scripts/alias-favorite-manager.sh aliases\nbash {baseDir}/scripts/alias-favorite-manager.sh favorite-add <project>\nbash {baseDir}/scripts/alias-favorite-manager.sh favorite-remove <project>\nbash {baseDir}/scripts/alias-favorite-manager.sh favorites\n\nAliases are case-insensitive and are resolved by /find, /switch, and project-fingerprints.sh name queries."
      },
      {
        "title": "Entire Integration",
        "body": "Run Entire CLI commands in a registered project context:\n\n/entire-status <project> [root|--root <root>]\n/entire-enable <project> [root|--root <root>] [--agent <name>] [--strategy <name>]\n/entire-rewind-list <project> [root|--root <root>]\n\nShell equivalent:\n\nbash {baseDir}/scripts/entire-manager.sh status <project> [root|--root <root>]\nbash {baseDir}/scripts/entire-manager.sh enable <project> [root|--root <root>] [entire enable flags...]\nbash {baseDir}/scripts/entire-manager.sh rewind-list <project> [root|--root <root>]\n\nDefaults:\n\nentire enable defaults to --agent claude-code --strategy manual-commit when not provided.\n/entire-rewind-list uses non-destructive JSON listing (entire rewind --list)."
      },
      {
        "title": "Schema",
        "body": "{\n  \"schema\": \"osori.registry\",\n  \"version\": 2,\n  \"updatedAt\": \"2026-02-16T00:00:00Z\",\n  \"roots\": [\n    {\n      \"key\": \"default\",\n      \"label\": \"Default\",\n      \"paths\": []\n    }\n  ],\n  \"aliases\": {\n    \"rh\": \"RunnersHeart\"\n  },\n  \"projects\": [\n    {\n      \"name\": \"string\",\n      \"path\": \"/absolute/path\",\n      \"repo\": \"owner/repo\",\n      \"lang\": \"swift|typescript|python|rust|go|ruby|unknown\",\n      \"tags\": [\"personal\", \"ios\"],\n      \"description\": \"Short description\",\n      \"addedAt\": \"YYYY-MM-DD\",\n      \"root\": \"default\",\n      \"favorite\": false\n    }\n  ]\n}"
      },
      {
        "title": "Auto-trigger Rules",
        "body": "\"work on X\" / \"X 프로젝트 작업하자\" → switch X\n\"find project X\" / \"X 찾아줘\" / \"X 경로\" → registry search or discover\n\"list projects\" / \"프로젝트 목록\" → list\n\"add project\" / \"프로젝트 추가\" → add\n\"project status\" / \"프로젝트 상태\" → status all"
      }
    ],
    "body": "Osori (오소리)\n\nLocal project registry & context loader for AI agents.\n\nPrerequisites\nmacOS: mdfind (Spotlight, built-in), python3, git, gh CLI\nLinux: mdfind unavailable → uses find as fallback automatically. python3, git, gh CLI required.\nEntire integration (optional): entire CLI installed (for /entire-* commands)\nDependencies\npython3 — Required. Used for JSON processing.\ngit — Project detection and status checks.\nentire — Optional. Required only for /entire-status, /entire-enable, /entire-rewind-list.\nTelegram Bot Commands (Updated in v1.6.1)\n\nOsori now supports Telegram slash commands for quick project management:\n\n/list [root] — Show registered projects (optional root filter)\n/status [root] — Check status of projects (optional root filter)\n/find <name> [root|--root <root>] — Find a project by name (optional root scope)\n/switch <name> [root|--root <root>] [--index <n>] — Switch to project and load context (multi-match selection)\n/fingerprints [name] [--root <root>] — Show repo remote + last commit + open PR/issue counts\n/doctor [--fix] [--dry-run] [--yes] [--json] — Registry health check (preview-first, risk-gated)\n/list-roots — List roots, labels, paths, and project counts\n/root-add <key> [label] — Add root (or update label)\n/root-path-add <key> <path> — Add discovery path to root\n/root-path-remove <key> <path> — Remove discovery path from root\n/root-set-label <key> <label> — Update root label\n/root-remove <key> [--reassign <target>] [--force] — Safely remove root\n/alias-add <alias> <project> — Add alias for project\n/alias-remove <alias> — Remove alias\n/favorites — Show favorite projects\n/favorite-add <project> — Mark project as favorite\n/favorite-remove <project> — Unmark favorite\n/entire-status <project> [root|--root <root>] — Show Entire status in a project\n/entire-enable <project> [root|--root <root>] [--agent <name>] [--strategy <name>] — Enable Entire in a project\n/entire-rewind-list <project> [root|--root <root>] — List rewind points in a project\n/add <path> — Add project to registry\n/remove <name> — Remove project from registry\n/scan <path> [root] — Scan directory for git projects, optional root key\n/help — Show command help\n\nSetup\n\nAdd to your OpenClaw agent's TOOLS.md or Telegram bot config:\n\n# In Telegram bot commands (BotFather)\nlist - Show all projects (or by root)\nstatus - Check project statuses (or by root)\nfind - Find project by name\nswitch - Switch to project\nfingerprints - Show repo/commit/PR/issue fingerprint\ndoctor - Health check (preview-first, risk-gated fix)\nlist-roots - Show roots and discovery paths\nroot-add - Add root\nroot-path-add - Add path to root\nroot-path-remove - Remove path from root\nroot-set-label - Rename root label\nroot-remove - Safely remove root (with reassign/force options)\nalias-add - Add alias for a project\nalias-remove - Remove alias\nfavorites - Show favorite projects\nfavorite-add - Mark favorite project\nfavorite-remove - Unmark favorite project\nentire-status - Show Entire status for a project\nentire-enable - Enable Entire for a project\nentire-rewind-list - List rewind points for a project\nadd - Add project to registry\nremove - Remove project\nscan - Scan directory (optional root)\nhelp - Show help\n\nUsage Examples\n/list work\n/status personal\n/find agent-avengers work\n/switch Tesella --root personal\n/switch Tesella --root personal --index 1\n/fingerprints Tesella --root personal\n/doctor --fix\n/list-roots\n/root-add work Work\n/root-path-add work /path/to/workspace\n/root-remove work --reassign default\n/alias-add rh RunnersHeart\n/favorite-add RunnersHeart\n/favorites\n/entire-status osori\n/entire-enable osori --agent claude-code --strategy manual-commit\n/add /Volumes/disk/MyProject\n/scan /path/to/workspace work\n\nRegistry\n\n${OSORI_REGISTRY:-$HOME/.openclaw/osori.json}\n\nOverride with the OSORI_REGISTRY environment variable.\n\nVersioning & Migration (v1.6.1)\nCurrent schema: osori.registry\nCurrent version: 2\nOn every load, Osori auto-migrates older registry formats:\nlegacy array ([]) → versioned object\nobject without schema/version → normalized versioned object\nNormalized registry fields:\ntop-level roots[]\ntop-level aliases{} (alias → project name)\neach projects[] item includes favorite: bool\nMigration safety:\ncreates backup: osori.json.bak-<timestamp>\ncorrupted JSON is preserved as: osori.json.broken-<timestamp>\nwrite path uses atomic replace + rollback fallback\nFinding Projects (when path is unknown)\n\nWhen the project path is unknown, search in order:\n\nRegistry lookup — Fuzzy match name in osori.json\nmdfind (macOS only) — mdfind \"kMDItemFSName == '<name>'\" | head -5\nfind fallback — Search priority:\nroots[].paths from registry (if root is specified, that root first)\npaths from OSORI_SEARCH_PATHS Command form: find <search_paths> -maxdepth 4 -type d -name '<name>' 2>/dev/null\nAsk the user — If all methods fail, ask for the project path directly.\nOffer to register the found project in the registry.\nCommands\nList\n\nShow all registered projects. Optional root filter supported in Telegram command:\n\n/list [root]\n\n\n(Example: /list work)\n\nSwitch\n\nSupports optional root scope and explicit candidate selection:\n\n/switch <name> [root|--root <root>] [--index <n>]\n\n\nFlow:\n\nSearch registry (fuzzy match, root-scoped if provided)\nIf multiple matches:\nshow candidate list (name/root/path/last commit/dirty/score)\n--index <n> to pick explicitly\nno index => auto-pick highest score\nIf not found → run \"Finding Projects\" flow above and suggest add path\nLoad context:\ngit status --short\ngit branch --show-current\ngit log --oneline -5\ngh issue list -R <repo> --limit 5 (when repo is set)\nPresent summary\n\nAuto score policy:\n\n+50 root exact (if root scope provided)\n+30 name exact\n+20 name prefix\n+10 latest commit recency\n-10 missing path\n-5 repo missing\ntie-break: latest commit, then name\nFingerprints\n\nShow a one-shot project fingerprint view:\n\nrepo remote URL\nlast commit hash/date\nopen PR count\nopen issue count\nbash {baseDir}/scripts/project-fingerprints.sh [project-name]\nbash {baseDir}/scripts/project-fingerprints.sh --root <root-key> [project-name]\n\n\nGitHub open-count cache (PR/Issue):\n\ndefault cache file: $HOME/.openclaw/osori-cache.json\ndefault TTL: 600 seconds\nenv overrides:\nOSORI_CACHE_FILE\nOSORI_CACHE_TTL\nAdd\nbash {baseDir}/scripts/add-project.sh <path> [--tag <tag>] [--name <name>]\n\n\nAuto-detects: git remote, language, description.\n\nScan\nbash {baseDir}/scripts/scan-projects.sh <root-dir> [--depth 3]\nOSORI_ROOT_KEY=work bash {baseDir}/scripts/scan-projects.sh <root-dir> [--depth 3]\n\n\nBulk-scan a directory for git repos and add them to the registry.\n\nTelegram command supports optional root key too:\n\n/scan <path> [root]\n\nRemove\n\nDelete an entry from osori.json by name.\n\nStatus\n\nRun git status + gh issue list for one or all projects.\n\nTelegram root filter:\n\n/status [root]\n\nDoctor\n\nRegistry health check with preview-first pipeline and risk-gated fixes.\n\nDefault (no flags): analyze + preview plan — no changes applied.\n\n/doctor                     # preview only (default)\n/doctor --fix               # preview + apply (high-risk blocked)\n/doctor --fix --yes         # preview + apply all (including high-risk)\n/doctor --dry-run           # explicit preview only (never applies)\n/doctor --json              # machine-readable JSON output\n\n\nRisk levels:\n\n🟢 low — schema normalization, migration, missing fields\n🟡 medium — duplicate removal, root reference repair\n🔴 high — registry re-initialization from corrupted state\n\nShell equivalent:\n\nbash {baseDir}/scripts/doctor.sh [--fix] [--dry-run] [--yes] [--json]\n\n\nSee also: Doctor Safe Fix Guide\n\nRoot Management\n/list-roots\n/root-add <key> [label]\n/root-path-add <key> <path>\n/root-path-remove <key> <path>\n/root-set-label <key> <label>\n/root-remove <key> [--reassign <target>] [--force]\n\n\nShell equivalents:\n\nbash {baseDir}/scripts/root-manager.sh list\nbash {baseDir}/scripts/root-manager.sh add <key> [label]\nbash {baseDir}/scripts/root-manager.sh path-add <key> <path>\nbash {baseDir}/scripts/root-manager.sh path-remove <key> <path>\nbash {baseDir}/scripts/root-manager.sh set-label <key> <label>\nbash {baseDir}/scripts/root-manager.sh remove <key> [--reassign <target>] [--force]\n\n\nSafety rules for remove:\n\ndefault root cannot be removed\nif projects exist in root:\n--reassign <target> to move projects then remove\nor --force to move projects to default and remove\nAlias & Favorites\n/alias-add <alias> <project>\n/alias-remove <alias>\n/favorites\n/favorite-add <project>\n/favorite-remove <project>\n\n\nShell equivalents:\n\nbash {baseDir}/scripts/alias-favorite-manager.sh alias-add <alias> <project>\nbash {baseDir}/scripts/alias-favorite-manager.sh alias-remove <alias>\nbash {baseDir}/scripts/alias-favorite-manager.sh aliases\nbash {baseDir}/scripts/alias-favorite-manager.sh favorite-add <project>\nbash {baseDir}/scripts/alias-favorite-manager.sh favorite-remove <project>\nbash {baseDir}/scripts/alias-favorite-manager.sh favorites\n\n\nAliases are case-insensitive and are resolved by /find, /switch, and project-fingerprints.sh name queries.\n\nEntire Integration\n\nRun Entire CLI commands in a registered project context:\n\n/entire-status <project> [root|--root <root>]\n/entire-enable <project> [root|--root <root>] [--agent <name>] [--strategy <name>]\n/entire-rewind-list <project> [root|--root <root>]\n\n\nShell equivalent:\n\nbash {baseDir}/scripts/entire-manager.sh status <project> [root|--root <root>]\nbash {baseDir}/scripts/entire-manager.sh enable <project> [root|--root <root>] [entire enable flags...]\nbash {baseDir}/scripts/entire-manager.sh rewind-list <project> [root|--root <root>]\n\n\nDefaults:\n\nentire enable defaults to --agent claude-code --strategy manual-commit when not provided.\n/entire-rewind-list uses non-destructive JSON listing (entire rewind --list).\nSchema\n{\n  \"schema\": \"osori.registry\",\n  \"version\": 2,\n  \"updatedAt\": \"2026-02-16T00:00:00Z\",\n  \"roots\": [\n    {\n      \"key\": \"default\",\n      \"label\": \"Default\",\n      \"paths\": []\n    }\n  ],\n  \"aliases\": {\n    \"rh\": \"RunnersHeart\"\n  },\n  \"projects\": [\n    {\n      \"name\": \"string\",\n      \"path\": \"/absolute/path\",\n      \"repo\": \"owner/repo\",\n      \"lang\": \"swift|typescript|python|rust|go|ruby|unknown\",\n      \"tags\": [\"personal\", \"ios\"],\n      \"description\": \"Short description\",\n      \"addedAt\": \"YYYY-MM-DD\",\n      \"root\": \"default\",\n      \"favorite\": false\n    }\n  ]\n}\n\nAuto-trigger Rules\n\"work on X\" / \"X 프로젝트 작업하자\" → switch X\n\"find project X\" / \"X 찾아줘\" / \"X 경로\" → registry search or discover\n\"list projects\" / \"프로젝트 목록\" → list\n\"add project\" / \"프로젝트 추가\" → add\n\"project status\" / \"프로젝트 상태\" → status all"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/oozoofrog/osori",
    "publisherUrl": "https://clawhub.ai/oozoofrog/osori",
    "owner": "oozoofrog",
    "version": "1.6.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/osori",
    "downloadUrl": "https://openagent3.xyz/downloads/osori",
    "agentUrl": "https://openagent3.xyz/skills/osori/agent",
    "manifestUrl": "https://openagent3.xyz/skills/osori/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/osori/agent.md"
  }
}