Add Flutter Docusaurus Locale
matthiasn/lotti
Add, complete, or audit a locale across a Flutter application's ARB catalogs and a localized Docusaurus manual, including generated localization code, locale selectors, native platform declarations…
Write and debug Flutter widget tests using package:spot selectors, assertions, interactions, screenshots, and timeline reports.
$ npx skills add passsy/spot --skill spot-testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install passsy/spot spot-testing --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/passsy/spot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/spot-testing .claude/skills/spot-testing && 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 "spot-testing" agent skill from https://github.com/passsy/spot/tree/main/skills/spot-testing into .claude/skills/spot-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spot-testing", 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/passsy/spot/tree/main/skills/spot-testingType 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 passsy/spot --skill spot-testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install passsy/spot spot-testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/passsy/spot.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/spot-testing .agents/skills/spot-testing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "spot-testing" agent skill from https://github.com/passsy/spot/tree/main/skills/spot-testing into .agents/skills/spot-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spot-testing", 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 passsy/spot --skill spot-testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install passsy/spot spot-testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/passsy/spot.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/spot-testing .cursor/skills/spot-testing && 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 "spot-testing" agent skill from https://github.com/passsy/spot/tree/main/skills/spot-testing into .cursor/skills/spot-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spot-testing", 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/passsy/spot.git --path skills/spot-testing--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 passsy/spot --skill spot-testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install passsy/spot spot-testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/passsy/spot.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/spot-testing .gemini/skills/spot-testing && 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 "spot-testing" agent skill from https://github.com/passsy/spot/tree/main/skills/spot-testing into .gemini/skills/spot-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spot-testing", 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 passsy/spot spot-testingInstalls 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 passsy/spot --skill spot-testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/passsy/spot.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/spot-testing .github/skills/spot-testing && 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 "spot-testing" agent skill from https://github.com/passsy/spot/tree/main/skills/spot-testing into .github/skills/spot-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spot-testing", 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 passsy/spot --skill spot-testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install passsy/spot spot-testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/passsy/spot.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/spot-testing .opencode/skills/spot-testing && 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 "spot-testing" agent skill from https://github.com/passsy/spot/tree/main/skills/spot-testing into .opencode/skills/spot-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spot-testing", 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.
spot-testingWrite and debug Flutter widget tests using package:spot selectors, assertions, interactions, screenshots, and timeline reports.
Spot Testing is an agent skill from passsy/spot. Write and debug Flutter widget tests using package:spot selectors, assertions, interactions, screenshots, and timeline reports. Use when a project uses Spot or the user asks to adopt it for widget tests.
Its SKILL.md is about 1.1k 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 Mobile, covering Cross-platform mobile apps. It works with Flutter. The repository describes itself as: Flutter widget test toolkit - spot, act, validate. Better selectors, automatic screenshots, chainable. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit ca954e9. 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:
flutterFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Spot Testing loads about 1.1k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 432 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 found no risky patterns in SKILL.md.
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 passsy/spot at commit ca954e9, republished under its Apache-2.0 licence (© passsy). 432 words, ~1,147 tokens.
.claude/skills/spot-testing/SKILL.md (or your agent's skills folder).Use package:spot/spot.dart alongside package:flutter_test/flutter_test.dart in ordinary testWidgets tests.
Spot is a development dependency; it does not require a custom test runner.
Keep the project's existing test setup and migrate only the tests relevant to the request.
spot<W>() for an exact widget type, spotText('Save') for text, spotIcon(Icons.add) for an icon, and spotKey(key) for a key.spot<AppBar>().spot<IconButton>() or spot<ElevatedButton>(children: [spotText('Save')]).
Do not hide unintended duplicates with .first().existsOnce(), doesNotExist(), or existsExactlyNTimes(n) according to the expected count.has... matchers instead of adding more with... filters.
For example, spot<Tooltip>().existsOnce().hasMessage('Save') reports the actual message when it differs.snapshot() is a result from one point in time.
Query again after a state change instead of reusing a snapshot as current state.spotOffstage() or spotAllWidgets() only when the test intentionally checks offstage or combined content.spotTextWhere((text) => text.startsWith('Saved')).
This callback receives a Subject<String>, not a string predicate returning a boolean.Await act.tap(selector) and act.enterText(selector, text).
These interactions pump frames, but do not wait for every animation or asynchronous operation to finish.
Use the existing test's controlled pumps to reach the state being asserted; use pumpAndSettle() only when the UI is expected to settle.
act.tap checks that the target can receive the tap.
When it fails, inspect the selector, layout, overlays, and current frame before changing the interaction.
act.inspectTap(selector) provides diagnostics without sending pointer events or pumping a frame.
Read the inspection before another pump, or inspect again afterward.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:spot/spot.dart';
void main() {
testWidgets('save updates the status', (tester) async {
var saved = false;
await tester.pumpWidget(
MaterialApp(
home: StatefulBuilder(
builder: (context, setState) => Scaffold(
body: Column(
children: [
Text(saved ? 'Saved' : 'Unsaved'),
ElevatedButton(
onPressed: () {
setState(() {
saved = true;
});
},
child: const Text('Save'),
),
],
),
),
),
),
);
spotText('Unsaved').existsOnce();
final save = spot<ElevatedButton>(children: [spotText('Save')]);
await act.tap(save);
spotText('Saved').existsOnce();
spotText('Unsaved').doesNotExist();
});
}Spot records assertions and interactions for its timeline and generates an HTML report on test failure by default.
Use the report path printed by the test run when debugging.
To generate a report for a passing test, set timeline.mode = TimelineMode.always inside that test, or run:
flutter test --dart-define=SPOT_TIMELINE_MODE=always test/example_test.dartAwait loadAppFonts() inside the widget test before pumping the UI when readable screenshot text matters.
Capture the state of interest before later pumps or teardown with await takeScreenshot() or await takeScreenshot(selector: spot<Scaffold>()).
A report is built from recorded events, not a screenshot of every pumped frame; add assertions at meaningful intermediate states.
The timeline is for widget tests and is not supported with integration_test.
For APIs beyond these patterns, consult the installed version's public API or its package documentation instead of guessing matcher names.
© passsy, Apache-2.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 skills/spot-testing of passsy/spot.
Open the folder on GitHubat commit ca954e9
Spot Testing 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 |
|---|---|---|---|---|---|---|
| Spot Testing this skillpasssy/spot | 112 | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Add Flutter Docusaurus Localematthiasn/lotti | 1.2k | — | ~1.2k | Automated safety check: Pass | GPL-3.0 | |
| Tm Launcher DesignFar-Se/tabame | 372 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Flutter Initbear2u/my-skills | 933 | — | ~2.5k | Automated safety check: Pass | None | |
| Mobile App UI Designceorkm/mobile-app-ui-design | 403 | — | ~2k | Automated safety check: Pass | None | |
| Marionette Flutter Drive Appleancodepl/marionette_mcp | 482 | — | ~11k | Automated safety check: Pass | Apache-2.0 |
matthiasn/lotti
Add, complete, or audit a locale across a Flutter application's ARB catalogs and a localized Docusaurus manual, including generated localization code, locale selectors, native platform declarations…
Far-Se/tabame
Create or revise Tabame's Flutter launcher designs: frames, search bars, result rows, palettes, typography, and action dialogs.
bear2u/my-skills
A skill your agent uses when user wants to create a new Flutter project (Todo/Habit/Note/Expense/Custom domain) with Clean Architecture, Riverpod 3.0, Drift, and modern Flutter stack
ceorkm/mobile-app-ui-design
Design high-quality mobile app UI/UX screens, flows, and components.
leancodepl/marionette_mcp
Set up and drive a running Flutter app (debug or profile) with Marionette — an AI agent's hands and eyes for the app.
JustLookAtNow/pt_mate
Capture and show two Flutter UI screenshots for this project: one landscape/large-screen preview and one portrait/mobile preview, without using Flutter Web.
Works with
Categories
Write and debug Flutter widget tests using package:spot selectors, assertions, interactions, screenshots, and timeline reports. Spot Testing is an agent skill from passsy/spot. Write and debug Flutter widget tests using package:spot selectors, assertions, interactions, screenshots, and timeline reports.
Spot Testing fits situations like: A project uses Spot; the user asks to adopt it for widget tests.
Run `npx skills add passsy/spot --skill spot-testing -a claude-code`. Or copy the skill folder (skills/spot-testing in passsy/spot) into .claude/skills/spot-testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add passsy/spot --skill spot-testing -a codex`. Or copy the skill folder (skills/spot-testing in passsy/spot) into .agents/skills/spot-testing 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 passsy/spot --skill spot-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/spot-testing, .gemini/skills/spot-testing, .github/skills/spot-testing and .opencode/skills/spot-testing in your project.
Going by SKILL.md and its folder, Spot Testing needs the command-line tools its instructions call (flutter).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Spot Testing is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.1k tokens (SKILL.md is roughly 4.6k 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 Spot Testing: Add Flutter Docusaurus Locale (matthiasn/lotti, 1.2k stars), Tm Launcher Design (Far-Se/tabame, 372 stars), Flutter Init (bear2u/my-skills, 933 stars) and Mobile App UI Design (ceorkm/mobile-app-ui-design, 403 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
passsy (a GitHub user) maintains it in passsy/spot, which has 112 GitHub stars. The repository was last updated on October 7, 2026.
Source: passsy/spot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.