SLOPSHOPPER

spinner-words

Swap the spinner verbs for dev ones.

newspinner
A shopper browsing a rack in a slop shop
Preview · a replayed session in a sandbox
claude · ~/work/app · spinner-words
› fix the failing auth test and add an audit log call ⏺ Read(src/auth.ts) ⎿ Read 6 lines ⏺ Update(src/auth.ts) ⎿ Added 2 lines, removed 1 line ⏺ Bash(bun test) ⎿ 3 pass, 1 fail ● Done. refresh now rejects expired claims and logs an audit event. ✻ Worked for 42s · done 4:20 PM ✻ Crashing-out… ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── › ? for shortcuts
README

Agent Skills

Skills for coding agents.

Install

curl -fsSL shalom2552.github.io/agent-skills/install | bash

Or clone and run ./install. See ./install --help for options.

Skills

SkillDescription
docs-syncFind and fix drift between docs and code.
dotconfAnswer, change, and remember dotfile and app configs.
read-onlyLock the session to read-only; change nothing.
setup-sh25-skillsInstall, manage and wire up shalom2552's agent-skills assets.
system-auditRead-only health, security and cleanliness audit of this machine.
system-fixDiagnose, fix, and document a system or config fault on this machine.
to-promptWrite a handoff prompt for a fresh agent.
walk-with-meLearn languages and idioms by coding with a coach.

Scripts

scripts/statusline.sh - status line for Claude Code.

Run setup-sh25-skills to wire statusLine.

Mods

Claude Code plugins in mods/. ./install mods adds this repo as the shalom2552 marketplace and installs them; without the installer:

/plugin install <mod> --marketplace shalom2552/agent-skills
ModDescription
spinner-wordsSwap the spinner verbs for dev ones.
Source 1 files
hooks/register.ts 22 lines
1import type { Register } from 'claude-code'
2
3export const WORDS = [
4  'Cooking', 'Slaying', 'Edging', 'Aura-farming', 'Rotting',
5  'Doomscrolling', 'Vibing', 'Lock-in', 'Crashing-out', 'Coping',
6  'Tweaking', 'Grinding', 'Drifting', 'Floating', 'Farming',
7  'Min-maxing', 'Touching-grass', 'Glitching', 'Buffering', 'Lagging'
8]
9
10// keyed on the engine's word, so it changes per turn and not per redraw
11export const pick = (word: string): string => {
12  let h = 0
13  for (const c of word) h = (h * 31 + c.charCodeAt(0)) >>> 0
14  return WORDS[h % WORDS.length]
15}
16
17export const register: Register = on => {
18  on('ui.render', { component: 'Spinner' }, ($, e, next) =>
19    next({ ...e, props: { ...e.props, word: pick(e.props.word) } }),
20  )
21}
22