Memstack shard

Use when the user says 'shard this', 'split file', or when working with files over 1000 lines.

install
source · Clone the upstream repo
git clone https://github.com/cwinvestments/memstack
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/cwinvestments/memstack "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/shard" ~/.claude/skills/cwinvestments-memstack-shard && rm -rf "$T"
manifest: skills/shard/SKILL.md
source content

💎 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

ContextStatus
User says "shard", "split file", or "refactor"ACTIVE — full protocol
Editing a file over 1000 linesACTIVE — suggest refactor
User says "refactor" for logic changes (not splitting)DORMANT — not a shard task
Discussing code organization conceptsDORMANT — do not activate
File is under 500 linesDORMANT — not worth splitting

Protocol

  1. Identify the target file and count lines:

    wc -l <file>
    
  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:

    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)