一键导入
appfactory
This skill activates during: Use when this capability is needed.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
This skill activates during: Use when this capability is needed.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Author or edit a Cate IDE theme — one data-driven theme covering app chrome colors, the terminal ANSI palette, and Monaco editor syntax tokens. Use when the user asks to create, customize, recolor, or generate a Cate theme, mentions a color scheme (Dracula, Nord, "make Cate look like X"), or wants a new light/dark theme. Use when this capability is needed.
Use when user invokes /wtc to work with Docker Compose worktree isolation, start/stop infra per worktree, or check worktree status
一键发布 Markdown 到微信公众号草稿箱。基于 wenyan-cli,支持多主题、代码高亮、图片自动上传。 Use when this capability is needed.
Apply this skill when reviewing code changes, scope, risks, or verification gaps. Use when this capability is needed.
Apply this skill when Flutter widgets, screens, routing, state management, async UI, platform channels, assets, responsive layout, accessibility, or Flutter tests are created or changed. Use when this capability is needed.
Apply this skill when Rust source, Cargo metadata, features, traits, errors, ownership, async runtime, unsafe code, tests, examples, benchmarks, release profiles, MSRV, toolchain declarations, standard-library APIs, or public crate APIs are created or changed. Use when this capability is needed.
| name | appfactory |
| description | This skill activates during: Use when this capability is needed. |
Purpose: Performance optimization rules adapted from Vercel's react-best-practices for React Native/Expo applications.
Source: Adapted from vercel-labs/agent-skills
This skill activates during:
Trigger phrases:
AGENTS.md when writing components| Priority | Category | Impact | Description |
|---|---|---|---|
| 1 | Eliminating Waterfalls | CRITICAL | Async patterns that prevent sequential blocking |
| 2 | Bundle Optimization | CRITICAL | Import patterns that reduce bundle size |
| 3 | List Performance | HIGH | FlatList/SectionList optimization |
| 4 | Re-render Prevention | MEDIUM | Memoization and state patterns |
| 5 | Memory Management | MEDIUM | Cleanup and resource handling |
| 6 | Animation Performance | MEDIUM | Reanimated and gesture patterns |
| 7 | Platform Patterns | LOW | iOS/Android specific optimizations |
// async-defer-await: Move await into conditional branches
// BAD
async function getData(userId: string, skipCache: boolean) {
const data = await fetchData(userId);
if (skipCache) return { fresh: true };
return data;
}
// GOOD
async function getData(userId: string, skipCache: boolean) {
if (skipCache) return { fresh: true };
const data = await fetchData(userId);
return data;
}
// async-parallel: Use Promise.all for independent operations
// BAD
const user = await getUser();
const posts = await getPosts();
const comments = await getComments();
// GOOD
const [user, posts, comments] = await Promise.all([getUser(), getPosts(), getComments()]);
// bundle-imports: Avoid barrel file imports
// BAD
import { Button, Text, Card } from '@/components';
// GOOD
import { Button } from '@/components/Button';
import { Text } from '@/components/Text';
import { Card } from '@/components/Card';
// list-flatlist: Use FlatList for lists > 10 items
// BAD
<ScrollView>
{items.map(item => <ItemCard key={item.id} item={item} />)}
</ScrollView>
// GOOD
<FlatList
data={items}
renderItem={({ item }) => <ItemCard item={item} />}
keyExtractor={item => item.id}
removeClippedSubviews
maxToRenderPerBatch={10}
windowSize={5}
/>
// memory-cleanup: Clean up effects and listeners
// BAD
useEffect(() => {
const subscription = eventEmitter.addListener('event', handler);
}, []);
// GOOD
useEffect(() => {
const subscription = eventEmitter.addListener('event', handler);
return () => subscription.remove();
}, []);
skill_score = (passed_rules / applicable_rules) × 100
Thresholds:
- PASS: ≥95% (proceed normally)
- CONDITIONAL: 90-94% (fix before next milestone)
- FAIL: <90% (must fix before proceeding)
- Any CRITICAL violation: BLOCKED
Ralph includes this skill as a scoring category:
### React Native Skills Compliance (5% weight)
- [ ] No CRITICAL violations (async-defer-await, async-parallel, bundle-imports)
- [ ] No HIGH violations (list-flatlist, memory-cleanup)
- [ ] MEDIUM/LOW violations documented
- [ ] Overall skill score ≥95%
SKILL.md - This file (usage and quick reference)AGENTS.md - Complete rules document for agent consumptionrules/ - Individual rule definitionsSource: 0xAxiom/AppFactory — distributed by TomeVault.