Help us improve
Share bugs, ideas, or general feedback.
Use when a project that consumed the Artificer design system made adaptation or pivot decisions this session and wants to report them back to the design system as a GitHub issue. Triggers on 'artificer feedback', 'report design decisions back', 'we adapted Artificer', 'feed this back to the design system', 'dogfood Artificer', 'file design feedback upstream'.
npx claudepluginhub cameronsjo/attunements --plugin artificer-design-systemHow this skill is triggered — by the user, by Claude, or both
Slash command
/artificer-design-system:artificer-feedbackThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You're in a **downstream** project — one that consumed the Artificer design
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
You're in a downstream project — one that consumed the Artificer design system and then bent it to fit a real product. This skill turns the design decisions made this session into one structured GitHub issue filed against the design system, so the maintainer learns where Artificer held up and where it fought back.
This is the external feedback loop. The design system already tracks its own internal feedback (Lane 1/Lane 2 docs); this skill is for consumers reporting how they adapted Artificer in the wild. Friction you hit under real constraints is the highest-signal feedback the system can get — it's where a new pattern gets born or a rule learns its boundary.
Run this early and often — and fire-and-forget. Filing is a standing
directive from Cameron, automatic; you MUST NOT stop to ask permission. The
moment a design decision or pivot crystallizes, file it; sweep again at every
conversation lull and always at cadence:outro. (Let a decision settle
before reporting it — but a settled decision mid-session is ripe now; don't hold
it for the end.)
git-guardrails is installed it permits
the upstream gh write without extra approval; the fixed target is the literal
repo cameronsjo/artificer-design-system.artificer-design-system repo itself (internal work — an invocation here is
almost always accidental); and the directive is waived only on Cameron's
unprompted decline (never solicited). Absent that waiver, file.The design system has an internal ownership model, but you only need one distinction from it:
Did you add or change a color VALUE, or mint or rename a semantic role NAME? If yes, that's the one thing the maintainer must formally ratify — flag it Lane 1. Everything else — which existing token paints which element, a new composition you built on top, a bug you hit, a rule that fought you — is just integration feedback, Lane 3, and ships freely. When you're unsure, mark it maybe and let the maintainer triage. Don't agonize over the boundary; that's their job, not yours.
That's the whole model, for your purposes. You do not need to understand the three-lane saga to file a good report.
Ask the session these in order. Lead with friction — it surfaces the real signal before the session settles into justifying its workarounds. Be specific: name files, tokens, rules, line numbers.
Then walk each concrete decision through the capture loop below.
For every adaptation the session made, record these fields. The type is the load-bearing one — it tells the maintainer what action the deviation implies.
type — one of:
live-spec/.surface — tool (the user came to do something) or document (the user
came to read something). Artificer's own first decision; it picks the body font.token / rule / pattern — what was involved, or literally none existed.what we did + why — the change, and the one-line why. Terse.upstream? — yes (generalizable) / no (product-specific, keep out of
the core) / maybe.lane — 1 (a palette value or semantic role name) or 3 (everything
else). Default to 3; reach for 1 only when you added/changed a color value
or minted/renamed a role name.After the table, write a short prose section in the Artificer field-report voice: problem-framed, "what did the build reveal?" — not a victory lap. The model is the homepage session's finding that the editorial layer had become a two-consumer pattern with no canonical home — an unowned layer surfaced by real use. That's the genre: name the seam the system doesn't yet own. Literal, direct, lightly deadpan. No celebration, no metaphor.
artificer-feedback issue template
shape (Project · the pivot in one line · the deviations table · friction ·
don't-upstream · lane note · narrative). Title convention:
feedback(<project>): <one-line pivot>.creating-issue skill if it's available; otherwise
gh issue create -R cameronsjo/artificer-design-system. Apply the feedback
label.This skill assembles and hands off — it does not force a gh call of its own.
Present the finished payload and let the session's own convention file it. The one
fixed target is the literal repo cameronsjo/artificer-design-system.
Also keep a local record in the consumer repo so the project remembers how it
adapted Artificer. Append the same decisions to docs/artificer-adaptations.md
in the current working tree (create it with a one-line header if absent):
# Artificer adaptations
How this project bends the Artificer design system, and why. Each entry mirrors a
feedback issue filed upstream.
This path is the consumer's working tree — not the design-system repo. It's a memory aid for the next person in this project, and a paper trail if the issue gets closed.
maybe. Default is Lane 3. A new or
changed color value, or a new or renamed role name, is the only thing that
earns Lane 1.cadence:outro), pre-approved to use
forks/subagents, with the in-repo guard. Standing directive from Cameron.artificer-design-system plugin. Ships alongside
the artificer-design-system design skill — that one builds UI, this one
reports back how the build went.