-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path12.html
More file actions
276 lines (276 loc) · 17.2 KB
/
Copy path12.html
File metadata and controls
276 lines (276 loc) · 17.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
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
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="CodeClub - OpenCode 规则" />
<meta name="author" content="Jackson" />
<title>OpenCode 规则 - CodeClub</title>
<link rel="icon" type="image/x-icon" href="../../img/logo.png" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap"
rel="stylesheet"
/>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>
<link rel="stylesheet" href="../../css/main.css" />
<link rel="stylesheet" href="../../css/dark-mode.css" />
<link rel="stylesheet" href="../../css/mobile-optimizations.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/12.0.0/marked.min.js"></script>
<style>
.tutorial-page {
max-width: 1200px;
margin: 70px auto 40px;
padding: 0 20px;
display: flex;
gap: 20px;
}
.tutorial-sidebar {
width: 240px;
flex-shrink: 0;
position: sticky;
top: 70px;
max-height: calc(100vh - 90px);
overflow-y: auto;
background: var(--bg-secondary, #fff);
border-radius: 8px;
padding: 16px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.tutorial-sidebar h3 {
font-size: 15px;
margin: 0 0 12px;
color: var(--text-primary, #1a1a2e);
padding-bottom: 8px;
border-bottom: 2px solid var(--primary, #3b82f6);
}
.tutorial-sidebar a {
display: block;
padding: 5px 8px;
color: var(--text-secondary, #666);
text-decoration: none;
font-size: 13px;
border-radius: 4px;
line-height: 1.4;
}
.tutorial-sidebar a:hover {
background: var(--primary, #3b82f6);
color: #fff;
}
.tutorial-sidebar a.active {
background: var(--primary, #3b82f6);
color: #fff;
font-weight: 600;
}
.tutorial-main {
flex: 1;
min-width: 0;
}
.tutorial-article {
background: var(--bg-secondary, #fff);
border-radius: 8px;
padding: 32px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.tutorial-article h1 {
font-size: 26px;
margin-bottom: 16px;
color: var(--text-primary, #1a1a2e);
border-bottom: 2px solid var(--primary, #3b82f6);
padding-bottom: 12px;
}
.markdown-body {
font-size: 15px;
line-height: 1.8;
color: var(--text-secondary, #333);
}
.markdown-body h1 {
font-size: 24px;
border-bottom: 1px solid var(--border, #e5e7eb);
padding-bottom: 8px;
}
.markdown-body h2 {
font-size: 20px;
border-bottom: 1px solid var(--border, #e5e7eb);
padding-bottom: 6px;
}
.markdown-body h3 {
font-size: 17px;
}
.markdown-body pre {
background: #1e1e2e;
color: #cdd6f4;
padding: 16px;
border-radius: 8px;
overflow-x: auto;
}
.markdown-body code {
font-family: 'Fira Code', 'Cascadia Code', monospace;
font-size: 14px;
}
.markdown-body p code {
background: #f1f5f9;
padding: 2px 6px;
border-radius: 4px;
color: #e83e8c;
}
.markdown-body blockquote {
border-left: 4px solid var(--primary, #3b82f6);
padding: 12px 20px;
margin: 16px 0;
background: #f8fafc;
border-radius: 0 8px 8px 0;
}
.markdown-body img {
max-width: 100%;
border-radius: 8px;
}
.markdown-body table {
border-collapse: collapse;
width: 100%;
margin: 16px 0;
}
.markdown-body table th,
.markdown-body table td {
border: 1px solid var(--border, #e5e7eb);
padding: 8px 12px;
text-align: left;
}
.markdown-body table th {
background: var(--bg-primary, #f8fafc);
font-weight: 600;
}
.markdown-body table tr:nth-child(2n) {
background: var(--bg-primary, #f8fafc);
}
.markdown-body ul,
.markdown-body ol {
padding-left: 24px;
margin: 12px 0;
}
.markdown-body li {
margin: 4px 0;
}
.markdown-body hr {
border: none;
border-top: 1px solid var(--border, #e5e7eb);
margin: 24px 0;
}
.markdown-body a {
color: var(--primary, #3b82f6);
text-decoration: none;
}
.markdown-body a:hover {
text-decoration: underline;
}
.page-navigation {
display: flex;
justify-content: space-between;
margin-top: 24px;
padding-top: 16px;
border-top: 1px solid var(--border, #e5e7eb);
}
.page-nav-link {
color: var(--primary, #3b82f6);
text-decoration: none;
font-weight: 500;
font-size: 14px;
}
.page-nav-link:hover {
text-decoration: underline;
}
.source-link {
margin-top: 16px;
font-size: 13px;
color: var(--text-secondary, #999);
}
.source-link a {
color: var(--primary, #3b82f6);
}
@media (max-width: 768px) {
.tutorial-page {
flex-direction: column;
}
.tutorial-sidebar {
width: 100%;
position: static;
max-height: 200px;
}
}
</style>
</head>
<body>
<nav class="navbar">
<div class="navbar-container">
<a class="navbar-brand" href="../../index.html">
<img src="../../img/logo.png" alt="CodeClub" width="32" height="32" />
<span>CodeClub</span>
</a>
<button class="mobile-menu-toggle" aria-label="切换导航菜单"><span></span><span></span><span></span></button>
<ul class="navbar-nav">
<li><a class="nav-link" href="../../index.html">首页</a></li>
<li><a class="nav-link" href="../../nav.html">网址导航</a></li>
<li><a class="nav-link" href="../../blog/">博客</a></li>
<li><a class="nav-link" href="../../wiki/index.html" target="_blank">WiKi</a></li>
<li><a class="nav-link active" href="../index.html">教程</a></li>
<li><a class="nav-link" href="../../book.html">图书</a></li>
<li><a class="nav-link" href="../../contact.html">联系我</a></li>
<li><a class="nav-link" href="../../about.html">关于我</a></li>
</ul>
</div>
</nav>
<div class="tutorial-page">
<div class="tutorial-sidebar">
<h3>📖 OpenCode</h3>
<a href="0.html">OpenCode 教程</a>
<a href="1.html">OpenCode 简介</a>
<a href="2.html">OpenCode 安装</a>
<a href="3.html">OpenCode 配置</a>
<a href="4.html">OpenCode 第一次使用</a>
<a href="5.html">OpenCode VSCode</a>
<a href="6.html">OpenCode 终端界面</a>
<a href="7.html">OpenCode CLI 使用</a>
<a href="8.html">OpenCode Web 使用</a>
<a href="9.html">OpenCode GitHub</a>
<a href="10.html">OpenCode GitLab</a>
<a href="11.html">OpenCode 工具</a>
<a href="12.html" class="active">OpenCode 规则</a>
<a href="13.html">OpenCode 代理</a>
<a href="14.html">OpenCode 主题</a>
<a href="15.html">OpenCode 快捷键</a>
<a href="16.html">OpenCode 自定义命令</a>
<a href="17.html">OpenCode 格式化工具</a>
<a href="18.html">OpenCode 权限配置</a>
<a href="19.html">OpenCode LSP 服务器配置</a>
<a href="20.html">OpenCode MCP 服务器配置</a>
<a href="21.html">OpenCode Skills</a>
<a href="22.html">OpenCode 自定义工具</a>
</div>
<div class="tutorial-main">
<div class="tutorial-article">
<div class="markdown-body" id="md-content"></div>
<div class="page-navigation">
<a href="11.html" class="page-nav-link">← OpenCode 工具</a>
<a href="13.html" class="page-nav-link">OpenCode 代理 →</a>
</div>
<div class="source-link">原文来源:<a href="https://www.runoob.com" target="_blank">菜鸟教程</a></div>
</div>
</div>
</div>
<footer class="footer">
<div class="footer-content"><p>© 2024 CodeClub. All rights reserved.</p></div>
</footer>
<script src="../../js/dark-mode.js"></script>
<script src="../../js/mobile-menu.js"></script>
<script>
const md = `# OpenCode 规则(AGENTS.md)\n\n\n在 OpenCode 中,**规则(Rules)是控制 AI 行为的核心机制**。\n\n\n\n我们可以通过 \`AGENTS.md\` 文件,为 OpenCode 提供自定义指令,让它按照你的项目规范进行开发。\n\n\n\n\n工具决定 AI 能做什么,AGENTS.md 决定 AI 应该怎么做。\n\n\n\n\n**AGENTS.md = 给 AI 制定团队开发规范。**\n\n\n\n---\n\n\n\n## 一、什么是 AGENTS.md\n\n\n\`AGENTS.md\` 是一个规则文件,用于:\n\n\n\n\n\n\n- 定义项目结构\n\n- 约束代码风格\n\n- 规范开发流程\n\n- 指导 AI 如何执行任务\n\n\n\n这些内容会被加入到 LLM 的上下文中。\n\n\n\n**效果:**\n\n\n\n\n\n\n- AI 更懂你的项目\n\n- 生成的代码更符合规范\n\n- 减少反复修改\n\n\n\n\n---\n\n\n\n## 二、快速初始化\n\n\n在 OpenCode 中运行:\n\n\n\n\n\`\`\`\n\n/init\n\n\`\`\`\n\n\n该命令会:\n\n\n\n\n\n\n- 扫描你的项目结构\n\n- 分析代码组织方式\n\n- 自动生成 AGENTS.md\n\n\n\n**建议:**\n\n\n\n\n\n\n- 将 AGENTS.md 提交到 Git\n\n- 作为团队统一规范\n\n\n\n\n---\n\n\n\n## 三、示例结构\n\n\n\n\`\`\`\n\n# 项目说明\n\n这是一个基于 TypeScript 的 monorepo 项目。\n\n## 项目结构\n\n- packages/ 核心模块\n- infra/ 基础设施\n- web/ 前端应用\n\n## 代码规范\n\n- 使用 TypeScript 严格模式\n- 公共代码放在 packages/core\n- 所有函数必须添加注释\n\n## 开发约定\n\n- 使用 workspace 方式引用模块\n- API 必须统一错误处理\n\n\`\`\`\n\n\n本质:把团队规范"写给 AI 看"\n\n\n\n\n---\n\n\n\n## 四、规则的作用范围\n\n\n\n### 1、项目级规则\n\n\n路径:\n\n\n\n\n\`\`\`\n\n./AGENTS.md\n\n\`\`\`\n\n\n作用:\n\n\n\n\n\n\n- 仅当前项目生效\n\n- 团队共享\n\n\n\n\n\n### 2、全局规则\n\n\n路径:\n\n\n\n\n\`\`\`\n\n~/.config/opencode/AGENTS.md\n\n\`\`\`\n\n\n作用:\n\n\n\n\n\n\n- 对所有项目生效\n\n- 个人使用\n\n\n\n**建议用途:**\n\n\n\n\n\n\n- 个人编码习惯\n\n- 输出风格控制\n\n\n\n\n---\n\n\n\n## 五、Claude Code 兼容性\n\n\nOpenCode 兼容 Claude Code 的规则体系:\n\n\n\n\n\n\n- 项目规则:CLAUDE.md\n\n- 全局规则:~/.claude/CLAUDE.md\n\n- 技能目录:~/.claude/skills/\n\n\n\n如果不想使用,可以关闭:\n\n\n\n\n\`\`\`\n\nexport OPENCODE_DISABLE_CLAUDE_CODE=1\n\n\`\`\`\n\n\n\n---\n\n\n\n## 六、规则加载优先级(重要)\n\n\nOpenCode 启动时按以下顺序加载:\n\n\n\n\n\n\n- 当前目录向上查找 AGENTS.md\n\n- 如果没有 → 查找 CLAUDE.md\n\n- 全局规则 ~/.config/opencode/AGENTS.md\n\n- Claude 全局规则 ~/.claude/CLAUDE.md\n\n\n\n**关键点:**\n\n\n\n\n\n\n- AGENTS.md 优先级最高\n\n- 同级只会使用第一个匹配文件\n\n\n\n\n---\n\n\n\n## 七、扩展规则(instructions)\n\n\n可以在 \`opencode.json\` 中加载额外规则文件:\n\n\n\n\n\`\`\`\n\n{\n "instructions": [\n "CONTRIBUTING.md",\n "docs/guidelines.md",\n ".cursor/rules/*.md"\n ]\n}\n\n\`\`\`\n\n\n优点:\n\n\n\n\n\n\n- 复用已有文档\n\n- 避免重复维护\n\n\n\n\n\n### 支持远程规则\n\n\n\n\`\`\`\n\n{\n "instructions": [\n "https://raw.githubusercontent.com/xxx/rules/main/style.md"\n ]\n}\n\n\`\`\`\n\n\n**说明:**\n\n\n\n\n\n\n- 支持 URL 加载\n\n- 超时:5 秒\n\n\n\n\n---\n\n\n\n## 八、模块化规则(高级)\n\n\n\n### 推荐方式(使用 instructions)\n\n\n\n\`\`\`\n\n{\n "instructions": [\n "docs/dev.md",\n "test/rules.md",\n "packages/*/AGENTS.md"\n ]\n}\n\n\`\`\`\n\n\n适合:\n\n\n\n\n\n\n- monorepo\n\n- 大型项目\n\n\n\n\n\n### 方式二:在 AGENTS.md 中手动引用\n\n\n\n\`\`\`\n\n# 规则加载说明\n\n当遇到 @xxx 文件时,请使用 read 工具加载。\n\n- 不要一次性加载全部文件\n- 按需加载\n- 加载后必须遵守\n\n\`\`\`\n\n\n示例:\n\n\n\n\n\`\`\`\n\nTypeScript 规范:@docs/typescript.md\nReact 规范:@docs/react.md\nAPI 规范:@docs/api.md\n\n\`\`\`\n\n\n实现"按需加载规则"\n\n\n\n\n---\n\n\n\n## 九、最佳实践(重点)\n\n\n\n### 1、规则要具体\n\n\n❌ 不要写:\n\n\n\n\n\`\`\`\n\n代码要规范\n\n\`\`\`\n\n\n✅ 应该写:\n\n\n\n\n\`\`\`\n\n所有函数必须添加 JSDoc 注释\n\n\`\`\`\n\n\n\n\n### 2、规则要可执行\n\n\nAI 只能执行明确规则,而不是抽象描述。\n\n\n\n\n\n### 3、不要写太长\n\n\n建议:\n\n\n\n\n\n\n- 核心规则写在 AGENTS.md\n\n- 详细规则拆到 instructions 文件\n\n\n\n\n\n### 4、团队统一维护\n\n\n\n\n\n- 纳入 Git 管理\n\n- 作为开发规范的一部分\n\n\n \n \n \n \n \n\n \n \n [ OpenCode 代理(Agent)](http://www.runoob.com/opencode/opencode-agent.html)\n \n\n \n \n \n \n \n\n\n\n\n \n \n \n### 点我分享笔记\n\n \n \n \n \n \n \n [取消](https://www.runoob.comjavascript:;)\n\n\n \n \n \n \n \n \n\n\n 分享笔记\n \n \n \n \n \n \n\n 昵称昵称 (必填)\n 邮箱邮箱 (必填)\n 引用地址引用地址\n \n\n \n \n \n \n\n \n \n\n\n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n\n\n\n\n\n 在线实例\n\n\n ·[HTML 实例](https://www.runoob.com/html/html-examples.html)\n\n\n ·[CSS 实例](https://www.runoob.com/css/css-examples.html)\n\n\n ·[JavaScript 实例](https://www.runoob.com/js/js-examples.html)\n\n\n ·[Ajax 实例](https://www.runoob.com/ajx/ajax-examples.html)\n\n\n ·[jQuery 实例](https://www.runoob.com/jquery/jquery-examples.html)\n\n\n ·[XML 实例](https://www.runoob.com/xml/xml-examples.html)\n\n\n ·[Java 实例](https://www.runoob.com/java/java-examples.html)\n\n\n\n\n\n 字符集&工具\n\n\n · [HTML 字符集设置](https://www.runoob.com/charsets/html-charsets.html)\n\n\n · [HTML ASCII 字符集](https://www.runoob.com/tags/html-ascii.html)\n\n\n · [JS 混淆/加密](https://www.jyshare.com/front-end/6939/)\n\n\n · [PNG/JPEG 图片压缩](https://www.jyshare.com/front-end/6232/)\n\n\n · [HTML 拾色器](https://www.runoob.com/tags/html-colorpicker.html)\n\n\n · [JSON 格式化工具](https://www.jyshare.com/front-end/53)\n\n\n · [随机数生成器](https://www.jyshare.com/front-end/6680/)\n\n\n\n\n 最新更新\n\n\n ·\n [\n OpenCode 自定义... ](http://www.runoob.com/opencode/opencode-custom-tools.html)\n\n\n ·\n [\n OpenCode Skills ](http://www.runoob.com/opencode/opencode-skills.html)\n\n\n ·\n [\n OpenCode MCP 服... ](http://www.runoob.com/opencode/opencode-mcp.html)\n\n\n ·\n [\n OpenCode LSP 服... ](http://www.runoob.com/opencode/opencode-lsp.html)\n\n\n ·\n [\n OpenCode 权限配置 ](http://www.runoob.com/opencode/opencode-permissions.html)\n\n\n ·\n [\n OpenCode 格式化... ](http://www.runoob.com/opencode/opencode-formatter.html)\n\n\n ·\n [\n OpenCode 自定义... ](http://www.runoob.com/opencode/opencode-commands.html)\n\n\n\n\n 站点信息\n\n\n ·\n [意见反馈](https://www.runoob.commailto:admin@runoob.com)\n\n\n ·\n [免责声明](https://www.runoob.com/disclaimer)\n\n\n ·\n [关于我们](https://www.runoob.com/aboutus)\n\n\n ·\n [文章归档](https://www.runoob.com/archives)\n\n\n\n\n\n\n\n **关注微信**\n\n\n\n \n\n\n\n\n\n\n Copyright © 2013-2026 **[菜鸟教程](https://www.runoob.com//www.runoob.com/)** \n **[runoob.com](https://www.runoob.com//www.runoob.com/)** All Rights Reserved. 备案号:[闽ICP备15012807号-1](https://beian.miit.gov.cn/)\n\n\n\n [ ](https://www.runoob.comjavascript:void(0))\n [](https://www.runoob.comjavascript:void(0))\n [](https://www.runoob.comjavascript:void(0))\n\n\n\n#### 微信关注\n\n `;
document.getElementById('md-content').innerHTML = marked.parse(md);
</script>
</body>
</html>