# Deepchat Release

Prepare and publish DeepChat releases in this repository.

- Repository: https://github.com/ThinkInAIXYZ/deepchat (6384 stars)
- Category: Git and review
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add ThinkInAIXYZ/deepchat --skill deepchat-release -g -a claude-code -y`
Codex: `npx skills add ThinkInAIXYZ/deepchat --skill deepchat-release -g -a codex -y`
Cursor: `npx skills add ThinkInAIXYZ/deepchat --skill deepchat-release -g -a cursor -y`
Gemini CLI: `npx skills add ThinkInAIXYZ/deepchat --skill deepchat-release -g -a gemini-cli -y`

## Description

Prepare and publish DeepChat releases in this repository. Use when Codex needs to bump the app version, update CHANGELOG.md, keep release notes bilingual from v1.0.1 onward with English bullets first and Chinese bullets second, run release checks, create or update versioned release branches such as release/v1.0.1, continue a half-finished release, fast-forward main with the documented release flow, create or push version tags, or clean up release branches after publishing.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# DeepChat Release

## Overview

Follow the repository-specific DeepChat release process. Prepare release metadata on `dev`, keep `CHANGELOG.md` concise, and publish through the documented fast-forward flow instead of merge commits on `main`.

## Start With Repo State

Inspect git state before changing anything:

- Check the current branch and working tree.
- Check whether `release/<version>` exists locally or on `origin`.
- Check whether `v<version>` exists locally or on `origin`.

If a local or remote tag already exists on the wrong commit, stop and ask before replacing it.

## Choose The Release Mode

Pick the mode that matches the user's request and current git state:

1. `prepare metadata`
   Update `package.json`, `CHANGELOG.md`, and the release notes commit on `dev`.
2. `cut release branch`
   Create `release/<version>` from the release-ready commit on `dev` and push it.
3. `update existing release branch`
   Use this when the release branch already exists but metadata changed afterward. Commit on `dev`, move `release/<version>` to the new `dev` commit, and force-push only the disposable release branch.
4. `publish`
   Use this only after the release PR is approved. Fast-forward `main`, create the version tag on the same commit, push the tag, and then delete the temporary release branch.

Use [references/release-checklist.md](references/release-checklist.md) for exact commands.

## Update Release Metadata

When preparing a release on `dev`:

- Update `package.json` to the target version.
- Add a new `CHANGELOG.md` section at the top.
- Summarize only user-visible or release-relevant changes since the previous tag.
- Prefer deriving the notes from recent commits or the diff since the previous release tag.
- Do not create SDD folders for pure release metadata, branch, tag, or release PR work.

For `v1.0.1` and later, format changelog entries in this order:

```md
## vX.Y.Z (YYYY-MM-DD)
- English bullet
- English bullet
- 中文条目
- 中文条目
```

The rest: https://github.com/ThinkInAIXYZ/deepchat/blob/HEAD/.agents/skills/deepchat-release/SKILL.md
