Skip to main content

keep-or-cut

Learn which pieces depend on each other, then keep only the ones your project needs.

소스 정보

저장소
joelhooks/rat-stack
최근 소스 활동
2026년 10월 1일 19:22
감지된 SKILL.md 언어
영어
스타
81
포크
3

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
keep-or-cut
description
Learn which pieces depend on each other, then keep only the ones your project needs.
# Keep or cut rat-stack Use this to learn the stack's seams. Delete interfaces your product will not use. Do not keep code because you might need it one day. Read `AGENTS.md` first. Keep unrelated product work. Check imports and tests before deleting files. ## Smallest version: command line only Keep these files: - `packages/capability/src/contract.ts` - `packages/capability/src/implement.ts` - `packages/capability/src/to-command.ts` - `packages/capability/src/call-watch.ts` and `packages/capability/src/actor-watch.ts` - every module imported by these files or retained core code, and their tests - all of `packages/core` - the CLI composition needed by the projected command `defineContract`, `implement`, and `toCommand` keep the shipped `stats` command working. `contract.ts` does not depend on the other interfaces. For CLI only, delete: - unused projections and their matching tests in `packages/capability/src` and `packages/capability/test`, only after tracing imports from the keep list Keep `apps/cli/src/surfaces.ts` with only the `toCommand` composition and its imports. Remove these unused CLI surfaces: - `catalog`, `openapi`, `serve`, and `mcp` commands from `apps/cli/src/command.ts` - `apps/cli/test/serve.test.ts` - catalog, OpenAPI, MCP, and code-mode cases from `apps/cli/test/cli.e2e.test.ts` ## Cut code mode Delete: - `packages/capability/src/catalog.ts` - `packages/capability/src/code-mode.ts` - `packages/capability/src/sandbox-error.ts` - `packages/capability/src/sandbox-service.ts` - `packages/capability/src/sandbox-subprocess.ts` - `packages/capability/src/to-code-mode.ts` - `packages/capability/test/catalog.test.ts` - `packages/capability/test/sandbox.test.ts` - `packages/capability/test/to-code-mode.test.ts` - `codeMode` and `mcpServer.codeMode` from `apps/cli/src/surfaces.ts` - the `catalog` command and `--code-mode` flag from `apps/cli/src/command.ts` - catalog and code-mode cases from `apps/cli/test/cli.e2e.test.ts` - the `./sandbox` and `./code-mode` exports from `packages/capability/package.json` ## Cut HTTP Delete: - `packages/capability/src/to-http-api.ts`, `packages/capability/src/http-api.ts`, and the HTTP adapter test - the `./http-api` export from `packages/capability/package.json` - `http`, `routes`, and `webServer` from `apps/cli/src/surfaces.ts` - the `openapi` and `serve` commands from `apps/cli/src/command.ts` - `apps/cli/test/serve.test.ts` - the OpenAPI case from `apps/cli/test/cli.e2e.test.ts` ## Cut MCP Delete: - `packages/capability/src/to-toolkit.ts`, `packages/capability/src/toolkit.ts`, and the MCP adapter test - `packages/capability/test/mcp-harness.ts` - `tools` and `mcpServer` from `apps/cli/src/surfaces.ts` - the `mcp` command from `apps/cli/src/command.ts` - MCP cases from `apps/cli/test/cli.e2e.test.ts` - the `./toolkit` export from `packages/capability/package.json` Code mode imports `to-toolkit.ts`. Cutting MCP therefore cuts code mode too; apply both lists. ## Cut XState This recipe applies only to a clone that has already removed interest and every other lifecycle except file inspection. `packages/core/src/interest-machine.ts` also depends on XState and `@xstate/effect`; replacing file inspection alone cannot remove those dependencies. Find every remaining import before removing either package. Keeping a lifecycle means keeping its runtime and `actor-watch.ts`. Delete: - `packages/core/src/inspect-machine.ts` and its test - `xstate` and `@xstate/effect` from `packages/core/package.json` - their `minimumReleaseAgeExclude` entries from `pnpm-workspace.yaml` - `scripts/oxlint-plugin-xstate-effect.ts` - its entry in `oxlint.config.ts` Then call `FileInspector.inspect` directly from the capability handler in `packages/core/src/inspect-file.ts`. ## Cut devtools Delete: - `packages/devtools` - `@rat-stack/devtools` from `apps/cli/package.json` - `devtoolsRoutes`, `devtoolsWebServer`, `mcpServer.devtools`, and `mcpServer.devtoolsCodeMode` from `apps/cli/src/surfaces.ts` - the `--devtools` flag from `apps/cli/src/command.ts` - the devtools cases from `apps/cli/test/serve.test.ts` and `apps/cli/test/cli.e2e.test.ts` In `apps/web`, swap `devtoolsRoutes` for `contentRoutes` in `src/dev/backend.ts`, point the `development` condition of `#devtools-overlay` in `apps/web/package.json` at `./src/features/shared/no-devtools.tsx`, and delete `src/dev/devtools`, `src/dev/client`, and `src/dev/features`. `vite dev` keeps serving search and read; `test/dev-content-routes.test.ts` covers that path. `CallWatch`, `aroundHandlers`, `invokerFor`, and `watchActor` stay in `packages/capability`. Devtools provides `CallWatch` at the composition boundary to observe calls without wrapping capability lists; its default is a no-op. `aroundHandlers` remains the explicit wrapper for policy over one list, while `invokerFor` is code mode's dispatch path and `watchActor` lets machines report to devtools without depending on it. ## Clean up after each cut 1. Remove stale exports from `packages/capability/src/index.ts` and any affected package barrel. 2. Remove stale imports, layers, commands, and tests found by the compiler. 3. Update the package table in `AGENTS.md` so repo law matches the clone. 4. Refresh the lockfile and format intentional changes: ```sh pnpm install pnpm fix pnpm turbo run check test build ``` Let the compiler and checks find every stale reference. Do not silence errors or delete unrelated tests.
GitHub에서 보기