bama
BAMA: Build Any Mac App. Agent skills to research, clone, design, build, optimize, and test native macOS apps with Swift and SwiftUI.
Skills, plugins, hooks, and utilities to improve the quality of your coding agent.
SkillsShell · TypeScriptGitHub @CodelyTVOnlineOwner 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
Our agent harness: Skills, plugins, hooks, and utilities to improve the quality of your agent.
Taken from the repository README
Loading the full README.
Read the full README ↗Skills live in .agents/skills/ and are shared across every agent.
Install the skills with the skills.sh installer:
npx skills@latest add codelytv/agent-harness
Pick the skills you want and the coding agents you want to install them on.
Run a skill in your agent, for example /codely-doc-create.
Done. Your agent now follows Codely's conventions.
Add this repository as a plugin marketplace and install the plugin:
/plugin marketplace add CodelyTV/agent-harness
/plugin install codely-skills@codely
Run a skill in Claude Code, for example /codely-doc-create.
Done. Every skill in this repo is now available in Claude Code.
Skills are grouped by category:
| Skill | What it does |
|---|---|
codely-doc-create | Generates convention documentation from the current conversation, turning feedback and corrections into reusable docs. |
Two ways to use codely-doc-create:
/codely-doc-create to turn the corrections the agent received during the session into
a new doc./codely-doc-create <description> to formalize a convention you want to document
upfront.| Skill | What it does |
|---|---|
codely-plan-create | Breaks a task into reviewable phases (vertical slices), defines the public contracts to change, and saves an approved plan file. |
codely-plan-create-subagents | Same planning flow, but delegates the codebase exploration to cheaper subagents running in parallel. |
codely-plan-phase-implement | Executes a single phase of a plan at a time, updates its checkboxes, and stops for review without committing automatically. |
codely-plan-create-github | Same planning flow, but stored as GitHub issues: a parent plan issue and one native sub-issue per phase. |
codely-plan-phase-implement-github | Implements one phase issue at a time on its linked branch and opens a pull request that closes the issue on merge. |
codely-plan-create-gitlab | Same planning flow, but stored as GitLab issues: a parent plan issue and one linked child issue per phase. |
codely-plan-phase-implement-gitlab | Implements one phase issue at a time on its linked branch and opens a merge request that closes the issue on merge. |
Typical flow:
/codely-plan-create <task> (or /codely-plan-create-subagents <task> to delegate the
exploration) to produce a phased plan file under .agents/plans/./codely-plan-phase-implement <plan-file-path>, reviewing and committing after
each one.| Skill | What it does |
|---|---|
codely-openspec-spec-create-from-code | Writes the OpenSpec specs of behaviour that already exists in the code, so the next change can modify or remove it instead of only adding to it. |
Two ways to use codely-openspec-spec-create-from-code:
/codely-openspec-spec-create-from-code <the change you are about to make> to specify the
current behaviour it will touch, then continue with /openspec-explore./codely-openspec-spec-create-from-code <capability> to specify an existing feature, or without
arguments to list the features that still lack a spec.Only intended and verified behaviour reaches the spec: bugs, accidental behaviour and dead code are reported instead.
codely-spec-plan schemaAn OpenSpec custom schema that brings the
codely-plan-create-subagents flow to OpenSpec. Each change produces only two things to review:
plan.md: goal, decisions and one vertical slice phase per part a user can complete a goal with, each with its
contracts and a test strategy that proves it with few tests. Its checkboxes are the task list that
/openspec-apply-change works through one phase per run, committing each phase.Install it in your project and select it in openspec/config.yaml:
npx degit CodelyTV/agent-harness/openspec/schemas/codely-spec-plan openspec/schemas/codely-spec-plan
schema: codely-spec-plan
| Skill | What it does |
|---|---|
codely-git-conventional-commit | Creates a Git commit following the team's Conventional Commits conventions and co-author trailer. |
Run /codely-git-conventional-commit to stage and commit your changes with a conventional message.
Output styles change how the agent writes to you, not how it writes code.
| Plugin | What it does |
|---|---|
ste100 | Answers in ASD-STE100 Simplified Technical English: short sentences, active voice, one word per meaning, no idioms. |
/plugin marketplace add CodelyTV/agent-harness
/plugin install ste100@codely
Then run /config, look for Output Style, and select ASD-STE100.
| Plugin | What it does |
|---|---|
ts7-lsp | TypeScript/JavaScript go-to-definition, references, and diagnostics through the TypeScript 7 native compiler LSP. |
The native compiler (the Go rewrite formerly known as tsgo) indexes large monorepos roughly 10x faster and with far
less CPU than the official typescript-lsp plugin, which spawns typescript-language-server + tsserver.
Requires a TypeScript 7+ tsc binary on PATH (e.g. npm install -g typescript).
/plugin marketplace add CodelyTV/agent-harness
/plugin install ts7-lsp@codely
/plugin disable typescript-lsp@claude-plugins-official
.agents/Each AI agent reads instructions from a different path. Maintaining them separately is error-prone, so this project centralizes everything and uses symlinks so each agent reads from its expected path while the content lives in a single place:
AGENTS.md (one per directory if needed)..agents/skills/ and are shared across agents.make command generates the symlinks each agent expects:| Command | What it does |
|---|---|
make claude-symlinks | Creates a CLAUDE.md → AGENTS.md symlink in every directory that has an AGENTS.md, and links .claude/skills → .agents/skills |
make codex-symlinks | Links .codex/skills → .agents/skills |
make copilot-symlinks | Links .github/skills → .agents/skills |
make cursor-symlinks | Links .cursor/skills → .agents/skills |
make junie-symlinks | Links .junie/skills → .agents/skills |
make opencode-symlinks | Links .opencode/skills → .agents/skills |
export command blocked via hooksThe export command can leak environment variables (tokens, secrets) if an agent runs it. To prevent this, each agent
has a pre-execution hook that blocks any shell command containing export:
| Agent | Hook location | Mechanism |
|---|---|---|
| Claude Code | .claude/settings.json | Uses the if keyword with a glob pattern (Bash(*export*)) to match and block inline |
| Cursor | .cursor/hooks.json + hooks/block-export.sh | Runs a shell script that parses the command via jq and exits with code 2 on match |
| Copilot | .github/hooks/hooks.json + hooks/block-export.sh | Same approach as Cursor, adapted to Copilot's hook input format |
| OpenCode | .opencode/plugins/block-export.ts | A native TypeScript plugin (tool.execute.before) that inspects the command and throws to block |