zco-claude 0.0.6__tar.gz → 0.0.8__tar.gz

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 (44) hide show
  1. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/DOT.claudeignore +1 -0
  2. zco_claude-0.0.8/ClaudeSettings/settings.sample.json +71 -0
  3. zco_claude-0.0.8/MANIFEST.in +19 -0
  4. {zco_claude-0.0.6 → zco_claude-0.0.8}/PKG-INFO +1 -1
  5. {zco_claude-0.0.6 → zco_claude-0.0.8}/pyproject.toml +1 -1
  6. {zco_claude-0.0.6 → zco_claude-0.0.8}/zco_claude.egg-info/PKG-INFO +1 -1
  7. {zco_claude-0.0.6 → zco_claude-0.0.8}/zco_claude.egg-info/SOURCES.txt +1 -2
  8. {zco_claude-0.0.6 → zco_claude-0.0.8}/zco_claude_init.py +51 -32
  9. zco_claude-0.0.6/ClaudeSettings/settings.json +0 -127
  10. zco_claude-0.0.6/ClaudeSettings/settings.local.sample.json +0 -45
  11. zco_claude-0.0.6/MANIFEST.in +0 -8
  12. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/README.md +0 -0
  13. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/commands/generate_changelog.sh +0 -0
  14. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/commands/show_env +0 -0
  15. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/commands/zco-clean +0 -0
  16. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/commands/zco-git-summary +0 -0
  17. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/commands/zco-git-tag +0 -0
  18. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/hooks/CHANGELOG.md +0 -0
  19. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/hooks/README.md +0 -0
  20. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/hooks/save_chat_plain.py +0 -0
  21. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/hooks/save_chat_spec.py +0 -0
  22. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/rules/README.md +0 -0
  23. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/rules/go/.golangci.yml.template +0 -0
  24. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/rules/go/GoBuildAutoVersion.v250425.md +0 -0
  25. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/rules/go/check-standards.sh +0 -0
  26. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/rules/go/coding-standards.md +0 -0
  27. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/rules/go/example.go +0 -0
  28. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/rules/go/go-testing.md +0 -0
  29. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/rules/go/list-comments.sh +0 -0
  30. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/skills/README.md +0 -0
  31. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/skills/zco-docs-update/SKILL.md +0 -0
  32. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/skills/zco-help/SKILL.md +0 -0
  33. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/skills/zco-plan/SKILL.md +0 -0
  34. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/skills/zco-plan-new/SKILL.md +0 -0
  35. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/zco-scripts/co-docs-update.sh +0 -0
  36. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/zco-scripts/test_update_plan_metadata.py +0 -0
  37. {zco_claude-0.0.6 → zco_claude-0.0.8}/ClaudeSettings/zco-scripts/update-plan-metadata.py +0 -0
  38. {zco_claude-0.0.6 → zco_claude-0.0.8}/readme.md +0 -0
  39. {zco_claude-0.0.6 → zco_claude-0.0.8}/setup.cfg +0 -0
  40. {zco_claude-0.0.6 → zco_claude-0.0.8}/setup.py +0 -0
  41. {zco_claude-0.0.6 → zco_claude-0.0.8}/zco_claude.egg-info/dependency_links.txt +0 -0
  42. {zco_claude-0.0.6 → zco_claude-0.0.8}/zco_claude.egg-info/entry_points.txt +0 -0
  43. {zco_claude-0.0.6 → zco_claude-0.0.8}/zco_claude.egg-info/not-zip-safe +0 -0
  44. {zco_claude-0.0.6 → zco_claude-0.0.8}/zco_claude.egg-info/top_level.txt +0 -0
@@ -4,3 +4,4 @@
4
4
  **/_.*/
5
5
  **/*._.*
6
6
  **.bak.*
7
+ **/__pycache__/*
@@ -0,0 +1,71 @@
1
+ {
2
+ "env": {
3
+ "ZCO_TPL_VERSION": "v2",
4
+ "YJ_CLAUDE_CHAT_SAVE_SPEC": "1",
5
+ "YJ_CLAUDE_CHAT_SAVE_PLAIN": "1",
6
+ "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "6000"
7
+ },
8
+ "permissions": {
9
+ "allow": [
10
+ "Bash(chmod:*)",
11
+ "Bash(python3:*)",
12
+ "Bash(echo:*)",
13
+ "Bash(go build:*)",
14
+ "Bash(ls:*)",
15
+ "Bash(tree:*)",
16
+ "Bash(git add:*)",
17
+ "Bash(git check-ignore:*)",
18
+ "Bash(cat:*)",
19
+ "Bash(zsh:*)",
20
+ "Bash(test:*)",
21
+ "Skill(zco-plan)",
22
+ "Bash(git commit:*)",
23
+ "Bash(./.claude/commands/show_env:*)",
24
+ "Skill(zco-plan-new)"
25
+ ],
26
+ "deny": [
27
+ "Read(~/.ssh/**)",
28
+ "Read(~/.aws/**)",
29
+ "Read(**/Library/Application Support/Google/Chrome/**)",
30
+ "Read(./.DS_Store)",
31
+ "Read(**/.DS_Store)",
32
+ "Read(**/__pycache__)",
33
+ "Read(**/__pycache__/**)",
34
+ "Read(*._.*)",
35
+ "Read(*.bak.*)",
36
+ "Read(*.tmp.*)",
37
+ "Read(_.*/**)",
38
+ "Read(*._/**)"
39
+ ],
40
+ "ask": [
41
+ "Read(**/.git/**)",
42
+ "Read(**/app.local.conf)",
43
+ "Read(**/*.local.conf)",
44
+ "Read(**/config.local.yaml)",
45
+ "Read(**/.env*)",
46
+ "Write(**/*.conf)",
47
+ "Write(**/*.yaml)",
48
+ "Read(**/.zshrc)",
49
+ "Read(**/.bashrc)",
50
+ "Read(**/.bash_profile)",
51
+ "Read(**/*.secret.*)",
52
+ "Write(**/docs/manual/**)"
53
+ ]
54
+ },
55
+ "hooks": {
56
+ "Stop": [
57
+ {
58
+ "hooks": [
59
+ {
60
+ "type": "command",
61
+ "command": "python3 \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/save_chat_plain.py"
62
+ },
63
+ {
64
+ "type": "command",
65
+ "command": "python3 \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/save_chat_spec.py"
66
+ }
67
+ ]
68
+ }
69
+ ]
70
+ }
71
+ }
@@ -0,0 +1,19 @@
1
+ include readme.md
2
+ include LICENSE
3
+ include zco_claude_init.py
4
+ include pyproject.toml
5
+ graft ClaudeSettings
6
+
7
+ # 排除规则和 ClaudeSettings/DOT.claudeignore 保持一致
8
+ # Python 缓存文件
9
+ recursive-exclude * __pycache__
10
+ global-exclude *.py[co]
11
+
12
+ # 系统文件
13
+ global-exclude .DS_Store
14
+
15
+ # 临时/备份文件 (匹配 *._, _.*/, *._.*, *.bak.*)
16
+ global-exclude *._
17
+ global-exclude *._.*
18
+ global-exclude *.bak.*
19
+ recursive-exclude * ._*/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zco-claude
3
- Version: 0.0.6
3
+ Version: 0.0.8
4
4
  Summary: Claude Code 配置管理工具 - 快速初始化项目的 .claude 配置目录
5
5
  Home-page: https://github.com/zco-team/zco-claude
6
6
  Author: ZCO Team
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "zco-claude"
7
- version = "0.0.6"
7
+ version = "0.0.8"
8
8
  description = "Claude Code 配置管理工具 - 快速初始化项目的 .claude 配置目录"
9
9
  readme = "readme.md"
10
10
  requires-python = ">=3.8"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zco-claude
3
- Version: 0.0.6
3
+ Version: 0.0.8
4
4
  Summary: Claude Code 配置管理工具 - 快速初始化项目的 .claude 配置目录
5
5
  Home-page: https://github.com/zco-team/zco-claude
6
6
  Author: ZCO Team
@@ -5,8 +5,7 @@ setup.py
5
5
  zco_claude_init.py
6
6
  ClaudeSettings/DOT.claudeignore
7
7
  ClaudeSettings/README.md
8
- ClaudeSettings/settings.json
9
- ClaudeSettings/settings.local.sample.json
8
+ ClaudeSettings/settings.sample.json
10
9
  ClaudeSettings/commands/generate_changelog.sh
11
10
  ClaudeSettings/commands/show_env
12
11
  ClaudeSettings/commands/zco-clean
@@ -298,14 +298,14 @@ def make_links_for_subs(source_pdir, target_pdir, description, flag_file=False,
298
298
  # pf_color(f" 跳过 {description}:目标目录与源目录相同", M_Color.YELLOW)
299
299
  return False
300
300
  for item in source_pdir.iterdir():
301
- if item.name.startswith("_."):
301
+ if item.name.startswith("_.") or item.name.startswith(".") or item.name.startswith("__"):
302
302
  pass
303
- elif item.is_dir() and flag_dir :
303
+ elif item.is_dir() and flag_dir:
304
304
  src_path = item.resolve()
305
305
  dst_path = abs_target / item.name
306
306
  make_symlink(src_path, dst_path, f"{description} - {item.name}")
307
307
  n_cnt += 1
308
- elif item.is_file() and flag_file and not item.name.startswith("_."):
308
+ elif item.is_file() and flag_file:
309
309
  src_path = item.resolve()
310
310
  dst_path = abs_target / item.name
311
311
  make_symlink(src_path, dst_path, f"{description} - {item.name}")
@@ -604,7 +604,7 @@ def generate_project_settings(target_path: Path):
604
604
 
605
605
  Args:
606
606
  target_path: 目标项目路径
607
- source_dir: 源项目目录(ClaudeSettings 目录)
607
+ source_dir: 源模板配置目录(ClaudeSettings 目录)
608
608
 
609
609
  Returns:
610
610
  bool: 是否成功生成配置
@@ -992,8 +992,34 @@ def is_valid_symlink(link_path: Path, expected_source: Path) -> bool:
992
992
  actual_source = link_path.resolve()
993
993
  return actual_source == expected_source.resolve()
994
994
 
995
+ def cmd_init_global(tpl_dir=None):
996
+ """
997
+ 子命令: init-global - 初始化全局 .claudeignore 文件
995
998
 
996
- def cmd_init(target_path=None, tpl_dir=None):
999
+ Args:
1000
+ tpl_dir: 模板目录路径,默认为 ZCO_CLAUDE_TPL_DIR
1001
+ """
1002
+ ##; 确定模板目录
1003
+ if tpl_dir is None:
1004
+ source_abs = ZCO_CLAUDE_TPL_DIR.resolve()
1005
+ else:
1006
+ source_abs = Path(tpl_dir).resolve()
1007
+ if not source_abs.exists():
1008
+ pf_color(f"错误:模板目录不存在: {source_abs}", M_Color.RED)
1009
+ sys.exit(1)
1010
+ ##; 没有子命令: 仅生成全局配置
1011
+ pf_color("\n📋 模式: 生成默认的全局配置", M_Color.CYAN)
1012
+ pf_color(f"配置路径: $HOME/.claude/settings.json\n", M_Color.CYAN)
1013
+ success = generate_global_settings(ZCO_CLAUDE_TPL_DIR)
1014
+
1015
+ if success:
1016
+ pf_color("\n✅ 完成!配置已生成或更新。", M_Color.GREEN)
1017
+ else:
1018
+ pf_color("\n⚠️ 配置生成失败或被取消。", M_Color.YELLOW)
1019
+
1020
+
1021
+
1022
+ def cmd_init_project(target_path=None, tpl_dir=None):
997
1023
  """
998
1024
  子命令: init - 初始化项目的 .claude/ 配置
999
1025
 
@@ -1571,28 +1597,28 @@ def main():
1571
1597
  description="Claude Code 配置管理工具",
1572
1598
  formatter_class=argparse.RawDescriptionHelpFormatter,
1573
1599
  epilog="""
1574
- 使用方式:
1575
-
1576
- 1. 初始化当前项目:
1600
+ 常用使用示例:
1601
+ 1. 初始化全局配置:
1577
1602
  %(prog)s init
1578
1603
 
1579
- 2. 列出已链接项目:
1604
+ 2. 初始化当前项目:
1605
+ %(prog)s init .
1606
+
1607
+ 3. 列出已链接项目:
1580
1608
  %(prog)s list-linked-repos
1581
1609
 
1582
- 3. 修复已链接项目的软链接:
1610
+ 4. 修复已链接项目的软链接:
1583
1611
  %(prog)s fix-linked-repos
1584
1612
 
1585
- 4. 仅生成全局默认配置(旧版兼容):
1586
- %(prog)s
1587
-
1588
- 5. 为指定项目配置(旧版兼容):
1589
- %(prog)s /path/to/target/project
1613
+ 5. 修复项目配置:
1614
+ %(prog)s fix /path/to/target/project
1590
1615
 
1591
1616
  说明:
1592
- - init: 在当前目录初始化 .claude/ 配置
1617
+ - init . : 在当前目录初始化 .claude/ 配置
1593
1618
  - list-linked-repos: 显示所有已初始化的项目列表
1594
1619
  - fix-linked-repos: 检查并修复所有软链接
1595
- - 旧版用法仍然兼容
1620
+ - 更多帮助请参考: %(prog)s <command> --help
1621
+ eg: %(prog)s init --help
1596
1622
  """
1597
1623
  )
1598
1624
  parser.add_argument(
@@ -1614,12 +1640,12 @@ def main():
1614
1640
  'project_path',
1615
1641
  nargs='?',
1616
1642
  default=None,
1617
- help='目标项目路径(可选,默认为当前目录)'
1643
+ help='目标项目路径(可选), 如果为空则初始化全局的 $HOME/.claude/settings.json, 支持相对路径'
1618
1644
  )
1619
1645
  parser_init.add_argument(
1620
1646
  '--tpl',
1621
1647
  default=None,
1622
- help='模板目录路径(可选,默认为 ClaudeSettings'
1648
+ help=f"模板目录路径(可选,默认为 ${ZCO_CLAUDE_TPL_DIR}"
1623
1649
  )
1624
1650
 
1625
1651
  ##; 子命令: list-linked-repos
@@ -1680,7 +1706,10 @@ def main():
1680
1706
 
1681
1707
  ##; 处理子命令
1682
1708
  if args.command == 'init':
1683
- cmd_init(target_path=args.project_path, tpl_dir=args.tpl)
1709
+ if args.project_path is None:
1710
+ cmd_init_global(tpl_dir=args.tpl)
1711
+ else:
1712
+ cmd_init_project(target_path=args.project_path, tpl_dir=args.tpl)
1684
1713
  return
1685
1714
 
1686
1715
  elif args.command == 'list-linked-repos':
@@ -1694,19 +1723,9 @@ def main():
1694
1723
  elif args.command == 'fix':
1695
1724
  cmd_fix(project_path=args.project_path, tpl_dir=args.tpl, record_file=args.record_file)
1696
1725
  return
1697
-
1698
- ##; 没有子命令: 仅生成全局配置
1699
- pf_color("\n📋 模式: 仅生成配置", M_Color.CYAN)
1700
- print(f"配置路径: $HOME/.claude/settings.json\n")
1701
-
1702
- ##; 生成配置
1703
- print("生成配置...\n")
1704
- success = generate_global_settings(ZCO_CLAUDE_TPL_DIR)
1705
-
1706
- if success:
1707
- pf_color("\n✅ 完成!配置已生成或更新。", M_Color.GREEN)
1708
1726
  else:
1709
- pf_color("\n⚠️ 配置生成失败或被取消。", M_Color.YELLOW)
1727
+ ## print help
1728
+ parser.print_help()
1710
1729
 
1711
1730
 
1712
1731
  if __name__ == "__main__":
@@ -1,127 +0,0 @@
1
- {
2
- "permissions": {
3
- "deny": [
4
- "Read(./.git)",
5
- "Read(./.git/**)",
6
- "Read(./.idea)",
7
- "Read(./.idea/**)",
8
- "Read(./.vscode)",
9
- "Read(./.vscode/**)",
10
- "Read(./.DS_Store)",
11
- "Read(**/.DS_Store)",
12
- "Read(./var)",
13
- "Read(./var/**)",
14
- "Read(./data)",
15
- "Read(./data/**)",
16
- "Read(./logs)",
17
- "Read(./logs/**)",
18
- "Read(**/*.log)",
19
- "Read(**/*.log.*)",
20
- "Read(./conf/app.conf)",
21
- "Read(./.env)",
22
- "Read(./.env.*)",
23
- "Read(./3Dannotations_tool)",
24
- "Read(./3Dannotations_tool.tgz)",
25
- "Read(./build_version.txt)",
26
- "Read(./toolkit/*/Makefile)",
27
- "Read(./toolkit/m.*/**)",
28
- "Read(./toolkit/*/.git)",
29
- "Read(./toolkit/*/.git/**)",
30
- "Read(**/*.gosh)",
31
- "Read(**/*.gox)",
32
- "Read(**/*.xgo)",
33
- "Read(**/*.gobin)",
34
- "Read(**/*.gix)",
35
- "Read(**/*.x)",
36
- "Read(**/*.xapi)",
37
- "Read(**/*.apix)",
38
- "Read(**/*.xbin)",
39
- "Read(**/co.*/**)",
40
- "Read(**/*.exe)",
41
- "Read(**/*.dll)",
42
- "Read(**/*.so)",
43
- "Read(**/*.dylib)",
44
- "Read(**/*.test)",
45
- "Read(**/*.out)",
46
- "Read(./go.work)",
47
- "Read(**/__pycache__)",
48
- "Read(**/__pycache__/**)",
49
- "Read(**/*.py[cod])",
50
- "Read(**/*.pyc)",
51
- "Read(**/*.pyo)",
52
- "Read(**/*.pyd)",
53
- "Read(./.Python)",
54
- "Read(./build)",
55
- "Read(./build/**)",
56
- "Read(./build@*/**)",
57
- "Read(./build2)",
58
- "Read(./build2/**)",
59
- "Read(./dist)",
60
- "Read(./dist/**)",
61
- "Read(./dist@*/**)",
62
- "Read(**/*.egg-info)",
63
- "Read(**/*.egg-info/**)",
64
- "Read(**/.pytest_cache)",
65
- "Read(**/.pytest_cache/**)",
66
- "Read(**/.coverage)",
67
- "Read(**/.mypy_cache)",
68
- "Read(**/.mypy_cache/**)",
69
- "Read(./.venv)",
70
- "Read(./.venv/**)",
71
- "Read(./.venv*/**)",
72
- "Read(./env)",
73
- "Read(./env/**)",
74
- "Read(./env@*/**)",
75
- "Read(./venv)",
76
- "Read(./venv/**)",
77
- "Read(./ENV)",
78
- "Read(./ENV/**)",
79
- "Read(./bak)",
80
- "Read(./bak/**)",
81
- "Read(./bak@*/**)",
82
- "Read(**/*.bak)",
83
- "Read(**/*.bak/**)",
84
- "Read(**/*.BAK)",
85
- "Read(**/*.BAK.*)",
86
- "Read(**/bak.*)",
87
- "Read(**/_.bak.*)",
88
- "Read(**/*@bak)",
89
- "Read(**/*@bak/**)",
90
- "Read(./tmp)",
91
- "Read(./tmp/**)",
92
- "Read(./tmp@*/**)",
93
- "Read(./temp)",
94
- "Read(./temp/**)",
95
- "Read(**/*.tmp)",
96
- "Read(**/*.tmp/**)",
97
- "Read(**/tmp.*)",
98
- "Read(**/*@tmp)",
99
- "Read(**/*.err.*)",
100
- "Read(**/*@err)",
101
- "Read(**/*.zip)",
102
- "Read(**/*.tar.gz)",
103
- "Read(**/*.gitbak)",
104
- "Read(**/*.git.*)",
105
- "Read(**/__debug_bin*)",
106
- "Read(**/nico.*)",
107
- "Read(**/*.nico)",
108
- "Read(**/*.nico.*)",
109
- "Read(**/_@*/**)",
110
- "Read(**/_.*/)",
111
- "Read(**/*._.*)",
112
- "Read(**/*._.*)",
113
- "Read(./.ipynb_checkpoints)",
114
- "Read(**/.ipynb_checkpoints/**)",
115
- "Read(./htmlcov)",
116
- "Read(./htmlcov/**)",
117
- "Read(./.cache)",
118
- "Read(./.cache/**)",
119
- "Read(./conanfile/conan.lock)",
120
- "Read(**/conan.lock)",
121
- "Read(**/CMakeFiles/**)",
122
- "Read(**/CMakeCache*.txt)",
123
- "Read(./.python-version)",
124
- "Read(**/.python-version)"
125
- ]
126
- }
127
- }
@@ -1,45 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(chmod:*)",
5
- "Bash(python3:*)",
6
- "Bash(echo:*)",
7
- "Bash(go build:*)",
8
- "Bash(.claude/hooks/install-to-project.sh)",
9
- "Bash(ls:*)",
10
- "Bash(.claude/hooks/install-to-project.sh:*)",
11
- "Bash(tree:*)",
12
- "Bash(./setup-vscode-multi-ai.sh:*)",
13
- "Bash(./install-vscode-ai-extensions.sh:*)",
14
- "Bash(./quick-setup-ai.sh:*)",
15
- "Bash(./link-to-project.py:*)",
16
- "Bash(git add:*)",
17
- "Bash(git check-ignore:*)",
18
- "Bash(source ~/.zshrc)",
19
- "Bash(zsh -c 'source ~/.zshrc && alias | grep -E \"\"^\\(c|cy|c-auto|c-yes\\)=\"\"')",
20
- "Bash(cat:*)",
21
- "Bash(zsh:*)",
22
- "Bash(test:*)",
23
- "Skill(zco-plan)",
24
- "Bash(git commit:*)",
25
- "Bash(./.claude/commands/show_env:*)",
26
- "Skill(zco-plan-new)"
27
- ]
28
- },
29
- "hooks": {
30
- "Stop": [
31
- {
32
- "hooks": [
33
- {
34
- "type": "command",
35
- "command": "python3 \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/save_chat_plain.py"
36
- },
37
- {
38
- "type": "command",
39
- "command": "python3 \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/save_chat_spec.py"
40
- }
41
- ]
42
- }
43
- ]
44
- }
45
- }
@@ -1,8 +0,0 @@
1
- include readme.md
2
- include LICENSE
3
- include zco_claude_init.py
4
- include pyproject.toml
5
- graft ClaudeSettings
6
- global-exclude __pycache__
7
- global-exclude *.py[co]
8
- global-exclude .DS_Store
File without changes
File without changes
File without changes