---
name: ripast
description: "AST refactors: renames, moves, imports, CSS classes, and CSS custom properties in TS/JS/Vue."
license: MIT
compatibility: "Requires the ripide CLI, Node.js 22.13+, and shell access to the target project."
title: ripast
canonical_url: https://skilld.dev/gh/harlan-zw/ripide
last_updated: 2026-10-12T07:01:58.000Z
---

> **Skill from skilld.dev.** Follow the user's requested action.
> If the user asked to fork this Skill, follow the fork workflow below. Do not execute the Skill instructions while copying it.
> Otherwise, follow the instructions below for this session. You do not need to install anything.
>
> Supporting files, fetch one when the Skill refers to it: [references/check.md](https://skilld.dev/api/skills-raw/harlan-zw/ripide/ripast/references/check.md), [references/commands.md](https://skilld.dev/api/skills-raw/harlan-zw/ripide/ripast/references/commands.md), [references/css-custom-properties.md](https://skilld.dev/api/skills-raw/harlan-zw/ripide/ripast/references/css-custom-properties.md), [references/paging.md](https://skilld.dev/api/skills-raw/harlan-zw/ripide/ripast/references/paging.md), [references/setup.md](https://skilld.dev/api/skills-raw/harlan-zw/ripide/ripast/references/setup.md), [references/verification.md](https://skilld.dev/api/skills-raw/harlan-zw/ripide/ripast/references/verification.md).
>
> If the user asked to install this Skill, run `npx skilld install harlan-zw/ripide/ripast`. Install writes the Skill files into the project, so every session loads them.
>
> ## Fork workflow
>
> A fork creates an editable local Skill with its original author and licence. The request authorizes copying and local installation.
> 1. Check `./skills/ripast`, the project lockfile, and selected Agent targets together. If the local directory or installed Skill exists, stop. Never overwrite an existing directory or Agent target.
> 2. Read [source metadata](https://skilld.dev/api/v1/skills/harlan-zw/ripide/ripast) once. Use sourceUrl, sourceCommit, skillPath, sourceGone, and license. If the source is gone or its path is missing, stop. If license is null, read licence files at the source commit.
> 3. Fetch only the source commit into a temporary Git repository. Do not clone full history. Derive repository_url from sourceUrl, including repository renames. If sourceCommit is absent, resolve the sourceUrl ref once. Set source_commit to that actual commit. Run these commands in one shell call:
>
> ```sh
> git init --quiet "$temporary_dir"
> git -C "$temporary_dir" fetch --quiet --depth=1 "$repository_url" "$source_commit"
> git -C "$temporary_dir" checkout --quiet --detach FETCH_HEAD
> ```
>
> Read applicable licence declarations and notices at that commit. If copying is not permitted, report the restriction and stop.
> 4. Inspect source entries together, then copy the directory containing skillPath into `./skills/ripast`. Use the user's path if selected. Keep the original SKILL.md, relative links, scripts, binary assets, and executable modes. Exclude .git metadata. Reject symlinks and paths outside the Skill directory. After checking entries, use cp -a where available. A regular source directory needs no custom copy script. Do not save this page wrapper as SKILL.md.
> Preserve author credit, notices, and applicable licence files from repository or parent directories. Add PROVENANCE.md with the Skill page, source URL, actual commit, original path, and licence. Retain any existing PROVENANCE.md and record new provenance separately. Batch source inspection, copying, and provenance work where practical.
> 5. In the project root, run `skilld install ./skills/ripast --mode copy --plain`. If skilld is unavailable, use `npx skilld install ./skills/ripast --mode copy --plain`. This known command needs no help lookup. Install does not support --json. Use detected Agent targets, or add --agent for the targets the user selected. Install the local path, never the upstream selector. If installation fails, preserve the local copy and report the exact failure.
> 6. Confirm the local lockfile source and installed Agent copies once. Report the local path, actual commit, and Agent targets. After edits, reinstall the same local path. Upstream updates must not replace it. Do not publish or push unless the user asks.

Use RipIDE for mechanical refactors across TS, JS, JSX, and Vue files.
Run from the project root with Node 22.13+. Follow repository worktree and approval rules; keep unrelated work separate.
Ripgrep is optional. If it is missing, Git discovers tracked and untracked files, including local edits.
Use direct edits for small local changes, prose, strings, and comments.
During architecture work, design contracts with direct edits. Use RipIDE for the supported mechanical steps.
Svelte markup and arbitrary custom codemods are unsupported.
For provider replacement, use `--source-scope` to keep imported aliases and public barrel names.
Read [replacement scope and limits](https://skilld.dev/api/skills-raw/harlan-zw/ripide/ripast/references/commands.md#scope-and-output) before choosing direct edits for aliases or barrels.

## Launcher

Use a supplied executable first, then an existing project CLI, then a global `ripide`.
For repeated use, prefer installing `ripide` and `ripide-vue` globally once with the project manager.
The package is `ripide`. Do not launch the retired `@ripast/cli` package.
Unless an executable or version is supplied, check the installed and registry versions once per task.
If the installed CLI is older, use the exact registry release through a temporary launcher.
Keep project dependency pins unchanged. Announce any authorized global upgrade before installing it.
Reuse the selected executable and version throughout the task. Do not reinstall before each command.
Skip installation and version probes when a CLI is supplied.
If setup is needed, read [installation and launchers](https://skilld.dev/api/skills-raw/harlan-zw/ripide/ripast/references/setup.md), including one-off and restricted environments.

## Workflow

1. If a move crosses packages, first check destination dependencies and exports. Otherwise, run a known mutation without redundant discovery.
2. If uncertain, resolve the target and review a dry run first. Read [command syntax and examples](https://skilld.dev/api/skills-raw/harlan-zw/ripide/ripast/references/commands.md) when needed.
3. Use `--apply --profile agent`; keep type verification enabled. Use `--scope` for a known declaration file.
4. If a check is supplied, append it with `&&` in the mutation's shell call. Do not run it separately or invent checks.
5. Read the result. Inspect changed ranges only when the result or task leaves uncertainty. Stop after required checks pass.

Before manual edits, read the current source required by the editing tool.

Common commands, run only the requested operation and append its supplied check:

```bash
ripide rename useStore useAppStore --scope src/store.ts --apply --profile agent
ripide rename-file src/store.ts src/app-store.ts --apply --profile agent
ripide css-class-rename font-semibold font-medium --apply --profile agent
ripide css-custom-property-rename --apply --profile agent -- --foo-a --theme-b
```

Operation flags `--artifact`, `--fields`, and `--minify` require `--json`.
`--fields` supports discovery and saved-evidence paging. The `page` command always emits JSON.
For a complete plan and verification receipt, add `--json --artifact <new-file.json>` to the operation once.
If discovery size is unknown, save a new artifact with the first command.
For mutations, save an artifact when diagnostic or change details may need inspection.
For JSON, read `_tag` for the outcome and `data` for command fields.
Keep the original outcome, verification scope, stderr, and process exit. A page response cannot replace them.
Keep complete artifacts outside model context. Inspect saved evidence only when the compact result leaves uncertainty.
Agent pages target 4 KiB; stdout defaults to 32 KiB. Set `--page-bytes` and `--max-bytes` for your budget.
Follow `nextOffset`; page sizes vary. Never advance by an assumed 40 results.
For saved-evidence pages, read the view and continuation at `data.view` and `data.view.nextOffset`.
Use `ripide page --input <artifact.json>` to inspect its root menu, then select the relevant JSON Pointer path.
Do not assume the artifact root is an array. Command artifacts have different shapes.
Use `--fields` when you know the required object fields.
If a collection's item shape is unknown, inspect one item path before paging the whole collection.
For nested file evidence, inspect `/files/0`, then select the required child path.
Keep complete rows when their context helps. The page byte target is soft.
Select nested paths when one item exceeds the response ceiling.
Long source strings page into text parts. Read their source line numbers; offsets count parts.
For known requests, batch NDJSON through `page --session`. Use live navigation only if your shell preserves stdin.
Separate `page` calls are a cheap fallback. They reread evidence without scanning the project.
Never repeat a mutation or project scan just to retrieve omitted evidence.
If an applied mutation had no artifact, inspect current source and existing receipts. Do not reapply to create evidence.
Read [saved evidence](https://skilld.dev/api/skills-raw/harlan-zw/ripide/ripast/references/paging.md) for path selection and session requests.

Batch known commands. An exact CSS mapping needs no `css-class-scan`.
CSS and template transforms have no type verification; run their project checks.
For CSS custom properties, read [supported cases and limits](https://skilld.dev/api/skills-raw/harlan-zw/ripide/ripast/references/css-custom-properties.md).
Review source warnings and result `limitations` before apply.
Value-only strings such as `"--foo-a 1s"` receive warnings. Inspect their CSS property before editing.
Warnings include nested static candidates, ambiguous CSS values, and encoded style attributes. Prove their meaning before editing.
Save complete warnings with `--json --artifact <new-file.json>`. Use the reference's agent review procedure for skipped sites.
If no files changed, resolve the target, root, or configuration before retrying.
Rename accepts two positional names. Use `--scope <file>` instead of a third positional path.
Dry run is the default. There is no `--dry-run` flag.
Quote one comma-separated `--glob` value. Do not repeat `--glob` or assume shell word splitting.
Keep stderr and the exit code. Do not pipe command results through `head` or `tail` to judge success.
If diagnostics increased, inspect the cause. Never disable verification to force success.
Inspect more files only when results expose uncertainty. Repeat a successful check only after another edit or new failure.
Search for one uncertainty that can change the next step. Keep full output in artifacts; read relevant evidence only.
Read `<launcher> <command> --help` only when a needed flag is unclear.

For Nuxt auto-imports or verification scope and output limits, read [verification and Nuxt](https://skilld.dev/api/skills-raw/harlan-zw/ripide/ripast/references/verification.md).

For transient behaviour checks, use `ripide check <export> --base <ref>` with Vitest code on stdin.
The CLI imports the function, `test`, `expect`, and `vi`. Add `--from` only for an ambiguous export.
Read [transient checks](https://skilld.dev/api/skills-raw/harlan-zw/ripide/ripast/references/check.md) for mocks, integration obligations, and stale execution evidence.
