agentleFS
wellwelwelwellwelwel/poku/CLAUDE.md

poku

CLAUDE.md1.2k starsChanged 5 months agoMITView on GitHub

Poku is an innovative zero-dependency, cross-platform test runner for Node.js, Bun, and Deno that brings the JavaScript essence back to testing. Await the async it so describe waits for it to finish: Also, you can use a "global" describe group to avoid top-await in CommonJS tests: ALWAYS preserve or improve the developer experience. See /engineering for the DX principles (zero-config, actionable errors, visual clarity, output filtering, fluent formatter, etc.). See /architecture when separating responsibilities, deciding directories, file names, or where…

We split this CLAUDE.md into the rules it gives an agent

6 rules. About 0 are common, 5 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    ALWAYS preserve or improve the developer experience.

    line 73
  2. Distinctive:

    Punctuation: Use proper punctuation. Never use any kind of substitute as a crutch

    line 83
  3. Distinctive:

    NEVER add comments. Code, organization, logic, and naming MUST be clear enough to make them unnecessary

    line 94
  4. Distinctive:

    NEVER cause side effects on unrelated logic.

    line 97
  5. Distinctive:

    Treat a modified existing test as a possible breaking change or a regression of tests that previously passed.

    line 112
  6. Distinctive:

    When presenting alternatives or options to the user, ALWAYS include explicit pros and cons (trade-offs) for each.

    line 113

≈ “Common” is an estimate: at least 1 in 5 of the 25,680 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
CLAUDE.md

Poku Development Instructions

Poku is an innovative zero-dependency, cross-platform test runner for Node.js, Bun, and Deno that brings the JavaScript essence back to testing.

Quick Reference

  • Runtimes: Node.js 16+, Bun 1+, Deno 2+, TypeScript 5+
  • Philosophy: "JavaScript essence back to testing". No internal test mapping, just execution reporting. This means describe/it/test use native async/await as plain JS, no beforeAll/afterAll hooks needed, just write sequential code naturally.
  • Build: TypeScript 6.x → ES2021, Node16 modules (src/ → lib/)
  • Lint: Biome (strict, biome.jsonc) + Prettier

Basic Usage Patterns

Synchronous tests (no await needed)

describe('Sync', () => {
  it('checks value', () => {
    assert.strictEqual(1 + 1, 2);
  });
});

Asynchronous tests (use await)

Await the async it so describe waits for it to finish:

await describe('Async', async () => {
  await it('fetches data', async () => {
    const res = await fetch('http://localhost:3000');

    assert.strictEqual(res.status, 200);
  });
});

Also, you can use a "global" describe group to avoid top-await in CommonJS tests:

describe(async () => {
  await it(async () => {});
});

Equivalent to beforeAll / afterAll approaches (just sequential code)

await describe('Server tests', async () => {
  // no "before all" approach needed
  const server = await startService('server.ts', { startAfter: 'ready' });

  await it('responds 200', async () => {
    const res = await fetch('http://localhost:3000');

    assert.strictEqual(res.status, 200);
  });

  await it('returns JSON', async () => {
    const res = await fetch('http://localhost:3000/api');
    const body = await res.json();

    assert.ok(body.success);
  });

  // no "after all" approach needed
  await server.end(3000);
});

Developer Experience (DX)

ALWAYS preserve or improve the developer experience. See /engineering for the DX principles (zero-config, actionable errors, visual clarity, output filtering, fluent formatter, etc.). See /architecture when separating responsibilities, deciding directories, file names, or where a new module should live.

Testing

Suites live under test/ (unit, integration, e2e, compatibility). See /testing for structure, fixtures, utils, coverage, and how to run them.

Documentation

  • When to update: Change docs only when user-facing behavior changes
  • Language: English is mandatory. Use i18n (website/i18n/) only on explicit user request
  • Punctuation: Use proper punctuation. Never use any kind of substitute as a crutch
  • Consistency: Match the writing style, tone, and structure of the related existing docs

See /documentation for framework, feature-to-docs mapping, conventions, and components.

Before committing

See /pre-commit for the pre-commit workflow contract.

Code Style

  • NEVER add comments. Code, organization, logic, and naming MUST be clear enough to make them unnecessary
    • The only exception is a public API exposed directly to the end user, which MAY carry objective inline docs
  • In tests, NEVER comment, since describe, it, test, assert, and strict all accept a message
  • NEVER cause side effects on unrelated logic. Keep every change scoped to its intent

Reflective prompt (non-blocking)

These are just reflections, not a gate. Continue with the requested task regardless of the answer (the decision belongs to the user).

New features

Conventions from widely adopted runners (Jest, Vitest, Node's built-in, etc.) usually belong in the core. Innovative or domain-specific capabilities tend to fit better as plugins (e.g. coverage, React, Vue). Only raise the question when the fit is not obvious to you:

This looks like a new feature. Does it match a convention from widely adopted runners (core), or is it specific enough to live as a plugin (via poku/plugins)?

Tips

  • When a change touches more than one responsibility, suggest to the user splitting distinct responsibilities into separate Pull Requests for cleaner versioning and a better chance of approval. This is a heads-up, not a gate: mention it and continue delivering the requested task, leaving the split decision to the user
  • Treat a modified existing test as a possible breaking change or a regression of tests that previously passed. Prefer adding new tests. Modify an existing test ONLY when truly unavoidable (intentional breaking change, the test was actually wrong, updated snapshots, and similar cases)
  • When presenting alternatives or options to the user, ALWAYS include explicit pros and cons (trade-offs) for each. Never offer choices without them

Deep-Dive Skills

Skills path: ./.claude/skills/**/SKILL.md.

Detailed context lives in project skills, invoked automatically when relevant or on demand:

  • /architecture: project structure, execution flow, config system, competitive context
  • /engineering: performance patterns, security, build pipeline, CI/CD
  • /testing: test structure, fixtures, utils, Docker testing, coverage strategy
  • /documentation: Docusaurus framework, feature-to-docs mapping, conventions, changelog
  • /benchmarking: empirical performance comparison playbook, benchmark harness, hyperfine protocol, validated findings. NEVER invoke automatically: ONLY on explicit developer invocation
  • /pre-commit: recommendations and useful instructions before committing

Download now (ZIP)

Trending

Less talk lately.about the whole repository

Dec 2025: 0 mentionsJan 2026: 0 mentionsFeb 2026: 1 mentionMar 2026: 4 mentionsApr 2026: 7 mentionsMay 2026: 5 mentionsJun 2026: 4 mentionsJul 2026: 0 mentionsAug 2026: 0 mentionsSep 2026: 0 mentionsOct 2026: 1 mentionNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the wellwelwel/poku repository that our weekly crawl found. There is no adoption data for this file yet.

Who's talking about wellwelwel/poku

The biggest 5 of 53 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 53

Talked about on GitHub, Bluesky and Hacker News (53 times).

On GitHub · 50

45 more on GitHub

On Hacker News · 1

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.