{
  "schemaVersion": "1.0",
  "item": {
    "slug": "developer",
    "name": "Developer",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/developer",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/developer",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/developer",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=developer",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "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/developer"
    },
    "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/developer",
    "agentPageUrl": "https://openagent3.xyz/skills/developer/agent",
    "manifestUrl": "https://openagent3.xyz/skills/developer/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/developer/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": "Code Quality",
        "body": "Readable code beats clever code — you'll read it 10x more than write it\nFunctions do one thing — if you need \"and\" to describe it, split it\nName things by what they do, not how — implementation changes, purpose doesn't\nDelete dead code — version control remembers, codebase shouldn't carry weight\nConsistent style matters more than which style — match the project"
      },
      {
        "title": "Debugging",
        "body": "Read the error message completely — the answer is often in there\nReproduce before fixing — if you can't trigger it, you can't verify the fix\nBinary search: comment out half the code to find the problem half\nCheck the obvious first — typos, wrong file, stale cache, wrong environment\nPrint/log liberally when stuck — assumptions are usually wrong"
      },
      {
        "title": "Testing",
        "body": "Test behavior, not implementation — tests shouldn't break when you refactor\nOne assertion per test when possible — failures point to exact problem\nName tests as sentences describing expected behavior — readable test names are documentation\nMock external dependencies, not internal logic — integration points are boundaries\nFast tests run often, slow tests get skipped — optimize for feedback speed"
      },
      {
        "title": "Error Handling",
        "body": "Fail fast and loud — silent failures create debugging nightmares\nCatch specific exceptions, not generic — different errors need different handling\nLog enough context to debug — error type alone isn't enough\nUser-facing errors should be helpful — \"something went wrong\" helps nobody\nDon't catch exceptions you can't handle — let them bubble up"
      },
      {
        "title": "Architecture",
        "body": "Start simple, add complexity when needed — premature abstraction wastes time\nSeparate concerns — UI, business logic, data access are different responsibilities\nDependencies flow inward — core logic shouldn't know about frameworks\nConfiguration separate from code — environment-specific values externalized\nDocument decisions, not just code — why matters more than what"
      },
      {
        "title": "Code Review",
        "body": "Review for understanding, not just correctness — if you can't follow it, others won't\nAsk questions instead of making demands — \"what if...\" opens discussion\nSmall PRs get better reviews — 500 lines gets skimmed, 50 lines gets read\nApprove when good enough, not perfect — progress beats perfection\nCatch bugs early, style issues are secondary — priorities matter"
      },
      {
        "title": "Performance",
        "body": "Measure before optimizing — intuition about bottlenecks is usually wrong\nOptimize the hot path — 90% of time is spent in 10% of code\nDatabase queries are usually the bottleneck — check there first\nCaching solves many problems — but cache invalidation creates new ones\nPremature optimization wastes time — make it work, then make it fast"
      },
      {
        "title": "Dependencies",
        "body": "Evaluate before adding — every dependency is code you don't control\nPin versions — \"latest\" breaks builds unpredictably\nCheck maintenance status — abandoned packages become security risks\nFewer dependencies is better — each one adds supply chain risk\nRead changelogs before upgrading — breaking changes hide in minor versions"
      },
      {
        "title": "Working in Existing Codebases",
        "body": "Match existing patterns — consistency beats personal preference\nImprove incrementally — boy scout rule, leave it better than you found it\nUnderstand before changing — read the tests, check git history\nDon't refactor while fixing bugs — separate commits, separate PRs\nLegacy code works — respect the battle scars"
      },
      {
        "title": "Communication",
        "body": "Commit messages explain why, not what — diff shows what changed\nDocument surprising behavior — future developers need context\nAsk before large refactors — alignment prevents wasted work\nEstimate with ranges, not points — \"2-4 days\" is more honest than \"3 days\"\nSay \"I don't know\" when you don't — guessing wastes everyone's time"
      }
    ],
    "body": "Software Development Rules\nCode Quality\nReadable code beats clever code — you'll read it 10x more than write it\nFunctions do one thing — if you need \"and\" to describe it, split it\nName things by what they do, not how — implementation changes, purpose doesn't\nDelete dead code — version control remembers, codebase shouldn't carry weight\nConsistent style matters more than which style — match the project\nDebugging\nRead the error message completely — the answer is often in there\nReproduce before fixing — if you can't trigger it, you can't verify the fix\nBinary search: comment out half the code to find the problem half\nCheck the obvious first — typos, wrong file, stale cache, wrong environment\nPrint/log liberally when stuck — assumptions are usually wrong\nTesting\nTest behavior, not implementation — tests shouldn't break when you refactor\nOne assertion per test when possible — failures point to exact problem\nName tests as sentences describing expected behavior — readable test names are documentation\nMock external dependencies, not internal logic — integration points are boundaries\nFast tests run often, slow tests get skipped — optimize for feedback speed\nError Handling\nFail fast and loud — silent failures create debugging nightmares\nCatch specific exceptions, not generic — different errors need different handling\nLog enough context to debug — error type alone isn't enough\nUser-facing errors should be helpful — \"something went wrong\" helps nobody\nDon't catch exceptions you can't handle — let them bubble up\nArchitecture\nStart simple, add complexity when needed — premature abstraction wastes time\nSeparate concerns — UI, business logic, data access are different responsibilities\nDependencies flow inward — core logic shouldn't know about frameworks\nConfiguration separate from code — environment-specific values externalized\nDocument decisions, not just code — why matters more than what\nCode Review\nReview for understanding, not just correctness — if you can't follow it, others won't\nAsk questions instead of making demands — \"what if...\" opens discussion\nSmall PRs get better reviews — 500 lines gets skimmed, 50 lines gets read\nApprove when good enough, not perfect — progress beats perfection\nCatch bugs early, style issues are secondary — priorities matter\nPerformance\nMeasure before optimizing — intuition about bottlenecks is usually wrong\nOptimize the hot path — 90% of time is spent in 10% of code\nDatabase queries are usually the bottleneck — check there first\nCaching solves many problems — but cache invalidation creates new ones\nPremature optimization wastes time — make it work, then make it fast\nDependencies\nEvaluate before adding — every dependency is code you don't control\nPin versions — \"latest\" breaks builds unpredictably\nCheck maintenance status — abandoned packages become security risks\nFewer dependencies is better — each one adds supply chain risk\nRead changelogs before upgrading — breaking changes hide in minor versions\nWorking in Existing Codebases\nMatch existing patterns — consistency beats personal preference\nImprove incrementally — boy scout rule, leave it better than you found it\nUnderstand before changing — read the tests, check git history\nDon't refactor while fixing bugs — separate commits, separate PRs\nLegacy code works — respect the battle scars\nCommunication\nCommit messages explain why, not what — diff shows what changed\nDocument surprising behavior — future developers need context\nAsk before large refactors — alignment prevents wasted work\nEstimate with ranges, not points — \"2-4 days\" is more honest than \"3 days\"\nSay \"I don't know\" when you don't — guessing wastes everyone's time"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/developer",
    "publisherUrl": "https://clawhub.ai/ivangdavila/developer",
    "owner": "ivangdavila",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/developer",
    "downloadUrl": "https://openagent3.xyz/downloads/developer",
    "agentUrl": "https://openagent3.xyz/skills/developer/agent",
    "manifestUrl": "https://openagent3.xyz/skills/developer/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/developer/agent.md"
  }
}