By krambuhl
Panel substrate: guild-validate / guild-whiteboard / guild-spawn skills + guild CLI + whiteboard-* / evaluator-* / generator-* agents.
Skeptical accessibility evaluator. Flags a11y antipatterns against React/JSX artifacts using two signals: Biome's `a11y/` rule subset (static, via `npm run lint`) and axe-core via Playwright (runtime, via `npm run test:a11y`). Inherits the base evaluator contract from `evaluator-base.md`. Blocking by default — a11y findings gate units.
Shared base contract for all evaluator-* agents. Defines the read-only stance, packet handling, verdict format, flag taxonomy, and isolation framing. Other evaluator agents read this file at spawn time and inherit its constraints. Not directly callable as a normal evaluator — has no domain rubric of its own.
Skeptical rubric-based evaluator that checks whether a unit of work meets its agreed contract. Verifies acceptance criteria, disqualifiers, rule adherence, and original-ask alignment. Inherits the base evaluator contract from evaluator-base.md. Spawned by guild-validate after every unit; the contract-fit lens is the always-on baseline of the antagonist panel.
Specialist evaluator for CSS architecture concerns — selector specificity, cascade behavior, composition vs. duplication of rule blocks, when to use `:global`, layout patterns matching the project's shared primitives. Paired with `generator-css-codemod` as its specialist gate in the antagonist panel with elevated precedence per PANEL-COMPOSITION.md. Distinct lens from evaluator-tokens (literal-vs-token) and evaluator-naming (right- name within the token system) — see the tokens-vs-naming-vs- architecture three-way boundary section in PANEL-COMPOSITION.md.
Skeptical naming evaluator. Flags identifier antipatterns in `.tsx`/`.jsx`/`.ts` and `.module.css` artifacts — visual-literal names that describe appearance instead of meaning, inconsistent vocabulary across siblings, Hungarian / type-in-identifier suffixes, boolean props without predicate form, abbreviations at the public API surface, implementation-leaking identifiers, and file or directory names that diverge from the established convention for their location. No dedicated CLI signal; detection is `Grep` heuristics plus manual inspection. Inherits the base evaluator contract from `evaluator-base.md`. **Advisory by default** — naming findings do not gate units in this initial rollout; escalate to blocking only with explicit evidence (e.g. a diff that renames a clear identifier into a less clear one, or introduces a name inconsistent with an established sibling).
Style-neutral parallel-spawn primitive for the guild-* substrate family. Takes a list of subagent_types and a shared brief; spawns them in parallel via a single Agent tool message; returns each agent's output attributed by name. Internal substrate skill — composed by guild-validate, guild-whiteboard, and custom loops. Does not aggregate, validate roles, or iterate.
Antagonist panel coordinator for the guild-* substrate family. Composes guild-spawn to run evaluator agents in parallel, parses each evaluator's verdict, and aggregates findings into a single panel verdict (approved | flagged | flagged-conflict) with blocking/advisory split and conflict surfacing. Internal substrate skill — composed by ev-loop and any other loop style that wants antagonist panel coordination. Does not iterate, does not auto- resolve conflicts.
Multi-perspective design primitive for the guild-* substrate family. Composes guild-spawn to invoke a panel of whiteboard-* engineer agents in parallel against a shared filesystem artifact, then collects each engineer's contribution into the artifact as attributed sections. Supports multi-round invocations — round 2+ passes the prior whiteboard state into the next round's brief so engineers can address contradictions. Internal substrate skill — composed by ev-loop as a default pre-unit step (phases may override engineers/topic/rounds via PLAN.md `**Whiteboard**:` block). Does not iterate, does not auto-resolve contradictions.
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Marketplace for the guild / griot / loom agent framework, shipped as a family of Claude Code plugins. Source-of-truth for skills, subagents, CLIs, and accumulated learnings used across Evan's projects (originally evolved in aart.camp, now lifted here so other projects — and other machines — can consume it without being coupled to one repo).
The marketplace ships as six self-contained Claude Code plugins:
| Plugin | What it provides | Depends on |
|---|---|---|
griot@krambuhl | Learnings substrate: griot CLI + griot-* skills + judge/rewriter agents | — |
guild@krambuhl | Antagonist-panel substrate: guild CLI + guild-* skills + whiteboard-* / evaluator-* / generator-* agents | — |
loom@krambuhl | Project substrate: loom CLI + loom-* skills (plans, research, sessions, checkins, retros, archives) | guild, griot |
ev@krambuhl | Execution loops: ev-loop-confidence, ev-loop-interactive, ev-run skills | loom, guild, griot |
review-skill@krambuhl | Standalone code-review skill | — |
agent-loop-full@krambuhl | Meta-bundle: zero-content plugin that cascade-installs the full family | all five above |
--scope userclaude plugin marketplace add krambuhl/agents
claude plugin install agent-loop-full@krambuhl --scope user
--scope user writes the enabled-plugins record to
~/.claude/settings.json (per-user-global, never lands in any repo).
This is the recommended scope at Patreon and any environment where
colleagues sharing the repo should NOT see the plugin in their own
Claude Code sessions. See § Install scopes below for the load-
bearing rationale.
agent-loop-full@krambuhl is zero-content; its only job is to
cascade-install griot + guild + loom + ev + review-skill
in dependency order. The cascade is a Claude Code feature (confirmed
empirically in the migration's V4 smoke test).
claude plugin marketplace add krambuhl/agents
claude plugin install loom@krambuhl --scope user
Each plugin's dependencies are declared in the marketplace
manifest, so installing loom also pulls in guild + griot.
Installing griot alone is fine too — no deps.
Claude Code supports four scopes for plugin installs. The relevant two:
--scope user (recommended for personal + work machines):
writes to ~/.claude/settings.json. Per-user-global. Invisible
to colleagues by construction — nothing about the install lands
in any project repo.
--scope local (per-project variant): writes to
<repo>/.claude/settings.local.json inside the project you're in
when you run claude plugin install. Load-bearing requirement:
the consumer repo's .gitignore MUST include
.claude/settings.local.json. If the file is accidentally
committed, colleagues cloning the repo will have the plugin
honored on their own Claude Code sessions at local-settings
precedence — the file is gitignored by Claude Code convention,
not enforcement. The migration's V1 verification established
this empirically via the docs (--scope project's
"makes the plugin available to everyone who clones the project
repository" doc language applies at local scope on whoever loads
the repo). If you want a per-project install for any reason,
triple-check the .gitignore first.
--scope user is the default recommended path because it avoids the
.gitignore footgun entirely.
griot initFor consumer projects that want griot to land learnings/captures
into a project-local learnings/ tree (so the rollup can grow over
time without polluting the user's global learnings), run inside
each consumer repo:
griot init
This idempotently creates learnings/{session-notes,nightly}/ and
appends learnings/ to the project's .gitignore if it's not
already present. No-ops on re-run.
npx claudepluginhub krambuhl/agents --plugin guildProject substrate: loom-* skills + loom CLI for plans, research, sessions, checkins, retros, archives.
Learnings substrate: griot capture/use/compact CLI + griot-* skills + griot-* judge/rewriter/operator/rubric-author agents.
Execution loops: ev-loop-confidence (tiered transforms), ev-loop-interactive (paired units), ev-run (router).
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.