bama
BAMA: Build Any Mac App. Agent skills to research, clone, design, build, optimize, and test native macOS apps with Swift and SwiftUI.
Skills for Claude Code that stop your agent from breaking production.
SkillsJavaScriptGitHub @roych28OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Skills for Claude Code that stop your agent from breaking production: post-deploy smoke, prove it's live, safe git across sessions, secret guard, permission unblock.
Taken from the repository README
Loading the full README.
Read the full README ↗Skills for Claude Code that stop your agent from breaking production.
Your agent writes the code, pushes it, and says "deployed, all good". deploysmoke makes it prove that: in a real browser, on the live URL, against the commit that is actually being served, without a secret in the diff and without trampling the session next door.
Five free skills, MIT licensed. Each one ships a small, dependency-light script and a test that proves it catches the failure it exists for.
| Skill | Catches |
|---|---|
| post-deploy-smoke | Opens every changed page on the live URL in clean Chromium (1440) and WebKit/Safari (390). Fails on any 4xx/5xx asset, JS errors, images that loaded but never decoded or sit at opacity: 0, reveal-on-scroll content that never revealed, buttons cut off at the phone edge, sideways scroll. |
| prove-its-live | Never "it's live" without evidence. Reads the commit production actually serves (Vercel API via your CLI login, a /version endpoint, or any platform's SHA) and compares it with what you pushed: match, behind, ahead, diverged, or unverifiable. Flags newer deploys that failed. Can move a production git tag. |
| multi-session-git | Parallel sessions in one repo. Checks the real branch before every commit, sends you to your own worktree instead of checkout, stages explicit files only, and verifies on the server that your commit landed after every push. |
| secret-guard | Offline scan of the staged diff, a push range, files or command output for AWS, Stripe live, GitHub, OpenAI, Anthropic, Slack, Google and npm keys, private keys, URLs with passwords, .env files and high-entropy secret assignments. Findings are always masked. Optional pre-commit hook. |
| permission-unblock | When a tool call is refused, names the gate (missing allow rule, your own "no", a deny rule, a hook, or the auto-mode classifier) and prints the narrowest rule for the project's .claude/settings.json, in the current permission syntax. Or tells you why no rule should be added. |
As a Claude Code plugin (all five skills, updates through the marketplace):
/plugin marketplace add roych28/deploysmoke
/plugin install deploysmoke@deploysmoke
Skills then appear as /deploysmoke:post-deploy-smoke, /deploysmoke:prove-its-live, and so on, and Claude
uses them on its own when the situation matches.
With the skills CLI (skills.sh, works with Claude Code and other agents):
npx skills add roych28/deploysmoke
Browsers for the smoke test (once per machine, in the project you check or anywhere):
npm install --save-dev playwright
npx playwright install chromium webkit
The other four skills need only Node 18+ and git. If Playwright is missing, the smoke test exits with a clear message instead of pretending it passed.
Every skill here comes from a production incident that a green build did not catch:
git push origin main printed success and pushed nothing, and the agent reported
"live in production".opacity: 0. curl was happy. Users saw a blank page.git add -A swept a .env into a public repo. Deleting it in the next commit
does not un-leak it.The rule behind all of them: pushed is not deployed, deployed is not live, and 200 from the server is not "the image is visible".
examples/broken-site plants five bugs (a 404 image, a JS error, an image that returns 200 but does not
decode, a reveal block that never reveals, a CTA cut off at 390px). examples/fixed-site is the fixed copy.
git clone https://github.com/roych28/deploysmoke && cd deploysmoke
npm install && npx playwright install chromium webkit
npx serve examples -l 5173
node skills/post-deploy-smoke/smoke.mjs http://localhost:5173/broken-site/
node skills/post-deploy-smoke/smoke.mjs http://localhost:5173/fixed-site/
npm test
.claude-plugin/marketplace.json marketplace "deploysmoke" with one plugin at the repo root
.claude-plugin/plugin.json plugin manifest
skills/<name>/SKILL.md one folder per skill, with its script next to it
examples/ broken-site and fixed-site fixtures
test/ node:test suites for every skill (npm test)
The free skills catch the failures. deploysmoke Pro stops them from shipping at all:
MIT, see LICENSE. Built for Claude Code. Not affiliated with or endorsed by Anthropic.