claudekit-codex-sync 0.2.3 → 0.2.4
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.
package/package.json
CHANGED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Test Report: claudekit-codex-sync v0.2.3+fix
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-02-23 16:25
|
|
4
|
+
**Scope:** Pre-push deep verification after eliminating `claudekit/` subdirectory
|
|
5
|
+
**Changes tested:** `constants.py`, `clean_target.py`, `asset_sync_dir.py`, `asset_sync_zip.py`, `path_normalizer.py`, `prompt_exporter.py`
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Unit Tests — 22/22 ✅
|
|
10
|
+
|
|
11
|
+
| Module | Tests | Status |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| `test_clean_target.py` | 5 | ✅ |
|
|
14
|
+
| `test_cli_args.py` | 6 | ✅ |
|
|
15
|
+
| `test_config_enforcer.py` | 4 | ✅ |
|
|
16
|
+
| `test_path_normalizer.py` | 7 | ✅ |
|
|
17
|
+
|
|
18
|
+
## 2. Compile Check — 8/8 ✅
|
|
19
|
+
|
|
20
|
+
All 8 modified Python modules compile without errors.
|
|
21
|
+
|
|
22
|
+
## 3. E2E Sync (local source, `--fresh`) — ✅
|
|
23
|
+
|
|
24
|
+
| Metric | Value |
|
|
25
|
+
|---|---|
|
|
26
|
+
| Assets added | 146 |
|
|
27
|
+
| Skills added | 54 (4 skipped) |
|
|
28
|
+
| Normalize changed | 28 |
|
|
29
|
+
| Agents converted & registered | 14 |
|
|
30
|
+
| Prompts generated | 20 |
|
|
31
|
+
| Verify | codex=ok, copywriting=ok |
|
|
32
|
+
|
|
33
|
+
## 4. Filesystem Validation — 7/7 ✅
|
|
34
|
+
|
|
35
|
+
| Check | Result |
|
|
36
|
+
|---|---|
|
|
37
|
+
| `~/.codex/claudekit/` does NOT exist | ✅ |
|
|
38
|
+
| `~/.codex/scripts/` (17 files) | ✅ |
|
|
39
|
+
| `~/.codex/rules/` (5 files) | ✅ |
|
|
40
|
+
| `~/.codex/commands/` (22 files) | ✅ |
|
|
41
|
+
| `~/.codex/hooks/` (81 files) | ✅ |
|
|
42
|
+
| `~/.codex/output-styles/` (6 files) | ✅ |
|
|
43
|
+
| `~/.codex/.ck.json` + `.env.example` | ✅ |
|
|
44
|
+
|
|
45
|
+
## 5. Reference Integrity — 5/5 ✅
|
|
46
|
+
|
|
47
|
+
Zero stale `claudekit/` filesystem paths found in:
|
|
48
|
+
|
|
49
|
+
| Location | Stale refs |
|
|
50
|
+
|---|---|
|
|
51
|
+
| Skills | 0 |
|
|
52
|
+
| Agent TOMLs | 0 |
|
|
53
|
+
| Prompts | 0 (1 GitHub URL, correctly excluded) |
|
|
54
|
+
| Rules | 0 |
|
|
55
|
+
| Commands | 0 |
|
|
56
|
+
|
|
57
|
+
## 6. Runtime Script Execution — 5/5 ✅
|
|
58
|
+
|
|
59
|
+
| Script | Language | Exit | Notes |
|
|
60
|
+
|---|---|---|---|
|
|
61
|
+
| `set-active-plan.cjs` | Node.js | 0 | Requires `../hooks/lib/` — now synced |
|
|
62
|
+
| `validate-docs.cjs` | Node.js | 0 | Generated validation report |
|
|
63
|
+
| `worktree.cjs list` | Node.js | 0 | Listed 1 worktree |
|
|
64
|
+
| `ck-help.py` | Python | 0 | CK help search works |
|
|
65
|
+
| `fix-shebang-permissions.sh` | Bash | 0 | Expected "Error: .claude not found" (runs from codex context) |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Bugs Found & Fixed
|
|
70
|
+
|
|
71
|
+
| Bug | Severity | Fix |
|
|
72
|
+
|---|---|---|
|
|
73
|
+
| Scripts crash with `MODULE_NOT_FOUND` for `../hooks/lib/` | **High** | Added `hooks` to `ASSET_DIRS` in `constants.py` |
|
|
74
|
+
| Stale `claudekit/` dir not cleaned on fresh sync | **Medium** | Added `"claudekit"` to clean list in `clean_target.py` |
|
|
75
|
+
|
|
76
|
+
## Verdict
|
|
77
|
+
|
|
78
|
+
**✅ ALL 6 TEST CATEGORIES PASS — READY TO PUSH**
|
|
@@ -10,8 +10,8 @@ def clean_target(codex_home: Path, *, dry_run: bool) -> int:
|
|
|
10
10
|
"""Remove agents, skills (keep .venv), prompts, asset dirs before fresh sync."""
|
|
11
11
|
removed = 0
|
|
12
12
|
|
|
13
|
-
# Clean top-level asset dirs
|
|
14
|
-
for subdir in ("agents", "prompts", "commands", "output-styles", "rules", "scripts", "hooks"):
|
|
13
|
+
# Clean top-level asset dirs + legacy claudekit/ from pre-v0.2.3
|
|
14
|
+
for subdir in ("agents", "prompts", "commands", "output-styles", "rules", "scripts", "hooks", "claudekit"):
|
|
15
15
|
target = codex_home / subdir
|
|
16
16
|
if target.exists():
|
|
17
17
|
count = sum(1 for item in target.rglob("*") if item.is_file())
|