diff --git a/.claude/skills/openseo-release-notes/SKILL.md b/.claude/skills/openseo-release-notes/SKILL.md index 638c610..90a9741 100644 --- a/.claude/skills/openseo-release-notes/SKILL.md +++ b/.claude/skills/openseo-release-notes/SKILL.md @@ -16,7 +16,8 @@ Cut a release for this repo end to end. The deliverables are a version bump in ` - Find the latest tag: `git tag --sort=-creatordate | head -1`. Verify the branch is up to date with `origin/main` (`git fetch origin main && git log HEAD..origin/main --oneline` should be empty; flag it if not). - List commits: `git log ..HEAD --oneline`. You can also run `pnpm release:notes` for a generated skeleton. -- For each commit, fetch the PR body (`gh pr view --json title,body`) — squash-commit subjects can be stale. Verify claims against the final code when a PR body and commit subject disagree (features get reverted before merge). +- For each commit, fetch the PR body and author (`gh pr view --repo every-app/open-seo --json title,body,author`) — squash-commit subjects can be stale. The `(#NN)` in commit subjects references the **public** repo (`every-app/open-seo`), so look authors up there, not on `origin`. Verify claims against the final code when a PR body and commit subject disagree (features get reverted before merge). +- Record the PR author's GitHub handle alongside each change so the bullet can credit them. ## 3. Draft the notes @@ -25,6 +26,7 @@ Write `release-notes/v.md` matching the style of the 2–3 most recent - One-sentence summary line at the top (no heading). Lead with the biggest user-facing win, stated as the outcome. - `## What's new`, `## Improved`, `## Fixed` — include a section only when it has content. - Imperative bullets ("Add…", "Improve…", "Cut…"), concise, user-facing. +- **Credit the contributor.** End each bullet with `— thanks @handle`, using the PR author's GitHub handle, for the feature or fix they contributed. When a bullet has sub-bullets, put the credit at the end of the top-level bullet (the feature), not on the sub-bullet. Skip the credit for the repo maintainer's own PRs (`bensenescu`) — only credit outside contributors. If one bullet folds in work from multiple contributors, thank each (`— thanks @a, @b`). - **Be punchy — lead with the impact, not the mechanism.** The top-level bullet is the outcome the user gets ("Reduce rank tracking costs by ~3x"); push the how into one brief sub-bullet beneath it. Don't open a bullet with the implementation ("Run scheduled checks through DataForSEO's task queue and…") — that buries the lead. - End with: `Full Changelog: https://github.com/every-app/open-seo/compare/v...v` diff --git a/package.json b/package.json index da78385..5f76515 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "open-seo", "private": true, "sideEffects": false, - "version": "0.0.21", + "version": "0.0.22", "type": "module", "packageManager": "pnpm@10.30.1", "scripts": { diff --git a/release-notes/v0.0.22.md b/release-notes/v0.0.22.md new file mode 100644 index 0000000..fd17fec --- /dev/null +++ b/release-notes/v0.0.22.md @@ -0,0 +1,15 @@ +This release adds a paginated backlinks-profile MCP tool and gives rank tracking monthly schedules, explicit language selection, and a searchable country picker. + +## What's new + +- Add a `get_backlinks_profile` MCP tool so AI agents can pull a domain's full backlink list, not just the summary. — thanks @mvanhorn + - Returns per-link rows (linking URL, anchor, dofollow/nofollow, authority/spam signals, new/lost/broken status) in a paginated envelope, with the same filters and sorts the web UI offers. +- Add a monthly rank tracking schedule that runs at the end of each month. — thanks @Jalendar10 +- Add explicit language selection to rank tracking, so you can override a country's default language. The picker lists only the languages DataForSEO supports for the selected country. — thanks @Devamol10 + +## Improved + +- Add search and device/country filters to the Tracked Domains list so you can find a specific tracker among many. — thanks @mvanhorn +- Replace the country dropdown with a searchable combobox you can filter by typing. — thanks @Fishlex0 + +Full Changelog: https://github.com/every-app/open-seo/compare/v0.0.21...v0.0.22