원클릭으로
domain-cli
Use when changing, extending, testing, or reviewing the Bun-backed Paw CLI package and its generated agent skills.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when changing, extending, testing, or reviewing the Bun-backed Paw CLI package and its generated agent skills.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when writing or reviewing Pawrrtal Effect TypeScript code in backend-ts: API contracts, HttpApi handlers, services, repos, layers, tagged errors, Effect tests, streams, SQL, auth middleware, or vendor-source API checks.
Use when running the Bun-backed Paw CLI: local health, active context, shell completions, output modes, profiles, and verification of the supported command surface.
Turn a bad or long Pawrrtal work session into durable project learning. Use when the user says $retro, asks to learn from a session, says too much went wrong, or asks to create/update skills or rules from recent failures.
Use when touching Pawrrtal channels, providers, tools, plugins, subagents, context providers, turn orchestration, or code that decides where an integration should live. Enforces the split between generic kernel code, manifest plugins, trusted runtime adapters, provider adapters, channel adapters, and agent runtime primitives.
Operate Pawrrtal as a live service: prove the running commit, local origins, Cloudflared public URL, database schema, Telegram channel, and shutdown state. Use when checking whether Pawrrtal is live, deployed, reachable, healthy, broken in Telegram, safe to restart, or safe to take down.
Apply Pawrrtal-specific taste rules for clean modern UX, CLI output, Telegram rendering, and agent/tool presentation. Use when changing UI copy, visual polish, CLI labels, Telegram flow output, tool names, folder/file listings, thinking/tool rendering, or when generalizing user feedback into repo conventions.
| name | domain-cli |
| description | Use when changing, extending, testing, or reviewing the Bun-backed Paw CLI package and its generated agent skills. |
| paths | ["packages/paw-cli/**","packages/ci/skill-gen/**","scripts/paw","justfile","specs/004-effect-paw-cli/**","specs/005-effect-cli-boundaries/**","specs/006-claude-agent-session-engine/**"] |
Use this skill before changing the Paw CLI package. The CLI is a standalone Bun-first Effect v4 package at packages/paw-cli; feature-owned commands are added only when the owning feature needs them.
code-quality, domain-cli, and domain-effect before writing or reviewing CLI code.backend/vendor/effect-smol for any Effect v4 API you are about to use; do not infer current APIs from older Effect docs or memory.packages/paw-cli/
|-- src/
| |-- Main.ts
| |-- Cli.ts
| |-- Commands.ts
| |-- Helpers/
| |-- Infrastructure/
| |-- Modules/<Name>/
| `-- Skills/Fragments.ts
`-- test/
|-- unit/
|-- integration/
`-- fixtures/
| Command | Aliases | Summary |
|---|---|---|
paw doctor | - | Check local Paw CLI readiness |
paw context | whoami | Print the active CLI context without secrets |
paw completions <shell> | - | Generate shell completions |
effect, @effect/platform-bun, and @effect/vitest on the same latest verified v4 beta in packages/paw-cli/package.json.@effect/platform-node or node:* imports to packages/paw-cli/src.src/Infrastructure/; feature modules should not import shared services from each other.src/Modules/<Name>/ with Command.ts, plus Domain.ts and focused helpers only when the command needs them.src/Commands.ts; do not create placeholder command groups for future product ideas.paw sessions ... against session/Workspace/provider bindings; do not add paw agents ... until a real agent-management registry exists.api-core/rpc-core; normal CLI commands must not import provider adapters or harness internals.Schema.TaggedErrorClass from src/Helpers/Errors.ts for expected public CLI failures and map failures to the public exit-code contract.src/Helpers/Output.ts for human, json, and plain rendering; JSON output must encode through a declared Effect Schema before stdout.Schema.toJsonSchemaDocument for CLI contracts; OpenAPI belongs to HttpApi, not this CLI package.src/Helpers/Config.ts for profile, state-root, TOML, and no-secret config behavior; environment-backed settings go through Effect Config descriptors and deterministic ConfigProvider tests.InputSource.ts, writeProfileConfig(), and unused error tags as tested policy helpers until a feature-owned command needs them.@effect/vitest for tests that directly exercise Effect values or services; plain Vitest is fine for process integration and pure synchronous assertions.packages/paw-cli/src/Modules/<Name>/Command.ts and a Domain.ts when the command needs domain types or services.name, summary, description, owner, flags, examples, output modes, structured output contracts, and exit codes.effect/unstable/cli primitives and Effect handlers.packages/paw-cli/src/Commands.ts.packages/paw-cli/test/, including ConfigProvider tests for environment-backed settings.packages/paw-cli/src/Skills/Fragments.ts exports dynamic fragments for paw and domain-cli. packages/ci/skill-gen loads those fragments and merges them with normal //<skill-gen> source markers, so generated skills stay aligned with the command registry.
bun run skill-gen:generate
bun run skill-gen:check
bun run skill-gen:e2e-test
bun run --filter @pawrrtal/cli typecheck
bun run --filter @pawrrtal/cli test
bun run --filter @pawrrtal/cli check
bun run skill-gen:check
just paw-cli-check