{"id":"de0e2357-a5a9-43e4-9a5f-49219b3ab8c1","shortId":"PLFW5E","kind":"skill","title":"publish-skill","tagline":"Convert a personal agent skill into a distributable, open-source-ready skill. Runs PII audit, generalization, license compatibility check, cross-platform adapter review, and packaging workflow.","description":"# Skill: publish-skill\n\nConvert a personal agent skill into a clean, distributable, open-source-ready skill package. This skill walks through a 7-phase pipeline that audits for personally identifiable information, generalizes language and role assumptions, verifies license compatibility, checks cross-platform adapter needs, and prepares the final package for commit.\n\n## Communication Rules\n\n- Communicate with the user in their preferred language\n- Use English for technical terms (PII, MIT, CC BY, GPL, YAML frontmatter)\n- Present audit findings in structured tables\n\n---\n\n## Phase 0: Init and Identify Source\n\n### Required Inputs\n\nCollect from the user:\n\n1. **Source skill path**: directory containing the personal skill (e.g., `~/.claude/skills/my-skill/` or `~/.agents/skills/my-skill/`)\n2. **Target package path**: directory of the distributable package (e.g., `~/workspace/<your-package>/`)\n3. **Target license**: license of the package (default: MIT)\n\n### Actions\n\n1. Read `SKILL.md` from the source skill directory\n2. Inventory all files recursively (`ls -R`)\n3. Classify skill type:\n   - **Standalone**: self-contained skill with no agent delegation\n   - **Orchestrator**: delegates to sub-agents (NOT suitable for distribution without refactoring)\n   - **Wrapper**: thin wrapper around another tool/API\n4. Present inventory table to the user:\n\n```\n| File | Lines | Type | Notes |\n|------|-------|------|-------|\n```\n\n**Gate**: User confirms source skill and target package before proceeding.\n\n---\n\n## Phase 1: Originality Check\n\nVerify the skill is original work suitable for open-source distribution.\n\n### Checks\n\n1. **External source**: Is this skill adapted from another package or author? Check for attribution headers, license blocks, or \"based on\" comments.\n2. **Third-party content**: Do any files in `references/` come from external sources (published guidelines, textbooks, standards bodies)?\n3. **Competitive sensitivity**: Does the skill reveal proprietary business logic or competitive advantage that should remain private?\n\n### Decision Matrix\n\n| Finding | Action |\n|---------|--------|\n| Fully original | Proceed to Phase 2 |\n| Adapted with compatible license | Add attribution header, proceed |\n| Contains non-compatible third-party content | Flag for removal or URL manifest conversion |\n| Orchestrator with private agent references | STOP -- requires refactoring to standalone first |\n| Competitive/proprietary logic | STOP -- not suitable for open-source |\n\n---\n\n## Phase 2: PII De-identification Audit\n\n**Zero tolerance**: the skill must have exactly 0 PII matches before proceeding.\n\n### Pre-scan Setup\n\nBefore running, ask the user for everything that should also count as a PII hit but is unique to them:\n- Their name(s) in all languages and romanizations (a placeholder shape: `<First Last>|<native-script name>`)\n- Their institutional affiliation(s) (a placeholder shape: `<Institution>|<Hospital>`)\n- Any collaborator surnames that may appear in drafts or filenames\n\nCombine the inputs into a single `grep -E` alternation pattern (pipe-separated).\n\n### Automated Scan\n\nRun the bundled audit script. The first argument is the skill directory; the second is the user-specific alternation pattern from Pre-scan Setup.\n\n```bash\nbash ${CLAUDE_SKILL_DIR}/scripts/audit_skill.sh <source_skill_path> \\\n    \"<First Last>|<native-script name>|<Institution>|<Hospital>\"\n```\n\nThe script runs nine categories that mirror the medsci-skills monorepo linter (`scripts/validate_skills.sh`):\n\n1. **Hardcoded paths** (`/Users/<name>/`, `/home/<name>/`, `~/Documents`, `~/Desktop`, `~/Downloads`, `~/Projects`)\n2. **Email addresses** (any address-shaped string)\n3. **IP addresses / internal URLs** (`*.internal`, `*.local`, `*.corp`)\n4. **Institutional references** (SNUH / AMC / SMC / KAIST / SNU / ASAN / MGH / Mayo Clinic / Johns Hopkins / Samsung Medical / Severance / Asan Medical)\n5. **Academic roles with names** (`professor <Surname>`, `Prof. <Surname>`, `Dr. <Surname>`, `PGY[0-9]`, `<한글이름> 교수님`)\n6. **Language hardcoding** (\"in Korean\", \"한국어로\", \"in Japanese\", \"in Chinese\")\n7. **Location specifics** (Seoul / Busan / Daegu / Tokyo / Beijing / Shanghai / Boston / Stanford and Korean variants)\n8. **Blockquote dated precedent** (`> YYYY-MM-DD ...` lines that reveal an internal review timeline)\n9. **Author-style filenames** (`<Surname>{Year}_*` pattern, e.g., `<Surname>2025_<Journal>_Fig01.png`; allow-list excludes generic tokens like `Issue2024_`, `Sample2025_`)\n10. **Binary EXIF metadata** (DOCX / PPTX / XLSX / PDF / PNG / JPG / TIFF — scanned via `exiftool` when installed; skipped silently otherwise with an install hint)\n\nFalse-positive guard: text scans use `grep --binary-files=without-match` so byte-stream collisions inside `.pyc`, `.png`, or `.docx` files do not trigger findings. `__pycache__/` is also explicitly skipped.\n\n### Cross-validation\n\nFor categories the script flags, also manually verify with the Grep tool against `${CLAUDE_SKILL_DIR}/references/pii-patterns.md`. Pay particular attention to:\n\n- Names not in the EXTRA_PATTERNS argument (e.g., a co-author who appeared only in one early draft)\n- Domain-specific institutional acronyms (your institution may not be in the default list)\n- Project-specific identifiers like `CK-NN`, `MA-NN`, dated cohort names\n\n### Output Format\n\nPresent all findings in a remediation table:\n\n```\n| # | File:Line | Category | Match | Suggested Fix |\n|---|-----------|----------|-------|---------------|\n```\n\n**Gate**: User reviews all findings. Fix each one. Re-run audit. Proceed only when 0 hits confirmed.\n\n---\n\n## Phase 3: Generalization\n\nTransform personal assumptions into universal defaults.\n\n### Language\n\n- Replace: `\"in Korean\"` / `\"한국어로\"` / `\"Korean language\"` → `\"in the user's preferred language\"`\n- Replace: `\"communicate in [specific language]\"` → `\"Communicate with the user in their preferred language\"`\n- Keep: multilingual trigger keywords in the `triggers:` field (these aid discovery)\n\n### Role\n\n- Replace: `\"radiology researcher\"` → `\"medical researcher\"` (if the skill is domain-general)\n- Replace: `\"professor\"` / `\"fellow\"` → `\"researcher\"` or `\"user\"` (context-dependent)\n- Keep: domain-specific terms that define the skill's scope (e.g., \"diagnostic accuracy\" is fine)\n\n### Paths\n\n- Replace: hardcoded absolute paths → `${CLAUDE_SKILL_DIR}` for bundled reference files\n- Replace: `~/Documents/...` → user-provided output directory\n- Keep: relative paths within the skill directory structure\n\n### Environment\n\n- Remove: assumptions about specific OS (macOS, Linux)\n- Remove: assumptions about specific editors or IDEs\n- Remove: references to personal infrastructure (agents, other personal skills)\n- Keep: tool requirements listed in frontmatter `tools:` field\n\n### Interoperability\n\n- Check: does the skill reference other skills by name (e.g., \"route to `analyze-stats`\")?\n- If referenced skill exists in target package: keep the reference\n- If referenced skill does NOT exist in target package: make it optional with fallback instructions\n\n### Output\n\nShow a unified diff of all generalization changes for user review.\n\n---\n\n## Phase 4: License Compatibility Check\n\nVerify all bundled files are compatible with the target package license.\n\n### Scan Process\n\nFor each file in the skill's `references/` and `scripts/` directories:\n\n1. Check for license headers or declarations within the file\n2. Check for LICENSE files in the same directory\n3. If the file contains content from a known standard (reporting guidelines, clinical scores, etc.), identify the source and its license\n\n### Compatibility Matrix\n\nReference `${CLAUDE_SKILL_DIR}/references/license-compatibility-matrix.md` for the full matrix.\n\n**Quick reference for MIT target:**\n\n| Source License | Can Bundle? | Action |\n|---------------|------------|--------|\n| CC0 / Public Domain | Yes | No changes needed |\n| CC BY 4.0 / 3.0 | Yes | Add attribution header |\n| MIT / BSD / Apache 2.0 | Yes | Include license notice |\n| CC BY-NC | No | Convert to URL reference |\n| CC BY-NC-ND | No | Convert to URL reference |\n| CC BY-SA | No | Copyleft risk -- convert to URL reference |\n| GPL v2/v3 | No | Mark as optional external dependency |\n| Unknown / Proprietary | No | Assume incompatible -- remove or get permission |\n\n### URL Manifest Pattern\n\nFor non-compatible content, convert from bundled file to a URL manifest:\n\n```markdown\n## [Checklist Name]\n\nThis checklist is not bundled due to license restrictions ([License Type]).\n\n**Official source**: [URL]\n**How to use**: Download the checklist from the official source and place it in\n`references/` before using this skill's reporting check feature.\n```\n\n### Output\n\nPresent license audit table:\n\n```\n| File | Source | License | Compatible? | Action |\n|------|--------|---------|------------|--------|\n```\n\n---\n\n## Phase 5: Validate and Test\n\n### Structural Validation\n\n1. **YAML frontmatter**: Parse and verify all required fields (name, description, tools)\n2. **File references**: Every `${CLAUDE_SKILL_DIR}/...` path resolves to an actual file\n3. **Script executability**: Scripts in `scripts/` have appropriate shebangs\n4. **Line count**: SKILL.md should be under 500 lines for optimal loading\n5. **Description quality**: Description should start with a verb and include trigger keywords\n\n### Final PII Re-check\n\nRun `audit_skill.sh` one final time. Must return exit code 0.\n\n### Cross-Platform Adapter Review\n\nCheck whether the skill can run in common desktop-agent environments:\n\n| Platform | Check |\n|---|---|\n| Claude Code | No hardcoded dependency on private `~/.claude` paths unless documented. |\n| Codex | `SKILL.md` is self-contained and installable under `~/.agents/skills/`. |\n| Cursor | A short `.cursor/rules/*.mdc` adapter can point to the canonical `SKILL.md`. |\n| Windows | Commands avoid Unix-only assumptions or provide PowerShell/Python alternatives. |\n| macOS/Linux | Shell examples use portable paths where possible. |\n\nIf the package is intended for a workshop or classroom, prepare direct-download\nZIPs rather than asking users to navigate GitHub manually:\n\n```text\nhttps://github.com/{owner}/{repo}/releases/latest/download/{package}-classroom-windows.zip\nhttps://github.com/{owner}/{repo}/releases/latest/download/{package}-classroom-macos.zip\n```\n\n### README Entry Draft\n\nGenerate a table row matching the target package's README format:\n\n```markdown\n| **{skill-name}** | {One-sentence description of what the skill does.} |\n```\n\n### User Testing\n\nInstruct the user to:\n\n1. Copy the cleaned skill to a test location: `cp -r <cleaned_skill> ~/.claude/skills/<skill-name>`\n2. Restart Claude Code\n3. Test the skill triggers by typing `/<skill-name>` or relevant trigger phrases\n4. Verify all phases work end-to-end on a sample input\n\n**Gate**: User confirms testing is complete.\n\n---\n\n## Phase 6: Package and Commit\n\n### Copy to Target Package\n\n```bash\ncp -r <cleaned_skill_path> <target_package>/skills/<skill-name>/\n```\n\n### Update README\n\nApply the README entry drafted in Phase 5:\n- Add row to the appropriate table (Available Now / Coming Soon)\n- Update pipeline diagram if the skill adds a new stage\n- Update skill count if mentioned in prose\n\n### Generate Commit Commands\n\nPresent the exact commands but do NOT auto-execute push:\n\n```bash\ncd <target_package>\ngit add skills/<skill-name>/\ngit add README.md\ngit diff --cached   # User reviews\ngit commit -m \"Add <skill-name>: <one-line description>\"\n```\n\n**Gate**: User reviews `git diff --cached` and explicitly approves the commit. Push is always manual.\n\n### Post-Publish\n\nRemind the user to:\n- Update any memory files tracking package status\n- Add the skill to any marketplace listings if applicable\n- Test installation from a clean clone: `git clone <repo> && cp -r <repo>/skills/<skill-name> ~/.claude/skills/`\n- For classroom distribution, create or update GitHub Release ZIP assets and test direct download links.\n\n### Classroom Package Checklist (if applicable)\n\n- [ ] Full skill set is installed once; lesson tasks use only 1-2 skills at a time\n- [ ] Windows ZIP includes `installers/install-windows.cmd`\n- [ ] macOS ZIP includes `installers/install-macos.command`\n- [ ] `README_FIRST.md` explains unzip -> double-click -> restart -> test prompt\n- [ ] Email announcement uses direct GitHub Release download links\n- [ ] WSL is documented as an advanced option, not a default requirement\n- [ ] First prompts avoid full end-to-end orchestration\n\n---\n\n## What This Skill Does NOT Do\n\n- Never auto-executes `git push` -- push is always manual\n- Never modifies the source skill in place -- works on a copy or the target directory\n- Never makes judgment calls on competitive sensitivity -- always asks the user\n- Never bundles content with incompatible licenses -- converts to URL references\n- Never assumes a specific package license -- asks in Phase 0\n- Never skips the PII audit -- zero tolerance is enforced at Phase 2 and Phase 5\n\n## Anti-Hallucination\n\n- **Never fabricate file paths, URLs, DOIs, or package names.** Verify existence before recommending.\n- **Never invent journal metadata, impact factors, or submission policies** without verification at the journal's website.\n- If a tool, package, or resource does not exist or you are unsure, say so explicitly rather than guessing.","tags":["publish","skill","medsci","skills","aperivue","agent-skills","biostatistics","claude-code","claude-skills","clinical-research","diagnostic-accuracy","irb-protocol"],"capabilities":["skill","source-aperivue","skill-publish-skill","topic-agent-skills","topic-biostatistics","topic-claude-code","topic-claude-skills","topic-clinical-research","topic-diagnostic-accuracy","topic-irb-protocol","topic-literature-review","topic-manuscript","topic-medical-ai","topic-medical-research","topic-meta-analysis"],"categories":["medsci-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/Aperivue/medsci-skills/publish-skill","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add Aperivue/medsci-skills","source_repo":"https://github.com/Aperivue/medsci-skills","install_from":"skills.sh"}},"qualityScore":"0.499","qualityRationale":"deterministic score 0.50 from registry signals: · indexed on github topic:agent-skills · 98 github stars · SKILL.md body (13,297 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:56:31.207Z","embedding":null,"createdAt":"2026-05-13T12:57:46.152Z","updatedAt":"2026-05-18T18:56:31.207Z","lastSeenAt":"2026-05-18T18:56:31.207Z","tsv":"'-2':1614 '-9':541 '/.agents/skills':1305 '/.agents/skills/my-skill':138 '/.claude':1292 '/.claude/skills':1417,1582 '/.claude/skills/my-skill':136 '/desktop':493 '/documents':492,860 '/downloads':494 '/home':491 '/projects':495 '/references/license-compatibility-matrix.md':1034 '/references/pii-patterns.md':678 '/releases/latest/download':1364,1370 '/scripts/audit_skill.sh':472 '/skills':1464,1581 '/users':490 '/workspace':149 '0':115,369,540,760,1265,1725 '1':126,160,228,244,487,988,1192,1406,1613 '10':602 '2':139,168,266,311,356,496,998,1204,1418,1737 '2.0':1067 '2025':591 '3':150,175,285,504,764,1007,1217,1422 '3.0':1059 '4':206,512,960,1226,1433 '4.0':1058 '5':531,1186,1238,1474,1740 '500':1233 '6':544,1453 '7':56,554 '8':568 '9':583 'absolut':850 'academ':532 'accuraci':844 'acronym':706 'action':159,305,1048,1184 'actual':1215 'adapt':27,77,250,312,1269,1311 'add':316,1061,1475,1491,1519,1522,1532,1562 'address':498,501,506 'address-shap':500 'advanc':1649 'advantag':297 'affili':411 'agent':7,39,186,193,338,894,1281 'aid':807 'allow':594 'allow-list':593 'also':387,656,667 'altern':434,460,1328 'alway':1546,1678,1702 'amc':516 'analyz':920 'analyze-stat':919 'announc':1637 'anoth':204,252 'anti':1742 'anti-hallucin':1741 'apach':1066 'appear':421,696 'appli':1467 'applic':1570,1602 'appropri':1224,1479 'approv':1541 'argument':448,689 'around':203 'asan':520,529 'ask':380,1354,1703,1722 'asset':1592 'assum':1113,1717 'assumpt':69,768,876,883,1324 'attent':681 'attribut':258,317,1062 'audit':19,60,109,361,444,756,1178,1730 'audit_skill.sh':1257 'author':255,585,694 'author-styl':584 'auto':1513,1672 'auto-execut':1512,1671 'autom':439 'avail':1481 'avoid':1320,1657 'base':263 'bash':467,468,1461,1516 'beij':561 'binari':603,634 'binary-fil':633 'block':261 'blockquot':569 'bodi':284 'boston':563 'bsd':1065 'bundl':443,856,966,1047,1129,1142,1707 'busan':558 'busi':293 'by-nc':1073 'by-nc-nd':1082 'by-sa':1092 'byte':641 'byte-stream':640 'cach':1526,1538 'call':1698 'canon':1316 'categori':477,663,741 'cc':103,1056,1072,1081,1091 'cc0':1049 'cd':1517 'chang':955,1054 'check':23,73,230,243,256,907,963,989,999,1173,1255,1271,1284 'checklist':1136,1139,1157,1600 'chines':553 'ck':722 'ck-nn':721 'classifi':176 'classroom':1346,1584,1598 'classroom-macos.zip':1372 'classroom-windows.zip':1366 'claud':469,675,852,1031,1208,1285,1420 'clean':43,1409,1575 'click':1632 'clinic':523,1019 'clone':1576,1578 'co':693 'co-author':692 'code':1264,1286,1421 'codex':1296 'cohort':728 'collabor':417 'collect':122 'collis':643 'combin':426 'come':276,1483 'command':1319,1504,1508 'comment':265 'commit':85,1456,1503,1530,1543 'common':1278 'communic':86,88,786,790 'compat':22,72,314,323,962,969,1028,1125,1183 'competit':286,296,1700 'competitive/proprietary':346 'complet':1451 'confirm':219,762,1448 'contain':131,182,320,1011,1301 'content':270,327,1012,1126,1708 'context':829 'context-depend':828 'convers':334 'convert':4,36,1077,1087,1098,1127,1712 'copi':1407,1457,1690 'copyleft':1096 'corp':511 'count':388,1228,1497 'cp':1415,1462,1579 'creat':1586 'cross':25,75,660,1267 'cross-platform':24,74,1266 'cross-valid':659 'cursor':1306 'cursor/rules':1309 'daegu':559 'date':570,727 'dd':575 'de':359 'de-identif':358 'decis':302 'declar':994 'default':157,714,771,1653 'defin':837 'deleg':187,189 'depend':830,1109,1289 'descript':1202,1239,1241,1394 'desktop':1280 'desktop-ag':1279 'diagnost':843 'diagram':1487 'diff':951,1525,1537 'dir':471,677,854,1033,1210 'direct':1349,1595,1639 'direct-download':1348 'directori':130,143,167,452,865,872,987,1006,1694 'discoveri':808 'distribut':11,44,146,197,242,1585 'document':1295,1646 'docx':606,648 'doi':1749 'domain':703,820,833,1051 'domain-gener':819 'domain-specif':702,832 'doubl':1631 'double-click':1630 'download':1155,1350,1596,1642 'dr':538 'draft':423,701,1375,1471 'due':1143 'e':433 'e.g':135,148,590,690,842,916 'earli':700 'editor':886 'email':497,1636 'end':1439,1441,1660,1662 'end-to-end':1438,1659 'enforc':1734 'english':97 'entri':1374,1470 'environ':874,1282 'etc':1021 'everi':1207 'everyth':384 'exact':368,1507 'exampl':1331 'exclud':596 'execut':1219,1514,1673 'exif':604 'exiftool':615 'exist':925,937,1754,1781 'exit':1263 'explain':1628 'explicit':657,1540,1788 'extern':245,278,1108 'extra':687 'fabric':1745 'factor':1762 'fallback':945 'fals':626 'false-posit':625 'featur':1174 'fellow':824 'field':805,905,1200 'fig01.png':592 'file':171,213,273,635,649,739,858,967,979,997,1002,1010,1130,1180,1205,1216,1558,1746 'filenam':425,587 'final':82,1251,1259 'find':110,304,653,734,749 'fine':846 'first':345,447,1655 'fix':744,750 'flag':328,666 'format':731,1386 'frontmatt':107,903,1194 'full':1037,1603,1658 'fulli':306 'gate':217,745,1446,1533 'general':20,65,765,821,954 'generat':1376,1502 'generic':597 'get':1117 'git':1518,1521,1524,1529,1536,1577,1674 'github':1358,1589,1640 'github.com':1361,1367 'gpl':105,1102 'grep':432,632,672 'guard':628 'guess':1791 'guidelin':281,1018 'hallucin':1743 'hardcod':488,546,849,1288 'header':259,318,992,1063 'hint':624 'hit':392,761 'hopkin':525 'ide':888 'identif':360 'identifi':63,118,719,1022 'impact':1761 'includ':1069,1248,1621,1625 'incompat':1114,1710 'inform':64 'infrastructur':893 'init':116 'input':121,428,1445 'insid':644 'instal':617,623,1303,1572,1607 'installers/install-macos.command':1626 'installers/install-windows.cmd':1622 'institut':410,513,705,708 'instruct':946,1402 'intend':1341 'intern':507,509,580 'interoper':906 'invent':1758 'inventori':169,208 'ip':505 'issue2024':600 'japanes':551 'john':524 'journal':1759,1770 'jpg':611 'judgment':1697 'kaist':518 'keep':798,831,866,898,929 'keyword':801,1250 'known':1015 'korean':548,566,775,777 'languag':66,95,403,545,772,778,784,789,797 'lesson':1609 'licens':21,71,152,153,260,315,961,974,991,1001,1027,1045,1070,1145,1147,1177,1182,1711,1721 'like':599,720 'line':214,576,740,1227,1234 'link':1597,1643 'linter':485 'linux':881 'list':595,715,901,1568 'load':1237 'local':510 'locat':555,1414 'logic':294,347 'ls':173 'm':1531 'ma':725 'ma-nn':724 'maco':880,1623 'macos/linux':1329 'make':941,1696 'manifest':333,1120,1134 'manual':668,1359,1547,1679 'mark':1105 'markdown':1135,1387 'marketplac':1567 'match':371,638,742,1380 'matrix':303,1029,1038 'may':420,709 'mayo':522 'mdc':1310 'medic':527,530,813 'medsci':482 'medsci-skil':481 'memori':1557 'mention':1499 'metadata':605,1760 'mgh':521 'mirror':479 'mit':102,158,1042,1064 'mm':574 'modifi':1681 'monorepo':484 'multilingu':799 'must':366,1261 'name':399,535,683,729,915,1137,1201,1390,1752 'navig':1357 'nc':1075,1084 'nd':1085 'need':78,1055 'never':1670,1680,1695,1706,1716,1726,1744,1757 'new':1493 'nine':476 'nn':723,726 'non':322,1124 'non-compat':321,1123 'note':216 'notic':1071 'offici':1149,1160 'one':699,752,1258,1392 'one-sent':1391 'open':13,46,240,353 'open-sourc':239,352 'open-source-readi':12,45 'optim':1236 'option':943,1107,1650 'orchestr':188,335,1663 'origin':229,235,307 'os':879 'otherwis':620 'output':730,864,947,1175 'owner':1362,1368 'packag':30,50,83,141,147,156,224,253,928,940,973,1339,1365,1371,1383,1454,1460,1560,1599,1720,1751,1776 'pars':1195 'parti':269,326 'particular':680 'path':129,142,489,847,851,868,1211,1293,1334,1747 'pattern':435,461,589,688,1121 'pay':679 'pdf':609 'permiss':1118 'person':6,38,62,133,767,892,896 'pgi':539 'phase':57,114,227,310,355,763,959,1185,1436,1452,1473,1724,1736,1739 'phrase':1432 'pii':18,101,357,370,391,1252,1729 'pipe':437 'pipe-separ':436 'pipelin':58,1486 'place':1163,1686 'placehold':407,414 'platform':26,76,1268,1283 'png':610,646 'point':1313 'polici':1765 'portabl':1333 'posit':627 'possibl':1336 'post':1549 'post-publish':1548 'powershell/python':1327 'pptx':607 'pre':375,464 'pre-scan':374,463 'preced':571 'prefer':94,783,796 'prepar':80,1347 'present':108,207,732,1176,1505 'privat':301,337,1291 'proceed':226,308,319,373,757 'process':976 'prof':537 'professor':536,823 'project':717 'project-specif':716 'prompt':1635,1656 'proprietari':292,1111 'prose':1501 'provid':863,1326 'public':1050 'publish':2,34,280,1550 'publish-skil':1,33 'push':1515,1544,1675,1676 'pyc':645 'pycach':654 'qualiti':1240 'quick':1039 'r':174,1416,1463,1580 'radiolog':811 'rather':1352,1789 're':754,1254 're-check':1253 're-run':753 'read':161 'readi':15,48 'readm':1373,1385,1466,1469 'readme.md':1523 'readme_first.md':1627 'recommend':1756 'recurs':172 'refactor':199,342 'refer':275,339,514,857,890,911,931,984,1030,1040,1080,1090,1101,1166,1206,1715 'referenc':923,933 'relat':867 'releas':1590,1641 'relev':1430 'remain':300 'remedi':737 'remind':1551 'remov':330,875,882,889,1115 'replac':773,785,810,822,848,859 'repo':1363,1369 'report':1017,1172 'requir':120,341,900,1199,1654 'research':812,814,825 'resolv':1212 'resourc':1778 'restart':1419,1633 'restrict':1146 'return':1262 'reveal':291,578 'review':28,581,747,958,1270,1528,1535 'risk':1097 'role':68,533,809 'roman':405 'rout':917 'row':1379,1476 'rule':87 'run':17,379,441,475,755,1256,1276 'sa':1094 'sampl':1444 'sample2025':601 'samsung':526 'say':1786 'scan':376,440,465,613,630,975 'scope':841 'score':1020 'script':445,474,665,986,1218,1220,1222 'scripts/validate_skills.sh':486 'second':454 'self':181,1300 'self-contain':180,1299 'sensit':287,1701 'sentenc':1393 'seoul':557 'separ':438 'set':1605 'setup':377,466 'sever':528 'shanghai':562 'shape':408,415,502 'shebang':1225 'shell':1330 'short':1308 'show':948 'silent':619 'singl':431 'skill':3,8,16,32,35,40,49,52,128,134,166,177,183,221,233,249,290,365,451,470,483,676,817,839,853,871,897,910,913,924,934,982,1032,1170,1209,1274,1389,1398,1410,1425,1490,1496,1520,1564,1604,1615,1666,1684 'skill-nam':1388 'skill-publish-skill' 'skill.md':162,1229,1297,1317 'skip':618,658,1727 'smc':517 'snu':519 'snuh':515 'soon':1484 'sourc':14,47,119,127,165,220,241,246,279,354,1024,1044,1150,1161,1181,1683 'source-aperivue' 'specif':459,556,704,718,788,834,878,885,1719 'stage':1494 'standalon':179,344 'standard':283,1016 'stanford':564 'start':1243 'stat':921 'status':1561 'stop':340,348 'stream':642 'string':503 'structur':112,873,1190 'style':586 'sub':192 'sub-ag':191 'submiss':1764 'suggest':743 'suitabl':195,237,350 'surnam':418 'tabl':113,209,738,1179,1378,1480 'target':140,151,223,927,939,972,1043,1382,1459,1693 'task':1610 'technic':99 'term':100,835 'test':1189,1401,1413,1423,1449,1571,1594,1634 'text':629,1360 'textbook':282 'thin':201 'third':268,325 'third-parti':267,324 'tiff':612 'time':1260,1618 'timelin':582 'token':598 'tokyo':560 'toler':363,1732 'tool':673,899,904,1203,1775 'tool/api':205 'topic-agent-skills' 'topic-biostatistics' 'topic-claude-code' 'topic-claude-skills' 'topic-clinical-research' 'topic-diagnostic-accuracy' 'topic-irb-protocol' 'topic-literature-review' 'topic-manuscript' 'topic-medical-ai' 'topic-medical-research' 'topic-meta-analysis' 'track':1559 'transform':766 'trigger':652,800,804,1249,1426,1431 'type':178,215,1148,1428 'unifi':950 'uniqu':395 'univers':770 'unix':1322 'unix-on':1321 'unknown':1110 'unless':1294 'unsur':1785 'unzip':1629 'updat':1465,1485,1495,1555,1588 'url':332,508,1079,1089,1100,1119,1133,1151,1714,1748 'use':96,631,1154,1168,1332,1611,1638 'user':91,125,212,218,382,458,746,781,793,827,862,957,1355,1400,1404,1447,1527,1534,1553,1705 'user-provid':861 'user-specif':457 'v2/v3':1103 'valid':661,1187,1191 'variant':567 'verb':1246 'verif':1767 'verifi':70,231,669,964,1197,1434,1753 'via':614 'walk':53 'websit':1772 'whether':1272 'window':1318,1619 'within':869,995 'without':198,637,1766 'without-match':636 'work':236,1437,1687 'workflow':31 'workshop':1344 'wrapper':200,202 'wsl':1644 'xlsx':608 'yaml':106,1193 'year':588 'yes':1052,1060,1068 'yyyi':573 'yyyy-mm-dd':572 'zero':362,1731 'zip':1351,1591,1620,1624 '교수님':543 '한국어로':549,776 '한글이름':542","prices":[{"id":"004186f9-061b-4169-95d7-a2e6b202047e","listingId":"de0e2357-a5a9-43e4-9a5f-49219b3ab8c1","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"Aperivue","category":"medsci-skills","install_from":"skills.sh"},"createdAt":"2026-05-13T12:57:46.152Z"}],"sources":[{"listingId":"de0e2357-a5a9-43e4-9a5f-49219b3ab8c1","source":"github","sourceId":"Aperivue/medsci-skills/publish-skill","sourceUrl":"https://github.com/Aperivue/medsci-skills/tree/main/skills/publish-skill","isPrimary":false,"firstSeenAt":"2026-05-13T12:57:46.152Z","lastSeenAt":"2026-05-18T18:56:31.207Z"}],"details":{"listingId":"de0e2357-a5a9-43e4-9a5f-49219b3ab8c1","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"Aperivue","slug":"publish-skill","github":{"repo":"Aperivue/medsci-skills","stars":98,"topics":["agent-skills","biostatistics","claude-code","claude-skills","clinical-research","diagnostic-accuracy","irb-protocol","literature-review","manuscript","medical-ai","medical-research","meta-analysis","physician-researcher","prisma","pubmed","radiology","reporting-guidelines","strobe","systematic-review","tripod-ai"],"license":"other","html_url":"https://github.com/Aperivue/medsci-skills","pushed_at":"2026-05-17T20:50:52Z","description":"Claude Code skills for medical research — literature search, reporting guidelines, statistical analysis, publication figures. Built by a physician-researcher, tested on real publications. MIT licensed.","skill_md_sha":"2b5949f0e9752e306480f962c9d8d6a6846889ba","skill_md_path":"skills/publish-skill/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/Aperivue/medsci-skills/tree/main/skills/publish-skill"},"layout":"multi","source":"github","category":"medsci-skills","frontmatter":{"name":"publish-skill","description":"Convert a personal agent skill into a distributable, open-source-ready skill. Runs PII audit, generalization, license compatibility check, cross-platform adapter review, and packaging workflow."},"skills_sh_url":"https://skills.sh/Aperivue/medsci-skills/publish-skill"},"updatedAt":"2026-05-18T18:56:31.207Z"}}