codexspec 0.6.0__tar.gz → 0.6.2__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 (68) hide show
  1. {codexspec-0.6.0 → codexspec-0.6.2}/.gitignore +4 -9
  2. {codexspec-0.6.0 → codexspec-0.6.2}/PKG-INFO +29 -23
  3. {codexspec-0.6.0 → codexspec-0.6.2}/README.md +26 -20
  4. codexspec-0.6.2/codexspec-logo-dark.svg +36 -0
  5. codexspec-0.6.2/codexspec-logo-light.svg +36 -0
  6. {codexspec-0.6.0 → codexspec-0.6.2}/pyproject.toml +13 -5
  7. {codexspec-0.6.0 → codexspec-0.6.2}/src/codexspec/__init__.py +58 -7
  8. {codexspec-0.6.0 → codexspec-0.6.2}/src/codexspec/commands/installer.py +10 -10
  9. {codexspec-0.6.0 → codexspec-0.6.2}/src/codexspec/i18n.py +123 -15
  10. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/analyze.md +6 -1
  11. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/checklist.md +5 -5
  12. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/clarify.md +6 -1
  13. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/config.md +12 -8
  14. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/constitution.md +5 -4
  15. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/generate-spec.md +6 -1
  16. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/implement-tasks.md +5 -5
  17. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/plan-to-tasks.md +6 -1
  18. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/quick.md +6 -1
  19. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/review-code.md +5 -5
  20. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/review-plan.md +6 -1
  21. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/review-spec.md +6 -1
  22. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/review-tasks.md +6 -1
  23. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/spec-to-plan.md +6 -1
  24. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/specify.md +6 -1
  25. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/tasks-to-issues.md +5 -5
  26. {codexspec-0.6.0 → codexspec-0.6.2}/templates/translations/de.json +20 -18
  27. {codexspec-0.6.0 → codexspec-0.6.2}/templates/translations/en.json +26 -24
  28. {codexspec-0.6.0 → codexspec-0.6.2}/templates/translations/es.json +20 -18
  29. {codexspec-0.6.0 → codexspec-0.6.2}/templates/translations/fr.json +20 -18
  30. {codexspec-0.6.0 → codexspec-0.6.2}/templates/translations/ja.json +20 -18
  31. {codexspec-0.6.0 → codexspec-0.6.2}/templates/translations/ko.json +20 -18
  32. {codexspec-0.6.0 → codexspec-0.6.2}/templates/translations/pt-BR.json +20 -18
  33. {codexspec-0.6.0 → codexspec-0.6.2}/templates/translations/zh-CN.json +20 -18
  34. codexspec-0.6.0/codexspec-logo-dark.svg +0 -34
  35. codexspec-0.6.0/codexspec-logo-light.svg +0 -34
  36. codexspec-0.6.0/scripts/python/README.md +0 -91
  37. codexspec-0.6.0/scripts/python/claude_auto_responder.en.md +0 -545
  38. codexspec-0.6.0/scripts/python/claude_auto_responder.py +0 -967
  39. codexspec-0.6.0/scripts/python/claude_auto_responder.zh-CN.md +0 -545
  40. codexspec-0.6.0/scripts/python/claude_auto_responder_demo.en.md +0 -139
  41. codexspec-0.6.0/scripts/python/claude_auto_responder_demo.zh-CN.md +0 -139
  42. codexspec-0.6.0/scripts/python/claude_ctl.py +0 -392
  43. codexspec-0.6.0/scripts/python/claude_monitor.py +0 -1240
  44. codexspec-0.6.0/scripts/python/notify_telegram.py +0 -950
  45. {codexspec-0.6.0 → codexspec-0.6.2}/LICENSE +0 -0
  46. {codexspec-0.6.0 → codexspec-0.6.2}/codexspec-icon.svg +0 -0
  47. {codexspec-0.6.0 → codexspec-0.6.2}/scripts/bash/check-i18n-completeness.sh +0 -0
  48. {codexspec-0.6.0 → codexspec-0.6.2}/scripts/bash/check-i18n-structure.sh +0 -0
  49. {codexspec-0.6.0 → codexspec-0.6.2}/scripts/bash/check-prerequisites.sh +0 -0
  50. {codexspec-0.6.0 → codexspec-0.6.2}/scripts/bash/common.sh +0 -0
  51. {codexspec-0.6.0 → codexspec-0.6.2}/scripts/bash/create-new-feature.sh +0 -0
  52. {codexspec-0.6.0 → codexspec-0.6.2}/scripts/powershell/check-prerequisites.ps1 +0 -0
  53. {codexspec-0.6.0 → codexspec-0.6.2}/scripts/powershell/common.ps1 +0 -0
  54. {codexspec-0.6.0 → codexspec-0.6.2}/scripts/powershell/create-new-feature.ps1 +0 -0
  55. {codexspec-0.6.0 → codexspec-0.6.2}/src/codexspec/commands/__init__.py +0 -0
  56. {codexspec-0.6.0 → codexspec-0.6.2}/src/codexspec/idea.md +0 -0
  57. {codexspec-0.6.0 → codexspec-0.6.2}/src/codexspec/translator.py +0 -0
  58. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/commit-staged.md +0 -0
  59. {codexspec-0.6.0 → codexspec-0.6.2}/templates/commands/pr.md +0 -0
  60. {codexspec-0.6.0 → codexspec-0.6.2}/templates/docs/checklist-template.md +0 -0
  61. {codexspec-0.6.0 → codexspec-0.6.2}/templates/docs/constitution-template.md +0 -0
  62. {codexspec-0.6.0 → codexspec-0.6.2}/templates/docs/plan-template-detailed.md +0 -0
  63. {codexspec-0.6.0 → codexspec-0.6.2}/templates/docs/plan-template-simple.md +0 -0
  64. {codexspec-0.6.0 → codexspec-0.6.2}/templates/docs/requirements-template.md +0 -0
  65. {codexspec-0.6.0 → codexspec-0.6.2}/templates/docs/spec-template-detailed.md +0 -0
  66. {codexspec-0.6.0 → codexspec-0.6.2}/templates/docs/spec-template-simple.md +0 -0
  67. {codexspec-0.6.0 → codexspec-0.6.2}/templates/docs/tasks-template-detailed.md +0 -0
  68. {codexspec-0.6.0 → codexspec-0.6.2}/templates/docs/tasks-template-simple.md +0 -0
@@ -7,15 +7,10 @@
7
7
  /local-ref/
8
8
 
9
9
  # Project specific
10
- # .codexspec/ holds per-project SDD state (specs, plans, tasks, scripts, config).
11
- # Keep it ignored to avoid leaking the maintainer's zh-CN working artifacts into
12
- # this English-facing open-source repo. Exception: constitution.md is governance
13
- # and must be tracked so the "SUPREME AUTHORITY" claim is real for contributors.
14
- .codexspec/*
15
- !.codexspec/.gitkeep
16
- !.codexspec/memory/
17
- .codexspec/memory/*
18
- !.codexspec/memory/constitution.md
10
+ # .codexspec/ holds per-project SDD state (specs, plans, tasks, scripts, config,
11
+ # memory). The entire directory is tracked in version control so the project's
12
+ # full SDD history is public and reproducible. Add per-file ignores below only
13
+ # if a specific artifact must stay local (none currently).
19
14
 
20
15
  # Promotion content archive (local drafts, not meant for the repo)
21
16
  promotion-posts.md
@@ -1,14 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codexspec
3
- Version: 0.6.0
4
- Summary: CodexSpec - A Spec-Driven Development (SDD) toolkit for Claude Code
3
+ Version: 0.6.2
4
+ Summary: CodexSpec - A Requirements-First SDD toolkit for Claude Code
5
5
  Project-URL: Homepage, https://github.com/Zts0hg/codexspec
6
6
  Project-URL: Repository, https://github.com/Zts0hg/codexspec
7
7
  Project-URL: Issues, https://github.com/Zts0hg/codexspec/issues
8
8
  Author: CodexSpec Team
9
9
  License: MIT
10
10
  License-File: LICENSE
11
- Keywords: ai,claude,cli,sdd,spec-driven-development
11
+ Keywords: ai,claude,cli,requirements-driven,requirements-first,sdd,spec-driven-development
12
12
  Classifier: Development Status :: 3 - Alpha
13
13
  Classifier: Environment :: Console
14
14
  Classifier: Intended Audience :: Developers
@@ -51,18 +51,24 @@ Description-Content-Type: text/markdown
51
51
  </picture>
52
52
  </div>
53
53
 
54
- # CodexSpec
54
+ <h1 align="center">CodexSpec</h1>
55
55
 
56
- **English** | [中文](README.zh-CN.md) | [日本語](README.ja.md) | [Español](README.es.md) | [Português](README.pt-BR.md) | [한국어](README.ko.md) | [Deutsch](README.de.md) | [Français](README.fr.md)
56
+ <p align="center">
57
+ <b>English</b> | <a href="README.zh-CN.md">中文</a> | <a href="README.ja.md">日本語</a> | <a href="README.es.md">Español</a> | <a href="README.pt-BR.md">Português</a> | <a href="README.ko.md">한국어</a> | <a href="README.de.md">Deutsch</a> | <a href="README.fr.md">Français</a>
58
+ </p>
57
59
 
58
- [![PyPI version](https://img.shields.io/pypi/v/codexspec.svg)](https://pypi.org/project/codexspec/)
59
- [![Python](https://img.shields.io/pypi/pyversions/codexspec.svg)](https://pypi.org/project/codexspec/)
60
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
60
+ <p align="center">
61
+ <a href="https://pypi.org/project/codexspec/"><img src="https://img.shields.io/pypi/v/codexspec.svg?style=for-the-badge" alt="PyPI version"></a>
62
+ <a href="https://pypi.org/project/codexspec/"><img src="https://img.shields.io/pypi/pyversions/codexspec.svg?style=for-the-badge" alt="Python versions"></a>
63
+ <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge" alt="License: MIT"></a>
64
+ </p>
61
65
 
62
- **A Spec-Driven Development (SDD) toolkit for Claude Code**
66
+ <p align="center">
67
+ <strong>A Requirements-First SDD toolkit for Claude Code</strong>
68
+ </p>
63
69
 
64
- CodexSpec helps you build high-quality software through a structured, specification-first approach.
65
- Instead of jumping straight to code, you define **what** to build and **why** before deciding **how** to build it.
70
+ CodexSpec helps you build high-quality software through **Requirements-First Spec-Driven Development (SDD)** — confirmed requirements come first, and nothing is binding until you explicitly confirm it.
71
+ Instead of jumping straight to code, you confirm **what** to build and **why** before deciding **how** to build it.
66
72
 
67
73
  [📖 Documentation](https://zts0hg.github.io/codexspec/) | [中文文档](https://zts0hg.github.io/codexspec/zh/) | [日本語ドキュメント](https://zts0hg.github.io/codexspec/ja/) | [한국어 문서](https://zts0hg.github.io/codexspec/ko/) | [Documentación](https://zts0hg.github.io/codexspec/es/) | [Documentation](https://zts0hg.github.io/codexspec/fr/) | [Dokumentation](https://zts0hg.github.io/codexspec/de/) | [Documentação](https://zts0hg.github.io/codexspec/pt-BR/)
68
74
 
@@ -71,7 +77,7 @@ Instead of jumping straight to code, you define **what** to build and **why** be
71
77
  ## Table of Contents
72
78
 
73
79
  - [Why Choose CodexSpec?](#why-choose-codexspec)
74
- - [What is Spec-Driven Development?](#what-is-spec-driven-development)
80
+ - [What is Requirements-First SDD?](#what-is-requirements-first-sdd)
75
81
  - [Design Philosophy: Human-AI Collaboration](#design-philosophy-human-ai-collaboration)
76
82
  - [30-Second Quick Start](#-30-second-quick-start)
77
83
  - [Installation](#installation)
@@ -96,23 +102,23 @@ Why use CodexSpec on top of Claude Code? Here's the comparison:
96
102
 
97
103
  ---
98
104
 
99
- ## What is Spec-Driven Development?
105
+ ## What is Requirements-First SDD?
100
106
 
101
- **Spec-Driven Development (SDD)** is a "specifications first, code later" methodology:
107
+ **Requirements-First SDD** is the Spec-Driven Development (SDD) methodology with one upgrade: **confirmed requirements are the highest-priority authority**. You define and confirm *what* to build and *why* before deciding *how* — and nothing becomes binding until you explicitly confirm it.
102
108
 
103
109
  ```
104
110
  Traditional: Idea → Code → Debug → Rewrite
105
111
  SDD: Idea → Confirmed Requirements → Spec → Plan → Tasks → Code
106
112
  ```
107
113
 
108
- **Why use SDD?**
114
+ **Why use Requirements-First SDD?**
109
115
 
110
- | Problem | SDD Solution |
111
- | -------------------- | ------------------------------------------------ |
112
- | AI misunderstandings | Specs clarify "what to build", AI stops guessing |
113
- | Missing requirements | Interactive clarification discovers edge cases |
114
- | Architecture drift | Review checkpoints ensure correct direction |
115
- | Wasted rework | Problems are found before code is written |
116
+ | Problem | Requirements-First SDD Solution |
117
+ | -------------------- | -------------------------------------------------------- |
118
+ | AI misunderstandings | Confirmed requirements tell AI "what to build"; AI stops guessing |
119
+ | Missing requirements | Interactive clarification + a confirmation gate surface edge cases |
120
+ | Architecture drift | Review checkpoints ensure correct direction |
121
+ | Wasted rework | Problems are found and confirmed before code is written |
116
122
 
117
123
  <details>
118
124
  <summary>✨ Key Features</summary>
@@ -595,7 +601,7 @@ CodexSpec is inspired by GitHub spec-kit with key differences:
595
601
 
596
602
  | Feature | spec-kit | CodexSpec |
597
603
  | ------------------- | ----------------------- | --------------------------------------------- |
598
- | Core Philosophy | Spec-driven development | Spec-driven + Human-AI collaboration |
604
+ | Core Philosophy | Spec-driven development | Requirements-First SDD + Human-AI collaboration |
599
605
  | CLI Name | `specify` | `codexspec` |
600
606
  | Primary AI | Multi-agent support | Focused on Claude Code |
601
607
  | Constitution System | Basic | Full constitution + cross-artifact validation |
@@ -614,7 +620,7 @@ CodexSpec is inspired by GitHub spec-kit with key differences:
614
620
  1. **Review-First Culture**: Every major artifact has a dedicated review command
615
621
  2. **Constitution Governance**: Principles are validated, not just documented
616
622
  3. **Evidence-Based Review**: Defects require concrete evidence; advisory design ideas do not affect acceptance
617
- 4. **Human Checkpoints**: Workflow designed around validation gates
623
+ 4. **Confirmation Gate**: Requirements, specs, plans, and tasks become binding only after explicit human confirmation
618
624
 
619
625
  ---
620
626
 
@@ -6,18 +6,24 @@
6
6
  </picture>
7
7
  </div>
8
8
 
9
- # CodexSpec
9
+ <h1 align="center">CodexSpec</h1>
10
10
 
11
- **English** | [中文](README.zh-CN.md) | [日本語](README.ja.md) | [Español](README.es.md) | [Português](README.pt-BR.md) | [한국어](README.ko.md) | [Deutsch](README.de.md) | [Français](README.fr.md)
11
+ <p align="center">
12
+ <b>English</b> | <a href="README.zh-CN.md">中文</a> | <a href="README.ja.md">日本語</a> | <a href="README.es.md">Español</a> | <a href="README.pt-BR.md">Português</a> | <a href="README.ko.md">한국어</a> | <a href="README.de.md">Deutsch</a> | <a href="README.fr.md">Français</a>
13
+ </p>
12
14
 
13
- [![PyPI version](https://img.shields.io/pypi/v/codexspec.svg)](https://pypi.org/project/codexspec/)
14
- [![Python](https://img.shields.io/pypi/pyversions/codexspec.svg)](https://pypi.org/project/codexspec/)
15
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
15
+ <p align="center">
16
+ <a href="https://pypi.org/project/codexspec/"><img src="https://img.shields.io/pypi/v/codexspec.svg?style=for-the-badge" alt="PyPI version"></a>
17
+ <a href="https://pypi.org/project/codexspec/"><img src="https://img.shields.io/pypi/pyversions/codexspec.svg?style=for-the-badge" alt="Python versions"></a>
18
+ <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge" alt="License: MIT"></a>
19
+ </p>
16
20
 
17
- **A Spec-Driven Development (SDD) toolkit for Claude Code**
21
+ <p align="center">
22
+ <strong>A Requirements-First SDD toolkit for Claude Code</strong>
23
+ </p>
18
24
 
19
- CodexSpec helps you build high-quality software through a structured, specification-first approach.
20
- Instead of jumping straight to code, you define **what** to build and **why** before deciding **how** to build it.
25
+ CodexSpec helps you build high-quality software through **Requirements-First Spec-Driven Development (SDD)** — confirmed requirements come first, and nothing is binding until you explicitly confirm it.
26
+ Instead of jumping straight to code, you confirm **what** to build and **why** before deciding **how** to build it.
21
27
 
22
28
  [📖 Documentation](https://zts0hg.github.io/codexspec/) | [中文文档](https://zts0hg.github.io/codexspec/zh/) | [日本語ドキュメント](https://zts0hg.github.io/codexspec/ja/) | [한국어 문서](https://zts0hg.github.io/codexspec/ko/) | [Documentación](https://zts0hg.github.io/codexspec/es/) | [Documentation](https://zts0hg.github.io/codexspec/fr/) | [Dokumentation](https://zts0hg.github.io/codexspec/de/) | [Documentação](https://zts0hg.github.io/codexspec/pt-BR/)
23
29
 
@@ -26,7 +32,7 @@ Instead of jumping straight to code, you define **what** to build and **why** be
26
32
  ## Table of Contents
27
33
 
28
34
  - [Why Choose CodexSpec?](#why-choose-codexspec)
29
- - [What is Spec-Driven Development?](#what-is-spec-driven-development)
35
+ - [What is Requirements-First SDD?](#what-is-requirements-first-sdd)
30
36
  - [Design Philosophy: Human-AI Collaboration](#design-philosophy-human-ai-collaboration)
31
37
  - [30-Second Quick Start](#-30-second-quick-start)
32
38
  - [Installation](#installation)
@@ -51,23 +57,23 @@ Why use CodexSpec on top of Claude Code? Here's the comparison:
51
57
 
52
58
  ---
53
59
 
54
- ## What is Spec-Driven Development?
60
+ ## What is Requirements-First SDD?
55
61
 
56
- **Spec-Driven Development (SDD)** is a "specifications first, code later" methodology:
62
+ **Requirements-First SDD** is the Spec-Driven Development (SDD) methodology with one upgrade: **confirmed requirements are the highest-priority authority**. You define and confirm *what* to build and *why* before deciding *how* — and nothing becomes binding until you explicitly confirm it.
57
63
 
58
64
  ```
59
65
  Traditional: Idea → Code → Debug → Rewrite
60
66
  SDD: Idea → Confirmed Requirements → Spec → Plan → Tasks → Code
61
67
  ```
62
68
 
63
- **Why use SDD?**
69
+ **Why use Requirements-First SDD?**
64
70
 
65
- | Problem | SDD Solution |
66
- | -------------------- | ------------------------------------------------ |
67
- | AI misunderstandings | Specs clarify "what to build", AI stops guessing |
68
- | Missing requirements | Interactive clarification discovers edge cases |
69
- | Architecture drift | Review checkpoints ensure correct direction |
70
- | Wasted rework | Problems are found before code is written |
71
+ | Problem | Requirements-First SDD Solution |
72
+ | -------------------- | -------------------------------------------------------- |
73
+ | AI misunderstandings | Confirmed requirements tell AI "what to build"; AI stops guessing |
74
+ | Missing requirements | Interactive clarification + a confirmation gate surface edge cases |
75
+ | Architecture drift | Review checkpoints ensure correct direction |
76
+ | Wasted rework | Problems are found and confirmed before code is written |
71
77
 
72
78
  <details>
73
79
  <summary>✨ Key Features</summary>
@@ -550,7 +556,7 @@ CodexSpec is inspired by GitHub spec-kit with key differences:
550
556
 
551
557
  | Feature | spec-kit | CodexSpec |
552
558
  | ------------------- | ----------------------- | --------------------------------------------- |
553
- | Core Philosophy | Spec-driven development | Spec-driven + Human-AI collaboration |
559
+ | Core Philosophy | Spec-driven development | Requirements-First SDD + Human-AI collaboration |
554
560
  | CLI Name | `specify` | `codexspec` |
555
561
  | Primary AI | Multi-agent support | Focused on Claude Code |
556
562
  | Constitution System | Basic | Full constitution + cross-artifact validation |
@@ -569,7 +575,7 @@ CodexSpec is inspired by GitHub spec-kit with key differences:
569
575
  1. **Review-First Culture**: Every major artifact has a dedicated review command
570
576
  2. **Constitution Governance**: Principles are validated, not just documented
571
577
  3. **Evidence-Based Review**: Defects require concrete evidence; advisory design ideas do not affect acceptance
572
- 4. **Human Checkpoints**: Workflow designed around validation gates
578
+ 4. **Confirmation Gate**: Requirements, specs, plans, and tasks become binding only after explicit human confirmation
573
579
 
574
580
  ---
575
581
 
@@ -0,0 +1,36 @@
1
+ <svg viewBox="0 0 420 96" xmlns="http://www.w3.org/2000/svg">
2
+ <defs>
3
+ <style>
4
+ .mono {
5
+ font-family: 'JetBrains Mono','Fira Code','SF Mono','Consolas','Courier New',monospace;
6
+ }
7
+ </style>
8
+ </defs>
9
+
10
+ <!-- Background -->
11
+ <rect width="420" height="96" rx="12" fill="#0d1117"/>
12
+
13
+ <!-- ── Wordmark: {code} × <spec> ── -->
14
+
15
+ <!-- { -->
16
+ <text class="mono" x="51" y="47" font-size="40" font-weight="700" fill="#58a6ff" dominant-baseline="middle">{</text>
17
+ <!-- code -->
18
+ <text class="mono" x="77" y="47" font-size="33" font-weight="500" fill="#e6edf3" dominant-baseline="middle">code</text>
19
+ <!-- } -->
20
+ <text class="mono" x="160" y="47" font-size="40" font-weight="700" fill="#58a6ff" dominant-baseline="middle">}</text>
21
+
22
+ <!-- × operator -->
23
+ <text class="mono" x="210" y="46" font-size="26" font-weight="700" fill="#f0883e" dominant-baseline="middle" text-anchor="middle">×</text>
24
+
25
+ <!-- < -->
26
+ <text class="mono" x="236" y="47" font-size="40" font-weight="700" fill="#3fb950" dominant-baseline="middle">&lt;</text>
27
+ <!-- spec -->
28
+ <text class="mono" x="262" y="47" font-size="33" font-weight="500" fill="#e6edf3" dominant-baseline="middle">spec</text>
29
+ <!-- > -->
30
+ <text class="mono" x="345" y="47" font-size="40" font-weight="700" fill="#3fb950" dominant-baseline="middle">&gt;</text>
31
+
32
+ <!-- Tagline: three words centered under the wordmark columns {code} × <spec> -->
33
+ <text class="mono" x="118.5" y="75" font-size="9" font-weight="400" fill="#6e7681" text-anchor="middle" letter-spacing="2.8">SPEC</text>
34
+ <text class="mono" x="211.0" y="75" font-size="9" font-weight="400" fill="#6e7681" text-anchor="middle" letter-spacing="2.8">DRIVEN</text>
35
+ <text class="mono" x="304.0" y="75" font-size="9" font-weight="400" fill="#6e7681" text-anchor="middle" letter-spacing="2.8">DEVELOPMENT</text>
36
+ </svg>
@@ -0,0 +1,36 @@
1
+ <svg viewBox="0 0 420 96" xmlns="http://www.w3.org/2000/svg">
2
+ <defs>
3
+ <style>
4
+ .mono {
5
+ font-family: 'JetBrains Mono','Fira Code','SF Mono','Consolas','Courier New',monospace;
6
+ }
7
+ </style>
8
+ </defs>
9
+
10
+ <!-- Background -->
11
+ <rect width="420" height="96" rx="12" fill="#ffffff" stroke="#d0d7de" stroke-width="1"/>
12
+
13
+ <!-- ── Wordmark: {code} × <spec> ── -->
14
+
15
+ <!-- { -->
16
+ <text class="mono" x="51" y="47" font-size="40" font-weight="700" fill="#0969da" dominant-baseline="middle">{</text>
17
+ <!-- code -->
18
+ <text class="mono" x="77" y="47" font-size="33" font-weight="500" fill="#1f2328" dominant-baseline="middle">code</text>
19
+ <!-- } -->
20
+ <text class="mono" x="160" y="47" font-size="40" font-weight="700" fill="#0969da" dominant-baseline="middle">}</text>
21
+
22
+ <!-- × operator -->
23
+ <text class="mono" x="210" y="46" font-size="26" font-weight="700" fill="#bc4c00" dominant-baseline="middle" text-anchor="middle">×</text>
24
+
25
+ <!-- < -->
26
+ <text class="mono" x="236" y="47" font-size="40" font-weight="700" fill="#1a7f37" dominant-baseline="middle">&lt;</text>
27
+ <!-- spec -->
28
+ <text class="mono" x="262" y="47" font-size="33" font-weight="500" fill="#1f2328" dominant-baseline="middle">spec</text>
29
+ <!-- > -->
30
+ <text class="mono" x="345" y="47" font-size="40" font-weight="700" fill="#1a7f37" dominant-baseline="middle">&gt;</text>
31
+
32
+ <!-- Tagline: three words centered under the wordmark columns {code} × <spec> -->
33
+ <text class="mono" x="118.5" y="75" font-size="9" font-weight="400" fill="#8c959f" text-anchor="middle" letter-spacing="2.8">SPEC</text>
34
+ <text class="mono" x="211.0" y="75" font-size="9" font-weight="400" fill="#8c959f" text-anchor="middle" letter-spacing="2.8">DRIVEN</text>
35
+ <text class="mono" x="304.0" y="75" font-size="9" font-weight="400" fill="#8c959f" text-anchor="middle" letter-spacing="2.8">DEVELOPMENT</text>
36
+ </svg>
@@ -1,14 +1,14 @@
1
1
  [project]
2
2
  name = "codexspec"
3
- version = "0.6.0"
4
- description = "CodexSpec - A Spec-Driven Development (SDD) toolkit for Claude Code"
3
+ version = "0.6.2"
4
+ description = "CodexSpec - A Requirements-First SDD toolkit for Claude Code"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
7
7
  license = { text = "MIT" }
8
8
  authors = [
9
9
  { name = "CodexSpec Team" }
10
10
  ]
11
- keywords = ["sdd", "spec-driven-development", "claude", "ai", "cli"]
11
+ keywords = ["requirements-first", "sdd", "spec-driven-development", "requirements-driven", "claude", "ai", "cli"]
12
12
  classifiers = [
13
13
  "Development Status :: 3 - Alpha",
14
14
  "Environment :: Console",
@@ -64,13 +64,21 @@ build-backend = "hatchling.build"
64
64
 
65
65
  [tool.hatch.build.targets.wheel]
66
66
  packages = ["src/codexspec"]
67
- force-include = { "templates" = "codexspec/templates", "scripts" = "codexspec/scripts" }
67
+ # scripts/ is split by AUDIENCE:
68
+ # - bash/ + powershell/ -> user-facing, copied verbatim by `codexspec init`
69
+ # - python/ -> maintainer-only tooling (auto-responder, notifier...)
70
+ # force-include does NOT honor .gitignore, so we ship ONLY the two user subdirs;
71
+ # including all of scripts/ would leak scripts/python/.env (secrets), notify
72
+ # logs, and maintainer-only scripts. Other maintainer tools live in /internal
73
+ # (outside scripts/ entirely). The sdist `include` below mirrors this boundary.
74
+ force-include = { "templates" = "codexspec/templates", "scripts/bash" = "codexspec/scripts/bash", "scripts/powershell" = "codexspec/scripts/powershell" }
68
75
 
69
76
  [tool.hatch.build.targets.sdist]
70
77
  include = [
71
78
  "/src",
72
79
  "/templates",
73
- "/scripts",
80
+ "/scripts/bash",
81
+ "/scripts/powershell",
74
82
  "/codexspec-icon.svg",
75
83
  "/codexspec-logo-dark.svg",
76
84
  "/codexspec-logo-light.svg",
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python3
2
2
  """
3
- CodexSpec - A Spec-Driven Development (SDD) toolkit for Claude Code.
3
+ CodexSpec - A Requirements-First SDD toolkit for Claude Code.
4
4
 
5
5
  This toolkit provides a structured approach to software development using
6
6
  executable specifications that guide AI-assisted implementation.
@@ -30,12 +30,13 @@ from .commands.installer import (
30
30
  from .i18n import (
31
31
  generate_config_content,
32
32
  get_commit_language,
33
+ get_interaction_language,
33
34
  get_language_name,
34
- get_project_language,
35
35
  get_supported_languages,
36
36
  is_supported_language,
37
37
  normalize_locale,
38
38
  update_config_language,
39
+ update_language_field,
39
40
  update_output_language,
40
41
  )
41
42
  from .translator import translate
@@ -51,7 +52,7 @@ MARKDOWNLINT_DISABLE_MD041 = "<!-- markdownlint-disable MD041 -->\n"
51
52
 
52
53
  app = typer.Typer(
53
54
  name="codexspec",
54
- help="CodexSpec - A Spec-Driven Development (SDD) toolkit for Claude Code",
55
+ help="CodexSpec - A Requirements-First SDD toolkit for Claude Code",
55
56
  add_completion=False,
56
57
  )
57
58
  console = Console()
@@ -185,6 +186,16 @@ def config(
185
186
  "-c",
186
187
  help="Set the commit message language (defaults to output language)",
187
188
  ),
189
+ set_interaction_lang: Optional[str] = typer.Option(
190
+ None,
191
+ "--set-interaction-lang",
192
+ help="Set the interaction language (LLM dialogue + codexspec CLI terminal output)",
193
+ ),
194
+ set_document_lang: Optional[str] = typer.Option(
195
+ None,
196
+ "--set-document-lang",
197
+ help="Set the document language (generated requirements/spec/plan/tasks files)",
198
+ ),
188
199
  list_langs: bool = typer.Option(
189
200
  False,
190
201
  "--list-langs",
@@ -322,6 +333,45 @@ def config(
322
333
  console.print(f"[green]Commit message language set to:[/green] {normalized} ({lang_name})")
323
334
  return
324
335
 
336
+ # Handle set interaction language
337
+ if set_interaction_lang:
338
+ normalized = normalize_locale(set_interaction_lang)
339
+ if not is_supported_language(normalized):
340
+ console.print(
341
+ f"[yellow]Warning: '{set_interaction_lang}' is not in the list of "
342
+ "commonly supported languages.[/yellow]"
343
+ )
344
+ console.print(
345
+ "It may still work if Claude supports it. "
346
+ "Run [cyan]codexspec config --list-langs[/cyan] to see supported languages."
347
+ )
348
+ if update_language_field(config_file, "interaction", normalized):
349
+ lang_name = get_language_name(normalized)
350
+ console.print(f"[green]Interaction language set to:[/green] {normalized} ({lang_name})")
351
+ else:
352
+ console.print("[red]Failed to update interaction language setting[/red]")
353
+ raise typer.Exit(1)
354
+ return
355
+
356
+ # Handle set document language
357
+ if set_document_lang:
358
+ normalized = normalize_locale(set_document_lang)
359
+ if not is_supported_language(normalized):
360
+ console.print(
361
+ f"[yellow]Warning: '{set_document_lang}' is not in the list of commonly supported languages.[/yellow]"
362
+ )
363
+ console.print(
364
+ "It may still work if Claude supports it. "
365
+ "Run [cyan]codexspec config --list-langs[/cyan] to see supported languages."
366
+ )
367
+ if update_language_field(config_file, "document", normalized):
368
+ lang_name = get_language_name(normalized)
369
+ console.print(f"[green]Document language set to:[/green] {normalized} ({lang_name})")
370
+ else:
371
+ console.print("[red]Failed to update document language setting[/red]")
372
+ raise typer.Exit(1)
373
+ return
374
+
325
375
  # Display current configuration
326
376
  console.print(
327
377
  Panel(
@@ -340,8 +390,8 @@ def list_commands() -> None:
340
390
  showing their display names and descriptions.
341
391
  """
342
392
 
343
- # Get user's language preference
344
- language = get_project_language()
393
+ # Get user's language preference (CLI terminal output uses the interaction language)
394
+ language = get_interaction_language()
345
395
 
346
396
  metadata = get_installed_commands_metadata()
347
397
 
@@ -935,8 +985,9 @@ This document provides comprehensive context and guidelines for Claude Code when
935
985
 
936
986
  ## Project Overview
937
987
 
938
- This project uses the **CodexSpec** methodology - a Spec-Driven Development (SDD) approach
939
- that emphasizes specifications as executable artifacts that directly guide implementation.
988
+ This project uses the **CodexSpec** methodology - a Requirements-First Spec-Driven Development (SDD)
989
+ approach where confirmed requirements are the highest-priority authority, and nothing is binding
990
+ until explicitly confirmed. Specifications and plans are executable artifacts that guide implementation.
940
991
 
941
992
  ## Available Commands
942
993
 
@@ -57,49 +57,49 @@ def get_commands_metadata() -> list[CommandMetadata]:
57
57
  {
58
58
  "name": "specify",
59
59
  "display_name": "/codexspec:specify",
60
- "description": "通过交互式问答明确需求,探索'做什么'和'为什么'",
60
+ "description": "讨论、确认并固化权威的需求记录",
61
61
  "category": "core",
62
62
  "file_name": "specify.md",
63
63
  },
64
64
  {
65
65
  "name": "generate-spec",
66
66
  "display_name": "/codexspec:generate-spec",
67
- "description": "从已明确的需求生成详细的 spec.md 规格文档",
67
+ "description": "将已确认的需求编写为可追溯的 spec.md",
68
68
  "category": "core",
69
69
  "file_name": "generate-spec.md",
70
70
  },
71
71
  {
72
72
  "name": "spec-to-plan",
73
73
  "display_name": "/codexspec:spec-to-plan",
74
- "description": "将功能规格转换为技术实现计划",
74
+ "description": "将已确认的规格转换为可追溯的技术计划",
75
75
  "category": "core",
76
76
  "file_name": "spec-to-plan.md",
77
77
  },
78
78
  {
79
79
  "name": "plan-to-tasks",
80
80
  "display_name": "/codexspec:plan-to-tasks",
81
- "description": "将技术计划分解为可执行的任务列表",
81
+ "description": "将已批准的计划展开为可追溯、可执行的任务",
82
82
  "category": "core",
83
83
  "file_name": "plan-to-tasks.md",
84
84
  },
85
85
  {
86
86
  "name": "review-spec",
87
87
  "display_name": "/codexspec:review-spec",
88
- "description": "审查功能规格的完整性和质量",
88
+ "description": "审查规格的忠实度、内部质量与计划就绪度",
89
89
  "category": "core",
90
90
  "file_name": "review-spec.md",
91
91
  },
92
92
  {
93
93
  "name": "review-plan",
94
94
  "display_name": "/codexspec:review-plan",
95
- "description": "审查技术计划的可行性和对齐度",
95
+ "description": "审查计划的忠实度、可行性与实现就绪度",
96
96
  "category": "core",
97
97
  "file_name": "review-plan.md",
98
98
  },
99
99
  {
100
100
  "name": "review-tasks",
101
101
  "display_name": "/codexspec:review-tasks",
102
- "description": "审查任务分解的完整性和 TDD 合规性",
102
+ "description": "审查任务的忠实度、可执行性、依赖关系与验证",
103
103
  "category": "core",
104
104
  "file_name": "review-tasks.md",
105
105
  },
@@ -114,14 +114,14 @@ def get_commands_metadata() -> list[CommandMetadata]:
114
114
  {
115
115
  "name": "clarify",
116
116
  "display_name": "/codexspec:clarify",
117
- "description": "在技术规划前提出澄清问题",
117
+ "description": "解决需求歧义,并将 requirements.md 与 spec.md 同步",
118
118
  "category": "enhanced",
119
119
  "file_name": "clarify.md",
120
120
  },
121
121
  {
122
122
  "name": "analyze",
123
123
  "display_name": "/codexspec:analyze",
124
- "description": "跨工件一致性和质量分析",
124
+ "description": "分析 SDD 工件间的端到端可追溯性与一致性",
125
125
  "category": "enhanced",
126
126
  "file_name": "analyze.md",
127
127
  },
@@ -173,7 +173,7 @@ def get_commands_metadata() -> list[CommandMetadata]:
173
173
  {
174
174
  "name": "quick",
175
175
  "display_name": "/codexspec:quick",
176
- "description": "小需求的一站式快速实现 — 自动完成 spec、plan、tasks 和代码",
176
+ "description": "为小型变更运行精简的 Requirements-First SDD 流程",
177
177
  "category": "utility",
178
178
  "file_name": "quick.md",
179
179
  },