Tabler Astro Dev Server
tabler/tabler
Starts the right Tabler dev server, keeps it from clashing with builds and verifies changes in the browser before a page or component is handed back.
Write or update the end-user documentation at docs.moneymatter.app (packages/docs, Astro Starlight) and capture its light/dark screenshots from the local dev app with a throwaway test user.
$ npx skills add letehaha/moneymatter --skill user-docs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install letehaha/moneymatter user-docs --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/user-docs .claude/skills/user-docs && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "user-docs" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/user-docs into .claude/skills/user-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-docs", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/user-docsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add letehaha/moneymatter --skill user-docs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install letehaha/moneymatter user-docs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/user-docs .agents/skills/user-docs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "user-docs" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/user-docs into .agents/skills/user-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-docs", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add letehaha/moneymatter --skill user-docs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install letehaha/moneymatter user-docs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/user-docs .cursor/skills/user-docs && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "user-docs" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/user-docs into .cursor/skills/user-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-docs", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/letehaha/moneymatter.git --path .claude/skills/user-docs--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add letehaha/moneymatter --skill user-docs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install letehaha/moneymatter user-docs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/user-docs .gemini/skills/user-docs && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "user-docs" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/user-docs into .gemini/skills/user-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-docs", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install letehaha/moneymatter user-docsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add letehaha/moneymatter --skill user-docs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/user-docs .github/skills/user-docs && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "user-docs" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/user-docs into .github/skills/user-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-docs", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add letehaha/moneymatter --skill user-docs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install letehaha/moneymatter user-docs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/user-docs .opencode/skills/user-docs && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "user-docs" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/user-docs into .opencode/skills/user-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-docs", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
user-docsWrite or update the end-user documentation at docs.moneymatter.app (packages/docs, Astro Starlight) and capture its light/dark screenshots from the local dev app with a throwaway test user.
User Docs is an agent skill from letehaha/moneymatter. Write or update the end-user documentation at docs.moneymatter.app (packages/docs, Astro Starlight) and capture its light/dark screenshots from the local dev app with a throwaway test user. Use when a feature is added or its UI/behaviour changes and the docs or screenshots need to follow, when asked to "update the docs", "add a docs page", "retake screenshots", or when npm run screenshots:missing lists gaps.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Frontend & Design, covering Static sites and blogs. It works with npm and Astro. The repository describes itself as: A personal budget tracking application. Track your balances and transactions with bank connections or manual entry, categorize and analyze expenses and income, and many more. The licence is AGPL-3.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit de5319f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
RESEND_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
User Docs loads about 2.3k tokens when it runs. Until then it costs about 106 tokens; SKILL.md has 848 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
d are running (ports come from the root `.env.development.local`: `PORT`, `APPLICATION_PORT`), root `npm install` done (Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from letehaha/moneymatter at commit de5319f, republished under its AGPL-3.0 licence (© letehaha). 848 words, ~2,311 tokens.
.claude/skills/user-docs/SKILL.md (or your agent's skills folder).The docs site is packages/docs — a standalone npm project (not a root workspace). Articles are src/content/docs/<section>/*.mdx; screenshots are public/screenshots/<section>/<name>.png plus <name>.dark.png.
mcp__moneymatter__* tools for docs work. They act on the owner's real production account.docs-test@example.com), created by the seed script.mocks.mjs), never by editing rows.grep -rn "Plan & billing\|/settings/plan-billing" packages/docs/src/content/docs. Every <Screenshot src=…> on those pages is a retake candidate.sidebar.order in frontmatter), or add a directory and a sidebar group in astro.config.mjs.npm run screenshots:missing (in packages/docs) lists every referenced screenshot that has no file, with its alt and hint.<Steps>.sidebar: { badge: { text: 'Plus', variant: 'tip' } } in frontmatter and <Badge text="Plus" variant="tip" /> inline.alt is what the image actually shows; hint tells a human how to recapture it:<Screenshot
src="/screenshots/settings/change-password.png"
alt="The Password tab with the current, new and confirm password fields filled in, the strength meter, and the password requirements box."
hint="Open /settings/security/password… Crop to the tab content."
/>packages/frontend/src/i18n/locales/chunks/en/** (read via the i18n-editor agent — locale files are hook-blocked), behaviour from the component, limits and rules from the backend service. Drift found before: a button documented as "Select period" actually shows the chosen range ("Current month") unless the provider can't load history; a popover documented as listing per-account statuses only does so while a sync runs.Prerequisites: the dev frontend and backend are running (ports come from the root .env.development.local: PORT, APPLICATION_PORT), root npm install done (Playwright resolves from the root node_modules).
cd packages/docs
npm run screenshots:seedThe seed is idempotent. It signs up or signs in the test user, sets USD as base currency, connects SimpleFIN's public demo (Savings + Checking with real-looking synced transactions), creates the manual Everyday Checking account with three expenses, attaches a fake receipt JPG and invoice PDF to "Office chair", adds a passkey through a virtual authenticator, dismisses Quick Start, adds the Net Worth widget and saves the session to scripts/capture/.state.json. DOCS_USER_EMAIL=… npm run screenshots:seed seeds a separate user.
Then write a small per-shot script in your scratch/temp directory (not in the repo) importing the toolkit by absolute path:
import { APP, bothThemes, clipAround, innermost, open, shot } from '<repo>/packages/docs/scripts/capture/helper.mjs';
import { ENTITLEMENTS, mockEntitlements } from '<repo>/packages/docs/scripts/capture/mocks.mjs';
const { browser, page } = await open({ height: 1300 });
await page.goto(APP + '/settings/security/password');
await page.getByPlaceholder('Enter new password').fill('Correct-Horse-42!');
const card = innermost({ page, has: ['Security Settings', page.getByText('Password requirements')] });
await bothThemes({
page,
capture: ({ dark }) => shot({ page, target: card, src: '/screenshots/settings/change-password.png', dark }),
});
await browser.close();Conventions:
bothThemes; it emulates the OS color scheme, which the app follows.target (30px padding so shadows and rounded corners show). Several elements (trigger + popover, header + strip) → clip: await clipAround({ locators: [...] }). Full window only when the hint says so.shot says the target is taller than the viewport, open({ height: 1300 }).alt.| State | How |
|---|---|
First run (/welcome, empty dashboard with Quick Start) | Use a fresh DOCS_USER_EMAIL; sign up with open({ fresh: true }) and capture before running the seed (the seed confirms the currency and dismisses Quick Start). |
| Bank connection, synced transactions, bank-synced edit dialog | Seeded SimpleFIN demo. |
| Link a manual account to a bank | Seeded Everyday Checking + the demo's unconnected account. Open the dialog, never submit it. |
| Another active session | Second chromium.launch() context with an iPhone Safari userAgent that signs in, then capture the sessions tab from the main context. |
| Active subscription, trial ended / read-only | mockEntitlements({ page, entitlements: ENTITLEMENTS.activePlusYearly() }) or ENTITLEMENTS.trialEnded(); for the "See plans" toast add mockPlanRequiredOnSave({ page }) and save an edit. |
| Enable Banking consent expiring/expired | mockEnableBankingConsent({ page, connectionId, daysLeft }) on the seeded SimpleFIN connection. |
| Anything else unreachable | Find the response the component reads (its store or useQuery), rewrite just that response with page.route → route.fetch() → route.fulfill({ response, json }). Add it to mocks.mjs if it will be reused. |
RESEND_API_KEY empty the account can sign in immediately.networkidle: the app keeps an SSE stream open. Use locator.waitFor() plus short fixed waits.getByText matches the sidebar first (account names, "SimpleFIN"); scope with innermost, .last(), or a nearby unique text.getByText does not see <textarea>/<input> values — target the field element.combobox role once open; take bounding boxes before clicking.open() already sets a normal one.cd packages/docs
npm run screenshots:optimize # palette PNG, rewrites in place; the Docker build runs it too
npm run screenshots:missing # should be 0, or only what you deliberately left
npm run build # validates MDX and every internal linkReport which pages changed, which screenshots were (re)taken, any doc statements corrected against the code, and anything you mocked.
© letehaha, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/user-docs of letehaha/moneymatter.
Open the folder on GitHubat commit de5319f
User Docs next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| User Docs this skillletehaha/moneymatter | 160 | — | ~2.3k | Automated safety check: Notes | AGPL-3.0 | |
| Tabler Astro Dev Servertabler/tabler | 42k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Create Docsvictorgarciaesgi/nuxt-typed-router | 413 | 2 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Tabler Astro Component Scriptstabler/tabler | 42k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Kill AI Slopyetone/kill-ai-slop | 1.3k | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Motion Dev Animations199-biotechnologies/motion-dev-animations-skill | 105 | 1 repos | ~2.8k | Automated safety check: Notes | MIT |
tabler/tabler
Starts the right Tabler dev server, keeps it from clashing with builds and verifies changes in the browser before a page or component is handed back.
victorgarciaesgi/nuxt-typed-router
Create complete documentation sites for projects. An agent skill from victorgarciaesgi/nuxt-typed-router.
tabler/tabler
Rules for adding or fixing client-side scripts in Tabler's Astro components so the copied preview HTML stays readable, self-contained and runs in the right order.
yetone/kill-ai-slop
Find and remove AI slop — the generic, machine-default visual and copy tics of vibe-coded products — from a web project.
199-biotechnologies/motion-dev-animations-skill
Creates 120fps GPU-accelerated animations with Motion.dev (Framer Motion successor) for React, Next.js, Svelte, and Astro projects.
devantler-tech/ksail
Skill for building with the Astro web framework. An agent skill from devantler-tech/ksail.
letehaha/moneymatter
Deep-dive specification planner. An agent skill from letehaha/moneymatter.
letehaha/moneymatter
Add a new tool to the MoneyMatter MCP server. An agent skill from letehaha/moneymatter.
letehaha/moneymatter
Hunt "AI slop" in this codebase — duplication, reinvented wheels, over-engineering, defensive cruft, dead code, comment slop, performance antipatterns.
letehaha/moneymatter
Frontend conventions and component usage rules. An agent skill from letehaha/moneymatter.
letehaha/moneymatter
Occasional i18n catch-up: strip unused en keys, then fill any uk translations that slipped through via i18n-editor subagents.
letehaha/moneymatter
Creates backend e2e tests for new or existing endpoints. An agent skill from letehaha/moneymatter.
Categories
Write or update the end-user documentation at docs.moneymatter.app (packages/docs, Astro Starlight) and capture its light/dark screenshots from the local dev app with a throwaway test user. User Docs is an agent skill from letehaha/moneymatter.app (packages/docs, Astro Starlight) and capture its light/dark screenshots from the local dev app with a throwaway test user.
User Docs fits situations like: A feature is added; its UI/behaviour changes and the docs; screenshots need to follow; asked to update the docs.
Run `npx skills add letehaha/moneymatter --skill user-docs -a claude-code`. Or copy the skill folder (.claude/skills/user-docs in letehaha/moneymatter) into .claude/skills/user-docs in your project. Claude Code loads it when a task matches its description.
Run `npx skills add letehaha/moneymatter --skill user-docs -a codex`. Or copy the skill folder (.claude/skills/user-docs in letehaha/moneymatter) into .agents/skills/user-docs in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add letehaha/moneymatter --skill user-docs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/user-docs, .gemini/skills/user-docs, .github/skills/user-docs and .opencode/skills/user-docs in your project.
Going by SKILL.md and its folder, User Docs needs the command-line tools its instructions call (npm) and credentials named RESEND_API_KEY. Our summary lists: Node.js; Docker; A credential in RESEND_API_KEY.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
User Docs is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with User Docs: Tabler Astro Dev Server (tabler/tabler, 42k stars), Create Docs (victorgarciaesgi/nuxt-typed-router, 413 stars), Tabler Astro Component Scripts (tabler/tabler, 42k stars) and Kill AI Slop (yetone/kill-ai-slop, 1.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
letehaha (a GitHub user) maintains it in letehaha/moneymatter, which has 160 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 7, 2026.
Source: letehaha/moneymatter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.