fixmyberlin
- 36 skills
- 0 followers
- 6 hours ago last updated
- ▌ Nuqs · fixmyberlinnuqs (type-safe URL query state) for Next.js and legacy/shared components. Prefer TanStack Router validateSearch on TanStack Router/Start apps. Use when writing nuqs hooks, parsers, NuqsAdapter setup, or Next.js URL state — not for greenfield TanStack route search params.
- ▌ Unslop Code · fixmyberlin bundleOrchestrated cleanup of LLM leftovers in an FMC app: TypeScript inference (no extra return types or `as`), Zod 4 at runtime boundaries with GeoJSON types and helpers, delete pass-through re-exports, drop unneeded legacy/migration shims, squash undeployed WIP migrations, skill-aligned code-review passes (react-dev, react-map-gl, tanstack-router-conventions, tech-stack, zustand), component location, decision lift, semantic HTML, leftover process artifacts on a merge-ready PR, then unslop-text on comments and docs in the branch. Use when the user asks to cleanup LLM changes, post-agent cleanup, unslop code, or to tidy a branch after agent/refactor work. Formerly cleanup-llm-changes.
- ▌ Unslop Text · fixmyberlinRewrite plans, markdown, comments, JSDoc, and user-facing strings so a human can follow the decision chain without losing facts. Use when the user asks to rewrite, make text readable, fix Grok wording, unslop prose, or when unslop-code phase 10 runs.
- ▌ Close Worktree · fixmyberlinClose a git worktree session: ensure a clean tree (via finish-work if dirty), review branch-related stashes, preserve keepable untracked files onto develop, rebase the feature branch onto develop and fast-forward develop, then remove the worktree and local branch. Use when closing a worktree, landing a feature branch into develop, cleaning up after a worktree session, or finishing a parallel worktree.
- ▌ Keystatic Astro · fixmyberlin bundleKeystatic + Astro Content Layer: config locations, dual-file CMS schemas, content collection structure, glob loaders, MDX blocks, and remote/fetched collections. Use when scaffolding or changing Keystatic collections, Astro content.config.ts, keystatic.config, MDX blocks, or build-time API-backed content.
- ▌ Academic Research · fixmyberlin bundleEvidence-bound academic research focused on facts, quotes, and sources for a specific question or topic. Uses Semantic Scholar, OpenAlex, Crossref, BASE, DNB, and citation-graph workflows. Use when the user asks to research a scholarly question, do a literature review, find papers, verify claims with citations, synthesize academic sources, or gather quotable evidence.
- ▌ New Project Setup · fixmyberlinOrchestrate greenfield FixMyBerlin/FMC repo bootstrap: plan which fixmyskills to install, git init, AGPL license, three finish-work commits. Use when scaffolding a new project or onboarding a new repo. Delegates to finish-work, tech-stack, and agent-orchestration — do not duplicate their steps.
- ▌ Maproulette Tagfix · fixmyberlin bundleWrite MapRoulette Tag Fix (cooperative) challenges: line-by-line GeoJSON with cooperativeWork, stable OSM type/id external IDs, task_markdown + Mustache instructions, and rebuild/update triggers. Use when creating or updating MapRoulette tag-fix challenges, cooperativeWork GeoJSON, task_markdown, remoteGeoJson, or challenge rebuilds.
- ▌ Accessibility Review · fixmyberlin bundleOrchestrates accessibility reviews of React/Tailwind/TanStack Form/React Map GL apps used in German administrative procedures (Verwaltungsvorgänge) against WCAG 2.2 AA plus selected AAA on critical flows, with BITV 2.0 and EN 301 549 framing. Use for a11y audits, WCAG/BITV/barrierefreiheit reviews, procurement accessibility assessments, or remediation planning on FMC geo/admin apps.
- ▌ Tanstack Start Migration · fixmyberlin bundleDEPRECATED — FMC Next.js → TanStack Start migrations are complete. Use tanstack-start-conventions and react-dev instead. Archived reference only; not installable via skills CLI.
- ▌ Prisma · fixmyberlinFMC Prisma schema conventions: singular PascalCase models, camelCase fields, plural camelCase list relations, singular to-one relations, relation renames, Prisma Client regeneration, and migrations. Use when editing or reviewing schema.prisma in tilda-geo, trassenscout, or sibling FMC apps.
- ▌ React Dev · fixmyberlin bundleReact 19 + TypeScript for FMC TanStack Start apps: typed components, events, generics, ref-as-prop, Compiler-first memoization, and useEffect discipline (naming, when not to use Effect, alternatives). Use when typing React components/hooks/events, or writing/reviewing useEffect, useEffectEvent, derived state, data-fetch effects, or oxlint React Compiler / Rules of React effect rules. Not for routing/server boundaries (see tanstack-start-* skills).
- ▌ Tech Stack · fixmyberlin bundleDefault FMC tech stack for geo-heavy React SPAs: Bun/Vite, React 19, TanStack, maps, styling, TypeScript editor/CLI alignment, tsconfig templates, browserslist client targets, Cursor MCP (Postgres, agent-browser), and when to pick sibling skills. Use when scaffolding a new app, evaluating libraries, setting up Bun install/global store or Knip, changing supported browsers or compat lint, setting up Cursor MCP, or making stack/architecture decisions on existing apps.
- ▌ Finish Work · fixmyberlinFMC finish-work workflow: run bun run check, fix failures, commit with a user-facing English message by default, and only show a draft when the user clearly did not want a commit. Use for finish work, run checks, wrap up, land changes, or create commits.
- ▌ React Map Gl · fixmyberlin bundlereact-map-gl/maplibre patterns for FMC geo apps: declarative Source/Layer (never addSource/addLayer), MapProvider + useMap(), interactiveLayerIds, flat Source/Layer, map-loaded guard, window.__mainMap debug exposure, Map event handlers (not useEffect), URL map state, initialViewState, cursor, feature state, missing images. Use when building or reviewing Map components, layers, click/hover handlers, setFeatureState, map URL sync, or agent/test map inspection in TanStack Start / Vite apps. Reference implementation: tilda-geo/app.
- ▌ Rust Wasm Geo · fixmyberlin bundleRust/WASM geo for FixMyBerlin FMC geo-heavy React apps: when to leave Turf for WASM, crate selection (geo, rstar, fast_paths, osm-reader, i_overlay, …), wasm-bindgen boundaries, and Vite integration for SPAs and TanStack Start. Use when adding WASM geo crates, profiling slow Turf, OSM/routing/isochrones, spatial indexes, or wiring wasm-pack into Vite.
- ▌ User Changelog · fixmyberlin bundleWeekly end-user release notes from Git commits — German prose in docs/user-changelog.md, not a technical changelog. Reads commit subjects and bodies; diffs only when needed. SHA boundaries in section headings avoid duplicate work. Use for user changelog, weekly user summary, end-user release notes, or Nutzer-Zusammenfassung.
- ▌ Playwright Skill · fixmyberlin bundleE2E testing and browser automation for TanStack Start apps (FMC/TILDA). Use @playwright/test for committed suites/CI; agent-browser MCP (skill tech-stack) for agent exploration; this skill for smoke tests, stubbed auth, map hooks, and quick /tmp scripts. Not for Next.js.
- ▌ Review Dependabot · fixmyberlinReview and merge open Dependabot PRs in the current workspace repo: changelog triage, risk classification, CI verification, and rebase merge. Use for "/review dependabot" or similar — always scoped to the repo you have open. Scheduled Bun/GitHub Actions/Docker bumps, grouped patches, security updates, semver-major upgrades.
- ▌ Touch Ipad Review · fixmyberlin bundleReviews React web apps for iPad and touchscreen usability with Tailwind CSS fixes. Audits touch targets, hover failures, touch-over list highlighting (Headless UI data-focus, Radix data-highlighted, inline rows), Safari/iPadOS quirks, layout fluidity, and FMC cursor conventions. Use when the user asks to review an app for touch, iPad, tablet, or touchscreen-optimized usage.
- ▌ Add DB Data Table · fixmyberlinAdd or update a Postgres data.* table via data-schema (spec, verify, load, publish). Import on each environment is data-schema/README.md. Use when processing SQL needs data inside Postgres; not for map tiles/GeoJSON StaticDatasets.
- ▌ Add Static Dataset · fixmyberlin bundleAdd a new static dataset to tilda-static-data geojson and integrate it through tilda-geo. Requires a matching tilda-static-data worktree, relinked geojson symlink, inferred config, missing-data questions, and type-guided meta.ts.
- ▌ Agent Orchestration · fixmyberlin bundleOrchestrator (default Grok 4.6 High, standard speed) with cursor-grok-4.6-low[fast=false] workers. Two separate setups: Cursor IDE (subagents in .cursor/agents) or Claude Code (cursor-agent CLI + .claude/skills). Use when configuring orchestration; pick the guide for your host.
- ▌ Tanstack Start Auth · fixmyberlin bundleBetter Auth on TanStack Start: betterAuth() config, plugins, adapters, sessions, and FMC route protection (layout beforeLoad for route UX, endpointAuth/guards for data boundaries, headers, tanstackStartCookies plugin, OAuth sign-in). Use for auth.ts, Better Auth, sign-in flows, session helpers, or secured routes/APIs.
- ▌
- ▌ Tilda Export Download · fixmyberlinDownload TILDA Geo dataset exports (GeoJSON, GPKG, FGB) from tilda-geo.de by bbox. Use when the user asks to export or download map data, bikelanes, roads, parkings, or other export tables for a bounding box.
- ▌ Tanstack Better Upload · fixmyberlin bundleDirect-to-S3 uploads in TanStack Start with @better-upload/server and @better-upload/client (presigned PUT, API route POST handlers, useUploadFiles/useUploadFile, S3 object helpers). Optional react-dropzone add-on only for multi-file drag-and-drop UX. Use for upload API routes, presigned S3, upload progress, post-upload DB persistence, or the dropzone component stack.
- ▌ Tilda Geo Private Repo · fixmyberlinTwo-remote workflow between public FixMyBerlin/tilda-geo (origin) and private FixMyBerlin/tilda-geo-private (private). Use when pushing experimental branches privately, syncing develop, or opening PRs back to the public repo.
- ▌ Zustand State Management · fixmyberlin bundleFMC conventions for Zustand v5 in React: file naming, custom-hook-only exports, atomic selectors, actions namespace, small focused stores. Use when adding or reviewing client global state, or debugging unnecessary re-renders and SSR/persist hydration issues. Not for server/async data (TanStack Query) or URL state (nuqs). For API details, middleware, slices, and migration, use the official llms.txt index below.
- ▌ Tilda Geo Agent Workflow · fixmyberlinGuides isolated feature / local-stack setup in tilda-geo: sibling worktrees, predev Docker, `.env.local`, reusing the develop db (`DEV_ATTACH_STACK`), seed, processing, static-data symlinks, agent-browser map debug. Use when creating a feature worktree, needing an isolated Docker stack, reusing another checkout's db, running processing/seed, touching static datasets, or debugging maps. Do not use for ordinary edits on develop/main or when already on an existing branch — stay in the current checkout.
- ▌ Topic Docs YAML Authoring · fixmyberlinAuthor and review `topic-docs` YAML files with valid field combinations, refs, and value reuse patterns. Use when creating or editing `topic-docs/*.yaml`, `topic-docs/groups.yml`, or chapter references.
- ▌ Tanstack Start Conventions · fixmyberlin bundleTanStack Start conventions for FixMyBerlin/FMC: app folder layout, thin routes, client/server file suffixes, createServerFn, selective SSR, experimental RSC, and API route param/search validation. Requires tanstack-router-conventions for validateSearch, search serialization, and loader + Query patterns. Use when scaffolding or refactoring Start apps, server functions, SSR, renderServerComponent, or API routes under routes/api/.
- ▌ Tanstack Router Conventions · fixmyberlin bundleTanStack Router conventions for FixMyBerlin/FMC (SPA or Start): validateSearch with Zod, parseSearch/stringifySearch for clean share URLs, map=zoom/lat/lng search param, loader + React Query patterns, typed Link/params, and TanStack devtools. Use when scaffolding a Vite + TanStack Router SPA, wiring router.tsx search serialization, route search params (including map viewport URLs), loaders, or Query integration — without TanStack Start server/SSR topics.
- ▌ Create Taginfo Project File · fixmyberlin bundleGenerate taginfo project JSON files for TILDA topics, extracting OSM tags from processing code.
- ▌ Cursor Worker Review · fixmyberlinIndependent read-only review via cursor-agent CLI (Grok 4.6 Low, ask mode). Use for skeptical validation of diffs, plans, or claimed completion before Fable declares done. Requires cursor-agent on PATH.
- ▌ Cursor Worker Implement · fixmyberlinRuns bounded implementation via cursor-agent CLI with Grok 4.6 Low. Use when Fable has a clear plan and bulk edits, migrations, or multi-file work should not run on Fable tokens. Requires cursor-agent on PATH and Cursor subscription.