{
  "schemaVersion": "1.0",
  "item": {
    "slug": "release-discipline",
    "name": "Release Discipline",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/gyeuun97/release-discipline",
    "canonicalUrl": "https://clawhub.ai/gyeuun97/release-discipline",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/release-discipline",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=release-discipline",
    "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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-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/release-discipline"
    },
    "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/release-discipline",
    "agentPageUrl": "https://openagent3.xyz/skills/release-discipline/agent",
    "manifestUrl": "https://openagent3.xyz/skills/release-discipline/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/release-discipline/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": "🛑 Release Discipline",
        "body": "Stop version spam. Ship quality, not quantity.\n\nCore principle: \"Only finished work counts.\""
      },
      {
        "title": "When This Activates",
        "body": "Intercept any release/publish/deploy action and run the pre-release checklist."
      },
      {
        "title": "Pre-Release Checklist (ALL must pass)",
        "body": "Before ANY version bump or publish, enforce these checks:"
      },
      {
        "title": "Gate 1: Cooldown Check",
        "body": "❓ When was the last release?\n→ If < 24 hours ago: 🛑 BLOCKED — \"Cool down. Last release was {X}h ago. Wait until 24h.\"\n→ If ≥ 24 hours: ✅ PASS"
      },
      {
        "title": "Gate 2: User Feedback Check",
        "body": "❓ Has anyone used the previous version?\n→ Check: GitHub issues, npm downloads, ClawHub installs, user messages\n→ If no feedback exists: ⚠️ WARNING — \"No one has used v{X} yet. Why release v{X+1}?\"\n→ If feedback exists: ✅ PASS — Summarize feedback"
      },
      {
        "title": "Gate 3: Documentation Check",
        "body": "❓ Is documentation updated?\n→ Check for: README.md, CHANGELOG, English docs\n→ Missing README: 🛑 BLOCKED\n→ Missing English: ⚠️ WARNING — \"Global users can't read this\"\n→ All present: ✅ PASS"
      },
      {
        "title": "Gate 4: Quality Check",
        "body": "❓ Does this release have substance?\n→ Ask: \"What's the ONE thing this release does better than the last?\"\n→ If answer is vague (\"minor fixes\", \"improvements\"): ⚠️ WARNING — \"Be specific. What changed?\"\n→ If answer is clear: ✅ PASS"
      },
      {
        "title": "Gate 5: Kill Criteria Check",
        "body": "❓ What kills this project?\n→ If no kill criteria defined: ⚠️ WARNING — \"Define when to stop: 'If X doesn't happen in Y weeks, shut it down.'\"\n→ If defined: ✅ PASS — Remind user of their kill criteria"
      },
      {
        "title": "Gate 6: Self-Contradiction Check",
        "body": "❓ Does this action match your stated principles?\n→ Read SOUL.md (or equivalent principles file)\n→ Look for contradictions:\n  - \"Ship one thing at a time\" + releasing 3 things = 🛑\n  - \"Quality over quantity\" + 5 releases in 3 days = 🛑\n  - \"Finish before starting new\" + new project while old unfinished = ⚠️\n→ If contradiction found: 🛑 BLOCKED — Quote the principle and show the contradiction\n→ If consistent: ✅ PASS"
      },
      {
        "title": "Scoring",
        "body": "🛑 BLOCKED (any) → Cannot release. Fix the issue first.\n⚠️ WARNING only → Can release, but agent must voice concern clearly.\n✅ ALL PASS → Release approved. Proceed."
      },
      {
        "title": "Release Log",
        "body": "After every release (approved or blocked), log to memory/release-log.md:\n\n## {date} — v{version}\n- Status: ✅ APPROVED / 🛑 BLOCKED / ⚠️ WARNED\n- Gates: [1:✅ 2:⚠️ 3:✅ 4:✅ 5:✅ 6:✅]\n- Reason: {why released or why blocked}\n- User feedback on previous: {summary or \"none\"}\n- Time since last release: {hours}"
      },
      {
        "title": "Weekly Review",
        "body": "Every 7 days, review the release log:\n\nTotal releases this week\nBlock rate (healthy: 20-40% blocked = you're actually checking)\n0% blocked = checklist is rubber-stamping, tighten criteria\nPattern analysis: recurring issues"
      },
      {
        "title": "Anti-Patterns This Skill Prevents",
        "body": "Version Spam — 17 versions in 3 days\nSpray Without Prune — Making lots of things, finishing none\nDocumentation Debt — Shipping code without docs\nEcho Chamber — Releasing without user feedback\nPrinciple Violation — Breaking your own rules\nPremature Optimization — Polishing what nobody uses"
      },
      {
        "title": "Philosophy",
        "body": "\"The urge to ship is not the same as readiness to ship.\"\n\"Fear of irrelevance is not a reason to publish.\"\n\"One great release beats ten mediocre ones.\"\n\nThis skill is a brake, not an accelerator. It exists because the hardest part of building isn't making things — it's knowing when to stop making and start finishing."
      }
    ],
    "body": "🛑 Release Discipline\n\nStop version spam. Ship quality, not quantity.\n\nCore principle: \"Only finished work counts.\"\n\nWhen This Activates\n\nIntercept any release/publish/deploy action and run the pre-release checklist.\n\nPre-Release Checklist (ALL must pass)\n\nBefore ANY version bump or publish, enforce these checks:\n\nGate 1: Cooldown Check\n❓ When was the last release?\n→ If < 24 hours ago: 🛑 BLOCKED — \"Cool down. Last release was {X}h ago. Wait until 24h.\"\n→ If ≥ 24 hours: ✅ PASS\n\nGate 2: User Feedback Check\n❓ Has anyone used the previous version?\n→ Check: GitHub issues, npm downloads, ClawHub installs, user messages\n→ If no feedback exists: ⚠️ WARNING — \"No one has used v{X} yet. Why release v{X+1}?\"\n→ If feedback exists: ✅ PASS — Summarize feedback\n\nGate 3: Documentation Check\n❓ Is documentation updated?\n→ Check for: README.md, CHANGELOG, English docs\n→ Missing README: 🛑 BLOCKED\n→ Missing English: ⚠️ WARNING — \"Global users can't read this\"\n→ All present: ✅ PASS\n\nGate 4: Quality Check\n❓ Does this release have substance?\n→ Ask: \"What's the ONE thing this release does better than the last?\"\n→ If answer is vague (\"minor fixes\", \"improvements\"): ⚠️ WARNING — \"Be specific. What changed?\"\n→ If answer is clear: ✅ PASS\n\nGate 5: Kill Criteria Check\n❓ What kills this project?\n→ If no kill criteria defined: ⚠️ WARNING — \"Define when to stop: 'If X doesn't happen in Y weeks, shut it down.'\"\n→ If defined: ✅ PASS — Remind user of their kill criteria\n\nGate 6: Self-Contradiction Check\n❓ Does this action match your stated principles?\n→ Read SOUL.md (or equivalent principles file)\n→ Look for contradictions:\n  - \"Ship one thing at a time\" + releasing 3 things = 🛑\n  - \"Quality over quantity\" + 5 releases in 3 days = 🛑\n  - \"Finish before starting new\" + new project while old unfinished = ⚠️\n→ If contradiction found: 🛑 BLOCKED — Quote the principle and show the contradiction\n→ If consistent: ✅ PASS\n\nScoring\n🛑 BLOCKED (any) → Cannot release. Fix the issue first.\n⚠️ WARNING only → Can release, but agent must voice concern clearly.\n✅ ALL PASS → Release approved. Proceed.\n\nRelease Log\n\nAfter every release (approved or blocked), log to memory/release-log.md:\n\n## {date} — v{version}\n- Status: ✅ APPROVED / 🛑 BLOCKED / ⚠️ WARNED\n- Gates: [1:✅ 2:⚠️ 3:✅ 4:✅ 5:✅ 6:✅]\n- Reason: {why released or why blocked}\n- User feedback on previous: {summary or \"none\"}\n- Time since last release: {hours}\n\nWeekly Review\n\nEvery 7 days, review the release log:\n\nTotal releases this week\nBlock rate (healthy: 20-40% blocked = you're actually checking)\n0% blocked = checklist is rubber-stamping, tighten criteria\nPattern analysis: recurring issues\nAnti-Patterns This Skill Prevents\nVersion Spam — 17 versions in 3 days\nSpray Without Prune — Making lots of things, finishing none\nDocumentation Debt — Shipping code without docs\nEcho Chamber — Releasing without user feedback\nPrinciple Violation — Breaking your own rules\nPremature Optimization — Polishing what nobody uses\nPhilosophy\n\n\"The urge to ship is not the same as readiness to ship.\" \"Fear of irrelevance is not a reason to publish.\" \"One great release beats ten mediocre ones.\"\n\nThis skill is a brake, not an accelerator. It exists because the hardest part of building isn't making things — it's knowing when to stop making and start finishing."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/gyeuun97/release-discipline",
    "publisherUrl": "https://clawhub.ai/gyeuun97/release-discipline",
    "owner": "gyeuun97",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/release-discipline",
    "downloadUrl": "https://openagent3.xyz/downloads/release-discipline",
    "agentUrl": "https://openagent3.xyz/skills/release-discipline/agent",
    "manifestUrl": "https://openagent3.xyz/skills/release-discipline/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/release-discipline/agent.md"
  }
}