zco-claude 0.0.8__py3-none-any.whl
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.
- ClaudeSettings/DOT.claudeignore +7 -0
- ClaudeSettings/README.md +100 -0
- ClaudeSettings/commands/generate_changelog.sh +49 -0
- ClaudeSettings/commands/show_env +92 -0
- ClaudeSettings/commands/zco-clean +164 -0
- ClaudeSettings/commands/zco-git-summary +15 -0
- ClaudeSettings/commands/zco-git-tag +42 -0
- ClaudeSettings/hooks/CHANGELOG.md +157 -0
- ClaudeSettings/hooks/README.md +254 -0
- ClaudeSettings/hooks/save_chat_plain.py +148 -0
- ClaudeSettings/hooks/save_chat_spec.py +398 -0
- ClaudeSettings/rules/README.md +270 -0
- ClaudeSettings/rules/go/.golangci.yml.template +170 -0
- ClaudeSettings/rules/go/GoBuildAutoVersion.v250425.md +95 -0
- ClaudeSettings/rules/go/check-standards.sh +128 -0
- ClaudeSettings/rules/go/coding-standards.md +973 -0
- ClaudeSettings/rules/go/example.go +207 -0
- ClaudeSettings/rules/go/go-testing.md +691 -0
- ClaudeSettings/rules/go/list-comments.sh +85 -0
- ClaudeSettings/settings.sample.json +71 -0
- ClaudeSettings/skills/README.md +225 -0
- ClaudeSettings/skills/zco-docs-update/SKILL.md +381 -0
- ClaudeSettings/skills/zco-help/SKILL.md +601 -0
- ClaudeSettings/skills/zco-plan/SKILL.md +661 -0
- ClaudeSettings/skills/zco-plan-new/SKILL.md +585 -0
- ClaudeSettings/zco-scripts/co-docs-update.sh +150 -0
- ClaudeSettings/zco-scripts/test_update_plan_metadata.py +328 -0
- ClaudeSettings/zco-scripts/update-plan-metadata.py +324 -0
- zco_claude-0.0.8.dist-info/METADATA +190 -0
- zco_claude-0.0.8.dist-info/RECORD +34 -0
- zco_claude-0.0.8.dist-info/WHEEL +5 -0
- zco_claude-0.0.8.dist-info/entry_points.txt +3 -0
- zco_claude-0.0.8.dist-info/top_level.txt +1 -0
- zco_claude_init.py +1732 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
package example
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"errors"
|
|
5
|
+
"fmt"
|
|
6
|
+
"strings"
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
//; 示例代码:演示注释规范的使用
|
|
10
|
+
|
|
11
|
+
//;@NOTE: 这个文件展示了如何正确使用 //; 和 //;@注释
|
|
12
|
+
|
|
13
|
+
//; User 表示系统用户
|
|
14
|
+
//; 包含用户的基本信息和认证数据
|
|
15
|
+
type User struct {
|
|
16
|
+
ID int64
|
|
17
|
+
Name string
|
|
18
|
+
Email string
|
|
19
|
+
Password string //;@FIXME: 应该存储哈希值而不是明文密码
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
//; ValidateEmail 验证邮箱格式是否正确
|
|
23
|
+
//; 返回 true 表示邮箱格式有效
|
|
24
|
+
func ValidateEmail(email string) bool {
|
|
25
|
+
//; 检查邮箱是否包含 @ 符号
|
|
26
|
+
if !strings.Contains(email, "@") {
|
|
27
|
+
return false
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
//;@TODO: 添加更完整的邮箱格式验证
|
|
31
|
+
//;@OPTIMIZE: 可以使用正则表达式提高验证准确性
|
|
32
|
+
|
|
33
|
+
//; 检查 @ 符号前后是否有内容
|
|
34
|
+
parts := strings.Split(email, "@")
|
|
35
|
+
if len(parts) != 2 || parts[0] == "" || parts[1] == "" {
|
|
36
|
+
return false
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return true
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
//; CreateUser 创建新用户
|
|
43
|
+
//; 验证用户数据并返回创建的用户对象
|
|
44
|
+
func CreateUser(name, email, password string) (*User, error) {
|
|
45
|
+
//;@NOTE: 这个函数需要重构,太长了
|
|
46
|
+
|
|
47
|
+
//; 验证用户名
|
|
48
|
+
if name == "" {
|
|
49
|
+
return nil, errors.New("name cannot be empty")
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
//; 验证邮箱
|
|
53
|
+
if !ValidateEmail(email) {
|
|
54
|
+
return nil, errors.New("invalid email format")
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
//;@FIXME: 密码验证规则太简单,需要加强
|
|
58
|
+
//; 验证密码长度
|
|
59
|
+
if len(password) < 6 {
|
|
60
|
+
return nil, errors.New("password too short")
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
//;@HACK: 临时方案 - 直接存储明文密码
|
|
64
|
+
//;@等待安全团队提供密码哈希方案后修改
|
|
65
|
+
user := &User{
|
|
66
|
+
Name: name,
|
|
67
|
+
Email: email,
|
|
68
|
+
Password: password, //; 应该存储哈希值
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
//;@TODO: 添加到数据库
|
|
72
|
+
//;@TODO: 发送欢迎邮件
|
|
73
|
+
//;@TODO: 记录审计日志
|
|
74
|
+
|
|
75
|
+
return user, nil
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
//;@DEPRECATED: 使用 CreateUser 替代
|
|
79
|
+
//;@此函数将在 v2.0 版本移除
|
|
80
|
+
//; CreateUserLegacy 创建用户(旧版本)
|
|
81
|
+
func CreateUserLegacy(name, email string) *User {
|
|
82
|
+
return &User{
|
|
83
|
+
Name: name,
|
|
84
|
+
Email: email,
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
//; CalculateDiscount 根据用户等级和订单金额计算折扣
|
|
89
|
+
//; 折扣规则:
|
|
90
|
+
//; - VIP 用户:15% 折扣
|
|
91
|
+
//; - 普通用户:10% 折扣
|
|
92
|
+
//; - 订单金额 < 100 不享受折扣
|
|
93
|
+
func CalculateDiscount(userLevel string, amount float64) float64 {
|
|
94
|
+
//;@OPTIMIZE: 这个函数可能会被频繁调用,考虑缓存折扣率
|
|
95
|
+
|
|
96
|
+
//; 小额订单不参与折扣
|
|
97
|
+
if amount < 100 {
|
|
98
|
+
return 0
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
//; 根据用户等级确定折扣率
|
|
102
|
+
var rate float64
|
|
103
|
+
switch userLevel {
|
|
104
|
+
case "VIP":
|
|
105
|
+
rate = 0.15
|
|
106
|
+
case "Premium":
|
|
107
|
+
//;@NOTE: Premium 等级是新增的,需要在文档中说明
|
|
108
|
+
rate = 0.12
|
|
109
|
+
default:
|
|
110
|
+
rate = 0.10
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
//;@DEBUG: 临时打印,用于调试折扣计算
|
|
114
|
+
// fmt.Printf("Discount rate for %s: %.2f\n", userLevel, rate)
|
|
115
|
+
|
|
116
|
+
return amount * rate
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
//; processPayment 处理支付(私有函数)
|
|
120
|
+
func processPayment(amount float64) error {
|
|
121
|
+
//;@FIXME: 需要添加支付网关集成
|
|
122
|
+
//;@HACK: 临时返回 nil,假装支付成功
|
|
123
|
+
|
|
124
|
+
//; 验证金额
|
|
125
|
+
if amount <= 0 {
|
|
126
|
+
return fmt.Errorf("invalid amount: %.2f", amount)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
//;@TODO: 调用支付网关 API
|
|
130
|
+
//;@TODO: 处理支付失败情况
|
|
131
|
+
//;@TODO: 记录支付日志
|
|
132
|
+
|
|
133
|
+
return nil
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
//; NotifyUser 发送通知给用户
|
|
137
|
+
func NotifyUser(userID int64, message string) error {
|
|
138
|
+
//;@NOTE: 这个函数暂时只支持邮件通知
|
|
139
|
+
//;@TODO: 添加短信通知支持
|
|
140
|
+
//;@TODO: 添加推送通知支持
|
|
141
|
+
|
|
142
|
+
//; 获取用户信息
|
|
143
|
+
//;@FIXME: 这里应该从数据库获取用户信息
|
|
144
|
+
user := &User{ID: userID}
|
|
145
|
+
|
|
146
|
+
//; 验证消息内容
|
|
147
|
+
if message == "" {
|
|
148
|
+
return errors.New("message cannot be empty")
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
//;@HACK: 直接打印到控制台,实际应该发送邮件
|
|
152
|
+
fmt.Printf("Sending notification to user %d: %s\n", user.ID, message)
|
|
153
|
+
|
|
154
|
+
//;@TODO: 实现真正的邮件发送
|
|
155
|
+
return nil
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
//;@XXX: 这个函数存在严重的性能问题
|
|
159
|
+
//;@需要紧急优化,否则会影响系统稳定性
|
|
160
|
+
//; SlowOperation 执行耗时操作(示例)
|
|
161
|
+
func SlowOperation(items []string) []string {
|
|
162
|
+
var result []string
|
|
163
|
+
|
|
164
|
+
//;@OPTIMIZE: 应该预分配 slice 容量
|
|
165
|
+
//; result := make([]string, 0, len(items))
|
|
166
|
+
|
|
167
|
+
for _, item := range items {
|
|
168
|
+
//; 这里做一些复杂的处理
|
|
169
|
+
processed := strings.ToUpper(item)
|
|
170
|
+
result = append(result, processed)
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
return result
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
//; Example 演示如何正确使用注释
|
|
177
|
+
func Example() {
|
|
178
|
+
//; 这是普通的代码注释
|
|
179
|
+
//; 用于解释代码的功能和逻辑
|
|
180
|
+
|
|
181
|
+
user, err := CreateUser("John", "john@example.com", "password123")
|
|
182
|
+
if err != nil {
|
|
183
|
+
//;@NOTE: 这里的错误处理还不够完善
|
|
184
|
+
fmt.Printf("Error: %v\n", err)
|
|
185
|
+
return
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
//;@TODO: 添加用户创建成功的日志
|
|
189
|
+
fmt.Printf("User created: %+v\n", user)
|
|
190
|
+
|
|
191
|
+
//;@FIXME: 这里应该返回用户 ID 而不是打印
|
|
192
|
+
discount := CalculateDiscount("VIP", 200)
|
|
193
|
+
fmt.Printf("Discount: %.2f\n", discount)
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
多行注释示例:
|
|
198
|
+
|
|
199
|
+
这是文档注释,用于描述包、类型、函数等的详细信息。
|
|
200
|
+
通常用于生成 API 文档。
|
|
201
|
+
|
|
202
|
+
对于元信息注释(TODO、FIXME 等),即使在多行注释中,
|
|
203
|
+
也应该使用 //;@前缀:
|
|
204
|
+
|
|
205
|
+
//;@TODO: 完成这个功能的实现
|
|
206
|
+
//;@NOTE: 这里需要特别注意线程安全问题
|
|
207
|
+
**/
|