Theming
Code-with-Beto/skills
Scaffold a unified, cross-platform color theme system into an Expo Router app.
Review a vision-mobile React Native change (diff, branch, PR or file) against this repo's own traps and conventions: action sheet return values, setNativeProps caret, safe-area edges, editor…
$ npx skills add ecency/vision-mobile --skill code-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ecency/vision-mobile code-review --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/ecency/vision-mobile.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/code-review .claude/skills/code-review && 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 "code-review" agent skill from https://github.com/ecency/vision-mobile/tree/development/.claude/skills/code-review into .claude/skills/code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-review", 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/ecency/vision-mobile/tree/development/.claude/skills/code-reviewType 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 ecency/vision-mobile --skill code-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ecency/vision-mobile code-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ecency/vision-mobile.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/code-review .agents/skills/code-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "code-review" agent skill from https://github.com/ecency/vision-mobile/tree/development/.claude/skills/code-review into .agents/skills/code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-review", 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 ecency/vision-mobile --skill code-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ecency/vision-mobile code-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ecency/vision-mobile.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/code-review .cursor/skills/code-review && 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 "code-review" agent skill from https://github.com/ecency/vision-mobile/tree/development/.claude/skills/code-review into .cursor/skills/code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-review", 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/ecency/vision-mobile.git --path .claude/skills/code-review--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 ecency/vision-mobile --skill code-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ecency/vision-mobile code-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ecency/vision-mobile.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/code-review .gemini/skills/code-review && 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 "code-review" agent skill from https://github.com/ecency/vision-mobile/tree/development/.claude/skills/code-review into .gemini/skills/code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-review", 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 ecency/vision-mobile code-reviewInstalls 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 ecency/vision-mobile --skill code-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ecency/vision-mobile.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/code-review .github/skills/code-review && 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 "code-review" agent skill from https://github.com/ecency/vision-mobile/tree/development/.claude/skills/code-review into .github/skills/code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-review", 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 ecency/vision-mobile --skill code-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ecency/vision-mobile code-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ecency/vision-mobile.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/code-review .opencode/skills/code-review && 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 "code-review" agent skill from https://github.com/ecency/vision-mobile/tree/development/.claude/skills/code-review into .opencode/skills/code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-review", 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.
code-reviewReview a vision-mobile React Native change (diff, branch, PR or file) against this repo's own traps and conventions: action sheet return values, setNativeProps caret, safe-area edges, editor…
Code Review is an agent skill from ecency/vision-mobile. Review a vision-mobile React Native change (diff, branch, PR or file) against this repo's own traps and conventions: action sheet return values, setNativeProps caret, safe-area edges, editor teardown order, notification routing copies, SDK mutation wrappers, EStyleSheet theming.
Its SKILL.md is about 2k 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, Code review and Theming and dark mode. It works with React Native. The repository describes itself as: Ecency Mobile - reimagined social blogging, contribute and get rewarded (for Android and iOS). The licence is MIT.
Read from SKILL.md and the folder at commit feef7d1. 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:
yarnFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use yarn, which can reach the network depending on how they are called.
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.
Code Review loads about 2k tokens when it runs. Until then it costs about 73 tokens; SKILL.md has 866 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 ecency/vision-mobile at commit feef7d1, republished under its MIT licence (© ecency). 866 words, ~2,000 tokens.
.claude/skills/code-review/SKILL.md (or your agent's skills folder).Architecture, commands, TypeScript and ESLint rules live in CLAUDE.md. This file holds the traps and repo conventions this review gates on. Confirm each finding against the code on disk before reporting it.
Resolve an object, gate on a named field. A repo convention, not something the library enforces today. Two different payloads are involved, so keep them apart when reviewing:
SheetManager.show(name, { payload }), which the provider hands to
the registered component as a prop. Every sheet uses this.<ActionSheet payload={...}>, ActionSheet's OWN prop. Nothing in src/ sets it, and
forwarding the show payload into it is not the same thing.Only the second one feeds payloadRef, and the library resolves a close with
data || payloadRef.current || data. Since no sheet sets that prop, payloadRef.current
is undefined and a falsy result reaches the caller intact today. Keep the convention
anyway: adding payload to one <ActionSheet> would silently turn every falsy cancel in
that sheet into a confirm. A dismissal also resolves undefined, which truthiness cannot
tell apart from a deliberate false. Sheets resolve { cancelled: true }
or { field: value } instead. Sheets document their own contract, e.g.
src/components/searchFiltersSheet/searchFiltersSheet.tsx. Callers test the field,
abridged from src/screens/searchResult/screen/searchResultScreen.tsx:65-77:
const result = await SheetManager.show(SheetNames.SEARCH_FILTERS, {
payload: { filters, searchValue: clipSearchValue(searchInputValue) },
});
if (result && typeof result === 'object' && result.filters) { ... }Sheets unmount on hide, so mount-time resets are enough and cleanups run on close (CLAUDE.md, Sheets). Reject "state persists between invocations".
A throw in a sheet render or cleanup is fatal: SheetProvider wraps
<Application/> (src/index.tsx:39-43), outside ErrorBoundary
(src/screens/application/index.tsx:17). Watch native objects in cleanups.
Payloads freeze at show time. A handler in a payload keeps the closure it had
when the sheet opened, so route it through a ref
(src/components/quickPostModal/quickPostModalContent.tsx:565-575).
Missing SheetDefinition? everySheetHasDefinition
(src/navigation/sheets.tsx:358) fails typecheck and names it. Keys are plain string
literals.
setNativeProps({ text }) on its own moves the caret. Android keeps the
caret's DISTANCE FROM THE END, so it lands inside the text just written and the next
keystroke splits it. Pass selection whenever the caret position after the write
matters: inserts and appends into existing text, plus full replacements of a focused
field. A reset to text: '' does not need it. Call sites that pass it:
src/components/quickPostModal/quickPostModalContent.tsx:559 and :604, plus
src/components/markdownEditor/view/markdownEditorView.tsx:371.componentWillUnmount runs in the commit phase ahead of descendant effect cleanups,
so the screen calls flushPendingEditorWork() then _saveDraftToDB()
(src/screens/editor/screen/editorScreen.tsx:116-127). Register new deferred editor
work via registerPendingFlush
(src/components/uploadsGalleryModal/mediaInsertQueue.ts:33), not a local cleanup.edges REPLACES the defaults, it does not add to them. edges={['bottom']}
removes the top inset. The top inset is generally the screen's job: a screen
rendering BasicHeader wraps it in its own SafeAreaView
(src/components/basicHeader/view/basicHeaderStyles.ts:13).Notification type strings are matched in more than one place, whose spellings do NOT agree. A new type may need adding in several of them.
src/screens/application/hook/useInitApplication.tsx:222-302; its default does
nothing.src/screens/application/container/applicationContainer.tsx:891-901 admits
mention, reply, transfer, delegations, scheduled_published, payouts,
account_update and weekly_earnings. Each one also needs a case in the title/body
switch at :914, whose default announces a bare @source.src/components/foregroundNotification/foregroundNotification.tsx:51-58 admits
reply, mention, transfer, delegations and scheduled_published; anything
else shows nothing. Its own _onPress (:127) routes transfer and delegations
to the wallet, everything else to a post.Mind the singular/plural split: tap routing matches favorite and has no payout case
at all, the list rendering (src/utils/notificationImage.ts:12,
src/components/notificationLine/view/notificationLineView.tsx:138) matches favorites
and payouts, while the websocket allowlist has payouts but no favorites.
useMutationAuth() from
src/providers/sdk/mutations/common.ts, then the SDK hook. No key decryption, no
HiveSigner/HiveAuth branching in one; the adapter owns that. The documented
exceptions are not broadcasts, so do not report them: useGenerateImageMutation.ts
and the digest hooks in useNewsletterDigestMutations.ts bind the HiveSigner code
from useAuth(), while useClaimPointsMutation.ts decrypts
currentAccount.local.accessToken into a REST access token. A new wrapper that
reaches for keys without a non-broadcast reason is still a finding.enabled: !!param.QUERIES, the DEFAULT export of
src/providers/queries/queryKeys.ts; SDK-owned data uses QueryKeys from
@ecency/sdk.ConfigManager.setDmcaLists in
src/providers/queries/sdk-config.ts:69; a hand-rolled filter in a query is a
finding.vestsToHp(vests, hivePerMVests) takes TWO args and returns 0 when either is
falsy (src/utils/conversions.ts), so a missing rate renders a silent 0.'$primaryBackgroundColor' inside
EStyleSheet.create or EStyleSheet.value('$primaryBlue') at runtime. A literal hex
is a finding when it shadows a var, above all one that differs between
src/themes/lightTheme.ts and src/themes/darkTheme.ts. Deliberately
theme-independent chrome is not a finding, e.g. the black media backgrounds in
src/screens/waves/styles/wavesReels.styles.ts, so flag literals on a surface that
should follow the theme. $white is #1e2835 in the dark theme, $pureWhite stays
white in both.intl.formatMessage({ id: 'section.key' }), key added to the NESTED
src/config/locales/en-US.json; ids are dotted only because flattenMessages
flattens the tree in src/index.tsx.useAppSelector (src/hooks/index.ts:6, a
TypedUseSelectorHook<RootState> alias) plus a memoized selector from
src/redux/selectors. The finding is an inline lambda picking state apart, not the
hook name. Handlers are _-prefixed.Group as inline (must fix), outside-diff (should fix), nitpick. Per finding:
**[BUG|SECURITY|PERF|STYLE|NITPICK]** file:line, then what is wrong, why it matters
and the fix. Gate on yarn lint, yarn typecheck and yarn test:ci.
© ecency, MIT. 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/code-review of ecency/vision-mobile.
Open the folder on GitHubat commit feef7d1
Code Review 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 |
|---|---|---|---|---|---|---|
| Code Review this skillecency/vision-mobile | 262 | — | ~2k | Automated safety check: Pass | MIT | |
| ThemingCode-with-Beto/skills | 141 | — | ~2.5k | Automated safety check: Pass | None | |
| Uniwindpproenca/dot-skills | 214 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Olore Nativewind 4olorehq/olore | 103 | — | ~478 | Automated safety check: Pass | MIT | |
| Cometchat React Native Customizationcometchat/cometchat-skills | 129 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Cometchat React Native Migrationcometchat/cometchat-skills | 129 | — | ~1.3k | Automated safety check: Pass | MIT |
Code-with-Beto/skills
Scaffold a unified, cross-platform color theme system into an Expo Router app.
pproenca/dot-skills
Uniwind best practices for React Native styling with Tailwind CSS.
olorehq/olore
Local NativeWind v4 documentation reference. An agent skill from olorehq/olore.
cometchat/cometchat-skills
Theme, restyle and extend the CometChat React Native UI Kit v5 — theme modes and color tokens, per-component style objects, view slots, and the DataSource decorator chain for custom message types.
cometchat/cometchat-skills
Migrate a React Native app from CometChat UI Kit v4 to v5 — the 16 removed components, what replaces each, the composite-to-modular rewrite, and the theming change from setter objects to a provider.
HoangNguyen0403/agent-skills-standard
Style React Native apps with StyleSheet API, Flexbox, theming, and responsive design.
ecency/vision-mobile
A skill your agent uses when adding a new screen, route, or user-facing feature to the Ecency mobile React Native app, covering navigator registration, route params, i18n strings and styling.
ecency/vision-mobile
A skill your agent uses when adding, wrapping, or calling an @ecency/sdk mutation hook in the mobile app (Hive broadcasts like transfer, follow, vote, delegate, community, engine token, or points)
ecency/vision-mobile
A skill your agent uses when reading server data in the mobile app - wiring an @ecency/sdk query option into a screen, adding or editing a hook under src/providers/queries/, paginating a feed or…
ecency/vision-mobile
A skill your agent uses when adding, registering, or debugging a bottom sheet (action sheet) in the mobile app, including when a sheet's cancel or dismissal reaches the caller as the wrong result.
ecency/vision-mobile
Diagnose a bug in the Ecency mobile app when a broadcast or login fails, a wallet or transfer amount is wrong, a screen or deep link does not open, a bottom sheet misbehaves, dark mode colors are…
Works with
Categories
Review a vision-mobile React Native change (diff, branch, PR or file) against this repo's own traps and conventions: action sheet return values, setNativeProps caret, safe-area edges, editor…. Code Review is an agent skill from ecency/vision-mobile. Review a vision-mobile React Native change (diff, branch, PR or file) against this repo's own traps and conventions: action sheet return values, setNativeProps caret, safe-area edges, editor teardown order, notification routing copies, SDK mutation wrappers, EStyleSheet theming.
Code Review fits situations like: tasks that involve Cross-platform mobile apps; tasks that involve Code review; tasks that involve Theming and dark mode.
Run `npx skills add ecency/vision-mobile --skill code-review -a claude-code`. Or copy the skill folder (.claude/skills/code-review in ecency/vision-mobile) into .claude/skills/code-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ecency/vision-mobile --skill code-review -a codex`. Or copy the skill folder (.claude/skills/code-review in ecency/vision-mobile) into .agents/skills/code-review 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 ecency/vision-mobile --skill code-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/code-review, .gemini/skills/code-review, .github/skills/code-review and .opencode/skills/code-review in your project.
Going by SKILL.md and its folder, Code Review needs the command-line tools its instructions call (yarn).
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.
Code Review is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 8k 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 Code Review: Theming (Code-with-Beto/skills, 141 stars), Uniwind (pproenca/dot-skills, 214 stars), Olore Nativewind 4 (olorehq/olore, 103 stars) and Cometchat React Native Customization (cometchat/cometchat-skills, 129 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ecency (a GitHub organization) maintains it in ecency/vision-mobile, which has 262 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 5, 2026.
Source: ecency/vision-mobile on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.