code-simplifier
17
总安装量
4
周安装量
#19887
全站排名
安装命令
npx skills add https://github.com/cityfish91159/maihouses --skill code-simplifier
Agent 安装分布
opencode
3
codex
3
claude-code
2
antigravity
2
gemini-cli
2
windsurf
1
Skill 文档
Code Simplifier Protocol
1. æ ¸å¿åå
ãç°¡å®å°±æ¯åéã
- ä¿æåè½å®æ´æ§ï¼ç°¡åä¸çæ¼åªæ¸åè½
- æåå¯è®æ§ï¼ä»£ç¢¼æè©²ä¸ç®äºç¶
- æ¸å°èªç¥è² æï¼éä½ç解代碼æéçå¿æºæ¨¡åè¤é度
- éµå¾ª DRY ååï¼æ¶é¤éè¤ï¼ä½ä¸é度æ½è±¡
2. ç°¡åæª¢æ¥æ¸ å®
2.1 å½åæ¹å
// â æ¨¡ç³å½å
const d = new Date();
const arr = users.filter((u) => u.active);
const handleClick = () => {
/* è¤éé輯 */
};
// â
æ¸
æ°å½å
const currentDate = new Date();
const activeUsers = users.filter((user) => user.isActive);
const handleUserRegistration = () => {
/* è¤éé輯 */
};
2.2 彿¸æå
// â éé·å½æ¸ï¼è¶
é 30 è¡ï¼
function processOrder(order: Order) {
// é©è
// è¨ç®å¹æ ¼
// èç仿¬¾
// ç¼ééç¥
// æ´æ°åº«å
// ...100 è¡
}
// â
å®ä¸è·è²¬
function processOrder(order: Order) {
validateOrder(order);
const total = calculateTotal(order);
await processPayment(order, total);
await sendConfirmation(order);
await updateInventory(order);
}
2.3 æ¢ä»¶ç°¡å
// â å·¢çæ¢ä»¶
if (user) {
if (user.isActive) {
if (user.hasPermission) {
doSomething();
}
}
}
// â
æ©æè¿å
if (!user) return;
if (!user.isActive) return;
if (!user.hasPermission) return;
doSomething();
2.4 æ¶é¤éæ³æ¸å
// â éæ³æ¸å
if (status === 1) { ... }
setTimeout(fn, 86400000);
// â
å
·å常æ¸
const STATUS_ACTIVE = 1;
const ONE_DAY_MS = 24 * 60 * 60 * 1000;
if (status === STATUS_ACTIVE) { ... }
setTimeout(fn, ONE_DAY_MS);
2.5 æ¸å°å·¢ç層ç´
// â æ·±å±¤å·¢ç
users.forEach((user) => {
user.orders.forEach((order) => {
order.items.forEach((item) => {
if (item.inStock) {
processItem(item);
}
});
});
});
// â
æå¹³åèç
const allItems = users
.flatMap((user) => user.orders)
.flatMap((order) => order.items)
.filter((item) => item.inStock);
allItems.forEach(processItem);
3. React çµä»¶ç°¡å
3.1 Props è§£æ§
// â éè¤åå props
function UserCard(props: UserCardProps) {
return (
<div>
<h1>{props.user.name}</h1>
<p>{props.user.email}</p>
<span>{props.user.role}</span>
</div>
);
}
// â
è§£æ§ + å±é
function UserCard({ user }: UserCardProps) {
const { name, email, role } = user;
return (
<div>
<h1>{name}</h1>
<p>{email}</p>
<span>{role}</span>
</div>
);
}
3.2 æ¢ä»¶æ¸²æ
// â åé·çä¸å
éç®
{isLoading ? <Spinner /> : error ? <Error message={error} /> : data ? <Content data={data} /> : null}
// â
æ©æè¿å
if (isLoading) return <Spinner />;
if (error) return <Error message={error} />;
if (!data) return null;
return <Content data={data} />;
3.3 èªè¨ Hook æ½å
// â çµä»¶å
§æ··é大éé輯
function UserDashboard() {
const [users, setUsers] = useState([]);
const [loading, setLoading] = useState(false);
const [error, setError] = useState(null);
useEffect(() => {
setLoading(true);
fetch('/api/users')
.then((res) => res.json())
.then((data) => setUsers(data))
.catch((err) => setError(err))
.finally(() => setLoading(false));
}, []);
// ... 渲æé輯
}
// â
æ½å Hook
function useUsers() {
const [users, setUsers] = useState([]);
const [loading, setLoading] = useState(false);
const [error, setError] = useState(null);
useEffect(() => {
/* fetch é輯 */
}, []);
return { users, loading, error };
}
function UserDashboard() {
const { users, loading, error } = useUsers();
// ... ç´ç²¹ç渲æé輯
}
4. ç°¡åæµç¨
æ¥é© 1ï¼èå¥ç®æ¨
# æ¾åºæè¿ä¿®æ¹çæªæ¡
git diff --name-only HEAD~5
# ææå®ç¯å
git diff --name-only main...HEAD
æ¥é© 2ï¼åæè¤é度
檢æ¥ä»¥ä¸ææ¨ï¼
- 彿¸é·åº¦ï¼> 30 è¡ééæ³¨ï¼
- å·¢çæ·±åº¦ï¼> 3 層ééæ³¨ï¼
- èªç¥è¤é度
- éè¤ä»£ç¢¼æ¨¡å¼
æ¥é© 3ï¼éæ¥ç°¡å
- å æå常æ¸
- éå½åè®æ¸/彿¸
- æåé·å½æ¸
- ç°¡åæ¢ä»¶é輯
- æ¶é¤éè¤
æ¥é© 4ï¼é©è
# 確ä¿é¡åæ£ç¢º
npm run typecheck
# ç¢ºä¿æ¸¬è©¦éé
npm test
# 確ä¿é¢¨æ ¼ä¸è´
npm run lint
5. ç¦æ¢äºé
â é度簡å
// ä¸è¦çºäºç°¡åèç§ç²å¯è®æ§
// â é度å£ç¸®
const r = u.filter((x) => x.a && x.b.c > 5).map((x) => x.d);
// â
ä¿æå¯è®
const activeUsersWithHighScore = users
.filter((user) => user.isActive && user.stats.score > 5)
.map((user) => user.name);
â éæ©æ½è±¡
// ä¸è¦çºåªç¨ä¸æ¬¡çé輯建ç«å·¥å
·å½æ¸
// â ä¸å¿
è¦çæ½è±¡
const isValidAge = (age: number) => age >= 18;
if (isValidAge(user.age)) { ... }
// â
ç´æ¥å¯«
if (user.age >= 18) { ... }
â æ¹è®è¡çº
// ç°¡å䏿æ¹è®åè½è¡çº
// â ç°¡åææå¤æ¹è®é輯
// 忬ï¼|| æ¯çè·¯éç®
const name = user.name || 'Anonymous';
// é¯èª¤ç°¡åï¼?? åªèç null/undefined
const name = user.name ?? 'Anonymous';
// 妿 user.name æ¯ç©ºå串 ''ï¼è¡çºæä¸åï¼
6. èå ¶ä» Skills æ´å
| éæ®µ | æ´å Skill | 說æ |
|---|---|---|
| ç°¡åå | /read-before-edit |
宿´çè§£ç¾æä»£ç¢¼ |
| ç°¡åä¸ | /type-checker |
確ä¿é¡åæ£ç¢º |
| ç°¡åå¾ | /rigorous_testing |
確ä¿åè½ä¸è® |
| æäº¤å | /pre-commit-validator |
宿´åè³ªæª¢æ¥ |
7. å¿«éæä»¤
# æ¾åºé·å½æ¸
grep -rn "function" --include="*.ts" | head -20
# æ¾åºæ·±å·¢çï¼å¤å縮æï¼
grep -rn "^ " --include="*.tsx" | head -20
# æ¾åº TODO/FIXME
grep -rn "TODO\|FIXME" --include="*.ts" --include="*.tsx"
8. è¨ä½
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â â
â ð¯ ç°¡å® â ç°¡é â
â â
â ð 代碼æ¯å¯«çµ¦äººççï¼é ä¾¿è®æ©å¨å·è¡ â
â â
â âï¸ å¹³è¡¡ç°¡æ½èå¯è®æ§ â
â â
â ð ç°¡åå¾å¿
é æ¸¬è©¦ï¼ç¢ºä¿è¡çºä¸è® â
â â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ