π€ Wolfstar Project's agent kit for Nuxt and TypeScript work. 40 Skills, 8 hooks, and a service that works on GitHub repositories autonomously.
It installs as a Claude Code plugin. Codex reads the same directory and picks up the Skills.
Maintained by Wolfstar Project. Contact: contact@wolfstar.rocks.
Important
These are Wolfstar Project's defaults, not general advice. Fork the project and adapt them to your needs.
- π¨ Nuxt frontends: Build on Nuxt UI v4+, then review the result by running it, not by reading it
- π§ Architecture review: Separate rubrics for a Nuxt app and a plain TypeScript package
- π¦ Package conformance: One pass over workspace catalogs, Oxlint, Oxfmt, Vitest, CI, and playgrounds
- βοΈ Writing: PRs, changelogs, tweets. Plus a pass that strips the AI tells back out
- π Triage: Issues, the PR backlog, Sentry, and the inbox
- πͺ Hooks: pnpm only. Lint on save. Checks before every push
- π€ GitHub agent: A local service that reads and validates issues, implements fixes, and reviews PRs while I do something else
My main checkout stays clean, I never work in it. Every task gets its own worktree with worktrunk. The agent works in there and it can't commit or push until check passes, so lint, typecheck and tests. Then the pr Skill opens the PR. The hooks block the command if any of that gets skipped, which is good, because I skip things when I'm tired.
The other part runs on its own. The service checks configured repositories for issues and pull requests that have been waiting. It reads each issue and validates it against the code before deciding whether it is ready to implement or needs more information or a spec. Once ready, and approved when required, the agent implements the fix, verifies it, and opens a pull request. Pull requests go through a read-only review. If the reviewer finds something real, a second agent does the fix, then the whole thing gets reviewed again.
The bit I still have to do is read all of it. That's the slow part, not the agents. So I make them show me something first: a test that was failing and now passes, a typecheck, or for frontend work the page running in a browser. Small stuff like dependency bumps merges without me. If there's a real decision in it, it waits.
/plugin marketplace add wolfstar-project/wolfstar-agent-kit
/plugin install wolfstar-agent-kitInstall a local checkout instead when you are changing the plugin:
/plugin install /path/to/wolfstar-agent-kitCodex installs the nested plugin directory, wolfstar-agent-kit/.
mkdir -p ~/.agents/plugins ~/plugins
ln -sfnT "$PWD/wolfstar-agent-kit" ~/plugins/wolfstar-agent-kit
codex plugin add wolfstar-agent-kit@personalPersonal marketplace config
Create ~/.agents/plugins/marketplace.json if it does not exist:
{
"name": "personal",
"interface": {
"displayName": "Personal"
},
"plugins": [
{
"name": "wolfstar-agent-kit",
"source": {
"source": "local",
"path": "./plugins/wolfstar-agent-kit"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
}
]
}Validate before you reinstall:
claude plugin validate ~/plugins/wolfstar-agent-kit
jq empty ~/plugins/wolfstar-agent-kit/hooks/codex.json
codex plugin add wolfstar-agent-kit@personalStart a new Codex thread after a reinstall, otherwise the new Skills stay unloaded.
Personal Skills live in wolfstar-agent-kit/skills/.
pr-evidence, review-findings, review-replies, and the merge cleanup in take-ownership adapt Aref Mozafari's MIT-licensed pr-evidence, review-findings, review-replies, and post-merge-cleanup.
Portable Skills come from Brundlefly and Ripast.
The Ripast skill lives in Ripast's repository.
The declaration pins its source commit.
Run pnpm sync:skills to install the declared Skills through skilld.
Use a skilld CLI that supports skilld sync.
Brundlefly delivery uses verified skilld artifacts from its public repository.
The command preserves unrelated installed Skills and refuses name conflicts.
It adopts existing links only when their files match the pinned source.
Run pnpm check:skills to check installed content, targets, and required Skills.
Skills reach Codex, Claude Code, and OpenCode through the same declaration.
The dedicated store lives at ~/.local/share/wolfstar-agent-kit/skilld.
The existing skilld store keeps its files.
Service updates run the same restore before starting workers on either host.
| Brundlefly Skill | Use |
|---|---|
im-part-human |
Edit prose while preserving facts and voice. Replaces im-not-a-fly, write-human, and humanize-writing. |
technical-guide |
Research and verify individual technical articles. |
release-notes |
Write release notes that help readers decide whether to upgrade and understand required changes. |
im-not-a-human |
Compress agent text while preserving its meaning. Replaces im-a-fly and agentify-text. |
pull-request-summary |
Check PR description text before personal pr publishes it. |
glossary |
Create or audit GLOSSARY.md for names and vocabulary drift. |
copywriting |
Create or audit COPY.md for voice and canonical wording. |
skilld.json declares exact sources, Agent targets, and required Skills.
Personal pr calls Brundlefly pull-request-summary for its description gate.
Personal pr owns Hooks, publication, Review, and Service policy.
content-refresh coordinates collections and uses technical-guide for each technical article.
Brundlefly's release-notes owns release text and its evidence.
The declaration installs it alongside the other portable writing Skills.
The personal kit does not bundle this Skill in its marketplace package. Run pnpm sync:skills from this checkout.
| Skill | Description |
|---|---|
adversarial-review |
Review one PR adversarially, hand defects to Repair, publish the bot status |
agent-feedback |
Improve one Agent Skill from explicit Review feedback |
brand-lab |
Compare brand directions for a logo and UI motifs on one private page |
browser |
Select Chrome identities, use prompt-free debugging, and clean up task tabs |
content-refresh |
Refresh articles through verified sources, reviewed briefs, screenshots, and publication checks |
email-triage |
Review inbox email with Himalaya and propose actions |
email-usage |
Choose email addresses, Himalaya accounts, and mail permissions |
wolfstar-github-agent |
Drive or diagnose the local GitHub service |
i-dont-know-just-keep-working |
Find related gaps, bugs, and improvements, then rank next steps by impact, effort, and confidence |
improve-ts-pkg-architecture |
Find architecture improvements in a TypeScript package |
issue-triage |
Rank open issues by impact and difficulty |
nuxt-frontend-design |
Build and polish Nuxt UI v4+ pages and design systems |
nuxt-frontend-review |
Run a Nuxt frontend and check it against its contract |
nuxt-improve-codebase-architecture |
Find Nuxt-native architecture improvements |
nuxt-4-minors-migration |
Move a Nuxt 4 site to the latest 4.x release with compatibility version 5, and migrate what the minors changed |
pkg-conform |
Conform or scaffold a TypeScript package or Nuxt module |
plan-ceo |
Challenge scope and strategy before anyone writes code |
pr |
Create or update a pull request from current work |
pr-evidence |
Show before and after screenshots or a focused snippet, with optional manual testing instructions |
pr-lens |
Draw a change as animated architecture and data-flow diagrams with PR Lens |
pr-triage |
Repair, rank, and order the owned PR backlog |
close-off |
Finish loose ends, verify delivery, clean task-owned Git state |
wolfstar-announcements |
Write release, stage, and hotfix announcements for Discord and the website |
daily-checkin |
Run nuxt-checkin and interpret site prompt items |
dependency-updates |
Attempt weekly dependency updates, including majors, in one pull request |
ci-review |
Review CI warnings and errors, then propose verified repairs |
review-findings |
Review a diff inline and report findings with comments ready to paste |
review-replies |
Answer human review threads on your own PR one at a time |
seo-review |
Triage a Site's NuxtSEO actions and repair the ones the code owns |
vitals-review |
File a Site's poor field vitals and persistent lab drops from NuxtSEO, then repair them |
sentry-checkin |
Triage open Sentry issues and repair them with verified PRs |
take-ownership |
Finish delivery, reconcile loose ends, and clean task-owned Git state |
ts-design-patterns |
Apply the Effect-inspired TypeScript design principles |
tweet |
Find tweet ideas, plan launch posts, and draft tweets with visuals |
unit-tests |
Write or review unit tests through exported behavior |
Claude Code reads the hooks from .claude-plugin/plugin.json.
That manifest is the only place a hook is registered. The install script, the drift
check, and the opencode plugin all derive their lists from it.
Codex reads hooks/codex.json through
.codex-plugin/plugin.json.
| Event | Hook | Description |
|---|---|---|
| SessionStart | session-start.sh |
Detect the project type, print the Git state |
| PreToolUse (Bash) | pnpm-only.sh |
Block npm, yarn, and npx |
| PreToolUse (Bash) | wt-only.sh |
Keep every worktree owned by wt |
| PreToolUse (Bash) | himalaya-read-only.sh |
Keep every agent's email access read only |
| PreToolUse (Bash) | pr-skill-only.sh |
Require the pr Skill to open a PR or edit its description |
| PreToolUse (Bash) | merged-branch-guard.sh |
Block commits on an already merged branch |
| PreToolUse (Bash) | pre-commit-push.sh |
Run check before a commit, push, or PR |
| PostToolUse (Write, Edit) | oxlint.sh |
Autofix lint and format the file that changed |
| PostToolUse (Bash) | command-not-found.sh |
Recover from a missing shell command |
Two more scripts run outside the hook events:
check.sh runs the configured project
checks, and check-config.sh reads
the per-project config the others source.
Every hook has a PowerShell 7 twin beside it, a .ps1 with the same name.
plugin.windows.json
registers them in the same order. A test runs each pair over one command list and
fails when the answers differ.
In PowerShell 7, run pnpm sync:context. It copies the hooks and that manifest to
~/.local/share/wolfstar-agent-kit, and the opencode plugin to
~/.config/opencode/plugins. opencode then runs the .ps1 hooks in pwsh.
For Claude Code, install the directory as a plugin:
/plugin install $HOME/.local/share/wolfstar-agent-kitCodex has no Windows hooks yet. A hook change is two edits, the .sh and the .ps1.
Turn a hook off for one project with .claude/hooks.json:
{
"disabled": ["oxlint", "oxfmt", "pre-commit-push"]
}packages/wolfstar-github-agent is a
local service. It watches my repositories, runs Agents on the issues and pull
requests it finds, and shows the result on a dashboard. Reviews are read only,
and every material finding goes to a fresh Repair Agent, so nothing merges on
the reviewer's own word.
pnpm service:status # Show the service state
pnpm service:update # Rebuild and restartpackages/octorun consumes the standalone Octorun runtime for this repository.
It runs automatic change summaries and explicit @octorun review commands with the existing App and Claude subscription.
Run pnpm octorun doctor, then pnpm octorun serve for continuous processing.
The Skills defer to these when the rules get long:
- Worktree isolation, how
wtowns every worktree - Auto-merge, what the agent may merge without me
- Code comments, when a comment earns its line
Public GitHub reads covers agent-gh on Linux and in Windows PowerShell 7.
Design notes for the service live in docs/plans/.
No build step for the plugin itself: bash hooks plus
markdown Skills. The service in packages/ does
build.
pnpm install
check # Parallel lint, typecheck, and test
pnpm lint:fix # Oxlint autofix + Oxfmt
pnpm check:context # Check the shared agent context for drift
pnpm release patch # Bump the version, tag it, push itLicensed under the MIT license.