A Claude Code marketplace with reusable agents and skills, one plugin per context — the same idea as KingsScript layers, using Claude Code's own plugin system.
- Improve reuse: agents and skills written once, installed on every machine.
- Improve focus: each context (generic, a stack, a company) is a plugin enabled only where it applies.
- Plugins
- Install
- Global instructions
- Project conventions
- Structure
- Adding to a plugin
- Validating
- Author
| Plugin | Scope | Contents |
|---|---|---|
kings-core |
Any project | See below |
kings-swift |
Swift and iOS projects | See below |
kings-core:
| Component | Type | What it does |
|---|---|---|
docs-sync |
Agent | Keeps the project's living docs in sync with what a session delivered |
style-review |
Agent | Reviews the diff against the written standard — reports, never edits |
pre-review |
Skill | The cycle around style-review before human review |
code-review-analysis |
Skill | A round of PR review comments, recorded in CR-<PR>.md |
new-demand |
Skill | Opens a demand: inputs, context, doc with Timeline, plan |
readme-style |
Skill | README standard |
fig-layout |
Skill | Reads a Figma .fig with kings fig-parse |
kings-swift — reads the named paths SWIFT_STYLE_GUIDE and SWIFT_UNIT_TESTS, in the
named path order: the machine's override is the standard, the project's
conventions complement it, the default fills what's left:
| Component | Type | What it does |
|---|---|---|
unit-tests |
Skill | Writes and reviews unit tests: map, three steps, double check, when to run |
swift-code-style |
Skill | Applies the code style and screen structure while writing Swift |
Company-specific plugins live in their own private marketplaces, installed next to this one.
# Add the marketplace (or a local clone, to edit plugins in place)
claude plugin marketplace add Kings-Platform/KingsAI
# Install a plugin — user scope: every project on this machine
claude plugin install kings-core@kingsai --scope user| Scope | Where it applies | Setting |
|---|---|---|
user |
Every project on the machine | ~/.claude/settings.json |
project |
Everyone in a repo | <repo>/.claude/settings.json |
local |
Only you, in a repo | <repo>/.claude/settings.local.json |
Components are namespaced by plugin: the agent is kings-core:docs-sync.
Installed plugins are copied to a cache, pinned to a commit — editing the source changes nothing until an update:
# From GitHub: fetch the marketplace, then update the plugin
claude plugin marketplace update kingsai
claude plugin update kings-core@kingsai
# From a local clone: commit, then update — it takes the commit checked out, even on a branch
claude plugin update kings-core@kingsaiWith KingsScript, kings ai-update does all of it,
and its daily checkup runs it by itself — skipping a local clone that isn't clean and on its
default branch.
Note
An update applies to new sessions — restart the running ones.
Plugins can't carry always-on instructions, so claude-md/global.md is
linked as the user's CLAUDE.md. It imports two private files, kept outside this repo:
| File | What it holds |
|---|---|
~/.kings-ai/personal.md |
Personal context — who you are, how you like to work |
~/.kings-ai/paths.md |
This machine's path overrides — see Named paths |
# Links ~/.claude/CLAUDE.md to global.md (the previous one is kept as .bak) and creates the two
# private files from their templates, if missing
./KingsAI/install/install.shMove what's personal from the .bak into personal.md — the template says what goes where.
Skills cite a name instead of a path. Each value points to an index (README.md /
index.md) that maps the pages behind it.
| File | Role |
|---|---|
claude-md/paths.md |
Defaults — every name, pre-mapped to its original source. Ships with the repo |
~/.kings-ai/paths.md |
Overrides — only the names that differ on this machine; each becomes the standard for its name |
Order, topic by topic: the override is the standard and wins on what it covers; conventions
the project's CLAUDE.md points to fill its gaps; the default fills what's left — and is the
standard when there's no override. global.md holds only this rule and imports both files (the
defaults through the link ~/.kings-ai/paths.default.md, created by the install).
A work machine pointing the Swift skills to the company's own guide:
| Name | Path |
|---|---|
| `SWIFT_STYLE_GUIDE` | `~/Repos/docs/StyleGuide/README.md` |
| `SWIFT_UNIT_TESTS` | `~/Repos/docs/StyleGuide/unit-tests/README.md` |A name that resolves to a missing file is asked for, never guessed. New name: add it to
claude-md/paths.md with its default.
Skills and agents carry no project paths. They read the project's CLAUDE.md for what they need,
and fall back to a default when it's silent:
| The skills need to know | Default when CLAUDE.md doesn't say |
|---|---|
| Docs folder | .ai/, or docs/ when that's already the convention |
| Index of work (demands and their status) | demandas/README.md in the docs folder |
| Where a demand's docs live | demandas/<name>/ |
| Style guide and conventions | style-guide/ and conventions/ in the docs folder |
| Branching model and a branch's base | Never assumed — asked |
| Who commits and opens PRs | The user; the AI drafts |
| Building or running the app | Not allowed — static checks only |
| Extra steps (ticket fields, notifications) | None |
| A shared guide outside the repo | A named path (SWIFT_STYLE_GUIDE) — never a machine path |
A company or project plugin adds its own specifics on top — never by editing kings-core.
| Path | What it is |
|---|---|
.claude-plugin/marketplace.json |
The marketplace — lists every plugin |
plugins/<name>/.claude-plugin/plugin.json |
A plugin's manifest |
plugins/<name>/agents/ |
Subagents, one .md each |
plugins/<name>/skills/<skill>/SKILL.md |
Skills |
claude-md/ |
Always-on instructions, linked into ~/.claude/ |
install/ |
Links the instructions and creates the personal file from personal.example.md |
- Skill:
plugins/<plugin>/skills/<name>/SKILL.md, withnameand adescriptionthat says when to use it — the description is what triggers it - Agent:
plugins/<plugin>/agents/<name>.md, withname,descriptionandtools - Plugin: a folder under
plugins/with.claude-plugin/plugin.json, plus its entry inmarketplace.json - Nothing that names a company, client or person — that goes to a private marketplace
# Manifests
claude plugin validate .
claude plugin validate plugins/kings-core
# Install in a throwaway config, so the real ~/.claude stays untouched
export CLAUDE_CONFIG_DIR="$(mktemp -d)"
claude plugin marketplace add ./KingsAI
claude plugin install kings-core@kingsai --scope user
claude plugin list|
Gui Reis |