moose-basics
Installation
SKILL.md
Moose Basics
A MooseStack project is a declarative TypeScript/Python project that gets translated into a running analytics stack: HTTP ingest → Redpanda → ClickHouse → aggregation views → HTTP egress APIs. moose dev runs that stack locally and hot-reloads when you edit app/.
The sections below are independent — jump to whichever is relevant.
Golden rules — apply always
- Use
moose ls(or themcp__moose-dev__get_infra_mapMCP tool) as the source of truth for URLs and table names. Never curl or query a guessed path. After every edit toapp/index.ts, runmoose ls. If your route/table isn't listed, the TS compile failed — check logs (rule 3), don't keep poking. - Use the explicit
OlapTable+Stream+IngestApitrio. Do NOT useIngestPipeline— it's deprecated and will misbehave. If it appears in scaffolded comments or your training memory, ignore it. - Use the
mcp__moose-dev__get_logsMCP tool to diagnose errors. It takes alevelfilter (ERROR/WARN/INFO) and asearchregex so you can jump straight to compile failures, schema conflicts, or ingest errors instead oftail-ing rawmoose.log. Call it first when ingest returns errors, tables are missing, or a hot-reload seems stuck. Only fall back togrep -iE 'error|failed|cannot' moose.logif the MCP tool is unavailable.
1. What moose dev is doing
When you run moose dev --dockerless inside a scaffolded project, Moose starts (and supervises) a local stack as native host processes: