{"id":49530545,"url":"https://github.com/air-0000/skill-publisher","last_synced_at":"2026-05-04T10:03:37.820Z","repository":{"id":354994536,"uuid":"1225250850","full_name":"Air-0000/skill-publisher","owner":"Air-0000","description":"Skill 发布流水线 — 自动完成质量检查 → 版本管理 → 文件上传 → README 更新 → GitHub push → Release 创建 → zip 上传 → CherryStudio 同步。","archived":false,"fork":false,"pushed_at":"2026-05-02T06:07:08.000Z","size":101,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-02T07:30:09.538Z","etag":null,"topics":["agent-skill","automation","cherry-studio","claude-code"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Air-0000.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-30T05:11:58.000Z","updated_at":"2026-05-01T14:05:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Air-0000/skill-publisher","commit_stats":null,"previous_names":["air-0000/skill-publisher"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/Air-0000/skill-publisher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Air-0000%2Fskill-publisher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Air-0000%2Fskill-publisher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Air-0000%2Fskill-publisher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Air-0000%2Fskill-publisher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Air-0000","download_url":"https://codeload.github.com/Air-0000/skill-publisher/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Air-0000%2Fskill-publisher/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32602730,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"online","status_checked_at":"2026-05-04T02:00:06.625Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-skill","automation","cherry-studio","claude-code"],"created_at":"2026-05-02T07:05:47.112Z","updated_at":"2026-05-04T10:03:37.815Z","avatar_url":"https://github.com/Air-0000.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Skill Publisher\n\n\u003e Skill 发布流水线 — 自动完成质量检查 → 版本管理 → GitHub push → Release 创建 → zip 上传 → CherryStudio 同步。\n\n**v0.4.0** 脚本化实现，支持质量门、版本增强、回滚能力。\n\n## 特性\n\n- **Step 0 质量检查**：frontmatter 校验、文件合规性、版本格式验证\n- **版本管理**：支持 major/minor/patch bump，自动比较 remote 版本\n- **Backup 自动化**：zip 文件名含 git commit hash，支持回滚\n- **全流程串联**：Step 0 → Step 0.5 → Step 1-9，一键发布\n- **Cherry Studio 同步**：发布后自动同步到本地 Skills 目录\n\n## 文件结构\n\n```\nskill-publisher/\n├── SKILL.md                    # 流程定义文档\n├── CHANGELOG.md\n├── README.md\n├── requirements.txt\n└── scripts/\n    ├── __init__.py\n    ├── quality_checker.py      # 质量检查模块\n    ├── version.py              # 版本管理模块\n    ├── git_utils.py            # Git 操作封装\n    ├── publisher.py            # 主入口\n    └── test_publisher.py       # 单元测试（33 个用例）\n```\n\n## 安装\n\n**CherryStudio**：将 `skill-publisher/` 目录放入 Skills 目录：\n```bash\ncp -r skill-publisher/ ~/Library/Application\\ Support/CherryStudio/Data/Skills/\n```\n\n**依赖安装**：\n```bash\ncd skill-publisher/scripts\npip install -r requirements.txt\n```\n\n## 使用方式\n\n### 命令行\n\n```bash\npython scripts/publisher.py publish \\\n  --skill-dir /path/to/skill \\\n  --skill-name my-skill \\\n  --repo-url https://github.com/owner/my-skill.git \\\n  --repo owner/my-skill \\\n  --change-summary \"新增质量检查功能\" \\\n  --bump patch\n```\n\n### Python API\n\n```python\nfrom publisher import publish_skill, generate_markdown_report\nfrom pathlib import Path\n\nresult = publish_skill(\n    skill_dir=Path(\"/path/to/skill\"),\n    skill_name=\"my-skill\",\n    repo_url=\"https://github.com/owner/my-skill.git\",\n    repo=\"owner/my-skill\",\n    change_summary=\"新增质量检查功能\",\n    bump=\"patch\",\n)\n\nprint(generate_markdown_report(result))\n```\n\n## 依赖 Skill\n\n无外部依赖，依赖 Python 标准库 + pyyaml。\n\n## 相关仓库\n\n- **skill-publisher**（本仓库）：https://github.com/Air-0000/skill-publisher\n- **code-dev-team**：https://github.com/Air-0000/code-dev-team-skill\n- **doc-writer**：https://github.com/Air-0000/doc-writer-skill\n- **chat-history-sync**：https://github.com/Air-0000/chat-history-sync-skill\n\n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fair-0000%2Fskill-publisher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fair-0000%2Fskill-publisher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fair-0000%2Fskill-publisher/lists"}