$npx -y skills add levnikolaevich/claude-code-skills --skill ln-64-community-announcerDrafts and publishes fact-checked GitHub Discussions announcements. Use for releases, updates, or project news; not for release creation or issue responses.
| 1 | # Community Announcer |
| 2 | |
| 3 | **Goal:** Create a source-backed announcement and publish it only after the user approves the full draft. |
| 4 | |
| 5 | **Execution contract:** Treat the ordered checkbox workflow below as this skill's Definition of Done. Work through every item in order, and mark it complete only when its action and required evidence are complete. `N/A`, skipped, unavailable, or delegated items remain incomplete. |
| 6 | Before returning, apply this skill's verdict, decision, and approval rules to every incomplete item and prepend **Checklist: X/Y complete**<br>**Incomplete: None | section/item — reason; outcome impact; exact next action**; list every incomplete item. |
| 7 | |
| 8 | ## Tool Routing |
| 9 | |
| 10 | | Need | Preferred capability | Fallback | |
| 11 | |---|---|---| |
| 12 | | Repository identity and permissions | Authenticated GitHub CLI or connector | Public GitHub API for read-only discovery | |
| 13 | | Discussion categories and publication | GitHub GraphQL API | `BLOCKED`; do not substitute an issue | |
| 14 | | Shipped-change evidence | Remote Git history, releases, and canonical files | Clean remote clone | |
| 15 | | Commands, paths, names, and counts | Focused repository search and direct reads | Hosting API content reads | |
| 16 | | Current external claims | Primary dated sources | Omit the claim when it cannot be verified | |
| 17 | | Draft publication | Temporary Markdown file passed to the API | Safely escaped API input with read-back verification | |
| 18 | |
| 19 | Prefer the hosting API over scraping rendered pages. Use the browser only to inspect presentation or a page the API cannot expose. |
| 20 | |
| 21 | Do not expose repository tokens, category node IDs, or other credentials in the announcement. IDs may be used for the mutation but are not audience content. |
| 22 | |
| 23 | ## Checklist |
| 24 | |
| 25 | - [ ] Resolve the target repository from the authenticated hosting client and verify write access. |
| 26 | - [ ] Discover the repository ID, default branch, Discussions availability, and a repository-approved suitable category through the API. |
| 27 | - [ ] Stop with `BLOCKED` when Discussions or a suitable category is unavailable; do not silently publish elsewhere. |
| 28 | - [ ] Identify the announcement subject from the user's request, a release, or a bounded commit range. |
| 29 | - [ ] Read repository communication guidance when present, but do not require a community strategy file. |
| 30 | - [ ] Read the current authoritative documentation, installation instructions, affected manifests, release notes, and relevant source diffs when present. |
| 31 | - [ ] Inspect recent commits and up to three available comparable announcements for cadence, repeated claims, and house style; do not require prior announcements in a new or low-volume repository. |
| 32 | - [ ] Use the target remote state as the source for already-published changes; do not announce an unpushed local diff as available. |
| 33 | - [ ] Separate what shipped, what changed for users, migration needs, and future intent. |
| 34 | |
| 35 | ## Classification and Style |
| 36 | |
| 37 | - [ ] Classify the announcement as release, breaking change, feature update, architecture change, or community news. |
| 38 | - [ ] Choose the shortest style that explains the user outcome and its significance. |
| 39 | - [ ] Use a concise release digest for several independent changes. |
| 40 | - [ ] Use a problem-to-solution narrative when the motivation is necessary to understand the redesign. |
| 41 | - [ ] Use migration-first structure when existing users must take action. |
| 42 | - [ ] Vary the opening from recent announcements when doing so remains natural; variety is not more important than clarity. |
| 43 | - [ ] Do not force emoji, slogans, dramatic metaphors, or a fixed template. |
| 44 | - [ ] Match the project's voice while keeping claims understandable without internal repository context. |
| 45 | |
| 46 | ## Draft |
| 47 | |
| 48 | - [ ] Write a specific title that names the outcome rather than saying only "update" or "announcement". |
| 49 | - [ ] Open with the user problem or the most important shipped outcome. |
| 50 | - [ ] Explain why the change was made using evidence from commits, docs, or release notes. |
| 51 | - [ ] Summarize highlights in outcome language and name exact products, packages, plugins, skills, or components where useful. |
| 52 | - [ ] Include verified installation or update commands when the reader must act. |
| 53 | - [ ] Add an `IMPORTANT` migration block for breaking changes, including clear before-and-after steps. |
| 54 | - [ ] Link to canonical documentation at the default branch or immutable release tag as appropriate. |
| 55 | - [ ] Include a short "What's next" section only for committed or clearly labelled tentative work. |
| 56 | - [ ] Thank verified external contributors by handle; omit the section for solo work. |
| 57 | - [ ] End with one genuine, answerable feedback question when community input would be useful. |
| 58 | |
| 59 | ## Fact Check |
| 60 | |
| 61 | - [ ] Verify every command against current authoritative documentation and any stable package, plugin, or marketplace identifier it uses. |
| 62 | - [ ] Verify every named product, package, plugi |