# my-issue2md-project **Repository Path**: bill1012/my-issue2md-project ## Basic Information - **Project Name**: my-issue2md-project - **Description**: claude code使用学习项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-17 - **Last Updated**: 2026-01-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # issue2md - AI 协作开发框架学习项目 > 一个基于 Claude Code 的 Go 项目 AI 协作开发框架示例 ## 项目简介 本项目是一个**学习项目**,旨在展示如何构建现代化的 AI 协作开发框架。通过配置 Claude Code,实现 AI Agent 与人类开发者的无缝协作,遵循严格的开发原则和最佳实践。 ## 核心特性 - **AI-Native Development**: 完整的 Claude Code 配置,实现 AI 辅助开发 - **严格的开发宪法**: 定义不可动摇的核心开发原则 - **测试先行**: 强制 TDD 开发流程 - **简单性原则**: 遵循 Go 语言"少即是多"哲学 - **规范化的 Git 工作流**: Conventional Commits 规范 ## 项目结构 ``` . ├── .claude/ # Claude Code 配置目录 │ ├── CLAUDE.md # AI 协作上下文总入口 │ ├── settings.json # 权限配置 │ └── settings.local.json # 本地设置 ├── constitution.md # 项目开发宪法(最高优先级) ├── go.mod # Go 模块定义 ├── go.sum # Go 依赖锁定 ├── Makefile # 构建和测试命令 └── README.md # 本文件 ``` ## 开发原则 ### 1. 简单性原则 (Simplicity First) - 遵循 YAGNI(You Aren't Gonna Need It) - 优先使用 Go 标准库 - 反过度工程 ### 2. 测试先行铁律 (Test-First Imperative) - 严格遵循 TDD 循环:Red-Green-Refactor - 优先采用表格驱动测试(Table-Driven Tests) - 优先编写集成测试,使用真实依赖 ### 3. 明确性原则 (Clarity and Explicitness) - 所有错误必须显式处理 - 使用 `fmt.Errorf("...: %w", err)` 包装错误 - 禁止使用全局变量传递状态 详细内容请查看 [`constitution.md`](./constitution.md) ## 技术栈 - **语言**: Go 1.25.6+ - **构建工具**: Make - **AI 协作**: Claude Code - **版本控制**: Git + Gitee ## 快速开始 ### 环境要求 - Go >= 1.24 - Make - Claude Code CLI - Git ### 克隆项目 ```bash git clone git@gitee.com:bill1012/my-issue2md-project.git cd my-issue2md-project ``` ### 使用 Claude Code 1. 确保已安装 Claude Code CLI 2. 在项目根目录启动 Claude Code 3. AI Agent 将自动加载 `.claude/CLAUDE.md` 和 `constitution.md` ## 开发指南 ### 添加新功能 当要求添加新功能时,AI Agent 会: 1. 自动阅读相关代码 2. 对照项目宪法制定计划 3. 编写失败的测试(TDD) 4. 实现功能代码 5. 重构优化 ### 编写测试 优先采用表格驱动测试风格: ```go func TestAdd(t *testing.T) { tests := []struct { name string a, b int expected int }{ {"positive", 2, 3, 5}, {"negative", -1, -1, -2}, {"zero", 0, 0, 0}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { result := Add(tt.a, tt.b) if result != tt.expected { t.Errorf("Add(%d, %d) = %d; want %d", tt.a, tt.b, result, tt.expected) } }) } } ``` ### Git 提交规范 遵循 Conventional Commits 规范: ``` ():