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
آخر نشاط في المصدر
١ أكتوبر ٢٠٢٦ في ١٩:٢٢
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٨١
التفرعات
٣

خيارات التثبيت

يُحدَّد 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