{ "version": "https://jsonfeed.org/version/1", "title": "\u6280\u672f\u6808", "description": "\u4e00\u4e2a\u6280\u80fd\u3001\u4e00\u4e2a\u7ecf\u9a8c\u3001\u4e00\u4e2a\u5957\u8def | \u4eba\u4eba\u90fd\u662f\u8d85\u7ea7\u4e2a\u4f53", "home_page_url": "go/skills", "feed_url": "feed/skills.json", "icon": "https://cdn.v2ex.com/navatar/7022/2949/1290_large.png?m=1772417478", "favicon": "https://cdn.v2ex.com/navatar/7022/2949/1290_normal.png?m=1772417478", "items": [ { "author": { "url": "member/loneranger1024", "name": "loneranger1024", "avatar": "https://cdn.v2ex.com/avatar/7d99/c6cf/673630_large.png?m=1773468208" }, "url": "t/1206984", "title": "\u4f60\u7684\u5c4e\u5c71\u4ee3\u7801\u8be5\u88c5\u4e2a GPS \u4e86", "id": "t/1206984", "date_published": "2026-04-19T08:00:58+00:00", "content_html": "

Vibe coding \u5f88\u723d\uff0c\u76f4\u5230\u9879\u76ee\u53d8\u6210\u5c4e\u5c71\u4ee3\u7801\u3002

\n

\u7528 AI \u5199\u4ee3\u7801\u5c31\u50cf\u5f00\u4e86\u6302\u2014\u2014\u4e00\u4e2a prompt \u5c31\u80fd\u751f\u6210\u51e0\u767e\u884c\uff0c\u529f\u80fd\u8dd1\u5f97\u901a\uff0c\u6210\u5c31\u611f\u62c9\u6ee1\u3002\u4f46\u5f53\u9879\u76ee\u4ece demo \u6f14\u5230\u51e0\u4e07\u884c\u3001\u5341\u51e0\u4e2a\u6a21\u5757\u65f6\uff0c\u95ee\u9898\u5f00\u59cb\u66b4\u9732\uff1a\u6539\u4e86\u4e00\u5904\uff0c\u7275\u51fa\u4e09\u5904 bug \uff1b\u52a0\u4e86\u4e00\u4e2a\u529f\u80fd\uff0c\u4e0d\u77e5\u9053\u4f1a\u5f71\u54cd\u54ea\u91cc\uff1b AI \u6bcf\u6b21\u8fdb\u9879\u76ee\u90fd\u8981\u4ece\u5934\u8bfb\u4e00\u5806\u6587\u4ef6\uff0c\u4e0a\u4e0b\u6587\u8d8a\u5806\u8d8a\u4e71\u3002

\n

\u8fd9\u80cc\u540e\u5176\u5b9e\u662f\u4e00\u4e2a\u8001\u95ee\u9898\uff1a\u6ca1\u6709\u6587\u6863\u3002

\n

\u7a0b\u5e8f\u5458\u81ea\u53e4\u81ea\u5632\u300c\u5c4e\u5c71\u4ee3\u7801\u300d\uff0c\u672c\u8d28\u4e0a\u5c31\u662f\u524d\u4eba\u6ca1\u7559\u6587\u6863\uff0c\u540e\u4eba\u53ea\u80fd\u5728\u5783\u573e\u5c71\u91cc\u8003\u53e4\u3002\u8bbd\u523a\u7684\u662f\uff0c\u6bcf\u4e2a\u4eba\u5199\u4ee3\u7801\u65f6\u90fd\u4e0d\u7231\u5199\u6587\u6863\uff0c\u63a5\u624b\u522b\u4eba\u9879\u76ee\u65f6\u53c8\u75af\u72c2\u9a82\u5a18\u3002\u6587\u6863\u4e00\u76f4\u662f\u4ef6\u8d39\u65f6\u8d39\u529b\u7684\u82e6\u5dee\u4e8b\u2014\u2014\u4eba\u5199\uff0c\u4eba\u5fd8\uff0c\u4eba\u61d2\u3002

\n

\u4f46\u73b0\u5728\uff0c\u5199\u6587\u6863\u8fd9\u4ef6\u4e8b\u53ef\u4ee5\u4ea4\u7ed9 AI \u3002

\n

\u4e0d\u662f\u8ba9\u4eba\u5199\u597d\u4e86\u7ed9 AI \u770b\uff0c\u800c\u662f\u8ba9 AI \u81ea\u5df1\u7ef4\u62a4\u6587\u6863\uff1a\u4ee3\u7801\u600e\u4e48\u53d8\uff0c\u6587\u6863\u5c31\u600e\u4e48\u66f4\u65b0\u3002\u4f60\u7684 Agent \u6bcf\u6b21\u8fdb\u5165\u9879\u76ee\uff0c3 \u6b65\u5c31\u80fd\u6478\u6e05\u5168\u5c40\uff1b\u6bcf\u6b21\u63d0\u4ea4\u4ee3\u7801\uff0c\u7cfb\u7edf\u81ea\u52a8\u68c0\u67e5\u6587\u6863\u662f\u5426\u540c\u6b65\u66f4\u65b0\u3002\u6587\u6863\u4e0d\u518d\u662f\u62d6\u540e\u817f\u7684\u8d1f\u62c5\uff0c\u800c\u662f AI \u534f\u4f5c\u7684\u57fa\u7840\u8bbe\u65bd\u3002

\n

\u8fd9\u5957\u673a\u5236\u7684\u6838\u5fc3\u5c31\u4e24\u70b9\uff1a

\n
    \n
  1. \u5206\u5f62\u6587\u6863 + Prompt \u7ea6\u675f \u2014 L1/L2/L3 \u5206\u5f62\u7ed3\u6784\u8ba9 Agent \u5feb\u901f\u5efa\u7acb\u4e0a\u4e0b\u6587\uff0c\u89c4\u5219\u5199\u8fdb\u6839\u6587\u6863\u5f62\u6210\u81ea\u6211\u7ea6\u675f
  2. \n
  3. Git Hook \u5f3a\u5236\u6821\u9a8c \u2014 \u63d0\u4ea4\u65f6\u81ea\u52a8\u68c0\u67e5\uff0c\u4ee3\u7801\u548c\u6587\u6863\u4e0d\u540c\u6b65\u5c31\u76f4\u63a5\u963b\u65ad\uff0c\u903c\u7740 Agent \u66f4\u65b0\u5b8c\u518d\u63d0\u4ea4
  4. \n
\n
\n

\u4e00\u3001\u5206\u5f62\u6587\u6863\u7cfb\u7edf

\n

\u6838\u5fc3\u601d\u8def

\n

\u6587\u6863\u6309\u5c42\u7ea7\u7ec4\u7ec7\uff0c\u50cf\u5206\u5f62\u4e00\u6837\uff1a\u6bcf\u4e00\u5c42\u53ea\u63cf\u8ff0\u81ea\u5df1\u76f4\u63a5\u7ba1\u8f96\u7684\u5185\u5bb9\uff0c\u4e0d\u8fc7\u5ea6\u5c55\u5f00\u3002

\n
L1: \u6839\u76ee\u5f55 CLAUDE.md \u2190 \u5168\u5c40\u67b6\u6784\u3001\u89c4\u5219\u3001\u76ee\u5f55\u5730\u56fe\nL2: \u5b50\u76ee\u5f55 CLAUDE.md \u2190 \u8be5\u6a21\u5757\u7684\u804c\u8d23\u3001\u6587\u4ef6\u6e05\u5355\u3001\u5bfc\u51fa\u3001\u4f9d\u8d56\nL3: \u6587\u4ef6\u5934\u6ce8\u91ca\uff08\u53ef\u9009\uff09 \u2190 \u4ec5\u7528\u4e8e\u903b\u8f91\u590d\u6742\u3001\u4e0d\u76f4\u89c2\u7684\u6587\u4ef6\n
\n

AI \u4ece\u4efb\u610f\u6587\u4ef6\u51fa\u53d1\uff0c\u6700\u591a 3 \u6b21 Read \u5373\u53ef\u5230\u8fbe\u5b8c\u6574\u4e0a\u4e0b\u6587\uff1a

\n
\n

\u6587\u4ef6\u5bf9\u4e0d\u53d8\u5f0f\uff08 File Pair Invariant \uff09

\n

\u6bcf\u4e2a\u6709\u6587\u6863\u7684\u76ee\u5f55\uff0c\u5fc5\u987b\u540c\u65f6\u5b58\u5728\u4e24\u4e2a\u6587\u4ef6\uff1a

\n
CLAUDE.md \u2190 \u552f\u4e00\u7684\u7f16\u8f91\u6e90\uff0c\u5185\u5bb9\u5728\u8fd9\u91cc\nAGENTS.md \u2190 CLAUDE.md \u7684\u7b26\u53f7\u94fe\u63a5\uff08 symlink \uff09\uff0c\u5185\u5bb9\u5b8c\u5168\u4e00\u81f4\n
\n

\u4ec0\u4e48\u662f symlink \uff08\u7b26\u53f7\u94fe\u63a5\uff09\uff1f

\n

Symlink \u662f\u64cd\u4f5c\u7cfb\u7edf\u63d0\u4f9b\u7684\u4e00\u79cd\u7279\u6b8a\u6587\u4ef6\uff0c\u5b83\u672c\u8eab\u4e0d\u5305\u542b\u5b9e\u9645\u5185\u5bb9\uff0c\u800c\u662f\u6307\u5411\u53e6\u4e00\u4e2a\u6587\u4ef6\u7684\u8def\u5f84\u3002\u53ef\u4ee5\u7406\u89e3\u4e3a\u5feb\u6377\u65b9\u5f0f\u2014\u2014\u6253\u5f00 symlink \uff0c\u5b9e\u9645\u8bbf\u95ee\u7684\u662f\u5b83\u6307\u5411\u7684\u90a3\u4e2a\u6587\u4ef6\u3002\u7f16\u8f91\u6e90\u6587\u4ef6\uff0csymlink \u7684\u5185\u5bb9\u4e5f\u4f1a\u540c\u6b65\u53d8\u5316\u3002

\n

\u4e3a\u4ec0\u4e48\u8981\u7528 symlink \uff1f \u4e0d\u540c AI \u5de5\u5177\u8bfb\u53d6\u7684\u5165\u53e3\u6587\u4ef6\u540d\u4e0d\u540c\uff1a

\n\n

\u7528 symlink \u800c\u4e0d\u662f\u4e24\u4e2a\u72ec\u7acb\u6587\u4ef6\uff0c\u786e\u4fdd\u6c38\u8fdc\u4e0d\u4f1a\u51fa\u73b0\u5185\u5bb9\u4e0d\u4e00\u81f4\u7684\u60c5\u51b5\u3002

\n

\u521b\u5efa symlink \u547d\u4ee4

\n
# \u5728\u76ee\u5f55\u5185\u6267\u884c\uff08\u76f8\u5bf9\u8def\u5f84\uff09\nln -s \"CLAUDE.md\" \"AGENTS.md\"\n\n# \u9a8c\u8bc1\nls -la AGENTS.md # \u5e94\u663e\u793a AGENTS.md -> CLAUDE.md\n
\n
\n

L1 \u6587\u6863\uff08\u6839\u76ee\u5f55 CLAUDE.md \uff09

\n

\u653e\u5728\u9879\u76ee\u6839\u76ee\u5f55\uff0c\u5185\u5bb9\u5305\u62ec\uff1a

\n\n

\u6a21\u677f

\n
# [\u9879\u76ee\u540d]\n\n## \u6280\u672f\u6808\nNext.js 15 \u00b7 React 19 \u00b7 TypeScript \u00b7 Drizzle ORM \u00b7 ...\n\n## \u5f00\u53d1\u547d\u4ee4\npnpm dev / pnpm build / pnpm db:generate ...\n\n## \u76ee\u5f55\u7ed3\u6784\nsrc/\n\u251c\u2500\u2500 app/ # Next.js App Router\n\u251c\u2500\u2500 config/ # \u914d\u7f6e\u3001\u6570\u636e\u5e93 schema \u3001i18n\n\u251c\u2500\u2500 core/ # \u6846\u67b6\u6838\u5fc3\u6a21\u5757\n\u251c\u2500\u2500 extensions/ # \u53ef\u63d2\u62d4\u6269\u5c55\uff08 AI/\u652f\u4ed8/\u5b58\u50a8\uff09\n\u251c\u2500\u2500 shared/ # \u5171\u4eab\u7ec4\u4ef6\u3001hooks \u3001\u5de5\u5177\u51fd\u6570\n\u2514\u2500\u2500 themes/ # \u4e3b\u9898\u5b9e\u73b0\n\n## \u67b6\u6784\u6a21\u5f0f\n[\u5173\u952e\u6a21\u5f0f\u8bf4\u660e...]\n\n## \u5206\u5f62\u6587\u6863\u7cfb\u7edf\u89c4\u5219\n[\u89c1\u4e0b\u6587]\n
\n
\n

L2 \u6587\u6863\uff08\u5b50\u76ee\u5f55 CLAUDE.md \uff09

\n

\u6bcf\u4e2a L2 \u6587\u6863\u63a7\u5236\u5728 \u2264 80 \u884c\uff0c\u56fa\u5b9a\u56db\u8282\uff1a

\n
# [\u6a21\u5757\u540d]\n> \u672c\u76ee\u5f55\u6587\u4ef6\u6709\u53d8\u52a8\u65f6\uff0c\u8bf7\u540c\u6b65\u66f4\u65b0\u6b64\u6587\u6863\u3002\n\n## Purpose\n\u8fd9\u4e2a\u76ee\u5f55\u7684\u804c\u8d23\u662f\u4ec0\u4e48\n\n## File Inventory\n| \u6587\u4ef6/\u76ee\u5f55 | \u7528\u9014 |\n| ------------ | --------------------------- |\n| `foo.ts` | \u505a\u4ec0\u4e48 |\n| `bar/` | \u5b50\u6a21\u5757\uff0c\u505a\u4ec0\u4e48 |\n\n## Key Exports\n- `SomeClass` \u2014 \u63cf\u8ff0\n- `someFunction(arg)` \u2014 \u63cf\u8ff0\n\n## Dependencies\n- Depends on: `src/core/db`, `src/config`\n- Depended on by: `src/app/api/*`\n
\n

\u4f55\u65f6\u521b\u5efa L2 \u6587\u6863

\n

\u6ee1\u8db3\u4ee5\u4e0b\u4efb\u610f\u4e00\u6761\uff0c\u5c31\u5e94\u8be5\u521b\u5efa\uff1a

\n\n

\u4ee5\u4e0b\u6761\u4ef6\u5168\u90e8\u6ee1\u8db3\u65f6\uff0c\u4e0d\u9700\u8981\u521b\u5efa\uff1a

\n\n
\n

L3 \u6587\u6863\uff08\u6587\u4ef6\u5934\u6ce8\u91ca\uff09

\n

\u53ea\u5728\u903b\u8f91\u590d\u6742\u3001\u975e\u76f4\u89c2\u7684\u6587\u4ef6\u9876\u90e8\u52a0\u6ce8\u91ca\u3002\u666e\u901a\u6587\u4ef6\u4e0d\u9700\u8981\uff0c\u4e0d\u8981\u6ee5\u7528\u3002

\n

\u5fc5\u987b\u5199\u7684\u60c5\u51b5\uff1a

\n\n

\u4e0d\u9700\u8981\u5199\u7684\u60c5\u51b5\uff1a

\n\n

\u6ce8\u91ca\u683c\u5f0f\uff08\u4e09\u6bb5\u5f0f + \u7ea6\u675f\uff09\uff1a

\n
// input: \u4f9d\u8d56\u5916\u90e8\u7684\u4ec0\u4e48\uff08\u6a21\u5757\u3001\u8868\u3001\u73af\u5883\u53d8\u91cf\u7b49\uff09\n// output: \u5bf9\u5916\u63d0\u4f9b\u4ec0\u4e48\uff08\u51fd\u6570\u3001\u7c7b\u3001\u63a5\u53e3\uff09\n// pos: \u5728\u7cfb\u7edf\u5c40\u90e8\u7684\u5730\u4f4d\uff08\u88ab\u8c01\u8c03\u7528\u3001\u67a2\u7ebd\u4f5c\u7528\uff09\n// \u26a0 \u7ea6\u675f\uff1a\u5173\u952e\u9677\u9631\u3001\u975e\u76f4\u89c2\u884c\u4e3a\u3001\u7ade\u6001\u6761\u4ef6\u7b49\n
\n

\u4e09\u6bb5\u5f0f\u8ba9 AI \u79d2\u61c2\u6587\u4ef6\u5750\u6807\uff0c\u7ea6\u675f\u884c\u6807\u6ce8\u9700\u8981\u7279\u522b\u6ce8\u610f\u7684\u5751\u3002L3 \u6ce8\u91ca\u672c\u8eab\u5c31\u662f\u4f18\u5148\u7ea7\u4fe1\u53f7\u2014\u2014\u6709\u6ce8\u91ca = AI \u9700\u63d0\u5347\u6ce8\u610f\u529b\u3002

\n
\n

\u4e8c\u3001\u6587\u6863\u7ef4\u62a4\u89c4\u5219\uff1aLoop-back Check

\n

\u6bcf\u6b21\u5b8c\u6210\u4efb\u52a1\u540e\uff08\u4e0d\u7ba1\u662f\u4fee\u6539\u4ee3\u7801\u8fd8\u662f\u52a0\u529f\u80fd\uff09\uff0c\u5f3a\u5236\u6267\u884c\u4ee5\u4e0b\u68c0\u67e5\uff1a

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\u6b65\u9aa4\u89e6\u53d1\u6761\u4ef6\u64cd\u4f5c
L2 sync\u589e\u5220\u6539\u4e86\u4efb\u4f55\u6587\u4ef6\u66f4\u65b0\u8be5\u76ee\u5f55\u7684 CLAUDE.md \u6587\u4ef6\u6e05\u5355
\u65b0\u76ee\u5f55\u521b\u5efa\u4e86\u65b0\u76ee\u5f55\u540c\u65f6\u521b\u5efa CLAUDE.md + AGENTS.md symlink
\u76ee\u5f55\u5220\u9664/\u91cd\u547d\u540d\u5220\u9664/\u91cd\u547d\u540d\u4e86\u76ee\u5f55\u4fee\u590d\u6216\u5220\u9664\u5bf9\u5e94 symlink
L3 consideration\u5927\u5e45\u4fee\u6539\u4e86\u590d\u6742\u6587\u4ef6\u66f4\u65b0/\u6dfb\u52a0\u6587\u4ef6\u5934\u6ce8\u91ca
L1 flag\u65b0\u589e\u9876\u7ea7\u76ee\u5f55\u6216\u6269\u5c55\u7c7b\u522b\u66f4\u65b0\u6839 CLAUDE.md \u76ee\u5f55\u5730\u56fe

\u8fd9\u4e2a\u89c4\u5219\u5199\u5728\u6839 CLAUDE.md \u91cc\uff0c\u8ba9 AI \u6bcf\u6b21\u90fd\u80fd\u770b\u5230\uff0c\u5f62\u6210\u81ea\u6211\u5f3a\u5316\u7684\u95ed\u73af\u3002

\n
\n

\u4e09\u3001Pre-commit Hook \u9632\u62a4\u673a\u5236

\n

\u4ec0\u4e48\u662f pre-commit hook \uff1f

\n

\u5b83\u662f Git \u63d0\u4f9b\u7684\u4e00\u4e2a\u94a9\u5b50\u811a\u672c\uff0c\u5728\u4f60\u6267\u884c git commit \u65f6\u81ea\u52a8\u89e6\u53d1\u3002\u5982\u679c\u811a\u672c\u8fd4\u56de\u975e 0 \uff08\u5931\u8d25\uff09\uff0c\u63d0\u4ea4\u5c31\u4f1a\u88ab\u963b\u65ad\u3002\u5e38\u89c1\u7528\u9014\u5305\u62ec\uff1a\u81ea\u52a8\u683c\u5f0f\u5316\u4ee3\u7801\u3001\u8dd1\u5355\u5143\u6d4b\u8bd5\u3001\u68c0\u67e5\u4ee3\u7801\u89c4\u8303\u2014\u2014\u4ee5\u53ca\u6211\u4eec\u8fd9\u91cc\u505a\u7684\uff0c\u68c0\u67e5\u6587\u6863\u662f\u5426\u540c\u6b65\u66f4\u65b0\u3002

\n

\u6587\u6863\u89c4\u5219\u5199\u5f97\u518d\u6e05\u695a\uff0cAI \u4e5f\u53ef\u80fd\u5728\u67d0\u6b21\u4efb\u52a1\u4e2d\u6f0f\u6389\u3002
\nPre-commit Hook \u63d0\u4f9b \u63d0\u4ea4\u65f6\u7684\u6700\u540e\u9632\u7ebf\u3002

\n

Hook \u6587\u4ef6\u4f4d\u7f6e

\n
.git/hooks/\n\u2514\u2500\u2500 pre-commit\n
\n
\n

\u6838\u5fc3\u903b\u8f91

\n
1. \u6536\u96c6\u6240\u6709 staged \u6587\u4ef6\uff08 git diff --cached --name-only --diff-filter=ACMRD \uff09\n2. \u8fc7\u6ee4\u51fa\u5176\u4e2d\u5df2 staged \u7684 CLAUDE.md \uff08\u8bf4\u660e\u5f00\u53d1\u8005\u5df2\u7ecf\u5728\u66f4\u65b0\u6587\u6863\uff09\n3. \u5bf9\u6bcf\u4e2a\u975e\u6587\u6863\u7684 staged \u6587\u4ef6\uff1a\n \u2514\u2500 \u5411\u4e0a\u904d\u5386\u76ee\u5f55\u6811\uff0c\u627e\u5230\u6700\u8fd1\u7684 CLAUDE.md\n \u2514\u2500 \u5982\u679c\u8be5 CLAUDE.md \u672a\u88ab\u540c\u65f6 staged \u2192 \u6807\u8bb0\u76ee\u5f55\u4e3a \"stale\"\n4. \u5bf9\u6bcf\u4e2a stale \u76ee\u5f55\uff1a\n \u251c\u2500 \u5206\u6790\u53d7\u5f71\u54cd\u6587\u4ef6\u7684\u53d8\u66f4\u7c7b\u578b\uff08 A/D/M/R \uff09\n \u2514\u2500 \u5206\u7ea7\u5224\u65ad needs_review \uff08 A/D/R \u2192 true, M \u2192 false \uff09\n5. \u8f93\u51fa\u53d8\u66f4\u8be6\u60c5 + \u51b3\u7b56\u6307\u5357 + \u673a\u5668\u53ef\u8bfb\u7684 [DOC-HINT] \u5757\n6. exit 1 \u2192 \u963b\u65ad\u63d0\u4ea4\uff0c\u7b49\u5f85\u7528\u6237/Agent \u505a\u51fa\u9009\u62e9\n
\n

\u5173\u952e\u51b3\u7b56\uff1a\u963b\u65ad\u800c\u975e\u8b66\u544a\u3002

\n

\u8fd9\u4e2a\u8bbe\u8ba1\u4e0d\u662f\u4e00\u5f00\u59cb\u5c31\u786e\u5b9a\u7684\uff0c\u800c\u662f\u7ecf\u5386\u4e86\u4e24\u8f6e\u8fed\u4ee3\uff1a

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\u7248\u672c\u7b56\u7565\u95ee\u9898
v1\u8b66\u544a\uff08exit 2\uff09\u5f00\u53d1\u8005\u548c AI \u90fd\u503e\u5411\u4e8e\u65e0\u8111\u786e\u8ba4\uff0c\u9632\u7ebf\u5f62\u540c\u865a\u8bbe
v2\u5f3a\u5236\u66f4\u65b0\u8fc7\u4e8e\u7c97\u66b4\u2014\u2014\u4fee\u590d\u4e00\u4e2a typo \u6216\u6539\u4e2a\u53d8\u91cf\u540d\u4e5f\u8981\u66f4\u65b0\u6587\u6863\uff0c\u53cd\u800c\u589e\u52a0\u566a\u97f3
v3\u963b\u65ad + \u5206\u7ea7\u5224\u65ad\u5361\u4f4f\u63d0\u4ea4\uff0c\u4f46\u6839\u636e\u53d8\u66f4\u7c7b\u578b\u7ed9\u51fa\u660e\u786e\u7684\u300c\u66f4\u65b0 / \u8df3\u8fc7\u300d\u5efa\u8bae

\u5f53\u524d\u91c7\u7528\u4e24\u9636\u6bb5\u5904\u7406\uff1a

\n
    \n
  1. \u963b\u65ad\u9636\u6bb5\uff1a\u63d0\u4ea4\u65f6\u68c0\u6d4b\u5230 stale \u6587\u6863\uff0c\u76f4\u63a5 exit 1 \u5361\u4f4f\u3002\u4e0d\u7ed9\"\u8b66\u544a\u540e\u81ea\u52a8\u653e\u884c\"\u7684\u6f0f\u6d1e\uff0c\u4e5f\u4e0d\u4e00\u5200\u5207\u5f3a\u5236\u66f4\u65b0\u3002
  2. \n
  3. \u5224\u65ad\u9636\u6bb5\uff1a\u6839\u636e A/D/M/R \u53d8\u66f4\u7c7b\u578b\u81ea\u4e3b\u51b3\u7b56\u2014\u2014\u5b58\u5728 A/D/R \uff08\u589e\u5220\u91cd\u547d\u540d\uff09\u2192 needs_review=true\uff0c\u5efa\u8bae\u66f4\u65b0\uff1b\u53ea\u6709 M \uff08\u4fee\u6539\u5185\u5bb9\uff09\u2192 \u82e5\u786e\u8ba4\u4e0d\u5f71\u54cd\u63a5\u53e3/\u5bfc\u51fa\uff0c\u53ef\u7528 --no-verify \u8df3\u8fc7\u3002
  4. \n
\n

--no-verify \u59cb\u7ec8\u53ef\u7528\uff0c\u4e0d\u4f1a\u5361\u4f4f\u4efb\u4f55\u5de5\u4f5c\u6d41\u3002\u8fd9\u79cd\u8bbe\u8ba1\u628a\u9009\u62e9\u6743\u8fd8\u7ed9\u4eba\u548c AI \uff0c\u540c\u65f6\u7528\u963b\u65ad\u786e\u4fdd\u9009\u62e9\u662f\u88ab\u6709\u610f\u8bc6\u505a\u51fa\u7684\u3002

\n
\n

\u53d8\u66f4\u7c7b\u578b\u5206\u7ea7

\n

Hook \u8f93\u51fa\u6bcf\u4e2a\u53d7\u5f71\u54cd\u6587\u4ef6\u7684\u53d8\u66f4\u7c7b\u578b\uff0c\u5e2e\u52a9\u5feb\u901f\u5224\u65ad\u662f\u5426\u771f\u7684\u9700\u8981\u66f4\u65b0\u6587\u6863\uff1a

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\u7c7b\u578b\u542b\u4e49\u5efa\u8bae
A (Added)\u65b0\u589e\u6587\u4ef6\u2705 \u66f4\u65b0 \u2014 File Inventory \u9700\u8981\u52a0\u5165\u65b0\u6761\u76ee
D (Deleted)\u5220\u9664\u6587\u4ef6\u2705 \u66f4\u65b0 \u2014 \u79fb\u9664\u5df2\u4e0d\u5b58\u5728\u7684\u6761\u76ee
R (Renamed)\u91cd\u547d\u540d\u2705 \u66f4\u65b0 \u2014 \u6587\u4ef6\u8def\u5f84\u53d8\u4e86
M (Modified)\u4fee\u6539\u5185\u5bb9\u26a0\ufe0f \u4ec5\u5f53\u63a5\u53e3/\u5bfc\u51fa\u53d8\u5316\u65f6\u9700\u8981\u66f4\u65b0

\u8fd9\u4e2a\u5206\u7ea7\u5f15\u51fa\u4e00\u4e2a\u81ea\u52a8\u5316\u5224\u65ad\u89c4\u5219\uff1a**\u5b58\u5728 A/D/R \u53d8\u66f4 \u2192 needs_review=true**\u3002

\n

\u4f46 A/D/M/R \u53ea\u662f\u53d8\u66f4\u7c7b\u578b\uff0c\u4e0d\u662f\u66f4\u65b0\u51b3\u7b56\u3002\u4eba\u5728\u9762\u5bf9 hook \u963b\u65ad\u65f6\uff0c\u8fd8\u9700\u8981\u77e5\u9053\u300c\u4ec0\u4e48\u60c5\u51b5\u4e0b\u5fc5\u987b\u66f4\u65b0\u3001\u4ec0\u4e48\u60c5\u51b5\u4e0b\u53ef\u4ee5\u8df3\u8fc7\u300d\u3002\u5b8c\u6574\u7684\u51b3\u7b56\u89c4\u5219\u5982\u4e0b\uff1a

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\u5fc5\u987b\u66f4\u65b0 \u2705\u53ef\u4ee5\u8df3\u8fc7 \u274c
\u65b0\u589e/\u5220\u9664/\u91cd\u547d\u540d\u6587\u4ef6\u6216\u76ee\u5f55Debug \u4ee3\u7801\u3001console.log \u3001\u4e34\u65f6\u65e5\u5fd7
\u4fee\u6539\u63a5\u53e3\u3001\u7c7b\u578b\u3001\u5bfc\u51fa\u7684\u51fd\u6570\u6ce8\u91ca\u6216\u4ee3\u7801\u683c\u5f0f\u5316\uff08 prettier / eslint \uff09
\u8c03\u6574\u67b6\u6784\u6216\u6570\u636e\u6d41\u4e0d\u6539\u52a8\u63a5\u53e3\u7684\u5c0f bug \u4fee\u590d
\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\uff08 manifest \u3001vite \u3001tsconfig \uff09\u4ec5\u6d4b\u8bd5\u6587\u4ef6\u53d8\u66f4
\u4f9d\u8d56\u5173\u7cfb\u53d1\u751f\u53d8\u5316\u65e0\u8bed\u4e49\u53d8\u5316\u7684\u53d8\u91cf\u91cd\u547d\u540d

\n

[DOC-HINT]\uff1a\u7ed9 AI Agent \u7684\u673a\u5668\u53ef\u8bfb\u5757

\n

\u8fd9\u662f\u6574\u5957\u673a\u5236\u4e2d\u6700\u6709\u4ef7\u503c\u7684\u8bbe\u8ba1\u6f14\u8fdb\u3002

\n

\u4eba\u7c7b\u770b\u5230\u9ec4\u8272\u8b66\u544a\u53ef\u4ee5\u51ed\u76f4\u89c9\u5224\u65ad\"\u8fd9\u6b21\u6539\u52a8\u8981\u4e0d\u8981\u66f4\u65b0\u6587\u6863\"\uff0c\u4f46 AI Agent \u4e0d\u884c\u2014\u2014\u5b83\u9700\u8981\u7ed3\u6784\u5316\u4fe1\u53f7\u3002Hook \u8f93\u51fa\u672b\u5c3e\u9644\u5e26\u7684 [DOC-HINT] \u5757\u89e3\u51b3\u4e86\u8fd9\u4e2a\u95ee\u9898\uff1a

\n
[DOC-HINT]\nstale:\n src/auth/CLAUDE.md | A=1 D=1 M=1 R=0 | needs_review=true\n src/utils/CLAUDE.md | A=0 D=0 M=1 R=1 | needs_review=true\n\nrules:\n A=Added \u2192 doc update recommended\n D=Deleted \u2192 doc update recommended\n R=Renamed \u2192 doc update recommended\n M=Modified \u2192 usually not needed unless interface/export changed\n
\n

AI Agent \u53ef\u4ee5\u89e3\u6790\u8fd9\u4e2a\u5757\u6765\u81ea\u52a8\u51b3\u7b56\uff1a

\n\n

[DOC-HINT] \u8ba9 hook \u4e0d\u4ec5\u662f\u7ed9\u4eba\u770b\u7684\u63d0\u9192\uff0c\u66f4\u662f AI \u5de5\u4f5c\u6d41\u4e2d\u7684\u4e00\u4e2a\u51b3\u7b56\u8282\u70b9\u3002 \u8fd9\u624d\u662f\"AI \u53cb\u597d\"\u7684\u771f\u6b63\u542b\u4e49\u2014\u2014\u4e0d\u53ea\u662f\u6587\u6863\u7ed3\u6784\u5bf9 AI \u53cb\u597d\uff0c\u8fde\u5b88\u62a4\u673a\u5236\u7684\u8f93\u51fa\u4e5f\u8981\u5bf9 AI \u53cb\u597d\u3002

\n
\n

\u5b9e\u9645\u6548\u679c\u793a\u4f8b

\n
$ git add src/auth/oauth.ts src/auth/login.ts src/utils/format.ts\n$ git commit -m \"feat: add OAuth support\"\n\n\u26a0 These directories have staged changes but their CLAUDE.md is not updated:\n\n \u2192 src/auth/CLAUDE.md\n A src/auth/oauth.ts\n M src/auth/login.ts\n\n \u2192 src/utils/CLAUDE.md\n R src/utils/format.ts\n M src/utils/date.ts\n\nUpdate docs, or skip with: git commit --no-verify -m \"message\"\n\nWhen to update: A/D/R, interface, architecture, config change\nWhen to skip: debug code, formatting, minor fixes, tests, rename\n\n[DOC-HINT]\nstale:\n src/auth/CLAUDE.md | A=1 D=0 M=1 R=0 | needs_review=true\n src/utils/CLAUDE.md | A=0 D=0 M=1 R=1 | needs_review=true\n\nrules:\n A=Added \u2192 doc update recommended\n D=Deleted \u2192 doc update recommended\n R=Renamed \u2192 doc update recommended\n M=Modified \u2192 usually not needed unless interface/export changed\n
\n
\n

\u56db\u3001\u6574\u4f53\u67b6\u6784\u56fe

\n

\"\u67b6\u6784\u56fe\"

\n

\u53c2\u8003\u4e0e\u81f4\u8c22

\n

\u672c\u6587\u7684\u5206\u5f62\u6587\u6863\u601d\u8def\u6e90\u81ea \u8d75\u7eaf\u60f3 \u7684\u5b9e\u8df5\u5206\u4eab\u3002\u4ed6\u5728\u4f7f\u7528 Claude Code \u5f00\u53d1 laper \u65f6\uff0c\u603b\u7ed3\u4e86\u4e00\u5957\u4ee5\u300c\u5206\u5f62\u300d\u4e3a\u6838\u5fc3\u7684\u6587\u6863\u7ec4\u7ec7\u65b9\u6cd5\u2014\u2014\u6bcf\u4e2a\u76ee\u5f55\u81ea\u5e26\u6781\u7b80\u8bf4\u660e\uff0c\u6bcf\u4e2a\u6587\u4ef6\u5934\u58f0\u660e input/output/pos \uff0c\u8ba9 AI \u5728\u81ea\u76f8\u4f3c\u7684\u7ed3\u6784\u4e2d\u5feb\u901f\u5efa\u7acb\u4e0a\u4e0b\u6587\u3002

\n

\u6211\u5728\u6b64\u57fa\u7840\u4e0a\u505a\u4e86\u62d3\u5c55\u548c\u5de5\u7a0b\u5316\uff1a

\n\n

\u5982\u679c\u4f60\u5bf9\u539f\u59cb\u65b9\u6848\u611f\u5174\u8da3\uff0c\u63a8\u8350\u5173\u6ce8\u8d75\u7eaf\u60f3\u7684\u5206\u4eab\u3002

\n

\u672c\u6587\u7684\u5b9e\u8df5\u548c\u5de5\u5177\u94fe\u5df2\u5f00\u6e90\u4e3a Skill \uff0c\u6b22\u8fce\u8bd5\u7528\u548c\u53cd\u9988\uff1a

\n
# \u4e00\u952e\u5b89\u88c5\nnpx skills add longranger2/project-doc-bootstrap\n
\n

GitHub: https://github.com/longranger2/project-doc-bootstrap

\n" }, { "author": { "url": "member/debuginn", "name": "debuginn", "avatar": "https://cdn.v2ex.com/avatar/bc00/e25d/435776_large.png?m=1767929837" }, "url": "t/1206940", "title": "\u5f00\u6e90\u4e86\u4e00\u4e2a Hugo \u4e3b\u9898\uff0c\u4e13\u95e8\u7528\u6765\u5c55\u793a AI Skill", "id": "t/1206940", "date_published": "2026-04-19T02:19:51+00:00", "content_html": "

\u5927\u5bb6\u597d\u5440\uff0c\u6211\u662f Meng \u5c0f\u7fbd\u3002

\n

\u6700\u8fd1\u4e00\u76f4\u5728\u6298\u817e AI \u5de5\u4f5c\u6d41\uff0c\u7528 Hermes \u8fd9\u7c7b AI \u52a9\u624b\u8d8a\u7528\u8d8a\u6df1\uff0c\u624b\u91cc\u7684 skill \u6512\u4e86\u4e00\u5927\u5806\u2014\u2014\u8bf4\u767d\u4e86\u5c31\u662f\u4e00\u5806\"\u9047\u5230\u8fd9\u7c7b\u95ee\u9898\u8be5\u600e\u4e48\u505a\"\u7684\u64cd\u4f5c\u624b\u518c\u3002\u5199\u7740\u5199\u7740\u5c31\u53d1\u73b0\u4e00\u4e2a\u95ee\u9898\uff1a\u8fd9\u4e9b skill \u5168\u8eba\u5728\u672c\u5730\u5403\u7070\uff0c\u60f3\u627e\u4e2a\u5730\u65b9\u5c55\u793a\u51fa\u6765\uff0c\u641c\u4e86\u4e00\u5708\u4e5f\u6ca1\u627e\u5230\u5408\u9002\u7684\u73b0\u6210\u65b9\u6848\u3002

\n

\u884c\u5427\uff0c\u90a3\u5c31\u81ea\u5df1\u505a\u4e00\u4e2a\u3002

\n

\u4e8e\u662f\u5c31\u6709\u4e86 hugo-theme-skills \uff0c\u4e00\u4e2a\u4e13\u95e8\u7528\u6765\u505a skill \u548c\u5de5\u5177\u4ecb\u7ecd\u9875\u7684 Hugo \u4e3b\u9898\uff0c\u73b0\u5728\u5df2\u7ecf\u5f00\u6e90\u4e86\u3002

\n

\u5982\u679c\u7528\u4e00\u53e5\u8bdd\u6982\u62ec\u5b83\uff0c\u6211\u4f1a\u8bf4\uff1a\u8fd9\u4e0d\u662f\u5355\u7eaf\u7684\u4e3b\u9898\u76ae\u80a4\uff0c\u800c\u662f\u4e00\u4e2a\u300c\u6280\u80fd\u5361\u7247 + \u53ef\u4ea4\u4e92\u5de5\u5177\u9875 + \u53ef\u6269\u5c55\u63a7\u4ef6\u7cfb\u7edf\u300d\u4e09\u5408\u4e00\u7684\u5c0f\u6846\u67b6\u3002

\n

\u5982\u679c\u4f60\u624b\u91cc\u5df2\u7ecf\u6709\u4e00\u6279 AI skill \u3001\u5de5\u4f5c\u6d41\u811a\u672c\u6216\u8005\u5c0f\u5de5\u5177\uff0c\u60f3\u628a\u5b83\u4eec\u6574\u7406\u6210\u4e00\u4e2a\u80fd\u5c55\u793a\u3001\u80fd\u5b89\u88c5\u3001\u8fd8\u80fd\u76f4\u63a5\u4e92\u52a8\u4f53\u9a8c\u7684\u7ad9\u70b9\uff0c\u8fd9\u4e2a\u4e3b\u9898\u4f1a\u6bd4\u8f83\u9002\u5408\u4f60\u3002

\n

\"\"

\n

\"\u9996\u9875\"

\n\n

\u6b22\u8fce Star \uff0c\u6b22\u8fce\u63d0 Issue \uff0c\u4e5f\u6b22\u8fce\u76f4\u63a5 PR \u8fdb\u6765\u4e00\u8d77\u73a9\uff5e

\n

\u8be6\u7ec6\u6587\u7ae0\uff1a\u5f00\u6e90\u4e86\u4e00\u4e2a Hugo \u4e3b\u9898\uff0c\u4e13\u95e8\u7528\u6765\u5c55\u793a AI Skill

\n" }, { "author": { "url": "member/bennydeng7", "name": "bennydeng7", "avatar": "https://cdn.v2ex.com/gravatar/ec39c02f7d279e1164378a4367b6b136?s=73&d=retro" }, "url": "t/1206129", "title": "\u5bf9\u53bb\u6c34\u5370\u7684\u8ba8\u8bba", "id": "t/1206129", "date_published": "2026-04-15T08:53:24+00:00", "content_html": "

\u8fd9\u4e24\u5929\u6709\u51e0\u4e2a AI \u751f\u4ea7\u7684\u77ed\u89c6\u9891\u8981\u53bb\u6c34\u5370\uff0c\u6298\u817e\u4e86\u51e0\u4e2a\u65b9\u6848\uff1a1.\u526a\u5f71\u7684 AI \u53bb\u6c34\u5370(\u5145\u4e86\u4f1a\u5458)\uff0c\u6548\u679c\u4e5f\u8fd8\u5c06\u5c31\uff1b 2.\u662f\u7528\u526a\u5f71\u7684\u906e\u7f69\u529f\u80fd\uff1b 3.\u6211\u5728 github \u627e\u4e86\u4e00\u4e2a https://github.com/D-Ogi/WatermarkRemover-AI.git ; \u8fd9\u4e2a\u65b9\u6848 \u7528\u7684\u6a21\u578b\uff0c\u597d\u4e0d\u5bb9\u5668\u89e3\u51b3\u4e86\u4e00\u4e9b\u95ee\u9898\u540e\uff0c\u89c6\u9891\u53bb\u6c34\u5370 \u8f93\u51fa\u89c6\u9891\u5168\u9ed1\u4e86\uff0c\u4e0d\u592a\u4f1a\u7f16\u7801\uff0c\u6ca1\u7ee7\u7eed\u6df1\u5165\u7814\u7a76\u4e86\uff1b

\n

\u8bf7\u95ee\u5927\u5bb6\u6709\u4ec0\u4e48\u597d\u7684\u514d\u8d39\u53bb\u6c34\u5370\u7684\u65b9\u6848\u6ca1

\n" }, { "author": { "url": "member/evamayy", "name": "evamayy", "avatar": "https://cdn.v2ex.com/gravatar/8af853bd9f5aeb9d7dae7b2eaf89ff47?s=73&d=retro" }, "url": "t/1206014", "title": "\u6709\u4ec0\u4e48\u6bd4\u8f83\u597d\u7684\u7ba1\u7406 skill \u7684\u5de5\u5177", "id": "t/1206014", "date_published": "2026-04-15T03:23:41+00:00", "content_html": "

\u672c\u5730\u7528 Claude \u548c codex \u5404\u5b89\u88c5\u4e86\u4e00\u4e9b skill \uff0c\u4f46\u662f\u611f\u89c9\u4e0d\u597d\u7ba1\u7406\uff0c\u800c\u4e14\u7248\u672c\u4e0d\u597d\u7ba1\u7406\n\u77e5\u9053 vercel \u6709\u4e00\u4e2a add-skill \uff0c\u597d\u50cf\u6ca1\u6709\u53ef\u89c6\u5316\u754c\u9762\n\u5927\u5bb6\u6709\u4ec0\u4e48\u63a8\u8350

\n" }, { "author": { "url": "member/bbroot", "name": "bbroot", "avatar": "https://cdn.v2ex.com/gravatar/f0b6c23d006e9840aff514318c0e915c?s=73&d=retro" }, "url": "t/1205766", "title": "\u6709\u73a9 ai/\u9f99\u867e\u5199\u5c0f\u8bf4\u7684\u4e48\uff1f\u6413\u4e86\u4e2a\u5c0f\u8bf4 bug \u68c0\u67e5 skill", "id": "t/1205766", "date_published": "2026-04-14T06:01:37+00:00", "content_html": "

\u76f4\u63a5\u653e\u5730\u5740 https://github.com/bbroot/novel-bug-checker

\n" }, { "author": { "url": "member/tonyeasyai", "name": "tonyeasyai", "avatar": "https://cdn.v2ex.com/avatar/9b11/0c2b/675816_large.png?m=1729736646" }, "url": "t/1197656", "date_modified": "2026-03-12T03:03:32+00:00", "content_html": "

Ag tool \u4e00\u770b\uff0c\u5237\u65b0\u5468\u671f\u52a0\u5230\u4e86\u4e00\u5468\uff0c\u800c\u4e14\u4eca\u5929 gemini 3.1 \u660e\u663e\u964d\u667a\u4e25\u91cd

\n", "date_published": "2026-03-12T03:03:00+00:00", "title": "\u5927\u5584\u4eba\u53c8\u5f00\u6574\u4e86\u5417\uff0c\u964d\u667a+\u4e00\u5468\u4e00\u5237", "id": "t/1197656" }, { "author": { "url": "member/OneOctet", "name": "OneOctet", "avatar": "https://cdn.v2ex.com/gravatar/4c34679b083988767fa11b15af640857?s=73&d=retro" }, "url": "t/1197177", "date_modified": "2026-03-10T09:10:54+00:00", "content_html": "\u6211\u662f\u540e\u7aef\u5f00\u53d1\uff0c\u73b0\u5728\u9700\u8981\u5904\u7406\u4e00\u4e9b\u6570\u636e\u7edf\u8ba1\u7684\u9700\u6c42\uff0c\u4e0d\u60f3\u5728\u4e1a\u52a1\u5e93\u8fdb\u884c\uff0c\u9700\u8981\u81ea\u5df1\u642d\u5efa\u6570\u4ed3\u3002
\u7edf\u8ba1\u9700\u6c42\uff0c\u90fd\u662f\u4e00\u4e9b\u7528\u6237\u8ba2\u5355\u6570\u636e\u7edf\u8ba1\uff0c\u7535\u5546\u8d22\u52a1\u62a5\u8868\u7b49\uff0c\u8ba2\u5355\u91cf\u5343\u4e07\u5de6\u53f3\uff0c\u6bcf\u65e5\u65b0\u589e 5w \u5de6\u53f3\u3002

\u4f8b\u5982\u7edf\u8ba1\u6bcf\u4e2a\u7528\u6237\uff0c\u6bcf\u65e5\u4e0b\u5355\u6570\u91cf\u3002\u7528\u6237\u5728 3/9 \u4e0b\u4e86 3 \u5355\uff0c\u5219\u9700\u8981 t+1 \u7edf\u8ba1\u51fa\u4e00\u6761\u8bb0\u5f55
user_id = 123 date = 03/09 count = 3
\u5982\u679c 3 / 10 \u53f7\uff0c\u7528\u6237\u9000\u6b3e\u4e86 3 / 9 \u7684 1 \u4e2a\u8ba2\u5355\uff0c\u5219\u9700\u8981\u5237\u65b0\u8bb0\u5f55\u4e3a
user_id = 123 date = 03/09 count = 2

\u7136\u540e\u5c31\u662f\u4e00\u4e9b\u5176\u4ed6\u7684\u7edf\u8ba1\u9700\u6c42\uff0c\u6bd4\u5982\u6bcf\u5929\u6bcf\u4e2a\u5546\u6237\u7684\u8425\u4e1a\u989d\uff0c\u8ba2\u5355\u6570\u4e4b\u7c7b\u7684\uff0c\u7ed3\u7b97\u62a5\u8868\u7b49

\u8bf7\u95ee\u6570\u4ed3\u5e94\u8be5\u7528\u4ec0\u4e48\uff0c\u60f3\u7528\u5b9e\u65f6\u7684\u6570\u4ed3\uff0c\u76ee\u524d\u9009\u5b9a doris
\u4e86\u89e3\u4e86\u4e00\u4e0b\u6570\u4ed3\u4e00\u822c\u90fd\u662f\u5206\u5c42\u5904\u7406\u7684 ods -> dwd -> dws - ads

ods \u5c42\u7684\u8868\u5e94\u8be5\u600e\u4e48\u5efa\uff1f\u6309\u4e1a\u52a1\u6570\u636e\u5e93\u4e00\u6837\u76f4\u63a5\u7167\u642c\u5417\uff1f
\u4f8b\u5982\u8ba2\u5355\u8868 order, \u8868\u6a21\u578b\u9009\u4ec0\u4e48\uff1f\u4e3b\u952e\u6a21\u578b\uff08 Unique Key Model \uff09\u5417\uff1f\u5206\u533a\u952e\u600e\u4e48\u9009\uff1f

\u6709\u4eba\u6307\u6761\u660e\u8def\u5417\uff1f\u95ee AI \u7ed9\u7684\u65b9\u6848\u90fd\u662f\u6a21\u51cc\u4e24\u53ef\u7684\uff0c\u8fd8\u662f\u771f\u4eba\u6307\u5bfc\u4e00\u4e0b\u8e0f\u5b9e\u3002\u63d0\u524d\u611f\u8c22\u4e86", "date_published": "2026-03-10T09:06:15+00:00", "title": "\u6570\u636e\u7edf\u8ba1\u95ee\u9898\u8bf7\u6559\uff0c\u6570\u4ed3\u5927\u54e5\u8bf7\u8fdb\uff0c\u5e2e\u4e0a\u5fd9\u7684\u53ef\u4ee5\u53d1\u7ea2\u5305\u611f\u8c22\ud83d\ude4f", "id": "t/1197177" }, { "author": { "url": "member/JieyueXing", "name": "JieyueXing", "avatar": "https://cdn.v2ex.com/avatar/59da/4184/624907_large.png?m=1775884346" }, "url": "t/1195098", "title": "\u4eca\u5e74\u5e94\u8be5\u662f Agent \u5de5\u7a0b\u5316\u4e4b\u5e74", "id": "t/1195098", "date_published": "2026-03-02T02:04:00+00:00", "content_html": "\u8fd9\u4e24\u5e74\u770b\u4f3c\u53d8\u5316\u5f88\u5927\u6982\u5ff5\u5c42\u51fa\u4e0d\u7a77\uff0c\u90fd\u662f\u56f4\u7ed5\u201c\u4eba\u7c7b\u8bed\u8a00\u7684\u63d0\u793a\u8bcd\u4e0e\u5927\u6a21\u578b\u4ea4\u4e92\u201d\uff0c\u201c\u5de5\u5177\u8c03\u7528\u4e0e\u6d41\u7a0b\u7f16\u6392\u201d\u6765\u5c55\u5f00\u7684\u3002

\u4eca\u5e74\u4e0e\u53bb\u5e74\u7684\u672c\u8d28\u533a\u522b\uff0c\u8bf4\u7247\u9762\u4e9b\u5c31\u662f\u5927\u8bed\u8a00\u6a21\u578b\u7684 \u201c\u4e0a\u4e0b\u6587\u201d\uff0c\u201c\u9075\u5faa\u5ea6\u201d\uff0c\u201c\u811a\u624b\u67b6\u201d\uff0c\u201c\u6027\u4ef7\u6bd4\u201d \u6709\u4e86\u5f88\u5927\u7684\u63d0\u5347\uff0c\u4ee5\u6b64\u4e3a\u57fa\u7840\uff0c\u5927\u5bb6\u624d\u80fd\u5728\u201c\u63d0\u793a\u8bcd\u4ea4\u4e92\u201d\u4e0a\u96d5\u82b1\u3002

\u53bb\u5e74\u662f Vibe Coding \u5e74\uff0c\u4eca\u5e74\u5e94\u8be5\u662f Agent \u5de5\u7a0b\u5316\u4e4b\u5e74\u3002\u4ece\u201c\u5199\u63d0\u793a\u8bcd\u7684\u62bd\u5956\u7f16\u7a0b\u201d\u5230\u201c\u591a\u6a21\u578b\u901a\u7528\u7684\u53ef\u89c2\u6d4b\u7f16\u6392\u201d\u3002\u7a0b\u5e8f\u5458\u7684\u6982\u5ff5\u4ece\u5355\u4e00\u5355\u8bed\u8a00\u7684\u7f16\u7801\u5458\u9010\u6e10\u8f6c\u53d8\u4e3a\u6709\u4ea7\u54c1\u601d\u7ef4\u4f1a\u64cd\u63a7\u591a\u6a21\u578b\u4e0e\u5de5\u5177\u7684\u5de5\u7a0b\u5e08\u3002

AI \u662f\u4e2a\u4eba\u80fd\u529b\u7684\u6760\u6746\uff0c\u53ea\u80fd\u4ee5\u500d\u7387\u653e\u5927\u4f60\u7684\u8ba4\u77e5\u4e0e\u6267\u884c\u529b\uff0c\u4e0d\u4f1a\u51ed\u7a7a\u521b\u9020\u539f\u672c\u4e0d\u5b58\u5728\u7684\u4ef7\u503c\u3002\u76ee\u524d\u7684\u524d\u671f\u5e02\u573a\u4ee5\u538b\u7f29\u4eba\u529b\u548c\u65f6\u95f4\u6210\u672c\u6765\u8282\u7701\u4ef7\u503c\uff0c\u86cb\u7cd5\u8fd8\u662f\u90a3\u4e48\u5927\uff0c\u53ea\u4e0d\u8fc7\u6bcf\u4e2a\u4eba\u5403\u7684\u53d8\u5c11\u4e86\u3002\u77ed\u671f\u589e\u91cf\u4ef7\u503c\u6709\u9650\uff0c\u4ef7\u503c\u7ed3\u6784\u6b63\u5728\u91cd\u6392\u3002

\u4e5f\u8bb8\u5728\u5ea6\u8fc7\u67d0\u4e2a\u666e\u901a\u7684\u5468\u4e8c\u4e4b\u540e\uff0c\u4e00\u5207\u90fd\u4f1a\u4e0d\u4e00\u6837\u4e86\u3002\u2014\u201c\u5947\u70b9\u5c06\u5728\u661f\u671f\u4e8c\u53d1\u751f\u201d" }, { "author": { "url": "member/JieyueXing", "name": "JieyueXing", "avatar": "https://cdn.v2ex.com/avatar/59da/4184/624907_large.png?m=1775884346" }, "url": "t/1195079", "title": "skill \u662f\u4e0d\u662f\u7b97\u662f\u4e00\u4e2a\u6700\u5c0f\u7684\u4ea7\u54c1\u5355\u4f4d", "id": "t/1195079", "date_published": "2026-03-02T01:24:27+00:00", "content_html": "" }, { "author": { "url": "member/cyangbo", "name": "cyangbo", "avatar": "https://cdn.v2ex.com/gravatar/d10e1f9afc5a55b158459b51dce70e69?s=73&d=retro" }, "url": "t/1195054", "title": "\u8bf7\u524d\u7aef\u5927\u4f6c\u63a8\u8350\u597d\u7528\u7684\u540e\u53f0\u7ba1\u7406\u7cfb\u7edf\u7684\u524d\u7aef\u6a21\u7248\uff0c\u7ed9\u540e\u7aef\u5f00\u53d1\u4f7f\u7528", "id": "t/1195054", "date_published": "2026-03-01T16:08:43+00:00", "content_html": "

\u540e\u53f0\u7ba1\u7406\u7cfb\u7edf\uff0c\u73b0\u5728\u8981\u627e\u4e00\u4e2a\u5f00\u6e90\u7684 vue \u8bed\u8a00\u7684\u540e\u53f0\u7ba1\u7406\u7cfb\u7edf\u7684\u524d\u7aef\uff08\u540e\u7aef\u5f00\u53d1\u4eba\u5458\uff0c\u4f7f\u7528\u524d\u7aef vue \uff09

\n

\u6211\u76ee\u524d\u627e\u7684\u662f\uff1avue-pure-admin

\n

\u6709\u4ec0\u4e48\u522b\u7684\u6846\u67b6\u63a8\u8350\u5417\uff1f

\n

\u6700\u5927\u9700\u6c42\u662f\uff1a\u5bb9\u6613\u4e0a\u624b

\n" }, { "author": { "url": "member/anlitechnet", "name": "anlitechnet", "avatar": "https://cdn.v2ex.com/avatar/c1d8/cac5/790043_large.png?m=1771999156" }, "url": "t/1193905", "title": "\u516c\u53f8\u8981\u91cd\u6784\u4e0b\u5e73\u53f0\u6280\u672f\u5e95\u5ea7\uff0c\u9009\u5f00\u6e90\u7684\u54ea\u4e2a\u597d", "id": "t/1193905", "date_published": "2026-02-25T02:32:19+00:00", "content_html": "

Java \u8bed\u8a00\u7684\uff0c\u65e2\u6709\u7684\u5e73\u53f0\u6280\u672f\u5e95\u5ea7\u6bd4\u8f83\u65e7\u4e86\uff0cjdk8 \u7684\uff0c\u73b0\u5728\u8981\u5168\u9762\u5347\u7ea7\u4e3a jdk17 \u7684\uff0c\u81ea\u7814\u7684\u8bdd\u65f6\u95f4\u6765\u4e0d\u53ca\u4e86\u3002\u8981\u5feb\u901f\u51fa\u4ea7\u54c1

\n" }, { "author": { "url": "member/airhunter", "name": "airhunter", "avatar": "https://cdn.v2ex.com/gravatar/ead0d8be0cbd8eb16ae96b4d0127cf25?s=73&d=retro" }, "url": "t/1190605", "title": "MacOS \u4e0a\u4f7f\u7528 oh-my-opencode \u667a\u80fd\u4f53\u7f3a\u5c11\u6700\u65b0\u7684\uff0c\u6c42\u52a9", "id": "t/1190605", "date_published": "2026-02-04T02:27:16+00:00", "content_html": "

\u6211\u73b0\u5728\u9047\u5230\u4e2a\u8be1\u5f02\u73b0\u8c61\u3002windows \u4e0a\u7684 opencode \u6253\u5f00\u53ef\u4ee5\u7528 tab \u5207 Sisyphus \uff0cPrometheus \u3001Hephaestus\u2026\u2026\n\u4f46\u5728 mac \u4e0a\uff0cTab \u5207\u6362\u53ea\u6709 Sisyphus \u548c Planner-Sisyphus \u4e24\u4e2a\u3002

\n

\u4e24\u8fb9 Opencode \u7248\u672c\u4e00\u81f4\uff0c\u90fd\u662f\u6700\u65b0\u7684 1.1.50 \uff0coh-my-opencode \u4e3a 3.2.2

\n

\u914d\u7f6e\u6587\u4ef6\u4ece windows \u4e0a COPY \u4e86 opencode.json \u548c oh-my-opencode.json \u8986\u76d6 MacOS \u4e2d\u7684\u914d\u7f6e\u4e5f\u65e0\u6548\u3002

\n

BTW\uff1awindows \u4e0a opencode \u4e00\u76f4\u5728\u7528\uff0cmac \u4e0a\u6709\u534a\u4e2a\u6708\u6ca1\u7528\u4e86\uff0c\u6240\u4ee5\u7248\u672c\u90fd\u662f\u4eca\u5929\u5f00\u673a\u81ea\u5df1\u5347\u7ea7\u4e0a\u53bb\u7684\u3002

\n" }, { "author": { "url": "member/JieyueXing", "name": "JieyueXing", "avatar": "https://cdn.v2ex.com/avatar/59da/4184/624907_large.png?m=1775884346" }, "url": "t/1188447", "title": "AutoHotkey\uff1a\u975e\u5e38\u5bb9\u6613\u4e0a\u624b\u7684 Windows \u81ea\u52a8\u5316\u811a\u672c\u8bed\u8a00\u5de5\u5177", "id": "t/1188447", "date_published": "2026-01-26T07:50:34+00:00", "content_html": "

AutoHotkey (AHK) \u53ef\u4ee5\u7528\u6781\u5c11\u4ee3\u7801\u5b9e\u73b0 Windows \u70ed\u952e/\u7a97\u53e3/\u952e\u9f20/\u6587\u672c \u7b49\u5904\u7406\uff0c\u53ef\u8bfb\u6027\u548c\u7ef4\u62a4\u6027\u8f83\u5f3a\u3002

\n

\u5728 Windows \u4e0a\u53ef\u4ee5\u5feb\u901f\u5c06 .ahk \u811a\u672c\u5c01\u88c5\u6210 .exe \uff08\u4e5f\u53ef\u4ee5\u53cc\u51fb .ahk \u76f4\u63a5\u8fd0\u884c\uff0c\u6bd4 .cmd/.bat/.ps1 \u517c\u5bb9\u6027\u66f4\u5f3a\u66f4\u5bb9\u6613\u5206\u53d1\uff0c\u4e0d\u5bb9\u6613\u8e29 UTF-8 \u4e71\u7801\u7684\u5751\uff09\u3002\u4e0d\u719f\u6089\u7684\u4eba\u4e5f\u53ef\u901a\u8fc7 AI \u5feb\u901f\u642d\u5efa\u8d77\u4e00\u4e2a\u5e26 UI \u53ef\u5e38\u9a7b\u4efb\u52a1\u680f\u7684\u811a\u672c\u5de5\u5177\u3002

\n

\u4f7f\u7528\u573a\u666f\uff1a

\n\n

\u6587\u6863\uff08 v2 \uff0cAI \u53ef\u80fd\u66f4\u719f\u6089 v1 \u8bed\u6cd5\uff09\uff1a https://www.autohotkey.com/docs/v2/

\n" }, { "author": { "url": "member/couture", "name": "couture", "avatar": "https://cdn.v2ex.com/avatar/b2ff/db77/659362_large.png?m=1764546479" }, "url": "t/1188089", "title": "\u865a\u62df\u5316\u56fd\u4ea7 ZStack \u66ff\u6362 VMware \u4e2a\u4eba\u9047\u5230\u7684\u75db\u70b9", "id": "t/1188089", "date_published": "2026-01-24T12:03:39+00:00", "content_html": "

\u9996\u5148\u6211\u4e0d\u662f\u63a8\u9500\u4ea7\u54c1\uff0c\u5c31\u662f\u5355\u7eaf\u7684\u5206\u4eab\uff0c\u6211\u5728\u56fd\u4ea7\u5316\u865a\u62df\u5316\u66ff\u4ee3\u4e2d\u4f7f\u7528 zstack \u66ff\u6362 VMware \u9047\u5230\u7684\u95ee\u9898\uff0c\u4e0d\u77e5\u9053\u5404\u4f4d\u5927\u4f6c\u5982\u4f55\u89e3\u51b3\u8fd9\u4e9b\u75db\u70b9\u3002\n1.drs \u4e0d\u540c cpu \u4e4b\u95f4\u4e0d\u53ef\u7528\n2.\u4e0d\u80fd\u6279\u91cf\u70ed\u8fc1\u79fb\n3.\u9875\u9762\u5237\u65b0\u975e\u5e38\u62bd\u8c61\uff0c\u4e00\u4f1a\u513f\u6b63\u5e38\uff0c\u4e00\u4f1a\u513f\u4e0d\u6b63\u5e38\n4.\u865a\u62df\u673a\u5173\u673a\u6216\u8005\u662f\u91cd\u542f\u4ee5\u540e\u9700\u8981\u624b\u52a8\u540c\u6b65\u4e0b\u53d1 IP

\n" }, { "author": { "url": "member/JieyueXing", "name": "JieyueXing", "avatar": "https://cdn.v2ex.com/avatar/59da/4184/624907_large.png?m=1775884346" }, "url": "t/1186317", "title": "\u6280\u672f\u6808\u9996\u8d34\uff1a\u5929\u4e0b\u98ce\u4e91\u51fa\u6211\u8f88\uff0c\u4e00\u5165\u6c5f\u6e56\u5c81\u6708\u50ac", "id": "t/1186317", "date_published": "2026-01-16T11:38:30+00:00", "content_html": "
\n

\u5929\u4e0b\u98ce\u4e91\u51fa\u6211\u8f88\uff0c\u4e00\u5165\u6c5f\u6e56\u5c81\u6708\u50ac\u3002
\n\u7687\u56fe\u9738\u4e1a\u8c08\u7b11\u4e2d\uff0c\u4e0d\u80dc\u4eba\u751f\u4e00\u573a\u9189\u3002

\n
\n

Flash \u65f6\u4ee3 \u4e00\u4e2a\u4eba\u3001\u4e00\u53f0\u7535\u8111\u3001\u5c31\u80fd\u628a\u8111\u5b50\u91cc\u7684\u6c5f\u6e56\u505a\u51fa\u6765\u3002

\n

\u65e9\u671f\u201c\u72ec\u7acb\u5f00\u53d1\u8005\u201d\u534a\u74f6\u795e\u4ed9\u918b\u7684\u300a\u91d1\u5eb8\u7fa4\u4fa0\u4f20 2/3 \u300b\u7b97\u662f\u6211\u513f\u65f6\u7684\u4e00\u4ee3\u795e\u4f5c\u4e4b\u4e00\u3002
\n\u6700\u8fd1\u7684\u65b0\u4f5c\u300a\u5927\u4fa0\u7acb\u5fd7\u4f20\u300b\u4eff\u4f5b\u8ba9\u4eba\u68a6\u56de\u90a3\u4e2a\u5728 4399 \u5237\u5b58\u6863\u7684\u4e0b\u5348\u3002

\n

\u6280\u672f\u6808\u9996\u8d34\uff0c\u795d\u5927\u5bb6\u5728\u5404\u81ea\u7684\u9886\u57df\u91cc\uff0c\u6784\u5efa\u51fa\u5c5e\u4e8e\u81ea\u5df1\u7684\u6c5f\u6e56\u68a6\u3002

\n

\"jyqxz3\"

\n" } ] } ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86