Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
ea8feec
chore: add Claude Code commit skill
mschristensen Mar 21, 2026
9a1cbfc
spec/ait: add initial AI Transport features specification
mschristensen Mar 21, 2026
235a565
spec/ait: add codec layer specification
mschristensen Mar 23, 2026
24b69a0
spec/ait: add server transport specification
mschristensen Mar 23, 2026
a5856e1
spec/ait: add client transport specification
mschristensen Mar 24, 2026
b31322f
spec/ait: add error code definitions
mschristensen Mar 24, 2026
2a2bc16
spec/ait: add AIT-CT3e for multi-message send chaining
mschristensen Mar 24, 2026
552ab8d
spec/ait: revise AIT-ST5b and AIT-ST6a parent linking semantics
mschristensen Mar 24, 2026
0d822e7
spec/ait: rename echo detection to optimistic reconciliation
mschristensen Mar 24, 2026
b17f80e
spec/ait: revise AIT-ST5 to use typed ConversationNode and add AIT-CT9a
mschristensen Mar 27, 2026
cc18844
spec/ait: align spec with View-based architecture, add fork selection…
mschristensen Apr 4, 2026
7f809b6
spec/ait: add error handling spec points
lawrence-forooghian Apr 14, 2026
dea9e85
Merge pull request #447 from ably/AIT-597-error-handling-spec-points
lawrence-forooghian Apr 15, 2026
a14781d
spec/ait: extend error handling for turn operations and stream failures
JoaoDiasAbly Apr 21, 2026
3b611de
Merge pull request #449 from ably/AIT-667/server-transport-error-hand…
JoaoDiasAbly Apr 21, 2026
a305394
spec/ait: align AIT-ST4b with turn-lifecycle error pattern
JoaoDiasAbly Apr 21, 2026
c7bf480
Merge pull request #452 from ably/AIT-667/align-turn-start-error-hand…
JoaoDiasAbly Apr 22, 2026
6966666
spec/ait: add server-side channel continuity
JoaoDiasAbly Apr 20, 2026
76d61cf
Merge pull request #451 from ably/AIT-695/channel-continuity
JoaoDiasAbly Apr 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 99 additions & 0 deletions .claude/skills/commit/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
---
name: commit
description: Generate a commit message for the current staged changes and commit
disable-model-invocation: true
allowed-tools: Bash(git diff *), Bash(git status), Bash(git commit *), Bash(git log *), Bash(curl *), AskUserQuestion
---

# Commit Staged Changes

Generate a high-quality commit message for the currently staged changes, present it
for approval, then commit.

## Step 1: Gather context

Run these commands to understand the staged changes:

1. `git diff --cached --stat` to see which files are staged
2. `git diff --cached` to see the full diff
3. `git status` to check overall state (never use -uall flag)

If there are no staged changes, tell the user and stop.

## Step 2: Determine the intent

Determine the **intent** of the change from the diff. If the intent is
not clear from the code alone, use AskUserQuestion to ask the user to
clarify the purpose of the change before writing the message.

## Step 3: Generate the commit message

Write a commit message following ALL of the guidance below. Where the
project-specific guidance conflicts with the general guidance, the
project-specific guidance takes precedence.

### General commit guidance

!`curl -sf https://raw.githubusercontent.com/ably/engineering/refs/heads/main/best-practices/commits.md`

### Project-specific guidance (takes precedence)

This repository contains the Ably specification. Commit messages should
follow the conventions established in the existing history.

#### Summary line style

Specification changes use one of two styles depending on the nature of the
change:

- **Spec content changes** (adding, modifying, or removing spec points):
Use a `spec/<product>:` prefix where `<product>` identifies the
specification being changed (e.g. `ait` for AI Transport, `chat` for
Chat, `objects` for Objects). Follow with an imperative sentence.
Reference spec point IDs when relevant.
Examples:
- `spec/ait: add initial AI Transport features specification`
- `spec/ait: clarify AIT-CT2 send semantics`
- `spec/chat: extract shared tombstonedAt calculation into RTLO6`
- `spec/objects: delete RTO5c1b1c (redundant to RTO5f3)`

- **Non-spec changes** (build, CI, tooling, formatting): Use a conventional
commit prefix such as `chore:` or `build:`.
Examples:
- `chore: fix typographical errors and improve consistency in features.md`
- `chore: migrate project to Hugo and restructure build pipeline`
- `build(deps-dev): bump braces from 3.0.2 to 3.0.3 in /build`

#### Body

- Keep the body concise. Explain **what** changed and **why**, not just
restate the diff.
- If the commit resolves a Jira ticket, add it on its own line in the body
(e.g. `Resolves AIT-466`). Do NOT include the ticket ID in the summary.
- Omit the body entirely if the summary alone is sufficient.
- Further paragraphs come after blank lines.
- Bullet points are okay, too
- Typically a hyphen (-) is used for the bullet, followed by a single
space

## Step 4: Present the message

Show the complete commit message to the user in a fenced code block.

Then ask: **"Do you want to commit with this message, edit it, or cancel?"**

## Step 5: Act on the response

- **Accept / looks good / yes**: Run the commit using a heredoc:
```
git commit -m "$(cat <<'EOF'
<the message>
EOF
)"
```
- **Edit**: The user will provide a revised message or describe changes.
Apply their edits and show the updated message for confirmation again
(return to Step 3).
- **Cancel**: Do nothing.

After a successful commit, run `git log -1` to confirm.
Loading
Loading