- Move the 17-row early adopters table to ADOPTERS.md, keep a one-paragraph summary
- Collapse the baseline-vs-ADHD side-by-side table into a <details> block with a short summary
- Merge the two Discord/community callouts into one line
- Drop the Codex quick path section (already covered in documentation/install.md) and point there
- Remove the duplicate Community section and the doubled Star History heading
Claude-Session: https://claude.ai/code/session_01E5fUe2V6HDySPCoiS375bD
Co-authored-by: Claude <noreply@anthropic.com>
Adds .claude-plugin/plugin.json and .claude-plugin/marketplace.json so the
repository can be installed via `/plugin marketplace add` and `/plugin install`
alongside the existing npm distribution. The skill under skills/adhd/ is
auto-discovered; no skill or source files are changed.
Co-authored-by: rob <rob@robs-MacBook-Pro.local>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Every divergent branch previously saw the same raw problem statement,
so an anchor embedded in it (e.g. "we currently use Postgres and...")
infected all N branches regardless of branch isolation. Isolation
between branches buys nothing against an anchor already in the seed
prompt.
Adds a Phase 0 reframe pass: one LLM call strips incidental
implementation details (current stack, existing tool names) from the
problem before it reaches divergence, while preserving genuine
constraints (compliance, budget, physical limits). Convergence
(score/cluster/deepen) still judges ideas against the original
problem, since viability has to account for real constraints even
when divergence doesn't.
Opt out with `stripAnchors: false` / `--no-anchor-strip` if the raw
problem is preferred as-is. Fails open to the original problem if the
reframe call errors or returns empty.
Co-authored-by: UditAkhourii <researchudit@gmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
wtfismyrepo (github.com/nandnijaiswal/wtfismyrepo) uses ADHD as the
explanation engine for codebase onboarding. The deterministic layer
(PageRank over import graph, git-churn fragility, GitHub PR/issue signals)
produces an analysis that is formatted as an ADHD problem+context, then
the diverge->score->cluster->deepen loop picks the best onboarding angle
across 12 codebase-specific frames for the specific developer's level and
goal.
- Fix command injection in summary.yml: replace shell gh command with
actions/github-script to avoid shell interpolation of AI output
- Harden prompt injection defense with structural tag boundaries
- Add Zod validation for all LLM JSON output (schemas were a dependency
but unused)
- Add CLI input validation with bounds checking for numeric flags and
file size limit for --context
- Replace biased sort-based shuffle with Fisher-Yates in frame selection
- Add npm test to CI workflow
- Update actions/stale from v5 to v9 with real messages
- Fill in SECURITY.md with responsible disclosure policy
Co-authored-by: Haris Chechi <chechi@Hariss-Air.lan>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Duplicates the existing "Join the ADHD community" call-to-action from
the Community section right after the badges, so it's visible before
a reader scrolls past the hero section.
Co-authored-by: Udit Akhouri <researchudit@gmail.com>
Readers repeatedly ask whether ADHD is just a single agent told to
"list 5 options first." Answer the objection explicitly: a single chain
enumerates alternatives into one shared context and anchors on the first;
"list N options" is CoT with a numbered list. ADHD's branches share no
context during divergence, so distinctness is produced by construction.
- vs-cot-and-tot.md: new section "Why prompted alternatives don't
replicate parallel divergence."
- paper (docs/index.html) §3 Method, "Why the separations matter":
same argument as a subsection.
- Both cite the practitioner 3×-distinct anecdote as directional (not
measured) and flag a controlled parallel-N vs list-N comparison as
future work.
Co-authored-by: Udit Raj <researchudit@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
The "≈10 LLM calls, 5–10×" framing counts calls, not tokens, and so
undercounts real cost: each divergence branch is an isolated context, so
the base substrate (CLAUDE.md + tool context in a Claude Code session) is
re-loaded once per branch before any novel token is generated.
- when-to-use.md: replace the simple "10 calls" line with the honest
formula `N × (base + branch) + critic + K × deepen`, and split out the
library (small substrate) vs skill-in-agent (large substrate) regimes.
- paper (docs/index.html) §Cost: same substrate-multiplied accounting;
§Implementation now points to it. Drop the single hardcoded
"$0.30 / $50k" figure in favor of a per-deployment computation, since
the real number depends on N, substrate, and current pricing.
Co-authored-by: Udit Raj <researchudit@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
The generator and critic currently run on the same model, producing
correlated errors: the critic systematically misses whatever the
generator systematically gets wrong. Allow the critic passes (score +
cluster) to run on a different model from the generator.
- types: add RunOptions.criticModel (falls back to `model`)
- engine: route score + cluster through `criticModel ?? model`
- cli: add `--critic-model` flag + help
- docs: document the flag and option in documentation/api.md
Divergence still uses `model`; only the convergent critic passes change.
Co-authored-by: Udit Raj <researchudit@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Reader feedback: the concept reads as abstract until you see one
concrete output comparison. Adds a compact two-column table on the
llm-hang-cli eval problem, highlighting the non-obvious pick
(rage-quit → switch to fast model) that the baseline never surfaces,
plus the trap-count gap. Pulls verdict numbers from bench/results.json.
Placed right after the intro blockquote, before Featured, so anyone
landing from HN/X sees the concrete win before the install commands.
Closes#12
Co-authored-by: Udit Raj <researchudit@gmail.com>
Trigger logic already lives in the YAML frontmatter description, which
is the only part loaded when the dispatcher decides whether to invoke
the skill. By the time the body is in context the trigger decision has
already been made, so the body section was dead weight.
Closes#9
Co-authored-by: Udit Raj <researchudit@gmail.com>
Some Codex builds truncate or fail on multi-line YAML block-scalar
descriptions (the `>` form). The previous description was ~1500 chars
across multiple paragraphs; this commit collapses it to a single line
of ~490 chars covering the same trigger surface. The detailed pre-flight
gate (unconditional /adhd + three-criteria self-judge) already lives in
the body of SKILL.md and is unchanged.
Adds a Codex-specific quick path to README and documentation/install.md:
- `npx skills add UditAkhourii/adhd -a codex -g` for forced detection
- manual curl into `~/.codex/skills/adhd/` as fallback
- note explaining the description-length constraint so others authoring
Codex-compatible skills don't repeat the mistake
Version bumped to 0.1.4 so npm package ships the shorter description.
README dropped from ~503 to ~141 lines — skimmable in under a minute.
The long-form content moved into 7 titled pages under documentation/:
install, how-it-works, vs-cot-and-tot, frames, when-to-use, api, evals.
Added a Featured section near the top: The New Stack feature story,
OpenClaw community testing testimonial, and the external research review.
Kept above the fold: hero, badges (+ New Stack), the architectural pitch,
one-command install, quickstart, a 2-step how-it-works summary, the
headline results table, and a documentation index table.
docs/ stays reserved for GitHub Pages assets (hero.png, og, index.html);
documentation/ holds the browsable markdown so the two never collide.
Drop the self-hosted SVG generator, workflow, and bootstrap file.
star-history.com handles theme-aware rendering and is fine for the
history view; the embed is exactly what the user wanted.
The previous setup curled api.star-history.com which caches their
rendering server-side for hours. No cache-bust query param helps. The
result was a chart frozen at ~100 stars while the repo had 235.
This commit replaces the third-party fetch with a Node script that
pulls every stargazer's starred_at timestamp directly from the GitHub
Stargazers API, bins them, and emits an SVG with cumulative count line,
axis ticks, and a "last updated" timestamp.
The Star History workflow now invokes scripts/build-star-chart.mjs
instead of curling the external service. Same triggers (push to main,
hourly cron, manual dispatch), same [skip ci] commit behaviour.
Bootstrap commit includes the freshly generated chart showing 235 stars.
Workflow: .github/workflows/star-history.yml fetches the SVG from
api.star-history.com, writes to docs/star-history.svg, commits with
[skip ci] if changed. README now references the static file so the
chart is as fresh as the latest commit (or the last cron tick).
Bootstrap snapshot included so the first render is not a 404.
ADHD vs single-shot baseline, mean scores across 6 problems:
breadth 1.9×, novelty 2.9×, trap_detection 5.2×, actionability 1.5×.
Wins 5/6 head-to-head. Full verdicts already in EVALS.md.
The workflow needed an ANTHROPIC_API_KEY repo secret which we are not setting.
The eval data already lives in EVALS.md from a local run. Reproducibility is
preserved by bench/run-evals.ts + bench/problems.json + bench/judge.ts. Anyone
can rerun with npm run evals. CI added nothing the data did not.