nolo-cli 0.201.0-alpha.2 → 0.202.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/{_executeModel-BNYZLAN6.js → _executeModel-IPRTPSW7.js} +34 -33
  2. package/{agentDeleteCommand-4V4YSAXS.js → agentDeleteCommand-WHT2MMAP.js} +49 -47
  3. package/{agentEmailCommands-EYIQEH6Z.js → agentEmailCommands-4LW2BFLY.js} +51 -49
  4. package/{agentListCommands-2KGUT7UB.js → agentListCommands-2KF47HY6.js} +81 -45
  5. package/{agentMachineCommands-WUN47ILO.js → agentMachineCommands-QQCFQQ4T.js} +28 -26
  6. package/{agentProviderCommands-T6E3JCR6.js → agentProviderCommands-5ALOQLE5.js} +2 -2
  7. package/{agentRecordCommands-XL2CON36.js → agentRecordCommands-ARVXF2C2.js} +47 -45
  8. package/{agentRunCommand-R237ZGMQ.js → agentRunCommand-3IL5PW2S.js} +49 -47
  9. package/{agentRunControl-6HHESKDB.js → agentRunControl-ABDUPJLX.js} +10 -5
  10. package/{agentRuntimeLocal-XLLWFAVI.js → agentRuntimeLocal-YXHJV65L.js} +24 -22
  11. package/{agentSlice-Z5NKGMB7.js → agentSlice-BFDKYW6H.js} +4 -3
  12. package/{appDeleteCommands-IPF2VI3W.js → appDeleteCommands-OWJO3WFB.js} +29 -27
  13. package/{appDeployCommands-IBQ7GUXO.js → appDeployCommands-X7HLT27G.js} +29 -27
  14. package/{appDeployStatusCommands-6ESVU6XE.js → appDeployStatusCommands-CHCZ7ZUD.js} +29 -27
  15. package/{appGetCommands-VTSYTM4V.js → appGetCommands-AZW2EE4R.js} +29 -27
  16. package/{appListCommands-VCP5TUX7.js → appListCommands-YFN6DP6K.js} +29 -27
  17. package/{authCommand-RV5MQDWN.js → authCommand-W34UWJGR.js} +14 -13
  18. package/{builtinSkillRegistry-7RAJP7FD.js → builtinSkillRegistry-NJVHQIKY.js} +1 -1
  19. package/{chromeOpsCommands-BA6CS4DI.js → chromeOpsCommands-USKE4B4K.js} +15 -4
  20. package/{chunk-RE3B2OCC.js → chunk-266E37EL.js} +69 -14
  21. package/chunk-2BMURXSB.js +1863 -0
  22. package/{chunk-RRHJJUA3.js → chunk-2PI4QFAL.js} +174 -100
  23. package/{chunk-NABJEYPJ.js → chunk-2Q3LOAFE.js} +38 -3
  24. package/{chunk-EOLPKHSB.js → chunk-326HCB6L.js} +28 -24
  25. package/{chunk-4CEAZRZ4.js → chunk-33W4IFUU.js} +1 -1
  26. package/{chunk-V3MGT3RF.js → chunk-3CWF2EUZ.js} +8 -8
  27. package/{chunk-G6OOUQWJ.js → chunk-4KB6WQUL.js} +2 -0
  28. package/{chunk-DYQXB46J.js → chunk-4KPB3KWX.js} +2 -2
  29. package/{chunk-SW5AAI5D.js → chunk-4SH22ZG7.js} +5 -5
  30. package/{chunk-WAZ6BTSC.js → chunk-5E4FSR4J.js} +1 -1
  31. package/{chunk-PVD7CRYV.js → chunk-6I7ZP7KJ.js} +3 -3
  32. package/chunk-6UBGXX2W.js +12 -0
  33. package/{chunk-ZBCBFOWC.js → chunk-A2ZMIRLN.js} +2 -2
  34. package/{chunk-Z646E5YH.js → chunk-ASG7VWPK.js} +3 -3
  35. package/{chunk-QWVGFBOQ.js → chunk-BLFZULEQ.js} +3 -3
  36. package/{chunk-JIFYXQRD.js → chunk-BTYQAODF.js} +26 -8
  37. package/{chunk-KORCRPLO.js → chunk-C7PKPHK6.js} +334 -12
  38. package/{chunk-6WZQGT5X.js → chunk-CJ37ZMCQ.js} +6 -2
  39. package/{chunk-VHGD6FHV.js → chunk-CKAHAVMK.js} +40 -10
  40. package/{chunk-UNOILAZP.js → chunk-CLTGWJVT.js} +76 -4
  41. package/{chunk-Q6RMLYSA.js → chunk-CMLBKYEI.js} +4 -2
  42. package/{chunk-NVOYW6H4.js → chunk-CQHMBWZH.js} +12 -8
  43. package/{chunk-7KWPNGVJ.js → chunk-CTZ4O3XD.js} +1 -1
  44. package/{chunk-OHRDHS4N.js → chunk-CVCRAO6Q.js} +9 -4
  45. package/{chunk-26CRLZFD.js → chunk-D57YYGMD.js} +2 -2
  46. package/{chunk-TEC5UHQK.js → chunk-DHJXDGC3.js} +2 -2
  47. package/{chunk-QYOB7RVA.js → chunk-DKZJJ2NQ.js} +3 -2
  48. package/{chunk-4YX7VQOC.js → chunk-E2FC5RMU.js} +17 -14
  49. package/{chunk-EH4MNUMF.js → chunk-ETTDZBK5.js} +4 -4
  50. package/{chunk-BUXH3H5M.js → chunk-FWMOJTGR.js} +3722 -4851
  51. package/{chunk-ZWQUWF6W.js → chunk-G7Y4GXTY.js} +8 -14
  52. package/{chunk-5KTQVMCX.js → chunk-GOO6G4PY.js} +85 -0
  53. package/{chunk-FMOZ57LN.js → chunk-H7HWWNJB.js} +1 -1
  54. package/{chunk-A5VR65AE.js → chunk-HJS5EIKS.js} +4 -4
  55. package/{chunk-H44LQSZ2.js → chunk-HKWGI3TM.js} +178 -311
  56. package/{chunk-BBGYSMUE.js → chunk-JH7KMNGT.js} +143 -19
  57. package/{chunk-YXMZHGNA.js → chunk-KDUYNEJ5.js} +33 -16
  58. package/{chunk-O5V7QQAF.js → chunk-LEX6DEH4.js} +114 -2
  59. package/{chunk-BTBT2566.js → chunk-MNUOMXJH.js} +412 -9
  60. package/{chunk-N7E3LQ4A.js → chunk-MZXWSY4E.js} +1 -1
  61. package/{chunk-ZQ3EAOY3.js → chunk-NTLJGRAT.js} +1 -1
  62. package/{chunk-WFUIXNKC.js → chunk-P4YLK2OD.js} +3 -3
  63. package/chunk-PRJ473FK.js +63 -0
  64. package/{chunk-2SHLT6JB.js → chunk-Q7GNBUT4.js} +2 -2
  65. package/{chunk-C2UXCAMB.js → chunk-RIKSN62L.js} +3 -3
  66. package/{chunk-GTP6VNWH.js → chunk-RQ22OZD7.js} +3 -3
  67. package/{chunk-H7NIQGTU.js → chunk-RS66RJLA.js} +2 -2
  68. package/{chunk-GC64WGMD.js → chunk-SM3NSZJV.js} +16 -5
  69. package/{chunk-QKDMI22S.js → chunk-SSK4WNJA.js} +1 -1
  70. package/{chunk-6MAFLMAO.js → chunk-SUBNV2JH.js} +3 -3
  71. package/{chunk-HLAL63BZ.js → chunk-T43B7LB2.js} +1 -1
  72. package/{chunk-HTLIKE5U.js → chunk-TWVVTUNG.js} +2 -2
  73. package/{chunk-X3RWBJDQ.js → chunk-U7HTU2S7.js} +1 -1
  74. package/{chunk-76YUTLOT.js → chunk-UIOEHFF6.js} +1 -1
  75. package/{chunk-IIX6VWLW.js → chunk-VCFU3BO5.js} +224 -38
  76. package/{chunk-QU3TLYBR.js → chunk-VEUSD6OF.js} +35 -11
  77. package/{chunk-4YMD7B4Y.js → chunk-WPOKOKZA.js} +2 -2
  78. package/{chunk-K6TZSON4.js → chunk-WTKYP6QO.js} +19 -5
  79. package/{chunk-FEKMTBKJ.js → chunk-XW6B2RJW.js} +192 -55
  80. package/{chunk-ZSO5B6SW.js → chunk-Y2WUYX4I.js} +9 -0
  81. package/{chunk-A3SXTJDE.js → chunk-YAGFPXOX.js} +14 -14
  82. package/{chunk-TVGX5QIN.js → chunk-YUA6OAH5.js} +2 -2
  83. package/{chunk-NYE2INIO.js → chunk-YV2RSLM4.js} +13 -13
  84. package/{chunk-MJWUBTK7.js → chunk-YZGNKHUM.js} +2 -2
  85. package/{commandRegistry-YFXWA5SF.js → commandRegistry-HEBIO2A4.js} +87 -67
  86. package/{contentThunks-2BV7CFUP.js → contentThunks-I4IHSDTM.js} +14 -13
  87. package/{cooldownCommands-KRILPXOZ.js → cooldownCommands-5SJ74DNP.js} +1 -1
  88. package/{createAgentAutomationAction-T6CGXCSO.js → createAgentAutomationAction-WQCH5HR2.js} +14 -13
  89. package/{createDialogAction-X27IA3G2.js → createDialogAction-CKMZK5JQ.js} +15 -14
  90. package/{createPageAction-EHDHNW5P.js → createPageAction-QAZHQGY7.js} +14 -13
  91. package/{dialogCommands-XZXH3HSQ.js → dialogCommands-YMAHICPJ.js} +30 -28
  92. package/{dialogSlice-AZNPVOCU.js → dialogSlice-GEGACCH2.js} +13 -12
  93. package/{docCreateCommands-Z64V5BFZ.js → docCreateCommands-SNMAKBXN.js} +28 -26
  94. package/{docDeleteCommands-7UFHIM4C.js → docDeleteCommands-K52UESRC.js} +29 -27
  95. package/{docReadCommands-NLU7Y67R.js → docReadCommands-AG6LLHJ7.js} +28 -26
  96. package/{docStore-M37Q6JFO.js → docStore-B4EFT53J.js} +1 -1
  97. package/{docUpdateCommands-S2KGBEG3.js → docUpdateCommands-B5EZ7DYN.js} +28 -26
  98. package/{fetchMessages-HWBVATSE.js → fetchMessages-YY4SATNR.js} +1 -1
  99. package/{getPricing-E2PLNWCR.js → getPricing-3PQY3TGI.js} +3 -3
  100. package/{handleSendMessageAction-KUJQZ6B6.js → handleSendMessageAction-4BACQWOG.js} +70 -29
  101. package/index.js +7 -7
  102. package/{lib-4YTWAGY7.js → lib-5KKIBFIT.js} +439 -272
  103. package/{localDialogRead-CT5HGDMC.js → localDialogRead-FUXGZ57B.js} +1 -1
  104. package/{localRuntimeAdapter-5BNHO6JZ.js → localRuntimeAdapter-5CVSCXHI.js} +45 -43
  105. package/{machineCommands-2KDROAVV.js → machineCommands-R7L4IBQL.js} +48 -46
  106. package/{machineWsRunDispatch-4NP5M574.js → machineWsRunDispatch-KZHTW7DW.js} +46 -44
  107. package/{models-UUNO6DOL.js → models-PJBE6JDV.js} +2 -2
  108. package/{oauthTokenStore-PADKLNOC.js → oauthTokenStore-OEERZFUC.js} +2 -1
  109. package/package.json +1 -1
  110. package/{providerPresetApply-JGNMO2KX.js → providerPresetApply-HBBUUVJD.js} +6 -6
  111. package/{providerRegistry-33J3ZYFJ.js → providerRegistry-5LK2NXYE.js} +6 -6
  112. package/{readlineWorkspace-MKUSR6HA.js → readlineWorkspace-PDPEWRSG.js} +290 -121
  113. package/{runAgentClientLoop-J32KRVN7.js → runAgentClientLoop-QKV66PX5.js} +31 -30
  114. package/{runtimeDoctorCommands-NYBOTA6D.js → runtimeDoctorCommands-3VFVTGPI.js} +8 -7
  115. package/{secretCommands-N6CMCJDZ.js → secretCommands-MKU25CDP.js} +311 -3
  116. package/{settingThunks-YRYNPWJM.js → settingThunks-4WU7YE62.js} +2 -2
  117. package/{skillDiscovery-F3TMVQOJ.js → skillDiscovery-BKLWW2EZ.js} +2 -2
  118. package/{spaceCommands-VV4K7TGI.js → spaceCommands-VD3CZWXM.js} +27 -25
  119. package/{streamAgentChatTurn-S2Q7STXS.js → streamAgentChatTurn-GM3UNSLS.js} +46 -43
  120. package/{tools-KOIPW4ZA.js → tools-UJLEQBKI.js} +25 -24
  121. package/{tuiSummaryLlmCaller-FSOADMXK.js → tuiSummaryLlmCaller-73QO3HAD.js} +12 -12
  122. package/{updateCommands-KE6LP3QX.js → updateCommands-RVDAFHBT.js} +3 -3
  123. package/{updateDialogTitleAction-ILS5OIXF.js → updateDialogTitleAction-24QO27NT.js} +14 -13
  124. package/{windowsSelfUpdate-26TSFXEZ.js → windowsSelfUpdate-N2VH2OBW.js} +2 -2
@@ -270,7 +270,7 @@ var CODING_SKILL_SEEDS = [
270
270
  "# Review \u901A\u7528\u6D41\u7A0B\uFF08\u5B8C\u6574\u7248\uFF09",
271
271
  "",
272
272
  "**\u4F60\u662F reviewer\u3002** \u672C\u6587\u4EF6\u662F\u4F60\u8FD9\u4E00\u8F6E\u7684\u5168\u90E8\u89C4\u5219\uFF1Bspec \u53EA\u8865\u4EFB\u52A1\u7279\u5B9A\u5185\u5BB9\u3002",
273
- "**\u4F60\u4E0D\u6D3E\u53D1\u3001\u4E0D\u505A\u5019\u9009\u9009\u62E9\u3001\u4E0D\u6539\u6587\u4EF6\u3002** \u53EA\u5BA1 spec \u7ED9\u4F60\u7684 diff\uFF0C\u4EA7\u51FA finding \u6216 `Clean review`\u3002",
273
+ "**\u4F5C\u4E3A\u5B9E\u9645 reviewer \u65F6\uFF0C\u4F60\u4E0D\u6D3E\u53D1\u3001\u4E0D\u505A\u5019\u9009\u9009\u62E9\u3001\u4E0D\u6539\u6587\u4EF6\uFF08reviewer \u4E0D\u6D3E\u53D1\u4EC5\u9650\u5B9E\u9645 reviewer \u89D2\u8272\uFF0C\u4E0D\u7EA6\u675F\u7F16\u6392\u8005\u52A0\u8F7D\u89C4\u8303\uFF09\u3002** \u53EA\u5BA1 spec \u7ED9\u4F60\u7684 diff\uFF0C\u4EA7\u51FA finding \u6216 `Clean review`\u3002",
274
274
  "",
275
275
  "## Review Dispatch Contract\uFF08\u89C4\u5212\u8005\u6D3E\u53D1\u524D\u8BFB\u53D6\uFF09",
276
276
  "- reviewer \u4E0D\u5F97\u662F\u4EA7\u51FA\u8BE5 diff \u7684\u540C\u4E00 agent\uFF1B\u89C4\u5212\u8005\u4EB2\u81EA\u5B9E\u73B0\u7684 diff \u4E5F\u5FC5\u987B\u4EA4\u7ED9\u53E6\u4E00\u4E2A reviewer\u3002",
@@ -1607,7 +1607,7 @@ function buildSkillCreatorSkillConfig(slug) {
1607
1607
  }
1608
1608
  function buildSkillCreatorSkillContentBySlug(slug) {
1609
1609
  return buildSkillDocMarkdown({
1610
- body: "# Skill Creator (Agent Skill \u7F16\u5199\u65B9\u6CD5\u8BBA)\n\n\u5199 skill \u662F\u7ED9 agent \u5199\u300C\u53EF\u88AB\u8DEF\u7531\u5230\u7684\u5DE5\u4F5C\u8BF4\u660E\u4E66\u300D\uFF0C\u4E0D\u662F\u7ED9\u4EBA\u770B\u7684\u6587\u6863\u3002\u672C skill \u53EA\u8BB2**\u600E\u4E48\u5199 skill**\uFF1B\u8BE5\u4E0D\u8BE5\u65B0\u5EFA\u4E00\u4E2A agent\u3001agent \u7684\u521B\u5EFA\u6D41\u7A0B\u5F52\u5185\u7F6E `agent-creator` \u7BA1\u3002\n\n## Core Principles\n\n### Concise is Key\n\n\u4E0A\u4E0B\u6587\u7A97\u53E3\u662F\u5171\u4EAB\u7684\uFF1Asystem prompt\u3001\u5BF9\u8BDD\u5386\u53F2\u3001\u5176\u4ED6 skill \u7684\u5143\u6570\u636E\u3001\u7528\u6237\u8BF7\u6C42\u90FD\u5728\u91CC\u9762\u3002**\u9ED8\u8BA4\u5047\u8BBE agent \u5DF2\u7ECF\u591F\u806A\u660E**\uFF0C\u53EA\u8865\u5B83\u6CA1\u6709\u7684\u4E0A\u4E0B\u6587\u3002\u6BCF\u53E5\u8BDD\u5148\u8FC7\u4E09\u95EE\uFF1A\u4E0D\u8BF4 agent \u80FD\u4E0D\u80FD\u81EA\u5DF1\u63A8\u51FA\u6765\uFF1F\u2192 \u5220\u3002\u522B\u7684 skill \u91CC\u6709\u6CA1\u6709\uFF1F\u2192 \u5F15\u7528\u5B83\u3002\u662F\u4E0D\u662F\u8BE6\u7EC6\u53C2\u8003\u8D44\u6599\uFF1F\u2192 \u653E `references/` \u6309\u9700\u52A0\u8F7D\u3002\u5B81\u8981\u77ED\u793A\u4F8B\uFF0C\u4E0D\u8981\u957F\u89E3\u91CA\u3002\n\n### Degree of Freedom\n\n\u628A\u8868\u8FF0\u7684\u4E25\u683C\u7A0B\u5EA6\u5339\u914D\u4EFB\u52A1\u7684\u8106\u5F31\u5EA6\uFF1A\n\n- **\u9AD8**\uFF08\u6587\u5B57\u8BF4\u660E\uFF09\u2014\u2014\u591A\u6761\u8DEF\u90FD\u901A\uFF0C\u51B3\u7B56\u4F9D\u8D56\u4E0A\u4E0B\u6587\n- **\u4E2D**\uFF08\u5E26\u53C2\u6570\u7684\u6A21\u677F\u811A\u672C\uFF09\u2014\u2014\u6709\u9996\u9009\u6A21\u5F0F\uFF0C\u5141\u8BB8\u5C11\u91CF\u53D8\u5316\n- **\u4F4E**\uFF08\u5199\u6B7B\u7684\u811A\u672C\u4E0E\u7ED3\u6784\uFF09\u2014\u2014\u64CD\u4F5C\u8106\u5F31\u3001\u4E00\u81F4\u6027\u5173\u952E\n\n### What to Not Include\n\nskill \u91CC\u53EA\u653E\u76F4\u63A5\u652F\u6491\u5B83\u804C\u80FD\u7684\u6587\u4EF6\u3002**\u7EDD\u4E0D\u521B\u5EFA** `README.md`\u3001`INSTALLATION_GUIDE.md`\u3001`CHANGELOG.md` \u6216\u4EFB\u4F55\u8BB2\u8FF0\u300C\u5B83\u662F\u600E\u4E48\u505A\u51FA\u6765\u7684\u300D\u7684\u9644\u5C5E\u6587\u6863\u3002skill \u662F\u7ED9 agent \u5E72\u6D3B\u7684\uFF0C\u4E0D\u662F\u7ED9\u4EBA\u8BFB\u5236\u4F5C\u8FC7\u7A0B\u7684\u3002\n\n## Skill Creation Process\n\n### Step 1: \u4E00\u53E5\u8BDD\u6D4B\u8BD5\n\n\u5148\u7528\u4E00\u53E5\u8BDD\u8BF4\u6E05\u8FD9\u4E2A skill \u5E72\u4EC0\u4E48\u3002\u8BF4\u4E0D\u6E05\u5C31\u505C\u4E0B\u91CD\u60F3\u3002\u300C\u5B83\u5E2E\u5FD9\u505A\u4EE3\u7801\u5BA1\u67E5\u300D\u592A\u6A21\u7CCA\uFF1B\u300C\u5B83\u5BA1\u67E5 TypeScript PR \u7684 bug\u3001\u98CE\u683C\u4E0E\u67B6\u6784\uFF0C\u5E76\u8FD4\u56DE\u5E26 severity \u7B49\u7EA7\u7684\u7ED3\u6784\u5316\u62A5\u544A\u300D\u5408\u683C\u3002\n\n#### 1b. \u8BCA\u65AD\u6A21\u7CCA\u9700\u6C42\n\n\u7528\u6237\u63CF\u8FF0\u7684\u662F\u75DB\u70B9\u800C\u4E0D\u662F skill \u8BF7\u6C42\uFF08\u300C\u6211\u6BCF\u6B21\u90FD\u5F97\u624B\u52A8\u68C0\u67E5 X\u300D\uFF09\u65F6\uFF0C\u5148\u8BCA\u65AD\u518D\u8981\u7ED3\u6784\uFF1A\n\n- \u8FD9\u4EF6\u4E8B\u6700\u9002\u5408\u7684\u662F skill\u3001\u811A\u672C\u3001\u6587\u6863\uFF0C\u8FD8\u662F\u505A\u4E00\u6B21\u5C31\u591F\uFF1F\n- \u82E5\u9002\u5408 skill\uFF0C\u6700\u8F7B\u7684\u5F62\u6001\u662F\u4EC0\u4E48\uFF1Aworkflow\u3001checklist\u3001reference\uFF0C\u8FD8\u662F\u5DE5\u5177\u5C01\u88C5\uFF1F\n- \u6700\u591A\u63A8\u8350\u4E24\u4E2A\u65B9\u5411\uFF0C\u8BF4\u6E05\u5404\u81EA\u9002\u914D\u70B9\u4E0E\u5C40\u9650\u3002\n\n#### 1c. \u95EE\u5BF9\u95EE\u9898\n\n\u52A8\u7B14\u524D\u628A\u6838\u5FC3\u95EE\u6E05\u695A\uFF0C**\u6BCF\u8F6E\u6700\u591A 2-3 \u4E2A\u95EE\u9898**\uFF0C\u4E0D\u8981\u5012\u51FA\u4E00\u5F20\u8868\u5355\u3002\u6838\u5FC3\u95EE\u9898\uFF1A(1) \u8FD9\u4E2A skill \u8981\u63A5\u7BA1\u54EA\u4EF6 recurring \u7684\u6D3B\uFF1F(2) \u522B\u4EBA\u4F1A\u5582\u7ED9\u5B83\u4EC0\u4E48\u771F\u5B9E\u8F93\u5165\uFF1F(3) \u5B83\u8BE5\u8FD4\u56DE\u4EC0\u4E48\u6210\u54C1\uFF1F(4) \u76F8\u90BB\u7684\u54EA\u4E9B\u8BF7\u6C42\u5B83\u8981\u660E\u786E\u62D2\u7EDD\uFF1F\n\n**\u987A\u5E8F\u6709\u8BB2\u7A76**\uFF1A\u5148\u95EE\u8FB9\u754C\uFF08\u300C\u5B83\u4E0D\u8BE5\u505A\u4EC0\u4E48\u300D\uFF09\uFF0C\u518D\u95EE\u4EA7\u51FA\uFF08\u300C\u6210\u529F\u957F\u4EC0\u4E48\u6837\u300D\uFF09\uFF0C\u6700\u540E\u624D\u95EE\u7ED3\u6784\uFF1B\u80FD\u4E00\u53E5\u8BDD\u8BF4\u6E05 skill \u65F6\u5C31\u505C\u6B62\u63D0\u95EE\u3002\n\n#### 1d. \u5BF9\u8BDD\u8BED\u6C14\n\n\u8BED\u6C14\u5339\u914D\u7528\u6237\u72B6\u6001\u800C\u4E0D\u662F\u6A21\u677F\uFF1A\u60F3\u6CD5\u6A21\u7CCA\u65F6\u5148\u5E76\u80A9\u628A\u5B83\u7406\u6E05\uFF0C\u76EE\u6807\u6E05\u6670\u65F6\u76F4\u63A5\u4E0A\u7ED3\u6784\uFF0C\u60F3\u5171\u521B\u5C31\u50CF\u5BF9\u7B49\u8BA8\u8BBA\u5E76\u4ECE\u5BF9\u8BDD\u91CC\u62A0\u8FB9\u754C\u3002\u7B2C\u4E00\u56DE\u590D\u6C38\u8FDC\u4E0D\u8981\u662F\u4E00\u5F20\u51B7\u51B0\u51B0\u7684\u8868\u5355\u95EE\u5377\uFF0C\u4E5F\u4E0D\u8981\u5728\u7406\u89E3\u771F\u5B9E\u804C\u8D23\u4E4B\u524D\u5C31\u7529\u4E00\u5957\u6A21\u677F\u3002\n\n### Step 2: \u89C4\u5212\u7ED3\u6784\n\n\u6309 skill \u6027\u8D28\u9009\u4E00\u79CD\u6A21\u5F0F\uFF1A\n\n**Workflow-based**\u2014\u2014\u6709\u6E05\u6670\u6B65\u9AA4\u7684\u987A\u5E8F\u6D41\u7A0B\uFF1A`## Overview \u2192 ## Workflow \u2192 ## Step 1 \u2192 ## Step 2 ...`\uFF0C\u9002\u5408\u90E8\u7F72\u3001\u53D1\u5E03\u3001\u6392\u9519\u6D41\u7A0B\u3002\n\n**Task-based**\u2014\u2014\u4E00\u7EC4\u76F8\u5173\u64CD\u4F5C\uFF1A`## Overview \u2192 ## Quick Start \u2192 ## Task A \u2192 ## Task B ...`\uFF0C\u9002\u5408 CLI \u53C2\u8003\u3001\u5DE5\u5177\u96C6\u3001API \u6307\u5357\u3002\n\n**Reference-based**\u2014\u2014\u6807\u51C6\u3001schema\u3001\u7B56\u7565\uFF1A`## Overview \u2192 ## Rules \u2192 ## Examples \u2192 ## Boundaries`\uFF0C\u9002\u5408\u4EE3\u7801\u5BA1\u67E5\u89C4\u8303\u3001\u54C1\u724C\u6807\u51C6\u3001\u67B6\u6784\u539F\u5219\u3002\n\n### Step 3: \u521D\u59CB\u5316\n\n\u5EFA\u76EE\u5F55 `<skill-name>/`\uFF0C\u5199 `SKILL.md`\uFF0CYAML frontmatter \u81F3\u5C11\u542B `name`\uFF08kebab-case\uFF09\u4E0E `description`\u3002\u9879\u76EE\u82E5\u81EA\u5E26\u811A\u624B\u67B6\uFF08\u5982 bun-nolo \u7684 `bun scripts/skill/init.ts <name>`\uFF09\u4F18\u5148\u7528\u5B83\uFF0C\u5426\u5219\u624B\u5199\u3002\n\n### Step 4: \u5199 SKILL.md\n\n#### Frontmatter\n\n**\u5148\u5199 `description`**\u2014\u2014\u5B83\u662F agent \u51B3\u5B9A\u52A0\u8F7D\u524D\u552F\u4E00\u80FD\u770B\u5230\u7684\u4E1C\u897F\uFF0C\u4E5F\u662F\u4E3B\u8981\u89E6\u53D1\u673A\u5236\u3002agent \u5929\u7136**\u6B20\u89E6\u53D1**\uFF0C\u8981\u7528\u300Cpushy\u300D\u63AA\u8F9E\u5BF9\u6297\u3002\n\n```yaml\ndescription: >\n [\u5B83\u505A\u4EC0\u4E48]\u3002Use when [\u5177\u4F53\u89E6\u53D1\u8BCD\u3001\u5173\u952E\u8BCD\u3001\u573A\u666F]\u3002\n```\n\n\u89C4\u5219\uFF1A\n\n- \u540C\u65F6\u5199\u300C\u505A\u4EC0\u4E48\u300D\u548C\u300C\u4F55\u65F6\u7528\u300D\uFF1B\u6240\u6709 when-to-use \u4FE1\u606F\u8FDB description\uFF0C\u4E0D\u8FDB\u6B63\u6587\n- \u89E6\u53D1\u8BCD\u8981\u5177\u4F53\uFF08\u6B63\u5F0F\u8BF4\u6CD5\u4E0E\u53E3\u8BED\u90FD\u8BF4\u4E0A\uFF09\uFF0C\u70B9\u540D\u6587\u4EF6\u7C7B\u578B\u3001\u5DE5\u5177\u6216\u573A\u666F\n- \u7528 pushy \u63AA\u8F9E\uFF08\u300CMake sure to use this skill whenever...\u300D\uFF09\n- \u8D1F\u5411\u8FB9\u754C\uFF08\u300C\u4E0D\u505A X\u300D\uFF09\u653E\u6B63\u6587 `## Boundaries`\uFF0C\u4E0D\u8981\u8FDB description\u2014\u2014description \u662F\u53D1\u73B0\u83DC\u5355\uFF0C\u6BCF\u4E2A\u5B57\u90FD\u8BE5\u5E2E agent \u5224\u65AD\u8981\u4E0D\u8981\u52A0\u8F7D\n- \u22641024 \u5B57\u7B26\uFF1B\u4E0D\u542B\u5C16\u62EC\u53F7 `<>`\n\n#### \u6B63\u6587\n\n- \u7528\u7948\u4F7F\u53E5\uFF08\u300C\u8BFB\u8FD9\u4E2A\u6587\u4EF6\u300D\u300C\u68C0\u67E5\u683C\u5F0F\u300D\uFF09\n- \u89E3\u91CA **why** \u800C\u4E0D\u53EA\u662F what\u2014\u2014agent \u591F\u806A\u660E\uFF0C\u80FD\u4ECE\u539F\u5219\u63A8\u7406\n- \u5B81\u8981\u77ED\u793A\u4F8B\uFF0C\u4E0D\u8981\u957F\u89E3\u91CA\n- \u5F15\u7528\u5176\u4ED6 skill \u7528\u53CD\u5F15\u53F7\u5305\u540D\u5B57\n- SKILL.md \u4FDD\u6301\u7CBE\u7B80\uFF0C\u771F\u6B63\u9700\u8981\u65F6\u624D\u62C6 `references/`\n- \u9009\u5B9A\u7ED3\u6784\u6A21\u5F0F\u540E\u5220\u6389\u6A21\u677F\u91CC\u7684\u7ED3\u6784\u6027 HTML \u6CE8\u91CA\n\n\u6BCF\u4E2A skill \u5FC5\u987B\u6709 `## Boundaries` \u4E00\u8282\uFF0C\u5217\u51FA\u5B83\u523B\u610F**\u4E0D**\u505A\u7684\u4E8B\u2014\u2014\u6CA1\u6709\u8FB9\u754C\u7684 skill \u4F1A\u9010\u6E10\u541E\u5E76\u76F8\u90BB\u4EFB\u52A1\u76F4\u5230\u4E0D\u53EF\u9760\uFF1B\u663E\u5F0F\u5217\u51FA\u4E0D\u5904\u7406\u4EC0\u4E48\uFF0C\u662F\u63D0\u5347\u89E6\u53D1\u51C6\u786E\u7387\u6700\u5FEB\u7684\u529E\u6CD5\u3002\n\n### Step 5: \u6821\u9A8C\n\n\u8DD1\u9879\u76EE\u81EA\u5E26\u6821\u9A8C\uFF08\u5982 bun-nolo \u7684 `bun scripts/skill/validate.ts <path>` \u6216 `--all`\uFF09\uFF1B\u6CA1\u6709\u5C31\u6309\u6B64\u6E05\u5355\u81EA\u67E5\uFF1ASKILL.md \u5B58\u5728\uFF1Bfrontmatter \u5408\u6CD5\uFF1B`name` \u662F kebab-case \u4E14 \u226464 \u5B57\u7B26\uFF1B`description` \u5B58\u5728\u3001\u65E0 `<>`\u3001\u22641024 \u5B57\u7B26\u3001\u65E0\u6B8B\u7559 TODO\uFF1B\u6709 `## Boundaries`\u3002\u5168\u8FC7\u624D\u7B97\u5B8C\u6210\u3002\n\n### Step 6: \u8FED\u4EE3\n\n\u7528\u300C\u63D0\u5347\u53EF\u9760\u6027\u5927\u4E8E\u589E\u52A0\u4E0A\u4E0B\u6587\u6210\u672C\u300D\u7684\u6700\u5C0F\u6539\u52A8\u3002\u5305\u66F4\u5927\u53EA\u5728\u8DEF\u7531\u3001\u6267\u884C\u6216\u6CBB\u7406\u660E\u663E\u66F4\u53EF\u9760\u65F6\u624D\u66F4\u4F18\u3002skill \u53CD\u590D\u4EA7\u51FA\u574F\u8F93\u51FA\u65F6\uFF0C\u6839\u56E0\u5F88\u5C11\u662F\u4E00\u6761\u574F\u6307\u4EE4\uFF0C\u901A\u5E38\u662F\u7ED3\u6784\u95EE\u9898\u3002\u52A0\u66F4\u591A\u6587\u5B57\u4E4B\u524D\u5148\u95EE\uFF1A\n\n1. \u8FD9\u4E2A skill **\u62E5\u6709**\u4EC0\u4E48\uFF1F\u8FB9\u754C\u6E05\u4E0D\u6E05\uFF1F\n2. \u4EC0\u4E48**\u53CD\u9988**\u8BF4\u660E\u5B83\u5728\u53D8\u597D\u8FD8\u662F\u5728\u6F02\u79FB\uFF1F\n3. \u54EA\u4E2A\u5931\u6548\u53EA\u6709**\u53CD\u590D\u4F7F\u7528**\u540E\u624D\u4F1A\u51FA\u73B0\uFF1F\n4. \u54EA\u5904\u662F**\u6700\u5C0F\u6539\u52A8\u3001\u6700\u5927\u8D28\u91CF\u6536\u76CA**\uFF1F\n\n## \u8DE8\u5E73\u53F0\u517C\u5BB9\n\nskill \u7CFB\u7EDF\u9075\u5FAA Agent Skills \u5F00\u653E\u6807\u51C6\uFF08Anthropic/OpenAI \u517C\u5BB9\uFF09\uFF1Afrontmatter \u7528 `name`\uFF08kebab-case\uFF0C\u226464 \u5B57\u7B26\uFF09+ `description`\uFF08\u5FC5\u586B\uFF0C\u65E0\u5C16\u62EC\u53F7\uFF09\uFF1B\u53EF\u9009\u5B57\u6BB5 `triggers`\u3001`assertions`\u3001`license`\u3001`metadata`\u3001`compatibility`\u3002\n\n```text\nskill-name/\n\u251C\u2500\u2500 SKILL.md (required)\n\u251C\u2500\u2500 agents/ (optional \u2014 platform-specific metadata)\n\u251C\u2500\u2500 references/ (optional \u2014 docs loaded on demand)\n\u251C\u2500\u2500 scripts/ (optional \u2014 executable code)\n\u2514\u2500\u2500 assets/ (optional \u2014 templates, images, fonts)\n```\n\n## Common Mistakes\n\n| Mistake | Fix |\n|---|---|\n| Description \u6CDB\u6CDB\uFF08\u300Chelps with X\u300D\uFF09 | \u8865\u5177\u4F53\u89E6\u53D1\u8BCD\u4E0E\u573A\u666F |\n| when-to-use \u5199\u5728\u6B63\u6587 | \u632A\u8FDB description |\n| Description \u542B\u5C16\u62EC\u53F7 | \u53BB\u6389 `<>`\uFF08\u7834\u574F XML \u89E3\u6790\uFF09 |\n| skill \u540D\u4E0E\u6CE8\u518C\u8868\u4E0D\u4E00\u81F4 | \u8DD1\u6821\u9A8C\u811A\u672C\u6293\u4E0D\u5339\u914D |\n| \u5EFA\u4E86\u6587\u4EF6\u5FD8\u4E86\u6CE8\u518C | \u7528\u811A\u624B\u67B6\u800C\u4E0D\u662F\u624B\u5EFA |\n| \u6CA1\u6709 Boundaries \u4E00\u8282 | \u81F3\u5C11\u5199\u4E00\u6761\u5B83\u4E0D\u505A\u4EC0\u4E48 |\n| \u6B63\u6587\u8FC7\u957F\uFF08>500 \u884C\uFF09 | \u62C6\u6210 SKILL.md + references/ |\n\n## Boundaries\n\n- \u53EA\u8BB2\u600E\u4E48\u5199 skill\uFF1B\u4E0D\u56DE\u7B54\u5177\u4F53\u4E1A\u52A1\u95EE\u9898\uFF0C\u4E5F\u4E0D\u66FF\u4EE3\u4EFB\u4F55\u5177\u4F53 skill \u672C\u8EAB\n- \u4E0D\u7BA1 agent \u7684\u521B\u5EFA\u4E0E\u751F\u547D\u5468\u671F\u2014\u2014\u90A3\u662F\u5185\u7F6E `agent-creator` \u7684\u804C\u8D23\n- \u4E0D\u4E3A\u4E86\u300C\u770B\u8D77\u6765\u4E13\u4E1A\u300D\u6269\u5199\u957F\u6587\uFF1B\u76EE\u6807\u59CB\u7EC8\u662F\u9AD8\u4FE1\u566A\u6BD4\u3001\u6613\u89E6\u53D1\u3001\u6613\u7EF4\u62A4",
1610
+ body: "# Skill Creator (Agent Skill \u7F16\u5199\u65B9\u6CD5\u8BBA)\n\n\u5199 skill \u662F\u7ED9 agent \u5199\u300C\u53EF\u88AB\u8DEF\u7531\u5230\u7684\u5DE5\u4F5C\u8BF4\u660E\u4E66\u300D\uFF0C\u4E0D\u662F\u7ED9\u4EBA\u770B\u7684\u6587\u6863\u3002\u672C skill \u53EA\u8BB2**\u600E\u4E48\u5199 skill**\uFF1B\u8BE5\u4E0D\u8BE5\u65B0\u5EFA\u4E00\u4E2A agent\u3001agent \u7684\u521B\u5EFA\u6D41\u7A0B\u5F52\u5185\u7F6E `agent-creator` \u7BA1\u3002\n\n## Core Principles\n\n### Concise is Key\n\n\u4E0A\u4E0B\u6587\u7A97\u53E3\u662F\u5171\u4EAB\u7684\uFF1Asystem prompt\u3001\u5BF9\u8BDD\u5386\u53F2\u3001\u5176\u4ED6 skill \u7684\u5143\u6570\u636E\u3001\u7528\u6237\u8BF7\u6C42\u90FD\u5728\u91CC\u9762\u3002**\u9ED8\u8BA4\u5047\u8BBE agent \u5DF2\u7ECF\u591F\u806A\u660E**\uFF0C\u53EA\u8865\u5B83\u6CA1\u6709\u7684\u4E0A\u4E0B\u6587\u3002\u6BCF\u53E5\u8BDD\u5148\u8FC7\u4E09\u95EE\uFF1A\u4E0D\u8BF4 agent \u80FD\u4E0D\u80FD\u81EA\u5DF1\u63A8\u51FA\u6765\uFF1F\u2192 \u5220\u3002\u522B\u7684 skill \u91CC\u6709\u6CA1\u6709\uFF1F\u2192 \u5F15\u7528\u5B83\u3002\u662F\u4E0D\u662F\u8BE6\u7EC6\u53C2\u8003\u8D44\u6599\uFF1F\u2192 \u653E `references/` \u6309\u9700\u52A0\u8F7D\u3002\u5B81\u8981\u77ED\u793A\u4F8B\uFF0C\u4E0D\u8981\u957F\u89E3\u91CA\u3002\n\n### Degree of Freedom\n\n\u628A\u8868\u8FF0\u7684\u4E25\u683C\u7A0B\u5EA6\u5339\u914D\u4EFB\u52A1\u7684\u8106\u5F31\u5EA6\uFF1A\n\n- **\u9AD8**\uFF08\u6587\u5B57\u8BF4\u660E\uFF09\u2014\u2014\u591A\u6761\u8DEF\u90FD\u901A\uFF0C\u51B3\u7B56\u4F9D\u8D56\u4E0A\u4E0B\u6587\n- **\u4E2D**\uFF08\u5E26\u53C2\u6570\u7684\u6A21\u677F\u811A\u672C\uFF09\u2014\u2014\u6709\u9996\u9009\u6A21\u5F0F\uFF0C\u5141\u8BB8\u5C11\u91CF\u53D8\u5316\n- **\u4F4E**\uFF08\u5199\u6B7B\u7684\u811A\u672C\u4E0E\u7ED3\u6784\uFF09\u2014\u2014\u64CD\u4F5C\u8106\u5F31\u3001\u4E00\u81F4\u6027\u5173\u952E\n\n### What to Not Include\n\nskill \u91CC\u53EA\u653E\u76F4\u63A5\u652F\u6491\u5B83\u804C\u80FD\u7684\u6587\u4EF6\u3002**\u7EDD\u4E0D\u521B\u5EFA** `README.md`\u3001`INSTALLATION_GUIDE.md`\u3001`CHANGELOG.md` \u6216\u4EFB\u4F55\u8BB2\u8FF0\u300C\u5B83\u662F\u600E\u4E48\u505A\u51FA\u6765\u7684\u300D\u7684\u9644\u5C5E\u6587\u6863\u3002skill \u662F\u7ED9 agent \u5E72\u6D3B\u7684\uFF0C\u4E0D\u662F\u7ED9\u4EBA\u8BFB\u5236\u4F5C\u8FC7\u7A0B\u7684\u3002\n\n## Skill Creation Process\n\n### Step 1: \u4E00\u53E5\u8BDD\u6D4B\u8BD5\n\n\u5148\u7528\u4E00\u53E5\u8BDD\u8BF4\u6E05\u8FD9\u4E2A skill \u5E72\u4EC0\u4E48\u3002\u8BF4\u4E0D\u6E05\u5C31\u505C\u4E0B\u91CD\u60F3\u3002\u300C\u5B83\u5E2E\u5FD9\u505A\u4EE3\u7801\u5BA1\u67E5\u300D\u592A\u6A21\u7CCA\uFF1B\u300C\u5B83\u5BA1\u67E5 TypeScript PR \u7684 bug\u3001\u98CE\u683C\u4E0E\u67B6\u6784\uFF0C\u5E76\u8FD4\u56DE\u5E26 severity \u7B49\u7EA7\u7684\u7ED3\u6784\u5316\u62A5\u544A\u300D\u5408\u683C\u3002\n\n#### 1b. \u8BCA\u65AD\u6A21\u7CCA\u9700\u6C42\n\n\u7528\u6237\u63CF\u8FF0\u7684\u662F\u75DB\u70B9\u800C\u4E0D\u662F skill \u8BF7\u6C42\uFF08\u300C\u6211\u6BCF\u6B21\u90FD\u5F97\u624B\u52A8\u68C0\u67E5 X\u300D\uFF09\u65F6\uFF0C\u5148\u8BCA\u65AD\u518D\u8981\u7ED3\u6784\uFF1A\n\n- \u8FD9\u4EF6\u4E8B\u6700\u9002\u5408\u7684\u662F skill\u3001\u811A\u672C\u3001\u6587\u6863\uFF0C\u8FD8\u662F\u505A\u4E00\u6B21\u5C31\u591F\uFF1F\n- \u82E5\u9002\u5408 skill\uFF0C\u6700\u8F7B\u7684\u5F62\u6001\u662F\u4EC0\u4E48\uFF1Aworkflow\u3001checklist\u3001reference\uFF0C\u8FD8\u662F\u5DE5\u5177\u5C01\u88C5\uFF1F\n- \u6700\u591A\u63A8\u8350\u4E24\u4E2A\u65B9\u5411\uFF0C\u8BF4\u6E05\u5404\u81EA\u9002\u914D\u70B9\u4E0E\u5C40\u9650\u3002\n\n#### 1c. \u95EE\u5BF9\u95EE\u9898\n\n\u52A8\u7B14\u524D\u628A\u6838\u5FC3\u95EE\u6E05\u695A\uFF0C**\u6BCF\u8F6E\u6700\u591A 2-3 \u4E2A\u95EE\u9898**\uFF0C\u4E0D\u8981\u5012\u51FA\u4E00\u5F20\u8868\u5355\u3002\u6838\u5FC3\u95EE\u9898\uFF1A(1) \u8FD9\u4E2A skill \u8981\u63A5\u7BA1\u54EA\u4EF6 recurring \u7684\u6D3B\uFF1F(2) \u522B\u4EBA\u4F1A\u5582\u7ED9\u5B83\u4EC0\u4E48\u771F\u5B9E\u8F93\u5165\uFF1F(3) \u5B83\u8BE5\u8FD4\u56DE\u4EC0\u4E48\u6210\u54C1\uFF1F(4) \u76F8\u90BB\u7684\u54EA\u4E9B\u8BF7\u6C42\u5B83\u8981\u660E\u786E\u62D2\u7EDD\uFF1F\n\n**\u987A\u5E8F\u6709\u8BB2\u7A76**\uFF1A\u5148\u95EE\u8FB9\u754C\uFF08\u300C\u5B83\u4E0D\u8BE5\u505A\u4EC0\u4E48\u300D\uFF09\uFF0C\u518D\u95EE\u4EA7\u51FA\uFF08\u300C\u6210\u529F\u957F\u4EC0\u4E48\u6837\u300D\uFF09\uFF0C\u6700\u540E\u624D\u95EE\u7ED3\u6784\uFF1B\u80FD\u4E00\u53E5\u8BDD\u8BF4\u6E05 skill \u65F6\u5C31\u505C\u6B62\u63D0\u95EE\u3002\n\n#### 1d. \u5BF9\u8BDD\u8BED\u6C14\n\n\u8BED\u6C14\u5339\u914D\u7528\u6237\u72B6\u6001\u800C\u4E0D\u662F\u6A21\u677F\uFF1A\u60F3\u6CD5\u6A21\u7CCA\u65F6\u5148\u5E76\u80A9\u628A\u5B83\u7406\u6E05\uFF0C\u76EE\u6807\u6E05\u6670\u65F6\u76F4\u63A5\u4E0A\u7ED3\u6784\uFF0C\u60F3\u5171\u521B\u5C31\u50CF\u5BF9\u7B49\u8BA8\u8BBA\u5E76\u4ECE\u5BF9\u8BDD\u91CC\u62A0\u8FB9\u754C\u3002\u7B2C\u4E00\u56DE\u590D\u6C38\u8FDC\u4E0D\u8981\u662F\u4E00\u5F20\u51B7\u51B0\u51B0\u7684\u8868\u5355\u95EE\u5377\uFF0C\u4E5F\u4E0D\u8981\u5728\u7406\u89E3\u771F\u5B9E\u804C\u8D23\u4E4B\u524D\u5C31\u7529\u4E00\u5957\u6A21\u677F\u3002\n\n### Step 2: \u89C4\u5212\u7ED3\u6784\n\n\u6309 skill \u6027\u8D28\u9009\u4E00\u79CD\u6A21\u5F0F\uFF1A\n\n**Workflow-based**\u2014\u2014\u6709\u6E05\u6670\u6B65\u9AA4\u7684\u987A\u5E8F\u6D41\u7A0B\uFF1A`## Overview \u2192 ## Workflow \u2192 ## Step 1 \u2192 ## Step 2 ...`\uFF0C\u9002\u5408\u90E8\u7F72\u3001\u53D1\u5E03\u3001\u6392\u9519\u6D41\u7A0B\u3002\n\n**Task-based**\u2014\u2014\u4E00\u7EC4\u76F8\u5173\u64CD\u4F5C\uFF1A`## Overview \u2192 ## Quick Start \u2192 ## Task A \u2192 ## Task B ...`\uFF0C\u9002\u5408 CLI \u53C2\u8003\u3001\u5DE5\u5177\u96C6\u3001API \u6307\u5357\u3002\n\n**Reference-based**\u2014\u2014\u6807\u51C6\u3001schema\u3001\u7B56\u7565\uFF1A`## Overview \u2192 ## Rules \u2192 ## Examples \u2192 ## Boundaries`\uFF0C\u9002\u5408\u4EE3\u7801\u5BA1\u67E5\u89C4\u8303\u3001\u54C1\u724C\u6807\u51C6\u3001\u67B6\u6784\u539F\u5219\u3002\n\n### Step 3: \u521D\u59CB\u5316\n\n\u5EFA\u76EE\u5F55 `<skill-name>/`\uFF0C\u5199 `SKILL.md`\uFF0CYAML frontmatter \u81F3\u5C11\u542B `name`\uFF08kebab-case\uFF09\u4E0E `description`\u3002\u9879\u76EE\u82E5\u81EA\u5E26\u811A\u624B\u67B6\uFF08\u5982 bun-nolo \u7684 `bun scripts/skill/init.ts <name>`\uFF09\u4F18\u5148\u7528\u5B83\uFF0C\u5426\u5219\u624B\u5199\u3002\n\n### Step 4: \u5199 SKILL.md\n\n#### Frontmatter\n\n**\u5148\u5199 `description`**\u2014\u2014\u5B83\u662F\u5E38\u9A7B\u53D1\u73B0\u83DC\u5355\u91CC agent \u51B3\u5B9A\u662F\u5426\u52A0\u8F7D\u7684\u552F\u4E00\u4F9D\u636E\uFF0C\u5199\u6E05\u300C\u6838\u5FC3\u7528\u9014 + \u5FC5\u8981\u533A\u5206\u6027\u89E6\u53D1\u8BCD\u300D\uFF0C\u907F\u514D\u7A77\u4E3E\u540C\u4E49\u8BCD\u3001\u5197\u957F\u5F3A\u5236\u89E6\u53D1\u5957\u8BDD\uFF08\u5982\u300CMake sure to use this skill whenever...\u300D\uFF09\u4EE5\u53CA\u5B9E\u73B0\u7EC6\u8282\u6216\u8E29\u5751\u7ECF\u9A8C\u3002\n\n```yaml\ndescription: >\n [\u6838\u5FC3\u7528\u9014]\u3002Use when [\u5173\u952E\u533A\u5206\u6027\u89E6\u53D1\u8BCD\u3001\u5173\u952E\u573A\u666F]\u3002\n```\n\n\u89C4\u5219\uFF1A\n\n- \u5199\u6E05\u6838\u5FC3\u7528\u9014\u4E0E\u5FC5\u8981\u533A\u5206\u6027\u89E6\u53D1\u8BCD\uFF1B\u8BE6\u7EC6\u89E6\u53D1\u573A\u666F\u3001\u6267\u884C\u6B65\u9AA4\u3001\u8E29\u5751\u4E0E\u5B9E\u73B0\u653E\u6B63\u6587\u6216 `references/`\uFF0C\u4E0D\u5806\u5165 description\n- \u89E6\u53D1\u8BCD\u8FFD\u6C42\u7CBE\u51C6\u533A\u5206\uFF08\u70B9\u540D\u5173\u952E\u6587\u4EF6\u7C7B\u578B\u3001\u4E13\u7528\u5DE5\u5177\u6216\u7279\u6709\u52A8\u4F5C\uFF09\uFF0C\u4E0D\u8981\u673A\u68B0\u7A77\u4E3E\u540C\u4E49\u8BCD\u6216\u5806\u780C\u300C\u65E0\u8BBA\u5982\u4F55\u5FC5\u987B\u89E6\u53D1\u300D\u7B49 pushy \u5957\u8BDD\n- \u957F\u5EA6\u8981\u6C42\uFF1A\u22641024 \u5B57\u7B26\u662F\u5F00\u653E\u6807\u51C6\u7684\u683C\u5F0F\u786C\u4E0A\u9650\u800C\u975E\u76EE\u6807\u957F\u5EA6\uFF1B\u5B9E\u9645\u5E94\u6309\u5BBF\u4E3B\u5C55\u793A\u9884\u7B97\u5199\uFF08\u5982 Nolo \u672C\u5730\u5E38\u9A7B\u53D1\u73B0\u76EE\u5F55\u622A\u65AD\u81F3 200 \u5B57\u7B26\uFF0C\u4E14\u591A skill \u65F6\u53EF\u80FD\u603B\u9884\u7B97\u6309\u6BD4\u4F8B\u538B\u7F29\uFF09\uFF0C\u6838\u5FC3\u7528\u9014\u4E0E\u5173\u952E\u89E6\u53D1\u8BCD\u5FC5\u987B\u524D\u7F6E\n- \u8D1F\u5411\u8FB9\u754C\uFF08\u300C\u4E0D\u505A X\u300D\uFF09\u653E\u6B63\u6587 `## Boundaries`\uFF0C\u4E0D\u8981\u8FDB description\u2014\u2014description \u662F\u53D1\u73B0\u83DC\u5355\uFF0C\u6BCF\u4E2A\u5B57\u90FD\u8BE5\u5E2E agent \u5224\u65AD\u8981\u4E0D\u8981\u52A0\u8F7D\n- \u4E0D\u542B\u5C16\u62EC\u53F7 `<>`\uFF08\u7834\u574F XML \u89E3\u6790\uFF09\n\n#### \u6B63\u6587\n\n- \u7528\u7948\u4F7F\u53E5\uFF08\u300C\u8BFB\u8FD9\u4E2A\u6587\u4EF6\u300D\u300C\u68C0\u67E5\u683C\u5F0F\u300D\uFF09\n- \u89E3\u91CA **why** \u800C\u4E0D\u53EA\u662F what\u2014\u2014agent \u591F\u806A\u660E\uFF0C\u80FD\u4ECE\u539F\u5219\u63A8\u7406\n- \u5B81\u8981\u77ED\u793A\u4F8B\uFF0C\u4E0D\u8981\u957F\u89E3\u91CA\n- \u5F15\u7528\u5176\u4ED6 skill \u7528\u53CD\u5F15\u53F7\u5305\u540D\u5B57\n- SKILL.md \u4FDD\u6301\u7CBE\u7B80\uFF0C\u771F\u6B63\u9700\u8981\u65F6\u624D\u62C6 `references/`\n- \u9009\u5B9A\u7ED3\u6784\u6A21\u5F0F\u540E\u5220\u6389\u6A21\u677F\u91CC\u7684\u7ED3\u6784\u6027 HTML \u6CE8\u91CA\n\n\u6BCF\u4E2A skill \u5FC5\u987B\u6709 `## Boundaries` \u4E00\u8282\uFF0C\u5217\u51FA\u5B83\u523B\u610F**\u4E0D**\u505A\u7684\u4E8B\u2014\u2014\u6CA1\u6709\u8FB9\u754C\u7684 skill \u4F1A\u9010\u6E10\u541E\u5E76\u76F8\u90BB\u4EFB\u52A1\u76F4\u5230\u4E0D\u53EF\u9760\uFF1B\u663E\u5F0F\u5217\u51FA\u4E0D\u5904\u7406\u4EC0\u4E48\uFF0C\u662F\u63D0\u5347\u89E6\u53D1\u51C6\u786E\u7387\u6700\u5FEB\u7684\u529E\u6CD5\u3002\n\n### Step 5: \u6821\u9A8C\n\n\u8DD1\u9879\u76EE\u81EA\u5E26\u6821\u9A8C\uFF08\u5982 bun-nolo \u7684 `bun scripts/skill/validate.ts <path>` \u6216 `--all`\uFF09\uFF1B\u6CA1\u6709\u5C31\u6309\u6B64\u6E05\u5355\u81EA\u67E5\uFF1ASKILL.md \u5B58\u5728\uFF1Bfrontmatter \u5408\u6CD5\uFF1B`name` \u662F kebab-case \u4E14 \u226464 \u5B57\u7B26\uFF1B`description` \u5B58\u5728\u3001\u65E0 `<>`\u3001\u22641024 \u5B57\u7B26\uFF08\u683C\u5F0F\u4E0A\u9650\uFF0C\u4E14\u6309\u5BBF\u4E3B\u9884\u7B97\u524D\u7F6E\u6838\u5FC3\u7528\u9014\u4E0E\u5173\u952E\u89E6\u53D1\u8BCD\uFF09\u3001\u65E0\u6B8B\u7559 TODO\uFF1B\u6709 `## Boundaries`\u3002\u6B64\u5916\uFF0C\u56DE\u8BFB\u5B9E\u9645\u53D1\u73B0\u76EE\u5F55\uFF08\u5982\u672C\u5730\u5355\u6761 200 \u5B57\u7B26\u4E0E\u603B\u9884\u7B97\u7F29\u77ED\u573A\u666F\uFF09\uFF0C\u68C0\u67E5\u622A\u65AD\u540E\u6838\u5FC3\u7528\u9014\u4E0E\u5173\u952E\u533A\u5206\u6027\u89E6\u53D1\u8BCD\u662F\u5426\u4F9D\u7136\u5B8C\u6574\u4FDD\u7559\u3002\u5168\u8FC7\u624D\u7B97\u5B8C\u6210\u3002\n\n### Step 6: \u8FED\u4EE3\n\n\u7528\u300C\u63D0\u5347\u53EF\u9760\u6027\u5927\u4E8E\u589E\u52A0\u4E0A\u4E0B\u6587\u6210\u672C\u300D\u7684\u6700\u5C0F\u6539\u52A8\u3002\u5305\u66F4\u5927\u53EA\u5728\u8DEF\u7531\u3001\u6267\u884C\u6216\u6CBB\u7406\u660E\u663E\u66F4\u53EF\u9760\u65F6\u624D\u66F4\u4F18\u3002skill \u53CD\u590D\u4EA7\u51FA\u574F\u8F93\u51FA\u65F6\uFF0C\u6839\u56E0\u5F88\u5C11\u662F\u4E00\u6761\u574F\u6307\u4EE4\uFF0C\u901A\u5E38\u662F\u7ED3\u6784\u95EE\u9898\u3002\u52A0\u66F4\u591A\u6587\u5B57\u4E4B\u524D\u5148\u95EE\uFF1A\n\n1. \u8FD9\u4E2A skill **\u62E5\u6709**\u4EC0\u4E48\uFF1F\u8FB9\u754C\u6E05\u4E0D\u6E05\uFF1F\n2. \u4EC0\u4E48**\u53CD\u9988**\u8BF4\u660E\u5B83\u5728\u53D8\u597D\u8FD8\u662F\u5728\u6F02\u79FB\uFF1F\n3. \u54EA\u4E2A\u5931\u6548\u53EA\u6709**\u53CD\u590D\u4F7F\u7528**\u540E\u624D\u4F1A\u51FA\u73B0\uFF1F\n4. \u54EA\u5904\u662F**\u6700\u5C0F\u6539\u52A8\u3001\u6700\u5927\u8D28\u91CF\u6536\u76CA**\uFF1F\n\n## \u8DE8\u5E73\u53F0\u517C\u5BB9\n\nskill \u7CFB\u7EDF\u9075\u5FAA Agent Skills \u5F00\u653E\u6807\u51C6\uFF08Anthropic/OpenAI \u517C\u5BB9\uFF09\uFF1Afrontmatter \u7528 `name`\uFF08kebab-case\uFF0C\u226464 \u5B57\u7B26\uFF09+ `description`\uFF08\u5FC5\u586B\uFF0C\u65E0\u5C16\u62EC\u53F7\uFF09\uFF1B\u53EF\u9009\u5B57\u6BB5 `triggers`\u3001`assertions`\u3001`license`\u3001`metadata`\u3001`compatibility`\u3002\n\n```text\nskill-name/\n\u251C\u2500\u2500 SKILL.md (required)\n\u251C\u2500\u2500 agents/ (optional \u2014 platform-specific metadata)\n\u251C\u2500\u2500 references/ (optional \u2014 docs loaded on demand)\n\u251C\u2500\u2500 scripts/ (optional \u2014 executable code)\n\u2514\u2500\u2500 assets/ (optional \u2014 templates, images, fonts)\n```\n\n## Common Mistakes\n\n| Mistake | Fix |\n|---|---|\n| Description \u6CDB\u6CDB\uFF08\u300Chelps with X\u300D\uFF09 | \u8865\u5177\u4F53\u89E6\u53D1\u8BCD\u4E0E\u573A\u666F |\n| when-to-use \u5168\u90E8\u5806\u8FDB\u6B63\u6587 | \u6838\u5FC3\u7528\u9014\u4E0E\u5173\u952E\u533A\u5206\u89E6\u53D1\u8BCD\u524D\u7F6E\u5165 description\uFF0C\u8BE6\u5C3D\u573A\u666F\u7559\u6B63\u6587 |\n| Description \u542B\u5C16\u62EC\u53F7 | \u53BB\u6389 `<>`\uFF08\u7834\u574F XML \u89E3\u6790\uFF09 |\n| skill \u540D\u4E0E\u6CE8\u518C\u8868\u4E0D\u4E00\u81F4 | \u8DD1\u6821\u9A8C\u811A\u672C\u6293\u4E0D\u5339\u914D |\n| \u5EFA\u4E86\u6587\u4EF6\u5FD8\u4E86\u6CE8\u518C | \u7528\u811A\u624B\u67B6\u800C\u4E0D\u662F\u624B\u5EFA |\n| \u6CA1\u6709 Boundaries \u4E00\u8282 | \u81F3\u5C11\u5199\u4E00\u6761\u5B83\u4E0D\u505A\u4EC0\u4E48 |\n| \u6B63\u6587\u8FC7\u957F\uFF08>500 \u884C\uFF09 | \u62C6\u6210 SKILL.md + references/ |\n\n## Boundaries\n\n- \u53EA\u8BB2\u600E\u4E48\u5199 skill\uFF1B\u4E0D\u56DE\u7B54\u5177\u4F53\u4E1A\u52A1\u95EE\u9898\uFF0C\u4E5F\u4E0D\u66FF\u4EE3\u4EFB\u4F55\u5177\u4F53 skill \u672C\u8EAB\n- \u4E0D\u7BA1 agent \u7684\u521B\u5EFA\u4E0E\u751F\u547D\u5468\u671F\u2014\u2014\u90A3\u662F\u5185\u7F6E `agent-creator` \u7684\u804C\u8D23\n- \u4E0D\u4E3A\u4E86\u300C\u770B\u8D77\u6765\u4E13\u4E1A\u300D\u6269\u5199\u957F\u6587\uFF1B\u76EE\u6807\u59CB\u7EC8\u662F\u9AD8\u4FE1\u566A\u6BD4\u3001\u6613\u89E6\u53D1\u3001\u6613\u7EF4\u62A4",
1611
1611
  skillConfig: buildSkillCreatorSkillConfig(slug)
1612
1612
  });
1613
1613
  }
@@ -1727,6 +1727,111 @@ Understand the behavior of \`--verify\`:
1727
1727
  });
1728
1728
  }
1729
1729
 
1730
+ // packages/ai/skills/androidAdbSkill.ts
1731
+ var ANDROID_ADB_SKILL_SLUGS = ["android-adb"];
1732
+ function deterministicId15(prefix, seed) {
1733
+ let h = 2166136261;
1734
+ for (let i = 0; i < seed.length; i++) {
1735
+ h ^= seed.charCodeAt(i);
1736
+ h = h * 16777619 >>> 0;
1737
+ }
1738
+ const suffix = h.toString(36).toUpperCase().padStart(14, "0");
1739
+ return (prefix + suffix).slice(0, 26);
1740
+ }
1741
+ function normalizeSkillSeed13(input) {
1742
+ return input.trim().toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, "-").replace(/^-+|-+$/g, "");
1743
+ }
1744
+ function buildAndroidAdbSkillId(slug) {
1745
+ return deterministicId15("01SK", normalizeSkillSeed13(slug) || slug);
1746
+ }
1747
+ function buildAndroidAdbSkillPageKey(userId, slug) {
1748
+ return `page-${userId}-${buildAndroidAdbSkillId(slug)}`;
1749
+ }
1750
+ function buildAndroidAdbSkillConfig(slug) {
1751
+ return {
1752
+ version: "0.1",
1753
+ kind: "skill",
1754
+ id: buildAndroidAdbSkillId(slug),
1755
+ name: "Android ADB \u8BBE\u5907\u8C03\u8BD5\u4E0E\u6D4B\u8BD5\uFF08android-adb\uFF09",
1756
+ triggerMode: "explicit",
1757
+ description: "Android ADB \u8BBE\u5907\u8FDE\u63A5\u3001\u754C\u9762\u8C03\u8BD5\u4E0E\u81EA\u52A8\u5316\u6D4B\u8BD5\u901A\u7528\u89C4\u8303\u3002\u89E6\u53D1\u8BCD\uFF1Aadb\u3001android-adb\u3001\u5B89\u5353\u8C03\u8BD5\u3001\u5B89\u5353\u6D4B\u8BD5\u3001uiautomator\u3001logcat\u3001\u771F\u673A\u8C03\u8BD5\u3002\u6CE8\u610F\uFF1A\u5FC5\u987B\u5177\u5907\u5BBF\u4E3B\u6267\u884C\u5668+ADB CLI+\u6388\u6743\u8BBE\u5907\uFF0C\u7F51\u9875\u7AEF\u542F\u7528\u6B64\u6280\u80FD\u4E0D\u7B49\u4E8E\u53EF\u63A7\u5236\u624B\u673A\u3002"
1758
+ };
1759
+ }
1760
+ var BODY3 = `# Android ADB \u8BBE\u5907\u8C03\u8BD5\u4E0E\u6D4B\u8BD5\u89C4\u8303 (android-adb)
1761
+
1762
+ \u901A\u7528 Android \u8BBE\u5907\u63A7\u5236\u3001\u4EA4\u4E92\u8C03\u8BD5\u4E0E\u81EA\u52A8\u5316\u6D4B\u8BD5\u6307\u5BFC\u89C4\u8303\u3002
1763
+
1764
+ ---
1765
+
1766
+ ## 1. \u8FD0\u884C\u524D\u63D0\u4E0E\u80FD\u529B\u8FB9\u754C
1767
+
1768
+ - **\u6267\u884C\u73AF\u5883\u8981\u6C42**\uFF1A\u672C\u89C4\u8303\u5FC5\u987B\u5728\u5177\u6709**\u5BBF\u4E3B\u6267\u884C\u5668\uFF08Local Runtime\uFF09**\u3001**ADB CLI \u5DE5\u5177**\u4EE5\u53CA**\u7269\u7406/\u7F51\u7EDC\u8FDE\u63A5\u4E14\u5DF2\u6388\u6743\u7684 Android \u8BBE\u5907**\u4E0B\u624D\u80FD\u751F\u6548\u3002
1769
+ - **\u73AF\u5883\u660E\u786E\u6027**\uFF1A\u5728\u7EAF Web \u7AEF\u6216\u65E0\u5BBF\u4E3B\u6267\u884C\u5668\u7684\u4F1A\u8BDD\u4E2D\u5F00\u542F\u672C Skill \u4EC5\u52A0\u8F7D\u64CD\u4F5C\u6307\u5F15\u4E0E\u5B89\u5168\u89C4\u8303\uFF0C**\u7F51\u9875\u542F\u7528\u4E0D\u7B49\u4E8E\u53EF\u4EE5\u63A7\u5236\u624B\u673A**\u3002\u82E5\u5F53\u524D\u6267\u884C\u73AF\u5883\u7F3A\u5C11\u5BBF\u4E3B\u6267\u884C\u5668\u6216 ADB\uFF0C\u5E94\u76F4\u63A5\u5982\u5B9E\u63D0\u793A\u73AF\u5883\u7F3A\u5931\uFF0C\u4E0D\u5F97\u5047\u88C5\u5DF2\u8FDE\u63A5\u8BBE\u5907\u3002
1770
+ - **\u4E0D\u6388\u4E88\u65B0\u5DE5\u5177**\uFF1A\u672C\u6280\u80FD\u672C\u8EAB\u4E0D\u9644\u52A0\u4E13\u7528\u63A7\u5236\u5DE5\u5177\uFF0C\u7EAF\u7CB9\u4F9D\u6258\u5DE5\u4F5C\u533A\u5DF2\u6388\u6743\u7684\u53D7\u9650\u547D\u4EE4\u6267\u884C\u73AF\u5883\uFF1B\u4E25\u7981\u7A81\u7834\u7CFB\u7EDF\u6C99\u76D2\u6743\u9650\u3002
1771
+
1772
+ ---
1773
+
1774
+ ## 2. \u6765\u6E90\u6807\u6CE8\u4E0E\u7B2C\u4E09\u65B9\u53C2\u8003
1775
+
1776
+ - **\u5B98\u65B9\u771F\u503C**\uFF1A[Android Debug Bridge (adb)](https://developer.android.com/tools/adb) \u5B98\u65B9\u6587\u6863\u3002
1777
+ - **\u6D41\u7A0B\u501F\u9274**\uFF1A[android-testing-skills (skydoves)](https://github.com/skydoves/android-testing-skills) \u2014\u2014 \u672C\u89C4\u8303\u4EC5\u501F\u9274\u5176\u6D4B\u8BD5\u4E0E\u6545\u969C\u8BCA\u65AD\u5DE5\u4F5C\u6D41\uFF0C\u5185\u5BB9\u4E3A\u72EC\u7ACB\u539F\u521B\u8868\u8FF0\uFF0C\u4E0D\u590D\u5236\u6574\u6587\u3002
1778
+ - **\u53EF\u9009\u53C2\u8003**\uFF1A[android-use (dayanruben)](https://github.com/dayanruben/android-use) \u2014\u2014 \u4EC5\u4F5C\u4E3A\u81EA\u52A8\u5316\u4EA4\u4E92\u601D\u8DEF\u7684\u53EF\u9009\u53C2\u8003\uFF0C**\u4E25\u7981\u81EA\u884C\u6216\u81EA\u52A8\u4E0B\u8F7D\u3001\u5B89\u88C5\u4EFB\u4F55\u7B2C\u4E09\u65B9 CLI \u6216\u811A\u672C**\u3002
1779
+
1780
+ ---
1781
+
1782
+ ## 3. \u8BBE\u5907\u8FDE\u63A5\u3001\u63A2\u9488\u4E0E\u7A33\u5B9A\u6027\u9A8C\u8BC1
1783
+
1784
+ 1. **\u5148\u9A8C\u7248\u672C\u4E0E\u53EF\u7528\u6027**\uFF1A\u5728\u6267\u884C\u4EFB\u4F55\u8BBE\u5907\u52A8\u4F5C\u524D\uFF0C\u5148\u8FD0\u884C \`adb version\` \u6216 \`adb help\` \u786E\u8BA4\u547D\u4EE4\u53EF\u7528\u3002
1785
+ 2. **\u591A\u8BBE\u5907\u663E\u5F0F\u6307\u5B9A Serial**\uFF1A\u5B58\u5728\u8BBE\u5907\u6216\u591A\u5B9E\u4F8B\u73AF\u5883\u65F6\uFF0C\u6240\u6709 adb \u547D\u4EE4\u5FC5\u987B\u663E\u5F0F\u5E26\u4E0A \`-s <serial>\`\uFF0C\u4E25\u7981\u53D1\u8D77\u65E0\u76EE\u6807\u7684\u5E7F\u64AD\u5F0F\u6216\u6B67\u4E49\u547D\u4EE4\u3002
1786
+ 3. **\u8FDE\u901A\u6027\u8D85\u65F6\u9A8C\u771F**\uFF1A\u5F53 \`adb devices\` \u663E\u793A\u8BBE\u5907\u5904\u4E8E \`device\` \u72B6\u6001\u540E\uFF0C\u5FC5\u987B\u4F7F\u7528\u5E26\u786C\u8D85\u65F6\u7684\u547D\u4EE4\u8FDB\u884C\u5B9E\u9645\u4EA4\u4E92\u9A8C\u771F\uFF08\u4F8B\u5982 \`timeout 5 adb -s <serial> shell echo __ready__\`\uFF09\uFF0C\u547D\u4EE4\u8FD4\u56DE\u4E14\u5305\u542B\u6807\u8BB0\u624D\u8BC1\u660E shell \u901A\u4FE1\u6B63\u5E38\u3002
1787
+ 4. **\u79BB\u7EBF\u5904\u7406\u539F\u5219**\uFF1A\u9047\u5230 \`offline\` \u6216 \`unauthorized\` \u72B6\u6001\u65F6\uFF0C\u5E94\u5F53\u5F15\u5BFC\u68C0\u67E5\u7269\u7406 USB \u8FDE\u63A5\u7EBF\u3001\u96C6\u7EBF\u5668/\u63A5\u53E3\u63A5\u89E6\u3001\u5F00\u53D1\u8005\u9009\u9879\u4EE5\u53CA\u8BBE\u5907\u7AEF\u6388\u6743\u5F39\u7A97\uFF0C**\u4E25\u7981\u53CD\u590D\u5237\u6388\u6743\u8BF7\u6C42\u6216\u76F2\u76EE\u5347\u7EA7/\u964D\u7EA7 ADB \u7248\u672C**\u3002
1788
+ 5. **\u670D\u52A1\u7A33\u5B9A\u6027\u4E0E\u5BC6\u94A5\u4FDD\u62A4**\uFF1A
1789
+ - **\u4E25\u7981\u5220\u9664 ADB \u5BC6\u94A5**\uFF1A\u7981\u6B62\u5220\u9664\u6216\u4FEE\u6539\u5BBF\u4E3B\u4E0A\u7684 \`~/.android/adbkey\` \u4E0E \`~/.android/adbkey.pub\`\u3002
1790
+ - **\u4E25\u7981\u64C5\u81EA kill-server**\uFF1A\u7981\u6B62\u81EA\u884C\u6267\u884C \`adb kill-server\`\uFF0C\u907F\u514D\u66B4\u529B\u6253\u65AD\u5BBF\u4E3B\u673A\u4E0A\u5176\u5B83\u6B63\u5728\u8FDB\u884C\u7684\u8C03\u8BD5\u3001\u7F16\u8BD1\u6216\u81EA\u52A8\u5316\u8FDB\u7A0B\u3002
1791
+
1792
+ ---
1793
+
1794
+ ## 4. UI \u6811\u68C0\u7D22\u3001\u5143\u7D20\u5B9A\u4F4D\u4E0E\u6E32\u67D3\u964D\u7EA7
1795
+
1796
+ 1. **UI \u6811\u62C9\u53D6\u4E0E\u6709\u6548\u6027\u9A8C\u8BC1**\uFF1A
1797
+ - \u63D0\u53D6\u754C\u9762\u5C42\u7EA7\u5FC5\u987B\u5148\u53D6\u56DE\u5BBF\u4E3B\u673A\u672C\u673A\u89E3\u6790\uFF1A\u4F7F\u7528 \`adb -s <serial> exec-out uiautomator dump /dev/tty\` \u6216\u62C9\u53D6\u5230\u4E34\u65F6\u6587\u4EF6\u3002
1798
+ - **\u4E25\u5B88\u8F93\u51FA\u6709\u6548\u6027**\uFF1A\u82E5\u8F93\u51FA\u5185\u5BB9\u4E3A\u7A7A\u3001\u65E0\u6709\u6548 XML \u7ED3\u6784\u6216\u8FD4\u56DE\u9519\u8BEF\uFF0C\u7EDD\u4E0D\u80FD\u5F53\u6210 dump \u6210\u529F\u3002\u5FC5\u987B\u68C0\u67E5\u5F53\u524D\u5E94\u7528\u662F\u5426\u5141\u8BB8 dump \u6216\u56DE\u9000\u91CD\u8BD5\u3002
1799
+ 2. **\u5B9A\u4F4D\u57FA\u51C6\u4E0E\u5750\u6807\u65B0\u9C9C\u6027**\uFF1A
1800
+ - \u4F18\u5148\u4F9D\u636E \`resource-id\`\u3001\`text\`\u3001\`content-desc\` \u7B49\u8BED\u4E49\u5C5E\u6027\u5B9A\u4F4D\u63A7\u4EF6\u3002
1801
+ - \u8BA1\u7B97\u5F97\u5230\u7684\u7EDD\u5BF9\u5750\u6807\u4EC5\u5728**\u5F53\u524D\u8FD9\u4E00\u5E27\u4E14\u754C\u9762\u672A\u6EDA\u52A8/\u672A\u53D8\u5316**\u65F6\u6709\u6548\uFF08\u5750\u6807\u5177\u6709\u77AC\u6001\u65B0\u9C9C\u6027\uFF09\u3002\u4E25\u7981\u8DE8\u5C4F\u3001\u8DE8\u52A8\u4F5C\u590D\u7528\u5386\u53F2\u5750\u6807\u3002
1802
+ 3. **Flutter / \u8DE8\u5E73\u53F0\u81EA\u5B9A\u4E49\u7ED8\u5236\u964D\u7EA7**\uFF1A
1803
+ - \u5F53\u9047\u5230 Flutter\u3001Compose \u6216\u81EA\u7ED8\u5F15\u64CE\u5BFC\u81F4\u65E0\u8BED\u4E49 Accessibility \u8282\u70B9\u3001\u65E0\u6CD5\u8BFB\u53D6\u6709\u6548 UI \u6811\u65F6\uFF0C**\u8BDA\u5B9E\u4F7F\u7528\u622A\u56FE\uFF08\`screencap\`\uFF09fallback \u964D\u7EA7**\uFF0C\u8F85\u52A9\u89C6\u89C9\u5224\u65AD\u3002
1804
+ - **\u4E25\u7981\u865A\u6784\u63A7\u4EF6\u5143\u7D20**\uFF0C\u4E0D\u5F97\u5728\u6CA1\u6709\u5143\u7D20\u652F\u6301\u7684\u60C5\u51B5\u4E0B\u634F\u9020\u4EA4\u4E92\u80FD\u529B\u3002
1805
+
1806
+ ---
1807
+
1808
+ ## 5. \u64CD\u4F5C\u56DE\u8BFB\u4E0E\u81EA\u52A8\u5316\u8282\u5236
1809
+
1810
+ 1. **\u4E00\u6B21\u64CD\u4F5C\u540E\u5FC5\u987B\u72B6\u6001\u56DE\u8BFB**\uFF1A\u4E0B\u53D1\u70B9\u51FB\u3001\u8F93\u5165\u3001\u6309\u952E\u6216\u6ED1\u52A8\u624B\u52BF\u540E\uFF0CADB shell \u547D\u4EE4\u8FD4\u56DE\u6210\u529F\u4EC5\u4EC5\u4EE3\u8868\u5185\u6838\u63A5\u6536\u4E86\u4E8B\u4EF6\uFF0C**\u4E0D\u7B49\u4E8E UI \u5DF2\u5B8C\u6210\u8FC7\u6E21\u6216\u8FBE\u5230\u7A33\u5B9A\u72B6\u6001**\u3002\u5FC5\u987B\u7B49\u5F85\u5E76\u56DE\u8BFB\u754C\u9762\u72B6\u6001\uFF08\u5982\u68C0\u67E5\u7126\u70B9 Activity\u3001\u91CD\u65B0 dump \u754C\u9762\u5173\u952E\u6587\u672C\u6216\u63A7\u4EF6\uFF09\u3002
1811
+ 2. **\u7981\u6B62\u76F2\u6253\u53E0\u547D\u4EE4**\uFF1A\u540C\u5C4F\u5177\u6709\u5148\u540E\u4F9D\u8D56\u7684\u64CD\u4F5C\uFF0C\u4E25\u7981\u672A\u7ECF\u9A8C\u8BC1\u5C31\u8FDE\u7EED\u53D1\u9001\u4E00\u957F\u4E32\u547D\u4EE4\u3002
1812
+ 3. **\u53EA\u8BFB\u64CD\u4F5C\u5408\u5E76**\uFF1A\u5BF9\u591A\u4E2A\u65E0\u4F9D\u8D56\u7684\u53EA\u8BFB\u67E5\u8BE2\uFF08\u5982\u67E5\u8BE2\u5206\u8FA8\u7387\u3001\u7535\u6C60\u3001\u7CFB\u7EDF\u5C5E\u6027\u3001\u524D\u53F0 Activity\uFF09\uFF0C\u5E94\u5F53\u5408\u5E76\u5355\u6B21\u8C03\u7528\u4EE5\u964D\u4F4E\u5F80\u8FD4\u5F00\u9500\u3002
1813
+
1814
+ ---
1815
+
1816
+ ## 6. \u5B89\u5168\u7EA2\u7EBF\u3001\u6570\u636E\u9690\u79C1\u4E0E\u6743\u9650\u4FDD\u62A4
1817
+
1818
+ 1. **\u547D\u4EE4\u9650\u65F6\u6709\u754C**\uFF1A\u6240\u6709 ADB shell \u547D\u4EE4\u5FC5\u987B\u8BBE\u5B9A\u8D85\u65F6\u4E0A\u9650\uFF08\u5982 \`timeout <seconds>\`\uFF09\uFF0C\u907F\u514D\u963B\u585E\u6302\u6B7B\u3002
1819
+ 2. **\u65E5\u5FD7\u8131\u654F\u4E0E\u5B9A\u5411\u8FC7\u6EE4**\uFF1A\u6293\u53D6 \`logcat\` \u65F6\u5FC5\u987B\u6309\u76EE\u6807\u5E94\u7528\u5305\u540D\uFF08package name\uFF09\u6216\u5B50\u8FDB\u7A0B PID \u5B9A\u5411\u8FC7\u6EE4\uFF08\u5982 \`logcat -d\` \u914D\u5408\u5305\u540D TAG\uFF09\uFF0C\u4E3B\u52A8\u8FC7\u6EE4\u5E76\u5C4F\u853D\u624B\u673A\u53F7\u3001\u9A8C\u8BC1\u7801\u3001Token\u3001\u5BC6\u7801\u53CA\u9690\u79C1\u51ED\u636E\u3002
1820
+ 3. **\u5C4F\u5E55\u4E0E\u6570\u636E\u6700\u5C0F\u5316**\uFF1A\u4EC5\u622A\u53D6\u4E0E\u5BFC\u51FA\u95EE\u9898\u8BCA\u65AD\u6240\u5FC5\u9700\u7684\u5C4F\u5E55\u5C40\u90E8\u6216\u65E5\u5FD7\u7247\u6BB5\uFF0C\u4E0D\u8FDB\u884C\u65E0\u610F\u4E49\u7684\u5168\u76D8\u5BFC\u51FA\u3002
1821
+ 4. **\u9AD8\u5371\u52A8\u4F5C\u4EBA\u5DE5\u786E\u8BA4\u95E8**\uFF1A\u51E1\u6D89\u53CA\u5E94\u7528\u5378\u8F7D\u3001\u6570\u636E\u6E05\u7A7A\uFF08\`pm clear\`\uFF09\u3001\u6587\u4EF6\u5220\u9664\uFF08\`rm\`\uFF09\u3001\u7CFB\u7EDF\u8BBE\u7F6E\u4FEE\u6539\u3001\u8F6C\u8D26\u652F\u4ED8\u3001\u77ED\u4FE1\u53D1\u9001\u7B49\u654F\u611F\u64CD\u4F5C\uFF0C\u5FC5\u987B\u4E25\u683C\u9075\u5FAA\u4E0A\u5C42\u786E\u8BA4\u95E8\uFF0C\u5411\u7528\u6237\u5C55\u793A\u5B8C\u6574\u6E05\u5355\u5E76\u83B7\u5F97\u660E\u786E\u540C\u610F\u540E\u65B9\u53EF\u8FDB\u884C\u3002
1822
+ 5. **\u6743\u9650\u4E0E\u51ED\u636E\u5E95\u7EBF**\uFF1A
1823
+ - \u4E25\u7981\u5C1D\u8BD5\u8BFB\u53D6\u5E94\u7528\u79C1\u6709\u79C1\u94A5\u3001KeyStore \u6216\u654F\u611F\u51ED\u636E\u3002
1824
+ - \u4E0D\u5229\u7528 ADB \u6F0F\u6D1E\u7A81\u7834\u7CFB\u7EDF\u6743\u9650\u8FB9\u754C\u3002
1825
+ - \u7981\u6B62\u5728\u547D\u4EE4\u884C\u53C2\u6570\u4E2D\u660E\u6587\u62FC\u63A5\u52A8\u6001\u79C1\u5BC6\u51ED\u636E\u3002
1826
+ - **\u4E25\u7981\u81EA\u52A8\u4E0B\u8F7D\u5E76\u6267\u884C\u4EFB\u4F55\u8FDC\u7A0B\u5916\u90E8\u811A\u672C**\u3002
1827
+ `;
1828
+ function buildAndroidAdbSkillContentBySlug(slug) {
1829
+ return buildSkillDocMarkdown({
1830
+ body: BODY3,
1831
+ skillConfig: buildAndroidAdbSkillConfig(slug)
1832
+ });
1833
+ }
1834
+
1730
1835
  // packages/ai/skills/builtinSkillRegistry.ts
1731
1836
  var codePlannerContentBySlug = /* @__PURE__ */ (() => {
1732
1837
  const cache = /* @__PURE__ */ new Map();
@@ -1847,6 +1952,13 @@ var SOURCES = [
1847
1952
  buildPageKey: buildAgentProviderSetupSkillPageKey,
1848
1953
  buildConfig: buildAgentProviderSetupSkillConfig,
1849
1954
  buildContent: buildAgentProviderSetupSkillContentBySlug
1955
+ },
1956
+ {
1957
+ slugs: ANDROID_ADB_SKILL_SLUGS,
1958
+ buildSkillId: buildAndroidAdbSkillId,
1959
+ buildPageKey: buildAndroidAdbSkillPageKey,
1960
+ buildConfig: buildAndroidAdbSkillConfig,
1961
+ buildContent: buildAndroidAdbSkillContentBySlug
1850
1962
  }
1851
1963
  ];
1852
1964
  var buildRegistry = () => {