All authors

Claude Skills by lxsmnsyc
github.com/lxsmnsyc34 skills0 installs39 views
- Batched QueriesWhere `batchedQuery` from src/utils/batched-query.ts belongs, which is the browser, and why the server reads many keys with one query instead. Applies whenever writing or reviewing a read that fetches one key at a time, or reaching for batchedQuery.Votes: 0GitHub stars: 5
- ChangesetsEvery change ships with a changeset. The bump level says what kind of change it is: `patch` for something that already existed and now behaves differently, `minor` for something that did not exist before, `major` only with the maintainer's explicit approval. Keep the description short and to the point, a list when it covers several things. Applies to every task that touches this repository, without being asked.Votes: 0GitHub stars: 5
- Component LayoutHow a component is laid out on disk: when a single file becomes a folder, what the parts are called, and which way the imports run. Applies whenever adding to a component that is already long, or splitting one that has grown past reading in one sitting.Votes: 0GitHub stars: 5
- Deferred Jsx PropsA prop whose markup is built outside a render — pushed onto a queue, held in a signal, sent from a promise — is typed `() => JSX.Element`, never `JSX.Element`. Applies whenever adding a prop or an API that stores markup and draws it later.Votes: 0GitHub stars: 5
- Dialog TransitionsThe `Transition` around a dialog decides when it is mounted and nothing else — the fade belongs to the `TransitionChild` overlay and panel inside it. Applies whenever adding or changing a transition in `src/components/styled`, or giving a dialog an animation of its own.Votes: 0GitHub stars: 5
- Effect PropsAn effect wakes on its sources changing, not on its answer changing. A component whose effects do stateful work — loading a sheet, starting a playhead, opening a subscription — reads those props through memos, so a caller that rebuilds its list does not restart everything in it. Applies whenever writing or reviewing a component with a `createEffect` fed by props.Votes: 0GitHub stars: 5
- Lair SpawnsA legendary lair is also a wild spawn, and a legendary spawns only where its lairs stand. Applies whenever adding, moving or removing a lair, a legendary's biomes, or a legendary in a biome's spawn pool.Votes: 0GitHub stars: 5
- Light CommentsKeep comments light: short enough to read at a glance, and about the why rather than the what. Applies whenever writing or reviewing a comment or a doc block. Most blocks are one to four lines; history, anecdote and restatement of the code below are cut.Votes: 0GitHub stars: 5
- Paged ListsAny list that can grow without bound is paged, never drawn whole. Lists of rows page at LIST_PAGE (20) through createPager from src/components/styled/pager.tsx; grids of squares page at their grid size (BOX_SIZE for the pokemon box, GRID_SIZE for the item tray). Applies whenever rendering a collection whose length the player controls.Votes: 0GitHub stars: 5
- Prefer For OfWrite for-of loops rather than callback-taking Array methods (map, filter, forEach, reduce, some, every, find, flatMap and the like). Applies whenever writing or editing any code in src.Votes: 0GitHub stars: 5
- Prefer SetsPrefer Set (and Map) lookups over Array + .some/.indexOf/.includes for membership checks. Applies whenever writing or reviewing code that tests "is X one of these values". O(1) hash lookup instead of O(n) scan, and intent reads clearer.Votes: 0GitHub stars: 5
- Registry DescriptionsHow to write the one-line `description` a registered item, ability or move carries. Applies whenever adding an entry to a data registry under src/data, or rewording an existing line. The line describes this engine's behaviour, not the mainline's, and is derived from the data wherever the data already knows the answer.Votes: 0GitHub stars: 5
- Resource SuspenseA component that calls `createResource` must not read it. The declaration lives in one component body and every read of the data signal lives in a child, wrapped in `Suspense`. A signal filled in by an effect that only loads something is a resource written out longhand. Applies whenever adding a resource to a component, writing a new component that reads one, or writing an effect that loads.Votes: 0GitHub stars: 5
- Server Function OrderA server function is addressed by its place in its file, and only the build guard keeps a tab from another build from calling the wrong one. Applies whenever adding, removing, moving or changing the parameters of a function whose body opens with 'use server', and whenever touching the build guard or anything that calls the server outside `fetch`.Votes: 0GitHub stars: 5
- Server Function ValidationA server function checks every argument against a valibot schema from src/server/validate.ts before it acts, because the parameter types are gone by the time a call arrives. Applies whenever adding a 'use server' function or giving an existing one something new to read.Votes: 0GitHub stars: 5
- Spawn SurfacesA biome's pools are mixed into one roster, and each cell cuts it by surface. A species' kind (ground, water or flying) decides which surfaces it stands on, and only an amphibious water species leaves the water. Applies whenever adding or editing a spawn pool, a species' habitat, egg groups or biomes, or how spawns and phenomena are placed.Votes: 0GitHub stars: 5
- Sprite FpsEvery sprite sheet in this game animates at 24fps, and drawn clips play at the speed they were drawn at. Applies whenever writing or reviewing animation code — pokemon sheets, effect and particle atlases, overworld characters — or converting a frame count into milliseconds.Votes: 0GitHub stars: 5
- Sprite Sheet LayoutPokemon sheets are built in the SpriteCollab checkout and copied in whole: a folder per pokemon holding one layout, one binary of frames and a PNG per coat. Applies whenever writing or reviewing anything that reads a sheet, imports one, or draws a species sprite.Votes: 0GitHub stars: 5
- Trigger Driven AbilitiesBattle ability implementation pattern: when an ability's effect does not override or mutate the detection event's properties, split it into a detection listener that fires triggerAbility and an effect listener on UnitTriggerAbility. Applies whenever writing or refactoring abilities in src/battle/abilities.Votes: 0GitHub stars: 5
- Turn DurationsA mainline turn is worth two seconds in this engine. Any duration taken from the main games — a status that lasts four turns, a residual that bites once a turn, a screen that holds for five — is written as turns(n) from src/battle/turn.ts rather than as a millisecond literal.Votes: 0GitHub stars: 5
- World GenerationThe world has two generations, the live one is frozen, and every roll that places something on the ground goes through `world.draws(key)` with a name. Applies whenever changing terrain, biomes, scenery, landmark placement, towns, portals, cave mouths or start positions, or any table that stores something placed on the ground.Votes: 0GitHub stars: 5
- Ability PoolsAn ability pool is built by walking **up** the evolution chain, never across the family and never forwards. An ability exclusive to an evolution is out of reach of every stage below it. Applies whenever writing or reviewing code that asks what abilities a species can have, and whenever filling in a species' ability data.Votes: 0GitHub stars: 5
- Board ModesThe overworld board is drawn either laid back under the camera or flat from straight above, and which one is in hand is asked of the board rather than assumed. Applies whenever writing or reviewing anything that draws on the chunk board, projects a point onto it, or reads how far it is tilted.Votes: 0GitHub stars: 5
- Device SettingsHow a setting that belongs to the machine rather than to the account is stored and read: one module signal in src/components/app/settings.ts, one JSON key in localStorage, loaded after hydration. Applies whenever adding a preference a player sets for themselves, or reading one from a component or from canvas code.Votes: 0GitHub stars: 5
- Dialog LayoutDialog furniture is drawn and aligned by the styled primitives: the title sits on a blue nameplate across the sheet's top edge, and the DialogActions dock at the foot puts the way out on the left and the actions on the right. A dialog has one way out, a button of its own. Applies when building or changing any dialog in src/components.Votes: 0GitHub stars: 5
- Family IdsA family id in `src/data/ids/families.ts` is append-only: a new family takes the next number at the end, never a number between two existing ids, and no id is left unused. Players' candy stacks are keyed by it and the species day gives each id a day of the year. Applies whenever a new evolution family is registered.Votes: 0GitHub stars: 5
- Grid CardsA square in a grid says what it is in a tooltip, and gets a hover card only where it offers more than one thing to do. Applies whenever adding a square to an item or candy tray, or giving one of those squares something to press.Votes: 0GitHub stars: 5
- Paged ListsAny list that can grow without bound is paged, never drawn whole. Lists of rows page at LIST_PAGE (20) through createPager from src/components/styled/pager.tsx; grids of squares page at their grid size (BOX_SIZE for the pokemon box, GRID_SIZE for the item tray). Applies whenever rendering a collection whose length the player controls.Votes: 0GitHub stars: 5
- Registry DescriptionsHow to write the one-line `description` a registered item, ability or move carries. Applies whenever adding an entry to a data registry under src/data, or rewording an existing line. The line describes this engine's behaviour, not the mainline's, and is derived from the data wherever the data already knows the answer.Votes: 0GitHub stars: 5
- Signature AbilitiesA signature ability is one invented ability per evolution family, numbered in the 200000 band and granted rather than rolled at birth. A legendary **group**, a region's **starter trio** and a pair of **counterpart families** each share one theme across their members. Applies whenever designing, naming, implementing or reviewing a signature ability.Votes: 0GitHub stars: 5
- Species FormsA form is its own species, numbered in the band past a million, and it is its own row in the dex record while sharing one row in the printed dex. Applies whenever adding an alternate form, or writing code that turns a species id into a dex number, a region or a sheet.Votes: 0GitHub stars: 5
- TerracesHow a step between terrace levels works in the overworld, what a cliff tile is, and how both boards draw it. Applies whenever changing terrace levels, walkability, placement of anything on the ground, or how the board draws a step.Votes: 0GitHub stars: 5
- Server ReadsThe browser reads the database only through server functions. A read checks its arguments, verifies the caller with `requireReader`, applies who may see the rows itself, and is registered with `readOnly`. Applies whenever adding or changing something the browser reads, or a table the browser follows live.Votes: 0GitHub stars: 5
- Action FormsA dialog that asks the player something and hands an answer back is an action form: `openForm(Form, input)` from anywhere, awaited, null when the player walks away. An NPC is one folder under `src/overworld/npcs`: `createNpc` in its `index.ts` and the script it loads, which talks through a conversation of forms. Applies when adding a question dialog, an NPC, or changing what an NPC does.Votes: 0GitHub stars: 5