Skip to content
Back to skills

Migrate To Shoehorn

ASecurity

Migrate test files from `as` type assertions to @total-typescript/shoehorn.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 14, 2026
ai-agentstypescriptgogit

Works with

  • claude code
  • cursor
  • cli

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 4 files and shows the line behind each finding

Scanned October 14, 2026

npx -y skills add ctaxnagomi/agent-kd-skill --skill migrate-to-shoehorn --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Migrate To Shoehorn?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Migrate To Shoehorn
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ctaxnagomi-migrate-to-shoehorn/badge)](https://www.skillsdirectory.com/skills/ctaxnagomi-migrate-to-shoehorn)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
{
  "name": "migrate-to-shoehorn",
  "description": "Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.",
  "credit": "Matt Pocock (mattpocock/skills)"
}
---

# Migrate to Shoehorn

Migrate test files from `as` type assertions to @total-typescript/shoehorn.

## Why shoehorn?
- Pass partial data in tests while keeping TypeScript happy
- Replace `as` assertions with type-safe alternatives
- Test code only — never use in production

## Functions
- fromPartial() — Pass partial data that still type-checks
- fromAny() — Pass intentionally wrong data
- fromExact() — Force full object

## Workflow
1. **Gather requirements** — What test files have `as` assertions?
2. **Install** — npm i @total-typescript/shoehorn
3. **Find** — grep for `as Type` patterns in test files
4. **Replace** — as Type → fromPartial(), as unknown as Type → fromAny()
5. **Verify** — Run type check

## Credit

This skill is based on the work of **Matt Pocock** ([@mattpocock](https://github.com/mattpocock)). Original source: [mattpocock/skills](https://github.com/mattpocock/skills). Licensed under MIT.

---

## How to use?

### 1. Download
Go to the [AGENT KD SKILL gallery](https://ctaxnagomi.github.io/agent-kd-skill/) and find this skill card. Click **Download** to save the SKILL.md file to your computer.

### 2. Install
Copy the downloaded SKILL.md into your agent's skills directory:

| Agent | Path |
|-------|------|
| **opencode** | ~/.config/opencode/skills/<skill-name>/SKILL.md |
| **Claude Code** | ~/.claude/skills/<skill-name>/SKILL.md |
| **Codex CLI** | ~/.codex/skills/<skill-name>/SKILL.md |
| **Cursor** | ~/.cursor/skills/<skill-name>/SKILL.md |
| **Gemini CLI** | ~/.gemini/skills/<skill-name>/SKILL.md |

Example for opencode:
`ash
mkdir -p ~/.config/opencode/skills/<skill-name>
cp SKILL.md ~/.config/opencode/skills/<skill-name>/SKILL.md
`

### 3. Use
Restart your agent session. The skill will auto-load based on its description. You can also invoke it explicitly by typing @<skill-name> in your agent.

### 4. Verify
Ask your agent something related to the skill's purpose. If it responds using the skill's instructions, you're all set.

Files in this skill

  • SKILL.md2.2 KB
  • assembly.json733 B
  • migrate-to-shoehorn-skill.json1 KB
  • migrate-to-shoehorn.md1.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.