* feat(skills): add ao-weekly-release skill for automated release notes (#1231)
Adds the in-repo skill files the bot cron invokes every Thursday 10:00 IST
to generate and post weekly release notes to Discord. Keeping the skill
under version control means merged PRs to main are picked up on the next
run with no manual redeployment.
- SKILL.md: output contract, style constraints, failure-mode table, and
the update workflow so future editors know what the runner must guarantee
- run.py: deterministic stdlib-only runner that queries gh for the latest
release, merged PRs, commits, contributors, and stars in a 7-day window
and renders a publishable markdown post in the established house style
The runner never fabricates data — every rendered value traces back to a
gh or git command, and missing data surfaces as "(unavailable)" or a
non-zero exit code so the cron can post a "quiet week" message instead.
Refs #1231
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(skills): address review findings in release notes runner (#1231)
1. Install command: read version from npm registry instead of deriving
from the GitHub release tag, which uses scoped npm tags like
@composio/ao-cli@0.2.2 and produced malformed specifiers.
2. gh release create: same root cause — use npm version, not tag.
3. Full changelog link: resolve window dates to commit SHAs via
git rev-list / GitHub API instead of main@{date} reflog syntax,
which only works locally and 404s on GitHub.
4. Truncation count: track total omitted PRs across the initial
MAX_HIGHLIGHTS cap and the body-size truncation pass, and render
one accurate overflow line at the end.
5. Highlight bullets: skip the theme verb prefix when the cleaned
title already starts with a verb (avoids "Added add …" stutter),
and strip trailing (#NNN) refs from titles before appending the
canonical (#{pr.number}) to avoid doubled refs.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>