Treat your AI skills like software — with stable interfaces, platform overrides, and validation that prevents the repo from rotting.
sKill Bill is a portable collection of 44 AI skills for code review, feature implementation, and developer tooling. One repo, synced to every supported agent. Currently strongest for Kotlin, Android/KMP, Kotlin backend/server, PHP backends, and Go backends/services.
Most prompt or skill repos degrade over time:
- names drift
- overlapping skills appear
- stack-specific behavior leaks into generic prompts
- different agents get different copies
sKill Bill treats skills more like software:
- stable base capabilities
- platform-specific overrides
- shared routing logic
- CI-enforced naming and structure
- one repo synced to every supported agent
You interact through a handful of stable base commands. They auto-detect your stack and route to the right specialists.
Code review — one command, stack-aware specialist reviews:
/bill-code-review
Detected stack: kotlin
Routed to: bill-kotlin-code-review
Specialist reviews: architecture, platform-correctness, testing
[ARCHITECTURE]
P0: Shared state mutation not protected by synchronization
[PLATFORM CORRECTNESS]
P1: ViewModel scope used outside main thread context
[TESTING]
Minor: Test coverage for error path incomplete
Feature implementation — end-to-end from design doc to PR:
/bill-feature-implement
1. Collects design doc, creates acceptance criteria
2. Creates branch, plans implementation tasks
3. Implements each task atomically
4. Runs /bill-code-review (auto-routed to your stack)
5. Completeness audit against acceptance criteria
6. Runs /bill-quality-check (auto-routed)
7. Generates PR description
Quality check — auto-routed to your stack's toolchain:
/bill-quality-check
Detected stack: kotlin
Routed to: bill-kotlin-quality-check
Running ./gradlew check...
Build: PASS
Tests: 247 passed
Lint: PASS
A single feature-implement run chains 10-12 skill invocations:
/bill-feature-implement
├── plan + acceptance criteria
├── implementation (atomic tasks)
├── /bill-code-review (auto-routed)
│ └── e.g. bill-kotlin-code-review
│ ├── architecture (subagent)
│ ├── platform-correctness (subagent)
│ ├── security (subagent, if applicable)
│ └── testing (subagent, if applicable)
├── /bill-quality-check (auto-routed)
│ └── e.g. bill-kotlin-quality-check
├── completeness audit
└── /bill-pr-description
Base entry points stay stable for users:
/bill-code-reviewroutes tobill-kotlin-code-review|bill-backend-kotlin-code-review|bill-kmp-code-review|bill-php-code-review|bill-go-code-review/bill-quality-checkroutes to the matching stack-specific quality checker/bill-feature-implementorchestrates the full workflow
| Agent | Install path |
|---|---|
| GitHub Copilot | ~/.copilot/skills/ |
| Claude Code | ~/.claude/commands/ |
| GLM | ~/.glm/commands/ |
| OpenAI Codex | ~/.codex/skills/ or ~/.agents/skills/ |
The installer links all selected agents to the same repo so updates stay in sync.
git clone https://github.com/Sermilion/skill-bill.git ~/Development/skill-bill
cd ~/Development/skill-bill
chmod +x install.sh
./install.shIf you want a stable install target instead of tracking main, clone a release tag and install from that checkout:
TAG=v0.x.y
git clone --branch "$TAG" --depth 1 https://github.com/Sermilion/skill-bill.git ~/Development/skill-bill
cd ~/Development/skill-bill
./install.shThe installer first asks which agent targets to install to. You can choose one or more entries, including all:
all
It then shows the available platform packages and asks which ones to install. Base skills in skills/base/ are always installed; platform packages are installed only when selected.
Available options are shown as separate entries:
Kotlin backend
Kotlin
KMP
PHP
Go
all
Example platform selections:
Kotlin backend, Kotlin, KMP
PHP
Go
all
Each installer run replaces the existing Skill Bill links and reinstalls only the agent and platform selections from that run.
The installer always removes existing Skill Bill links before reinstalling the selected agents and platforms.
To remove Skill Bill skill symlinks from the supported agent install paths:
chmod +x uninstall.sh
./uninstall.shThe uninstaller is idempotent. It removes current Skill Bill skill names plus known legacy install names when they are present as symlinks, and skips non-symlink paths.
| Skill | Purpose |
|---|---|
/bill-code-review |
Shared review router |
/bill-kotlin-code-review |
Kotlin baseline review orchestrator |
/bill-backend-kotlin-code-review |
Backend Kotlin review override |
/bill-kmp-code-review |
Android/KMP review override |
/bill-kotlin-code-review-architecture |
Kotlin architecture and boundaries review |
/bill-kotlin-code-review-platform-correctness |
Kotlin lifecycle, coroutine, threading, and logic review |
/bill-kotlin-code-review-performance |
Kotlin performance review |
/bill-kotlin-code-review-security |
Kotlin security review |
/bill-kotlin-code-review-testing |
Kotlin test quality review |
/bill-kmp-code-review-ui |
KMP UI review |
/bill-kmp-code-review-ux-accessibility |
KMP UX and accessibility review |
/bill-backend-kotlin-code-review-api-contracts |
Backend API contract review |
/bill-backend-kotlin-code-review-persistence |
Backend persistence and migration review |
/bill-backend-kotlin-code-review-reliability |
Backend reliability and observability review |
/bill-php-code-review |
PHP backend review orchestrator |
/bill-php-code-review-architecture |
PHP architecture and boundary review |
/bill-php-code-review-platform-correctness |
PHP correctness, ordering, retry, and stale-state review |
/bill-php-code-review-api-contracts |
PHP API contract and serialization review |
/bill-php-code-review-persistence |
PHP persistence, transaction, and migration review |
/bill-php-code-review-reliability |
PHP reliability, retry, and observability review |
/bill-php-code-review-security |
PHP security review |
/bill-php-code-review-performance |
PHP performance review |
/bill-php-code-review-testing |
PHP test quality review |
/bill-go-code-review |
Go backend/service review orchestrator |
/bill-go-code-review-architecture |
Go architecture and package-boundary review |
/bill-go-code-review-platform-correctness |
Go correctness, goroutine safety, and context review |
/bill-go-code-review-api-contracts |
Go API contract and serialization review |
/bill-go-code-review-persistence |
Go persistence, transaction, and migration review |
/bill-go-code-review-reliability |
Go reliability, timeout, and observability review |
/bill-go-code-review-security |
Go security review |
/bill-go-code-review-performance |
Go performance review |
/bill-go-code-review-testing |
Go test quality review |
| Skill | Purpose |
|---|---|
/bill-feature-implement |
Spec-to-verified implementation workflow |
/bill-feature-verify |
Verify a PR against a task spec |
/bill-feature-guard |
Add feature-flag rollout safety |
/bill-feature-guard-cleanup |
Remove feature flags after rollout |
| Skill | Purpose |
|---|---|
/bill-quality-check |
Shared quality-check router |
/bill-kotlin-quality-check |
Gradle/Kotlin quality-check implementation |
/bill-php-quality-check |
PHP quality-check implementation |
/bill-go-quality-check |
Go quality-check implementation |
/bill-boundary-history |
Maintain agent/history.md at module/package/area boundaries |
/bill-unit-test-value-check |
Audit unit tests for real value |
/bill-pr-description |
Generate PR title, description, and QA steps |
/bill-new-skill-all-agents |
Create a new skill and sync it to all agents |
Use AGENTS.md for repo-wide guidance.
Use .agents/skill-overrides.md for per-skill customization without editing this plugin. The file is intentionally strict:
- first line must be
# Skill Overrides - each section must be
## <existing-skill-name> - each section body must be a bullet list
- freeform text outside sections is invalid
Precedence:
- matching
.agents/skill-overrides.mdsection AGENTS.md- built-in skill defaults
Example:
# Skill Overrides
## bill-kotlin-quality-check
- Treat warnings as blocking work.
## bill-pr-description
- Keep QA steps concise.The repo is organized around a strict three-layer model:
skills/base/— canonical, user-facing capabilities such asbill-code-review,bill-quality-check, andbill-feature-implementskills/<platform>/— platform-specific overrides and approved subskillsorchestration/— maintainer-facing reference snapshots for shared routing, review, and delegation contracts
Think of it as markdown with inheritance:
- base skills define the stable contracts
- platform skills specialize them
- orchestration snapshots document the shared routing, review, and delegation logic that runtime-facing skills can reference via sibling supporting files in the same skill directory
If you only remember four things, remember these:
- Users enter through stable skills in
skills/base/. - Platform depth lives in
skills/<platform>/. - Shared logic is documented in
orchestration/, but runtimes consume it through sibling sidecars such asstack-routing.md,review-orchestrator.md, andreview-delegation.md. - Topology changes should start in
scripts/skill_repo_contracts.py, then flow into skills, tests, and docs.
That last file is the canonical map for:
- which shared playbook snapshots exist
- which runtime-facing skills require which sidecars
- which review skills are governed by the shared review/delegation contract
Current platform packages:
kotlinbackend-kotlinkmpphpgo
Naming is intentionally strict:
- base skills may use any neutral
bill-<capability>name - platform overrides must use
bill-<platform>-<base-capability> - deeper specialization is only allowed for code review:
bill-<platform>-code-review-<area>
Approved code-review areas:
architectureperformanceplatform-correctnesssecuritytestingapi-contractspersistencereliabilityuiux-accessibility
That means new stacks can extend the system, but they cannot invent random new naming shapes without intentionally updating the validator and docs.
This repo validates both content quality and taxonomy rules.
Local checks:
python3 -m unittest discover -s tests
npx --yes agnix --strict .
python3 scripts/validate_agent_configs.pyCI runs the same checks.
Skill Bill uses tag-driven GitHub Releases.
- stable releases use SemVer tags such as
v0.4.0 - prereleases use SemVer prerelease tags such as
v0.5.0-rc.1 - pushing a release tag reruns validation and publishes a GitHub Release with generated notes
See RELEASING.md for the maintainer checklist and versioning policy.
The validator enforces:
- package location rules
- naming rules
- README catalog drift
- cross-skill references
- required routing playbook references
- plugin metadata
Preferred path:
- run
/bill-new-skill-all-agents
Manual path:
- create
skills/<package>/<skill-name>/SKILL.md - follow the naming rules above
- run
./install.sh - update docs and validation if you intentionally add a new package or naming shape
MIT — free to use, copy, modify, merge, publish, distribute, sublicense, and sell, provided the license notice is retained.