[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M77KDCDVASTZXRCMMHNN2R4G":3,"skill-same:01M77KDCDVASTZXRCMMHNN2R4G":44},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":14,"repositoryHtmlUrl":27,"repositoryHomepageUrl":6,"ownerHtmlUrl":28,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":29,"install":30,"resources":43},"01M77KDCDVASTZXRCMMHNN2R4G","issue-set-blocked-by",null,"Declare that one issue is blocked by another (blocked-by edge). Idempotent.","TheVoskamps\u002Fclaude-plugins-marketplace","TheVoskamps","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F235012489?v=4","01M77K5ZCP12QCJPQ85WVJSHTS","Irene and Edwin Voskamp","01M77K5ZDS7DB0PA1W8FM7G2QD",0,"GPL-3.0","https:\u002F\u002Fgithub.com\u002FTheVoskamps\u002Fclaude-plugins-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fissues\u002Fskills\u002Fissue-set-blocked-by\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: issue-set-blocked-by\ndescription: Declare that one issue is blocked by another (blocked-by edge). Idempotent.\n---\n\nRecord \"issue N is blocked by issue B\". This is one side of the\nblocked-by edge — `\u002Fissue-set-blocks` writes the same edge named from\nthe blocker's end.\n\n## Invocation\n\n```text\n\u002Fissue-set-blocked-by \u003Cissue> \u003Cblocker-issue>\n```\n\n- `\u003Cissue>` (required): the **blocked** issue, which can't proceed until\n  the blocker is done.\n- `\u003Cblocker-issue>` (required): the **blocker**, the prerequisite.\n\nEach operand is an issue reference, and the two need not share a repo.\nMnemonic: \"set blocked-by of N to B\" reads left-to-right.\n\n## Execution\n\nRun the `issue-set-blocked-by` script, which this plugin puts on\n`PATH`, with the Bash tool from inside the repo's working tree:\n\n```bash\nissue-set-blocked-by \u003Cissue> \u003Cblocker-issue>\n```\n\nThe script resolves each operand in the repo it names, is a no-op when\nthe edge already exists, and otherwise creates it and re-reads the\nblocked issue, exiting non-zero when the edge is not there. Print its\nstdout as it stands. On a non-zero exit, relay its stderr verbatim and\nstop; an operand that does not resolve is reported against its own\nrepo.\n\n## Output\n\n```text\nMarked issue \u003CN> as blocked by \u003CB>.\n\u003Curl of the blocked issue>\n```\n\nThe no-op prints `Issue \u003CN> is already blocked by \u003CB>; no change.` and\nexits zero. An issue reference prints as\n`skills\u002Flib\u002Fissue.md` → \"Repositories and issue references\" states.\n\n## Jira backend\n\nThe script serves the GitHub backend only. Under `issues: Jira` it\nexits non-zero with its fixed Jira message before it reads or writes an\nissue; follow\n`skills\u002Flib\u002Fissue.md` → \"Jira backend\" → \"Relationships\" instead.\n","Record \"issue N is blocked by issue B\". This is one side of the\nblocked-by edge — `\u002Fissue-set-blocks` writes the same edge named from\nthe blocker's end.\n\n## Invocation\n\n```text\n\u002Fissue-set-blocked-by \u003Cissue> \u003Cblocker-issue>\n```\n\n- `\u003Cissue>` (required): the **blocked** issue, which can't proceed until\n  the blocker is done.\n- `\u003Cblocker-issue>` (required): the **blocker**, the prerequisite.\n\nEach operand is an issue reference, and the two need not share a repo.\nMnemonic: \"set blocked-by of N to B\" reads left-to-right.\n\n## Execution\n\nRun the `issue-set-blocked-by` script, which this plugin puts on\n`PATH`, with the Bash tool from inside the repo's working tree:\n\n```bash\nissue-set-blocked-by \u003Cissue> \u003Cblocker-issue>\n```\n\nThe script resolves each operand in the repo it names, is a no-op when\nthe edge already exists, and otherwise creates it and re-reads the\nblocked issue, exiting non-zero when the edge is not there. Print its\nstdout as it stands. On a non-zero exit, relay its stderr verbatim and\nstop; an operand that does not resolve is reported against its own\nrepo.\n\n## Output\n\n```text\nMarked issue \u003CN> as blocked by \u003CB>.\n\u003Curl of the blocked issue>\n```\n\nThe no-op prints `Issue \u003CN> is already blocked by \u003CB>; no change.` and\nexits zero. An issue reference prints as\n`skills\u002Flib\u002Fissue.md` → \"Repositories and issue references\" states.\n\n## Jira backend\n\nThe script serves the GitHub backend only. Under `issues: Jira` it\nexits non-zero with its fixed Jira message before it reads or writes an\nissue; follow\n`skills\u002Flib\u002Fissue.md` → \"Jira backend\" → \"Relationships\" instead.\n",{"name":5,"description":7},"main","4b187366f06afb374243166f6a0f5fc1514fa579","plugins\u002Fissues\u002Fskills\u002Fissue-set-blocked-by","https:\u002F\u002Fgithub.com\u002FTheVoskamps\u002Fclaude-plugins-marketplace","https:\u002F\u002Fgithub.com\u002FTheVoskamps","2026-11-14 13:16:57",{"source":8,"skillName":5,"commands":31,"prompt":41,"zipAvailable":42},[32,35,38],{"tool":33,"command":34},"npx","npx skills add TheVoskamps\u002Fclaude-plugins-marketplace --skill issue-set-blocked-by",{"tool":36,"command":37},"bunx","bunx skills add TheVoskamps\u002Fclaude-plugins-marketplace --skill issue-set-blocked-by",{"tool":39,"command":40},"pnpm","pnpm dlx skills add TheVoskamps\u002Fclaude-plugins-marketplace --skill issue-set-blocked-by","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FTheVoskamps\u002Fclaude-plugins-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fissues\u002Fskills\u002Fissue-set-blocked-by\u002FSKILL.md",true,[],[45,52,59,66,73,80],{"skillNo":46,"name":47,"nameZh":6,"description":48,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":49,"categories":50,"keywords":51,"publishedAt":19},"01M77KH3GAXPPXNQS96KDEEZBS","mask-inappropriate-language","Replace inappropriate language (profanity, slurs, strong insults) in provided text or a file with asterisks, character-for-character, preserving everything else.","https:\u002F\u002Fgithub.com\u002FTheVoskamps\u002Fclaude-plugins-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fwriting-tools\u002Fskills\u002Fmask-inappropriate-language\u002FSKILL.md",[],[],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":19},"01M77KGY5TZDQT8QR23Y0R8P7A","theorem-agents-interface","The interface between the sdlc reviewer and the theorem agents it spawns — what each double-dash brief parameter means, and what each consequence class means. Preloaded into every theorem agent (sdlc:theorem-generator, the disprover, and the verifier) via its skills frontmatter, and read by name by the sdlc:theorem-based-pr-reviewer agent for what its briefs' parameters mean; not invoked from the user's slash menu.","https:\u002F\u002Fgithub.com\u002FTheVoskamps\u002Fclaude-plugins-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsdlc\u002Fskills\u002Ftheorem-agents-interface\u002FSKILL.md",[],[],{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":65,"publishedAt":19},"01M77KGT5HW0XAE500WSSM0PZY","sdlc-config-user","Interactively create or merge-update the repo user sdlc config, `\u003Crepo-root>\u002F.sdlc\u002Fuser-config.yml` (tier 3 — this user, this repo, never committed), and add it to the repo's tracked `.gitignore`.","https:\u002F\u002Fgithub.com\u002FTheVoskamps\u002Fclaude-plugins-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsdlc\u002Fskills\u002Fsdlc-config-user\u002FSKILL.md",[],[],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":19},"01M77KGQGQVB0NYZX0WJRJPDEK","sdlc-config-repo","Interactively create or merge-update the shared repo sdlc config, `\u003Crepo-root>\u002F.sdlc\u002Frepo-config.yml` (tier 2 — tracked, every user of this repo).","https:\u002F\u002Fgithub.com\u002FTheVoskamps\u002Fclaude-plugins-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsdlc\u002Fskills\u002Fsdlc-config-repo\u002FSKILL.md",[],[],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":19},"01M77KGKPEN7C5RCEDSEP3Z1XB","sdlc-config-global","Interactively create or merge-update the global user sdlc config, `$XDG_CONFIG_HOME\u002Fsdlc\u002Fuser-config.yml` (tier 1 — this user, every repo on this machine).","https:\u002F\u002Fgithub.com\u002FTheVoskamps\u002Fclaude-plugins-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsdlc\u002Fskills\u002Fsdlc-config-global\u002FSKILL.md",[],[],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":19},"01M77KGFX95J2XEQBBD49QHTXK","pr-read-cli-interface","The contract for sdlc's PR-read CLIs — sdlc-pr-round, sdlc-pr-adjustments, sdlc-fixer-brief and sdlc-records-chain — their arguments, exit codes and output grammar. Preloaded into sdlc:theorem-based-pr-reviewer, sdlc:issue-fixer, sdlc:docs-writer and sdlc:pr-finalizer via their skills frontmatter; not invoked from the user's slash menu.","https:\u002F\u002Fgithub.com\u002FTheVoskamps\u002Fclaude-plugins-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsdlc\u002Fskills\u002Fpr-read-cli-interface\u002FSKILL.md",[],[]]