- Single-package TypeScript repo for
@putdotio/sdk - Build and test workflow uses Vite+
- Main areas:
src/*,test/live/*,docs/*,scripts/*
vp installvp check .vp packvp run testvp run coveragevp run test:livevp run verifyvp run bootstrap:tokens
.worktreeinclude carries .env and .repos into managed worktrees; Claude
symlinks .repos. Run vp install, vp config, then vp run verify. Use
pnpm secrets:setup with PUTIO_SDK_TYPESCRIPT_SOPS_FILE if live-test env is
missing or stale.
- Treat
@putdotio/sdkas a new public package, not a compatibility wrapper aroundputio-js. - Keep the public surface domain-first and Effect-first.
- Validate external data at the boundary with schemas and keep typed failures explicit.
- Prefer feature/domain modules over layering by technical concern.
- Keep
README.mdconsumer-facing; put repo-operator detail indocs/*and keepAGENTS.mdas a routing layer. - Prefer
vpfor toolchain and package-manager operations; usevp run <script>for custom package scripts. - Keep public package boundaries explicit and open-source-safe.
- Use typed parsing and real checks; change thresholds only with explicit approval.
- Update docs when the public surface, verification workflow, or repo shape changes.
CLAUDE.mdshould remain a symlink to this file.
- Default tests exclude
test/live/**. - Use
vp run test:liveor the single-target live commands in Testing when verifying against the real API. - Live tests accept maintainer-supplied
PUTIO_SDK_TYPESCRIPT_SOPS_FILE;pnpm secrets:setupvalidates and writes ignored.env.local, andpnpm secrets:cleanremoves it. - Keep package-surface verification healthy;
lint:packageis the publication safety net for tarball metadata, public types, and ESM entrypoints.