bama
BAMA: Build Any Mac App. Agent skills to research, clone, design, build, optimize, and test native macOS apps with Swift and SwiftUI.
翻译准备中
Portable, configurable agent skills for reliable everyday work.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Personal skills for Claude Code, Codex, and ~70 other agents.
Twenty-three skills in seven plugins. The plugin name is the command prefix, and each plugin installs on its own — a plugin is a subject, not a bucket.
writing — prose aimed at a person查看完整 README ↗English · 简体中文
Personal skills for Claude Code, Codex, and ~70 other agents.
Twenty-five skills in eight plugins. The plugin name is the command prefix, and each plugin installs on its own — a plugin is a subject, not a bucket.
writing — prose aimed at a person/writing:email) — drafts policy-aware email, or sends exact hashed artefacts and verifies them against the Sent message. Draft is the default, and automated send stays off until a narrow local scope is configured./writing:personal-blog) — researches, outlines, drafts, or edits five kinds of personal blog post while preserving supplied evidence and voice; finished articles arrive as raw Markdown./writing:tempering) — rewrites a blunt or frustrated workplace message into three registers, keeping the request, the date, and the consequence the raw tone was carrying.docs — the face a repository shows a stranger/docs:repo-polish) — writes a repository's README, banner, LICENSE, SECURITY.md, CONTRIBUTING.md, forge description, and topics from what its own files say. Every pass runs unless flags narrow it; it never picks a licence for you, and it prints what it would send to the forge before sending it.dev — the loop around a change/dev:sync) — fetches, prunes, and fast-forwards the base branch, then reports what diverged. It only fast-forwards; a diverged branch is reported, never rebased./dev:ship) — lands the current changes as a merged pull request. A preflight marks each step RUN or SKIP, so a clean tree exits without doing anything, and any step that fails twice stops and asks./dev:cleanup) — removes what shipping left behind: merged branches, their worktrees, and ignored residue a move stranded. Every deletion is verified against the forge, not against git./dev:retitle) — renames agent conversations onto a dated MMDD|TYPE|subject scheme, English by default and Chinese with --lang=zh. Every rename is proposed as a two-column table first; a conversation whose subject cannot be recovered keeps the name it had./dev:reunite) — makes every signed-in account hold the same conversations, byte for byte. The desktop app keeps one sidebar index per account and writes every rename, archive or deletion into the signed-in account's copy only, so signing in elsewhere hides history it never deleted and shows rows you already cleaned up. This aligns every account onto the copy touched last, carries archives and deletions to all of them, verifies the result, and --undo puts back every file it created, overwrote or removed./dev:steward) — sweeps every repository your sessions have touched: fast-forwards each base, removes what merged, keeps titles in scheme, and reports what is ready to merge and which worktrees a live session still occupies. It runs forked and unattended, so a question a pass would have asked lands in the report instead of blocking a run nobody is watching.Enabling the plugin also registers three hooks, no skill involved: the session-naming hook retitle ships, hooks/guard-git.py, which refuses a bare force-push, --no-verify, and gh pr merge --admin before they run, and hooks/orchestrate.py, which — on an orchestrator-class model — tells the main thread to delegate on every prompt and refuses its own writes into the project: Edit, Write, Codex's apply_patch, and the common shell forms of a file write. Subagents and everything outside the repository are left alone. The orchestrator_models option is the list it matches on, fable,gpt-6 by default and empty to switch the hook off. Under Codex this option and retitle's session_title_lang are inert, because codex-cli does not pass CLAUDE_PLUGIN_OPTION_* to plugin hooks; set ORCHESTRATOR_MODELS or SESSION_TITLE_LANG in Codex's own environment instead. In Claude Code, the hook sends authorized changes through the current Task tool (Agent on clients that still use that name) to implementer on Opus, then sends the checks to an independent verifier on Sonnet. In Codex, it uses collaboration.spawn_agent with fork_turns: "none" and explicit configured models: agents.default_subagent_model for implementation, and review_model for verification when set, otherwise the implementation model. Codex hook events do not expose per-invocation profile or -c overrides, so the directive reads these values from the base config rather than promising that an override will be visible.
github-account — the account behind the repositories/github-account:star-lists) — sorts a GitHub account's starred repositories into named star Lists: renames, creates or deletes lists and files every star into one or more of them. Changes go through a plan file that is checked, shown as a diff, backed up and verified after applying; run.sh doctor --install brings gh and Python onto a bare machine, checksum-verified and without root./github-account:star-prune) — finds the stars that are archived, disabled, deprecated or dormant and says why each was flagged; unstars only what you confirm, after backing up every removed star and its lists, and restore re-stars them. Dormant repositories are listed but kept by default, since finished is not the same as dead.brand — visual identity assets/brand:logo-banner) — creates confirmed raster logos, icons, favicons, and light/dark social banners through ChatGPT Image; style comes before generation.photography — source-faithful comparison boards/photography:photo-abstract-editorial-native) — combines an original photograph with separately supplied lower artwork without stretch or upscale, then records an auditable source manifest.astrology — positions computed from birth data/astrology:synastry) — validates two supplied birth records and writes one uncertainty-aware JSON v2 chart artifact with recorded backend provenance. It is privacy-minimal by default; only an explicitly requested archival mode retains supplied local birth and location provenance. Exact records can include house overlays, then it starts the separate reading automatically./astrology:synastry-reading) — privately validates a JSON v2 chart artifact before writing an adaptive, evidence-linked Markdown report with only explicitly requested relationship domains./astrology:natal-chart) — computes one person's natal chart — placements, angles, houses, aspects, sect and the classical lots — and refuses an inexact birth time rather than filling it in./astrology:natal-reading) — interprets a computed natal chart as a reader-first report with a separate audit artifact, weighting every claim by its orb.chinese-metaphysics — four pillars and twelve palaces computed from the Chinese calendar/chinese-metaphysics:bazi-chart) — computes one reusable BaZi chart as canonical JSON and data-only Markdown./chinese-metaphysics:bazi-reading) — interprets a verified single-person chart as a reader-first natal report with a separate audit artifact./chinese-metaphysics:bazi-compatibility) — compares two charts with auditable directional evidence and transparent scores./chinese-metaphysics:bazi-compatibility-reading) — explains a completed comparison as a reader report with separate evidence, without altering its source data or model results./chinese-metaphysics:ziwei-chart) — places one twelve-palace Zi Wei chart as canonical JSON and data-only Markdown, and refuses to run without a stated gender./chinese-metaphysics:ziwei-reading) — interprets a placed Zi Wei chart as a reader-first report with a separate audit artifact, and an ink-wash poster only when asked./chinese-metaphysics:bazi-ziwei-cross) — reads one person's BaZi and Zi Wei charts against each other, recording contradictions instead of averaging them into a score.Every skill here computes a static chart only. None of them produces 流年, annual or monthly transformations, transits, dated events, or a forecast of any kind — asking one for "how will this year go" gets a statement of that boundary, not an answer. This is deliberate: the calculators are exact about positions, and a forecast layer would have to be invented on top of them rather than derived from them.
claude plugin marketplace add Misoto22/skills
claude plugin install all@misoto22
all carries no skills. It depends on the seven plugins above and the six bookmarks below, so one command installs everything. To take a subject on its own, name it instead — claude plugin install writing@misoto22.
[!NOTE] All four routes below are exercised by CI on every push, against the tree the installer actually produces rather than against this repository. What CI does not install is the bookmarks: they are other people's repositories, and a forced push in one of them is not this repository's build to fail. The list
alldepends on is checked against the marketplace on every run.
codex plugin marketplace add https://github.com/Misoto22/skills
codex plugin add all@misoto22
Every plugin here ships a second manifest, plugins/<name>/plugin.json, in the Agent Plugins format Amazon, Cursor, Microsoft, OpenAI and Vercel published in August 2026. Point a client that implements it at the plugin directory; the skills/ tree beside it is the same one Claude Code reads.
Two manifests rather than one because neither reader sees the other's: Claude Code requires a skills array that the Agent Plugins schema rejects, and that schema is closed. The validator asserts the fields they share agree, and one bump moves both.
all has no equivalent here. It is nothing but a dependency list, and the format defines no dependencies — the one-command install stays a Claude Code and Codex route.
npx skills add Misoto22/skills
Asks which skills, which agents, project or global, and symlink or copy. Symlinked installs track this repository; copies do not, so rerun the command to update one.
To skip the questions — in CI, or when you already know — pin the version and answer them as flags:
npx --yes [email protected] add Misoto22/skills --agent '*' --skill '*'
Narrow it with --skill email --agent cursor.
Marketplace sync is an organization feature, so on a personal plan these two take a file. Download the .skill archives from the latest release and upload them in the skills UI.
Every release also carries SHA256SUMS and a signed build attestation, since this route is a download rather than a sync:
sha256sum -c SHA256SUMS
gh attestation verify email.skill --repo Misoto22/skills
Substitute the clone's path for Misoto22/skills in any command above.
Maintainers who want editable installs rather than copies can run bash scripts/link-skills.sh — it links published skill directories only, never overwrites a real file or directory, and stops on conflicts.
This repository is listed on skills.sh, which reads skills.sh.json and offers the same skills grouped by plugin.
The rest index Agent Skills repositories at large. None of them carry this one — they are here for the skills it does not cover:
/api/v1/skills/search.Six more plugins install from this marketplace, and none of them is mine. Nothing is vendored: each entry points at its owner's repository, pinned to one commit, and installs from there. all@misoto22 above pulls in every one of them; these are the names to use when you want a single one.
claude plugin install obsidian@misoto22
The headings are the category each entry declares, so /plugin groups them the same way while browsing. The vocabulary is Anthropic's, which sorts these alongside every other marketplace rather than into a category of one.
developmentcodex@misoto22) — hands a stuck task or a second review pass to Codex without leaving Claude Code.everything-claude-code@misoto22) — one very large plugin: agents, skills, and legacy command shims collected in bulk.mattpocock-skills@misoto22) — Matt Pocock's engineering skills. grill-me is the one worth arriving for: it interviews you about a plan until every branch of the design tree is resolved. The other twenty-four arrive with it — the plugin is the unit its owner publishes, and nothing here is vendored.productivityi-have-adhd@misoto22) — shapes every reply to lead with the next action instead of the preamble.obsidian@misoto22) — an Obsidian vault from the command line, including Bases, Canvas, and plugin debugging.monitoringwarp@misoto22) — native Warp notifications when a run finishes or stops to ask.Claude Code and Codex both install these. npx skills add and the skills.sh listing do not show them at all: they clone this repository and read the skills on disk, so a plugin that lives in someone else's repository is not theirs to offer. Those two routes stay at the twenty skills above.
[!NOTE] The pinned commit is the point. A bookmark tracking a branch would install whatever its repository holds at install time, so upstream — or anyone who takes it over — could change what these commands install without touching this repository. Moving a bookmark forward is an edit to
shahere, reviewed like any other. Nothing inplugins/is affected, and neither is CI: the install workflow derives its list from the tree on disk.
[!IMPORTANT] Every installer copies a plugin — or, on most agents, a single skill directory — and nothing above it. A reference that climbs out with
../resolves in this repository and dangles everywhere else, and only Claude Code expands${CLAUDE_*}. Both forms are rejected in published skill content.
Rules shared by three skills live in plugins/<plugin>/shared/, the only copy anyone edits. scripts/sync-shared.py vendors it into each skill and commits the copies, so a plain clone installs correctly; the validator, the packager, and CI all fail on drift. scripts/verify-install.py <dir> asserts the guarantee against a real installed tree — point it at a plugin cache, an ~/.agents/skills copy, or an unpacked .skill.
flowchart LR
M["misoto22<br/>marketplace"] --> W["writing"] & D["docs"] & V["dev"] & A["astrology"]
W --> E["/writing:email"] & PB["/writing:personal-blog"] & T["/writing:tempering"]
D --> R["/docs:repo-polish"]
V --> SY["/dev:sync"] & SH["/dev:ship"] & CL["/dev:cleanup"] & RT["/dev:retitle"] & ST["/dev:steward"]
A --> SN["/astrology:synastry"] & SR["/astrology:synastry-reading"]
SW(["writing/shared<br/>tone · format"]) -.vendored.-> E & PB & T
SV(["dev/shared<br/>git"]) -.vendored.-> SY & SH & CL & ST
classDef m fill:#0969da,stroke:#0969da,color:#fff
classDef p fill:#1f883d,stroke:#1f883d,color:#fff
classDef s fill:#eaeef2,stroke:#8c959f,color:#1f2328
class M m
class W,D,V,A p
class E,PB,T,R,SY,SH,CL,RT,ST,SN,SR,SW,SV s
.claude-plugin/marketplace.json Marketplace: misoto22
plugins/<plugin>/
├── .claude-plugin/plugin.json Plugin manifest → /<plugin>:*
├── agents/ Subagents its hooks dispatch to
├── hooks/ Hooks registered the moment the plugin is enabled
├── shared/ Rules its skills read, the only copy anyone edits
└── skills/<skill>/ SKILL.md, references/, agents/, a vendored shared/
scripts/ Validation, packaging, vendoring, install verification
tests/ evals/ docs/ Contract tests, per-skill trigger cases, guides
This repository holds no transport credential and implements no SMTP. The email skill validates and hashes artefacts; sending them is the caller's transport.
git clone https://github.com/Misoto22/skills.git
cd skills
python3 scripts/validate-repository.py # metadata, registries, skills, then 214 tests
Python 3.11+ and Bash are the whole toolchain — no package manager, no lockfile, no build step. python3 scripts/new-skill.py <plugin> <skill> scaffolds a skill and registers it everywhere the validator looks.
CONTRIBUTING.md has the rest: the checks CI runs, what belongs in a description, and how a release is cut. Conventions are in AGENTS.md, releases in CHANGELOG.md, and configuring the email skill in docs/email.md.