Omk Coding
KaimingWan/oh-my-kiro
Enforces coding best practices: deep-read before modify, LSP-first navigation, TDD red-green-refactor, minimal changes, self-review, verification.
Orchestrate parallel migration of Blade React components to Svelte 5.
$ npx skills add razorpay/blade --skill migrate-to-svelte -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install razorpay/blade migrate-to-svelte --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/razorpay/blade.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/migrate-to-svelte .claude/skills/migrate-to-svelte && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "migrate-to-svelte" agent skill from https://github.com/razorpay/blade/tree/master/.agents/skills/migrate-to-svelte into .claude/skills/migrate-to-svelte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-svelte", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/razorpay/blade/tree/master/.agents/skills/migrate-to-svelteType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add razorpay/blade --skill migrate-to-svelte -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install razorpay/blade migrate-to-svelte --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/razorpay/blade.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/migrate-to-svelte .agents/skills/migrate-to-svelte && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "migrate-to-svelte" agent skill from https://github.com/razorpay/blade/tree/master/.agents/skills/migrate-to-svelte into .agents/skills/migrate-to-svelte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-svelte", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add razorpay/blade --skill migrate-to-svelte -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install razorpay/blade migrate-to-svelte --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/razorpay/blade.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/migrate-to-svelte .cursor/skills/migrate-to-svelte && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "migrate-to-svelte" agent skill from https://github.com/razorpay/blade/tree/master/.agents/skills/migrate-to-svelte into .cursor/skills/migrate-to-svelte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-svelte", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/razorpay/blade.git --path .agents/skills/migrate-to-svelte--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add razorpay/blade --skill migrate-to-svelte -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install razorpay/blade migrate-to-svelte --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/razorpay/blade.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/migrate-to-svelte .gemini/skills/migrate-to-svelte && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "migrate-to-svelte" agent skill from https://github.com/razorpay/blade/tree/master/.agents/skills/migrate-to-svelte into .gemini/skills/migrate-to-svelte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-svelte", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install razorpay/blade migrate-to-svelteInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add razorpay/blade --skill migrate-to-svelte -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/razorpay/blade.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/migrate-to-svelte .github/skills/migrate-to-svelte && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "migrate-to-svelte" agent skill from https://github.com/razorpay/blade/tree/master/.agents/skills/migrate-to-svelte into .github/skills/migrate-to-svelte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-svelte", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add razorpay/blade --skill migrate-to-svelte -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install razorpay/blade migrate-to-svelte --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/razorpay/blade.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/migrate-to-svelte .opencode/skills/migrate-to-svelte && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "migrate-to-svelte" agent skill from https://github.com/razorpay/blade/tree/master/.agents/skills/migrate-to-svelte into .opencode/skills/migrate-to-svelte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-svelte", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
migrate-to-svelteOrchestrate parallel migration of Blade React components to Svelte 5.
Migrate To Svelte is an agent skill from razorpay/blade. Orchestrate parallel migration of Blade React components to Svelte 5. Sets up isolated git worktrees, runs Plan/Execute/Verify agents in parallel, and opens one PR per component. Use when user says "migrate <component to svelte", "/migrate-to-svelte", or similar.
Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Git worktrees and React components. It works with Svelte. The repository describes itself as: Design System that powers Razorpay. The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fa38cf0. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gityarnghcurlFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, yarn, gh and curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Migrate To Svelte loads about 4.7k tokens when it runs. Until then it costs about 71 tokens; SKILL.md has 1,398 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from razorpay/blade at commit fa38cf0, republished under its MIT licence (© razorpay). 1,398 words, ~4,702 tokens.
.claude/skills/migrate-to-svelte/SKILL.md (or your agent's skills folder).Main entry point for component migration. Parses input, sets up isolated git worktrees per component, runs Plan/Execute/Verify in parallel where safe, manages per-component human gates, and opens one PR per component.
Before you take ANY action, confirm you understand:
subagent_type: plan-svelte-migration | execute-svelte-migration | verify-svelte-migration)..claude/agents/*.md myself — those files are loaded by the Agent tool when the matching subagent_type is invoked.prompt so the agent can scope all its file/shell operations to that worktree.Your ONLY Valid Action Patterns:
# Spawn an agent in the worktree (parent waits for all parallel calls in the
# same message to complete):
Agent(
subagent_type: "plan-svelte-migration" | "execute-svelte-migration" | "verify-svelte-migration",
description: "<short, distinct title>",
prompt: "<see prompt templates in Steps 1, 4, 5>",
run_in_background: false,
)# Worktree management (Bash tool):
git worktree add -B feat/blade-svelte/{Name} .claude/worktrees/{Name} origin/master
git worktree remove .claude/worktrees/{Name}# Per-component PR creation (Bash tool, run inside the worktree):
cd .claude/worktrees/{Name} && git push -u origin feat/blade-svelte/{Name}
cd .claude/worktrees/{Name} && gh pr create --base master --title "..." --body "..."You are the orchestrator. You coordinate the migration pipeline by spawning specialized agents in parallel inside isolated git worktrees. You do NOT execute any phase work yourself.
Your ONLY job:
.claude/artifacts/batch-status.md as the live source of truth.Use the Read tool to load these files before starting:
.claude/rules/orchestrator-guardrails.mdAlert or Alert, Card, Checkbox)..claude/worktrees/{Name}/.feat/blade-svelte/{Name} (based on origin/master).master, title = feat(blade-svelte): {Name} component)..claude/worktrees/{Name}/.claude/artifacts/{Name}/..claude/artifacts/batch-status.md (in the main checkout, not in any worktree).packages/blade/src/components/{Name}/ exists in the main checkout. If missing → drop from batch and warn user.packages/blade-svelte/src/components/index.ts in the main checkout. If {Name} is already exported → drop from batch with "already migrated".pwd) once. You will use it to construct worktree absolute paths for the Agent prompts.Number the surviving components 1..N (in input order).
9009 (the script's default).i): 6000 + i*100 + 7 → slot 1 = 6107, slot 2 = 6207, …, slot 5 = 6507. The +7 matches blade-svelte's default Storybook port (6007); i*100 offsets each parallel slot to avoid collisions.The pipeline owns 9009 for the duration of the batch — if you need to run yarn react:storybook in your main checkout concurrently, pass -p to override its port.
For each component, run (via Bash tool, sequential — these are quick):
git worktree add -B feat/blade-svelte/{Name} .claude/worktrees/{Name} origin/masterThen APFS-clone the dependency directories from the main checkout into the worktree so each worktree gets a fully private, mutable node_modules tree (see Assumptions below for the non-APFS fallback).
# Run from the main checkout root.
WT=.claude/worktrees/{Name}
# Idempotency guard: cp -cR onto an existing directory nests the clone inside it
# (e.g. $WT/node_modules/node_modules) instead of replacing it, which silently
# corrupts module resolution. Strip any prior copies before re-cloning.
# (Worktree is fresh out of `git worktree add` on the happy path — these only fire on retry.)
rm -rf "$WT/node_modules" \
"$WT/packages/blade/node_modules" \
"$WT/packages/blade-svelte/node_modules" \
"$WT/packages/blade-core/node_modules"
# APFS only: `cp -c` returns non-zero on non-APFS filesystems, so we fall through
# to `yarn install` per worktree (~30–60s each). Stderr is logged, not swallowed.
if cp -cR "$(pwd)/node_modules" "$WT/node_modules" 2>>/tmp/blade-migration-clone.log; then
[ -d packages/blade/node_modules ] && cp -cR "$(pwd)/packages/blade/node_modules" "$WT/packages/blade/node_modules"
[ -d packages/blade-svelte/node_modules ] && cp -cR "$(pwd)/packages/blade-svelte/node_modules" "$WT/packages/blade-svelte/node_modules"
[ -d packages/blade-core/node_modules ] && cp -cR "$(pwd)/packages/blade-core/node_modules" "$WT/packages/blade-core/node_modules"
else
# Fallback: non-APFS filesystem (or other clone failure).
echo "APFS clone failed; see /tmp/blade-migration-clone.log, falling back to yarn install"
( cd "$WT" && yarn install --prefer-offline --frozen-lockfile )
fiIf cloning fails for any other reason (corrupt node_modules, permissions, etc.), fall back to running yarn install inside the worktree.
Load-bearing preconditions for the clone-based approach. If any stop holding, revisit this step:
nohoist: ["**"]and relative workspace symlinks. If the project migrates to yarn berry'snodeLinker: pnp, pnpm, or any setup that uses absolute symlinks, the cloned node_modules would still point back into the main checkout and the isolation benefit disappears.yarn install fallback per worktree.From the first surviving slot's worktree ({Name1}), boot the React Storybook on 9009:
cd .claude/worktrees/{Name1}/packages/blade && yarn react:storybookRun via Bash tool with run_in_background: true.
Poll curl -s http://localhost:9009 every 5s up to 60s. Once it returns HTML, continue.
On timeout, log to batch-status.md notes and continue (Verify skips Step 3, other gates still run).
Write .claude/artifacts/batch-status.md in the main checkout with this layout:
# Batch Migration Status
React Storybook (shared): http://localhost:9009
| # | Component | Tier | Worktree | Branch | Svelte Port | Status | Iteration | PR | Notes |
| --- | --------- | ---- | ------------------------- | -------------------------- | ----------- | --------------- | --------- | --- | ----- |
| 1 | Alert | - | .claude/worktrees/Alert | feat/blade-svelte/Alert | 6107 | ⏳ plan-pending | - | - | - |
| 2 | Card | - | .claude/worktrees/Card | feat/blade-svelte/Card | 6207 | ⏳ plan-pending | - | - | - |
| 3 | Checkbox | - | .claude/worktrees/Checkbox| feat/blade-svelte/Checkbox | 6307 | ⏳ plan-pending | - | - | - |Tier is filled in after Plan completes. PR is filled in after Step 6.
Update this file after every status change.
Spawn one Plan agent per component (parallel pattern — see pre-flight).
Per Agent call:
subagent_type: plan-svelte-migrationdescription: Plan {Name} migrationrun_in_background: falseprompt: see template belowPrompt template:
Plan the migration of the {Name} React component to Svelte 5.
- Component name: {Name}
- Worktree (absolute base): {WorktreeAbs}
ALWAYS use absolute paths prefixed with the worktree. Write artifacts to:
- {WorktreeAbs}/.claude/artifacts/{Name}/discovery-report.md
- {WorktreeAbs}/.claude/artifacts/{Name}/migration-plan.md
Follow the steps in your agent definition.{WorktreeAbs} = <main checkout absolute path>/.claude/worktrees/{Name}.
After all Plan agents return, verify both artifacts exist at:
{WorktreeAbs}/.claude/artifacts/{Name}/discovery-report.md{WorktreeAbs}/.claude/artifacts/{Name}/migration-plan.mdUpdate batch-status.md per component:
Status = ✅ planned, fill Tier from the discovery report.Status = ❌ plan-failed, capture the failure reason in Notes.If either artifact is missing from {WorktreeAbs}/.claude/artifacts/{Name}/, check the main-checkout fallback at {MainCheckout}/.claude/artifacts/{Name}/. If found there, the agent resolved a relative path against its CWD instead of the worktree — move them in before marking failure:
mkdir -p {WorktreeAbs}/.claude/artifacts/{Name}
mv {MainCheckout}/.claude/artifacts/{Name}/{discovery-report,migration-plan}.md \
{WorktreeAbs}/.claude/artifacts/{Name}/ 2>/dev/nullIf still missing → ❌ plan-failed. Apply the same fallback to Execute (patch-request.md) and Verify (verification-report.md, screenshots/) outputs.
After all Plans complete, read every successful component's discovery-report.md and build the per-component dependency list.
Dependency workarounds (deps with workarounds do not require migration; skip them when resolving the graph):
| Dependency | Workaround |
|---|---|
Box / BaseBox | use <div> with classes (no migration needed) |
Icons | placeholder prop type (IconComponent = unknown) |
blade-core (~utils/, ~tokens/) | already framework-agnostic, import directly |
For each component:
🟡 deferred-to-next-batch (dep name in Notes), drop it from the active set, tell the user to re-run it after the dep's PR merges.❌ blocked-by-dep (dep name in Notes); tell the user to migrate the dep first.Remaining components proceed independently.
For each successfully-planned, non-deferred, non-blocked component:
simple. Auto-approve and continue.migration-plan.md to the user and ask for approval.❌ plan-rejected and continue with the others.Status = 🟢 plan-approved.This gate is sequential because it requires human input. The components themselves run independently afterwards.
Spawn one Execute agent per plan-approved component (parallel pattern — see pre-flight).
Per Agent call:
subagent_type: execute-svelte-migrationdescription: Execute {Name} migrationrun_in_background: falseprompt: see template belowPrompt template (Full mode):
Implement the {Name} Svelte component.
- Component name: {Name}
- Mode: Full
- Worktree (absolute base): {WorktreeAbs}
ALWAYS use absolute paths prefixed with the worktree.
- Migration plan: {WorktreeAbs}/.claude/artifacts/{Name}/migration-plan.md
- React source: {WorktreeAbs}/packages/blade/src/components/{Name}/
Follow the Full mode steps in your agent definition.Update batch-status.md as each finishes:
Status = 🛠️ executed.Status = ❌ execute-failed, capture reason.Spawn one Verify agent per executed component (parallel pattern — see pre-flight).
Per Agent call:
subagent_type: verify-svelte-migrationdescription: Verify {Name} migrationrun_in_background: falseprompt: see template belowPrompt template:
Verify the {Name} Svelte component.
- Component name: {Name}
- Worktree (absolute base): {WorktreeAbs}
- React Storybook port: {ReactPort}
- Svelte Storybook port: {SveltePort}
ALWAYS use absolute paths prefixed with the worktree.
- Discovery report: {WorktreeAbs}/.claude/artifacts/{Name}/discovery-report.md
- Write report to: {WorktreeAbs}/.claude/artifacts/{Name}/verification-report.md
Boot Storybooks on the assigned ports if not already running. Do NOT kill them
when finished — the orchestrator needs them up for the final review gate.
Follow the steps in your agent definition.{ReactPort} = 9009 (shared, started by Step 0.4). {SveltePort} is the slot's Svelte port from Step 0.2 (e.g., 6207).
Verify spawns Execute(patch) itself when it finds parity gaps. You only see the terminal status.
Update batch-status.md per component:
Status = ✅ verified.Status = ❌ verify-failed.For each verified component:
Present verification-report.md + screenshots to the user. Storybook URLs for spot-check:
http://localhost:{SveltePort}/iframe.html?id=components-{name}--{story}http://localhost:9009/iframe.html?id=components-{name}--{story}Both Storybooks remain running.
On reject: ask the user what to fix. Re-spawn Verify (or Execute → Verify) as appropriate. Max 2 reject cycles, then mark ❌ final-rejected and continue.
On approve, run inside the worktree:
# Generate changeset (bump types follow recent solo-component precedent: patch/patch).
cd .claude/worktrees/{Name}
mkdir -p .changeset
cat > .changeset/blade-svelte-{name}-component.md <<'EOF'
---
'@razorpay/blade-core': patch
'@razorpay/blade-svelte': patch
---
feat(blade-svelte): add {Name} component
EOF
# Stage migrated files. Exact paths come from the discovery report's "File Plan" section.
git add packages/blade-svelte/src/components/{Name} \
packages/blade-core/src/styles/{Name} \
packages/blade-svelte/src/components/index.ts \
packages/blade-core/src/styles/index.ts \
.changeset/blade-svelte-{name}-component.md
# (Add any other modified files surfaced by `git status` that belong to this component.)
git commit -m "feat(blade-svelte): {Name} component"
git push -u origin feat/blade-svelte/{Name}
gh pr create \
--base master \
--title "feat(blade-svelte): {Name} component" \
--body "$(cat <<'EOF'
## Description
Migrates the React {Name} component to Svelte 5.
## Changes
- Adds `packages/blade-svelte/src/components/{Name}/`
- Adds `packages/blade-core/src/styles/{Name}/`
- Re-exports {Name} from `packages/blade-svelte/src/components/index.ts`
- Re-exports CSS from `packages/blade-core/src/styles/index.ts`
## Component Checklist
- [ ] Update Component Status Page
- [ ] Perform Manual Testing in Other Browsers
- [ ] Add KitchenSink Story
- [ ] Add Interaction Tests (if applicable)
- [x] Add changeset
EOF
)"Capture the PR URL from gh pr create output and update batch-status.md PR column.
Do not auto-remove worktrees. The user may want to keep them for hotfixes.
Print a summary at the end of the run:
Pipeline complete.
Worktrees still in place at .claude/worktrees/{Name}/.
To remove a worktree after its PR merges:
git worktree remove .claude/worktrees/{Name}
Storybooks still running:
- React (shared) on port 9009, hosted by .claude/worktrees/{Name1}/packages/blade
- Svelte per worktree on its slot's port (6107, 6207, ...)
Remove the React-host worktree last — it kills the shared server for everyone.| Scenario | Effect on this component | Effect on others |
|---|---|---|
| Component already migrated | Dropped at Step 0 | Continue |
| React source not found | Dropped at Step 0 | Continue |
| Plan agent fails | ❌ plan-failed | Continue |
| Unmigrated dependency, no workaround | ❌ blocked-by-dep | Continue |
| Dependency cycle detected | ❌ dep-cycle (all in cyc) | Continue |
| User rejects plan 3 times | ❌ plan-rejected | Continue |
| Execute agent fails (incl. retries) | ❌ execute-failed | Continue |
| Verify agent FAIL (after 6 iterations) | ❌ verify-failed | Continue |
| User rejects final review 2 times | ❌ final-rejected | Continue |
A failed component in any phase does not block the others. The orchestrator records the failure in batch-status.md and continues processing the remaining components.
⏳ plan-pending → ✅ planned / ❌ plan-failed
🟢 plan-approved / 🟡 deferred-to-next-batch / ❌ blocked-by-dep / ❌ dep-cycle / ❌ plan-rejected
🛠️ executed / ❌ execute-failed
✅ verified / ❌ verify-failed
🚀 pr-opened / ❌ final-rejected
© razorpay, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/migrate-to-svelte of razorpay/blade.
Open the folder on GitHubat commit fa38cf0
Migrate To Svelte next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Migrate To Svelte this skillrazorpay/blade | 656 | — | ~4.7k | Automated safety check: Pass | MIT | |
| Omk CodingKaimingWan/oh-my-kiro | 107 | — | ~2.4k | Automated safety check: Pass | MIT | |
| React Refactor Tournamentragnar-pwninskjold/tech-snacks | 137 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Typescript Styletjx666/vscode-mcp | 105 | — | ~961 | Automated safety check: Pass | Custom licence | |
| Migrate Core Code to Submodulestinyhumansai/openhuman | 42k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Component Refactoringlangflow-ai/langflow | 155k | — | ~3.5k | Automated safety check: Pass | MIT |
KaimingWan/oh-my-kiro
Enforces coding best practices: deep-read before modify, LSP-first navigation, TDD red-green-refactor, minimal changes, self-review, verification.
ragnar-pwninskjold/tech-snacks
Review React/Next.js code against the real vercel-react-best-practices skill, backlog the performance findings keyed to actual rule ids + impact tiers, rank the most over-subscribed tiers, then fix…
tjx666/vscode-mcp
TypeScript code style and repo conventions for VSCode MCP — inference vs explicit types, ESM import suffixes, zod schema contracts, async VSCode/Node APIs, JSON-safe IPC results, JSDoc for public…
tinyhumansai/openhuman
Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.
langflow-ai/langflow
Refactor high-complexity React components in Langflow frontend.
pierrecomputer/pierre
Guides an agent through using @pierre/diffs to render syntax-highlighted files and diffs, and to build editing and review surfaces in React or plain JavaScript.
razorpay/blade
Review blade PRs by fetching diff, checking CI status, and getting Storybook URL.
razorpay/blade
Add React Native support (.native.tsx files) to Blade components that currently only have web implementations.
razorpay/blade
Important guidelines for writing frontend UI code. An agent skill from razorpay/blade.
razorpay/blade
Heal a Blade PR by fixing CI failures, missing changesets, and sanity issues.
razorpay/blade
This rule helps in reviewing the component before shipping to make sure all important things are checked
razorpay/blade
Resolve comments on a pull request. An agent skill from razorpay/blade.
Works with
Orchestrate parallel migration of Blade React components to Svelte 5. Migrate To Svelte is an agent skill from razorpay/blade. Orchestrate parallel migration of Blade React components to Svelte 5.
Migrate To Svelte fits situations like: user says migrate <component to svelte; /migrate-to-svelte.
Run `npx skills add razorpay/blade --skill migrate-to-svelte -a claude-code`. Or copy the skill folder (.agents/skills/migrate-to-svelte in razorpay/blade) into .claude/skills/migrate-to-svelte in your project. Claude Code loads it when a task matches its description.
Run `npx skills add razorpay/blade --skill migrate-to-svelte -a codex`. Or copy the skill folder (.agents/skills/migrate-to-svelte in razorpay/blade) into .agents/skills/migrate-to-svelte in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add razorpay/blade --skill migrate-to-svelte -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/migrate-to-svelte, .gemini/skills/migrate-to-svelte, .github/skills/migrate-to-svelte and .opencode/skills/migrate-to-svelte in your project.
Going by SKILL.md and its folder, Migrate To Svelte needs the command-line tools its instructions call (git, yarn, gh and curl).
SKILL.md contains no URLs. Its commands use git, gh and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Migrate To Svelte is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Migrate To Svelte: Omk Coding (KaimingWan/oh-my-kiro, 107 stars), React Refactor Tournament (ragnar-pwninskjold/tech-snacks, 137 stars), Typescript Style (tjx666/vscode-mcp, 105 stars) and Migrate Core Code to Submodules (tinyhumansai/openhuman, 42k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
razorpay (a GitHub organization) maintains it in razorpay/blade, which has 656 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 9, 2026.
Source: razorpay/blade on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.