SLOPSHOPPER

my-mod

A band above the prompt. Replace with what your mod actually does.

newband
A shopper browsing a rack in a slop shop
README

<!-- auto-generated; do not edit by hand -->

Tomada Claude Plugins

Installation

/plugin marketplace add tomada1114/tomada-claude-plugins
/plugin install tomada-kit@tomada-claude-plugins

Run /plugin to browse interactively.

Skills

SkillDescription
auditing-prompt-docsAudit and fix prompt-bearing documents — SKILL.md, CLAUDE.md, AGENTS.md, agent and command definitions…
authoring-goal-promptsAuthor a self-contained prompt for Claude Code's /goal command, run unattended in a separate session — a…
bootstrapping-from-templatesCut a new GitHub repository from one of the user's template repositories and bring it to a clean first…
building-chat-uisField notes for building LLM chat interfaces on the Vercel AI SDK (ai + @ai-sdk/react), whose API is…
building-function-hook-modsBuild a Claude Mod — a Claude Code plugin whose behaviour lives in a TypeScript hooks module, registered as…
codex-cli-configReference for OpenAI Codex CLI configuration, permissions, sandboxing, and autonomy — sandbox_mode and…
configuring-project-permissionsSet up a repository's personal, uncommitted agent permissions so development runs without prompts: Claude…
creating-agent-skillsCreate or improve Agent Skills (the shared SKILL.md format read by Claude Code and OpenAI Codex CLI —…
designing-architectureTurn signed-off requirements and UX drafts into a new app's stable design documents before any issue is…
designing-wireframesCreate ASCII wireframes for every screen and window, user flow diagrams, and per-screen states (empty…
dual-platform-skillsConvert one existing skill (Claude Code origin or Codex origin) into a layout that works on both Claude Code…
find-skillsHelps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for…
kicking-off-appsTake a rough app idea ("I want an app that…") to a new public GitHub repository cut from one of the user's…
orchestrating-modelsDecide which model and effort runs a piece of work, and whether to delegate it at all.
planning-ticketsBreak requirements and design documents into GitHub Issues an implementing agent can ship without asking…
refero-designPrimary/default skill for UI design, product design, web design, landing pages, dashboards, product screens…
refining-promptsPolish a rough instruction (often dictated by voice) into a precise prompt that can be handed straight to…
refining-requirementsTurn a vague app idea or an incomplete spec into a signed-off, implementation-ready requirements document…
syncing-agent-tiersPush the canonical sub-agent tier definitions (executor, architect, scout, worker) into every listed…
transplanting-harnessesTranslate a reference repository's development harness — policy docs (AGENTS.md / CLAUDE.md), agent skills…
ui-ux-designingProduces one app-wide UX guidelines document (docs/design/ux-guidelines.md or a caller-named path) fixing…

Commands

CommandDescription
smart-commitAnalyze the working tree, group related changes, and create commits at a sensible granularity

Agents

AgentDescription
architectOpus 5.5 high の難所担当。
executorOpus 5.5 low の実行役。
scoutHaiku 5.5 high の調べ物役。
workerSonnet 5.5 at medium effort, the tier for briefed text work.

Requirements

  • Claude Code CLI

Author

Tomada (@muscle_coding)

Practitioner and educator of AI-driven development.

PlatformURL
X (Twitter)https://x.com/muscle_coding
Zennhttps://zenn.dev/tmasuyama1114
Qiitahttps://qiita.com/tomada
YouTubehttps://www.youtube.com/@vibe-coding-studio
Profilehttps://www.vibecodingstudio.dev/founder

License

MIT

Source 1 files
hooks/register.tsx 36 lines
1/* @jsx h */
2/* @jsxFrag Fragment */
3
4// Never name a local variable `h` in a file that uses JSX. `h` and `Fragment`
5// are ambient globals the engine injects; every JSX tag compiles to a call of
6// `h`, so a local `h` silently breaks every tag in the file.
7
8import type { On } from 'claude-code'
9
10export function register(on: On) {
11  on('ui.render', { component: 'AbovePrompt' }, async ($, e, next) => {
12    // Other surfaces draw their own band, and a survey owns the band when one
13    // is up. `isWorking` is recomputed by the engine, so this single guard is
14    // the whole show-while-working / hide-when-done behaviour — there is no
15    // hide-on-complete code to write.
16    if (e.surface !== 'terminal' || e.props.hasSurvey || !e.props.isWorking) {
17      return next(e)
18    }
19
20    // Elements are never globals — they come from the surface's table.
21    // `$.ui.resolve` is synchronous despite living on `$.ui`.
22    const { Box, Text } = $.ui.resolve(e)
23
24    const rows = Math.min(3, e.props.maxRows)
25
26    return (
27      <Box flexDirection="column" height={rows}>
28        <Text color="magenta" bold>
29          {'✦ '}
30        </Text>
31        <Text color="cyan">hello from above the prompt</Text>
32      </Box>
33    )
34  })
35}
36