Tools · AI integration
The skill that forces Claude Code
to lead with the answer.
DE Auf Deutsch lesen
i-have-adhd is
a skill with over 47,000 stars on GitHub that reshapes coding-agent output for ADHD readers:
action first, numbered steps, no "Hope this helps!" at the end. I applied the ten rules from the
real SKILL.md verbatim to a real PlantWiz bugfix and measured it against Claude
Code's built-in default style.
SKILL.md loaded via curl from
the repository, followed verbatim. The technical solution is identical in both responses, so the
comparison targets form, not different solution approaches. Anyone who wants to verify the basis
of this post can find the ten rules in full in the SKILL.md in the linked
repository.
The task
backend/src/routes/diseaseAnalyses.ts:117 stores the full base64 image in the
image_data column of the plant_disease_analyses table on every disease
diagnosis, up to roughly 8 MB per row (MAX_IMAGE_CHARS = 8_000_000, line 15).
Task given to the agent: "Stop storing the image in the database, upload it to the existing
S3 bucket instead, and store only the URL."
Two styles, one task
Proactive (Default)
Claude Code, built-in default style · "helps complete software engineering tasks efficiently"
Explains the cause, implements, summarizes afterward, moderate length, no special formatting.
Looking at the POST /api/disease-analyses/analyze route: the image_data
column stores the full base64 image permanently in the
plant_disease_analyses table, up to roughly 8 MB per entry. The table
grows into several gigabytes quickly, and every query without an explicit
column list loads this image data unnecessarily.
I'll add a new image_url column, upload the image to an S3-compatible
bucket instead, and store only the URL in the database. We remove the
image_data column from the INSERT; the upload happens before the call to
Plant.id.
[... code ...]
I've rebuilt the route so it uploads the image to the bucket before
calling Plant.id and stores only the URL in image_url. Existing rows with
full image_data remain unchanged; a migration for the existing data would
be a separate step.
i-have-adhd
GitHub ayghri/i-have-adhd, rules 1–3 and 6–10 of the SKILL.md, followed verbatim
Action in line one, numbered steps, a concrete time estimate, a single next action at the end, no preamble and no recap.
Add column image_url, upload the image to the bucket, drop the base64
write.
1. Add image_url VARCHAR(500) to plant_disease_analyses (migration
script)
2. In diseaseAnalyses.ts:80, before the Plant.id call: upload image_data
to the bucket, get back a URL
3. Replace image_data with image_url in the INSERT at line 117
4. Remove image_data from the response JSON at line 126
[... code ...]
Table stops growing per-row by ~8 MB. About 20 minutes, migration for
existing rows not included.
Next: run the migration on a copy of the table, confirm row count matches
before dropping the old column.
Measured
The solution is technically identical in both responses, so the table below counts the prose separately from the code block, plus both combined as the total response length:
| Style | Prose (characters) | Prose (words) |
|---|---|---|
| Proactive (Default) | 842 | 127 |
| i-have-adhd | 581 | 93 |
Prose length per style
Text only, no code block. Both numbers measured with wc -m on the responses as
actually written.
31% fewer characters in the prose, but the difference isn't only about brevity: the default
response explains the cause in prose before the plan, and summarizes in prose again at the end.
The i-have-adhd response replaces both prose blocks with a numbered list carrying file and line
references, plus a single sentence with a time estimate. A reader who reads only the first and
last line still knows the next action and the current state with i-have-adhd, exactly the check
that rule 10 of the SKILL.md itself proposes.
SKILL.md is 7,207 characters
(loaded via curl from the repository, measured with wc -m), roughly
1,700 to 1,800 tokens on every invocation. For a single short response like this test, that's
more than the shorter response itself saves, 261 characters. The skill only pays off across
several responses in the same session, where the rule stays loaded once, and only when the
tasks are actually multi-step enough that the numbered lists and the repeated state restatement
contribute something.
Where the skill does more than plain brevity
Claude Code's built-in Concise style also shortens responses, but differently: it drops transitions that don't carry the point, without changing the response's structure. i-have-adhd goes a step further, because its rules don't just demand "fewer words," they demand a specific order and shape: the first line is actionable (rule 1), every step gets a number and a line reference (rule 2), the response ends with exactly one action that takes under two minutes (rule 3). That serves a different need than pure compression, namely: where exactly does this continue, without the reader having to search the whole text again. In my own comparison of the built-in output styles, that was exactly the gap between Concise (shorter) and Explanatory/Learning (more structure, but more text) — i-have-adhd aims for more structure at less text.
The closest match to i-have-adhd is the Caveman skill from that same earlier comparison, also
separately installed, also with its own SKILL.md. The mechanism differs though:
Caveman shortens at the sentence level, drops articles and filler words, allows fragments
instead of full sentences, keeps numbers and error messages verbatim. i-have-adhd barely
shortens at the sentence level; it changes the order and forces a list instead of prose. Running
both together would be redundant, not complementary, since both would rewrite the same line,
just by different rules.
Which style, when
Single, short tasks with few steps
The built-in Concise style is enough, no extra overhead for a rule that barely applies to a one-liner.
Multi-step tasks spanning several responses
i-have-adhd earns its keep where rule 5 kicks in, restating "step 3 of 5," something neither the default style nor Concise does on their own.
Explanation needs, architecture decisions
Rule 5 of the SKILL.md itself names the exception: for "explain" or "walk
me through," the response may run as long as the topic needs, better served by
Explanatory or Learning then.
SKILL.md is a rough estimate (characters divided by four), not a measured
tokenization. I still consider the core claim solid: i-have-adhd changes the shape of the
response more than pure brevity does, but pays a loading cost that only pays off across several
responses in the same session.
Which output style fits your team?
I set up Claude Code for development teams, including skills and the question of which output style fits which task. 30-minute intro call, free.