--- name: shard description: "Use when the user says 'shard this', 'split file', or when working with files over 1000 lines." version: 1.0.0 --- # 💎 Shard: Refactoring Large File... *Split monolithic files into focused, maintainable modules.* ## Activation When this skill activates, output: `💎 Shard: Refactoring large file...` Then execute the protocol below. ## Context Guard | Context | Status | |---------|--------| | **User says "shard", "split file", or "refactor"** | ACTIVE: full protocol | | **Editing a file over 1000 lines** | ACTIVE: suggest refactor | | **User says "refactor" for logic changes (not splitting)** | DORMANT: not a shard task | | **Discussing code organization concepts** | DORMANT: do not activate | | **File is under 500 lines** | DORMANT: not worth splitting | ## Protocol 1. **Identify the target file** and count lines: ```bash wc -l ``` 2. **Analyze structure:** - List all exports (functions, components, types, constants) - Identify logical groupings - Map internal dependencies (what calls what) 3. **Propose the split**: present to user BEFORE executing: - Target: 100-300 lines per new file - Group related functionality - Keep types near consumers - Shared utilities in separate file 4. **Execute the refactor:** - Create new files with proper names - Move code to appropriate files - Add import/export statements - Create index.ts barrel if needed for backwards compatibility - Update all imports throughout the project 5. **Verify build:** ```bash npm run build 2>&1 | tail -20 ``` 6. **Present result**: new file structure with line counts ## Inputs - File path to refactor - Optional: preferred split strategy or target file count ## Outputs - Multiple smaller files replacing the original - Updated imports throughout project - Build verification ## Example Usage **User:** "shard infrastructure/page.tsx: it's 1100 lines" ``` 💎 Shard: Refactoring large file... infrastructure/page.tsx (1,110 lines) → 6 files: page.tsx (~120 lines), Main page, tab switcher RailwayTab.tsx (~200 lines), Railway monitoring HetznerTab.tsx (~180 lines), Hetzner monitoring HeadroomTab.tsx (~250 lines), Headroom + setup guide types.ts (~80 lines), Shared interfaces constants.ts (~60 lines): Status configs Build check: ✓ passed ``` ## Level History - **Lv.1**: Base: File analysis and splitting with import updates. (Origin: MemStack v1.0, Feb 2026) - **Lv.2**: Enhanced: Added YAML frontmatter, context guard, propose-before-execute, activation message. (Origin: MemStack v2.0 MemoryCore merge, Feb 2026)