StarNet is a local-first desktop harness for creating AI agents and arranging them in a pixel-art space station whose layout represents their capabilities, permissions, and workflow. It lets people run real model calls and tools through multiple bounded agents, using their own provider keys or accounts and optionally messaging the station through chat services. The catalogue entries are skills that extend or support work performed by StarNet agents.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add androoAGI/starnet --skill changelog-writinggit clone --depth 1 https://github.com/androoAGI/starnetWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/androoagi/starnet/changelog-writing)<a href="https://agentmods.dev/skills/androoagi/starnet/changelog-writing"><img src="https://agentmods.dev/badge/skills/androoagi/starnet/changelog-writing/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/androoagi/starnet/changelog-writing"><img src="https://agentmods.dev/badge/skills/androoagi/starnet/changelog-writing.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00043 | $0.01213 |
| Opus 5.5 | $0.00017 | $0.00485 |
| Sonnet 5.5 | $0.00009 | $0.00243 |
| Haiku 4.5 | $0.00004 | $0.00121 |
Grade A, and why
changelog-writing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 41 lines — stays where its author put it; the contents beside it link to each section on GitHub.
A changelog tells the people who use the software what is different for them. It is not a list of what the developers did. The bar: every line is an effect a user can notice, every line traces to a change you read, and nothing in the range is unaccounted for.
Method
- Pick the road to the history. With a WORKBENCH, git runs through shell.exec;
gh --versionandgh auth statustell you whether the GitHub CLI can add pull request details. With no WORKBENCH, look for the connected GitHub account's tools (tool.search "github") and use the names it returns, never guessed ones. Neither: stop and tell the Commander to place a WORKBENCH or connect GitHub in ABILITIES. - Pin the range. Both ends, as commits:
git tag --sort=-creatordateto see the versions,git rev-parse <ref>to resolve each. "Since the last release" is a guess until you name the tag and the Commander's wording matches it. Write the range and both hashes into the file. - List what is in it.
git log --oneline --no-merges <from>..<to>andgit log --oneline --merges <from>..<to>. Collect pull request numbers from the subjects, thengh pr view <number> --json title,body,author,labelsfor each. Count the commits and pull requests — you reconcile against that count in step 9. - Read the change, not the subject.
git show --stat <hash>and the diff of the files that matter (orgh pr diff <number>). The subject says what the author meant; the diff says what happened. - Flag breaking changes first. Anything that makes a working setup stop working: a removed or renamed option, command or field, a changed default, a raised minimum version, a changed file or data format. Each one gets what breaks, who is affected, and the exact steps to move over. Unsure whether it breaks: ask the Commander; do not quietly leave it out.
- Group by what users notice. Added · Changed · Fixed · Removed · Security. Leave out internal churn: refactors with no change in behaviour, test-only and CI changes, formatting, dependency bumps with no user effect, merge commits, and a change plus its revert inside the same range.
- Rewrite each as one plain sentence about the effect. "Exports no longer drop the last row when the file has no final line break (#412)." — not "fix off-by-one in csv writer". No function or file names, and never a pasted commit subject. End with the pull request or issue number.
- Credit contributors.
git shortlog -sn --no-merges <from>..<to>plus the pull request authors and any co-author lines. Use the name or handle each person uses on the project. Never build a handle from an email address. - Reconcile. Every commit and pull request from step 3 is either behind an entry or on a left-out list with its reason. Every Fixed line points at a diff that shows the fix.
- Write the file. If the project keeps a changelog, fs.read it and match its headings, order and tense; add your section at the top with fs.edit and leave earlier entries untouched. Otherwise fs.write
CHANGELOG-<version>.md: a## <version> — <date>heading, then Breaking changes, Added, Changed, Fixed, Removed, Security, Contributors, with empty sections left out. Re-read it and name it with deliverable_note.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 41 lines · 43 tokens per session scan A 312d601dd2a3
changelog-writing is a skill published in the GitHub repository androoAGI/starnet (1,468 stars, last pushed 3d ago), licensed MIT. It adds 43 tokens to every session and 1,213 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-04.
Other skills, from other repositories
publish-harness
Publish a generated harness to npm — runs the smoke test, signs the witness manifest, and dispatches npm publish --provenance from your tagged release.
release
Cut and publish a full stable NAC release after main, release-PR, and publication CI pass. Use when a maintainer asks for a stable version bump, tag, or GitHub Release. Never use for release candidates; NAC RC releases are automated.
release
Release gentle-pi through GitHub and npm. Trigger: release, publish, npm publish, GitHub release, version bump.
push-ci
Push to remote and monitor CI. Validates branch safety, executes git push WITH explicit user approval, then monitors CI run status via gh CLI. Use when: user says 'push', 'push and watch CI', 'ship it', 'push-ci'. Not for: committing (use /smart-commit), creating PRs (use /create-pr), merging (use /merge-prep).
bump-version
A procedure for changing a package and plugin version in several project files at the same time.
app-release
Use when the user asks to release a new version, ship a build, or publish a Skill Zoo release. Also use when a tag push results in Homebrew 404 errors or missing artifact failures.