Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
134 changes: 134 additions & 0 deletions .claude/skills/create-changelog/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
---
id: create-changelog
description: Creates a changelog entry for changes in the current branch against the main one. Use when the changelog generation is requested.
---

# Changelog Creation Skill

## Context
You are a technical documentation assistant specialized in creating accurate, concise changelogs following the "Keep a Changelog" standard (https://keepachangelog.com/en/1.1.0/).

## Task
- Analyze the code changes between the current branch and the main branch.
- Write a short changes summary during the execution to make sure you are on track.
- Based on codebase changes, recognize the changelog entry version according to the SemVer.
- Generate a changelog entry that accurately reflects ONLY the actual changes made. Use the recognized SemVer entry version, as the template below specifies.
- Write result to the [CHANGELOG.md](../../../CHANGELOG.md) extending the exisging changelog entries.

## Instructions

1. **Examine the git diff** between the current branch and main:
```bash
git diff main...HEAD
```

2. **Categorize changes** according to "Keep a Changelog" standard:
- **Added** - for new features
- **Changed** - for changes in existing functionality
- **Deprecated** - for soon-to-be removed features
- **Removed** - for now removed features
- **Fixed** - for any bug fixes
- **Security** - in case of vulnerabilities

3. **Follow these strict rules**:
- Document ONLY what is explicitly visible in the code changes
- Do NOT speculate about intentions or future behavior
- Do NOT invent features that aren't clearly implemented
- Use clear, technical language
- Be concise but complete
- Focus on user-facing changes and important technical modifications
- Ignore trivial changes (whitespace, formatting, comments unless significant)
- Use uppercase first letters for titles
- **Generate the main title in the format**: `Auto-Generated Title Based on the Change Details`
- Extract the ticket ID from the current git branch name (e.g., from `feature/123-description` extract `123`)
- The auto-generated title should briefly summarize the main change

4. **Ask for clarification** when:
- The purpose of a change is unclear
- Complex refactoring needs context
- Business logic changes lack obvious intent
- Breaking changes aren't clearly documented

## Output Format

```markdown
# Changelog

## [Version according to SemVer in format <major>.<minor>.<patch>] - Date in format yyyy-mm-dd

### [<Ticket ID Based on the Branch Name> <Auto-Generated Title Based on the Change Details>](https://github.com/torqlab/torq/issues/<ticket-id>)

### Added
- Brief description of new feature/capability
- Another new addition

### Changed
- Description of modified functionality
- Updated behavior or interface

### Fixed
- Bug fix description with issue reference if available

### Removed
- Deleted features or deprecated code removal

### Security
- Security-related fixes or improvements
```

## Example Output

For a branch named `feature/526-add-user-authentication`:

```markdown
# Changelog

## [1.1.0] - 2027-02-03

### [526 Added User Authentication with JWT based on EPAM SSO](https://github.com/torqlab/torq/issues/526)

### Added
- User authentication system with JWT tokens
- Login and logout endpoints

### Changed
- Updated user model to include password hashing
```

## Example Questions to Ask (when needed)

- "What is the business purpose of the changes in [specific file]?"
- "Is the modification in [component] a bug fix or intentional behavior change?"
- "Should the removal of [feature] be noted as a breaking change?"
- "What user-facing impact does the refactoring of [module] have?"

## Important Notes

- The main title MUST follow the format: `<Ticket-ID> Auto-Generated Title Based on the Change Details`.
- Extract the ticket ID from the branch name (usually the numeric part).
- Each entry should start with a verb (Added, Removed, Fixed, etc.).
- Group related changes together.
- Order sections by importance: Security > Removed > Deprecated > Fixed > Changed > Added.
- Include issue/PR numbers when available: `Fixed #123`.
- Date entries when creating releases: `## [1.0.0] - 2024-01-15`.
- Keep entries user-focused when possible, technical when necessary.
- Avoid creating several changelog entries for the same branch.
- Avoid bumping `package.json` version several times for the same branch.
- When you face more than one changelog entry in git diff against the main branch, merge them into a single one.
- When you face inconsistent `package.json`'s versions bumps in git diff against the main branch, set the consistent version.

## Execution Steps

1. Get the current branch name: `git branch --show-current`
2. Extract the ticket ID from the branch name
3. Run `git diff main...HEAD` to see all changes
4. Analyze modified files for functional changes
5. Categorize each significant change
6. Generate an appropriate title based on the main changes
7. Draft changelog entries with the proper title format
8. Review for accuracy and completeness
9. Ask questions about unclear changes
10. Finalize the changelog entry in [CHANGELOG.md](../../../CHANGELOG.md)
11. Update version in the root [`package.json`](../../../package.json)

Remember: Accuracy over completeness. It's better to have fewer, accurate entries than to include speculative or incorrect information.
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Changelog

All notable changes to this project will be documented in this file.
Please, document here only changes visible to the client app.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.1.0] - 2026-03-03

### [47 Export TypeScript Types for External Use](https://github.com/torqlab/strava-api/issues/47)

### Added

- Export `StravaApiConfig` and `StravaActivity` TypeScript types from the package index

## [1.0.0] - 2026-02-26

### Added
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
[![Publish](https://github.com/torqlab/strava-api/actions/workflows/publish.yml/badge.svg)](https://github.com/torqlab/strava-api/actions/workflows/publish.yml)

# @torqlab/strava-api

TypeScript client for the Strava API with automatic rate limiting, retry handling, and comprehensive type safety.
Expand Down
1 change: 1 addition & 0 deletions index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ export { default as fetchStravaActivities } from './fetch-activities';
export { default as getStravaAuthUrl } from './get-auth-url';
export { default as exchangeStravaAuthToken } from './exchange-token';
export { default as refreshStravaAuthToken } from './refresh-token';
export type { StravaApiConfig, StravaActivity } from './types';
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@torqlab/strava-api",
"version": "1.0.1",
"version": "1.1.0",
"description": "Strava API client with automatic rate limiting, retry handling, and comprehensive type safety.",
"license": "MIT",
"author": {
Expand Down