@rotifer/playground 0.5.0-alpha.2 → 0.7.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 (320) hide show
  1. package/CHANGELOG.md +159 -15
  2. package/LICENSE +1 -1
  3. package/README.md +51 -23
  4. package/README.zh.md +54 -25
  5. package/dist/cloud/auth.d.ts +7 -1
  6. package/dist/cloud/auth.d.ts.map +1 -1
  7. package/dist/cloud/auth.js +65 -1
  8. package/dist/cloud/auth.js.map +1 -1
  9. package/dist/cloud/client.d.ts +4 -1
  10. package/dist/cloud/client.d.ts.map +1 -1
  11. package/dist/cloud/client.js +16 -3
  12. package/dist/cloud/client.js.map +1 -1
  13. package/dist/cloud/types.d.ts +6 -1
  14. package/dist/cloud/types.d.ts.map +1 -1
  15. package/dist/cloud/types.js.map +1 -1
  16. package/dist/commands/agent-create.d.ts.map +1 -1
  17. package/dist/commands/agent-create.js +66 -3
  18. package/dist/commands/agent-create.js.map +1 -1
  19. package/dist/commands/agent-run.d.ts.map +1 -1
  20. package/dist/commands/agent-run.js +296 -32
  21. package/dist/commands/agent-run.js.map +1 -1
  22. package/dist/commands/arena-list.js +8 -2
  23. package/dist/commands/arena-list.js.map +1 -1
  24. package/dist/commands/arena-submit.d.ts.map +1 -1
  25. package/dist/commands/arena-submit.js +45 -17
  26. package/dist/commands/arena-submit.js.map +1 -1
  27. package/dist/commands/arena-watch.js +8 -2
  28. package/dist/commands/arena-watch.js.map +1 -1
  29. package/dist/commands/compile.d.ts.map +1 -1
  30. package/dist/commands/compile.js +9 -3
  31. package/dist/commands/compile.js.map +1 -1
  32. package/dist/commands/init.d.ts.map +1 -1
  33. package/dist/commands/init.js +13 -3
  34. package/dist/commands/init.js.map +1 -1
  35. package/dist/commands/login.d.ts.map +1 -1
  36. package/dist/commands/login.js +23 -16
  37. package/dist/commands/login.js.map +1 -1
  38. package/dist/commands/network.js +4 -4
  39. package/dist/commands/network.js.map +1 -1
  40. package/dist/commands/publish.d.ts.map +1 -1
  41. package/dist/commands/publish.js +200 -44
  42. package/dist/commands/publish.js.map +1 -1
  43. package/dist/commands/test.d.ts.map +1 -1
  44. package/dist/commands/test.js +209 -23
  45. package/dist/commands/test.js.map +1 -1
  46. package/dist/commands/wrap.d.ts.map +1 -1
  47. package/dist/commands/wrap.js +17 -1
  48. package/dist/commands/wrap.js.map +1 -1
  49. package/dist/index.js +0 -0
  50. package/dist/runtime/network-gateway.d.ts +53 -0
  51. package/dist/runtime/network-gateway.d.ts.map +1 -0
  52. package/dist/runtime/network-gateway.js +147 -0
  53. package/dist/runtime/network-gateway.js.map +1 -0
  54. package/dist/utils/binding.d.ts +25 -0
  55. package/dist/utils/binding.d.ts.map +1 -1
  56. package/dist/utils/binding.js.map +1 -1
  57. package/dist/utils/open-browser.d.ts +10 -0
  58. package/dist/utils/open-browser.d.ts.map +1 -0
  59. package/dist/utils/open-browser.js +23 -0
  60. package/dist/utils/open-browser.js.map +1 -0
  61. package/genes/academic-writer/.cloud-manifest.json +6 -0
  62. package/genes/academic-writer/.gene-manifest.json +8 -0
  63. package/genes/academic-writer/SKILL.md +274 -0
  64. package/genes/academic-writer/phenotype.json +28 -0
  65. package/genes/ai-components/.cloud-manifest.json +6 -0
  66. package/genes/ai-components/.gene-manifest.json +8 -0
  67. package/genes/ai-components/SKILL.md +381 -0
  68. package/genes/ai-components/phenotype.json +28 -0
  69. package/genes/algorithmic-art/.cloud-manifest.json +6 -0
  70. package/genes/algorithmic-art/.gene-manifest.json +8 -0
  71. package/genes/algorithmic-art/SKILL.md +405 -0
  72. package/genes/algorithmic-art/phenotype.json +28 -0
  73. package/genes/answer-synthesizer/.cloud-manifest.json +6 -0
  74. package/genes/answer-synthesizer/index.ts +194 -0
  75. package/genes/answer-synthesizer/phenotype.json +61 -0
  76. package/genes/api-designer/.cloud-manifest.json +6 -0
  77. package/genes/api-designer/.gene-manifest.json +8 -0
  78. package/genes/api-designer/SKILL.md +456 -0
  79. package/genes/api-designer/phenotype.json +28 -0
  80. package/genes/auto-coder/.cloud-manifest.json +6 -0
  81. package/genes/auto-coder/.gene-manifest.json +8 -0
  82. package/genes/auto-coder/SKILL.md +400 -0
  83. package/genes/auto-coder/phenotype.json +28 -0
  84. package/genes/auto-writer/.cloud-manifest.json +6 -0
  85. package/genes/auto-writer/.gene-manifest.json +8 -0
  86. package/genes/auto-writer/SKILL.md +361 -0
  87. package/genes/auto-writer/phenotype.json +28 -0
  88. package/genes/brand-personality/.cloud-manifest.json +6 -0
  89. package/genes/brand-personality/.gene-manifest.json +8 -0
  90. package/genes/brand-personality/SKILL.md +549 -0
  91. package/genes/brand-personality/phenotype.json +28 -0
  92. package/genes/business-writer/.cloud-manifest.json +6 -0
  93. package/genes/business-writer/.gene-manifest.json +8 -0
  94. package/genes/business-writer/SKILL.md +448 -0
  95. package/genes/business-writer/phenotype.json +28 -0
  96. package/genes/citation-manager/.cloud-manifest.json +6 -0
  97. package/genes/citation-manager/.gene-manifest.json +8 -0
  98. package/genes/citation-manager/SKILL.md +279 -0
  99. package/genes/citation-manager/index.ts +162 -0
  100. package/genes/citation-manager/package.json +1 -0
  101. package/genes/citation-manager/phenotype.json +50 -0
  102. package/genes/code-complexity/.cloud-manifest.json +6 -0
  103. package/genes/code-complexity/README.md +35 -0
  104. package/genes/code-complexity/index.ts +101 -0
  105. package/genes/code-complexity/phenotype.json +34 -0
  106. package/genes/copywriter/.cloud-manifest.json +6 -0
  107. package/genes/copywriter/.gene-manifest.json +8 -0
  108. package/genes/copywriter/SKILL.md +329 -0
  109. package/genes/copywriter/phenotype.json +28 -0
  110. package/genes/creative-writer/.cloud-manifest.json +6 -0
  111. package/genes/creative-writer/.gene-manifest.json +8 -0
  112. package/genes/creative-writer/SKILL.md +356 -0
  113. package/genes/creative-writer/phenotype.json +28 -0
  114. package/genes/data-modeler/.cloud-manifest.json +6 -0
  115. package/genes/data-modeler/.gene-manifest.json +8 -0
  116. package/genes/data-modeler/SKILL.md +486 -0
  117. package/genes/data-modeler/phenotype.json +28 -0
  118. package/genes/debugger/.cloud-manifest.json +6 -0
  119. package/genes/debugger/.gene-manifest.json +8 -0
  120. package/genes/debugger/SKILL.md +416 -0
  121. package/genes/debugger/phenotype.json +28 -0
  122. package/genes/design-tokens/.cloud-manifest.json +6 -0
  123. package/genes/design-tokens/.gene-manifest.json +8 -0
  124. package/genes/design-tokens/SKILL.md +222 -0
  125. package/genes/design-tokens/index.ts +128 -0
  126. package/genes/design-tokens/package.json +1 -0
  127. package/genes/design-tokens/phenotype.json +1 -0
  128. package/genes/devops-automator/.cloud-manifest.json +6 -0
  129. package/genes/devops-automator/.gene-manifest.json +8 -0
  130. package/genes/devops-automator/SKILL.md +490 -0
  131. package/genes/devops-automator/phenotype.json +28 -0
  132. package/genes/doc-coauthoring/.cloud-manifest.json +6 -0
  133. package/genes/doc-coauthoring/.gene-manifest.json +8 -0
  134. package/genes/doc-coauthoring/SKILL.md +375 -0
  135. package/genes/doc-coauthoring/phenotype.json +28 -0
  136. package/genes/doc-retrieval/.cloud-manifest.json +6 -0
  137. package/genes/doc-retrieval/index.ts +134 -0
  138. package/genes/doc-retrieval/phenotype.json +54 -0
  139. package/genes/docs-writer/.cloud-manifest.json +6 -0
  140. package/genes/docs-writer/.gene-manifest.json +8 -0
  141. package/genes/docs-writer/SKILL.md +492 -0
  142. package/genes/docs-writer/phenotype.json +28 -0
  143. package/genes/evolve-life/.cloud-manifest.json +6 -0
  144. package/genes/evolve-life/.compile-result.json +12 -0
  145. package/genes/evolve-life/README.md +52 -0
  146. package/genes/evolve-life/gene.ir.wasm +0 -0
  147. package/genes/evolve-life/gene.wasm +0 -0
  148. package/genes/evolve-life/index.ts +255 -0
  149. package/genes/evolve-life/phenotype.json +129 -0
  150. package/genes/evolve-life-bitwise/.cloud-manifest.json +6 -0
  151. package/genes/evolve-life-bitwise/.compile-result.json +12 -0
  152. package/genes/evolve-life-bitwise/gene.ir.wasm +0 -0
  153. package/genes/evolve-life-bitwise/gene.wasm +0 -0
  154. package/genes/evolve-life-bitwise/index.ts +273 -0
  155. package/genes/evolve-life-bitwise/phenotype.json +129 -0
  156. package/genes/evolve-life-sparse/.cloud-manifest.json +6 -0
  157. package/genes/evolve-life-sparse/.compile-result.json +12 -0
  158. package/genes/evolve-life-sparse/gene.ir.wasm +0 -0
  159. package/genes/evolve-life-sparse/gene.wasm +0 -0
  160. package/genes/evolve-life-sparse/index.ts +236 -0
  161. package/genes/evolve-life-sparse/phenotype.json +129 -0
  162. package/genes/fact-checker/.cloud-manifest.json +6 -0
  163. package/genes/fact-checker/.gene-manifest.json +8 -0
  164. package/genes/fact-checker/SKILL.md +373 -0
  165. package/genes/fact-checker/phenotype.json +28 -0
  166. package/genes/genesis-code-format/.cloud-manifest.json +6 -0
  167. package/genes/genesis-code-format/package.json +1 -0
  168. package/genes/genesis-code-format/phenotype.json +1 -0
  169. package/genes/genesis-file-read/.cloud-manifest.json +6 -0
  170. package/genes/genesis-file-read/index.ts +11 -1
  171. package/genes/genesis-file-read/package.json +1 -0
  172. package/genes/genesis-file-read/phenotype.json +1 -0
  173. package/genes/genesis-l0-constraint/.cloud-manifest.json +6 -0
  174. package/genes/genesis-l0-constraint/package.json +1 -0
  175. package/genes/genesis-l0-constraint/phenotype.json +1 -0
  176. package/genes/genesis-web-search/.cloud-manifest.json +2 -2
  177. package/genes/genesis-web-search/package.json +1 -0
  178. package/genes/genesis-web-search/phenotype.json +1 -0
  179. package/genes/genesis-web-search-lite/.cloud-manifest.json +6 -0
  180. package/genes/genesis-web-search-lite/package.json +1 -0
  181. package/genes/genesis-web-search-lite/phenotype.json +1 -0
  182. package/genes/git-workflow/.cloud-manifest.json +6 -0
  183. package/genes/git-workflow/.gene-manifest.json +8 -0
  184. package/genes/git-workflow/SKILL.md +407 -0
  185. package/genes/git-workflow/phenotype.json +28 -0
  186. package/genes/grammar-checker/.cloud-manifest.json +6 -0
  187. package/genes/grammar-checker/.gene-manifest.json +8 -0
  188. package/genes/grammar-checker/SKILL.md +194 -0
  189. package/genes/grammar-checker/index.ts +168 -0
  190. package/genes/grammar-checker/package.json +1 -0
  191. package/genes/grammar-checker/phenotype.json +52 -0
  192. package/genes/json-validator/.cloud-manifest.json +6 -0
  193. package/genes/json-validator/README.md +42 -0
  194. package/genes/json-validator/index.ts +112 -0
  195. package/genes/json-validator/phenotype.json +42 -0
  196. package/genes/license-advisor/.cloud-manifest.json +6 -0
  197. package/genes/license-advisor/.gene-manifest.json +8 -0
  198. package/genes/license-advisor/SKILL.md +117 -0
  199. package/genes/license-advisor/phenotype.json +28 -0
  200. package/genes/logic-architect/.cloud-manifest.json +6 -0
  201. package/genes/logic-architect/.gene-manifest.json +8 -0
  202. package/genes/logic-architect/SKILL.md +451 -0
  203. package/genes/logic-architect/phenotype.json +28 -0
  204. package/genes/markdown-formatter/.cloud-manifest.json +6 -0
  205. package/genes/markdown-formatter/README.md +34 -0
  206. package/genes/markdown-formatter/index.ts +86 -0
  207. package/genes/markdown-formatter/phenotype.json +32 -0
  208. package/genes/orch/.cloud-manifest.json +6 -0
  209. package/genes/orch/.gene-manifest.json +8 -0
  210. package/genes/orch/SKILL.md +504 -0
  211. package/genes/orch/phenotype.json +28 -0
  212. package/genes/particle-barneshut/.cloud-manifest.json +6 -0
  213. package/genes/particle-barneshut/.compile-result.json +12 -0
  214. package/genes/particle-barneshut/README.md +55 -0
  215. package/genes/particle-barneshut/gene.ir.wasm +0 -0
  216. package/genes/particle-barneshut/gene.wasm +0 -0
  217. package/genes/particle-barneshut/index.ts +486 -0
  218. package/genes/particle-barneshut/phenotype.json +137 -0
  219. package/genes/particle-brute/.cloud-manifest.json +6 -0
  220. package/genes/particle-brute/.compile-result.json +12 -0
  221. package/genes/particle-brute/README.md +55 -0
  222. package/genes/particle-brute/gene.ir.wasm +0 -0
  223. package/genes/particle-brute/gene.wasm +0 -0
  224. package/genes/particle-brute/index.ts +277 -0
  225. package/genes/particle-brute/phenotype.json +137 -0
  226. package/genes/particle-spatial/.cloud-manifest.json +6 -0
  227. package/genes/particle-spatial/.compile-result.json +12 -0
  228. package/genes/particle-spatial/README.md +53 -0
  229. package/genes/particle-spatial/gene.ir.wasm +0 -0
  230. package/genes/particle-spatial/gene.wasm +0 -0
  231. package/genes/particle-spatial/index.ts +352 -0
  232. package/genes/particle-spatial/phenotype.json +137 -0
  233. package/genes/performance-optimizer/.cloud-manifest.json +6 -0
  234. package/genes/performance-optimizer/.gene-manifest.json +8 -0
  235. package/genes/performance-optimizer/SKILL.md +480 -0
  236. package/genes/performance-optimizer/phenotype.json +28 -0
  237. package/genes/plagiarism-checker/.cloud-manifest.json +6 -0
  238. package/genes/plagiarism-checker/.gene-manifest.json +8 -0
  239. package/genes/plagiarism-checker/SKILL.md +342 -0
  240. package/genes/plagiarism-checker/phenotype.json +28 -0
  241. package/genes/product-manager/.cloud-manifest.json +6 -0
  242. package/genes/product-manager/.gene-manifest.json +8 -0
  243. package/genes/product-manager/SKILL.md +249 -0
  244. package/genes/product-manager/phenotype.json +28 -0
  245. package/genes/project-reviewer/.cloud-manifest.json +6 -0
  246. package/genes/project-reviewer/.gene-manifest.json +8 -0
  247. package/genes/project-reviewer/SKILL.md +312 -0
  248. package/genes/project-reviewer/phenotype.json +28 -0
  249. package/genes/prompt-engineer/.cloud-manifest.json +6 -0
  250. package/genes/prompt-engineer/.gene-manifest.json +8 -0
  251. package/genes/prompt-engineer/SKILL.md +411 -0
  252. package/genes/prompt-engineer/phenotype.json +28 -0
  253. package/genes/readability-analyzer/.cloud-manifest.json +6 -0
  254. package/genes/readability-analyzer/.gene-manifest.json +8 -0
  255. package/genes/readability-analyzer/SKILL.md +357 -0
  256. package/genes/readability-analyzer/index.ts +123 -0
  257. package/genes/readability-analyzer/package.json +1 -0
  258. package/genes/readability-analyzer/phenotype.json +35 -0
  259. package/genes/rotifer-protocol/SKILL.md +121 -0
  260. package/genes/security-auditor/.cloud-manifest.json +6 -0
  261. package/genes/security-auditor/.gene-manifest.json +8 -0
  262. package/genes/security-auditor/SKILL.md +494 -0
  263. package/genes/security-auditor/phenotype.json +28 -0
  264. package/genes/seo-optimizer/.cloud-manifest.json +6 -0
  265. package/genes/seo-optimizer/.gene-manifest.json +8 -0
  266. package/genes/seo-optimizer/SKILL.md +327 -0
  267. package/genes/seo-optimizer/index.ts +206 -0
  268. package/genes/seo-optimizer/package.json +1 -0
  269. package/genes/seo-optimizer/phenotype.json +1 -0
  270. package/genes/source-linker/.cloud-manifest.json +6 -0
  271. package/genes/source-linker/index.ts +88 -0
  272. package/genes/source-linker/phenotype.json +45 -0
  273. package/genes/style-optimizer/.cloud-manifest.json +6 -0
  274. package/genes/style-optimizer/.gene-manifest.json +8 -0
  275. package/genes/style-optimizer/SKILL.md +285 -0
  276. package/genes/style-optimizer/phenotype.json +28 -0
  277. package/genes/tech-lead/.cloud-manifest.json +6 -0
  278. package/genes/tech-lead/.gene-manifest.json +8 -0
  279. package/genes/tech-lead/SKILL.md +451 -0
  280. package/genes/tech-lead/phenotype.json +28 -0
  281. package/genes/test-wrap/.cloud-manifest.json +6 -0
  282. package/genes/test-wrap/.gene-manifest.json +8 -0
  283. package/genes/test-wrap/phenotype.json +28 -0
  284. package/genes/testing-strategist/.cloud-manifest.json +6 -0
  285. package/genes/testing-strategist/.gene-manifest.json +8 -0
  286. package/genes/testing-strategist/SKILL.md +500 -0
  287. package/genes/testing-strategist/phenotype.json +28 -0
  288. package/genes/text-summarizer/.cloud-manifest.json +6 -0
  289. package/genes/text-summarizer/README.md +34 -0
  290. package/genes/text-summarizer/index.ts +122 -0
  291. package/genes/text-summarizer/phenotype.json +32 -0
  292. package/genes/tone-analyzer/.cloud-manifest.json +6 -0
  293. package/genes/tone-analyzer/.gene-manifest.json +8 -0
  294. package/genes/tone-analyzer/SKILL.md +410 -0
  295. package/genes/tone-analyzer/phenotype.json +28 -0
  296. package/genes/translator/.cloud-manifest.json +6 -0
  297. package/genes/translator/.gene-manifest.json +8 -0
  298. package/genes/translator/SKILL.md +355 -0
  299. package/genes/translator/phenotype.json +28 -0
  300. package/genes/ui-components/.cloud-manifest.json +6 -0
  301. package/genes/ui-components/.gene-manifest.json +8 -0
  302. package/genes/ui-components/SKILL.md +467 -0
  303. package/genes/ui-components/phenotype.json +28 -0
  304. package/genes/uiux-designer/.cloud-manifest.json +6 -0
  305. package/genes/uiux-designer/.gene-manifest.json +8 -0
  306. package/genes/uiux-designer/SKILL.md +353 -0
  307. package/genes/uiux-designer/phenotype.json +28 -0
  308. package/genes/url-extractor/.cloud-manifest.json +6 -0
  309. package/genes/url-extractor/README.md +37 -0
  310. package/genes/url-extractor/index.ts +86 -0
  311. package/genes/url-extractor/phenotype.json +48 -0
  312. package/genes/ux-patterns/.cloud-manifest.json +6 -0
  313. package/genes/ux-patterns/.gene-manifest.json +8 -0
  314. package/genes/ux-patterns/SKILL.md +872 -0
  315. package/genes/ux-patterns/phenotype.json +28 -0
  316. package/genes/web3-components/.cloud-manifest.json +6 -0
  317. package/genes/web3-components/.gene-manifest.json +8 -0
  318. package/genes/web3-components/SKILL.md +390 -0
  319. package/genes/web3-components/phenotype.json +28 -0
  320. package/package.json +6 -5
@@ -0,0 +1,274 @@
1
+ ---
2
+ name: academic-writer
3
+ description: Write academic papers, research reports, and scholarly content. Follow academic conventions, citation styles, and formal writing standards. Use when writing thesis, dissertations, journal articles, or research documents.
4
+ ---
5
+
6
+ # Academic Writer (学术写作师)
7
+
8
+ **Goal**: 撰写符合学术规范的论文、研究报告和学术内容。
9
+
10
+ ---
11
+
12
+ ## 1. 论文结构
13
+
14
+ ### 标准学术论文结构
15
+
16
+ ```markdown
17
+ 1. 标题 (Title)
18
+ - 简洁、准确、信息丰富
19
+ - 包含关键词
20
+ - 避免缩写(首次使用)
21
+
22
+ 2. 摘要 (Abstract)
23
+ - 200-300 字(中文)/ 150-250 词(英文)
24
+ - 包含:背景、目的、方法、结果、结论
25
+ - 独立成段,不分小节
26
+
27
+ 3. 关键词 (Keywords)
28
+ - 3-5 个
29
+ - 涵盖研究主题
30
+
31
+ 4. 引言 (Introduction)
32
+ - 研究背景
33
+ - 文献回顾
34
+ - 研究问题/假设
35
+ - 研究目的
36
+
37
+ 5. 方法 (Methodology)
38
+ - 研究设计
39
+ - 样本/数据
40
+ - 分析方法
41
+ - 可重复性
42
+
43
+ 6. 结果 (Results)
44
+ - 客观呈现数据
45
+ - 图表辅助
46
+ - 统计显著性
47
+
48
+ 7. 讨论 (Discussion)
49
+ - 结果解释
50
+ - 与现有研究比较
51
+ - 局限性
52
+ - 未来研究方向
53
+
54
+ 8. 结论 (Conclusion)
55
+ - 主要发现总结
56
+ - 研究贡献
57
+ - 实践意义
58
+
59
+ 9. 参考文献 (References)
60
+ - 按引用格式排列
61
+ ```
62
+
63
+ ---
64
+
65
+ ## 2. 引用格式
66
+
67
+ ### APA 格式 (第7版)
68
+
69
+ ```markdown
70
+ ## 期刊文章
71
+ Author, A. A., & Author, B. B. (Year). Title of article. Title of Periodical, volume(issue), page–page. https://doi.org/xxxxx
72
+
73
+ ## 书籍
74
+ Author, A. A. (Year). Title of work: Capital letter also for subtitle. Publisher.
75
+
76
+ ## 网页
77
+ Author, A. A. (Year, Month Day). Title of page. Site Name. URL
78
+
79
+ ## 文内引用
80
+ - 单作者: (Smith, 2020)
81
+ - 双作者: (Smith & Jones, 2020)
82
+ - 三作者及以上: (Smith et al., 2020)
83
+ ```
84
+
85
+ ### MLA 格式 (第9版)
86
+
87
+ ```markdown
88
+ ## 期刊文章
89
+ Last name, First name. "Title of Article." Journal Name, vol. #, no. #, Year, pp. #-#.
90
+
91
+ ## 书籍
92
+ Last name, First name. Title of Book. Publisher, Year.
93
+
94
+ ## 文内引用
95
+ - (Smith 45)
96
+ - (Smith and Jones 45)
97
+ ```
98
+
99
+ ### GB/T 7714 格式
100
+
101
+ ```markdown
102
+ ## 期刊文章
103
+ [序号] 作者. 题名[J]. 刊名, 年, 卷(期): 起止页码.
104
+
105
+ ## 书籍
106
+ [序号] 作者. 书名[M]. 出版地: 出版社, 年份.
107
+
108
+ ## 示例
109
+ [1] 张三, 李四. 人工智能研究进展[J]. 计算机学报, 2024, 47(3): 512-528.
110
+ ```
111
+
112
+ ---
113
+
114
+ ## 3. 学术语言规范
115
+
116
+ ### 应该使用
117
+
118
+ | 场景 | 推荐表达 |
119
+ |------|----------|
120
+ | 陈述发现 | 研究表明、结果显示、数据揭示 |
121
+ | 表达观点 | 可以认为、本研究认为 |
122
+ | 推测 | 可能、或许、似乎表明 |
123
+ | 比较 | 相比于、与...相比、区别于 |
124
+ | 结论 | 综上所述、基于上述分析 |
125
+
126
+ ### 应该避免
127
+
128
+ ```markdown
129
+ ❌ 我觉得、我认为(主观)
130
+ ❌ 很多、非常(模糊)
131
+ ❌ 口语化表达
132
+ ❌ 绝对化表述(一定、肯定)
133
+ ❌ 感叹句、疑问句过多
134
+ ```
135
+
136
+ ### 学术常用句型
137
+
138
+ ```markdown
139
+ ## 引言
140
+ - 近年来,...领域受到广泛关注
141
+ - 然而,现有研究存在...局限性
142
+ - 本研究旨在...
143
+
144
+ ## 方法
145
+ - 本研究采用...方法
146
+ - 数据来源于...
147
+ - 研究对象包括...
148
+
149
+ ## 结果
150
+ - 结果表明...
151
+ - 如表/图X所示...
152
+ - 数据显示...
153
+
154
+ ## 讨论
155
+ - 这一发现与...一致/不一致
156
+ - 可能的解释是...
157
+ - 值得注意的是...
158
+
159
+ ## 结论
160
+ - 综上所述,本研究发现...
161
+ - 本研究的贡献在于...
162
+ - 未来研究可以...
163
+ ```
164
+
165
+ ---
166
+
167
+ ## 4. 图表规范
168
+
169
+ ### 表格格式
170
+
171
+ ```markdown
172
+ 表 X. 表格标题(位于表格上方)
173
+
174
+ | 变量 | 均值 | 标准差 | p值 |
175
+ |------|------|--------|-----|
176
+ | A | 3.45 | 0.82 | <.001 |
177
+ | B | 2.89 | 0.91 | .023 |
178
+
179
+ 注:* p < .05, ** p < .01, *** p < .001
180
+ ```
181
+
182
+ ### 图片格式
183
+
184
+ ```markdown
185
+ [图片]
186
+
187
+ 图 X. 图片标题(位于图片下方)
188
+ 注:数据来源于...;N = 样本量
189
+ ```
190
+
191
+ ---
192
+
193
+ ## 5. 摘要写作模板
194
+
195
+ ### 中文摘要
196
+
197
+ ```markdown
198
+ [背景] 随着...的发展,...问题日益突出。
199
+ [目的] 本研究旨在探讨/分析/验证...
200
+ [方法] 采用...方法,对...进行研究。
201
+ [结果] 研究发现:(1)...;(2)...;(3)...
202
+ [结论] 研究表明...,对...具有重要意义。
203
+
204
+ 关键词:关键词1;关键词2;关键词3
205
+ ```
206
+
207
+ ### 英文摘要
208
+
209
+ ```markdown
210
+ [Background] With the development of..., ... has become increasingly important.
211
+ [Purpose] This study aims to investigate/examine/explore...
212
+ [Methods] Using ... approach, we analyzed...
213
+ [Results] The findings indicate that: (1)...; (2)...; (3)...
214
+ [Conclusion] The study suggests that..., which has implications for...
215
+
216
+ Keywords: keyword1; keyword2; keyword3
217
+ ```
218
+
219
+ ---
220
+
221
+ ## 6. 检查清单
222
+
223
+ ```markdown
224
+ ## Academic Writing Checklist
225
+
226
+ ### 结构
227
+ - [ ] 标题准确反映内容
228
+ - [ ] 摘要包含所有要素
229
+ - [ ] 各章节结构完整
230
+ - [ ] 逻辑流畅
231
+
232
+ ### 引用
233
+ - [ ] 引用格式统一
234
+ - [ ] 所有引用都有出处
235
+ - [ ] 参考文献列表完整
236
+ - [ ] 无格式错误
237
+
238
+ ### 语言
239
+ - [ ] 学术语气
240
+ - [ ] 客观表述
241
+ - [ ] 无口语化
242
+ - [ ] 术语准确
243
+
244
+ ### 规范
245
+ - [ ] 图表编号正确
246
+ - [ ] 图表标题完整
247
+ - [ ] 数据来源标注
248
+ - [ ] 页码格式正确
249
+ ```
250
+
251
+ ---
252
+
253
+ ## Quick Reference
254
+
255
+ ### 学术写作原则
256
+
257
+ ```markdown
258
+ 1. 客观性 - 避免主观判断
259
+ 2. 准确性 - 数据和引用准确
260
+ 3. 简洁性 - 避免冗余表达
261
+ 4. 逻辑性 - 论证严密
262
+ 5. 规范性 - 遵循格式要求
263
+ ```
264
+
265
+ ### 论文各部分字数参考(中文)
266
+
267
+ | 部分 | 占比 | 万字论文 |
268
+ |------|------|----------|
269
+ | 摘要 | 2-3% | 200-300字 |
270
+ | 引言 | 10-15% | 1000-1500字 |
271
+ | 方法 | 15-20% | 1500-2000字 |
272
+ | 结果 | 20-25% | 2000-2500字 |
273
+ | 讨论 | 25-30% | 2500-3000字 |
274
+ | 结论 | 5-10% | 500-1000字 |
@@ -0,0 +1,28 @@
1
+ {
2
+ "domain": "content.academic",
3
+ "description": "Write academic papers, research reports, and scholarly content. Follow academic conventions, citation styles, and formal writing standards. Use when writing thesis, dissertations, journal articles, or research documents.",
4
+ "inputSchema": {
5
+ "type": "object",
6
+ "properties": {
7
+ "prompt": {
8
+ "type": "string"
9
+ }
10
+ },
11
+ "required": []
12
+ },
13
+ "outputSchema": {
14
+ "type": "object",
15
+ "properties": {
16
+ "result": {
17
+ "type": "string"
18
+ }
19
+ }
20
+ },
21
+ "dependencies": [],
22
+ "version": "0.1.0",
23
+ "author": "rotifer-team",
24
+ "createdAt": 1771939390540,
25
+ "fidelity": "Wrapped",
26
+ "transparency": "Open",
27
+ "source": "skill"
28
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "cloud_id": "4c9836a9-2244-4505-b221-b45d4b47319b",
3
+ "owner": "Rotifer Protocol",
4
+ "version": "0.1.0",
5
+ "published_at": "2026-03-17T14:11:46.608Z"
6
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "geneId": "1c2b20e637c393486e300fcc73052ecc7dd16f0b09e2b2a42b06d5418ee8a785",
3
+ "name": "ai-components",
4
+ "domain": "ui.ai",
5
+ "fidelity": "Wrapped",
6
+ "wrappedAt": "2026-02-24T13:23:05.955Z",
7
+ "fromSkill": "../.cursor/skills/ai-components/SKILL.md"
8
+ }
@@ -0,0 +1,381 @@
1
+ ---
2
+ name: ai-components
3
+ description: AI 界面专项组件库,包含 Streaming 文本、聊天气泡、思考指示器、推理展示、Token 用量等。专为 AI 对话应用设计。当用户提到"聊天""Streaming""AI 界面""对话""打字效果""思考中"时使用。
4
+ ---
5
+
6
+ # AI Components (AI 界面组件库)
7
+
8
+ **定位**: AI 对话应用的专项 UI 组件。
9
+
10
+ **核心目标**: 打造流畅、专业的 AI 交互体验。
11
+
12
+ **设计规范**: 遵循 [design-tokens](../design-tokens/SKILL.md) 和 [ux-patterns](../ux-patterns/SKILL.md)。
13
+
14
+ ---
15
+
16
+ ## Streaming Text (打字机效果)
17
+
18
+ ### 基础流式文本
19
+
20
+ ```tsx
21
+ function StreamingText({ content }: { content: string }) {
22
+ return (
23
+ <p className="whitespace-pre-wrap">
24
+ {content}
25
+ <span className="inline-block w-2 h-4 ml-1 bg-current animate-pulse" />
26
+ </p>
27
+ )
28
+ }
29
+ ```
30
+
31
+ ### 带 Markdown 渲染
32
+
33
+ ```tsx
34
+ import ReactMarkdown from 'react-markdown'
35
+
36
+ function AIMessage({ content, isStreaming }: Props) {
37
+ return (
38
+ <div className="prose prose-sm max-w-none">
39
+ <ReactMarkdown>{content}</ReactMarkdown>
40
+ {isStreaming && (
41
+ <span className="inline-block w-2 h-4 bg-gray-400 animate-pulse" />
42
+ )}
43
+ </div>
44
+ )
45
+ }
46
+ ```
47
+
48
+ ---
49
+
50
+ ## Chat Bubble Layout (聊天气泡)
51
+
52
+ ```tsx
53
+ function ChatMessage({ role, content, isStreaming }: Message) {
54
+ const isUser = role === 'user'
55
+
56
+ return (
57
+ <div className={cn("flex gap-3 p-4", isUser && "flex-row-reverse")}>
58
+ {/* Avatar */}
59
+ <div className={cn(
60
+ "flex-shrink-0 w-8 h-8 rounded-full flex items-center justify-center",
61
+ isUser ? "bg-primary-500" : "bg-gray-100"
62
+ )}>
63
+ {isUser ? <UserIcon /> : <BotIcon />}
64
+ </div>
65
+
66
+ {/* Content */}
67
+ <div className={cn(
68
+ "max-w-[80%] rounded-2xl px-4 py-2",
69
+ isUser
70
+ ? "bg-primary-500 text-white rounded-br-md"
71
+ : "bg-gray-100 text-gray-900 rounded-bl-md"
72
+ )}>
73
+ <AIMessage content={content} isStreaming={isStreaming} />
74
+ </div>
75
+ </div>
76
+ )
77
+ }
78
+ ```
79
+
80
+ ---
81
+
82
+ ## Thinking Indicator (思考指示器)
83
+
84
+ ### 三点跳动
85
+
86
+ ```tsx
87
+ function ThinkingIndicator() {
88
+ return (
89
+ <div className="flex items-center gap-2 text-gray-500 text-sm">
90
+ <div className="flex gap-1">
91
+ <span className="w-2 h-2 bg-gray-400 rounded-full animate-bounce [animation-delay:-0.3s]" />
92
+ <span className="w-2 h-2 bg-gray-400 rounded-full animate-bounce [animation-delay:-0.15s]" />
93
+ <span className="w-2 h-2 bg-gray-400 rounded-full animate-bounce" />
94
+ </div>
95
+ <span>思考中...</span>
96
+ </div>
97
+ )
98
+ }
99
+ ```
100
+
101
+ ### 旋转加载
102
+
103
+ ```tsx
104
+ function ThinkingSpinner() {
105
+ return (
106
+ <div className="flex items-center gap-2 text-gray-500 text-sm">
107
+ <svg className="w-4 h-4 animate-spin" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
108
+ <path d="M21 12a9 9 0 1 1-6.219-8.56" />
109
+ </svg>
110
+ <span>正在分析...</span>
111
+ </div>
112
+ )
113
+ }
114
+ ```
115
+
116
+ ---
117
+
118
+ ## Reasoning Block (推理展示)
119
+
120
+ ```tsx
121
+ function ReasoningBlock({ reasoning, isExpanded, onToggle }: Props) {
122
+ return (
123
+ <div className="border border-gray-200 rounded-xl overflow-hidden">
124
+ <button
125
+ onClick={onToggle}
126
+ className="w-full flex items-center justify-between p-3 bg-gray-50 hover:bg-gray-100 transition-colors"
127
+ >
128
+ <span className="text-sm text-gray-600 flex items-center gap-2">
129
+ <BrainIcon className="w-4 h-4" />
130
+ 推理过程
131
+ </span>
132
+ <ChevronIcon className={cn(
133
+ "w-4 h-4 transition-transform duration-200",
134
+ isExpanded && "rotate-180"
135
+ )} />
136
+ </button>
137
+
138
+ <div className={cn(
139
+ "overflow-hidden transition-all duration-300",
140
+ isExpanded ? "max-h-96" : "max-h-0"
141
+ )}>
142
+ <pre className="p-3 text-xs text-gray-600 bg-gray-50 overflow-auto">
143
+ {reasoning}
144
+ </pre>
145
+ </div>
146
+ </div>
147
+ )
148
+ }
149
+ ```
150
+
151
+ ---
152
+
153
+ ## Token Usage Display (Token 用量)
154
+
155
+ ```tsx
156
+ function TokenUsage({ usage }: { usage: { total: number; limit: number } }) {
157
+ const percentage = (usage.total / usage.limit) * 100
158
+
159
+ return (
160
+ <div className="text-xs text-gray-500 space-y-1">
161
+ <div className="flex justify-between">
162
+ <span>Token 用量</span>
163
+ <span>{usage.total.toLocaleString()} / {usage.limit.toLocaleString()}</span>
164
+ </div>
165
+ <div className="h-1.5 bg-gray-200 rounded-full overflow-hidden">
166
+ <div
167
+ className={cn(
168
+ "h-full transition-all duration-300",
169
+ percentage > 90 ? "bg-error" :
170
+ percentage > 70 ? "bg-warning" : "bg-success"
171
+ )}
172
+ style={{ width: `${Math.min(percentage, 100)}%` }}
173
+ />
174
+ </div>
175
+ </div>
176
+ )
177
+ }
178
+ ```
179
+
180
+ ---
181
+
182
+ ## AI Error Card (错误提示)
183
+
184
+ ### 错误消息配置
185
+
186
+ ```tsx
187
+ const AI_ERROR_MESSAGES = {
188
+ RATE_LIMITED: {
189
+ title: "请求过于频繁",
190
+ description: "请稍后再试",
191
+ action: "等待后重试"
192
+ },
193
+ TOKEN_LIMIT: {
194
+ title: "对话过长",
195
+ description: "请开始新对话或清理历史记录",
196
+ action: "开始新对话"
197
+ },
198
+ TIMEOUT: {
199
+ title: "响应超时",
200
+ description: "AI 正在思考复杂问题,请重试",
201
+ action: "重新发送"
202
+ },
203
+ NETWORK: {
204
+ title: "网络连接失败",
205
+ description: "请检查网络后重试",
206
+ action: "重试"
207
+ }
208
+ }
209
+ ```
210
+
211
+ ### 错误卡片组件
212
+
213
+ ```tsx
214
+ function AIErrorCard({ error, onRetry }: Props) {
215
+ const msg = AI_ERROR_MESSAGES[error.code]
216
+ return (
217
+ <div className="rounded-xl border border-warning/30 bg-warning/10 p-4">
218
+ <h4 className="font-medium text-warning">{msg.title}</h4>
219
+ <p className="text-sm text-warning/80 mt-1">{msg.description}</p>
220
+ <button onClick={onRetry} className="mt-3 text-sm text-warning hover:underline">
221
+ {msg.action}
222
+ </button>
223
+ </div>
224
+ )
225
+ }
226
+ ```
227
+
228
+ ---
229
+
230
+ ## Chat Input (聊天输入框)
231
+
232
+ ```tsx
233
+ function ChatInput({ onSend, isLoading }: Props) {
234
+ const [message, setMessage] = useState('')
235
+
236
+ const handleSubmit = (e: FormEvent) => {
237
+ e.preventDefault()
238
+ if (message.trim() && !isLoading) {
239
+ onSend(message)
240
+ setMessage('')
241
+ }
242
+ }
243
+
244
+ return (
245
+ <form onSubmit={handleSubmit} className="relative">
246
+ <textarea
247
+ value={message}
248
+ onChange={(e) => setMessage(e.target.value)}
249
+ placeholder="输入消息..."
250
+ className="w-full px-4 py-3 pr-12 bg-gray-50 border border-gray-200 rounded-2xl
251
+ text-sm resize-none
252
+ focus:outline-none focus:ring-2 focus:ring-primary-500/20 focus:border-primary-500
253
+ transition-all duration-200"
254
+ rows={1}
255
+ onKeyDown={(e) => {
256
+ if (e.key === 'Enter' && !e.shiftKey) {
257
+ e.preventDefault()
258
+ handleSubmit(e)
259
+ }
260
+ }}
261
+ />
262
+ <button
263
+ type="submit"
264
+ disabled={!message.trim() || isLoading}
265
+ className="absolute right-2 bottom-2 p-2 rounded-xl
266
+ bg-primary-500 text-white
267
+ hover:bg-primary-600
268
+ disabled:opacity-50 disabled:cursor-not-allowed
269
+ transition-all duration-200"
270
+ >
271
+ {isLoading ? (
272
+ <svg className="w-5 h-5 animate-spin" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
273
+ <path d="M21 12a9 9 0 1 1-6.219-8.56" />
274
+ </svg>
275
+ ) : (
276
+ <svg className="w-5 h-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
277
+ <path d="M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z" />
278
+ </svg>
279
+ )}
280
+ </button>
281
+ </form>
282
+ )
283
+ }
284
+ ```
285
+
286
+ ---
287
+
288
+ ## Stop Generation Button (停止生成)
289
+
290
+ ```tsx
291
+ function StopButton({ onStop }: { onStop: () => void }) {
292
+ return (
293
+ <button
294
+ onClick={onStop}
295
+ className="px-4 py-2 flex items-center gap-2
296
+ bg-gray-100 text-gray-700 rounded-xl
297
+ hover:bg-gray-200 transition-colors"
298
+ >
299
+ <svg className="w-4 h-4" viewBox="0 0 24 24" fill="currentColor">
300
+ <rect x="6" y="6" width="12" height="12" rx="2" />
301
+ </svg>
302
+ <span className="text-sm font-medium">停止生成</span>
303
+ </button>
304
+ )
305
+ }
306
+ ```
307
+
308
+ ---
309
+
310
+ ## AI 场景文案规范
311
+
312
+ | 场景 | 文案 |
313
+ |------|------|
314
+ | AI 思考中 | "思考中..." / "正在分析..." |
315
+ | 生成完成 | "回复已生成" |
316
+ | Token 超限 | "对话过长,请开始新对话" |
317
+ | Rate limit | "请求过于频繁,请稍后再试" |
318
+ | 停止生成 | "停止生成" |
319
+ | 重新生成 | "重新生成" |
320
+ | 复制回复 | "复制" / "已复制" |
321
+ | 点赞/踩 | "有帮助" / "没帮助" |
322
+
323
+ ---
324
+
325
+ ## 推荐库
326
+
327
+ | 用途 | 推荐库 |
328
+ |------|--------|
329
+ | Markdown 渲染 | `react-markdown` |
330
+ | AI SDK | `ai` (Vercel AI SDK) |
331
+ | 代码高亮 | `react-syntax-highlighter` |
332
+ | 动画 | `framer-motion` |
333
+ | Toast | `sonner` |
334
+
335
+ ---
336
+
337
+ ## 完整聊天界面示例
338
+
339
+ ```tsx
340
+ function ChatInterface() {
341
+ const { messages, isLoading, send, stop } = useChat()
342
+
343
+ return (
344
+ <div className="flex flex-col h-screen">
345
+ {/* 消息列表 */}
346
+ <div className="flex-1 overflow-y-auto p-4 space-y-4">
347
+ {messages.map((msg) => (
348
+ <ChatMessage
349
+ key={msg.id}
350
+ role={msg.role}
351
+ content={msg.content}
352
+ isStreaming={msg.isStreaming}
353
+ />
354
+ ))}
355
+
356
+ {isLoading && !messages[messages.length - 1]?.isStreaming && (
357
+ <ThinkingIndicator />
358
+ )}
359
+ </div>
360
+
361
+ {/* 输入区 */}
362
+ <div className="p-4 border-t border-gray-100">
363
+ {isLoading ? (
364
+ <StopButton onStop={stop} />
365
+ ) : (
366
+ <ChatInput onSend={send} isLoading={isLoading} />
367
+ )}
368
+ </div>
369
+ </div>
370
+ )
371
+ }
372
+ ```
373
+
374
+ ---
375
+
376
+ ## 相关技能
377
+
378
+ - **design-tokens**: 设计令牌规范
379
+ - **ux-patterns**: 交互模式和文案规范
380
+ - **web3-components**: Web3 专项组件
381
+ - **uiux-designer**: 统一调度入口