codexspec 0.6.4__tar.gz → 0.6.5__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.6.4 → codexspec-0.6.5}/PKG-INFO +1 -1
- {codexspec-0.6.4 → codexspec-0.6.5}/pyproject.toml +1 -1
- {codexspec-0.6.4 → codexspec-0.6.5}/src/codexspec/__init__.py +12 -6
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/implement-tasks.md +98 -5
- {codexspec-0.6.4 → codexspec-0.6.5}/.gitignore +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/LICENSE +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/README.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/codexspec-icon.svg +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/codexspec-logo-dark.svg +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/codexspec-logo-light.svg +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/scripts/bash/check-i18n-completeness.sh +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/scripts/bash/check-i18n-structure.sh +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/scripts/bash/check-prerequisites.sh +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/scripts/bash/common.sh +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/scripts/bash/create-new-feature.sh +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/scripts/powershell/check-prerequisites.ps1 +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/scripts/powershell/common.ps1 +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/scripts/powershell/create-new-feature.ps1 +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/src/codexspec/commands/__init__.py +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/src/codexspec/commands/installer.py +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/src/codexspec/i18n.py +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/src/codexspec/idea.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/src/codexspec/translator.py +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/analyze.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/checklist.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/clarify.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/commit-staged.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/config.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/constitution.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/generate-spec.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/plan-to-tasks.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/pr.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/quick.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/review-code.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/review-plan.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/review-spec.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/review-tasks.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/spec-to-plan.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/specify.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/commands/tasks-to-issues.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/docs/checklist-template.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/docs/constitution-template.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/docs/plan-template-detailed.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/docs/plan-template-simple.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/docs/requirements-template.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/docs/spec-template-detailed.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/docs/spec-template-simple.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/docs/tasks-template-detailed.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/docs/tasks-template-simple.md +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/translations/de.json +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/translations/en.json +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/translations/es.json +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/translations/fr.json +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/translations/ja.json +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/translations/ko.json +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/translations/pt-BR.json +0 -0
- {codexspec-0.6.4 → codexspec-0.6.5}/templates/translations/zh-CN.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codexspec
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.5
|
|
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
|
|
@@ -471,9 +471,11 @@ def init(
|
|
|
471
471
|
"--force",
|
|
472
472
|
"-f",
|
|
473
473
|
help=(
|
|
474
|
-
"Overwrite
|
|
475
|
-
"prompt and command-update/migration confirms).
|
|
476
|
-
"
|
|
474
|
+
"Overwrite regenerable files (commands/scripts) and auto-confirm prompts "
|
|
475
|
+
"(skips the language prompt and command-update/migration confirms). "
|
|
476
|
+
"User-authored content is preserved: language config is updated surgically "
|
|
477
|
+
"and an existing CLAUDE.md body is never overwritten (only the constitution "
|
|
478
|
+
"@import is prepended if missing)."
|
|
477
479
|
),
|
|
478
480
|
),
|
|
479
481
|
no_git: bool = typer.Option(
|
|
@@ -772,15 +774,19 @@ def init(
|
|
|
772
774
|
console.print(f"[dim]{translate('cli.init.language_dimensions_hint', normalized_lang)}[/dim]")
|
|
773
775
|
|
|
774
776
|
# Create CLAUDE.md
|
|
777
|
+
# CLAUDE.md is user-authored content (like the constitution), not a
|
|
778
|
+
# regenerable artifact (like commands/scripts). Never overwrite an existing
|
|
779
|
+
# body -- even under --force. --force only auto-confirms the one safe,
|
|
780
|
+
# idempotent change: prepending the constitution @import if it is missing.
|
|
775
781
|
claude_md = target_dir / "CLAUDE.md"
|
|
776
|
-
if not claude_md.exists()
|
|
782
|
+
if not claude_md.exists():
|
|
777
783
|
project_name = target_dir.name
|
|
778
784
|
claude_md.write_text(_get_claude_md_content(project_name), encoding="utf-8")
|
|
779
785
|
console.print(f"[green]{translate('cli.init.created_file', normalized_lang, file='CLAUDE.md')}[/green]")
|
|
780
786
|
else:
|
|
781
|
-
#
|
|
787
|
+
# Existing CLAUDE.md: ensure the compliance @import, never clobber the body.
|
|
782
788
|
if not has_compliance_section(claude_md):
|
|
783
|
-
if confirm_add_compliance(normalized_lang):
|
|
789
|
+
if force or confirm_add_compliance(normalized_lang):
|
|
784
790
|
prepend_compliance_section(claude_md)
|
|
785
791
|
console.print(f"[green]{translate('cli.init.compliance_added', normalized_lang)}[/green]")
|
|
786
792
|
|
|
@@ -133,10 +133,103 @@ When encountering problems, create/update `issues.md` in the same directory as `
|
|
|
133
133
|
- **Status**: Blocked / Workaround Found / Needs Discussion
|
|
134
134
|
```
|
|
135
135
|
|
|
136
|
-
### 6.
|
|
136
|
+
### 6. Pre-Review Baseline
|
|
137
137
|
|
|
138
|
-
After all tasks:
|
|
138
|
+
After all tasks are implemented:
|
|
139
139
|
|
|
140
|
-
- Run full test suite
|
|
141
|
-
-
|
|
142
|
-
-
|
|
140
|
+
- Run the full test suite.
|
|
141
|
+
- Confirm the suite is green. This green state is the baseline for the Final
|
|
142
|
+
Code Review Loop; no auto-fix may regress it. If the suite is already red at
|
|
143
|
+
this point, stop and fix the implementation before reviewing.
|
|
144
|
+
|
|
145
|
+
### 7. Final Code Review Loop
|
|
146
|
+
|
|
147
|
+
After the baseline is green, review the implemented code and auto-fix verified
|
|
148
|
+
defects. This mirrors the `review-spec` / `review-plan` / `review-tasks` loops
|
|
149
|
+
the sibling generation commands run.
|
|
150
|
+
|
|
151
|
+
#### 7.1 Determine the Review Target
|
|
152
|
+
|
|
153
|
+
Review only the analyzable code changed by this implementation, not the whole
|
|
154
|
+
repository and not per task. Compute the candidate file set:
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
git diff --name-only $(git merge-base HEAD <main>)..HEAD
|
|
158
|
+
git diff --name-only # uncommitted tracked changes
|
|
159
|
+
git ls-files --others --exclude-standard # untracked files
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
`<main>` is the project's default branch, resolved from `git.main_branches` in
|
|
163
|
+
`.codexspec/config.yml` (default: `main`, `master`, `develop`).
|
|
164
|
+
|
|
165
|
+
Then filter the candidate set:
|
|
166
|
+
|
|
167
|
+
- Keep only analyzable source extensions: `.py .ts .tsx .js .jsx .go .rs .java
|
|
168
|
+
.kt .kts .rb .sh .bash .zsh .c .h .cpp .hpp .cc .cxx .cs .swift .php`.
|
|
169
|
+
- Exclude `.codexspec/specs/` and generated/vendored paths (e.g. `dist/`,
|
|
170
|
+
lockfiles, `.venv/`).
|
|
171
|
+
|
|
172
|
+
If the filtered set is empty (e.g. the implementation produced only docs,
|
|
173
|
+
config, or assets), report "no code to review", skip this loop, and proceed to
|
|
174
|
+
step 8.
|
|
175
|
+
|
|
176
|
+
Fallback: if git is unavailable or the current branch is not a feature branch
|
|
177
|
+
(so the diff base cannot be determined), review the project's primary source
|
|
178
|
+
directory as `/codexspec:review-code` would by default, and explicitly note the
|
|
179
|
+
degraded fidelity (the review may include pre-existing code).
|
|
180
|
+
|
|
181
|
+
#### 7.2 Invoke the Review
|
|
182
|
+
|
|
183
|
+
Invoke `/codexspec:review-code <filtered-paths>`.
|
|
184
|
+
|
|
185
|
+
`/codexspec:review-code` is **review-only**; it produces findings and scores but
|
|
186
|
+
does not edit code. Apply every fix **yourself**, under this command's tool
|
|
187
|
+
scope (which includes `Edit`/`Write` and running the test suite via `Bash`).
|
|
188
|
+
|
|
189
|
+
#### 7.3 Auto-Fix Scope
|
|
190
|
+
|
|
191
|
+
- Auto-fix **CRITICAL, HIGH, and MEDIUM** findings only.
|
|
192
|
+
- **LOW** (suggestion) findings are report-only; never auto-fix them.
|
|
193
|
+
- A **MEDIUM** finding is auto-fixed only when it is grounded in
|
|
194
|
+
`.codexspec/memory/constitution.md` and the confirmed requirements/spec, and
|
|
195
|
+
it concerns **maintainability, readability, or testability**. Ungrounded or
|
|
196
|
+
purely stylistic MEDIUM findings are report-only.
|
|
197
|
+
- Do not auto-fix advisories or design opportunities, and do not introduce any
|
|
198
|
+
new product decision.
|
|
199
|
+
|
|
200
|
+
#### 7.4 Test-Safe Fixes (never ship red)
|
|
201
|
+
|
|
202
|
+
Every fix must be test-safe. A fix that breaks tests is, by definition, an
|
|
203
|
+
incorrect change — it is never shipped and never silently skipped.
|
|
204
|
+
|
|
205
|
+
- **Functional defects** (logic, correctness, security): follow TDD — add a
|
|
206
|
+
failing test that reproduces the defect (red), apply the fix until that test
|
|
207
|
+
passes (green), then refactor while tests stay green.
|
|
208
|
+
- **Non-functional fixes** (refactors for maintainability, readability,
|
|
209
|
+
testability): run the suite before and after the change. If the change turns
|
|
210
|
+
any test red, revert it, confirm the suite is green again, and re-attempt the
|
|
211
|
+
refactor.
|
|
212
|
+
- If a fix cannot be made green after retry, treat it as **unresolved** and stop
|
|
213
|
+
(see 7.5).
|
|
214
|
+
|
|
215
|
+
#### 7.5 Loop Bounds and Stop Conditions
|
|
216
|
+
|
|
217
|
+
- Run at most **two** fix-and-review rounds. (The per-fix TDD retry in 7.4
|
|
218
|
+
happens within a round; the two-round limit bounds overall effort.)
|
|
219
|
+
- Stop when a defect repeats, remains unresolved, or requires a user or
|
|
220
|
+
architecture decision.
|
|
221
|
+
- After each green round, commit the fixes (see step 8).
|
|
222
|
+
|
|
223
|
+
#### 7.6 Terminal Status
|
|
224
|
+
|
|
225
|
+
- If CRITICAL or HIGH defects remain unresolved after the maximum rounds, the
|
|
226
|
+
status is **"needs work"** — do not claim success.
|
|
227
|
+
- Otherwise report the review outcome: scores, items fixed, items deferred, and
|
|
228
|
+
the final test status.
|
|
229
|
+
|
|
230
|
+
### 8. Final Report and Commit
|
|
231
|
+
|
|
232
|
+
- Commit any review-driven changes from step 7 that are not already committed.
|
|
233
|
+
- Report the completion summary: files modified, review status (scores, items
|
|
234
|
+
fixed, items deferred, final test status), and the overall status (success or
|
|
235
|
+
"needs work").
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|