docs: add research domains and resource registry

- add local external resources registry
- add research domain contract and per-repository research domains
- add raw fact snapshot governance and validation scripts

Validation:
- make test
- git diff --check HEAD~1..HEAD

Note:
- welcome workflow failed because its action input names are stale; core content CI passed.
This commit is contained in:
tradecatlabs
2026-07-03 08:20:22 +08:00
committed by GitHub
parent 2253a46935
commit a8099f52fe
254 changed files with 28589 additions and 165 deletions
@@ -0,0 +1,12 @@
# raw/ Agent 指南
本目录是 `Daotin/ai-coding` 的原始事实层。
## 维护规则
- 只保存从研究对象拉取的一手材料,不写分析判断。
- `repository/` 是本地 Git 工作树,刷新时由脚本 clone 或 fast-forward pull。
- 不手工改写 `*.raw.*` 文件内容;需要刷新时运行 `python3 scripts/fetch-research-raw.py`
- `sources.yml` 必须记录拉取时间、来源命令和每个文件的状态。
- 外部 README 原文必须保存为 `.txt`,避免本仓库 Markdown 链接检查误判。
- 分析、判断、采用建议和沉淀路径写回上一级 `README.md``analysis.md``decisions.md`
@@ -0,0 +1,16 @@
# raw 事实层
本目录保存 `Daotin/ai-coding` 的本地原始材料快照。
这里不写分析结论,只保存可复查的一手资料:
- `sources.yml`:来源清单、拉取时间、命令和文件状态。
- `repository/`Git 仓库工作树;本目录由 `.gitignore` 忽略,只作为本地研究材料。
- `github-repo.raw.json`GitHub 仓库元数据。
- `github-readme.raw.md.txt`GitHub README 原文快照。
- `github-license.raw.txt`GitHub license 原文快照;仓库无 license 时可能不存在。
- `github-root-contents.raw.json`:默认分支根目录内容快照。
- `github-languages.raw.json`GitHub language 统计快照。
- `github-latest-release.raw.json`:最新 release 快照;无 release 时可能不存在。
`repository/` 是外部源码快照,不参与本仓库 Markdown、链接、README/AGENTS 覆盖检查。原始 README 使用 `.txt` 后缀保存,避免其中的外部相对链接被本仓库 Markdown 链接检查误判。
@@ -0,0 +1 @@
{}
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2025 Daotin
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
@@ -0,0 +1,98 @@
# 📚 AI Coding
<!-- UPDATED_AT --> updated: 2026-01-02 21:43:22 <!-- UPDATED_AT -->
## 关于本仓库
一直以来,我对 AI Coding 充满热情和好奇。从最初的探索到如今的深度实践,这一年来,我持续学习各种 AI 辅助编程工具和方法论,并将它们应用到实际项目开发中。
本仓库汇集了我在 AI Coding 领域的:
- **方法论**:从 0 到 1 的实践经验和思考框架
- **实战案例**:真实项目中的 AI 应用场景
- **经验分享**:踩过的坑和总结的技巧
- **提示词技巧**:如何更高效地与 AI 协作
- **工具推荐**:实用的 AI 开发工具和工作流
希望这些内容能够帮助到同样对 AI Coding 感兴趣的朋友们,让我们一起探索 AI 赋能开发的无限可能!
<!-- ISSUES-LIST:START -->
<!-- 此列表由 GitHub Actions 自动生成,请勿手动修改 -->
## AI方法论
* [BMAD——基于Spec-kit理念的AI敏捷开发工作流](https://github.com/Daotin/ai-coding/issues/42) (2025-12-01)
* [AI赋能前端中后台开发](https://github.com/Daotin/ai-coding/issues/11) (2025-10-28)
* [AI Coding的正确范式](https://github.com/Daotin/ai-coding/issues/8) (2025-10-27)
* [AI Coding 维护现有项目](https://github.com/Daotin/ai-coding/issues/5) (2025-10-27)
* [AI Coding从0到1方法论](https://github.com/Daotin/ai-coding/issues/2) (2025-10-27)
## AI工具
* [OpenSkillsAI 编程助手的"Forge"](https://github.com/Daotin/ai-coding/issues/47) (2026-01-24)
* [一文搞懂MCP](https://github.com/Daotin/ai-coding/issues/41) (2025-11-07)
* [一文搞懂cursor](https://github.com/Daotin/ai-coding/issues/40) (2025-11-07)
* [自动化操作MCP](https://github.com/Daotin/ai-coding/issues/20) (2025-10-28)
* [Figma远程MCP](https://github.com/Daotin/ai-coding/issues/19) (2025-10-28)
* [Claude Code使用教程](https://github.com/Daotin/ai-coding/issues/18) (2025-10-28)
* [UI原型图+设计稿+Vibe Coding](https://github.com/Daotin/ai-coding/issues/17) (2025-10-28)
* [最佳AI开发工作流](https://github.com/Daotin/ai-coding/issues/16) (2025-10-28)
* [出海独立开发穷鬼全家桶](https://github.com/Daotin/ai-coding/issues/15) (2025-10-28)
* [UI原型图+设计稿](https://github.com/Daotin/ai-coding/issues/4) (2025-10-27)
## AI经验
* [AGENTS.md](https://github.com/Daotin/ai-coding/issues/44) (2025-12-15)
* [【转】AI Coding 实践技巧,告诉 AI 如何验证](https://github.com/Daotin/ai-coding/issues/38) (2025-11-03)
* [使用json样式设计文件,避免AI生成的页面有一股AI味儿。](https://github.com/Daotin/ai-coding/issues/28) (2025-10-28)
* [Vibe Coding 工作流LLM模型选择](https://github.com/Daotin/ai-coding/issues/27) (2025-10-28)
* [Codex使用技巧](https://github.com/Daotin/ai-coding/issues/26) (2025-10-28)
* [【摘录】AI Coding,其实很像做技术管理](https://github.com/Daotin/ai-coding/issues/9) (2025-10-28)
* [Andrej Karpathy 的 Vibe Coding 技巧](https://github.com/Daotin/ai-coding/issues/7) (2025-10-27)
* [cursor引入外部文档的方式](https://github.com/Daotin/ai-coding/issues/6) (2025-10-27)
## AI科普
* [MCP 和 Agent Skills 的核心区别](https://github.com/Daotin/ai-coding/issues/45) (2025-12-21)
## AI实战
* [Todo](https://github.com/Daotin/ai-coding/issues/36) (2025-10-29)
- [ ] AI+监控系统:监控大屏中,对于错误,增加 AI 修复建议
- [ ] AI+VSCode 插件:自研公司内部 vscode 插件,提效(生成自定义组件,echart,代码辅助等)
- [ ] AI+Agent(参考 [NC VSCode IDE](https://mp.weixin.qq.com/s/GwNnkuDvbDDLjp0MHtypQw)
- [ ] AI+自动化测试(参考 [使用 CodeX 调起 Chrome-devtools-mcp 做了其中一个关键场景走查](https://x.com/Stephen4171127/status/1972348138628464813)
* [小红书内容生成器(AI Agent)](https://github.com/Daotin/ai-coding/issues/14) (2025-10-28)
* [AI+游戏设计](https://github.com/Daotin/ai-coding/issues/13) (2025-10-28)
* [MCP原理解析及搭建私有组件库MCP](https://github.com/Daotin/ai-coding/issues/10) (2025-10-28)
* [自动删除 FG](https://github.com/Daotin/ai-coding/issues/1) (2025-10-27)
## AI思考
* [对于模糊的需求,可以让 AI 面试你,通过提问的形式一步步形成 SPEC 文档,然后使用该 SPEC 完成需求开发](https://github.com/Daotin/ai-coding/issues/46) (2026-01-02)
* [AI时代,资深工程师的价值在哪里?](https://github.com/Daotin/ai-coding/issues/39) (2025-11-05)
## AI提示词
* [使用json样式设计文件,避免AI生成的页面有一股AI味儿。](https://github.com/Daotin/ai-coding/issues/28) (2025-10-28)
* [AI洞察](https://github.com/Daotin/ai-coding/issues/25) (2025-10-28)
* [递归法写Prompt](https://github.com/Daotin/ai-coding/issues/24) (2025-10-28)
* [【摘录】为什么我用了那么多提示词模板甚至用了 AI 帮忙还是写不好提示词?](https://github.com/Daotin/ai-coding/issues/23) (2025-10-28)
* [AI+landing page](https://github.com/Daotin/ai-coding/issues/22) (2025-10-28)
* [AI+PPT](https://github.com/Daotin/ai-coding/issues/21) (2025-10-28)
* [AI设计网页svg](https://github.com/Daotin/ai-coding/issues/12) (2025-10-28)
* [APP设计稿](https://github.com/Daotin/ai-coding/issues/3) (2025-10-27)
## MCP
* [Todo](https://github.com/Daotin/ai-coding/issues/37) (2025-10-29)
- [ ] Story MCP:如果你们有 tapd 之类的需求平台,甚至可以自己实现一个 mcp 来让他拉取相对应项目的需求,基于 tapd 上的 story 在本地创建一个 story,做具体的任务拆解,分块完成。
- [ ] Story MCP:通过自己开发的 Jira MCP,连接到自己公司的 Jira 服务器,自动获取 bug,自动修复,自动 run dev 验证,自动 commit。
- [ ] API MCP:连接后端数据库,做前端 mock 代码生成
* [自动化操作MCP](https://github.com/Daotin/ai-coding/issues/20) (2025-10-28)
* [MCP原理解析及搭建私有组件库MCP](https://github.com/Daotin/ai-coding/issues/10) (2025-10-28)
<!-- ISSUES-LIST:END -->
# License
[MIT License](./LICENSE)
@@ -0,0 +1,28 @@
{
"createdAt": "2025-10-27T08:40:02Z",
"defaultBranchRef": {
"name": "main"
},
"description": "AI Coding 方法论,经验分享汇总",
"forkCount": 6,
"homepageUrl": "",
"isArchived": false,
"isFork": false,
"isMirror": false,
"latestRelease": null,
"licenseInfo": {
"key": "mit",
"name": "MIT License",
"nickname": ""
},
"nameWithOwner": "Daotin/ai-coding",
"primaryLanguage": null,
"pushedAt": "2026-01-24T13:27:57Z",
"repositoryTopics": null,
"stargazerCount": 65,
"updatedAt": "2026-07-02T10:34:32Z",
"url": "https://github.com/Daotin/ai-coding",
"watchers": {
"totalCount": 0
}
}
@@ -0,0 +1,114 @@
[
{
"name": ".github",
"path": ".github",
"sha": "f3e1f80647a43b2ea3d05c74627e644fbb66a5a8",
"size": 0,
"url": "https://api.github.com/repos/Daotin/ai-coding/contents/.github?ref=main",
"html_url": "https://github.com/Daotin/ai-coding/tree/main/.github",
"git_url": "https://api.github.com/repos/Daotin/ai-coding/git/trees/f3e1f80647a43b2ea3d05c74627e644fbb66a5a8",
"download_url": null,
"type": "dir",
"_links": {
"self": "https://api.github.com/repos/Daotin/ai-coding/contents/.github?ref=main",
"git": "https://api.github.com/repos/Daotin/ai-coding/git/trees/f3e1f80647a43b2ea3d05c74627e644fbb66a5a8",
"html": "https://github.com/Daotin/ai-coding/tree/main/.github"
}
},
{
"name": ".gitignore",
"path": ".gitignore",
"sha": "832bf5731fff19fbd187b82227368466820f9015",
"size": 290,
"url": "https://api.github.com/repos/Daotin/ai-coding/contents/.gitignore?ref=main",
"html_url": "https://github.com/Daotin/ai-coding/blob/main/.gitignore",
"git_url": "https://api.github.com/repos/Daotin/ai-coding/git/blobs/832bf5731fff19fbd187b82227368466820f9015",
"download_url": "https://raw.githubusercontent.com/Daotin/ai-coding/main/.gitignore",
"type": "file",
"_links": {
"self": "https://api.github.com/repos/Daotin/ai-coding/contents/.gitignore?ref=main",
"git": "https://api.github.com/repos/Daotin/ai-coding/git/blobs/832bf5731fff19fbd187b82227368466820f9015",
"html": "https://github.com/Daotin/ai-coding/blob/main/.gitignore"
}
},
{
"name": "BACKUP",
"path": "BACKUP",
"sha": "a6d6e7c090616bae27f3be223b6edb586359489d",
"size": 0,
"url": "https://api.github.com/repos/Daotin/ai-coding/contents/BACKUP?ref=main",
"html_url": "https://github.com/Daotin/ai-coding/tree/main/BACKUP",
"git_url": "https://api.github.com/repos/Daotin/ai-coding/git/trees/a6d6e7c090616bae27f3be223b6edb586359489d",
"download_url": null,
"type": "dir",
"_links": {
"self": "https://api.github.com/repos/Daotin/ai-coding/contents/BACKUP?ref=main",
"git": "https://api.github.com/repos/Daotin/ai-coding/git/trees/a6d6e7c090616bae27f3be223b6edb586359489d",
"html": "https://github.com/Daotin/ai-coding/tree/main/BACKUP"
}
},
{
"name": "LICENSE",
"path": "LICENSE",
"sha": "c8d4aa9f1a25f65281532f55a3d16b444c7263f8",
"size": 1063,
"url": "https://api.github.com/repos/Daotin/ai-coding/contents/LICENSE?ref=main",
"html_url": "https://github.com/Daotin/ai-coding/blob/main/LICENSE",
"git_url": "https://api.github.com/repos/Daotin/ai-coding/git/blobs/c8d4aa9f1a25f65281532f55a3d16b444c7263f8",
"download_url": "https://raw.githubusercontent.com/Daotin/ai-coding/main/LICENSE",
"type": "file",
"_links": {
"self": "https://api.github.com/repos/Daotin/ai-coding/contents/LICENSE?ref=main",
"git": "https://api.github.com/repos/Daotin/ai-coding/git/blobs/c8d4aa9f1a25f65281532f55a3d16b444c7263f8",
"html": "https://github.com/Daotin/ai-coding/blob/main/LICENSE"
}
},
{
"name": "README.md",
"path": "README.md",
"sha": "f0b7abe6849f9d1da9d7e25ac914798a9a8e52c1",
"size": 6109,
"url": "https://api.github.com/repos/Daotin/ai-coding/contents/README.md?ref=main",
"html_url": "https://github.com/Daotin/ai-coding/blob/main/README.md",
"git_url": "https://api.github.com/repos/Daotin/ai-coding/git/blobs/f0b7abe6849f9d1da9d7e25ac914798a9a8e52c1",
"download_url": "https://raw.githubusercontent.com/Daotin/ai-coding/main/README.md",
"type": "file",
"_links": {
"self": "https://api.github.com/repos/Daotin/ai-coding/contents/README.md?ref=main",
"git": "https://api.github.com/repos/Daotin/ai-coding/git/blobs/f0b7abe6849f9d1da9d7e25ac914798a9a8e52c1",
"html": "https://github.com/Daotin/ai-coding/blob/main/README.md"
}
},
{
"name": "package-lock.json",
"path": "package-lock.json",
"sha": "5e9ab40f96adc7d1d194e91326f91e7bc54acde1",
"size": 7646,
"url": "https://api.github.com/repos/Daotin/ai-coding/contents/package-lock.json?ref=main",
"html_url": "https://github.com/Daotin/ai-coding/blob/main/package-lock.json",
"git_url": "https://api.github.com/repos/Daotin/ai-coding/git/blobs/5e9ab40f96adc7d1d194e91326f91e7bc54acde1",
"download_url": "https://raw.githubusercontent.com/Daotin/ai-coding/main/package-lock.json",
"type": "file",
"_links": {
"self": "https://api.github.com/repos/Daotin/ai-coding/contents/package-lock.json?ref=main",
"git": "https://api.github.com/repos/Daotin/ai-coding/git/blobs/5e9ab40f96adc7d1d194e91326f91e7bc54acde1",
"html": "https://github.com/Daotin/ai-coding/blob/main/package-lock.json"
}
},
{
"name": "package.json",
"path": "package.json",
"sha": "a0632d63c2fe76652a91aa93408a6f3f3a96ee3f",
"size": 243,
"url": "https://api.github.com/repos/Daotin/ai-coding/contents/package.json?ref=main",
"html_url": "https://github.com/Daotin/ai-coding/blob/main/package.json",
"git_url": "https://api.github.com/repos/Daotin/ai-coding/git/blobs/a0632d63c2fe76652a91aa93408a6f3f3a96ee3f",
"download_url": "https://raw.githubusercontent.com/Daotin/ai-coding/main/package.json",
"type": "file",
"_links": {
"self": "https://api.github.com/repos/Daotin/ai-coding/contents/package.json?ref=main",
"git": "https://api.github.com/repos/Daotin/ai-coding/git/blobs/a0632d63c2fe76652a91aa93408a6f3f3a96ee3f",
"html": "https://github.com/Daotin/ai-coding/blob/main/package.json"
}
}
]
@@ -0,0 +1,38 @@
version: 1
domain_id: daotin-ai-coding
object:
type: github_repository
name: Daotin/ai-coding
url: https://github.com/Daotin/ai-coding
pulled_at: '2026-07-02T22:47:14+00:00'
puller: scripts/fetch-research-raw.py
files:
- path: repository/
kind: git-working-tree
status: ok
source: 'git clone --depth=1 --single-branch --no-tags https://github.com/Daotin/ai-coding.git docs/research/daotin-ai-coding/raw/repository'
- path: github-repo.raw.json
kind: repository-metadata
status: ok
source: 'gh repo view Daotin/ai-coding --json nameWithOwner,url,description,homepageUrl,isArchived,isFork,isMirror,defaultBranchRef,licenseInfo,primaryLanguage,repositoryTopics,stargazerCount,forkCount,watchers,createdAt,updatedAt,pushedAt,latestRelease --jq .'
- path: github-readme.raw.md.txt
kind: readme
status: ok
source: 'gh api repos/Daotin/ai-coding/readme -H Accept: application/vnd.github.raw'
- path: github-license.raw.txt
kind: license
status: ok
source: 'gh api repos/Daotin/ai-coding/license -H Accept: application/vnd.github.raw'
- path: github-root-contents.raw.json
kind: root-contents
status: ok
source: 'gh api repos/Daotin/ai-coding/contents'
- path: github-languages.raw.json
kind: languages
status: ok
source: 'gh api repos/Daotin/ai-coding/languages'
- path: github-latest-release.raw.json
kind: latest-release
status: missing_or_error
source: 'gh api repos/Daotin/ai-coding/releases/latest'
message: 'gh: Not Found (HTTP 404)'