AgentSkillsCN

Release

发布

SKILL.md

Release Notes Skill

Write GitHub release notes for shelli releases with consistent structure and detail level.

When to Use

After creating a git tag and the goreleaser workflow completes, update the release notes using:

bash
gh release edit <tag> --notes "$(cat <<'EOF'
<release notes here>
EOF
)"

Release Notes Structure

1. Breaking Changes (if any)

Start with ## Breaking Changes section when the release includes breaking changes (indicated by ! in commit message or semver minor bump pre-1.0).

For each breaking change:

markdown
## Breaking Changes

### <Component> <brief description of change>

<1-2 sentence summary of what changed and why>

- **Change 1**: Description
- **Change 2**: Description
- **Change 3**: Description

2. Comparison Table (when clarifying roles/behavior)

When changes affect how components relate to each other, include a comparison table:

markdown
### `exec` vs `send` - Clear Roles

| Command | Purpose | Newline | Escapes | Wait |
|---------|---------|---------|---------|------|
| `exec`  | Run commands | Auto-added | NOT interpreted | Yes |
| `send`  | Send raw bytes | Manual | Always interpreted | No |

3. Migration Examples (for breaking changes)

Always include Before/After examples when behavior changes:

markdown
### Migration

**If you were using <old pattern>:**
```bash
# Before (v0.X.0)
<old command>

# After (v0.Y.0)
<new command>

<Another scenario>:

bash
# Explanation of what happens
<command example>
code

### 4. New Features (if any)

```markdown
## New Features

### <Feature name>

<Description of the feature>

```bash
# Example usage
<command>
code

### 5. Bug Fixes (if any)

```markdown
## Bug Fixes

- Fixed <issue description>
- Fixed <issue description>

6. Documentation / Other Changes

End with minor changes that don't fit above:

markdown
## Documentation

- Updated CLI help text to clarify X
- Updated README with Y
- Added examples for Z

Level of Detail

  • Be specific: Name exact flags, parameters, or behaviors that changed
  • Show code: Always include command examples for anything behavioral
  • Explain why: Brief context for breaking changes helps users understand
  • Migration path: Never leave users guessing how to update their usage

Example: Complete Release Notes

markdown
## Breaking Changes

### `send` command simplified to low-level raw interface

The `send` command has been redesigned to be a low-level, precise control interface:

- **Removed flags**: `--raw`, `--multi`, `--submit` are all gone
- **Always interprets escapes**: `\n`, `\r`, `\x03`, etc. are always interpreted
- **No auto-newline**: You must explicitly add `\n` or `\r` when needed

### `exec` vs `send` - Clear Roles

| Command | Purpose | Newline | Escapes | Wait |
|---------|---------|---------|---------|------|
| `exec`  | Run commands | Auto-added | NOT interpreted | Yes |
| `send`  | Send raw bytes | Manual | Always interpreted | No |

### Migration

**Before:**
```bash
shelli send session "ls"              # sent with newline
shelli send session "hello" --raw     # sent without newline

After:

bash
shelli send session "ls\n"            # explicit newline
shelli send session "hello"           # no newline

Documentation

  • Updated CLI help text to clarify escape sequence behavior
  • Updated README with clearer exec vs send guidance
code

## Checklist Before Publishing

1. [ ] Breaking changes clearly marked with `## Breaking Changes`
2. [ ] Each breaking change has migration examples
3. [ ] Command examples use actual shelli syntax
4. [ ] Tables used for comparisons (when applicable)
5. [ ] Non-breaking changes in separate section at end