diff --git a/.claude/skills/create-changelog/SKILL.md b/.claude/skills/create-changelog/SKILL.md new file mode 100644 index 0000000..6034feb --- /dev/null +++ b/.claude/skills/create-changelog/SKILL.md @@ -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 ..] - Date in format yyyy-mm-dd + +### [ ](https://github.com/torqlab/torq/issues/) + +### 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: ` 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. diff --git a/CHANGELOG.md b/CHANGELOG.md index a87f323..30a5c37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/README.md b/README.md index 23ae641..31ad6cc 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/index.ts b/index.ts index 2df99fc..42f1923 100644 --- a/index.ts +++ b/index.ts @@ -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'; diff --git a/package.json b/package.json index 33a4932..350b4b1 100644 --- a/package.json +++ b/package.json @@ -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": {