when CLAUDE.md

A project guide for the When developer toolkit, a TypeScript toolkit packaged as several tools in one pnpm workspace. A monorepo is one repository that contains multiple related packages or projects.

In plain words
What is it for?
Use it when changing the toolkit, running its Vitest tests, building packages, or writing Dockerfiles and ignore rules for production containers.
Why use it?
It gives consistent rules for installing dependencies, testing, building, and creating safer, smaller Docker images for deployment.

Instructions file

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/whenlabs-org/when/claude-md
Clone the repo
git clone --depth 1 https://github.com/WhenLabs-org/when
Per session 951 This file is loaded in full into every session.
When invoked 951 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin 92% copy Near-identical to another mod in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00951 $0.00951
Opus 5 $0.00476 $0.00476
Sonnet 5 $0.00190 $0.00190
Haiku 4.5 $0.00095 $0.00095

Measured 2d ago against content hash bdf222d3a43b, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

when CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

This is a copy

92% identical to when AGENTS.md — 22 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

CLAUDE.md · 98 lines

How it starts

The opening of the file, as written. The whole thing — 98 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Project: @whenlabs/when

The WhenLabs developer toolkit — 6 tools, one install

Tech Stack

  • Language: TypeScript 5.7
  • Testing: Vitest 3.0
  • Package Manager: pnpm
  • Monorepo: pnpm-workspaces
  • Deployment: Docker
  • CI/CD: GitHub Actions
  • Bundler: tsup 8.0

Docker

Dockerfile Best Practices

  • Use multi-stage builds: a builder stage for compilation/dependencies and a slim runner stage for the final image
  • Copy dependency manifests first (package.json, package-lock.json) and install before copying source — leverages layer caching
  • Use specific base image tags (e.g., node:20-alpine) — never use latest in production
  • Run the application as a non-root user: RUN adduser --disabled-password appuser && USER appuser

.dockerignore

  • Always include a .dockerignore file to exclude: node_modules, .git, .env, build artifacts, test files
  • This reduces build context size and prevents secrets from leaking into the image

Layer Caching

  • Order Dockerfile instructions from least to most frequently changing for optimal caching
  • Pin dependency versions in lock files so the install layer is cached until dependencies actually change
  • Use COPY --from=builder to copy only build artifacts into the final stage

Security

  • Never store secrets in the image — use runtime environment variables or secret management
  • Scan images for vulnerabilities: docker scout cves or integrate Trivy/Snyk in CI
  • Keep images minimal — use alpine or distroless base images to reduce attack surface
  • Set HEALTHCHECK instructions for container orchestrators to monitor application health

Compose

  • Use docker-compose.yml for local development with all services (DB, cache, app)
  • Mount source code as a volume for hot-reloading in development
  • Use depends_on with health checks to control startup order

Read the full file on GitHub · 98 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 98 lines · 951 tokens per session scan A bdf222d3a43b

Subscribe to this mod's changes

when CLAUDE.md is an instructions file published in the GitHub repository WhenLabs-org/when (3 stars, last pushed 8d ago), licensed MIT. It adds 951 tokens to every session, about $0.0048 per session on Opus 5. A static security scan graded it A with 0 findings. It is 92% identical to when AGENTS.md, differing in 22 lines, and is treated as a copy.