name: engineering description: Engineering deep-dive for poku covering performance, code, and security patterns, TypeScript config, build pipeline, developer experience, and CI/CD. Use when implementing or optimizing code, writing performance-sensitive logic, touching the build, or applying code-style and security rules.
Engineering patterns, performance, security, and build/CI. Read the actual source and config to confirm details, since implementations change over time.
1. Performance Patterns
Look in src/services/ and src/polyfills/:
- Each test file runs in its own process via
spawnwithshell: false. stdout/stderr are piped. A plugin can request an extra IPC channel viaplugin.ipc - The runner uses a concurrency-bounded promise queue. The default limit is
availableParallelism(). Sequential mode orisolation: noneforces a limit of 1 availableParallelismis polyfilled by feature-detecting the native function at runtime and falling back to the CPU count
Authoring rules to respect when writing performance-sensitive code:
- NEVER let extra or uncommon features compromise or pollute the default path. Keep them behind a user-triggered conditional so the code stays unreached ("dead code") until the flag activates it
- ALWAYS early-return to the extreme. The moment a path is decided, leave it with
return,break, orcontinuebefore doing any further work, so the common path runs the least code - Declare each variable ONLY after the guards that could exit, in the narrowest scope that uses it. NEVER allocate on a path that never reaches it
- ALWAYS cache repeated state checks in the
GLOBALsingleton instead of recomputing them
Performance priority order when trade-offs arise:
- Long-term maintainability and readable code
- V8 and JIT optimizations, including minimal memory allocation
- Algorithmic complexity (Big O)
Performance and maintainability must stay in balance with each other.
2. Code Patterns
- Functional composition:
Object.assign(coreFn, { todo, skip, only })exposes modifiers onitanddescribe - Fluent formatter: the
Formatterclass implements[Symbol.toPrimitive]()for implicit string coercion - Promise coordination: a captured resolve callback, no external queue dependency
- GLOBAL singleton: a single object holds runtime config and shared state
- Parent→Child:
POKU_*env vars carry context to child processes - Timing:
hrtime()(the[seconds, nanoseconds]tuple form) for high-precision durations - Naming: NEVER use abbreviated variable names, including basic loop counters. Use
indexinstead ofi,elementinstead ofel. Names MUST be fully spelled out and descriptive - Comments: AVOID them. Clear code, organization, logic, and naming MUST make them unnecessary. The only exception is a public API exposed directly to the end user, which MAY carry objective inline docs
3. Security Patterns
shell: falseinspawn()prevents shell injectionescapeRegExp()sanitizes user-supplied filter and pattern input before it becomes a RegExp- Config auto-discovery only loads an allowlisted set of filenames (an explicit
--config=path bypasses the list) - Windows path safety: the config loader loads from a
file://URL on Windows, and the in-process test loader usespathToFileURL() - Process kill uses
kill -9on Unix andtaskkill /F /T /PIDon Windows
4. TypeScript Configuration
tsconfig.json is the source of truth. The constraint that drives it: output must run on the oldest supported Node, so prefer compatibility over newer language/output targets when changing it.
5. Build Pipeline
scripts/build.sh (wired to the build script in package.json) is the source of truth. It compiles source and tests, then runs post-build fixups. Read it before changing build behavior rather than relying on a description here.
6. Developer Experience (DX)
ALWAYS preserve or improve the developer experience. Read the assertion builder in src/builders/, the formatter and reporters in src/services/, and the runner/output/options parsers in src/parsers/. Key principles:
- Assertion failures must be actionable: file path, code line, operator, and full actual/expected diff (red/green). Non-comparison assertions (
throws,rejects) passhideDiff: trueto keep the output focused - Visual hierarchy: status icons, colors, and dynamic indentation that tracks
describe/itnesting depth encode test state. Read the reporter and the formatter for the current icon and color mapping - Output filtering: in non-debug mode only ANSI-colored lines pass through, hiding noisy library output. Debug mode (or a failed file) passes everything through
- Zero friction: TypeScript is auto-detected by file extension (the runner injects
--import=tsxfor.ts/.mts/.cts), config files are auto-discovered, anddefineConfig()enables IDE autocomplete - Config auto-discovery order:
poku.config.js, then.pokurc.json, then.pokurc.jsonc, then built-in defaults - Formatter usage: ALWAYS build output with the fluent
format('text').bold().success()chain, NEVER raw ANSI codes
7. CI/CD
Read .github/workflows/ for the current pipeline. What constrains the work:
- Lint must pass (Biome + Prettier, see
biome.jsonc) - Coverage has a minimum threshold (
checkCoveragein.nycrc, the source of truth) - Cross-runtime and multi-version compatibility is enforced. See the workflows and
test/__docker__/node/for the current runtimes and versions