{
  "schemaVersion": "1.0",
  "item": {
    "slug": "memory-git-sync",
    "name": "Smart Git Backup",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/vemec/memory-git-sync",
    "canonicalUrl": "https://clawhub.ai/vemec/memory-git-sync",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/memory-git-sync",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=memory-git-sync",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "scripts/sync.sh",
      "SKILL.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. 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",
      "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/memory-git-sync"
    },
    "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/memory-git-sync",
    "agentPageUrl": "https://openagent3.xyz/skills/memory-git-sync/agent",
    "manifestUrl": "https://openagent3.xyz/skills/memory-git-sync/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/memory-git-sync/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": "Memory Sync Skill",
        "body": "Automates Git synchronization and backup of workspace memory to a remote repository."
      },
      {
        "title": "Quick Start",
        "body": "bash ./scripts/sync.sh [COMMIT_MESSAGE]\n\nDefault message: chore: memory backup YYYY-MM-DD HH:MM"
      },
      {
        "title": "What It Does",
        "body": "Validates Git repository, user config, and remote access\nDetects & excludes large files (>95MB) to prevent push failures\nStages all changes automatically\nPulls latest remote changes to avoid conflicts\nCommits changes with timestamped or custom message\nPushes to remote, setting upstream if needed"
      },
      {
        "title": "Prerequisites",
        "body": "✓ Git repository initialized with origin remote\n✓ git config user.name and git config user.email set\n✓ Network access to remote repository\n✓ Write permissions on repository directory"
      },
      {
        "title": "Execution Steps",
        "body": "StepActionSuccess OutputFailure OutputExit1Validate Git repo[SUCCESS] Git repository found[ERROR] Not inside a git repository12Check Git config[SUCCESS] Git user configuration is valid[ERROR] Git user.name not configured13Check remote[SUCCESS] Remote 'origin' configured: [URL][ERROR] No 'origin' remote14Setup .gitignore[SUCCESS] Gitignore file is ready--5Scan large files[SUCCESS] No large files detected[WARNING] Large files detected-6Detect changes[SUCCESS] All changes staged[INFO] No uncommitted changes07Fetch remote[SUCCESS] Successfully fetched[WARNING] Fetch failed (continues)-8Check sync[INFO] Local and remote synchronized[WARNING] Branches diverged (auto-pull)1*9Commit[SUCCESS] Changes committed[ERROR] Commit failed110Push[SUCCESS] Successfully pushed[WARNING] No upstream (tries to set)1**DoneComplete[SUCCESS] Sync completed-0\n\n*Auto-resolves with git pull --no-edit\n**Auto-sets upstream with git push --set-upstream origin [branch]"
      },
      {
        "title": "Output Format",
        "body": "All messages use structured prefixes for LLM parsing:\n\n[INFO]    - Informational messages\n[SUCCESS] - Actions completed successfully\n[WARNING] - Non-fatal issues (script recovers)\n[ERROR]   - Fatal errors (requires intervention)"
      },
      {
        "title": "Common Scenarios",
        "body": "IssueOutputResolutionNot in a Git repo[ERROR] Not inside a git repositoryNavigate to repo: cd /path/to/repoMissing user.name[ERROR] Git user.name not configuredgit config user.name \"Name\"Missing user.email[ERROR] Git user.email not configuredgit config user.email \"email@example.com\"No origin remote[ERROR] No 'origin' remote configuredgit remote add origin <URL>Large files detected[WARNING] Large files detectedAutomatically added to .gitignorePull conflicts[ERROR] Pull encountered conflictsResolve manually, then run sync againNetwork failures[WARNING] Fetch/Push failedCheck connectivity, script continues locally"
      },
      {
        "title": "Features",
        "body": "Auto Large-File Handling: Prevents Git failures by ignoring files >95MB\nConflict Resolution: Auto-pulls remote before pushing\nUpstream Setup: Auto-configures tracking on first push\nValidation: Pre-flight checks prevent common errors\nLLM-Compatible Output: Structured logs for easy parsing"
      },
      {
        "title": "Security Notes",
        "body": "Don't commit credentials to the repository\nUse SSH keys or credential helpers: git config credential.helper osxkeychain\nReview changes before syncing: git status\nLarge files already pushed can't be auto-removed by this script"
      }
    ],
    "body": "Memory Sync Skill\n\nAutomates Git synchronization and backup of workspace memory to a remote repository.\n\nQuick Start\nbash ./scripts/sync.sh [COMMIT_MESSAGE]\n\n\nDefault message: chore: memory backup YYYY-MM-DD HH:MM\n\nWhat It Does\nValidates Git repository, user config, and remote access\nDetects & excludes large files (>95MB) to prevent push failures\nStages all changes automatically\nPulls latest remote changes to avoid conflicts\nCommits changes with timestamped or custom message\nPushes to remote, setting upstream if needed\nPrerequisites\n\n✓ Git repository initialized with origin remote ✓ git config user.name and git config user.email set ✓ Network access to remote repository ✓ Write permissions on repository directory\n\nExecution Steps\nStep\tAction\tSuccess Output\tFailure Output\tExit\n1\tValidate Git repo\t[SUCCESS] Git repository found\t[ERROR] Not inside a git repository\t1\n2\tCheck Git config\t[SUCCESS] Git user configuration is valid\t[ERROR] Git user.name not configured\t1\n3\tCheck remote\t[SUCCESS] Remote 'origin' configured: [URL]\t[ERROR] No 'origin' remote\t1\n4\tSetup .gitignore\t[SUCCESS] Gitignore file is ready\t-\t-\n5\tScan large files\t[SUCCESS] No large files detected\t[WARNING] Large files detected\t-\n6\tDetect changes\t[SUCCESS] All changes staged\t[INFO] No uncommitted changes\t0\n7\tFetch remote\t[SUCCESS] Successfully fetched\t[WARNING] Fetch failed (continues)\t-\n8\tCheck sync\t[INFO] Local and remote synchronized\t[WARNING] Branches diverged (auto-pull)\t1*\n9\tCommit\t[SUCCESS] Changes committed\t[ERROR] Commit failed\t1\n10\tPush\t[SUCCESS] Successfully pushed\t[WARNING] No upstream (tries to set)\t1**\nDone\tComplete\t[SUCCESS] Sync completed\t-\t0\n\n*Auto-resolves with git pull --no-edit **Auto-sets upstream with git push --set-upstream origin [branch]\n\nOutput Format\n\nAll messages use structured prefixes for LLM parsing:\n\n[INFO]    - Informational messages\n[SUCCESS] - Actions completed successfully\n[WARNING] - Non-fatal issues (script recovers)\n[ERROR]   - Fatal errors (requires intervention)\n\nCommon Scenarios\nIssue\tOutput\tResolution\nNot in a Git repo\t[ERROR] Not inside a git repository\tNavigate to repo: cd /path/to/repo\nMissing user.name\t[ERROR] Git user.name not configured\tgit config user.name \"Name\"\nMissing user.email\t[ERROR] Git user.email not configured\tgit config user.email \"email@example.com\"\nNo origin remote\t[ERROR] No 'origin' remote configured\tgit remote add origin <URL>\nLarge files detected\t[WARNING] Large files detected\tAutomatically added to .gitignore\nPull conflicts\t[ERROR] Pull encountered conflicts\tResolve manually, then run sync again\nNetwork failures\t[WARNING] Fetch/Push failed\tCheck connectivity, script continues locally\nFeatures\nAuto Large-File Handling: Prevents Git failures by ignoring files >95MB\nConflict Resolution: Auto-pulls remote before pushing\nUpstream Setup: Auto-configures tracking on first push\nValidation: Pre-flight checks prevent common errors\nLLM-Compatible Output: Structured logs for easy parsing\nSecurity Notes\nDon't commit credentials to the repository\nUse SSH keys or credential helpers: git config credential.helper osxkeychain\nReview changes before syncing: git status\nLarge files already pushed can't be auto-removed by this script"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/vemec/memory-git-sync",
    "publisherUrl": "https://clawhub.ai/vemec/memory-git-sync",
    "owner": "vemec",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/memory-git-sync",
    "downloadUrl": "https://openagent3.xyz/downloads/memory-git-sync",
    "agentUrl": "https://openagent3.xyz/skills/memory-git-sync/agent",
    "manifestUrl": "https://openagent3.xyz/skills/memory-git-sync/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/memory-git-sync/agent.md"
  }
}