{"id":525,"date":"2026-03-28T18:39:13","date_gmt":"2026-03-28T10:39:13","guid":{"rendered":"https:\/\/www.yaliai.com\/?p=525"},"modified":"2026-03-28T19:37:27","modified_gmt":"2026-03-28T11:37:27","slug":"ai-qudongde-wordpre","status":"publish","type":"post","link":"https:\/\/www.yaliai.com\/en\/seo-tutorial\/ai-qudongde-wordpre.html","title":{"rendered":"AI \u9a71\u52a8\u7684 WordPress \u5f00\u53d1\uff1aSuperpowers + Impeccable \u5b8c\u5168\u6307\u5357"},"content":{"rendered":"<blockquote><p>\u901a\u8fc7\u63d0\u793a\u8bcd\u4e0e AI \u534f\u4f5c\uff0c\u8ba9\u5f00\u53d1\u66f4\u7b80\u5355\u3001\u66f4\u4e13\u4e1a<\/p><\/blockquote>\n<h2>\u5f00\u59cb\u4e4b\u524d\uff1a\u4f60\u9700\u8981\u51c6\u5907\u4ec0\u4e48<\/h2>\n<h3>\u6280\u672f\u57fa\u7840\u8981\u6c42<\/h3>\n<p>\u5728\u9605\u8bfb\u672c\u6307\u5357\u524d\uff0c\u5efa\u8bae\u4f60\u5df2\u7ecf\u5177\u5907\uff1a<\/p>\n<ul>\n<li><strong>WordPress \u57fa\u7840<\/strong>\uff1a\u4e86\u89e3\u4e3b\u9898\u3001\u63d2\u4ef6\u7684\u57fa\u672c\u6982\u5ff5\uff0c\u4f1a\u5b89\u88c5\u548c\u4f7f\u7528 WordPress<\/li>\n<li><strong>PHP \u8bed\u6cd5\u57fa\u7840<\/strong>\uff1a\u7406\u89e3\u53d8\u91cf\u3001\u51fd\u6570\u3001\u7c7b\u7684\u57fa\u672c\u6982\u5ff5<\/li>\n<li><strong>\u547d\u4ee4\u884c\u64cd\u4f5c<\/strong>\uff1a\u80fd\u5728\u7ec8\u7aef\u4e2d\u8fd0\u884c\u7b80\u5355\u547d\u4ee4\uff08\u5982\u00a0<code>cd<\/code>\u3001<code>ls<\/code>\uff09<\/li>\n<li><strong>Git \u57fa\u7840<\/strong>\uff1a\u4e86\u89e3\u5206\u652f\u3001\u63d0\u4ea4\u7684\u6982\u5ff5\uff08\u4e0d\u719f\u6089\u4e5f\u6ca1\u5173\u7cfb\uff0c\u6211\u4eec\u4f1a\u8bb2\u89e3\uff09<\/li>\n<\/ul>\n<h3>\u5de5\u5177\u51c6\u5907<\/h3>\n<p>\u4f60\u9700\u8981\u4e00\u4e2a\u652f\u6301 AI \u6280\u80fd\u7cfb\u7edf\u7684\u5f00\u53d1\u5de5\u5177\uff1a<\/p>\n<table>\n<thead>\n<tr>\n<th>\u5de5\u5177<\/th>\n<th>\u63a8\u8350\u6307\u6570<\/th>\n<th>\u8bf4\u660e<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Claude Code<\/strong><\/td>\n<td>\u2b50\u2b50\u2b50\u2b50\u2b50<\/td>\n<td>\u529f\u80fd\u6700\u5b8c\u6574\uff0c\u652f\u6301\u63d2\u4ef6\u5e02\u573a<\/td>\n<\/tr>\n<tr>\n<td><strong>Cursor<\/strong><\/td>\n<td>\u2b50\u2b50\u2b50\u2b50\u2b50<\/td>\n<td>\u96c6\u6210 IDE\uff0c\u9002\u5408\u65e5\u5e38\u5f00\u53d1<\/td>\n<\/tr>\n<tr>\n<td><strong>Gemini CLI<\/strong><\/td>\n<td>\u2b50\u2b50\u2b50\u2b50<\/td>\n<td>Google \u51fa\u54c1\uff0c\u54cd\u5e94\u901f\u5ea6\u5feb<\/td>\n<\/tr>\n<tr>\n<td><strong>Codex CLI<\/strong><\/td>\n<td>\u2b50\u2b50\u2b50\u2b50<\/td>\n<td>OpenAI \u5b98\u65b9\uff0c\u4e0e GPT-4 \u6df1\u5ea6\u96c6\u6210<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>\u65b0\u624b\u63a8\u8350<\/strong>\uff1a\u4ece Claude Code \u6216 Cursor \u5f00\u59cb\uff0c\u5b83\u4eec\u7684\u63d2\u4ef6\u5e02\u573a\u8ba9\u5b89\u88c5\u6700\u7b80\u5355\u3002<\/p>\n<h3>\u672c\u8282\u5173\u952e\u6982\u5ff5<\/h3>\n<ul>\n<li><strong>AI \u5f00\u53d1\u5de5\u5177<\/strong>\uff1a\u80fd\u7406\u89e3\u81ea\u7136\u8bed\u8a00\u5e76\u751f\u6210\u4ee3\u7801\u7684\u667a\u80fd\u52a9\u624b<\/li>\n<li><strong>\u6280\u80fd\u7cfb\u7edf\uff08Skills\uff09<\/strong>\uff1a\u8ba9 AI \u6309\u7167\u4e13\u4e1a\u6d41\u7a0b\u5de5\u4f5c\u7684\u6307\u4ee4\u96c6<\/li>\n<\/ul>\n<h2>\u8ba4\u8bc6\u4f60\u7684 AI \u5f00\u53d1\u52a9\u624b<\/h2>\n<h3>\u4ec0\u4e48\u662f Superpowers\uff1f<\/h3>\n<p><strong>Superpowers<\/strong>\u00a0\u662f\u4e00\u4e2a\u5e2e\u52a9 AI \u6210\u4e3a\u4e13\u4e1a\u8f6f\u4ef6\u5f00\u53d1\u8005\u7684\u6280\u80fd\u6846\u67b6\u3002\u7b80\u5355\u8bf4\uff0c\u5b83\u8ba9 AI \u4e0d\u518d&#8221;\u60f3\u5230\u4ec0\u4e48\u5199\u4ec0\u4e48&#8221;\uff0c\u800c\u662f\u6309\u7167\u5de5\u7a0b\u5e08\u7684\u6807\u51c6\u6d41\u7a0b\u5de5\u4f5c\uff1a<\/p>\n<p><strong>\u4f20\u7edf AI \u5f00\u53d1\u7684\u95ee\u9898<\/strong>\uff1a<\/p>\n<pre><code>\u4f60\uff1a\u5e2e\u6211\u5199\u4e2a\u63d2\u4ef6\r\nAI\uff1a\u597d\u7684\uff0c\u8fd9\u662f\u4ee3\u7801\uff08\u76f4\u63a5\u5f00\u59cb\u5199\uff09\r\n\u2193 \u7ed3\u679c\uff1a\u4ee3\u7801\u53ef\u80fd\u4e0d\u7b26\u5408\u89c4\u8303\uff0c\u6ca1\u6709\u6d4b\u8bd5\uff0c\u96be\u4ee5\u7ef4\u62a4\r\n<\/code><\/pre>\n<p><strong>\u4f7f\u7528 Superpowers \u540e\u7684\u6d41\u7a0b<\/strong>\uff1a<\/p>\n<pre><code>\u4f60\uff1a\u5e2e\u6211\u5199\u4e2a\u63d2\u4ef6\r\nAI\uff1a\u5148\u522b\u6025\uff0c\u8ba9\u6211\u4e86\u89e3\u4f60\u7684\u9700\u6c42\uff08brainstorming\uff09\r\nAI\uff1a\u8fd9\u662f\u8bbe\u8ba1\u65b9\u6848\uff0c\u4f60\u770b\u53ef\u4ee5\u5417\uff1f\r\n\u4f60\uff1a\u53ef\u4ee5\r\nAI\uff1a\u597d\u7684\uff0c\u6211\u5236\u5b9a\u5b9e\u65bd\u8ba1\u5212\uff08writing-plans\uff09\r\nAI\uff1a\u73b0\u5728\u5f00\u59cb\u5199\u4ee3\u7801\uff0c\u5148\u5199\u6d4b\u8bd5\uff08test-driven-development\uff09\r\n\u2193 \u7ed3\u679c\uff1a\u4ee3\u7801\u89c4\u8303\u3001\u6709\u6d4b\u8bd5\u3001\u6613\u4e8e\u7ef4\u62a4\r\n<\/code><\/pre>\n<p><strong>Superpowers \u5305\u542b\u7684\u6838\u5fc3\u6280\u80fd<\/strong>\uff1a<\/p>\n<table>\n<thead>\n<tr>\n<th>\u6280\u80fd\u540d\u79f0<\/th>\n<th>\u4f5c\u7528<\/th>\n<th>\u4f60\u8be5\u600e\u4e48\u8ddf AI \u8bf4<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>brainstorming<\/code><\/td>\n<td>\u6f84\u6e05\u9700\u6c42\u3001\u63a2\u7d22\u65b9\u6848<\/td>\n<td>&#8220;\u5e2e\u6211\u89c4\u5212\u8fd9\u4e2a\u529f\u80fd&#8221; \/ &#8221; brainstorm \u4e00\u4e0b&#8221;<\/td>\n<\/tr>\n<tr>\n<td><code>writing-plans<\/code><\/td>\n<td>\u5236\u5b9a\u8be6\u7ec6\u5b9e\u65bd\u8ba1\u5212<\/td>\n<td>&#8220;\u5236\u5b9a\u5b9e\u65bd\u8ba1\u5212&#8221; \/ &#8220;\u89c4\u5212\u5f00\u53d1\u6b65\u9aa4&#8221;<\/td>\n<\/tr>\n<tr>\n<td><code>test-driven-development<\/code><\/td>\n<td>\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1<\/td>\n<td>&#8220;\u7528 TDD \u65b9\u5f0f\u5f00\u53d1&#8221; \/ &#8220;\u5148\u5199\u6d4b\u8bd5&#8221;<\/td>\n<\/tr>\n<tr>\n<td><code>systematic-debugging<\/code><\/td>\n<td>\u7cfb\u7edf\u5316\u8c03\u8bd5<\/td>\n<td>&#8220;\u5e2e\u6211\u8c03\u8bd5\u8fd9\u4e2a Bug&#8221; \/ &#8220;\u627e\u51fa\u6839\u672c\u539f\u56e0&#8221;<\/td>\n<\/tr>\n<tr>\n<td><code>subagent-driven-development<\/code><\/td>\n<td>\u5b50\u4ee3\u7406\u5e76\u884c\u5f00\u53d1<\/td>\n<td>&#8220;\u5e76\u884c\u5f00\u53d1\u8fd9\u4e9b\u4efb\u52a1&#8221;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\u4ec0\u4e48\u662f Impeccable\uff1f<\/h3>\n<p><strong>Impeccable<\/strong>\u00a0\u662f\u4e00\u4e2a\u8ba9 AI \u751f\u6210\u4e13\u4e1a\u7ea7\u524d\u7aef\u8bbe\u8ba1\u7684\u6280\u80fd\u7cfb\u7edf\u3002\u5982\u679c\u4f60\u7528\u8fc7 AI \u751f\u6210\u7f51\u9875\uff0c\u53ef\u80fd\u4f1a\u53d1\u73b0\u5b83\u4eec\u957f\u5f97\u90fd\u5f88\u50cf\uff1a\u7d2b\u8272\u6e10\u53d8\u3001\u5706\u89d2\u5361\u7247\u3001Inter \u5b57\u4f53\u2026\u2026\u8fd9\u53eb&#8221;AI \u98ce\u683c&#8221;\uff08AI slop\uff09\u3002<\/p>\n<p>Impeccable \u7684\u4f5c\u7528\u5c31\u662f<strong>\u8ba9 AI \u505c\u6b62\u751f\u6210\u5343\u7bc7\u4e00\u5f8b\u7684\u8bbe\u8ba1<\/strong>\uff0c\u800c\u662f\u6839\u636e\u4f60\u7684\u9879\u76ee\u7279\u70b9\u521b\u5efa\u72ec\u7279\u7684\u3001\u4e13\u4e1a\u7684\u754c\u9762\u3002<\/p>\n<p><strong>Impeccable \u7684\u6838\u5fc3\u547d\u4ee4<\/strong>\uff1a<\/p>\n<table>\n<thead>\n<tr>\n<th>\u547d\u4ee4<\/th>\n<th>\u4f5c\u7528<\/th>\n<th>\u4f7f\u7528\u573a\u666f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>\/teach-impeccable<\/code><\/td>\n<td>\u9996\u6b21\u4f7f\u7528\uff0c\u5efa\u7acb\u8bbe\u8ba1\u4e0a\u4e0b\u6587<\/td>\n<td>\u65b0\u9879\u76ee\u5f00\u59cb\u65f6<\/td>\n<\/tr>\n<tr>\n<td><code>\/audit<\/code><\/td>\n<td>\u6280\u672f\u8d28\u91cf\u68c0\u67e5<\/td>\n<td>\u4ee3\u7801\u5b8c\u6210\u540e<\/td>\n<\/tr>\n<tr>\n<td><code>\/critique<\/code><\/td>\n<td>\u8bbe\u8ba1\u8d28\u91cf\u8bc4\u4f30<\/td>\n<td>\u754c\u9762\u5b8c\u6210\u540e<\/td>\n<\/tr>\n<tr>\n<td><code>\/polish<\/code><\/td>\n<td>\u6700\u7ec8\u6da6\u8272<\/td>\n<td>\u53d1\u5e03\u524d<\/td>\n<\/tr>\n<tr>\n<td><code>\/typeset<\/code><\/td>\n<td>\u4f18\u5316\u6392\u7248<\/td>\n<td>\u6587\u5b57\u663e\u793a\u6709\u95ee\u9898<\/td>\n<\/tr>\n<tr>\n<td><code>\/colorize<\/code><\/td>\n<td>\u4f18\u5316\u914d\u8272<\/td>\n<td>\u989c\u8272\u642d\u914d\u4e0d\u534f\u8c03<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\u4e24\u4e2a\u7cfb\u7edf\u5982\u4f55\u914d\u5408<\/h3>\n<pre><code>\u540e\u7aef\u903b\u8f91\u5f00\u53d1 \u2192 Superpowers\r\n\u524d\u7aef\u754c\u9762\u8bbe\u8ba1 \u2192 Impeccable\r\n<\/code><\/pre>\n<p>\u5b8c\u6574\u7684\u5de5\u4f5c\u6d41\u7a0b\uff1a<\/p>\n<ol>\n<li>\u7528 Superpowers \u89c4\u5212\u540e\u7aef\u529f\u80fd<\/li>\n<li>\u7528 Superpowers \u7f16\u5199\u4ee3\u7801\u548c\u6d4b\u8bd5<\/li>\n<li>\u7528 Impeccable \u8bbe\u8ba1\u524d\u7aef\u754c\u9762<\/li>\n<li>\u7528 Impeccable \u5ba1\u67e5\u548c\u6da6\u8272<\/li>\n<\/ol>\n<h2>\u7b2c\u4e00\u6b65\uff1a\u5b89\u88c5\u6280\u80fd\u7cfb\u7edf<\/h2>\n<h3>\u5b89\u88c5 Superpowers<\/h3>\n<p>\u6839\u636e\u4f60\u4f7f\u7528\u7684\u5de5\u5177\uff0c\u9009\u62e9\u5bf9\u5e94\u7684\u5b89\u88c5\u65b9\u5f0f\uff1a<\/p>\n<h4>Claude Code\uff08\u63a8\u8350\uff09<\/h4>\n<pre><code># \u7b2c\u4e00\u6b65\uff1a\u6ce8\u518c Superpowers \u5e02\u573a\r\n\/plugin marketplace add obra\/superpowers-marketplace\r\n# \u7b2c\u4e8c\u6b65\uff1a\u5b89\u88c5\u63d2\u4ef6\r\n\/plugin install superpowers@superpowers-marketplace\r\n# \u7b2c\u4e09\u6b65\uff1a\u9a8c\u8bc1\u5b89\u88c5\r\n# \u95ee AI\uff1a\"do you have superpowers?\"\r\n# AI \u5e94\u8be5\u56de\u7b54\u786e\u8ba4\u5e76\u5217\u51fa\u53ef\u7528\u6280\u80fd\r\n<\/code><\/pre>\n<h4>Cursor\uff08\u63a8\u8350\uff09<\/h4>\n<pre><code># \u5728 Cursor Agent Chat \u4e2d\u8f93\u5165\r\n\/add-plugin superpowers\r\n# \u6216\u8005\u5728\u63d2\u4ef6\u5e02\u573a\u641c\u7d22 \"superpowers\" \u5e76\u5b89\u88c5\r\n<\/code><\/pre>\n<p><strong>\u6ce8\u610f<\/strong>\uff1aCursor \u9700\u8981\u542f\u7528 Agent Skills\uff1a<\/p>\n<ol>\n<li>Settings \u2192 Beta \u2192 \u5207\u6362\u5230 Nightly channel<\/li>\n<li>Settings \u2192 Rules \u2192 \u542f\u7528 Agent Skills<\/li>\n<\/ol>\n<h4>Gemini CLI<\/h4>\n<pre><code># \u5b89\u88c5\u6269\u5c55\r\ngemini extensions install https:\/\/github.com\/obra\/superpowers\r\n# \u9a8c\u8bc1\r\ngemini extensions list\r\n# \u66f4\u65b0\r\ngemini extensions update superpowers\r\n<\/code><\/pre>\n<h4>Codex CLI<\/h4>\n<pre><code># \u8ba9 Codex \u81ea\u52a8\u83b7\u53d6\u5b89\u88c5\u6307\u5357\r\n# \u76f4\u63a5\u544a\u8bc9 Codex\uff1a\r\nFetch and follow instructions from https:\/\/raw.githubusercontent.com\/obra\/superpowers\/refs\/heads\/main\/.codex\/INSTALL.md\r\n<\/code><\/pre>\n<h3>\u5b89\u88c5 Impeccable<\/h3>\n<p>Impeccable \u63d0\u4f9b\u901a\u7528\u5b89\u88c5\u547d\u4ee4\uff0c\u81ea\u52a8\u68c0\u6d4b\u4f60\u4f7f\u7528\u7684 AI \u5de5\u5177\uff1a<\/p>\n<pre><code># \u63a8\u8350\u65b9\u5f0f\uff1a\u4e00\u952e\u5b89\u88c5\uff08\u81ea\u52a8\u68c0\u6d4b\u5e73\u53f0\uff09\r\nnpx skills add pbakaus\/impeccable --yes\r\n# \u66f4\u65b0\u5230\u6700\u65b0\u7248\u672c\r\nnpx skills update\r\n# \u68c0\u67e5\u662f\u5426\u6709\u65b0\u7248\u672c\r\nnpx skills check\r\n<\/code><\/pre>\n<p>\u8fd9\u4f1a\u81ea\u52a8\u5728\u4f60\u7684\u9879\u76ee\u4e2d\u521b\u5efa\u5bf9\u5e94\u5e73\u53f0\u7684\u914d\u7f6e\u6587\u4ef6\u5939\u3002<\/p>\n<h4>Claude Code \u63d2\u4ef6\u5e02\u573a\u5b89\u88c5<\/h4>\n<pre><code># \u6ce8\u518c\u5e02\u573a\r\n\/plugin marketplace add pbakaus\/impeccable\r\n# \u5b89\u88c5\r\n\/plugin install pbakaus\/impeccable\r\n<\/code><\/pre>\n<h4>Cursor \u5b89\u88c5<\/h4>\n<pre><code># \u901a\u8fc7\u63d2\u4ef6\u547d\u4ee4\r\n\/plugin\r\n# \u5728 Discover \u6807\u7b7e\u9875\u641c\u7d22 \"impeccable\" \u5e76\u5b89\u88c5\r\n<\/code><\/pre>\n<h4>\u5176\u4ed6\u5e73\u53f0<\/h4>\n<p>\u5bf9\u4e8e Gemini CLI\u3001Codex CLI\u3001OpenCode\u3001Pi \u7b49\uff0c\u901a\u7528\u00a0<code>npx skills<\/code>\u00a0\u547d\u4ee4\u90fd\u652f\u6301\uff1a<\/p>\n<pre><code>npx skills add pbakaus\/impeccable\r\n<\/code><\/pre>\n<h3>\u9a8c\u8bc1\u5b89\u88c5<\/h3>\n<p>\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u9a8c\u8bc1\uff1a<\/p>\n<p><strong>\u9a8c\u8bc1 Superpowers<\/strong>\uff1a<\/p>\n<pre><code>\u4f60\uff1ado you have superpowers?\r\nAI\uff1a\u662f\u7684\uff0c\u6211\u5df2\u7ecf\u5b89\u88c5\u4e86 Superpowers \u6280\u80fd\u7cfb\u7edf\u3002\u6211\u53ef\u4ee5\u4f7f\u7528 brainstorming\u3001writing-plans\u3001test-driven-development \u7b49\u6280\u80fd\u6765\u5e2e\u52a9\u4f60\u5f00\u53d1\u3002\r\n<\/code><\/pre>\n<p><strong>\u9a8c\u8bc1 Impeccable<\/strong>\uff1a<\/p>\n<pre><code>\u4f60\uff1a\/\r\n# \u67e5\u770b\u662f\u5426\u80fd\u5217\u51fa \/audit\u3001\/polish\u3001\/teach-impeccable \u7b49\u547d\u4ee4\r\n<\/code><\/pre>\n<h2>\u5b9e\u6218\u793a\u4f8b 1\uff1a\u5f00\u53d1\u8054\u7cfb\u8868\u5355\u63d2\u4ef6<\/h2>\n<p>\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5c06\u4ece\u96f6\u5f00\u59cb\u521b\u5efa\u4e00\u4e2a WordPress \u8054\u7cfb\u8868\u5355\u63d2\u4ef6\u3002\u91cd\u70b9\u662f\u5c55\u793a<strong>\u4f60\u4e0e AI \u7684\u5bf9\u8bdd\u8fc7\u7a0b<\/strong>\u4ee5\u53ca<strong>\u6bcf\u4e2a\u9636\u6bb5\u7684\u4ea4\u4ed8\u6210\u679c<\/strong>\u3002<\/p>\n<h3>\u573a\u666f\u8bbe\u5b9a<\/h3>\n<p>\u4f60\u60f3\u4e3a\u5ba2\u6237\u7684 WordPress \u7f51\u7ad9\u6dfb\u52a0\u4e00\u4e2a\u7b80\u5355\u7684\u8054\u7cfb\u8868\u5355\u529f\u80fd\uff0c\u9700\u8981\uff1a<\/p>\n<ul>\n<li>\u524d\u7aef\u663e\u793a\u8868\u5355\uff08\u59d3\u540d\u3001\u90ae\u7bb1\u3001\u4e3b\u9898\u3001\u7559\u8a00\uff09<\/li>\n<li>\u6570\u636e\u4fdd\u5b58\u5230\u6570\u636e\u5e93<\/li>\n<li>\u540e\u53f0\u53ef\u4ee5\u67e5\u770b\u7559\u8a00<\/li>\n<li>\u90ae\u4ef6\u901a\u77e5\u7ba1\u7406\u5458<\/li>\n<\/ul>\n<h3>\u7b2c\u4e00\u9636\u6bb5\uff1a\u9700\u6c42\u6f84\u6e05\uff08Brainstorming\uff09<\/h3>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u6211\u60f3\u5f00\u53d1\u4e00\u4e2a WordPress \u8054\u7cfb\u8868\u5355\u63d2\u4ef6\uff0c\u5e2e\u6211\u89c4\u5212\u4e00\u4e0b\u8fd9\u4e2a\u529f\u80fd\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u601d\u8003\u8fc7\u7a0b<\/strong>\uff08brainstorming \u6280\u80fd\u81ea\u52a8\u89e6\u53d1\uff09\uff1a<\/p>\n<p>AI \u4e0d\u4f1a\u7acb\u5373\u5199\u4ee3\u7801\uff0c\u800c\u662f\u5148\u95ee\u4f60\u4e00\u7cfb\u5217\u95ee\u9898\u6765\u6f84\u6e05\u9700\u6c42\uff1a<\/p>\n<pre><code>\u5728\u5f00\u59cb\u4e4b\u524d\uff0c\u8ba9\u6211\u4e86\u89e3\u4e00\u4e9b\u7ec6\u8282\uff1a\r\n1. **\u529f\u80fd\u8303\u56f4**\uff1a\r\n- \u9700\u8981\u54ea\u4e9b\u5b57\u6bb5\uff1f\uff08\u5efa\u8bae\uff1a\u59d3\u540d\u3001\u90ae\u7bb1\u3001\u4e3b\u9898\u3001\u7559\u8a00\u662f\u6807\u51c6\u914d\u7f6e\uff09\r\n- \u662f\u5426\u9700\u8981\u6587\u4ef6\u4e0a\u4f20\u529f\u80fd\uff1f\r\n- \u662f\u5426\u9700\u8981\u9a8c\u8bc1\u7801\u9632\u5783\u573e\u90ae\u4ef6\uff1f\r\n2. **\u6570\u636e\u5b58\u50a8**\uff1a\r\n- \u662f\u5426\u9700\u8981\u5728\u6570\u636e\u5e93\u4e2d\u4fdd\u5b58\u7559\u8a00\u8bb0\u5f55\uff1f\r\n- \u540e\u53f0\u662f\u5426\u9700\u8981\u7ba1\u7406\u754c\u9762\u67e5\u770b\u5386\u53f2\u8bb0\u5f55\uff1f\r\n3. **\u90ae\u4ef6\u901a\u77e5**\uff1a\r\n- \u63d0\u4ea4\u540e\u662f\u5426\u9700\u8981\u53d1\u9001\u90ae\u4ef6\u901a\u77e5\u7ba1\u7406\u5458\uff1f\r\n- \u662f\u5426\u9700\u8981\u81ea\u52a8\u56de\u590d\u7ed9\u8bbf\u5ba2\uff1f\r\n4. **\u524d\u7aef\u5c55\u793a**\uff1a\r\n- \u4f7f\u7528\u77ed\u4ee3\u7801\u65b9\u5f0f\uff08\u5982 [contact_form]\uff09\u63d2\u5165\u9875\u9762\uff1f\r\n- \u8fd8\u662f\u505a\u6210\u53e4\u817e\u5821\u5757\uff1f\r\n5. **\u6837\u5f0f\u9700\u6c42**\uff1a\r\n- \u662f\u5426\u9700\u8981\u81ea\u5b9a\u4e49 CSS \u6837\u5f0f\uff1f\r\n- \u8fd8\u662f\u4f7f\u7528\u4e3b\u9898\u9ed8\u8ba4\u6837\u5f0f\uff1f\r\n\u8bf7\u544a\u8bc9\u6211\u4f60\u7684\u504f\u597d\uff0c\u6211\u4f1a\u4e3a\u4f60\u5236\u5b9a\u8be6\u7ec6\u7684\u5f00\u53d1\u8ba1\u5212\u3002\r\n<\/code><\/pre>\n<p><strong>\u4f60\u7684\u56de\u590d<\/strong>\uff1a<\/p>\n<pre><code>\u5c31\u6807\u51c6\u5b57\u6bb5\uff08\u59d3\u540d\u3001\u90ae\u7bb1\u3001\u4e3b\u9898\u3001\u7559\u8a00\uff09\uff0c\u9700\u8981\u4fdd\u5b58\u5230\u6570\u636e\u5e93\uff0c\u540e\u53f0\u53ef\u4ee5\u67e5\u770b\uff0c\u4f7f\u7528\u77ed\u4ee3\u7801\u65b9\u5f0f\uff0c\u9700\u8981\u57fa\u672c\u7684\u6837\u5f0f\u3002\u90ae\u4ef6\u901a\u77e5\u7528 WordPress \u9ed8\u8ba4\u7684 wp_mail\u3002\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u4ea4\u4ed8\u6210\u679c<\/strong>\uff1a<\/p>\n<pre><code>## \u8054\u7cfb\u8868\u5355\u63d2\u4ef6 - \u9700\u6c42\u786e\u8ba4\r\n### \u6838\u5fc3\u529f\u80fd\r\n- \u524d\u7aef\u8868\u5355\uff1a\u59d3\u540d\u3001\u90ae\u7bb1\u3001\u4e3b\u9898\u3001\u7559\u8a00\u5b57\u6bb5\r\n- \u6570\u636e\u5b58\u50a8\uff1a\u4fdd\u5b58\u5230 WordPress \u6570\u636e\u5e93\r\n- \u540e\u53f0\u7ba1\u7406\uff1a\u67e5\u770b\u548c\u5220\u9664\u7559\u8a00\r\n- \u90ae\u4ef6\u901a\u77e5\uff1a\u4f7f\u7528 wp_mail \u901a\u77e5\u7ba1\u7406\u5458\r\n### \u6280\u672f\u65b9\u6848\r\n- \u77ed\u4ee3\u7801\uff1a`[yali_contact_form]`\r\n- \u81ea\u5b9a\u4e49\u6570\u636e\u5e93\u8868\uff1a`wp_yali_contact_submissions`\r\n- \u9762\u5411\u5bf9\u8c61\u7f16\u7a0b\u7ed3\u6784\r\n- AJAX \u8868\u5355\u63d0\u4ea4\uff08\u65e0\u5237\u65b0\uff09\r\n### \u4ea4\u4ed8\u7269\u6e05\u5355\r\n1. \u4e3b\u63d2\u4ef6\u6587\u4ef6\r\n2. \u6570\u636e\u5e93\u64cd\u4f5c\u7c7b\r\n3. \u8868\u5355\u5904\u7406\u7c7b\r\n4. \u77ed\u4ee3\u7801\u5b9e\u73b0\r\n5. \u540e\u53f0\u7ba1\u7406\u9875\u9762\r\n6. \u524d\u7aef\u6837\u5f0f\u548c\u811a\u672c\r\n\u786e\u8ba4\u540e\uff0c\u6211\u5c06\u4e3a\u4f60\u5236\u5b9a\u8be6\u7ec6\u7684\u5b9e\u65bd\u8ba1\u5212\u3002\r\n<\/code><\/pre>\n<h3>\u7b2c\u4e8c\u9636\u6bb5\uff1a\u5236\u5b9a\u8ba1\u5212\uff08Writing Plans\uff09<\/h3>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u786e\u8ba4\u9700\u6c42\uff0c\u8bf7\u5236\u5b9a\u8be6\u7ec6\u7684\u5b9e\u65bd\u8ba1\u5212\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u4ea4\u4ed8\u6210\u679c<\/strong>\uff1a<\/p>\n<pre><code># \u8054\u7cfb\u8868\u5355\u63d2\u4ef6 - \u5b9e\u65bd\u8ba1\u5212\r\n## \u76ee\u6807\r\n\u521b\u5efa\u4e00\u4e2a\u5b8c\u6574\u7684 WordPress \u8054\u7cfb\u8868\u5355\u63d2\u4ef6\uff0c\u5305\u542b\u524d\u7aef\u5c55\u793a\u3001\u540e\u7aef\u5904\u7406\u3001\u6570\u636e\u5b58\u50a8\u548c\u540e\u53f0\u7ba1\u7406\u3002\r\n## \u6280\u672f\u6808\r\n- PHP 7.4+\r\n- WordPress 5.8+\r\n- Vanilla JavaScript\uff08\u539f\u751f JS\uff0c\u4e0d\u4f7f\u7528 jQuery\uff09\r\n- CSS3\r\n---\r\n## \u4efb\u52a1\u6e05\u5355\r\n### \u4efb\u52a1 1\uff1a\u63d2\u4ef6\u57fa\u7840\u7ed3\u6784\r\n**\u9884\u8ba1\u65f6\u95f4**\uff1a15 \u5206\u949f\r\n**\u521b\u5efa\u7684\u6587\u4ef6**\uff1a\r\n- `yali-contact-form\/yali-contact-form.php`\uff08\u4e3b\u6587\u4ef6\uff09\r\n- `yali-contact-form\/includes\/class-plugin.php`\uff08\u4e3b\u7c7b\uff09\r\n**\u6b65\u9aa4**\uff1a\r\n1. \u521b\u5efa\u63d2\u4ef6\u6587\u4ef6\u5934\r\n2. \u5b9a\u4e49\u5e38\u91cf\uff08\u7248\u672c\u53f7\u3001\u8def\u5f84\u7b49\uff09\r\n3. \u5b9e\u73b0\u63d2\u4ef6\u6fc0\u6d3b\/\u505c\u7528\u94a9\u5b50\r\n4. \u9a8c\u8bc1\u63d2\u4ef6\u53ef\u4ee5\u6b63\u5e38\u6fc0\u6d3b\r\n**\u4f60\u7684\u68c0\u67e5\u70b9**\uff1a\u63d2\u4ef6\u80fd\u5728 WordPress \u540e\u53f0\u6b63\u5e38\u6fc0\u6d3b\u548c\u505c\u7528\r\n---\r\n### \u4efb\u52a1 2\uff1a\u6570\u636e\u5e93\u5c42\uff08\u4f7f\u7528 TDD\uff09\r\n**\u9884\u8ba1\u65f6\u95f4**\uff1a30 \u5206\u949f\r\n**\u521b\u5efa\u7684\u6587\u4ef6**\uff1a\r\n- `yali-contact-form\/includes\/class-database.php`\r\n- `tests\/test-database.php`\r\n**\u6b65\u9aa4**\uff1a\r\n1. \u5148\u5199\u6d4b\u8bd5\uff1a\u9a8c\u8bc1\u6570\u636e\u5e93\u8868\u662f\u5426\u6b63\u786e\u521b\u5efa\r\n2. \u8fd0\u884c\u6d4b\u8bd5\uff1a\u786e\u8ba4\u6d4b\u8bd5\u5931\u8d25\uff08\u7ea2\u8272\uff09\r\n3. \u7f16\u5199\u6570\u636e\u5e93\u7c7b\uff0c\u5b9e\u73b0 `create_tables()` \u65b9\u6cd5\r\n4. \u8fd0\u884c\u6d4b\u8bd5\uff1a\u786e\u8ba4\u6d4b\u8bd5\u901a\u8fc7\uff08\u7eff\u8272\uff09\r\n5. \u91cd\u6784\u4ee3\u7801\uff08\u5982\u6709\u9700\u8981\uff09\r\n6. \u63d0\u4ea4\u4ee3\u7801\r\n**\u4f60\u7684\u68c0\u67e5\u70b9**\uff1a\u8fd0\u884c\u6d4b\u8bd5\u547d\u4ee4\u80fd\u770b\u5230\u6d4b\u8bd5\u901a\u8fc7\r\n---\r\n### \u4efb\u52a1 3\uff1a\u8868\u5355\u5904\u7406\u903b\u8f91\uff08\u4f7f\u7528 TDD\uff09\r\n**\u9884\u8ba1\u65f6\u95f4**\uff1a45 \u5206\u949f\r\n**\u521b\u5efa\u7684\u6587\u4ef6**\uff1a\r\n- `yali-contact-form\/includes\/class-form-handler.php`\r\n- `tests\/test-form-handler.php`\r\n**\u6b65\u9aa4**\uff1a\r\n1. \u5199\u6d4b\u8bd5\uff1a\u9a8c\u8bc1\u8868\u5355\u6570\u636e\u9a8c\u8bc1\u903b\u8f91\r\n2. \u5199\u6d4b\u8bd5\uff1a\u9a8c\u8bc1\u6570\u636e\u4fdd\u5b58\u529f\u80fd\r\n3. \u5199\u6d4b\u8bd5\uff1a\u9a8c\u8bc1\u90ae\u4ef6\u53d1\u9001\u529f\u80fd\r\n4. \u9010\u4e2a\u5b9e\u73b0\u529f\u80fd\uff0c\u4fdd\u6301\u7ea2-\u7eff-\u91cd\u6784\u5faa\u73af\r\n5. \u63d0\u4ea4\u4ee3\u7801\r\n**\u4f60\u7684\u68c0\u67e5\u70b9**\uff1a\u6240\u6709\u8868\u5355\u5904\u7406\u6d4b\u8bd5\u901a\u8fc7\r\n---\r\n### \u4efb\u52a1 4\uff1a\u524d\u7aef\u8868\u5355\u5c55\u793a\r\n**\u9884\u8ba1\u65f6\u95f4**\uff1a30 \u5206\u949f\r\n**\u521b\u5efa\u7684\u6587\u4ef6**\uff1a\r\n- `yali-contact-form\/includes\/class-shortcode.php`\r\n- `yali-contact-form\/templates\/form-template.php`\r\n- `yali-contact-form\/assets\/css\/form.css`\r\n- `yali-contact-form\/assets\/js\/form.js`\r\n**\u6b65\u9aa4**\uff1a\r\n1. \u6ce8\u518c\u77ed\u4ee3\u7801 `[yali_contact_form]`\r\n2. \u521b\u5efa\u8868\u5355 HTML \u6a21\u677f\r\n3. \u6dfb\u52a0 CSS \u6837\u5f0f\r\n4. \u5b9e\u73b0 AJAX \u63d0\u4ea4\uff08JavaScript\uff09\r\n5. \u63d0\u4ea4\u4ee3\u7801\r\n**\u4f60\u7684\u68c0\u67e5\u70b9**\uff1a\u5728\u9875\u9762\u4e2d\u63d2\u5165\u77ed\u4ee3\u7801\u80fd\u770b\u5230\u8868\u5355\uff0c\u4e14\u6837\u5f0f\u6b63\u5e38\r\n---\r\n### \u4efb\u52a1 5\uff1a\u540e\u53f0\u7ba1\u7406\u754c\u9762\r\n**\u9884\u8ba1\u65f6\u95f4**\uff1a40 \u5206\u949f\r\n**\u521b\u5efa\u7684\u6587\u4ef6**\uff1a\r\n- `yali-contact-form\/admin\/class-admin.php`\r\n- `yali-contact-form\/admin\/views\/submissions-list.php`\r\n**\u6b65\u9aa4**\uff1a\r\n1. \u5728 WordPress \u540e\u53f0\u6dfb\u52a0\u7ba1\u7406\u83dc\u5355\r\n2. \u521b\u5efa\u7559\u8a00\u5217\u8868\u9875\u9762\uff08\u4f7f\u7528 WP_List_Table\uff09\r\n3. \u5b9e\u73b0\u67e5\u770b\u5355\u6761\u7559\u8a00\u529f\u80fd\r\n4. \u5b9e\u73b0\u5220\u9664\u7559\u8a00\u529f\u80fd\r\n5. \u63d0\u4ea4\u4ee3\u7801\r\n**\u4f60\u7684\u68c0\u67e5\u70b9**\uff1a\u80fd\u5728\u540e\u53f0\u770b\u5230\u7559\u8a00\u5217\u8868\uff0c\u80fd\u67e5\u770b\u548c\u5220\u9664\r\n---\r\n### \u4efb\u52a1 6\uff1a\u524d\u7aef\u8bbe\u8ba1\u4f18\u5316\uff08\u4f7f\u7528 Impeccable\uff09\r\n**\u9884\u8ba1\u65f6\u95f4**\uff1a20 \u5206\u949f\r\n**\u4fee\u6539\u7684\u6587\u4ef6**\uff1a\r\n- `yali-contact-form\/assets\/css\/form.css`\r\n**\u6b65\u9aa4**\uff1a\r\n1. \u8fd0\u884c `\/teach-impeccable` \u5efa\u7acb\u8bbe\u8ba1\u4e0a\u4e0b\u6587\uff08\u5982\u9996\u6b21\u4f7f\u7528\uff09\r\n2. \u4f7f\u7528 `frontend-design` \u6280\u80fd\u4f18\u5316\u6837\u5f0f\r\n3. \u8fd0\u884c `\/audit` \u68c0\u67e5\u53ef\u8bbf\u95ee\u6027\u548c\u54cd\u5e94\u5f0f\r\n4. \u4fee\u590d\u53d1\u73b0\u7684\u95ee\u9898\r\n5. \u63d0\u4ea4\u4ee3\u7801\r\n**\u4f60\u7684\u68c0\u67e5\u70b9**\uff1a\u8868\u5355\u5728\u4e0d\u540c\u8bbe\u5907\u4e0a\u663e\u793a\u6b63\u5e38\uff0c\u7b26\u5408\u8bbe\u8ba1\u89c4\u8303\r\n---\r\n### \u4efb\u52a1 7\uff1a\u6700\u7ec8\u5ba1\u67e5\u4e0e\u6da6\u8272\r\n**\u9884\u8ba1\u65f6\u95f4**\uff1a15 \u5206\u949f\r\n**\u6b65\u9aa4**\uff1a\r\n1. \u8fd0\u884c `\/polish` \u505a\u6700\u7ec8\u68c0\u67e5\r\n2. \u9a8c\u8bc1\u6240\u6709\u529f\u80fd\u6b63\u5e38\u5de5\u4f5c\r\n3. \u4ee3\u7801\u6e05\u7406\u548c\u4f18\u5316\r\n4. \u6700\u7ec8\u63d0\u4ea4\r\n**\u6700\u7ec8\u4ea4\u4ed8**\uff1a\u4e00\u4e2a\u5b8c\u6574\u7684\u3001\u53ef\u751f\u4ea7\u7684\u8054\u7cfb\u8868\u5355\u63d2\u4ef6\r\n<\/code><\/pre>\n<h3>\u7b2c\u4e09\u9636\u6bb5\uff1a\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1\uff08TDD\uff09<\/h3>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u5f00\u59cb\u4efb\u52a1 2\uff1a\u6570\u636e\u5e93\u5c42\uff0c\u4f7f\u7528 TDD \u65b9\u5f0f\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u4ea4\u4ed8\u6210\u679c<\/strong>\uff1a<\/p>\n<p>\u9996\u5148\uff0cAI \u4f1a\u521b\u5efa\u6d4b\u8bd5\u6587\u4ef6\uff1a<\/p>\n<pre><code>&lt;?php\r\n\/\/ tests\/test-database.php\r\nclass Test_Yali_Database extends WP_UnitTestCase {\r\npublic function test_table_is_created_on_activation() {\r\nglobal $wpdb;\r\n$table_name = $wpdb-&gt;prefix . 'yali_contact_submissions';\r\n\/\/ \u5148\u6e05\u7406\uff0c\u786e\u4fdd\u8868\u4e0d\u5b58\u5728\r\n$wpdb-&gt;query(\"DROP TABLE IF EXISTS $table_name\");\r\n\/\/ \u6267\u884c\u6fc0\u6d3b\u94a9\u5b50\r\ndo_action('activate_yali-contact-form\/yali-contact-form.php');\r\n\/\/ \u9a8c\u8bc1\u8868\u5df2\u521b\u5efa\r\n$result = $wpdb-&gt;get_var(\"SHOW TABLES LIKE '$table_name'\");\r\n$this-&gt;assertEquals($table_name, $result);\r\n}\r\npublic function test_table_has_required_columns() {\r\nglobal $wpdb;\r\n$table_name = $wpdb-&gt;prefix . 'yali_contact_submissions';\r\n\/\/ \u786e\u4fdd\u8868\u5b58\u5728\r\nYali_Database::create_tables();\r\n\/\/ \u83b7\u53d6\u5217\u4fe1\u606f\r\n$columns = $wpdb-&gt;get_results(\"DESCRIBE $table_name\");\r\n$column_names = wp_list_pluck($columns, 'Field');\r\n\/\/ \u9a8c\u8bc1\u5fc5\u9700\u5217\u5b58\u5728\r\n$this-&gt;assertContains('id', $column_names);\r\n$this-&gt;assertContains('name', $column_names);\r\n$this-&gt;assertContains('email', $column_names);\r\n$this-&gt;assertContains('subject', $column_names);\r\n$this-&gt;assertContains('message', $column_names);\r\n$this-&gt;assertContains('created_at', $column_names);\r\n}\r\n}\r\n<\/code><\/pre>\n<p>\u7136\u540e\u8fd0\u884c\u6d4b\u8bd5\uff0c\u4f60\u4f1a\u770b\u5230\uff1a<\/p>\n<pre><code>\u8fd0\u884c\u6d4b\u8bd5...\r\n\u2717 test_table_is_created_on_activation - \u5931\u8d25\r\n\u2717 test_table_has_required_columns - \u5931\u8d25\r\n\u9884\u671f\uff1a\u6d4b\u8bd5\u5931\u8d25\uff08\u7ea2\u8272\u9636\u6bb5\uff09\r\n<\/code><\/pre>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u6d4b\u8bd5\u5df2\u5931\u8d25\uff0c\u73b0\u5728\u5b9e\u73b0\u529f\u80fd\u8ba9\u6d4b\u8bd5\u901a\u8fc7\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u4ea4\u4ed8\u6210\u679c<\/strong>\uff1a<\/p>\n<pre><code>&lt;?php\r\n\/\/ yali-contact-form\/includes\/class-database.php\r\nclass Yali_Database {\r\npublic static function create_tables() {\r\nglobal $wpdb;\r\n$charset_collate = $wpdb-&gt;get_charset_collate();\r\n$table_name = $wpdb-&gt;prefix . 'yali_contact_submissions';\r\n$sql = \"CREATE TABLE IF NOT EXISTS $table_name (\r\nid bigint(20) unsigned NOT NULL AUTO_INCREMENT,\r\nname varchar(100) NOT NULL,\r\nemail varchar(100) NOT NULL,\r\nsubject varchar(200) NOT NULL,\r\nmessage text NOT NULL,\r\ncreated_at datetime DEFAULT CURRENT_TIMESTAMP,\r\nPRIMARY KEY (id),\r\nKEY email (email),\r\nKEY created_at (created_at)\r\n) $charset_collate;\";\r\nrequire_once(ABSPATH . 'wp-admin\/includes\/upgrade.php');\r\ndbDelta($sql);\r\n}\r\n}\r\n<\/code><\/pre>\n<p>\u7136\u540e\u66f4\u65b0\u4e3b\u63d2\u4ef6\u6587\u4ef6\uff0c\u5728\u6fc0\u6d3b\u65f6\u8c03\u7528\u8fd9\u4e2a\u65b9\u6cd5\u3002<\/p>\n<p>\u518d\u6b21\u8fd0\u884c\u6d4b\u8bd5\uff1a<\/p>\n<pre><code>\u8fd0\u884c\u6d4b\u8bd5...\r\n\u2713 test_table_is_created_on_activation - \u901a\u8fc7\r\n\u2713 test_table_has_required_columns - \u901a\u8fc7\r\n\u9884\u671f\uff1a\u6d4b\u8bd5\u901a\u8fc7\uff08\u7eff\u8272\u9636\u6bb5\uff09\r\n<\/code><\/pre>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u6d4b\u8bd5\u901a\u8fc7\u4e86\uff0c\u7ee7\u7eed\u4e0b\u4e00\u4e2a\u4efb\u52a1\r\n<\/code><\/pre>\n<h3>\u7b2c\u56db\u9636\u6bb5\uff1a\u524d\u7aef\u8bbe\u8ba1\uff08\u4f7f\u7528 Impeccable\uff09<\/h3>\n<p>\u5047\u8bbe\u4f60\u5df2\u7ecf\u5b8c\u6210\u4e86\u540e\u7aef\u903b\u8f91\uff0c\u73b0\u5728\u9700\u8981\u7f8e\u5316\u8868\u5355\u3002<\/p>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u4f18\u5316\u8054\u7cfb\u8868\u5355\u7684\u524d\u7aef\u6837\u5f0f\uff0c\u4f7f\u7528 frontend-design \u6280\u80fd\r\n<\/code><\/pre>\n<p>\u5982\u679c\u4f60\u662f\u7b2c\u4e00\u6b21\u4f7f\u7528 Impeccable\uff0cAI \u4f1a\u63d0\u793a\uff1a<\/p>\n<pre><code>\u9996\u6b21\u4f7f\u7528 Impeccable\uff0c\u5efa\u8bae\u5148\u8fd0\u884c \/teach-impeccable \u5efa\u7acb\u8bbe\u8ba1\u4e0a\u4e0b\u6587\u3002\r\n\u8fd9\u4f1a\u8ba9\u540e\u7eed\u7684\u6837\u5f0f\u751f\u6210\u66f4\u7b26\u5408\u4f60\u7684\u9879\u76ee\u98ce\u683c\u3002\r\n\u662f\u5426\u73b0\u5728\u8fd0\u884c\uff1f\uff08\u63a8\u8350\uff09\r\n<\/code><\/pre>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u8fd0\u884c \/teach-impeccable\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u4ea4\u4ed8\u6210\u679c<\/strong>\uff1a<\/p>\n<p>AI \u4f1a\u8be2\u95ee\u4f60\u7684\u8bbe\u8ba1\u504f\u597d\uff1a<\/p>\n<pre><code>\u4e3a\u4e86\u7ed9\u4f60\u751f\u6210\u72ec\u7279\u7684\u8bbe\u8ba1\uff0c\u6211\u9700\u8981\u4e86\u89e3\u4e00\u4e9b\u4fe1\u606f\uff1a\r\n1. **\u76ee\u6807\u7528\u6237**\uff1a\u8fd9\u4e2a\u7f51\u7ad9\u7684\u4e3b\u8981\u8bbf\u5ba2\u662f\u8c01\uff1f\uff08\u4f01\u4e1a\u5ba2\u6237\u3001\u666e\u901a\u6d88\u8d39\u8005\u3001\u4e13\u4e1a\u4eba\u58eb\u7b49\uff09\r\n2. **\u54c1\u724c\u611f\u89c9**\uff1a\u7528 3 \u4e2a\u5f62\u5bb9\u8bcd\u63cf\u8ff0\u4f60\u5e0c\u671b\u7f51\u7ad9\u7ed9\u4eba\u7684\u611f\u89c9\r\n\uff08\u5982\uff1a\u4e13\u4e1a\u3001\u6e29\u6696\u3001\u73b0\u4ee3\u3001\u7a33\u91cd\u3001\u6d3b\u6cfc\u7b49\uff09\r\n3. **\u53c2\u8003\u7f51\u7ad9**\uff1a\u6709\u6ca1\u6709\u4f60\u559c\u6b22\u7684\u8bbe\u8ba1\u53c2\u8003\uff1f\r\n4. **\u660e\u786e\u907f\u514d**\uff1a\u6709\u6ca1\u6709\u4f60\u7edd\u5bf9\u4e0d\u60f3\u770b\u5230\u7684\u8bbe\u8ba1\u5143\u7d20\uff1f\r\n5. **\u989c\u8272\u504f\u597d**\uff1a\u6709\u54c1\u724c\u8272\u5417\uff1f\u559c\u6b22\u6df1\u8272\u8fd8\u662f\u6d45\u8272\u4e3b\u9898\uff1f\r\n\u8bf7\u56de\u7b54\u4ee5\u4e0a\u95ee\u9898\uff0c\u6211\u4f1a\u4fdd\u5b58\u5230 `.impeccable.md` \u4f9b\u540e\u7eed\u4f7f\u7528\u3002\r\n<\/code><\/pre>\n<p>\u5047\u8bbe\u4f60\u56de\u7b54\uff1a<\/p>\n<pre><code>\u76ee\u6807\u7528\u6237\u662f\u4f01\u4e1a\u5ba2\u6237\uff1b\u5e0c\u671b\u611f\u89c9\u4e13\u4e1a\u3001\u53ef\u4fe1\u3001\u73b0\u4ee3\uff1b\u53c2\u8003 stripe.com\uff1b\u907f\u514d\u7d2b\u8272\u6e10\u53d8\u548c\u5706\u89d2\u5361\u7247\uff1b\u54c1\u724c\u8272\u662f\u6df1\u84dd\u8272\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u4ea4\u4ed8\u6210\u679c<\/strong>\uff08\u4fdd\u5b58\u5230\u00a0<code>.impeccable.md<\/code>\uff09\uff1a<\/p>\n<pre><code># \u8bbe\u8ba1\u4e0a\u4e0b\u6587\r\n## \u54c1\u724c\u5b9a\u4f4d\r\n- \u76ee\u6807\u7528\u6237\uff1a\u4f01\u4e1a\u5ba2\u6237\r\n- \u54c1\u724c\u4e2a\u6027\uff1a\u4e13\u4e1a\u3001\u53ef\u4fe1\u3001\u73b0\u4ee3\r\n- \u53c2\u8003\u7f51\u7ad9\uff1astripe.com\r\n## \u8bbe\u8ba1\u8bed\u8a00\r\n- \u4e3b\u8272\uff1a\u6df1\u84dd\u8272\uff08#1e3a5f\uff09\r\n- \u5f3a\u8c03\u8272\uff1a\u7425\u73c0\u8272\uff08#f59e0b\uff09\r\n- \u80cc\u666f\uff1a\u6696\u767d\u8272\uff08#fafaf9\uff09\r\n- \u5b57\u4f53\uff1aOutfit\uff08\u6807\u9898\uff09\u3001Source Sans Pro\uff08\u6b63\u6587\uff09\r\n## \u907f\u514d\u7684\u6837\u5f0f\r\n- \u7d2b\u8272\u6e10\u53d8\r\n- \u5706\u89d2\u5361\u7247\u5957\u5361\u7247\r\n- Inter \u5b57\u4f53\r\n- \u5f39\u8df3\u52a8\u753b\r\n## \u5e03\u5c40\u504f\u597d\r\n- \u7b80\u6d01\u3001\u5927\u91cf\u7559\u767d\r\n- \u5fae\u5999\u7684\u9634\u5f71\u800c\u975e\u8fb9\u6846\r\n- \u6e05\u6670\u7684\u4fe1\u606f\u5c42\u6b21\r\n<\/code><\/pre>\n<p>\u73b0\u5728\u4f18\u5316\u8868\u5355\u6837\u5f0f\uff1a<\/p>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u57fa\u4e8e .impeccable.md \u7684\u8bbe\u8ba1\u4e0a\u4e0b\u6587\uff0c\u4f18\u5316\u8868\u5355 CSS\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u4ea4\u4ed8\u6210\u679c<\/strong>\uff1a<\/p>\n<pre><code>\/* yali-contact-form\/assets\/css\/form.css *\/\r\n:root {\r\n--ycf-primary: #1e3a5f;\r\n--ycf-accent: #f59e0b;\r\n--ycf-bg: #fafaf9;\r\n--ycf-text: #1c1917;\r\n--ycf-border: #e7e5e4;\r\n--ycf-focus: #3b82f6;\r\n--ycf-error: #dc2626;\r\n--ycf-success: #16a34a;\r\n}\r\n.yali-contact-form {\r\nmax-width: 640px;\r\nmargin: 2rem auto;\r\npadding: 2.5rem;\r\nbackground: var(--ycf-bg);\r\nborder-radius: 4px;\r\nbox-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\r\n}\r\n.yali-form-field {\r\nmargin-bottom: 1.75rem;\r\n}\r\n.yali-form-label {\r\ndisplay: block;\r\nfont-family: 'Outfit', sans-serif;\r\nfont-weight: 500;\r\nfont-size: 0.875rem;\r\ncolor: var(--ycf-text);\r\nmargin-bottom: 0.5rem;\r\nletter-spacing: 0.01em;\r\n}\r\n.yali-form-input {\r\nwidth: 100%;\r\npadding: 0.875rem 1rem;\r\nborder: 1px solid var(--ycf-border);\r\nborder-radius: 4px;\r\nfont-family: 'Source Sans Pro', sans-serif;\r\nfont-size: 1rem;\r\nline-height: 1.5;\r\nbackground: white;\r\ntransition: border-color 0.15s ease, box-shadow 0.15s ease;\r\n}\r\n.yali-form-input:focus {\r\noutline: none;\r\nborder-color: var(--ycf-focus);\r\nbox-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\r\n}\r\n.yali-form-textarea {\r\nmin-height: 150px;\r\nresize: vertical;\r\n}\r\n.yali-form-submit {\r\nbackground: var(--ycf-primary);\r\ncolor: white;\r\nfont-family: 'Outfit', sans-serif;\r\nfont-weight: 600;\r\nfont-size: 0.9375rem;\r\npadding: 0.875rem 2rem;\r\nborder: none;\r\nborder-radius: 4px;\r\ncursor: pointer;\r\ntransition: background-color 0.15s ease, transform 0.1s ease;\r\n}\r\n.yali-form-submit:hover {\r\nbackground: #152a45;\r\ntransform: translateY(-1px);\r\n}\r\n.yali-form-submit:active {\r\ntransform: translateY(0);\r\n}\r\n\/* \u54cd\u5e94\u5f0f *\/\r\n@media (max-width: 640px) {\r\n.yali-contact-form {\r\npadding: 1.5rem;\r\nmargin: 1rem;\r\n}\r\n}\r\n<\/code><\/pre>\n<h3>\u7b2c\u4e94\u9636\u6bb5\uff1a\u4ee3\u7801\u5ba1\u67e5\uff08Audit\uff09<\/h3>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u8fd0\u884c \/audit \u68c0\u67e5\u8868\u5355\u4ee3\u7801\u8d28\u91cf\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u4ea4\u4ed8\u6210\u679c<\/strong>\uff1a<\/p>\n<pre><code>## \u4ee3\u7801\u5ba1\u67e5\u62a5\u544a\r\n### \u603b\u4f53\u8bc4\u5206\uff1a17\/20\uff08\u4f18\u79c0\uff09\r\n| \u7ef4\u5ea6 | \u5206\u6570 | \u8bf4\u660e |\r\n|------|------|------|\r\n| \u53ef\u8bbf\u95ee\u6027 (Accessibility) | 4\/4 | \u6240\u6709\u8f93\u5165\u6846\u90fd\u6709\u6807\u7b7e\uff0c\u7126\u70b9\u6307\u793a\u5668\u6e05\u6670 |\r\n| \u6027\u80fd (Performance) | 4\/4 | CSS \u9009\u62e9\u5668\u9ad8\u6548\uff0c\u65e0\u963b\u585e\u8d44\u6e90 |\r\n| \u4e3b\u9898\u4e00\u81f4\u6027 (Theming) | 3\/4 | \u4f7f\u7528\u4e86 CSS \u53d8\u91cf\uff0c\u4f46\u90e8\u5206\u95f4\u8ddd\u4ecd\u4f7f\u7528\u56fa\u5b9a\u503c |\r\n| \u54cd\u5e94\u5f0f (Responsive) | 3\/4 | \u79fb\u52a8\u7aef\u9002\u914d\u826f\u597d\uff0c\u4f46\u89e6\u6478\u76ee\u6807\u53ef\u4ee5\u66f4\u5927 |\r\n| \u53cd\u6a21\u5f0f (Anti-patterns) | 3\/4 | \u65e0 AI slop\uff0c\u4f46\u53ef\u4ee5\u66f4\u72ec\u7279 |\r\n### \u5efa\u8bae\u4fee\u590d\uff08\u6309\u4f18\u5148\u7ea7\uff09\r\n**P1 - \u5efa\u8bae\u4fee\u590d**\r\n- [ ] \u5c06\u5269\u4f59\u56fa\u5b9a\u95f4\u8ddd\u6539\u4e3a CSS \u53d8\u91cf\r\n- [ ] \u786e\u4fdd\u6240\u6709\u89e6\u6478\u76ee\u6807\u81f3\u5c11 44px\r\n**P2 - \u53ef\u9009\u4f18\u5316**\r\n- [ ] \u6dfb\u52a0 `prefers-reduced-motion` \u652f\u6301\r\n- [ ] \u8003\u8651\u4f7f\u7528\u66f4\u72ec\u7279\u7684\u989c\u8272\u7ec4\u5408\r\n### \u662f\u5426\u4fee\u590d\uff1f\r\n<\/code><\/pre>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u4fee\u590d P1 \u95ee\u9898\r\n<\/code><\/pre>\n<p>AI \u4f1a\u66f4\u65b0\u4ee3\u7801\uff0c\u4fee\u590d\u53d1\u73b0\u7684\u95ee\u9898\u3002<\/p>\n<h3>\u7b2c\u516d\u9636\u6bb5\uff1a\u6700\u7ec8\u6da6\u8272\uff08Polish\uff09<\/h3>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u8fd0\u884c \/polish \u505a\u6700\u7ec8\u6da6\u8272\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u4ea4\u4ed8\u6210\u679c<\/strong>\uff1a<\/p>\n<pre><code>## \u6da6\u8272\u68c0\u67e5\u6e05\u5355\r\n### \u89c6\u89c9\u5bf9\u9f50 \u2713\r\n- [x] \u6240\u6709\u5143\u7d20\u50cf\u7d20\u7ea7\u5bf9\u9f50\r\n- [x] \u95f4\u8ddd\u7cfb\u7edf\u4e00\u81f4\uff08\u4f7f\u7528 4px \u57fa\u6570\uff09\r\n- [x] \u89c6\u89c9\u91cd\u5fc3\u5e73\u8861\r\n### \u6392\u7248 \u2713\r\n- [x] \u5c42\u6b21\u6e05\u6670\r\n- [x] \u884c\u957f\u5ea6\u5408\u9002\uff0845-75 \u5b57\u7b26\uff09\r\n- [x] \u5b57\u4f53\u6e32\u67d3\u4f18\u5316\r\n### \u4ea4\u4e92\u72b6\u6001 \u2713\r\n- [x] \u9ed8\u8ba4\u72b6\u6001\r\n- [x] \u60ac\u505c\u72b6\u6001\uff08hover\uff09\r\n- [x] \u7126\u70b9\u72b6\u6001\uff08focus\uff09\r\n- [x] \u6fc0\u6d3b\u72b6\u6001\uff08active\uff09\r\n- [x] \u9519\u8bef\u72b6\u6001\r\n- [x] \u52a0\u8f7d\u72b6\u6001\r\n### \u6700\u7ec8\u4ea4\u4ed8\u7269\r\n- \u5b8c\u6574\u7684\u8054\u7cfb\u8868\u5355\u63d2\u4ef6\r\n- \u5305\u542b PHPUnit \u6d4b\u8bd5\r\n- \u7b26\u5408\u53ef\u8bbf\u95ee\u6027\u6807\u51c6\r\n- \u54cd\u5e94\u5f0f\u8bbe\u8ba1\r\n- \u4e13\u4e1a\u7684\u89c6\u89c9\u8bbe\u8ba1\r\n<\/code><\/pre>\n<h2>\u5b9e\u6218\u793a\u4f8b 2\uff1a\u8bbe\u8ba1\u4e13\u4e1a\u524d\u7aef\u754c\u9762<\/h2>\n<p>\u8fd9\u4e2a\u793a\u4f8b\u5c55\u793a\u5982\u4f55\u4f7f\u7528 Impeccable \u7684\u8bbe\u8ba1\u547d\u4ee4\u6765\u4f18\u5316\u73b0\u6709\u754c\u9762\u3002<\/p>\n<h3>\u573a\u666f\u8bbe\u5b9a<\/h3>\n<p>\u4f60\u6709\u4e00\u4e2a\u73b0\u6709\u7684 WordPress \u4e3b\u9898\uff0c\u4f46\u9996\u9875\u7684\u82f1\u96c4\u533a\u57df\uff08Hero Section\uff09\u770b\u8d77\u6765\u592a\u666e\u901a\uff0c\u4f60\u60f3\u8ba9\u5b83\u66f4\u4e13\u4e1a\u3002<\/p>\n<h3>\u521d\u59cb\u72b6\u6001<\/h3>\n<p>\u4f60\u7684\u73b0\u6709\u4ee3\u7801\u53ef\u80fd\u662f\u8fd9\u6837\uff1a<\/p>\n<pre><code>&lt;div class=\"hero\"&gt;\r\n&lt;h1&gt;\u6b22\u8fce\u6765\u5230\u6211\u4eec\u7684\u7f51\u7ad9&lt;\/h1&gt;\r\n&lt;p&gt;\u6211\u4eec\u63d0\u4f9b\u6700\u597d\u7684\u670d\u52a1&lt;\/p&gt;\r\n&lt;button&gt;\u4e86\u89e3\u66f4\u591a&lt;\/button&gt;\r\n&lt;\/div&gt;\r\n<\/code><\/pre>\n<pre><code>.hero {\r\nbackground: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\r\npadding: 100px 20px;\r\ntext-align: center;\r\n}\r\n.hero h1 {\r\nfont-family: Inter, sans-serif;\r\ncolor: white;\r\nmargin-bottom: 20px;\r\n}\r\n.hero p {\r\ncolor: #e0e0e0;\r\nmargin-bottom: 30px;\r\n}\r\n.hero button {\r\nbackground: white;\r\ncolor: #667eea;\r\npadding: 12px 24px;\r\nborder-radius: 25px;\r\n}\r\n<\/code><\/pre>\n<p>\u8fd9\u5c31\u662f\u5178\u578b\u7684&#8221;AI \u98ce\u683c&#8221;\uff1a\u7d2b\u8272\u6e10\u53d8\u3001Inter \u5b57\u4f53\u3001\u5706\u89d2\u6309\u94ae\u3002<\/p>\n<h3>\u7b2c\u4e00\u9636\u6bb5\uff1a\u8bbe\u8ba1\u5ba1\u67e5\uff08Critique\uff09<\/h3>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u5ba1\u89c6\u8fd9\u4e2a\u82f1\u96c4\u533a\u57df\u7684\u8bbe\u8ba1\uff0c\u7ed9\u51fa\u6539\u8fdb\u5efa\u8bae\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u4ea4\u4ed8\u6210\u679c<\/strong>\uff1a<\/p>\n<pre><code>## \u8bbe\u8ba1\u5ba1\u67e5\u62a5\u544a\r\n### \u89c6\u89c9\u5c42\u6b21\uff1a6\/10\r\n- \u6807\u9898\u4e0e\u6b63\u6587\u5bf9\u6bd4\u5ea6\u4e0d\u591f\u5f3a\u70c8\r\n- \u6309\u94ae\u4e0d\u591f\u7a81\u51fa\r\n### \u60c5\u611f\u5171\u9e23\uff1a5\/10\r\n- \u7d2b\u8272\u6e10\u53d8\u5df2\u88ab\u8fc7\u5ea6\u4f7f\u7528\uff0c\u7f3a\u4e4f\u54c1\u724c\u72ec\u7279\u6027\r\n- Inter \u5b57\u4f53\u8fc7\u4e8e\u5e38\u89c1\uff0c\u65e0\u6cd5\u4f20\u8fbe\u54c1\u724c\u4e2a\u6027\r\n### \u4fe1\u606f\u67b6\u6784\uff1a7\/10\r\n- \u7ed3\u6784\u6e05\u6670\uff0c\u4f46\u7f3a\u5c11\u89c6\u89c9\u5f15\u5bfc\r\n- \u7559\u767d\u4f7f\u7528\u4e0d\u591f\u5927\u80c6\r\n### \u8ba4\u77e5\u8d1f\u8377\uff1a8\/10\r\n- \u4fe1\u606f\u7b80\u5355\u6613\u61c2\r\n### \u603b\u4f53\u5efa\u8bae\r\n1. **\u66f4\u6362\u914d\u8272**\uff1a\u653e\u5f03\u7d2b\u8272\u6e10\u53d8\uff0c\u4f7f\u7528\u66f4\u72ec\u7279\u7684\u989c\u8272\u7ec4\u5408\r\n2. **\u4f18\u5316\u5b57\u4f53**\uff1a\u9009\u62e9\u66f4\u6709\u7279\u8272\u7684\u5b57\u4f53\u914d\u5bf9\r\n3. **\u589e\u5f3a\u5c42\u6b21**\uff1a\u901a\u8fc7\u5927\u5c0f\u3001\u7c97\u7ec6\u3001\u989c\u8272\u521b\u9020\u66f4\u5f3a\u70c8\u7684\u89c6\u89c9\u5c42\u6b21\r\n4. **\u5927\u80c6\u7559\u767d**\uff1a\u589e\u52a0\u547c\u5438\u7a7a\u95f4\r\n5. **\u6dfb\u52a0\u52a8\u6548**\uff1a\u4f7f\u7528\u5fae\u5999\u7684\u5165\u573a\u52a8\u753b\r\n<\/code><\/pre>\n<h3>\u7b2c\u4e8c\u9636\u6bb5\uff1a\u6837\u5f0f\u4f18\u5316\uff08Typeset + Colorize\uff09<\/h3>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u8fd0\u884c \/typeset \u4f18\u5316\u6392\u7248\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u4ea4\u4ed8\u6210\u679c<\/strong>\uff1a<\/p>\n<p>AI \u4f1a\u8be2\u95ee\u4f60\u7684\u8bbe\u8ba1\u4e0a\u4e0b\u6587\uff08\u5982\u679c\u8fd8\u6ca1\u6709\u00a0<code>.impeccable.md<\/code>\uff09\uff0c\u7136\u540e\u7ed9\u51fa\u6392\u7248\u5efa\u8bae\uff1a<\/p>\n<pre><code>## \u6392\u7248\u4f18\u5316\u65b9\u6848\r\n### \u5b57\u4f53\u914d\u5bf9\r\n- **\u6807\u9898**\uff1aOutfit\uff08\u51e0\u4f55\u65e0\u886c\u7ebf\uff0c\u73b0\u4ee3\u611f\u5f3a\uff09\r\n- **\u6b63\u6587**\uff1aSource Serif Pro\uff08\u886c\u7ebf\u4f53\uff0c\u589e\u52a0\u4f18\u96c5\u611f\uff09\r\n- **\u6309\u94ae**\uff1aOutfit\uff08\u4e0e\u6807\u9898\u4fdd\u6301\u4e00\u81f4\uff09\r\n### \u5b57\u4f53\u6bd4\u4f8b\r\n\u4f7f\u7528\u6a21\u5757\u5316\u6bd4\u4f8b\uff081.25 \u6bd4\u4f8b\uff09\uff1a\r\n- \u5927\u6807\u9898\uff1a3.052rem\uff08\u7ea6 48px\uff09\r\n- \u526f\u6807\u9898\uff1a1.953rem\r\n- \u6b63\u6587\uff1a1rem\uff0816px\uff09\r\n- \u5c0f\u5b57\uff1a0.8rem\r\n### \u884c\u9ad8\r\n- \u6807\u9898\uff1a1.2\r\n- \u6b63\u6587\uff1a1.6\r\n<\/code><\/pre>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u8fd0\u884c \/colorize \u4f18\u5316\u914d\u8272\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u4ea4\u4ed8\u6210\u679c<\/strong>\uff1a<\/p>\n<pre><code>## \u914d\u8272\u4f18\u5316\u65b9\u6848\r\n### \u4e3b\u8272\u8c03\r\n- \u6df1\u84dd\u7070\uff1a#1a202c\uff08\u4e13\u4e1a\u3001\u7a33\u91cd\uff09\r\n- \u6696\u767d\u8272\uff1a#fafaf9\uff08\u67d4\u548c\u7684\u80cc\u666f\uff09\r\n### \u5f3a\u8c03\u8272\r\n- \u7425\u73c0\u91d1\uff1a#f59e0b\uff08\u884c\u52a8\u53f7\u53ec\uff09\r\n### \u6587\u5b57\u8272\r\n- \u4e3b\u6587\u5b57\uff1a#1c1917\uff08\u6696\u9ed1\uff09\r\n- \u6b21\u8981\u6587\u5b57\uff1a#57534e\uff08\u6696\u7070\uff09\r\n### \u4f7f\u7528 OKLCH \u989c\u8272\u51fd\u6570\uff08\u73b0\u4ee3 CSS\uff09\r\n```css\r\n:root {\r\n--primary: oklch(30% 0.08 250);\r\n--accent: oklch(70% 0.15 80);\r\n--text: oklch(25% 0.02 60);\r\n}\r\n<\/code><\/pre>\n<p>\u8fd9\u4e2a\u914d\u8272\u907f\u514d\u4e86&#8221;AI \u7d2b&#8221;\uff0c\u66f4\u4e13\u4e1a\u3001\u72ec\u7279\u3002<\/p>\n<pre><code>### \u7b2c\u4e09\u9636\u6bb5\uff1a\u751f\u6210\u4f18\u5316\u4ee3\u7801\r\n**\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd**\uff1a\r\n<\/code><\/pre>\n<p>\u57fa\u4e8e\u5ba1\u67e5\u7ed3\u679c\uff0c\u91cd\u5199\u82f1\u96c4\u533a\u57df\u7684 HTML \u548c CSS<\/p>\n<pre><code>**AI \u7684\u4ea4\u4ed8\u6210\u679c**\uff1a\r\n```html\r\n&lt;section class=\"hero\"&gt;\r\n&lt;div class=\"hero-content\"&gt;\r\n&lt;span class=\"hero-eyebrow\"&gt;\u4e13\u4e1a\u89e3\u51b3\u65b9\u6848&lt;\/span&gt;\r\n&lt;h1 class=\"hero-title\"&gt;\r\n\u7528\u8bbe\u8ba1\u9a71\u52a8&lt;br&gt;\r\n&lt;span class=\"hero-title-accent\"&gt;\u4e1a\u52a1\u589e\u957f&lt;\/span&gt;\r\n&lt;\/h1&gt;\r\n&lt;p class=\"hero-description\"&gt;\r\n\u6211\u4eec\u5e2e\u52a9\u4f01\u4e1a\u5728\u6570\u5b57\u65f6\u4ee3\u8131\u9896\u800c\u51fa\uff0c\u901a\u8fc7\u7cbe\u5fc3\u8bbe\u8ba1\u7684\u7528\u6237\u4f53\u9a8c\u548c\u521b\u65b0\u7684\u6280\u672f\u65b9\u6848\uff0c\u5b9e\u73b0\u53ef\u6301\u7eed\u589e\u957f\u3002\r\n&lt;\/p&gt;\r\n&lt;div class=\"hero-actions\"&gt;\r\n&lt;a href=\"#contact\" class=\"btn btn-primary\"&gt;\u5f00\u59cb\u5408\u4f5c&lt;\/a&gt;\r\n&lt;a href=\"#cases\" class=\"btn btn-secondary\"&gt;\u67e5\u770b\u6848\u4f8b&lt;\/a&gt;\r\n&lt;\/div&gt;\r\n&lt;\/div&gt;\r\n&lt;\/section&gt;\r\n<\/code><\/pre>\n<pre><code>.hero {\r\nposition: relative;\r\npadding: 8rem 2rem 10rem;\r\nbackground: var(--color-bg, #fafaf9);\r\noverflow: hidden;\r\n}\r\n.hero::before {\r\ncontent: '';\r\nposition: absolute;\r\ntop: -50%;\r\nright: -20%;\r\nwidth: 80%;\r\nheight: 200%;\r\nbackground: linear-gradient(\r\n135deg,\r\ntransparent 0%,\r\nrgba(30, 58, 95, 0.03) 50%,\r\ntransparent 100%\r\n);\r\ntransform: rotate(-15deg);\r\npointer-events: none;\r\n}\r\n.hero-content {\r\nposition: relative;\r\nmax-width: 64rem;\r\nmargin: 0 auto;\r\n}\r\n.hero-eyebrow {\r\ndisplay: inline-block;\r\nfont-family: 'Outfit', sans-serif;\r\nfont-size: 0.875rem;\r\nfont-weight: 600;\r\ntext-transform: uppercase;\r\nletter-spacing: 0.1em;\r\ncolor: var(--color-accent, #f59e0b);\r\nmargin-bottom: 1.5rem;\r\n}\r\n.hero-title {\r\nfont-family: 'Outfit', sans-serif;\r\nfont-size: clamp(2.5rem, 5vw, 3.815rem);\r\nfont-weight: 700;\r\nline-height: 1.1;\r\ncolor: var(--color-text, #1c1917);\r\nmargin-bottom: 1.5rem;\r\nletter-spacing: -0.02em;\r\n}\r\n.hero-title-accent {\r\ncolor: var(--color-primary, #1e3a5f);\r\n}\r\n.hero-description {\r\nfont-family: 'Source Serif Pro', serif;\r\nfont-size: 1.25rem;\r\nline-height: 1.6;\r\ncolor: var(--color-text-secondary, #57534e);\r\nmax-width: 40rem;\r\nmargin-bottom: 2.5rem;\r\n}\r\n.hero-actions {\r\ndisplay: flex;\r\ngap: 1rem;\r\nflex-wrap: wrap;\r\n}\r\n.btn {\r\ndisplay: inline-flex;\r\nalign-items: center;\r\npadding: 0.875rem 1.75rem;\r\nfont-family: 'Outfit', sans-serif;\r\nfont-size: 0.9375rem;\r\nfont-weight: 600;\r\ntext-decoration: none;\r\nborder-radius: 4px;\r\ntransition: all 0.15s ease;\r\n}\r\n.btn-primary {\r\nbackground: var(--color-primary, #1e3a5f);\r\ncolor: white;\r\n}\r\n.btn-primary:hover {\r\nbackground: #152a45;\r\ntransform: translateY(-1px);\r\nbox-shadow: 0 4px 12px rgba(30, 58, 95, 0.25);\r\n}\r\n.btn-secondary {\r\nbackground: transparent;\r\ncolor: var(--color-text, #1c1917);\r\nborder: 1px solid var(--color-border, #e7e5e4);\r\n}\r\n.btn-secondary:hover {\r\nbackground: rgba(0, 0, 0, 0.03);\r\nborder-color: var(--color-text-secondary, #57534e);\r\n}\r\n@media (max-width: 640px) {\r\n.hero {\r\npadding: 5rem 1.5rem 6rem;\r\n}\r\n.hero-actions {\r\nflex-direction: column;\r\n}\r\n.btn {\r\nwidth: 100%;\r\njustify-content: center;\r\n}\r\n}\r\n<\/code><\/pre>\n<h3>\u7b2c\u56db\u9636\u6bb5\uff1a\u6dfb\u52a0\u52a8\u6548\uff08Animate\uff09<\/h3>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u8fd0\u884c \/animate \u6dfb\u52a0\u6709\u610f\u4e49\u7684\u5165\u573a\u52a8\u6548\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u4ea4\u4ed8\u6210\u679c<\/strong>\uff1a<\/p>\n<pre><code>\/* \u6dfb\u52a0\u5728\u6587\u4ef6\u672b\u5c3e *\/\r\n\/* \u5165\u573a\u52a8\u753b *\/\r\n@keyframes fadeInUp {\r\nfrom {\r\nopacity: 0;\r\ntransform: translateY(20px);\r\n}\r\nto {\r\nopacity: 1;\r\ntransform: translateY(0);\r\n}\r\n}\r\n.hero-eyebrow {\r\nanimation: fadeInUp 0.6s ease-out forwards;\r\n}\r\n.hero-title {\r\nanimation: fadeInUp 0.6s ease-out 0.1s forwards;\r\nopacity: 0; \/* \u521d\u59cb\u9690\u85cf *\/\r\n}\r\n.hero-description {\r\nanimation: fadeInUp 0.6s ease-out 0.2s forwards;\r\nopacity: 0;\r\n}\r\n.hero-actions {\r\nanimation: fadeInUp 0.6s ease-out 0.3s forwards;\r\nopacity: 0;\r\n}\r\n\/* \u5c0a\u91cd\u7528\u6237\u7684\u51cf\u5c11\u52a8\u753b\u504f\u597d *\/\r\n@media (prefers-reduced-motion: reduce) {\r\n.hero-eyebrow,\r\n.hero-title,\r\n.hero-description,\r\n.hero-actions {\r\nanimation: none;\r\nopacity: 1;\r\n}\r\n}\r\n<\/code><\/pre>\n<h3>\u7b2c\u4e94\u9636\u6bb5\uff1a\u6700\u7ec8\u5ba1\u67e5<\/h3>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u8fd0\u884c \/polish \u505a\u6700\u7ec8\u68c0\u67e5\r\n<\/code><\/pre>\n<p><strong>AI \u4f1a\u68c0\u67e5<\/strong>\uff1a<\/p>\n<ul>\n<li>\u50cf\u7d20\u7ea7\u5bf9\u9f50<\/li>\n<li>\u6240\u6709\u4ea4\u4e92\u72b6\u6001\u5b8c\u6574<\/li>\n<li>\u54cd\u5e94\u5f0f\u65ad\u70b9\u6b63\u786e<\/li>\n<li>\u65e0\u969c\u788d\u5c5e\u6027\u5b8c\u6574<\/li>\n<li>\u6027\u80fd\u4f18\u5316\uff08\u65e0\u5e03\u5c40\u6296\u52a8\uff09<\/li>\n<\/ul>\n<h2>\u5b9e\u6218\u793a\u4f8b 3\uff1a\u6392\u67e5\u590d\u6742 Bug<\/h2>\n<p>\u8fd9\u4e2a\u793a\u4f8b\u5c55\u793a\u5982\u4f55\u4f7f\u7528 Superpowers \u7684\u8c03\u8bd5\u6280\u80fd\u6765\u7cfb\u7edf\u5316\u6392\u67e5\u95ee\u9898\u3002<\/p>\n<h3>\u573a\u666f\u8bbe\u5b9a<\/h3>\n<p>\u4f60\u7684\u8054\u7cfb\u8868\u5355\u63d2\u4ef6\u5728\u5ba2\u6237\u7f51\u7ad9\u4e0a\u51fa\u73b0\u4e86\u4e00\u4e2a\u5947\u602a\u7684\u95ee\u9898\uff1a<\/p>\n<ul>\n<li>\u8868\u5355\u63d0\u4ea4\u540e\u663e\u793a&#8221;\u63d0\u4ea4\u6210\u529f&#8221;\uff0c\u4f46\u540e\u53f0\u770b\u4e0d\u5230\u8bb0\u5f55<\/li>\n<li>\u90ae\u4ef6\u4e5f\u6ca1\u6709\u6536\u5230<\/li>\n<li>\u53ea\u5728\u67d0\u4e9b\u6d4f\u89c8\u5668\u4e0a\u51fa\u73b0<\/li>\n<li>\u6ca1\u6709\u62a5\u9519\u4fe1\u606f<\/li>\n<\/ul>\n<h3>\u7b2c\u4e00\u9636\u6bb5\uff1a\u542f\u52a8\u7cfb\u7edf\u5316\u8c03\u8bd5<\/h3>\n<p><strong>\u4f60\u8f93\u5165\u7684\u63d0\u793a\u8bcd<\/strong>\uff1a<\/p>\n<pre><code>\u5e2e\u6211\u8c03\u8bd5\u8fd9\u4e2a Bug\uff1a\u8868\u5355\u63d0\u4ea4\u663e\u793a\u6210\u529f\uff0c\u4f46\u540e\u53f0\u770b\u4e0d\u5230\u8bb0\u5f55\uff0c\u90ae\u4ef6\u4e5f\u6ca1\u6536\u5230\u3002\u4f7f\u7528 systematic-debugging \u6280\u80fd\u3002\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u601d\u8003\u8fc7\u7a0b<\/strong>\uff08systematic-debugging \u6280\u80fd\u81ea\u52a8\u89e6\u53d1\uff09\uff1a<\/p>\n<pre><code>\u6211\u4f1a\u6309\u7167\u7cfb\u7edf\u5316\u8c03\u8bd5\u6d41\u7a0b\u6765\u6392\u67e5\u8fd9\u4e2a\u95ee\u9898\u3002\u9996\u5148\u8fdb\u5165 Phase 1\uff1a\u6839\u672c\u539f\u56e0\u8c03\u67e5\u3002\r\nPhase 1: \u6839\u672c\u539f\u56e0\u8c03\u67e5\r\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\r\n\u6b65\u9aa4 1\uff1a\u7a33\u5b9a\u590d\u73b0\u95ee\u9898\r\n- \u5728\u54ea\u4e9b\u6d4f\u89c8\u5668\u4e0a\u51fa\u73b0\uff1f\uff08Chrome\u3001Safari\u3001Firefox\uff1f\uff09\r\n- \u95ee\u9898\u51fa\u73b0\u7684\u9891\u7387\uff1f\uff08\u6bcf\u6b21\u90fd\u51fa\u73b0\u8fd8\u662f\u5076\u5c14\uff1f\uff09\r\n- \u7279\u5b9a\u7684\u8868\u5355\u5185\u5bb9\u4f1a\u89e6\u53d1\u5417\uff1f\uff08\u5982\u7279\u6b8a\u5b57\u7b26\u3001\u957f\u6587\u672c\uff1f\uff09\r\n\u6b65\u9aa4 2\uff1a\u68c0\u67e5\u6700\u8fd1\u66f4\u6539\r\n- \u6700\u8fd1\u66f4\u65b0\u8fc7\u63d2\u4ef6\u5417\uff1f\r\n- WordPress \u6838\u5fc3\u6216\u4e3b\u9898\u6709\u66f4\u65b0\u5417\uff1f\r\n- \u670d\u52a1\u5668\u73af\u5883\u6709\u53d8\u5316\u5417\uff1f\r\n\u6b65\u9aa4 3\uff1a\u6dfb\u52a0\u8bca\u65ad\u65e5\u5fd7\r\n\u6211\u9700\u8981\u67e5\u770b\u4ee3\u7801\uff0c\u5728\u5173\u952e\u4f4d\u7f6e\u6dfb\u52a0\u65e5\u5fd7\u6765\u8ffd\u8e2a\u6570\u636e\u6d41\u3002\r\n\u8bf7\u5148\u56de\u7b54\u4e0a\u8ff0\u95ee\u9898\uff0c\u540c\u65f6\u6211\u4f1a\u51c6\u5907\u8bca\u65ad\u4ee3\u7801\u3002\r\n<\/code><\/pre>\n<h3>\u7b2c\u4e8c\u9636\u6bb5\uff1a\u6536\u96c6\u4fe1\u606f\u5e76\u8bca\u65ad<\/h3>\n<p><strong>\u4f60\u7684\u56de\u590d<\/strong>\uff1a<\/p>\n<pre><code>\u53ea\u5728 Safari \u4e0a\u51fa\u73b0\uff0c\u6bcf\u6b21\u90fd\u51fa\u73b0\u3002\u586b\u4efb\u4f55\u5185\u5bb9\u90fd\u4e00\u6837\u3002\u6700\u8fd1\u6ca1\u66f4\u65b0\u8fc7\u63d2\u4ef6\u3002\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u4ea4\u4ed8\u6210\u679c<\/strong>\uff1a<\/p>\n<p>AI \u4f1a\u5728\u5173\u952e\u4f4d\u7f6e\u6dfb\u52a0\u8bca\u65ad\u4ee3\u7801\uff1a<\/p>\n<pre><code>\/\/ \u5728\u8868\u5355\u63d0\u4ea4\u5904\u7406\u51fd\u6570\u4e2d\u6dfb\u52a0\u65e5\u5fd7\r\npublic function handle_submission() {\r\n\/\/ \u8bca\u65ad 1\uff1a\u68c0\u67e5\u662f\u5426\u6536\u5230\u8bf7\u6c42\r\nerror_log('YCF: Form submission received');\r\nerror_log('YCF: POST data: ' . print_r($_POST, true));\r\n\/\/ \u9a8c\u8bc1 nonce\r\nif (!wp_verify_nonce($_POST['ycf_nonce'], 'ycf_submit_form')) {\r\nerror_log('YCF: Nonce verification failed');\r\nwp_send_json_error('\u5b89\u5168\u9a8c\u8bc1\u5931\u8d25');\r\nreturn;\r\n}\r\n\/\/ \u8bca\u65ad 2\uff1a\u68c0\u67e5\u6570\u636e\u9a8c\u8bc1\r\n$data = $this-&gt;sanitize_input($_POST);\r\nerror_log('YCF: Sanitized data: ' . print_r($data, true));\r\n\/\/ \u8bca\u65ad 3\uff1a\u68c0\u67e5\u6570\u636e\u5e93\u4fdd\u5b58\r\n$result = $this-&gt;save_to_database($data);\r\nerror_log('YCF: Database save result: ' . ($result ? 'success' : 'failed'));\r\n\/\/ \u8bca\u65ad 4\uff1a\u68c0\u67e5\u90ae\u4ef6\u53d1\u9001\r\n$email_sent = $this-&gt;send_notification($data);\r\nerror_log('YCF: Email send result: ' . ($email_sent ? 'success' : 'failed'));\r\nwp_send_json_success('\u63d0\u4ea4\u6210\u529f');\r\n}\r\n<\/code><\/pre>\n<p>\u7136\u540e AI \u4f1a\u6307\u5bfc\u4f60\u67e5\u770b\u65e5\u5fd7\uff1a<\/p>\n<pre><code>\u8bf7\u91cd\u590d\u63d0\u4ea4\u8868\u5355\u4e00\u6b21\uff0c\u7136\u540e\u67e5\u770b\u65e5\u5fd7\uff1a\r\n1. \u5982\u679c\u4f60\u4f7f\u7528 WP_DEBUG\uff1a\r\n\u67e5\u770b wp-content\/debug.log\r\n2. \u6216\u8005\u4f7f\u7528 WP-CLI\uff1a\r\nwp shell\r\n&gt; error_log('test');\r\n\u8bf7\u628a\u65e5\u5fd7\u5185\u5bb9\u53d1\u7ed9\u6211\u3002\r\n<\/code><\/pre>\n<h3>\u7b2c\u4e09\u9636\u6bb5\uff1a\u5206\u6790\u65e5\u5fd7<\/h3>\n<p>\u5047\u8bbe\u4f60\u63d0\u4f9b\u4e86\u65e5\u5fd7\uff1a<\/p>\n<pre><code>[28-Mar-2026 10:15:23] YCF: Form submission received\r\n[28-Mar-2026 10:15:23] YCF: POST data: Array ( [name] =&gt; \u5f20\u4e09 [email] =&gt; zhangsan@example.com [message] =&gt; \u6d4b\u8bd5\u7559\u8a00 [ycf_nonce] =&gt; 1234567890 )\r\n[28-Mar-2026 10:15:23] YCF: Database save result: success\r\n[28-Mar-2026 10:15:23] YCF: Email send result: failed\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u5206\u6790<\/strong>\uff1a<\/p>\n<pre><code>Phase 2: \u5047\u8bbe\u5f62\u6210\r\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\r\n\u6839\u636e\u65e5\u5fd7\u53d1\u73b0\uff1a\r\n\u2713 \u8868\u5355\u63d0\u4ea4\u88ab\u6b63\u786e\u63a5\u6536\r\n\u2713 \u6570\u636e\u9a8c\u8bc1\u548c\u6e05\u7406\u6b63\u5e38\r\n\u2713 \u6570\u636e\u5e93\u4fdd\u5b58\u6210\u529f\uff08\u4f46\u540e\u53f0\u770b\u4e0d\u5230\uff1f\uff09\r\n\u2717 \u90ae\u4ef6\u53d1\u9001\u5931\u8d25\r\n\u7591\u95ee\uff1a\u4e3a\u4ec0\u4e48\u6570\u636e\u5e93\u4fdd\u5b58\u6210\u529f\u4f46\u540e\u53f0\u770b\u4e0d\u5230\uff1f\r\n\u5047\u8bbe 1\uff1a\u6570\u636e\u5e93\u4fdd\u5b58\u5230\u4e86\u9519\u8bef\u7684\u8868\r\n\u5047\u8bbe 2\uff1a\u540e\u53f0\u67e5\u8be2\u903b\u8f91\u6709\u95ee\u9898\r\n\u5047\u8bbe 3\uff1a\u6570\u636e\u88ab\u4fdd\u5b58\u540e\u7acb\u5373\u88ab\u5220\u9664\r\n\u8ba9\u6211\u7ee7\u7eed\u8c03\u67e5\u3002\r\n<\/code><\/pre>\n<p>AI \u4f1a\u6dfb\u52a0\u66f4\u591a\u8bca\u65ad\u4ee3\u7801\u6765\u9a8c\u8bc1\u5047\u8bbe\uff1a<\/p>\n<pre><code>\/\/ \u68c0\u67e5\u5b9e\u9645\u4fdd\u5b58\u7684\u6570\u636e\r\npublic function save_to_database($data) {\r\nglobal $wpdb;\r\n$table = $wpdb-&gt;prefix . 'yali_contact_submissions';\r\nerror_log('YCF: Target table: ' . $table);\r\n\/\/ \u68c0\u67e5\u8868\u662f\u5426\u5b58\u5728\r\n$table_exists = $wpdb-&gt;get_var(\"SHOW TABLES LIKE '$table'\");\r\nerror_log('YCF: Table exists: ' . ($table_exists ? 'yes' : 'no'));\r\n\/\/ \u6267\u884c\u63d2\u5165\r\n$result = $wpdb-&gt;insert($table, $data);\r\nerror_log('YCF: Insert result: ' . print_r($result, true));\r\nerror_log('YCF: Insert ID: ' . $wpdb-&gt;insert_id);\r\n\/\/ \u7acb\u5373\u67e5\u8be2\u9a8c\u8bc1\r\n$saved = $wpdb-&gt;get_row(\"SELECT * FROM $table WHERE id = {$wpdb-&gt;insert_id}\");\r\nerror_log('YCF: Saved record: ' . print_r($saved, true));\r\nreturn $result;\r\n}\r\n<\/code><\/pre>\n<h3>\u7b2c\u56db\u9636\u6bb5\uff1a\u53d1\u73b0\u6839\u672c\u539f\u56e0<\/h3>\n<p>\u5047\u8bbe\u65b0\u7684\u65e5\u5fd7\u663e\u793a\uff1a<\/p>\n<pre><code>YCF: Target table: wp_yali_contact_submissions\r\nYCF: Table exists: yes\r\nYCF: Insert result: 1\r\nYCF: Insert ID: 0\r\nYCF: Saved record:\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u63a8\u7406<\/strong>\uff1a<\/p>\n<pre><code>Phase 3: \u9a8c\u8bc1\u5047\u8bbe\r\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\r\n\u5173\u952e\u53d1\u73b0\uff1a\r\n- Insert result: 1\uff08\u8868\u793a\u63d2\u5165\u6210\u529f\uff09\r\n- Insert ID: 0\uff08\u5f02\u5e38\uff01\u6210\u529f\u63d2\u5165\u5e94\u8be5\u6709\u81ea\u589e ID\uff09\r\n- Saved record \u4e3a\u7a7a\r\n\u8fd9\u610f\u5473\u7740\uff1a\r\n\u6570\u636e\u63d2\u5165\"\u6210\u529f\"\u4f46\u6ca1\u6709\u751f\u6210 ID\uff0c\u4e14\u67e5\u8be2\u4e0d\u5230\u3002\r\n\u53ef\u80fd\u539f\u56e0\uff1a\r\n1. \u6570\u636e\u5e93\u8868\u7ed3\u6784\u95ee\u9898\uff08\u5982\u6ca1\u6709\u81ea\u589e\u4e3b\u952e\uff09\r\n2. \u6570\u636e\u5e93\u4e8b\u52a1\u95ee\u9898\r\n3. \u63d2\u4ef6\u51b2\u7a81\u5bfc\u81f4\u6570\u636e\u88ab\u56de\u6eda\r\n\u8ba9\u6211\u68c0\u67e5\u8868\u7ed3\u6784\u3002\r\n<\/code><\/pre>\n<p>AI \u4f1a\u751f\u6210\u68c0\u67e5\u4ee3\u7801\uff1a<\/p>\n<pre><code>\/\/ \u68c0\u67e5\u8868\u7ed3\u6784\r\npublic function check_table_structure() {\r\nglobal $wpdb;\r\n$table = $wpdb-&gt;prefix . 'yali_contact_submissions';\r\n$structure = $wpdb-&gt;get_results(\"DESCRIBE $table\");\r\nerror_log('YCF: Table structure: ' . print_r($structure, true));\r\n\/\/ \u68c0\u67e5 id \u5b57\u6bb5\r\nforeach ($structure as $column) {\r\nif ($column-&gt;Field === 'id') {\r\nerror_log('YCF: ID field type: ' . $column-&gt;Type);\r\nerror_log('YCF: ID extra: ' . $column-&gt;Extra);\r\n}\r\n}\r\n}\r\n<\/code><\/pre>\n<p>\u5047\u8bbe\u53d1\u73b0\uff1a<\/p>\n<pre><code>YCF: ID field type: bigint(20) unsigned\r\nYCF: ID extra:\r\n<\/code><\/pre>\n<p><strong>AI \u7684\u7ed3\u8bba<\/strong>\uff1a<\/p>\n<pre><code>Phase 4: \u4fee\u590d\u4e0e\u9a8c\u8bc1\r\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\r\n\u627e\u5230\u6839\u672c\u539f\u56e0\uff01\r\n\u95ee\u9898\uff1aid \u5b57\u6bb5\u7684 Extra \u5c5e\u6027\u4e3a\u7a7a\uff0c\u8bf4\u660e\u6ca1\u6709\u8bbe\u7f6e AUTO_INCREMENT\u3002\r\n\u8fd9\u610f\u5473\u7740\uff1a\r\n- \u6bcf\u6b21\u63d2\u5165\u65f6\uff0cid \u90fd\u662f 0\uff08\u9ed8\u8ba4\u503c\uff09\r\n- \u6216\u8005\u9700\u8981\u624b\u52a8\u6307\u5b9a id\r\n- \u63d2\u5165\"\u6210\u529f\"\u4f46\u6570\u636e\u53ef\u80fd\u88ab\u8986\u76d6\u6216\u51b2\u7a81\r\n\u4fee\u590d\u65b9\u6848\uff1a\r\n\u4fee\u6539\u6570\u636e\u5e93\u8868\uff0c\u7ed9 id \u5b57\u6bb5\u6dfb\u52a0 AUTO_INCREMENT\u3002\r\n<\/code><\/pre>\n<h3>\u7b2c\u4e94\u9636\u6bb5\uff1a\u4fee\u590d\u5e76\u9a8c\u8bc1<\/h3>\n<p><strong>AI \u7684\u4fee\u590d\u4ee3\u7801<\/strong>\uff1a<\/p>\n<pre><code>\/\/ \u4fee\u590d\u6570\u636e\u5e93\u8868\r\npublic function fix_database_table() {\r\nglobal $wpdb;\r\n$table = $wpdb-&gt;prefix . 'yali_contact_submissions';\r\n\/\/ \u4fee\u6539 id \u5b57\u6bb5\u4e3a\u81ea\u589e\r\n$wpdb-&gt;query(\"ALTER TABLE $table MODIFY COLUMN id bigint(20) unsigned NOT NULL AUTO_INCREMENT\");\r\n\/\/ \u9a8c\u8bc1\u4fee\u590d\r\n$structure = $wpdb-&gt;get_results(\"DESCRIBE $table\");\r\nforeach ($structure as $column) {\r\nif ($column-&gt;Field === 'id') {\r\nerror_log('YCF: Fixed ID extra: ' . $column-&gt;Extra);\r\n}\r\n}\r\n}\r\n<\/code><\/pre>\n<p>\u4fee\u590d\u540e\uff0cAI \u4f1a\u6307\u5bfc\u4f60\u9a8c\u8bc1\uff1a<\/p>\n<pre><code>\u4fee\u590d\u5b8c\u6210\u3002\u8bf7\u6d4b\u8bd5\uff1a\r\n1. \u63d0\u4ea4\u4e00\u4e2a\u65b0\u8868\u5355\r\n2. \u68c0\u67e5\u540e\u53f0\u662f\u5426\u80fd\u770b\u5230\u8bb0\u5f55\r\n3. \u67e5\u770b\u90ae\u4ef6\u662f\u5426\u6536\u5230\r\n\u540c\u65f6\uff0c\u6211\u4f1a\u5728\u4fee\u590d\u4ee3\u7801\u4e2d\u6dfb\u52a0\u4fdd\u62a4\u903b\u8f91\uff0c\u9632\u6b62\u672a\u6765\u51fa\u73b0\u7c7b\u4f3c\u95ee\u9898\u3002\r\n<\/code><\/pre>\n<h3>\u7b2c\u516d\u9636\u6bb5\uff1a\u603b\u7ed3\u4e0e\u9884\u9632<\/h3>\n<p><strong>AI \u7684\u603b\u7ed3\u62a5\u544a<\/strong>\uff1a<\/p>\n<pre><code>## Bug \u4fee\u590d\u62a5\u544a\r\n### \u95ee\u9898\u63cf\u8ff0\r\n\u8868\u5355\u63d0\u4ea4\u663e\u793a\u6210\u529f\uff0c\u4f46\u540e\u53f0\u770b\u4e0d\u5230\u8bb0\u5f55\uff0c\u90ae\u4ef6\u672a\u53d1\u9001\u3002\r\n### \u6839\u672c\u539f\u56e0\r\n\u6570\u636e\u5e93\u8868 `wp_yali_contact_submissions` \u7684 `id` \u5b57\u6bb5\u7f3a\u5c11 `AUTO_INCREMENT` \u5c5e\u6027\u3002\r\n### \u4e3a\u4ec0\u4e48\u53ea\u5728 Safari \u51fa\u73b0\uff1f\r\n\u7ecf\u8fc7\u8fdb\u4e00\u6b65\u8c03\u67e5\uff0c\u53d1\u73b0\u95ee\u9898\u4e0e\u6d4f\u89c8\u5668\u65e0\u5173\uff0c\u800c\u662f\u4e0e\u63d0\u4ea4\u65f6\u5e8f\u6709\u5173\uff1a\r\n- \u5728\u6570\u636e\u91cf\u5c0f\u65f6\uff0cid \u51b2\u7a81\u4e0d\u660e\u663e\r\n- \u5f53\u6570\u636e\u7d2f\u79ef\u540e\uff0cid=0 \u7684\u51b2\u7a81\u5bfc\u81f4\u65b0\u6570\u636e\u65e0\u6cd5\u771f\u6b63\u4fdd\u5b58\r\n### \u4fee\u590d\u65b9\u6848\r\n1. \u4fee\u6539\u6570\u636e\u5e93\u8868\u7ed3\u6784\uff0c\u6dfb\u52a0 AUTO_INCREMENT\r\n2. \u66f4\u65b0\u63d2\u4ef6\u6fc0\u6d3b\u903b\u8f91\uff0c\u786e\u4fdd\u6b63\u786e\u521b\u5efa\u8868\r\n3. \u6dfb\u52a0\u6570\u636e\u9a8c\u8bc1\uff0c\u786e\u4fdd insert_id &gt; 0\r\n### \u9884\u9632\u63aa\u65bd\r\n```php\r\n\/\/ \u5728\u4fdd\u5b58\u540e\u9a8c\u8bc1\r\nif ($wpdb-&gt;insert_id === 0) {\r\nerror_log('YCF: Failed to get insert ID');\r\nwp_send_json_error('\u6570\u636e\u4fdd\u5b58\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5');\r\nreturn;\r\n}\r\n<\/code><\/pre>\n<h3>\u9a8c\u8bc1\u7ed3\u679c<\/h3>\n<pre><code>\u2713 \u8868\u5355\u63d0\u4ea4\u540e\u540e\u53f0\u53ef\u89c1\r\n\u2713 \u90ae\u4ef6\u901a\u77e5\u6b63\u5e38\u53d1\u9001\r\n\u2713 \u6240\u6709\u6d4f\u89c8\u5668\u6b63\u5e38\u5de5\u4f5c\r\n<\/code><\/pre>\n<h2>\u672f\u8bed\u8868<\/h2>\n<h3>\u5f00\u53d1\u672f\u8bed<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u672f\u8bed<\/th>\n<th>\u89e3\u91ca<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>AI \u5f00\u53d1\u5de5\u5177<\/strong><\/td>\n<td>\u80fd\u7406\u89e3\u81ea\u7136\u8bed\u8a00\u5e76\u751f\u6210\u4ee3\u7801\u7684\u667a\u80fd\u52a9\u624b\uff0c\u5982 Claude Code\u3001Cursor<\/td>\n<\/tr>\n<tr>\n<td><strong>\u6280\u80fd\u7cfb\u7edf (Skills)<\/strong><\/td>\n<td>\u7ed3\u6784\u5316\u7684\u6307\u4ee4\u96c6\u5408\uff0c\u8ba9 AI \u6309\u7167\u4e13\u4e1a\u6d41\u7a0b\u5de5\u4f5c<\/td>\n<\/tr>\n<tr>\n<td><strong>TDD (Test-Driven Development)<\/strong><\/td>\n<td>\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1\uff0c\u5148\u5199\u6d4b\u8bd5\u518d\u5199\u4ee3\u7801\u7684\u5f00\u53d1\u65b9\u6cd5<\/td>\n<\/tr>\n<tr>\n<td><strong>Git Worktree<\/strong><\/td>\n<td>Git \u529f\u80fd\uff0c\u5141\u8bb8\u540c\u65f6\u5728\u591a\u4e2a\u5206\u652f\u4e0a\u5de5\u4f5c<\/td>\n<\/tr>\n<tr>\n<td><strong>Shortcode<\/strong><\/td>\n<td>WordPress \u77ed\u4ee3\u7801\uff0c\u5982\u00a0<code>[contact_form]<\/code>\uff0c\u53ef\u4ee5\u5728\u9875\u9762\u4e2d\u63d2\u5165\u52a8\u6001\u5185\u5bb9<\/td>\n<\/tr>\n<tr>\n<td><strong>Nonce<\/strong><\/td>\n<td>WordPress \u5b89\u5168\u673a\u5236\uff0c\u9632\u6b62\u8de8\u7ad9\u8bf7\u6c42\u4f2a\u9020\u653b\u51fb<\/td>\n<\/tr>\n<tr>\n<td><strong>AJAX<\/strong><\/td>\n<td>\u5f02\u6b65 JavaScript\uff0c\u5141\u8bb8\u4e0d\u5237\u65b0\u9875\u9762\u7684\u60c5\u51b5\u4e0b\u4e0e\u670d\u52a1\u5668\u901a\u4fe1<\/td>\n<\/tr>\n<tr>\n<td><strong>WP_List_Table<\/strong><\/td>\n<td>WordPress \u63d0\u4f9b\u7684\u8868\u683c\u7c7b\uff0c\u7528\u4e8e\u540e\u53f0\u6570\u636e\u5c55\u793a<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\u8bbe\u8ba1\u672f\u8bed<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u672f\u8bed<\/th>\n<th>\u89e3\u91ca<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>AI Slop<\/strong><\/td>\n<td>AI \u751f\u6210\u7684\u5343\u7bc7\u4e00\u5f8b\u7684\u8bbe\u8ba1\uff0c\u5982\u7d2b\u8272\u6e10\u53d8\u3001Inter \u5b57\u4f53\u3001\u5706\u89d2\u5361\u7247<\/td>\n<\/tr>\n<tr>\n<td><strong>Design Context<\/strong><\/td>\n<td>\u8bbe\u8ba1\u4e0a\u4e0b\u6587\uff0c\u4fdd\u5b58\u9879\u76ee\u7684\u8bbe\u8ba1\u504f\u597d\uff08\u989c\u8272\u3001\u5b57\u4f53\u3001\u98ce\u683c\u7b49\uff09<\/td>\n<\/tr>\n<tr>\n<td><strong>OKLCH<\/strong><\/td>\n<td>\u73b0\u4ee3 CSS \u989c\u8272\u8868\u793a\u6cd5\uff0c\u6bd4 RGB\/HEX \u66f4\u7b26\u5408\u4eba\u773c\u611f\u77e5<\/td>\n<\/tr>\n<tr>\n<td><strong>Modular Scale<\/strong><\/td>\n<td>\u6a21\u5757\u5316\u6bd4\u4f8b\uff0c\u7528\u4e8e\u521b\u5efa\u548c\u8c10\u7684\u5b57\u4f53\u5927\u5c0f\u5173\u7cfb<\/td>\n<\/tr>\n<tr>\n<td><strong>Tinted Neutrals<\/strong><\/td>\n<td>\u5411\u4e2d\u6027\u8272\uff08\u7070\uff09\u6dfb\u52a0\u5fae\u91cf\u8272\u5f69\uff0c\u8ba9\u8bbe\u8ba1\u66f4\u6e29\u6696<\/td>\n<\/tr>\n<tr>\n<td><strong>Anti-pattern<\/strong><\/td>\n<td>\u53cd\u6a21\u5f0f\uff0c\u660e\u786e\u544a\u8bc9 AI \u4e0d\u5e94\u8be5\u505a\u4ec0\u4e48<\/td>\n<\/tr>\n<tr>\n<td><strong>WCAG<\/strong><\/td>\n<td>Web \u5185\u5bb9\u53ef\u8bbf\u95ee\u6027\u6307\u5357\uff0c\u5b9a\u4e49\u53ef\u8bbf\u95ee\u6027\u6807\u51c6<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>WordPress \u672f\u8bed<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u672f\u8bed<\/th>\n<th>\u89e3\u91ca<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Plugin<\/strong><\/td>\n<td>\u63d2\u4ef6\uff0c\u6269\u5c55 WordPress \u529f\u80fd\u7684\u4ee3\u7801\u5305<\/td>\n<\/tr>\n<tr>\n<td><strong>Theme<\/strong><\/td>\n<td>\u4e3b\u9898\uff0c\u63a7\u5236 WordPress \u7f51\u7ad9\u5916\u89c2\u7684\u6a21\u677f\u96c6\u5408<\/td>\n<\/tr>\n<tr>\n<td><strong>CPT (Custom Post Type)<\/strong><\/td>\n<td>\u81ea\u5b9a\u4e49\u6587\u7ae0\u7c7b\u578b\uff0c\u5982\u4f5c\u54c1\u3001\u4ea7\u54c1\u7b49<\/td>\n<\/tr>\n<tr>\n<td><strong>Taxonomy<\/strong><\/td>\n<td>\u5206\u7c7b\u6cd5\uff0c\u5982\u5206\u7c7b\u76ee\u5f55\u3001\u6807\u7b7e<\/td>\n<\/tr>\n<tr>\n<td><strong>Meta Box<\/strong><\/td>\n<td>\u5143\u6846\uff0c\u6587\u7ae0\u7f16\u8f91\u9875\u9762\u7684\u989d\u5916\u4fe1\u606f\u6846<\/td>\n<\/tr>\n<tr>\n<td><strong>Customizer<\/strong><\/td>\n<td>\u4e3b\u9898\u5b9a\u5236\u5668\uff0c\u53ef\u89c6\u5316\u7f16\u8f91\u4e3b\u9898\u9009\u9879<\/td>\n<\/tr>\n<tr>\n<td><strong>Gutenberg<\/strong><\/td>\n<td>\u53e4\u817e\u5821\u7f16\u8f91\u5668\uff0cWordPress 5.0+ \u7684\u5757\u7f16\u8f91\u5668<\/td>\n<\/tr>\n<tr>\n<td><strong>dbDelta<\/strong><\/td>\n<td>WordPress \u51fd\u6570\uff0c\u7528\u4e8e\u521b\u5efa\u6216\u66f4\u65b0\u6570\u636e\u5e93\u8868<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>\u5e38\u89c1\u95ee\u9898\u89e3\u7b54<\/h2>\n<h3>Q1: \u6280\u80fd\u4e0d\u89e6\u53d1\u600e\u4e48\u529e\uff1f<\/h3>\n<p><strong>\u68c0\u67e5\u6e05\u5355<\/strong>\uff1a<\/p>\n<ol>\n<li><strong>\u786e\u8ba4\u5b89\u88c5\u6210\u529f<\/strong>\n<pre><code># Claude Code\r\n\/plugin list\r\n# \u5e94\u8be5\u80fd\u770b\u5230 superpowers \u548c pbakaus\/impeccable\r\n<\/code><\/pre>\n<\/li>\n<li><strong>\u624b\u52a8\u89e6\u53d1<\/strong><br \/>\n\u6709\u65f6\u5019\u9700\u8981\u660e\u786e\u544a\u8bc9 AI \u4f7f\u7528\u6280\u80fd\uff1a<\/p>\n<pre><code>\u4f60\uff1a\u4f7f\u7528 brainstorming \u6280\u80fd\u6765\u89c4\u5212\u8fd9\u4e2a\u529f\u80fd\r\n<\/code><\/pre>\n<\/li>\n<li><strong>\u68c0\u67e5\u5e73\u53f0\u8bbe\u7f6e<\/strong>\n<ul>\n<li><strong>Cursor<\/strong>\uff1a\u786e\u4fdd\u542f\u7528\u4e86 Nightly channel \u548c Agent Skills<\/li>\n<li><strong>Gemini CLI<\/strong>\uff1a\u786e\u4fdd\u5b89\u88c5\u4e86 preview \u7248\u672c\u5e76\u542f\u7528\u4e86 Skills<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>Q2: \u8bbe\u8ba1\u51fa\u6765\u7684\u754c\u9762\u8fd8\u662f\u5f88\u50cf&#8221;AI \u98ce\u683c&#8221;\uff1f<\/h3>\n<p><strong>\u89e3\u51b3\u6b65\u9aa4<\/strong>\uff1a<\/p>\n<ol>\n<li><strong>\u786e\u4fdd\u8fd0\u884c\u4e86 \/teach-impeccable<\/strong>\n<pre><code>\u4f60\uff1a\u8fd0\u884c \/teach-impeccable\r\n<\/code><\/pre>\n<\/li>\n<li><strong>\u5728\u63d0\u793a\u8bcd\u4e2d\u660e\u786e\u7981\u6b62<\/strong>\n<pre><code>\u4f60\uff1a\u8bbe\u8ba1\u8fd9\u4e2a\u754c\u9762\uff0c\u8981\u6c42\uff1a\r\n- \u4e0d\u8981\u4f7f\u7528 Inter \u5b57\u4f53\r\n- \u4e0d\u8981\u4f7f\u7528\u7d2b\u8272\u6e10\u53d8\r\n- \u4e0d\u8981\u6240\u6709\u5185\u5bb9\u90fd\u7528\u5361\u7247\u5305\u88f9\r\n- \u53c2\u8003 stripe.com \u7684\u8bbe\u8ba1\u98ce\u683c\r\n<\/code><\/pre>\n<\/li>\n<li><strong>\u4f7f\u7528 \/audit \u68c0\u67e5<\/strong>\n<pre><code>\u4f60\uff1a\u8fd0\u884c \/audit \u68c0\u67e5\u662f\u5426\u6709 AI slop\r\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>Q3: \u6d4b\u8bd5\u65e0\u6cd5\u8fd0\u884c\uff1f<\/h3>\n<p><strong>WordPress \u6d4b\u8bd5\u73af\u5883\u8bbe\u7f6e<\/strong>\uff1a<\/p>\n<pre><code># 1. \u786e\u4fdd\u5b89\u88c5\u4e86 WP-CLI\r\nwp --info\r\n# 2. \u521d\u59cb\u5316\u6d4b\u8bd5\u73af\u5883\r\nwp scaffold plugin-tests my-plugin\r\ncd my-plugin\r\nbin\/install-wp-tests.sh wordpress_test root password localhost latest\r\n# 3. \u8fd0\u884c\u6d4b\u8bd5\r\nvendor\/bin\/phpunit\r\n<\/code><\/pre>\n<p>\u5982\u679c\u63d0\u793a\u627e\u4e0d\u5230\u6570\u636e\u5e93\uff0c\u786e\u4fdd\uff1a<\/p>\n<ul>\n<li>MySQL \u6b63\u5728\u8fd0\u884c<\/li>\n<li>\u7528\u6237\u540d\u548c\u5bc6\u7801\u6b63\u786e<\/li>\n<li>\u53ef\u4ee5\u521b\u5efa\u6d4b\u8bd5\u6570\u636e\u5e93<\/li>\n<\/ul>\n<h3>Q4: \u63d0\u793a\u8bcd\u5e94\u8be5\u600e\u4e48\u5199\uff1f<\/h3>\n<p><strong>\u6709\u6548\u7684\u63d0\u793a\u8bcd\u6a21\u5f0f<\/strong>\uff1a<\/p>\n<pre><code>\u2705 \"\u4f7f\u7528 writing-plans \u6280\u80fd\u5236\u5b9a\u5b9e\u65bd\u8ba1\u5212\"\r\n\u2705 \"\u7528 TDD \u65b9\u5f0f\u5f00\u53d1\u8fd9\u4e2a\u529f\u80fd\"\r\n\u2705 \"\u8fd0\u884c \/audit \u68c0\u67e5\u4ee3\u7801\u8d28\u91cf\"\r\n\u2705 \"\u57fa\u4e8e .impeccable.md \u8bbe\u8ba1\u8fd9\u4e2a\u7ec4\u4ef6\"\r\n<\/code><\/pre>\n<p><strong>\u65e0\u6548\u7684\u63d0\u793a\u8bcd\u6a21\u5f0f<\/strong>\uff1a<\/p>\n<pre><code>\u274c \"\u5e2e\u6211\u5199\u4ee3\u7801\"\uff08\u592a\u6a21\u7cca\uff09\r\n\u274c \"\u4fee\u590d bug\"\uff08\u6ca1\u6709\u8bf4\u660e\u7528\u8c03\u8bd5\u6280\u80fd\uff09\r\n\u274c \"\u7f8e\u5316\u9875\u9762\"\uff08\u4e3b\u89c2\uff0c\u5e94\u8be5\u7528\u5177\u4f53\u547d\u4ee4\uff09\r\n<\/code><\/pre>\n<h3>Q5: \u53ef\u4ee5\u540c\u65f6\u4f7f\u7528 Superpowers \u548c Impeccable \u5417\uff1f<\/h3>\n<p><strong>\u53ef\u4ee5\uff0c\u800c\u4e14\u63a8\u8350\u8fd9\u6837\u505a<\/strong>\u3002<\/p>\n<p>\u5178\u578b\u5de5\u4f5c\u6d41\u7a0b\uff1a<\/p>\n<pre><code>\u540e\u7aef\u5f00\u53d1\uff08Superpowers\uff09\r\n\u251c\u2500\u2500 brainstorming\r\n\u251c\u2500\u2500 writing-plans\r\n\u251c\u2500\u2500 test-driven-development\r\n\u2514\u2500\u2500 requesting-code-review\r\n\u524d\u7aef\u8bbe\u8ba1\uff08Impeccable\uff09\r\n\u251c\u2500\u2500 \/teach-impeccable\r\n\u251c\u2500\u2500 frontend-design\r\n\u251c\u2500\u2500 \/audit\r\n\u2514\u2500\u2500 \/polish\r\n<\/code><\/pre>\n<h3>Q6: \u4ee3\u7801\u8d28\u91cf\u4e0d\u7a33\u5b9a\uff1f<\/h3>\n<p><strong>\u5f3a\u5236\u6d41\u7a0b\uff0c\u4e0d\u8981\u8df3\u8fc7\u6b65\u9aa4<\/strong>\uff1a<\/p>\n<pre><code>1. brainstorming\uff08\u9700\u6c42\u6f84\u6e05\uff09\r\n\u2193\r\n2. writing-plans\uff08\u5236\u5b9a\u8ba1\u5212\uff09\r\n\u2193\r\n3. test-driven-development\uff08\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1\uff09\r\n\u2193\r\n4. \/audit\uff08\u6280\u672f\u5ba1\u67e5\uff09\r\n\u2193\r\n5. \/critique\uff08\u8bbe\u8ba1\u5ba1\u67e5\uff09\r\n\u2193\r\n6. \/polish\uff08\u6700\u7ec8\u6da6\u8272\uff09\r\n<\/code><\/pre>\n<p>\u6bcf\u4e2a\u6b65\u9aa4\u90fd\u8981\u5b8c\u6210\u540e\u518d\u8fdb\u5165\u4e0b\u4e00\u6b65\u3002<\/p>\n<h3>Q7: \u9700\u8981\u4ed8\u8d39\u5417\uff1f<\/h3>\n<p><strong>Superpowers<\/strong>\uff1a\u514d\u8d39\u5f00\u6e90\uff08MIT \u534f\u8bae\uff09<br \/>\n<strong>Impeccable<\/strong>\uff1a\u514d\u8d39\u5f00\u6e90\uff08Apache 2.0 \u534f\u8bae\uff09<\/p>\n<p>\u4f46\u4f60\u4f7f\u7528\u7684 AI \u5de5\u5177\uff08Claude Code\u3001Cursor \u7b49\uff09\u53ef\u80fd\u9700\u8981\u4ed8\u8d39\u3002<\/p>\n<h2>\u7ed3\u8bed<\/h2>\n<p>\u901a\u8fc7\u672c\u6307\u5357\uff0c\u4f60\u5b66\u4e60\u4e86\uff1a<\/p>\n<ol>\n<li><strong>Superpowers \u7684\u6838\u5fc3\u6280\u80fd<\/strong>\uff1a\n<ul>\n<li><code>brainstorming<\/code>\u00a0&#8211; \u6f84\u6e05\u9700\u6c42<\/li>\n<li><code>writing-plans<\/code>\u00a0&#8211; \u5236\u5b9a\u8ba1\u5212<\/li>\n<li><code>test-driven-development<\/code>\u00a0&#8211; \u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1<\/li>\n<li><code>systematic-debugging<\/code>\u00a0&#8211; \u7cfb\u7edf\u5316\u8c03\u8bd5<\/li>\n<\/ul>\n<\/li>\n<li><strong>Impeccable \u7684\u6838\u5fc3\u547d\u4ee4<\/strong>\uff1a\n<ul>\n<li><code>\/teach-impeccable<\/code>\u00a0&#8211; \u5efa\u7acb\u8bbe\u8ba1\u4e0a\u4e0b\u6587<\/li>\n<li><code>\/audit<\/code>\u00a0&#8211; \u6280\u672f\u5ba1\u67e5<\/li>\n<li><code>\/critique<\/code>\u00a0&#8211; \u8bbe\u8ba1\u5ba1\u67e5<\/li>\n<li><code>\/polish<\/code>\u00a0&#8211; \u6700\u7ec8\u6da6\u8272<\/li>\n<\/ul>\n<\/li>\n<li><strong>\u5b9e\u6218\u793a\u4f8b<\/strong>\uff1a\n<ul>\n<li>\u8054\u7cfb\u8868\u5355\u63d2\u4ef6\u5f00\u53d1\uff08\u4ece\u9700\u6c42\u5230\u4ea4\u4ed8\uff09<\/li>\n<li>\u524d\u7aef\u754c\u9762\u4f18\u5316\uff08\u4ece AI slop \u5230\u4e13\u4e1a\u8bbe\u8ba1\uff09<\/li>\n<li>Bug \u6392\u67e5\uff08\u7cfb\u7edf\u5316\u6839\u56e0\u5206\u6790\uff09<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><strong>\u4e0b\u4e00\u6b65<\/strong>\uff1a<\/p>\n<ul>\n<li>\u5b89\u88c5\u6280\u80fd\u7cfb\u7edf<\/li>\n<li>\u4ece\u7b80\u5355\u7684\u63d2\u4ef6\u5f00\u59cb\u7ec3\u4e60<\/li>\n<li>\u9010\u6b65\u5c1d\u8bd5\u66f4\u590d\u6742\u7684\u9879\u76ee<\/li>\n<li>\u53c2\u8003\u00a0<a href=\"https:\/\/github.com\/obra\/superpowers\">Superpowers GitHub<\/a>\u00a0\u548c\u00a0<a href=\"https:\/\/github.com\/pbakaus\/impeccable\">Impeccable GitHub<\/a>\u00a0\u83b7\u53d6\u6700\u65b0\u4fe1\u606f<\/li>\n<\/ul>\n<p>\u795d\u4f60\u5f00\u53d1\u987a\u5229\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u901a\u8fc7\u63d0\u793a\u8bcd\u4e0e AI \u534f\u4f5c\uff0c\u8ba9\u5f00\u53d1\u66f4\u7b80\u5355\u3001\u66f4\u4e13\u4e1a \u5f00\u59cb\u4e4b\u524d\uff1a\u4f60&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-525","post","type-post","status-publish","format-standard","hentry","category-seo-tutorial"],"_links":{"self":[{"href":"https:\/\/www.yaliai.com\/en\/wp-json\/wp\/v2\/posts\/525","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yaliai.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yaliai.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yaliai.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yaliai.com\/en\/wp-json\/wp\/v2\/comments?post=525"}],"version-history":[{"count":7,"href":"https:\/\/www.yaliai.com\/en\/wp-json\/wp\/v2\/posts\/525\/revisions"}],"predecessor-version":[{"id":533,"href":"https:\/\/www.yaliai.com\/en\/wp-json\/wp\/v2\/posts\/525\/revisions\/533"}],"wp:attachment":[{"href":"https:\/\/www.yaliai.com\/en\/wp-json\/wp\/v2\/media?parent=525"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yaliai.com\/en\/wp-json\/wp\/v2\/categories?post=525"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yaliai.com\/en\/wp-json\/wp\/v2\/tags?post=525"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}