ccppccpp home

Profiles

Bun strict

Bun-only projects (Bun 1.4.3). A dependency or tool Bun already covers is refused unless the user recorded a G03 exception (gap, Bun version, proof); npm distribution and node:* APIs stay allowed. Same correctness floor as bun-loose.

Set this profile

ccpp cpo profile set bun-strict

Inside Claude Code, prefix the command with ! to run it in the session. Downloading a profile needs a Builder or Team plan; listing them does not.

Policies

25 policies, grouped by what they guard.

Weakened checks 1

Suppressions, disabled lint or CI steps and relaxed strictness need a reason or the user's approval.

  • bun-g03-exception-entries

    G03 · Every G03 exception records rule, dependency or command, paths, Bun version, gap, proof and recheck condition

Versions & deprecated APIs 1

Code matches the installed version, without removed, renamed or deprecated APIs.

  • bun-g01-pinned-version

    G01/D01/G03 · Tells Claude, at session start, the pinned Bun version and which G03 exceptions need a recheck

Dependencies & toolchain 23

Packages change through the package manager, lockfiles stay consistent and the project's tools are used.

  • bun-d02-manifest-shell-edits

    D02 · Dependencies change through bun add/remove: a shell edit of package.json dependencies is undone and refused

  • bun-d02-package-manager

    D02 · Installs and scripts go through Bun: npm, pnpm, yarn, npx and node-run project code are refused (publishing stays allowed)

  • bun-d03-second-lockfile

    D03 · Only bun.lock is created: no npm, pnpm or yarn lockfile, no bun.lockb next to bun.lock

  • bun-n01-test-runner

    N01 · Bun covers unit and integration tests: Vitest, Jest or Mocha need a user-recorded G03 exception (blocks)

  • bun-n02-typescript-execution

    N02 · Bun covers running TypeScript and JSX: tsx, ts-node or Babel loaders need a user-recorded G03 exception (blocks)

  • bun-n03-bundler

    N03 · Bun covers bundling: esbuild, Rollup, Webpack, Vite, Parcel or tsup need a user-recorded G03 exception (blocks)

  • bun-n04-env-loading

    N04 · Bun covers loading .env files: dotenv loaders need a user-recorded G03 exception (blocks)

  • bun-n05-watch-mode

    N05 · Bun covers restarting or reloading on change: nodemon or ts-node-dev need a user-recorded G03 exception (blocks)

  • bun-n06-http-client

    N06 · Bun covers HTTP requests: node-fetch, axios or got need a user-recorded G03 exception (blocks)

  • bun-n07-http-server

    N07 · Bun covers HTTP servers and routing: Express, Koa, Fastify or another Node server framework need a user-recorded G03 exception (blocks)

  • bun-n07-node-http-server

    N07 · Bun code serves HTTP with Bun.serve, not node:http/https createServer

  • bun-n08-websocket

    N08 · Bun covers WebSocket servers and clients: ws or another WebSocket package need a user-recorded G03 exception (blocks)

  • bun-n09-file-io

    N09 · Bun covers whole-file reads and writes: fs-extra, rimraf, mkdirp or JSON file wrappers need a user-recorded G03 exception (blocks)

  • bun-n09-whole-file-io

    N09 · Bun code reads and writes whole files with Bun.file/Bun.write, not fs.promises readFile/writeFile

  • bun-n10-child-process

    N10 · Bun code runs processes with Bun.spawn or Bun Shell, not node:child_process exec/spawn

  • bun-n10-process-execution

    N10 · Bun covers running processes and shell commands: execa, cross-spawn, shelljs, zx or cross-env need a user-recorded G03 exception (blocks)

  • bun-n11-glob

    N11 · Bun covers file globbing and pattern matching: glob, fast-glob, globby or minimatch need a user-recorded G03 exception (blocks)

  • bun-n12-sql-driver

    N12 · Bun covers PostgreSQL, MySQL and SQLite access: pg, postgres, mysql2 or SQLite drivers need a user-recorded G03 exception (blocks)

  • bun-n13-redis-client

    N13 · Bun covers Redis access: redis or ioredis need a user-recorded G03 exception (blocks)

  • bun-n14-password-hashing

    N14 · Bun covers password hashing: bcrypt or argon2 packages need a user-recorded G03 exception (blocks)

  • bun-n15-s3-client

    N15 · Bun covers S3 object storage: the AWS S3 SDK or MinIO client need a user-recorded G03 exception (blocks)

  • bun-n16-uuid-v4

    N16 · UUID v4/v7 come from crypto.randomUUID() and Bun.randomUUIDv7(), not the uuid package (blocks)

  • bun-t01-typecheck-tool

    T01 · Type checking runs with bun check (Bun ≥ 1.4.3 pinned); tsc --noEmit needs a G03 exception