Using humane
Announce at start: "I'm using the humane:using-humane skill to route this to the skill that owns it."
Scope
This skill routes design work. It does not claim authority over unrelated
tasks — a bug fix, a deploy, or a shell question has no humane owner, and
routing one here is a false positive. If nothing below matches, say so and move
on rather than stretching a design skill over a non-design task.
The two questions it answers
"Where do I start?" — match the intent to an entry point (table below).
"I just finished X, what now?" — do not recall the cycle from memory. Ask
the graph:
python3 scripts/graph.py --from layout-rules # what it hands to, and when
python3 scripts/graph.py --to ux-writing # who hands in here, and when
python3 scripts/graph.py # the whole graph
python3 scripts/graph.py --mermaid # the graph as a diagram
The script reads the frontmatter of every skill in the plugin. It is stdlib-only
and has no dependencies, so it runs anywhere the plugin is checked out.
Entry points
| The user says |
Start with |
Not with |
| "something's missing / nothing works / fresh machine" |
humane:setup |
anything else — it diagnoses first |
| "what should I build", "what are people hiring this for" |
humane:jtbd |
a review skill; there is nothing to review yet |
| "mock this up", "show me the flow", "wireframe this" |
humane:prototype |
humane:design-tokens — the structure is not settled yet |
| "we need a brand / an identity" |
humane:brandkit |
humane:design-tokens — the tokens do not exist yet |
| "set up tokens", "compile to CSS", "check contrast" |
humane:design-tokens |
humane:layout-rules, which only flags the pair |
| "pick a font", "does this font have Cyrillic" |
humane:type-specimen |
humane:design-tokens, until a family is chosen |
| "generate on-brand images" |
humane:brand-illustrate |
humane:brandkit, which explores rather than produces |
| "what should this button say", "rewrite this error" |
humane:ux-writing |
— |
| "how does this land", "test this tagline" |
humane:respondent-panel |
humane:persona-review — strangers, not experts |
| "review this PRD as an engineer / investor" |
humane:persona-review |
humane:respondent-panel — experts, not strangers |
| "review this UI", "check this dashboard" |
humane:layout-rules |
— |
| "usability audit", "heuristic evaluation" |
humane:nielsen-heuristics |
— |
| "can someone actually complete this", "test this flow" |
humane:walkthrough |
humane:nielsen-heuristics — attempt, not inspect |
| "what's the transformation" |
humane:before-after |
— |
| "review this properly", "full review", "holistic audit" |
humane:review |
any single domain skill |
When more than one row matches, humane:review wins — it is the one skill
allowed to run several domains and consolidate them into a single verdict. When
the user names a skill explicitly, their words win over this table.
What the graph keys mean
Three keys, three different relationships. Do not collapse them.
handoffs: — a peer route across an ownership boundary, with the when:
that opens it. humane:layout-rules hands a contrast pair to
humane:design-tokens because it does not own the fix.
accepts: — the receiving skill's acknowledgement of that route. Every
handoff has one; the repo's test suite fails the build if it does not.
orchestrates: — a call, not a handoff. humane:review runs its domain
skills and consolidates their findings. No reciprocity is owed, and the
domain skills are unaware of it.
Cycles are legal and deliberate. humane:ux-writing and
humane:respondent-panel route both ways: writing hands copy out for reactions,
reactions hand the rewrite back.
Honesty guards
- A handoff is a condition, not an instruction. Each edge carries a
when:.
If the condition did not occur, the cycle ends here — do not run the next
skill for completeness. A humane:layout-rules pass that found no contrast
issue does not hand to humane:design-tokens.
- Ask before continuing. A handoff names what could come next. The user
decides whether it runs.
- The graph is not coverage. Following every edge is not a full review, and
saying "I ran the cycle" is only true for the skills that actually ran. Name
the ones that did not.
- Never invent an edge. If
scripts/graph.py shows no route, there is no
route. Add one to the frontmatter — on both sides — rather than improvising it
in conversation.
Claude Code extras: the skills are invoked as humane:<skill>. Announce
each one as it starts, so a multi-skill cycle narrates itself.
1---2name: using-humane3description: Route a design task to the right humane skill, and after any humane skill finishes, name the next one from the declared handoff graph instead of guessing. Reads the `handoffs:` / `accepts:` / `orchestrates:` keys in each skill's frontmatter, so the route is data, not recollection. Use at the start of design work when it is not obvious which skill owns the task, and at the end of any humane skill to find what it hands to. Not for non-design work. Triggers on where do I start, which humane skill, what comes next, what should I run after, humane cycle, design cycle order, "I finished the jtbd interview now what", "какой скилл дальше".4---56# Using humane78**Announce at start:** "I'm using the humane:using-humane skill to route this to the skill that owns it."910## Scope1112This skill routes design work. It does **not** claim authority over unrelated13tasks — a bug fix, a deploy, or a shell question has no humane owner, and14routing one here is a false positive. If nothing below matches, say so and move15on rather than stretching a design skill over a non-design task.1617## The two questions it answers1819**"Where do I start?"** — match the intent to an entry point (table below).2021**"I just finished X, what now?"** — do not recall the cycle from memory. Ask22the graph:2324```bash25python3 scripts/graph.py --from layout-rules # what it hands to, and when26python3 scripts/graph.py --to ux-writing # who hands in here, and when27python3 scripts/graph.py # the whole graph28python3 scripts/graph.py --mermaid # the graph as a diagram29```3031The script reads the frontmatter of every skill in the plugin. It is stdlib-only32and has no dependencies, so it runs anywhere the plugin is checked out.3334## Entry points3536| The user says | Start with | Not with |37| --- | --- | --- |38| "something's missing / nothing works / fresh machine" | `humane:setup` | anything else — it diagnoses first |39| "what should I build", "what are people hiring this for" | `humane:jtbd` | a review skill; there is nothing to review yet |40| "mock this up", "show me the flow", "wireframe this" | `humane:prototype` | `humane:design-tokens` — the structure is not settled yet |41| "we need a brand / an identity" | `humane:brandkit` | `humane:design-tokens` — the tokens do not exist yet |42| "set up tokens", "compile to CSS", "check contrast" | `humane:design-tokens` | `humane:layout-rules`, which only flags the pair |43| "pick a font", "does this font have Cyrillic" | `humane:type-specimen` | `humane:design-tokens`, until a family is chosen |44| "generate on-brand images" | `humane:brand-illustrate` | `humane:brandkit`, which explores rather than produces |45| "what should this button say", "rewrite this error" | `humane:ux-writing` | — |46| "how does this land", "test this tagline" | `humane:respondent-panel` | `humane:persona-review` — strangers, not experts |47| "review this PRD as an engineer / investor" | `humane:persona-review` | `humane:respondent-panel` — experts, not strangers |48| "review this UI", "check this dashboard" | `humane:layout-rules` | — |49| "usability audit", "heuristic evaluation" | `humane:nielsen-heuristics` | — |50| "can someone actually complete this", "test this flow" | `humane:walkthrough` | `humane:nielsen-heuristics` — attempt, not inspect |51| "what's the transformation" | `humane:before-after` | — |52| "review this properly", "full review", "holistic audit" | `humane:review` | any single domain skill |5354When more than one row matches, **`humane:review` wins** — it is the one skill55allowed to run several domains and consolidate them into a single verdict. When56the user names a skill explicitly, their words win over this table.5758## What the graph keys mean5960Three keys, three different relationships. Do not collapse them.6162- **`handoffs:`** — a peer route across an ownership boundary, with the `when:`63 that opens it. `humane:layout-rules` hands a contrast pair to64 `humane:design-tokens` because it does not own the fix.65- **`accepts:`** — the receiving skill's acknowledgement of that route. Every66 handoff has one; the repo's test suite fails the build if it does not.67- **`orchestrates:`** — a call, not a handoff. `humane:review` runs its domain68 skills and consolidates their findings. No reciprocity is owed, and the69 domain skills are unaware of it.7071Cycles are legal and deliberate. `humane:ux-writing` and72`humane:respondent-panel` route both ways: writing hands copy out for reactions,73reactions hand the rewrite back.7475## Honesty guards7677- **A handoff is a condition, not an instruction.** Each edge carries a `when:`.78 If the condition did not occur, the cycle ends here — do not run the next79 skill for completeness. A `humane:layout-rules` pass that found no contrast80 issue does not hand to `humane:design-tokens`.81- **Ask before continuing.** A handoff names what *could* come next. The user82 decides whether it runs.83- **The graph is not coverage.** Following every edge is not a full review, and84 saying "I ran the cycle" is only true for the skills that actually ran. Name85 the ones that did not.86- **Never invent an edge.** If `scripts/graph.py` shows no route, there is no87 route. Add one to the frontmatter — on both sides — rather than improvising it88 in conversation.8990> **Claude Code extras:** the skills are invoked as `humane:<skill>`. Announce91> each one as it starts, so a multi-skill cycle narrates itself.