Ponytail
DavidObando/gsharp
Forces the laziest solution that actually works, simplest, shortest, most minimal.
Use after migrating/refactoring features (especially tables/data grids) when reviewing component structure - enforces merging over-split components, colocating files where used, removing unused…
$ npx skills add udecode/kitcn --skill component-colocation -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install udecode/kitcn component-colocation --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/udecode/kitcn.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/component-colocation .claude/skills/component-colocation && 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 "component-colocation" agent skill from https://github.com/udecode/kitcn/tree/main/.agents/skills/component-colocation into .claude/skills/component-colocation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "component-colocation", 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/udecode/kitcn/tree/main/.agents/skills/component-colocationType 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 udecode/kitcn --skill component-colocation -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install udecode/kitcn component-colocation --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/udecode/kitcn.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/component-colocation .agents/skills/component-colocation && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "component-colocation" agent skill from https://github.com/udecode/kitcn/tree/main/.agents/skills/component-colocation into .agents/skills/component-colocation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "component-colocation", 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 udecode/kitcn --skill component-colocation -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install udecode/kitcn component-colocation --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/udecode/kitcn.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/component-colocation .cursor/skills/component-colocation && 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 "component-colocation" agent skill from https://github.com/udecode/kitcn/tree/main/.agents/skills/component-colocation into .cursor/skills/component-colocation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "component-colocation", 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/udecode/kitcn.git --path .agents/skills/component-colocation--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 udecode/kitcn --skill component-colocation -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install udecode/kitcn component-colocation --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/udecode/kitcn.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/component-colocation .gemini/skills/component-colocation && 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 "component-colocation" agent skill from https://github.com/udecode/kitcn/tree/main/.agents/skills/component-colocation into .gemini/skills/component-colocation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "component-colocation", 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 udecode/kitcn component-colocationInstalls 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 udecode/kitcn --skill component-colocation -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/udecode/kitcn.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/component-colocation .github/skills/component-colocation && 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 "component-colocation" agent skill from https://github.com/udecode/kitcn/tree/main/.agents/skills/component-colocation into .github/skills/component-colocation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "component-colocation", 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 udecode/kitcn --skill component-colocation -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install udecode/kitcn component-colocation --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/udecode/kitcn.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/component-colocation .opencode/skills/component-colocation && 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 "component-colocation" agent skill from https://github.com/udecode/kitcn/tree/main/.agents/skills/component-colocation into .opencode/skills/component-colocation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "component-colocation", 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.
component-colocationUse after migrating/refactoring features (especially tables/data grids) when reviewing component structure - enforces merging over-split components, colocating files where used, removing unused…
Component Colocation is an agent skill from udecode/kitcn. Use after migrating/refactoring features (especially tables/data grids) when reviewing component structure - enforces merging over-split components, colocating files where used, removing unused code, following vertical slice architecture. Prevents premature abstraction and over-engineering.
Its SKILL.md is about 1.3k 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 Refactoring and Code simplification. It works with React. The repository describes itself as: Convex + Better Auth + tRPC + Drizzle + TanStack Query + shadcn. The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c6010f5. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Component Colocation loads about 1.3k tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 444 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 udecode/kitcn at commit c6010f5, republished under its Apache-2.0 licence (© udecode). 444 words, ~1,333 tokens.
.claude/skills/component-colocation/SKILL.md (or your agent's skills folder).React Compiler removes many performance-only reasons to split components where
it is enabled, including the canonical example app. Merge related code,
colocate files where they are used, and delete unused files. Split only for
genuine reuse, package boundaries, independent testing, or hook decoupling.
example/**, www/**, and package UI modules after checking
whether the affected app actually enables React Compiler.React Compiler handles memoization automatically. You don't need to split components into smaller pieces for performance.
// ❌ Over-split: separate files for each button group
FormDraftActionButtons.tsx;
FormEsignPendingActionButtons.tsx;
FormSignedActionButtons.tsx;
// ↑ Each file has similar hooks, similar logic, different render
// ✅ Single file with all logic colocated
ReportHistoryActionButtons.tsx;
// ↑ One component, switch/conditional for different statesDon't fear 300-500 line components. Splitting creates:
Vertical slice architecture: Keep feature code together.
// ❌ Scattered across shared folders
src/components/shared/ActionButtons.tsx
src/components/shared/StatusBadge.tsx
src/hooks/useReportActions.ts
// ✅ Colocated in feature folder
src/app/(protected)/report-history/
_components/
report-history-action-buttons.tsx
report-history-columns.tsx
report-history-table.tsxOnly split components when:
Never split for:
After implementing a feature, review:
_components folder if only used there| Pattern | Problem | Fix |
|---|---|---|
| One component per file for "each variant" | 7 files instead of 1 | Merge into single component with conditionals |
| Shared folder for feature-specific code | Hard to find, pollutes shared space | Move to feature's _components |
| Keeping deleted context's components | Dead code, confusion | Delete immediately |
| Splitting for "testability" | Tests can test large components | Keep together, test the whole thing |
*Part1, *Section, *InnerBefore (over-split):
report-history-table/
ActionButtons.tsx # Router wrapper
FormDraftActionButtons.tsx # Draft state buttons
FormEsignPendingActionButtons.tsx
FormISOActionButtons.tsx
FormMarkedCompleteActionButtons.tsx
FormRefusedActionButtons.tsx
FormSignedESignedActionButtons.tsx
RefusedButton.tsx # Single button extractedAfter (colocated):
_components/
report-history-action-buttons.tsx # All logic in one fileSingle 400-line file with switch statement for each form status. All hooks called once, no prop drilling, easy to follow.
© udecode, Apache-2.0. 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/component-colocation of udecode/kitcn.
Open the folder on GitHubat commit c6010f5
Component Colocation 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 |
|---|---|---|---|---|---|---|
| Component Colocation this skilludecode/kitcn | 450 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| PonytailDavidObando/gsharp | 564 | 8 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Code Simplification for ego-litecitrolabs/ego-lite | 17k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Nuqstrycompai/crm | 11k | 1 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Refactor Pass for Simplicitystar-history/star-history | 9.6k | 1 repos | ~168 | Automated safety check: Pass | MIT | |
| RTK Rust Code Simplifierrtk-ai/rtk | 83k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 |
DavidObando/gsharp
Forces the laziest solution that actually works, simplest, shortest, most minimal.
citrolabs/ego-lite
Finds and implements evidence-backed simplifications in the ego-lite repository, such as dead code, duplicated state and speculative abstractions, without hiding behavior changes.
trycompai/crm
nuqs (type-safe URL query state) best practices for Next.js and other React frameworks.
star-history/star-history
Perform a refactor pass focused on simplicity after recent changes. Use when the user asks for a refactor/cleanup pass, simplification, or dead-code removal…
rtk-ai/rtk
Reviews RTK's Rust code for over-engineering and verbose patterns, applying idioms like iterator chains and early returns while protecting a specific list of constraints from being simplified away.
millionco/react-doctor
Simplify and refine recently modified code while preserving functionality.
udecode/kitcn
Create a short annotated visual walkthrough from real final-state screenshots or rendered artifacts.
udecode/kitcn
Prevent feature creep when building software, apps, and AI-powered products.
udecode/kitcn
Repair an unreleased .changeset/.md file so it matches the real branch delta against main.
udecode/kitcn
Audit newer Convex npm releases against kitcn. An agent skill from udecode/kitcn.
udecode/kitcn
A skill your agent uses when working with Jotai X stores (createAtomStore), accessing state in components or callbacks, persisting state to cookies or localStorage
udecode/kitcn
Run a scoped Linear backlog autonomously as a sequence of maximal safe parallel batches by composing orchestrator, autogoal, and task.
Works with
Categories
Use after migrating/refactoring features (especially tables/data grids) when reviewing component structure - enforces merging over-split components, colocating files where used, removing unused…. Component Colocation is an agent skill from udecode/kitcn. Use after migrating/refactoring features (especially tables/data grids) when reviewing component structure - enforces merging over-split components, colocating files where used, removing unused code, following vertical slice architecture.
Component Colocation fits situations like: tasks that involve Refactoring; tasks that involve Code simplification.
Run `npx skills add udecode/kitcn --skill component-colocation -a claude-code`. Or copy the skill folder (.agents/skills/component-colocation in udecode/kitcn) into .claude/skills/component-colocation in your project. Claude Code loads it when a task matches its description.
Run `npx skills add udecode/kitcn --skill component-colocation -a codex`. Or copy the skill folder (.agents/skills/component-colocation in udecode/kitcn) into .agents/skills/component-colocation 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 udecode/kitcn --skill component-colocation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/component-colocation, .gemini/skills/component-colocation, .github/skills/component-colocation and .opencode/skills/component-colocation in your project.
SKILL.md names no scripts, command-line tools or credentials: Component Colocation is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Component Colocation is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.3k tokens (SKILL.md is roughly 5.3k 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 Component Colocation: Ponytail (DavidObando/gsharp, 564 stars), Code Simplification for ego-lite (citrolabs/ego-lite, 17k stars), Nuqs (trycompai/crm, 11k stars) and Refactor Pass for Simplicity (star-history/star-history, 9.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
udecode (a GitHub organization) maintains it in udecode/kitcn, which has 450 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on October 1, 2026.
Source: udecode/kitcn on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.