Skip to main content
ClaudeWave
Skill36.3k repo starsupdated yesterday

local-build-reminder

The local-build-reminder skill automatically alerts developers working on Oh My Claude Code (OMC) in local fork mode that TypeScript source edits require running `npm run build` before restarting the plugin, since the running instance loads compiled JavaScript from `dist/` rather than source files. Use this skill when the user or AI edits TypeScript files in `src/**/*.ts` and expects changes to take effect immediately, or when troubleshooting why recent edits aren't reflected in the running plugin behavior.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/Yeachan-Heo/oh-my-claudecode /tmp/local-build-reminder && cp -r /tmp/local-build-reminder/skills/local-build-reminder ~/.claude/skills/local-build-reminder
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Local Build Reminder

**Always-on reminder for OMC fork development.** When OMC is running in local
mode (HUD shows `[OMC#X.Y.ZL]` with an `L` suffix), Claude Code loads compiled
JavaScript from `dist/` — NOT TypeScript source from `src/`. Edits to `.ts`
files are invisible to the running plugin until `npm run build` regenerates
`dist/`.

## When to invoke this skill

The AI should mention this reminder whenever **any of these** happens:

1. The user (or the AI itself) just edited `src/**/*.ts` in this repo.
2. The user asks "why isn't my change working?" / "I edited X but it does the same" after a TS edit.
3. The user is about to restart Claude Code and the working tree has TS edits with no rebuild.
4. The user runs an OMC command and expects new behavior tied to a TS edit.

## What to say

Surface one clear sentence followed by the exact command. Don't repeat the
reminder on every turn — once per "round" of TS editing is enough. Example:

> Heads up: you edited `src/...`. Run `npm run build` before restarting
> Claude Code — `dist/` won't reflect the change otherwise.

If multiple TS files were edited in a row, just remind once at the end.

## When NOT to remind

- The user only edited `.mjs` / `.cjs` / `.md` / `.json` — those load directly
  from disk, no build needed.
- The user is in a Claude Code session that isn't running OMC locally
  (no `L` in the HUD).
- A `tsc --watch` / `npm run dev:full` is already running in the background
  — those rebuild automatically on save.
- The user just asked an unrelated question; don't shoehorn the reminder
  into off-topic responses.

## File-type cheat sheet

| Path                           | Restart picks up edit? | Needs build? |
| ------------------------------ | ---------------------- | ------------ |
| `src/**/*.ts`                  | Only after build       | **Yes**      |
| `templates/hooks/**/*.mjs`     | Yes                    | No           |
| `scripts/**/*.mjs` / `*.cjs`   | Yes                    | No           |
| `skills/**/SKILL.md`           | Yes                    | No           |
| `agents/**/*.md`               | Yes                    | No           |
| `commands/**/*.md`             | Yes                    | No           |
| `.claude-plugin/plugin.json`   | Yes (on Claude restart)| No           |
| `docs/**/*.md`                 | Cosmetic only          | No           |

## One-command setup for hands-free dev

If the user is iterating heavily and tired of remembering the build, suggest:

```powershell
npm run dev:full
```

This runs `tsc --watch` plus all bridge builders in parallel — every save
triggers a rebuild within a second, so `restart Claude Code` is all that's
needed afterwards.

## Detection signal — how the AI knows it's "local mode"

The HUD's `[OMC#X.Y.ZL]` suffix is the visible cue. Programmatically, the
detection lives in `src/lib/version.ts::isRuntimePackageLocal()` and triggers
on any of: `.git/` at package root, `src/` at package root, package reached
via symlink/junction, or any ancestor is a symlink/junction.

When running inside the OMC fork repo itself, the AI is by definition in
local mode — the reminder always applies.