[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6E3XYZ28N35Z0R7SCYH4HMN":3,"skill-same:01M6E3XYZ28N35Z0R7SCYH4HMN":63},{"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":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":47,"ownerDescription":6,"updatedAt":48,"install":49,"resources":62},"01M6E3XYZ28N35Z0R7SCYH4HMN","changelog",null,"Generate or update CHANGELOG.md from git commits using semantic versioning. Use when the user says \"\u002Fchangelog\", wants to update the changelog, or asks to generate release notes.","Charlieverse-ai\u002Fcharlieverse","Charlieverse-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F225413346?v=4","01M6E3XSWPM28FCWF05XPXBH4Y","Charlieverse","01M6E3XT0W90F4R60YJX5FQPM3",6,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FCharlieverse-ai\u002Fcharlieverse\u002Fblob\u002Fmain\u002F.charlie\u002Ftricks\u002Fchangelog\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"update changelog","semantic","type","semantic versioning","bump","patch","use","user","versioning","notes","commits","git","release","update","generate","release notes","2026-11-10 10:12:30",false,"---\nname: changelog\ndescription: Generate or update CHANGELOG.md from git commits using semantic versioning. Use when the user says \"\u002Fchangelog\", wants to update the changelog, or asks to generate release notes.\nargument-hint: '[bump type: patch|minor|major]'\n---\n\n## What this skill does\n\nReviews commits since the last version tag, determines the version bump, and updates CHANGELOG.md.\n\n## Steps\n\n### 1. Find the latest version\n\n```bash\ngit tag --sort=-v:refname | head -5\n```\n\nIf no tags exist, the starting version is `v1.0.0` and all commits are included.\n\n### 2. Get commits since last version\n\n```bash\ngit log \u003Clast-tag>..HEAD --oneline --no-merges\n```\n\nIf no tag, use all commits:\n```bash\ngit log --oneline --no-merges\n```\n\n### 3. Check if the latest tag has been pushed\n\n```bash\ngit log origin\u002Fmain..HEAD --oneline 2>\u002Fdev\u002Fnull\n```\n\nIf the latest version tag exists only locally (i.e. the tagged commit appears in the `origin\u002Fmain..HEAD` range), then this version has NOT been pushed yet. In that case:\n1. Delete the existing local tag: `git tag -d \u003Clatest-tag>`\n2. Merge the new commits into the EXISTING changelog entry for that version (update the entry in place, don't create a new one)\n3. Re-tag the new changelog commit with the same version\n4. Do NOT bump the version number — keep the same version\n\nOnly create a new version bump when the latest tag has already been pushed to origin.\n\n### 3b. Determine version bump (only if bumping)\n\nIf `$ARGUMENTS` specifies `patch`, `minor`, or `major`, use that.\n\nOtherwise, analyze the commits:\n- **major**: breaking changes, architecture rewrites, API changes\n- **minor**: new features, new commands, new skills, new integrations\n- **patch**: bug fixes, config tweaks, documentation, refactors\n\n### 4. Generate changelog entry\n\nRead existing `CHANGELOG.md` if it exists. Prepend the new version entry at the top.\n\nFormat:\n```markdown\n## [vX.Y.Z] - YYYY-MM-DD\n\n### Added\n- New features, skills, commands\n\n### Changed\n- Modifications to existing behavior\n\n### Fixed\n- Bug fixes\n\n### Removed\n- Removed features or deprecated code\n```\n\nGroup commits by category. Write concise human-readable descriptions (not raw commit messages). Skip empty categories.\n\n**Filter out noise.** Do NOT include trivial commits that don't matter to someone reading a changelog:\n- Formatting fixes (missing newlines, whitespace, trailing commas)\n- Lockfile updates (`uv.lock`, `package-lock.json`)\n- Version bumps that are just the changelog commit itself\n- Typo fixes in non-user-facing files\n\nOnly include changes that affect functionality, behavior, or developer experience.\n\n### 5. Commit the changelog\n\nUpdate the version in pyproject.toml and uv.lock\nThen commit all the files for the version bump.\n\n```bash\ncharlie-commit -m \"Update CHANGELOG for vX.Y.Z\n\nCharlie ? \u003Ccharlie@charlieverse.ai>\"\n```\n\n### 6. Tag the version\n\n```bash\ngit tag vX.Y.Z\n```\n\n### 7. Build the wheel and create a GitHub release\n\nBuild the distributable wheel with all bundled assets:\n\n```bash\ncd web && npm run build && cd ..\nrm -rf dist\u002F\nuv build --wheel\n```\n\nCreate a GitHub release with the wheel attached. Use the changelog entry for this version as the release notes — extract the `## [vX.Y.Z]` section from CHANGELOG.md and pass it as `--notes`:\n\n```bash\ngh release create vX.Y.Z dist\u002F*.whl --title \"vX.Y.Z\" --notes \"$(changelog_entry)\"\n```\n\nWhere `changelog_entry` is the markdown content between the `## [vX.Y.Z]` header and the next `## [` header (or end of file). Do NOT use a lazy \"See CHANGELOG.md for details\" — the release notes should contain the full changelog entry.\n\nReport the new version, summary of changes, and the release URL.\n","## What this skill does\n\nReviews commits since the last version tag, determines the version bump, and updates CHANGELOG.md.\n\n## Steps\n\n### 1. Find the latest version\n\n```bash\ngit tag --sort=-v:refname | head -5\n```\n\nIf no tags exist, the starting version is `v1.0.0` and all commits are included.\n\n### 2. Get commits since last version\n\n```bash\ngit log \u003Clast-tag>..HEAD --oneline --no-merges\n```\n\nIf no tag, use all commits:\n```bash\ngit log --oneline --no-merges\n```\n\n### 3. Check if the latest tag has been pushed\n\n```bash\ngit log origin\u002Fmain..HEAD --oneline 2>\u002Fdev\u002Fnull\n```\n\nIf the latest version tag exists only locally (i.e. the tagged commit appears in the `origin\u002Fmain..HEAD` range), then this version has NOT been pushed yet. In that case:\n1. Delete the existing local tag: `git tag -d \u003Clatest-tag>`\n2. Merge the new commits into the EXISTING changelog entry for that version (update the entry in place, don't create a new one)\n3. Re-tag the new changelog commit with the same version\n4. Do NOT bump the version number — keep the same version\n\nOnly create a new version bump when the latest tag has already been pushed to origin.\n\n### 3b. Determine version bump (only if bumping)\n\nIf `$ARGUMENTS` specifies `patch`, `minor`, or `major`, use that.\n\nOtherwise, analyze the commits:\n- **major**: breaking changes, architecture rewrites, API changes\n- **minor**: new features, new commands, new skills, new integrations\n- **patch**: bug fixes, config tweaks, documentation, refactors\n\n### 4. Generate changelog entry\n\nRead existing `CHANGELOG.md` if it exists. Prepend the new version entry at the top.\n\nFormat:\n```markdown\n## [vX.Y.Z] - YYYY-MM-DD\n\n### Added\n- New features, skills, commands\n\n### Changed\n- Modifications to existing behavior\n\n### Fixed\n- Bug fixes\n\n### Removed\n- Removed features or deprecated code\n```\n\nGroup commits by category. Write concise human-readable descriptions (not raw commit messages). Skip empty categories.\n\n**Filter out noise.** Do NOT include trivial commits that don't matter to someone reading a changelog:\n- Formatting fixes (missing newlines, whitespace, trailing commas)\n- Lockfile updates (`uv.lock`, `package-lock.json`)\n- Version bumps that are just the changelog commit itself\n- Typo fixes in non-user-facing files\n\nOnly include changes that affect functionality, behavior, or developer experience.\n\n### 5. Commit the changelog\n\nUpdate the version in pyproject.toml and uv.lock\nThen commit all the files for the version bump.\n\n```bash\ncharlie-commit -m \"Update CHANGELOG for vX.Y.Z\n\nCharlie ? \u003Ccharlie@charlieverse.ai>\"\n```\n\n### 6. Tag the version\n\n```bash\ngit tag vX.Y.Z\n```\n\n### 7. Build the wheel and create a GitHub release\n\nBuild the distributable wheel with all bundled assets:\n\n```bash\ncd web && npm run build && cd ..\nrm -rf dist\u002F\nuv build --wheel\n```\n\nCreate a GitHub release with the wheel attached. Use the changelog entry for this version as the release notes — extract the `## [vX.Y.Z]` section from CHANGELOG.md and pass it as `--notes`:\n\n```bash\ngh release create vX.Y.Z dist\u002F*.whl --title \"vX.Y.Z\" --notes \"$(changelog_entry)\"\n```\n\nWhere `changelog_entry` is the markdown content between the `## [vX.Y.Z]` header and the next `## [` header (or end of file). Do NOT use a lazy \"See CHANGELOG.md for details\" — the release notes should contain the full changelog entry.\n\nReport the new version, summary of changes, and the release URL.\n",{"name":5,"description":7,"argument-hint":40},"[bump type: patch|minor|major]","main","aef1d36cff72a8957a1c6fc90ff90230ad16c7e9",".charlie\u002Ftricks\u002Fchangelog",2,"https:\u002F\u002Fgithub.com\u002FCharlieverse-ai\u002Fcharlieverse","https:\u002F\u002Fgithub.com\u002FCharlieverse-ai","https:\u002F\u002Fcharlieverse.ai","2026-04-27 22:48:21",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add Charlieverse-ai\u002Fcharlieverse --skill changelog",{"tool":55,"command":56},"bunx","bunx skills add Charlieverse-ai\u002Fcharlieverse --skill changelog",{"tool":58,"command":59},"pnpm","pnpm dlx skills add Charlieverse-ai\u002Fcharlieverse --skill changelog","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FCharlieverse-ai\u002Fcharlieverse\u002Fblob\u002Fmain\u002F.charlie\u002Ftricks\u002Fchangelog\u002FSKILL.md",true,[],[64,82,111,117,123,137],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":35},"01M6E3Z6MGDDBZ5TFTTA9T1EGK","trick","Run Charlie tricks by name or path. Use when the user says \"\u002Ftrick\", wants to run a trick, list available tricks, or execute a skill file. Also trigger when the user mentions running a specific trick by name (e.g., \"run the session-save trick\", \"run ship\", \"do the commit trick\").","https:\u002F\u002Fgithub.com\u002FCharlieverse-ai\u002Fcharlieverse\u002Fblob\u002Fmain\u002Fprompts\u002Fskills\u002Ftrick\u002FSKILL.md",[],[66,71,72,73,74,25,75,76,26,77,78,79,80,81],"ship","name","trigger","do","session","execute","list","save","file","run","commit",{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":96,"publishedAt":35},"01M6E3Z3FVY2KMZZGK231SG8ZH","research","Research a topic and save findings to Charlieverse knowledge. Use whenever the user wants to research something, look up documentation, investigate a library or tool, explore a concept, or asks \"what do you know about X\". Also trigger when the user says \"\u002Fresearch\", wants to build up knowledge about a subject, or asks you to \"look into\" something — even if they don't use the word \"research\" explicitly.","https:\u002F\u002Fgithub.com\u002FCharlieverse-ai\u002Fcharlieverse\u002Fblob\u002Fmain\u002Fprompts\u002Fskills\u002Fresearch\u002FSKILL.md",[88,93],{"categoryNo":89,"categoryName":90,"taxonomyType":91,"taxonomyTypeDesc":92},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",{"categoryNo":94,"categoryName":95,"taxonomyType":91,"taxonomyTypeDesc":92},"01JBSEEDCAT000000000000023","Skill与智能体开发",[84,97,98,99,100,101,102,103,104,105,106,32,26,107,73,74,108,109,110,25],"documentation","researcher","Word","tool","knowledge","explore","investigate","Tools","library","search","MCP","build","look","up",{"skillNo":112,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":116,"publishedAt":35},"01M6E3Z0D8356WESTCT9JMKXR2","https:\u002F\u002Fgithub.com\u002FCharlieverse-ai\u002Fcharlieverse\u002Fblob\u002Fmain\u002Fintegrations\u002Fcopilot\u002Fplugin\u002Fskills\u002Ftrick\u002FSKILL.md",[115],{"categoryNo":94,"categoryName":95,"taxonomyType":91,"taxonomyTypeDesc":92},[66,72,73,74,25,75,76,26,77,78,71,104,79,80,81],{"skillNo":118,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":122,"publishedAt":35},"01M6E3YXEZ14EXF0SXZST1NKGY","https:\u002F\u002Fgithub.com\u002FCharlieverse-ai\u002Fcharlieverse\u002Fblob\u002Fmain\u002Fintegrations\u002Fcopilot\u002Fplugin\u002Fskills\u002Fresearch\u002FSKILL.md",[121],{"categoryNo":89,"categoryName":90,"taxonomyType":91,"taxonomyTypeDesc":92},[84,97,110,73,74,108,109,25,26,99,100,101,102,103,78,105],{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":35},"01M6E3YTP8N2RJXJD8BG0S5JT0","copilot","Run a task through GitHub Copilot CLI. Use when the user says \"\u002Fcopilot\", wants to delegate work to Copilot, or mentions running something through Copilot. Also trigger when the user wants to use Copilot for a task.","https:\u002F\u002Fgithub.com\u002FCharlieverse-ai\u002Fcharlieverse\u002Fblob\u002Fmain\u002Fintegrations\u002Fcopilot\u002Fplugin\u002Fskills\u002Fcopilot\u002FSKILL.md",[],[125,73,130,25,26,131,132,104,133,80,134,135,136],"task","delegate","work","copilot cli","github copilot","github","cli",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":35},"01M6E3YRC6T2NYJAENBYGJYYX8","codex","Run a task through OpenAI Codex CLI. Use when the user says \"\u002Fcodex\", wants to delegate work to Codex, or mentions running something through Codex. Also trigger when the user wants to use an OpenAI model for a task.","https:\u002F\u002Fgithub.com\u002FCharlieverse-ai\u002Fcharlieverse\u002Fblob\u002Fmain\u002Fintegrations\u002Fcopilot\u002Fplugin\u002Fskills\u002Fcodex\u002FSKILL.md",[],[139,144,80,136,104,145,73,146,130,25,26,131,132,147],"codex cli","openai","openai codex","model"]