codexspec 0.7.8__tar.gz → 0.7.10__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.
- {codexspec-0.7.8 → codexspec-0.7.10}/PKG-INFO +24 -12
- {codexspec-0.7.8 → codexspec-0.7.10}/README.md +23 -11
- {codexspec-0.7.8 → codexspec-0.7.10}/pyproject.toml +1 -1
- {codexspec-0.7.8 → codexspec-0.7.10}/src/codexspec/__init__.py +1 -1
- {codexspec-0.7.8 → codexspec-0.7.10}/src/codexspec/commands/installer.py +26 -5
- {codexspec-0.7.8 → codexspec-0.7.10}/src/codexspec/integrations/codex.py +1 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/analyze.md +9 -4
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/generate-spec.md +2 -2
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/implement-tasks.md +6 -2
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/plan-to-tasks.md +3 -0
- codexspec-0.7.10/templates/commands/release-notes.md +212 -0
- codexspec-0.7.10/templates/commands/review-design.md +132 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/review-plan.md +8 -6
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/review-tasks.md +6 -5
- codexspec-0.7.10/templates/commands/spec-to-design.md +114 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/spec-to-plan.md +24 -21
- codexspec-0.7.10/templates/docs/design-template.md +95 -0
- codexspec-0.7.10/templates/docs/plan-template-detailed.md +101 -0
- codexspec-0.7.10/templates/docs/plan-template-simple.md +53 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/translations/de.json +2 -2
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/translations/en.json +2 -2
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/translations/es.json +2 -2
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/translations/fr.json +2 -2
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/translations/ja.json +2 -2
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/translations/ko.json +2 -2
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/translations/pt-BR.json +2 -2
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/translations/zh-CN.json +2 -2
- codexspec-0.7.8/templates/docs/plan-template-detailed.md +0 -218
- codexspec-0.7.8/templates/docs/plan-template-simple.md +0 -57
- {codexspec-0.7.8 → codexspec-0.7.10}/.gitignore +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/LICENSE +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/codexspec-icon.svg +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/codexspec-logo-dark.svg +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/codexspec-logo-light.svg +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/scripts/bash/check-i18n-completeness.sh +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/scripts/bash/check-i18n-structure.sh +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/scripts/bash/check-prerequisites.sh +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/scripts/bash/common.sh +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/scripts/bash/create-new-feature.sh +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/scripts/bash/review-context.sh +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/scripts/powershell/check-prerequisites.ps1 +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/scripts/powershell/common.ps1 +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/scripts/powershell/create-new-feature.ps1 +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/scripts/powershell/review-context.ps1 +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/src/codexspec/commands/__init__.py +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/src/codexspec/i18n.py +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/src/codexspec/idea.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/src/codexspec/integrations/__init__.py +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/src/codexspec/integrations/base.py +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/src/codexspec/integrations/claude.py +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/src/codexspec/profile.py +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/src/codexspec/translator.py +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/checklist.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/clarify.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/commit-staged.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/config.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/constitution.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/debug.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/distill.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/evolve.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/pr.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/quick.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/review-code.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/review-spec.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/specify.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/commands/tasks-to-issues.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/docs/checklist-template.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/docs/constitution-template.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/docs/requirements-template.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/docs/spec-template-detailed.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/docs/spec-template-simple.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/docs/tasks-template-detailed.md +0 -0
- {codexspec-0.7.8 → codexspec-0.7.10}/templates/docs/tasks-template-simple.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: codexspec
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.10
|
|
4
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
|
|
@@ -166,9 +166,12 @@ CodexSpec is built on the belief that **effective AI-assisted development requir
|
|
|
166
166
|
CodexSpec structures development into **reviewable checkpoints**:
|
|
167
167
|
|
|
168
168
|
```
|
|
169
|
-
Idea → /specify
|
|
170
|
-
|
|
171
|
-
|
|
169
|
+
Idea → /specify → requirements.md
|
|
170
|
+
→ /generate-spec → spec.md → review-spec
|
|
171
|
+
→ /spec-to-design → design.md → review-design
|
|
172
|
+
→ /spec-to-plan → plan.md → review-plan
|
|
173
|
+
→ /plan-to-tasks → tasks.md → review-tasks
|
|
174
|
+
→ /implement-tasks → code
|
|
172
175
|
```
|
|
173
176
|
|
|
174
177
|
Confirmed requirements are the highest-priority feature authority. Derived artifacts carry explicit source links so conflicts can be traced back instead of silently propagated.
|
|
@@ -176,6 +179,7 @@ Confirmed requirements are the highest-priority feature authority. Derived artif
|
|
|
176
179
|
**Every generated artifact has a corresponding review command:**
|
|
177
180
|
|
|
178
181
|
- `spec.md` → `/codexspec:review-spec`
|
|
182
|
+
- `design.md` → `/codexspec:review-design`
|
|
179
183
|
- `plan.md` → `/codexspec:review-plan`
|
|
180
184
|
- `tasks.md` → `/codexspec:review-tasks`
|
|
181
185
|
- All artifacts → `/codexspec:analyze`
|
|
@@ -207,6 +211,7 @@ claude
|
|
|
207
211
|
> /codexspec:constitution Create principles focused on code quality and testing
|
|
208
212
|
> /codexspec:specify I want to build a todo application
|
|
209
213
|
> /codexspec:generate-spec
|
|
214
|
+
> /codexspec:spec-to-design
|
|
210
215
|
> /codexspec:spec-to-plan
|
|
211
216
|
> /codexspec:plan-to-tasks
|
|
212
217
|
> /codexspec:implement-tasks
|
|
@@ -355,9 +360,12 @@ The config command will guide you through:
|
|
|
355
360
|
CodexSpec breaks development into **reviewable checkpoints**:
|
|
356
361
|
|
|
357
362
|
```
|
|
358
|
-
Idea → /specify
|
|
359
|
-
|
|
360
|
-
|
|
363
|
+
Idea → /specify → requirements.md
|
|
364
|
+
→ /generate-spec → spec.md → review-spec
|
|
365
|
+
→ /spec-to-design → design.md → review-design
|
|
366
|
+
→ /spec-to-plan → plan.md → review-plan
|
|
367
|
+
→ /plan-to-tasks → tasks.md → review-tasks
|
|
368
|
+
→ /implement-tasks → code
|
|
361
369
|
```
|
|
362
370
|
|
|
363
371
|
### Workflow Steps
|
|
@@ -367,10 +375,11 @@ Idea → /specify → requirements.md → /generate-spec → spec.md → /spec-t
|
|
|
367
375
|
| 1. Project Principles | `/codexspec:constitution` | `constitution.md` | ✅ |
|
|
368
376
|
| 2. Requirement Clarification | `/codexspec:specify` | `requirements.md` | ✅ |
|
|
369
377
|
| 3. Generate Spec | `/codexspec:generate-spec` | `spec.md` + auto-review | ✅ |
|
|
370
|
-
| 4.
|
|
371
|
-
| 5.
|
|
372
|
-
| 6.
|
|
373
|
-
| 7.
|
|
378
|
+
| 4. System Design | `/codexspec:spec-to-design` | `design.md` + auto-review | ✅ |
|
|
379
|
+
| 5. Technical Planning | `/codexspec:spec-to-plan` | `plan.md` + auto-review | ✅ |
|
|
380
|
+
| 6. Task Breakdown | `/codexspec:plan-to-tasks` | `tasks.md` + auto-review | ✅ |
|
|
381
|
+
| 7. Cross-Artifact Analysis | `/codexspec:analyze` | Analysis report | ✅ |
|
|
382
|
+
| 8. Implementation | `/codexspec:implement-tasks` | Code | - |
|
|
374
383
|
|
|
375
384
|
### specify vs clarify: When to Use Which?
|
|
376
385
|
|
|
@@ -568,7 +577,8 @@ Implementation follows **conditional TDD workflow**:
|
|
|
568
577
|
| `/codexspec:constitution` | Create/update project constitution with cross-artifact validation |
|
|
569
578
|
| `/codexspec:specify` | Clarify, confirm, and persist requirements in `requirements.md` |
|
|
570
579
|
| `/codexspec:generate-spec` | Generate `spec.md` document ★ Auto-review |
|
|
571
|
-
| `/codexspec:spec-to-
|
|
580
|
+
| `/codexspec:spec-to-design` | Produce `design.md` (architecture/components/decisions) ★ Auto-review |
|
|
581
|
+
| `/codexspec:spec-to-plan` | Convert design to implementation plan ★ Auto-review |
|
|
572
582
|
| `/codexspec:plan-to-tasks` | Break down plan into traceable, verifiable tasks ★ Auto-review |
|
|
573
583
|
| `/codexspec:implement-tasks` | Execute tasks (conditional TDD) |
|
|
574
584
|
|
|
@@ -577,6 +587,7 @@ Implementation follows **conditional TDD workflow**:
|
|
|
577
587
|
| Command | Description |
|
|
578
588
|
| ------------------------- | -------------------------------------- |
|
|
579
589
|
| `/codexspec:review-spec` | Review specification (auto or manual) |
|
|
590
|
+
| `/codexspec:review-design` | Review design (auto or manual) |
|
|
580
591
|
| `/codexspec:review-plan` | Review technical plan (auto or manual) |
|
|
581
592
|
| `/codexspec:review-tasks` | Review task breakdown (auto or manual) |
|
|
582
593
|
|
|
@@ -604,6 +615,7 @@ Implementation follows **conditional TDD workflow**:
|
|
|
604
615
|
| -------------------------- | ------------------------------------------------- |
|
|
605
616
|
| `/codexspec:commit-staged` | Generate commit message from staged changes |
|
|
606
617
|
| `/codexspec:pr` | Generate PR/MR description (auto-detect platform) |
|
|
618
|
+
| `/codexspec:release-notes` | Generate release notes from git history (maintain CHANGELOG.md + release body)|
|
|
607
619
|
|
|
608
620
|
#### Code Review Commands
|
|
609
621
|
|
|
@@ -121,9 +121,12 @@ CodexSpec is built on the belief that **effective AI-assisted development requir
|
|
|
121
121
|
CodexSpec structures development into **reviewable checkpoints**:
|
|
122
122
|
|
|
123
123
|
```
|
|
124
|
-
Idea → /specify
|
|
125
|
-
|
|
126
|
-
|
|
124
|
+
Idea → /specify → requirements.md
|
|
125
|
+
→ /generate-spec → spec.md → review-spec
|
|
126
|
+
→ /spec-to-design → design.md → review-design
|
|
127
|
+
→ /spec-to-plan → plan.md → review-plan
|
|
128
|
+
→ /plan-to-tasks → tasks.md → review-tasks
|
|
129
|
+
→ /implement-tasks → code
|
|
127
130
|
```
|
|
128
131
|
|
|
129
132
|
Confirmed requirements are the highest-priority feature authority. Derived artifacts carry explicit source links so conflicts can be traced back instead of silently propagated.
|
|
@@ -131,6 +134,7 @@ Confirmed requirements are the highest-priority feature authority. Derived artif
|
|
|
131
134
|
**Every generated artifact has a corresponding review command:**
|
|
132
135
|
|
|
133
136
|
- `spec.md` → `/codexspec:review-spec`
|
|
137
|
+
- `design.md` → `/codexspec:review-design`
|
|
134
138
|
- `plan.md` → `/codexspec:review-plan`
|
|
135
139
|
- `tasks.md` → `/codexspec:review-tasks`
|
|
136
140
|
- All artifacts → `/codexspec:analyze`
|
|
@@ -162,6 +166,7 @@ claude
|
|
|
162
166
|
> /codexspec:constitution Create principles focused on code quality and testing
|
|
163
167
|
> /codexspec:specify I want to build a todo application
|
|
164
168
|
> /codexspec:generate-spec
|
|
169
|
+
> /codexspec:spec-to-design
|
|
165
170
|
> /codexspec:spec-to-plan
|
|
166
171
|
> /codexspec:plan-to-tasks
|
|
167
172
|
> /codexspec:implement-tasks
|
|
@@ -310,9 +315,12 @@ The config command will guide you through:
|
|
|
310
315
|
CodexSpec breaks development into **reviewable checkpoints**:
|
|
311
316
|
|
|
312
317
|
```
|
|
313
|
-
Idea → /specify
|
|
314
|
-
|
|
315
|
-
|
|
318
|
+
Idea → /specify → requirements.md
|
|
319
|
+
→ /generate-spec → spec.md → review-spec
|
|
320
|
+
→ /spec-to-design → design.md → review-design
|
|
321
|
+
→ /spec-to-plan → plan.md → review-plan
|
|
322
|
+
→ /plan-to-tasks → tasks.md → review-tasks
|
|
323
|
+
→ /implement-tasks → code
|
|
316
324
|
```
|
|
317
325
|
|
|
318
326
|
### Workflow Steps
|
|
@@ -322,10 +330,11 @@ Idea → /specify → requirements.md → /generate-spec → spec.md → /spec-t
|
|
|
322
330
|
| 1. Project Principles | `/codexspec:constitution` | `constitution.md` | ✅ |
|
|
323
331
|
| 2. Requirement Clarification | `/codexspec:specify` | `requirements.md` | ✅ |
|
|
324
332
|
| 3. Generate Spec | `/codexspec:generate-spec` | `spec.md` + auto-review | ✅ |
|
|
325
|
-
| 4.
|
|
326
|
-
| 5.
|
|
327
|
-
| 6.
|
|
328
|
-
| 7.
|
|
333
|
+
| 4. System Design | `/codexspec:spec-to-design` | `design.md` + auto-review | ✅ |
|
|
334
|
+
| 5. Technical Planning | `/codexspec:spec-to-plan` | `plan.md` + auto-review | ✅ |
|
|
335
|
+
| 6. Task Breakdown | `/codexspec:plan-to-tasks` | `tasks.md` + auto-review | ✅ |
|
|
336
|
+
| 7. Cross-Artifact Analysis | `/codexspec:analyze` | Analysis report | ✅ |
|
|
337
|
+
| 8. Implementation | `/codexspec:implement-tasks` | Code | - |
|
|
329
338
|
|
|
330
339
|
### specify vs clarify: When to Use Which?
|
|
331
340
|
|
|
@@ -523,7 +532,8 @@ Implementation follows **conditional TDD workflow**:
|
|
|
523
532
|
| `/codexspec:constitution` | Create/update project constitution with cross-artifact validation |
|
|
524
533
|
| `/codexspec:specify` | Clarify, confirm, and persist requirements in `requirements.md` |
|
|
525
534
|
| `/codexspec:generate-spec` | Generate `spec.md` document ★ Auto-review |
|
|
526
|
-
| `/codexspec:spec-to-
|
|
535
|
+
| `/codexspec:spec-to-design` | Produce `design.md` (architecture/components/decisions) ★ Auto-review |
|
|
536
|
+
| `/codexspec:spec-to-plan` | Convert design to implementation plan ★ Auto-review |
|
|
527
537
|
| `/codexspec:plan-to-tasks` | Break down plan into traceable, verifiable tasks ★ Auto-review |
|
|
528
538
|
| `/codexspec:implement-tasks` | Execute tasks (conditional TDD) |
|
|
529
539
|
|
|
@@ -532,6 +542,7 @@ Implementation follows **conditional TDD workflow**:
|
|
|
532
542
|
| Command | Description |
|
|
533
543
|
| ------------------------- | -------------------------------------- |
|
|
534
544
|
| `/codexspec:review-spec` | Review specification (auto or manual) |
|
|
545
|
+
| `/codexspec:review-design` | Review design (auto or manual) |
|
|
535
546
|
| `/codexspec:review-plan` | Review technical plan (auto or manual) |
|
|
536
547
|
| `/codexspec:review-tasks` | Review task breakdown (auto or manual) |
|
|
537
548
|
|
|
@@ -559,6 +570,7 @@ Implementation follows **conditional TDD workflow**:
|
|
|
559
570
|
| -------------------------- | ------------------------------------------------- |
|
|
560
571
|
| `/codexspec:commit-staged` | Generate commit message from staged changes |
|
|
561
572
|
| `/codexspec:pr` | Generate PR/MR description (auto-detect platform) |
|
|
573
|
+
| `/codexspec:release-notes` | Generate release notes from git history (maintain CHANGELOG.md + release body)|
|
|
562
574
|
|
|
563
575
|
#### Code Review Commands
|
|
564
576
|
|
|
@@ -44,7 +44,7 @@ from .profile import ensure_profile_scaffold, inject_profile_block
|
|
|
44
44
|
from .translator import SUPPORTED_LANGUAGES, translate
|
|
45
45
|
|
|
46
46
|
# Version info
|
|
47
|
-
__version__ = "0.7.
|
|
47
|
+
__version__ = "0.7.10"
|
|
48
48
|
__author__ = "CodexSpec Team"
|
|
49
49
|
|
|
50
50
|
# Constitution file path constants
|
|
@@ -47,11 +47,11 @@ def get_commands_metadata() -> list[CommandMetadata]:
|
|
|
47
47
|
|
|
48
48
|
Returns:
|
|
49
49
|
List of CommandMetadata dictionaries sorted by category priority:
|
|
50
|
-
core (
|
|
51
|
-
Total:
|
|
50
|
+
core (11) -> enhanced (7) -> git (3) -> review (1) -> utility (2)
|
|
51
|
+
Total: 24 commands
|
|
52
52
|
"""
|
|
53
53
|
return [
|
|
54
|
-
# Core Commands (
|
|
54
|
+
# Core Commands (11)
|
|
55
55
|
{
|
|
56
56
|
"name": "constitution",
|
|
57
57
|
"display_name": "/codexspec:constitution",
|
|
@@ -73,10 +73,17 @@ def get_commands_metadata() -> list[CommandMetadata]:
|
|
|
73
73
|
"category": "core",
|
|
74
74
|
"file_name": "generate-spec.md",
|
|
75
75
|
},
|
|
76
|
+
{
|
|
77
|
+
"name": "spec-to-design",
|
|
78
|
+
"display_name": "/codexspec:spec-to-design",
|
|
79
|
+
"description": "将已确认的规格转换为可追溯的设计文档(架构/组件/关键设计决策)",
|
|
80
|
+
"category": "core",
|
|
81
|
+
"file_name": "spec-to-design.md",
|
|
82
|
+
},
|
|
76
83
|
{
|
|
77
84
|
"name": "spec-to-plan",
|
|
78
85
|
"display_name": "/codexspec:spec-to-plan",
|
|
79
|
-
"description": "
|
|
86
|
+
"description": "将已确认的设计转换为可追溯的实现计划",
|
|
80
87
|
"category": "core",
|
|
81
88
|
"file_name": "spec-to-plan.md",
|
|
82
89
|
},
|
|
@@ -94,6 +101,13 @@ def get_commands_metadata() -> list[CommandMetadata]:
|
|
|
94
101
|
"category": "core",
|
|
95
102
|
"file_name": "review-spec.md",
|
|
96
103
|
},
|
|
104
|
+
{
|
|
105
|
+
"name": "review-design",
|
|
106
|
+
"display_name": "/codexspec:review-design",
|
|
107
|
+
"description": "审查设计的忠实度、可行性与规划就绪度",
|
|
108
|
+
"category": "core",
|
|
109
|
+
"file_name": "review-design.md",
|
|
110
|
+
},
|
|
97
111
|
{
|
|
98
112
|
"name": "review-plan",
|
|
99
113
|
"display_name": "/codexspec:review-plan",
|
|
@@ -165,7 +179,7 @@ def get_commands_metadata() -> list[CommandMetadata]:
|
|
|
165
179
|
"category": "enhanced",
|
|
166
180
|
"file_name": "debug.md",
|
|
167
181
|
},
|
|
168
|
-
# Git Workflow Commands (
|
|
182
|
+
# Git Workflow Commands (3)
|
|
169
183
|
{
|
|
170
184
|
"name": "commit-staged",
|
|
171
185
|
"display_name": "/codexspec:commit-staged",
|
|
@@ -180,6 +194,13 @@ def get_commands_metadata() -> list[CommandMetadata]:
|
|
|
180
194
|
"category": "git",
|
|
181
195
|
"file_name": "pr.md",
|
|
182
196
|
},
|
|
197
|
+
{
|
|
198
|
+
"name": "release-notes",
|
|
199
|
+
"display_name": "/codexspec:release-notes",
|
|
200
|
+
"description": "从 git 历史生成发布说明:更新 CHANGELOG.md + 用户向发布正文(不决定版本)",
|
|
201
|
+
"category": "git",
|
|
202
|
+
"file_name": "release-notes.md",
|
|
203
|
+
},
|
|
183
204
|
# Code Review Commands (1)
|
|
184
205
|
{
|
|
185
206
|
"name": "review-code",
|
|
@@ -115,6 +115,7 @@ Use these Codex skills when working on CodexSpec workflows:
|
|
|
115
115
|
- `$codexspec:constitution` to create or update project principles.
|
|
116
116
|
- `$codexspec:specify` to capture confirmed requirements.
|
|
117
117
|
- `$codexspec:generate-spec` to produce `spec.md`.
|
|
118
|
+
- `$codexspec:spec-to-design` to produce `design.md`.
|
|
118
119
|
- `$codexspec:spec-to-plan` to produce `plan.md`.
|
|
119
120
|
- `$codexspec:plan-to-tasks` to produce `tasks.md`.
|
|
120
121
|
- `$codexspec:implement-tasks` to implement approved tasks.
|
|
@@ -22,7 +22,7 @@ Converse in the interaction language and author artifacts in the document langua
|
|
|
22
22
|
|
|
23
23
|
This command detects cross-artifact inconsistencies **and auto-remediates them**. It is not read-only.
|
|
24
24
|
|
|
25
|
-
- `requirements.md` is the single source of truth. analyze **never modifies `requirements.md`**. Every fix conforms the downstream artifacts (`spec.md`, `plan.md`, `tasks.md`) to `requirements.md`; the fix direction is uniquely determined by the authority hierarchy (requirements > spec > plan > tasks) and never requires inventing intent.
|
|
25
|
+
- `requirements.md` is the single source of truth. analyze **never modifies `requirements.md`**. Every fix conforms the downstream artifacts (`spec.md`, `design.md`, `plan.md`, `tasks.md`) to `requirements.md`; the fix direction is uniquely determined by the authority hierarchy (requirements > spec > design > plan > tasks) and never requires inventing intent.
|
|
26
26
|
- Auto-apply deterministic, authority-directed fixes **by default** — both when invoked manually and when invoked inside the `auto_next` chain — with no confirmation prompt and no human-escalation path.
|
|
27
27
|
|
|
28
28
|
Resolve the feature by explicit path, then current branch. Ask the user if it is ambiguous; never select the latest feature silently.
|
|
@@ -33,10 +33,13 @@ Load:
|
|
|
33
33
|
|
|
34
34
|
- `requirements.md`
|
|
35
35
|
- `spec.md`
|
|
36
|
+
- `design.md`
|
|
36
37
|
- `plan.md`
|
|
37
38
|
- `tasks.md`
|
|
38
39
|
- Constitution
|
|
39
40
|
|
|
41
|
+
A legacy feature may have no `design.md`; when it is absent, analyze the chain without the design link and proceed.
|
|
42
|
+
|
|
40
43
|
Legacy compatibility: if `requirements.md` is missing, state that the analysis starts at `spec.md` and cannot validate fidelity to the original discussion. In legacy mode there is no source of truth to conform to, so do not auto-modify artifacts; report findings only.
|
|
41
44
|
|
|
42
45
|
## End-to-End Traceability
|
|
@@ -46,7 +49,8 @@ Build the chain:
|
|
|
46
49
|
```text
|
|
47
50
|
confirmed NEED/CON/DEC/OUT
|
|
48
51
|
-> REQ/NFR Sources
|
|
49
|
-
->
|
|
52
|
+
-> design Covers
|
|
53
|
+
-> plan Covers (Covers: REQ; Design: <component>)
|
|
50
54
|
-> task Covers + Plan reference
|
|
51
55
|
```
|
|
52
56
|
|
|
@@ -54,7 +58,8 @@ Detect:
|
|
|
54
58
|
|
|
55
59
|
- Confirmed requirements with no spec coverage
|
|
56
60
|
- Spec requirements with missing or invalid sources
|
|
57
|
-
- Spec requirements with no
|
|
61
|
+
- Spec requirements with no design coverage
|
|
62
|
+
- Design components with no plan coverage
|
|
58
63
|
- Plan deliverables with no task coverage
|
|
59
64
|
- Tasks with no upstream authority or implementation-support justification
|
|
60
65
|
- Semantic drift, scope expansion, contradictions, and use of superseded/open entries
|
|
@@ -89,7 +94,7 @@ Produce:
|
|
|
89
94
|
|
|
90
95
|
- Authority mode
|
|
91
96
|
- End-to-end coverage table
|
|
92
|
-
- Applied remediations: the exact downstream edits made to `spec.md`/`plan.md`/`tasks.md` and why, or "none"
|
|
97
|
+
- Applied remediations: the exact downstream edits made to `spec.md`/`design.md`/`plan.md`/`tasks.md` and why, or "none"
|
|
93
98
|
- Verified defects by severity that were not auto-remediable (for example, a reported-only tie-break conflict)
|
|
94
99
|
- Unmapped or unauthorized items
|
|
95
100
|
- Risk Advisories
|
|
@@ -101,8 +101,8 @@ Read `workflow.auto_next` from `.codexspec/config.yml` (default `false`; only th
|
|
|
101
101
|
|
|
102
102
|
When `workflow.auto_next` is `true` AND the Automatic Review Loop above concluded in a passing state — the final Overall Status is `PASS` or `PASS_WITH_WARNINGS` — advance the chain automatically:
|
|
103
103
|
|
|
104
|
-
1. Emit exactly one notice line, in the interaction language, e.g. `auto_next: review passed → invoking /codexspec:spec-to-
|
|
105
|
-
2. Invoke `/codexspec:spec-to-
|
|
104
|
+
1. Emit exactly one notice line, in the interaction language, e.g. `auto_next: review passed → invoking /codexspec:spec-to-design <feature-dir>`.
|
|
105
|
+
2. Invoke `/codexspec:spec-to-design <feature-dir>` exactly once, then end this command.
|
|
106
106
|
|
|
107
107
|
Do not auto-advance when `workflow.auto_next` is disabled, or the review loop stopped at `NEEDS_REVISION` or `BLOCKED`, or stopped early per the conditions above; in those cases hand control back to the user exactly as the review loop already does. This advances the chain and does not modify the Output Summary.
|
|
108
108
|
|
|
@@ -37,6 +37,7 @@ Read:
|
|
|
37
37
|
|
|
38
38
|
- `requirements.md`
|
|
39
39
|
- `spec.md`
|
|
40
|
+
- `design.md`
|
|
40
41
|
- `plan.md`
|
|
41
42
|
- `tasks.md`
|
|
42
43
|
- `.codexspec/memory/constitution.md` when present
|
|
@@ -46,8 +47,11 @@ Authority order:
|
|
|
46
47
|
1. Confirmed entries in `requirements.md`
|
|
47
48
|
2. `spec.md`
|
|
48
49
|
3. Constitution and verified repository facts
|
|
49
|
-
4.
|
|
50
|
-
5. `
|
|
50
|
+
4. `design.md`
|
|
51
|
+
5. Approved `plan.md`
|
|
52
|
+
6. `tasks.md`
|
|
53
|
+
|
|
54
|
+
A legacy feature may have no `design.md`; when it is absent, proceed with `plan.md` as the design-and-plan authority.
|
|
51
55
|
|
|
52
56
|
When `requirements.md` is absent, use legacy spec-only mode. Treat `spec.md` as
|
|
53
57
|
the temporary highest feature authority and state that fidelity to the original
|
|
@@ -33,9 +33,12 @@ Read:
|
|
|
33
33
|
|
|
34
34
|
- `requirements.md`
|
|
35
35
|
- `spec.md`
|
|
36
|
+
- `design.md`
|
|
36
37
|
- `plan.md`
|
|
37
38
|
- Constitution and relevant repository conventions
|
|
38
39
|
|
|
40
|
+
`design.md` (the confirmed design) sits between `spec.md` and `plan.md` in authority; read it as context so tasks trace to the design the plan implements. A legacy feature may have no `design.md`; proceed from `plan.md` in that case.
|
|
41
|
+
|
|
39
42
|
Legacy compatibility: when `requirements.md` is absent, use `spec.md` as the temporary highest authority and state the limitation.
|
|
40
43
|
|
|
41
44
|
## Stop Conditions
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Generate release notes from git history — maintain a Keep a Changelog CHANGELOG.md entry and emit a user-facing release body, without deciding versions or mutating git state
|
|
3
|
+
allowed-tools: Bash(git branch:*), Bash(git tag:*), Bash(git describe:*), Bash(git log:*), Bash(git diff:*), Bash(git rev-parse:*), Bash(git remote:*), Bash(ls:*), Bash(cat:*), Read, Edit, Write
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Constitution Compliance (MANDATORY)
|
|
7
|
+
|
|
8
|
+
**Before generating release notes:**
|
|
9
|
+
|
|
10
|
+
1. **Check for Constitution File**: Look for `.codexspec/memory/constitution.md`
|
|
11
|
+
2. **If Constitution Exists**:
|
|
12
|
+
- Load and read relevant principles (especially documentation and versioning standards)
|
|
13
|
+
- Ensure the generated notes align with constitutional guidelines
|
|
14
|
+
3. **If No Constitution Exists**: Proceed with the defaults below
|
|
15
|
+
|
|
16
|
+
## Language Preference
|
|
17
|
+
|
|
18
|
+
**IMPORTANT**: Before generating output, read the project's language configuration from `.codexspec/config.yml`.
|
|
19
|
+
|
|
20
|
+
**Generated-content language priority**:
|
|
21
|
+
|
|
22
|
+
1. If `language.commit` is set, use that language for the CHANGELOG entry and release body
|
|
23
|
+
2. Otherwise, use `language.output` as fallback
|
|
24
|
+
3. If neither is configured, default to English
|
|
25
|
+
|
|
26
|
+
**Note**:
|
|
27
|
+
|
|
28
|
+
- Section headings that are format keywords (`Added`, `Changed`, `Fixed`, etc.) and technical terms
|
|
29
|
+
(API, JWT, OAuth) may remain in English when appropriate.
|
|
30
|
+
- The `## [Unreleased]` / `## [X.Y.Z]` version markers and ISO dates are format, not prose — keep them
|
|
31
|
+
as-is.
|
|
32
|
+
|
|
33
|
+
## User Input
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
$ARGUMENTS
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Role
|
|
40
|
+
|
|
41
|
+
You generate **release notes** from git history for **this project**, whatever its release process.
|
|
42
|
+
You make **no assumption** about how the project releases: there may be no `publish.sh`, no CI, no
|
|
43
|
+
particular hosting platform, and no particular versioning scheme (semver, CalVer, and date tags are
|
|
44
|
+
all possible). Every behavior below degrades gracefully when such an assumption does not hold.
|
|
45
|
+
|
|
46
|
+
You produce two layered outputs from the same analysis:
|
|
47
|
+
|
|
48
|
+
1. A developer **CHANGELOG.md** entry in Keep a Changelog format.
|
|
49
|
+
2. A user-facing **release body** derived from it.
|
|
50
|
+
|
|
51
|
+
You **own no versioning** and **mutate no git state** (see Forbidden Operations).
|
|
52
|
+
|
|
53
|
+
## Forbidden Operations (CRITICAL)
|
|
54
|
+
|
|
55
|
+
This command is a **generator**, sharing the safety discipline of `commit-staged` and `pr`.
|
|
56
|
+
|
|
57
|
+
**UNDER NO CIRCUMSTANCES**:
|
|
58
|
+
|
|
59
|
+
- `git add` / `git commit` / `git reset` / `git checkout` / `git restore` / `git stash` / `git rm` —
|
|
60
|
+
the command MUST NEVER modify the git staging area and MUST NEVER create a commit.
|
|
61
|
+
- Overwrite `CHANGELOG.md` wholesale with `Write`, or rewrite / reorder / delete any existing
|
|
62
|
+
CHANGELOG entry.
|
|
63
|
+
- Decide or "own" a version bump; tag; publish; or create a GitHub/GitLab release.
|
|
64
|
+
- Include any AI attribution in generated content — no `Co-Authored-By`, "Generated with", robot
|
|
65
|
+
emoji, or references to AI tools/agents.
|
|
66
|
+
|
|
67
|
+
The **only** permitted file writes are: the safe additive `CHANGELOG.md` insertion described in
|
|
68
|
+
**CHANGELOG.md Maintenance**, and — only when `--output <file>` is given — writing the release body to
|
|
69
|
+
that user-directed path.
|
|
70
|
+
|
|
71
|
+
## Parameters
|
|
72
|
+
|
|
73
|
+
Parse `$ARGUMENTS` for the following optional parameters:
|
|
74
|
+
|
|
75
|
+
| Parameter | Default | Description |
|
|
76
|
+
|-----------|---------|-------------|
|
|
77
|
+
| `--version <X.Y.Z>` | (none) | Stamp this version on the new section; short-circuits all version inference/suggestion |
|
|
78
|
+
| `--from <ref>` | (resolved) | Explicit range start (overrides Range Resolution) |
|
|
79
|
+
| `--to <ref>` | `HEAD` | Explicit range end |
|
|
80
|
+
| `--output <file>` | (terminal) | Write the release body to a file instead of stdout |
|
|
81
|
+
| `--spec <feature>` | (none) | Enrich the "why" from that feature's `spec.md` / `tasks.md` |
|
|
82
|
+
|
|
83
|
+
- If `--version` is present, **validate** it is a well-formed version string. If it is malformed,
|
|
84
|
+
**reject** with a clear validation message and do **not** write a malformed section.
|
|
85
|
+
- If `--spec` is present but does not resolve to an existing feature/path, **degrade gracefully**:
|
|
86
|
+
proceed from git alone and report the unresolved path. Do not fail.
|
|
87
|
+
|
|
88
|
+
## Range Resolution
|
|
89
|
+
|
|
90
|
+
Determine the commit range `<from>..<to>` (default `<to>` is `HEAD`):
|
|
91
|
+
|
|
92
|
+
1. **Explicit override**: if `--from` (and optionally `--to`) is given, use it directly.
|
|
93
|
+
2. **Latest tag**: otherwise, the default range is `latest tag..HEAD` — resolve the latest tag via
|
|
94
|
+
`git describe --tags --abbrev=0`.
|
|
95
|
+
3. **No reachable tag → CHANGELOG fallback**: if the repository has no reachable tag, fall back to
|
|
96
|
+
"after the last version recorded in `CHANGELOG.md`" (anchor on the most recent versioned section).
|
|
97
|
+
4. **No tag and no CHANGELOG (or no anchorable version) → full history**: if neither a tag nor an
|
|
98
|
+
anchorable CHANGELOG version exists (for example the only prior section is `Unreleased`, which has
|
|
99
|
+
no commit anchor), summarize the **full history**.
|
|
100
|
+
|
|
101
|
+
Always apply `--no-merges` so merge commits are excluded. Route the Edge Cases below before analysis.
|
|
102
|
+
|
|
103
|
+
## Git Context Collection
|
|
104
|
+
|
|
105
|
+
Over the resolved range, collect:
|
|
106
|
+
|
|
107
|
+
1. **Commits**: `git log --no-merges --pretty=format:"%H %s" <from>..<to>`
|
|
108
|
+
2. **Full diff**: `git diff <from>..<to>` (to understand what each commit actually changed)
|
|
109
|
+
3. When `--spec` resolves: read that feature's `spec.md` / `tasks.md` for intent ("why").
|
|
110
|
+
|
|
111
|
+
## Change Categorization
|
|
112
|
+
|
|
113
|
+
Group the changes into **Keep a Changelog** categories, including only those that apply:
|
|
114
|
+
|
|
115
|
+
- `### Added` — new features
|
|
116
|
+
- `### Changed` — changes to existing functionality
|
|
117
|
+
- `### Deprecated` — soon-to-be-removed features
|
|
118
|
+
- `### Removed` — removed features
|
|
119
|
+
- `### Fixed` — bug fixes
|
|
120
|
+
- `### Security` — security fixes
|
|
121
|
+
|
|
122
|
+
**Conventional commits are used when present but are NOT required.** When commits do not follow the
|
|
123
|
+
convention, **infer** the category and wording from the **diff and commit subjects** (the "diff is the
|
|
124
|
+
source of truth" approach of `commit-staged` / `pr`).
|
|
125
|
+
|
|
126
|
+
**User-facing vs contributor split**: the user-facing lists lead with user-visible changes
|
|
127
|
+
(`feat` / `fix` / `perf`, and anything a user would notice). Internal / contributor-only changes
|
|
128
|
+
(`chore` / `refactor` / `test` / `ci` / `build`, internal docs) go **only** under a separate
|
|
129
|
+
`### For contributors` subsection. When commit types are absent, infer visibility from the diff.
|
|
130
|
+
|
|
131
|
+
## Completeness Cross-Check
|
|
132
|
+
|
|
133
|
+
After drafting, **cross-check** the entry against the commit list: **every non-merge commit in the
|
|
134
|
+
selected range must map to at least one bullet.** If any commit is unrepresented, add it. Do not pad
|
|
135
|
+
with bullets that correspond to no commit.
|
|
136
|
+
|
|
137
|
+
## Version Handling
|
|
138
|
+
|
|
139
|
+
Choose the new section's label:
|
|
140
|
+
|
|
141
|
+
- **Default**: `## [Unreleased]` — with **no date** (the Keep a Changelog convention for accumulating
|
|
142
|
+
changes before a version is assigned).
|
|
143
|
+
- **`--version X.Y.Z` given**: stamp `## [X.Y.Z] - <YYYY-MM-DD>` (today's ISO date) and **skip all
|
|
144
|
+
version inference and suggestion**.
|
|
145
|
+
|
|
146
|
+
**Guarded advisory** (only when `--version` is absent): print a console-only suggested next version
|
|
147
|
+
**only when** the project is detected to use **semver AND conventional commits** — i.e. existing
|
|
148
|
+
tags/versions are semver-shaped *and* the range's commits carry conventional-commit prefixes. In that
|
|
149
|
+
case print the suggested next version, the reasoning (e.g. counts of `feat` / `fix` / breaking), and
|
|
150
|
+
an explicit "override with `--version`" note. **Otherwise stay silent** on version suggestions.
|
|
151
|
+
|
|
152
|
+
The command MUST **never write a version number into the file on its own** — the file section is only
|
|
153
|
+
ever `## [Unreleased]` or a user-provided `--version`.
|
|
154
|
+
|
|
155
|
+
## CHANGELOG.md Maintenance
|
|
156
|
+
|
|
157
|
+
Maintain `CHANGELOG.md` at the repository root with a **safe, additive** edit:
|
|
158
|
+
|
|
159
|
+
1. **Create if absent**: if `CHANGELOG.md` does not exist, create it with the **standard Keep a
|
|
160
|
+
Changelog header**:
|
|
161
|
+
|
|
162
|
+
```markdown
|
|
163
|
+
# Changelog
|
|
164
|
+
|
|
165
|
+
All notable changes to this project will be documented in this file.
|
|
166
|
+
|
|
167
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
168
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
2. **Insert additively**: read the entire existing `CHANGELOG.md` first. Insert the new section at a
|
|
172
|
+
single insertion point — into an existing `## [Unreleased]` section when one is present (merge the
|
|
173
|
+
new bullets in rather than duplicating the section), else immediately above the most recent
|
|
174
|
+
versioned section, else directly after the header. **Never rewrite, reorder, or delete any
|
|
175
|
+
existing entry.**
|
|
176
|
+
3. **Edit, never overwrite**: perform the insertion with a precise `Edit` (exact `old_string` match)
|
|
177
|
+
— **never** use `Write` to overwrite the whole `CHANGELOG.md`.
|
|
178
|
+
|
|
179
|
+
This is the command's only mutation of `CHANGELOG.md`, and it never touches git state.
|
|
180
|
+
|
|
181
|
+
## Release Body Generation
|
|
182
|
+
|
|
183
|
+
Derive the user-facing **release body** from the same categorized model:
|
|
184
|
+
|
|
185
|
+
- Lead with what the user **can now do** — "You can now…", plain language, not implementation detail.
|
|
186
|
+
- Keep internal/contributor changes under a `### For contributors` subsection, out of the main list.
|
|
187
|
+
- Flag breaking changes visibly (`**Breaking change:**`).
|
|
188
|
+
- The body is **generic markdown**, platform-agnostic — the user pastes it into GitHub / GitLab / any
|
|
189
|
+
release page. The command does **not** publish it.
|
|
190
|
+
|
|
191
|
+
## Output Modes
|
|
192
|
+
|
|
193
|
+
- **Terminal (default)**: print the release body to the terminal wrapped in a markdown code block so
|
|
194
|
+
the raw markdown can be copied.
|
|
195
|
+
- **`--output <file>`**: write the raw release body to that file (the one user-directed file write
|
|
196
|
+
permitted besides the CHANGELOG insertion).
|
|
197
|
+
|
|
198
|
+
The `CHANGELOG.md` entry is written in both modes.
|
|
199
|
+
|
|
200
|
+
## Edge Cases
|
|
201
|
+
|
|
202
|
+
- **Not a git repository**: report "Not a git repository." and take no action.
|
|
203
|
+
- **Empty range** (no commits since the resolved start): report "No changes to release." — do not
|
|
204
|
+
fabricate entries and do not error.
|
|
205
|
+
- **Detached HEAD**: report that the branch cannot be determined and stop, rather than guessing.
|
|
206
|
+
- **Unresolved `--spec`**: proceed from git alone and report the unresolved path (see Parameters).
|
|
207
|
+
- **Malformed `--version`**: reject with a clear validation message; write no malformed section.
|
|
208
|
+
|
|
209
|
+
## Automatic Distillation
|
|
210
|
+
|
|
211
|
+
This command has **no** Automatic Distillation step. It is a generator, not an interaction that
|
|
212
|
+
produces reusable cross-feature knowledge.
|