path = 'c:/NeoZQYY/docs/h5_ui/compare/ORCHESTRATION-PLAN.md' with open(path, 'rb') as f: raw = f.read() crlf = b'\r\n' in raw doc = raw.decode('utf-8').replace('\r\n', '\n') # Fix 2: Add main agent duties after core model old2 = ( '\u8be6\u7ec6\u5b50\u4ee3\u7406\u804c\u8d23\u4e0e\u8c03\u5ea6\u89c4\u5219\u89c1 `docs/h5_ui/compare/AGENT-PLAYBOOK.md`\u3002\n' '\n' '---\n' '\n' '## \u7f16\u6392\u89c4\u5219' ) new2 = ( '\u8be6\u7ec6\u5b50\u4ee3\u7406\u804c\u8d23\u4e0e\u8c03\u5ea6\u89c4\u5219\u89c1 `docs/h5_ui/compare/AGENT-PLAYBOOK.md`\u3002\n' '\n' '**\u4e3b\u4ee3\u7406\u8c03\u5ea6\u804c\u8d23\uff1a**\n' '1. **\u6bcf\u6b21\u4f1a\u8bdd\u5f00\u59cb**\uff1a\u8bfb `docs/h5_ui/compare/PROGRESS.md`\uff0c\u786e\u8ba4\u5f53\u524d\u8fdb\u5ea6\u548c\u4e0b\u4e00\u4e2a\u5355\u5143\n' '2. \u68c0\u67e5 MCP \u5c31\u7eea\u72b6\u6001\uff08\u89c1 PROGRESS.md \u300cMCP \u5c31\u7eea\u68c0\u67e5\u6e05\u5355\u300d\uff09\n' '3. \u5f00\u59cb\u65b0\u9875\u9762\uff1a\u9690\u85cf dev-fab/ai-float-button\uff0c\u786e\u8ba4\u9ed8\u8ba4\u7ef4\u5ea6\n' '4. \u9010\u5c4f\u4e0b\u53d1\u622a\u56fe\u4ee3\u7406 \u2192 \u5ba1\u8ba1\u4ee3\u7406 \u2192 \u4fee\u6b63/\u9a8c\u8bc1\u5faa\u73af\n' '5. \u9a8c\u8bc1\u901a\u8fc7 \u2192 **\u66f4\u65b0 PROGRESS.md \u5bf9\u5e94\u884c\u72b6\u6001** \u2192 \u4e0b\u53d1\u4e0b\u4e00\u5c4f\u622a\u56fe\u4ee3\u7406\n' '6. \u300c\u9700\u56de\u9000\u300d\u65f6 \u2192 \u81ea\u52a8\u56de\u9000\u5230\u6307\u5b9a step \u91cd\u5f00\u59cb\n' '7. \u300c\u8df3\u8fc7\u300d\u65f6 \u2192 \u5728 PROGRESS.md \u5907\u6ce8\u680f\u8bb0\u5f55\u539f\u56e0\uff0c\u7ee7\u7eed\u4e0b\u4e00\u5c4f\n' '8. \u9875\u9762\u6240\u6709\u5c4f\u9a8c\u8bc1\u901a\u8fc7\u540e \u2192 \u4e0b\u53d1\u9a8c\u8bc1\u4ee3\u7406\u6267\u884c\u5168\u91cf\u56de\u5f52\u6821\u9a8c\n' '\n' '---\n' '\n' '## \u7f16\u6392\u89c4\u5219' ) if old2 in doc: doc = doc.replace(old2, new2, 1) print('Fix 2 OK: main agent duties added') else: print('Fix 2 SKIP') # Fix 3: Add PROGRESS.md update to standard unit template end old3 = ( '10. \u5982\u679c\u504f\u5dee\u6839\u56e0\u662f\u5168\u5c40\u6837\u5f0f\uff08\u5f71\u54cd\u6240\u6709\u5c4f\uff09\uff0c\u6807\u6ce8\u201c\u5168\u5c40\u6837\u5f0f\u53d8\u66f4\uff0c\u53ef\u80fd\u5f71\u54cd\u524d\u5e8f\u5c4f\u201d\u8fd4\u56de\u4e3b\u4ee3\u7406\n' '```' ) new3 = ( '10. \u5982\u679c\u504f\u5dee\u6839\u56e0\u662f\u5168\u5c40\u6837\u5f0f\uff08\u5f71\u54cd\u6240\u6709\u5c4f\uff09\uff0c\u6807\u6ce8\u201c\u5168\u5c40\u6837\u5f0f\u53d8\u66f4\uff0c\u53ef\u80fd\u5f71\u54cd\u524d\u5e8f\u5c4f\u201d\u8fd4\u56de\u4e3b\u4ee3\u7406\n' '\n' '\u5b8c\u6210\u540e\uff08\u4e3b\u4ee3\u7406\u6267\u884c\uff09\uff1a\n' '\u2192 \u66f4\u65b0 docs/h5_ui/compare/PROGRESS.md \u5bf9\u5e94\u884c\uff1a\u586b\u5199\u521d\u59cb\u5dee\u5f02\u7387\u3001\u4fee\u6b63\u8f6e\u6b21\u3001\u6700\u7ec8\u5dee\u5f02\u7387\u3001\u72b6\u6001\n' '\u2192 \u66f4\u65b0\u300c\u5f53\u524d\u72b6\u6001\u300d\u533a\u5757\u7684\u300c\u4e0b\u4e00\u4e2a\u5355\u5143\u300d\u5b57\u6bb5\n' '```' ) if old3 in doc: doc = doc.replace(old3, new3, 1) print('Fix 3 OK: PROGRESS update step added') else: print('Fix 3 SKIP') # Fix 4: prereq reference if '\u524d\u7f6e\u4efb\u52a1\u72b6\u6001\u89c1' not in doc: old4 = '## \u524d\u7f6e\u4efb\u52a1\uff08\u5728 A \u6279\u6b21\u4e4b\u524d\uff09\n\n### P0.' new4 = '## \u524d\u7f6e\u4efb\u52a1\uff08\u5728 A \u6279\u6b21\u4e4b\u524d\uff09\n\n\u003e \u524d\u7f6e\u4efb\u52a1\u72b6\u6001\u89c1 `docs/h5_ui/compare/PROGRESS.md` \u524d\u7f6e\u4efb\u52a1\u8868\u3002\n\n### P0.' if old4 in doc: doc = doc.replace(old4, new4, 1) print('Fix 4 OK: prereq reference added') else: print('Fix 4 SKIP') else: print('Fix 4 SKIP: already present') with open(path, 'wb') as f: out = doc.replace('\n', '\r\n') if crlf else doc f.write(out.encode('utf-8')) print('Saved')