prizmkit 1.1.58 → 1.1.61

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 (205) hide show
  1. package/bin/create-prizmkit.js +8 -6
  2. package/bundled/VERSION.json +3 -3
  3. package/bundled/adapters/codex/agent-adapter.js +38 -0
  4. package/bundled/adapters/codex/paths.js +27 -0
  5. package/bundled/adapters/codex/rules-adapter.js +30 -0
  6. package/bundled/adapters/codex/settings-adapter.js +27 -0
  7. package/bundled/adapters/codex/skill-adapter.js +65 -0
  8. package/bundled/adapters/codex/team-adapter.js +37 -0
  9. package/bundled/agents/prizm-dev-team-dev.md +6 -5
  10. package/bundled/dev-pipeline/.env.example +2 -1
  11. package/bundled/dev-pipeline/README.md +10 -7
  12. package/bundled/dev-pipeline/lib/common.sh +278 -37
  13. package/bundled/dev-pipeline/run-bugfix.sh +10 -61
  14. package/bundled/dev-pipeline/run-feature.sh +10 -78
  15. package/bundled/dev-pipeline/run-recovery.sh +10 -46
  16. package/bundled/dev-pipeline/run-refactor.sh +10 -61
  17. package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +17 -7
  18. package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +9 -3
  19. package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +9 -3
  20. package/bundled/dev-pipeline/scripts/utils.py +6 -4
  21. package/bundled/dev-pipeline-windows/.env.example +28 -0
  22. package/bundled/dev-pipeline-windows/README.md +30 -0
  23. package/bundled/dev-pipeline-windows/SCHEMA_ANALYSIS.md +525 -0
  24. package/bundled/dev-pipeline-windows/assets/feature-list-example.json +146 -0
  25. package/bundled/dev-pipeline-windows/assets/prizm-dev-team-integration.md +138 -0
  26. package/bundled/dev-pipeline-windows/launch-bugfix-daemon.ps1 +9 -0
  27. package/bundled/dev-pipeline-windows/launch-feature-daemon.ps1 +9 -0
  28. package/bundled/dev-pipeline-windows/launch-refactor-daemon.ps1 +9 -0
  29. package/bundled/dev-pipeline-windows/lib/common.ps1 +432 -0
  30. package/bundled/dev-pipeline-windows/lib/daemon.ps1 +140 -0
  31. package/bundled/dev-pipeline-windows/lib/pipeline.ps1 +446 -0
  32. package/bundled/dev-pipeline-windows/lib/reset.ps1 +87 -0
  33. package/bundled/dev-pipeline-windows/reset-bug.ps1 +9 -0
  34. package/bundled/dev-pipeline-windows/reset-feature.ps1 +9 -0
  35. package/bundled/dev-pipeline-windows/reset-refactor.ps1 +9 -0
  36. package/bundled/dev-pipeline-windows/run-bugfix.ps1 +9 -0
  37. package/bundled/dev-pipeline-windows/run-feature.ps1 +9 -0
  38. package/bundled/dev-pipeline-windows/run-recovery.ps1 +76 -0
  39. package/bundled/dev-pipeline-windows/run-refactor.ps1 +9 -0
  40. package/bundled/dev-pipeline-windows/scripts/check-session-status.py +228 -0
  41. package/bundled/dev-pipeline-windows/scripts/cleanup-logs.py +192 -0
  42. package/bundled/dev-pipeline-windows/scripts/detect-stuck.py +530 -0
  43. package/bundled/dev-pipeline-windows/scripts/generate-bootstrap-prompt.py +1737 -0
  44. package/bundled/dev-pipeline-windows/scripts/generate-bugfix-prompt.py +685 -0
  45. package/bundled/dev-pipeline-windows/scripts/generate-recovery-prompt.py +805 -0
  46. package/bundled/dev-pipeline-windows/scripts/generate-refactor-prompt.py +763 -0
  47. package/bundled/dev-pipeline-windows/scripts/init-bugfix-pipeline.py +316 -0
  48. package/bundled/dev-pipeline-windows/scripts/init-dev-team.py +134 -0
  49. package/bundled/dev-pipeline-windows/scripts/init-pipeline.py +380 -0
  50. package/bundled/dev-pipeline-windows/scripts/init-refactor-pipeline.py +399 -0
  51. package/bundled/dev-pipeline-windows/scripts/parse-stream-progress.py +388 -0
  52. package/bundled/dev-pipeline-windows/scripts/patch-completion-notes.py +191 -0
  53. package/bundled/dev-pipeline-windows/scripts/update-bug-status.py +864 -0
  54. package/bundled/dev-pipeline-windows/scripts/update-checkpoint.py +173 -0
  55. package/bundled/dev-pipeline-windows/scripts/update-feature-status.py +1501 -0
  56. package/bundled/dev-pipeline-windows/scripts/update-refactor-status.py +1073 -0
  57. package/bundled/dev-pipeline-windows/scripts/utils.py +542 -0
  58. package/bundled/dev-pipeline-windows/templates/agent-prompts/critic-plan-challenge.md +7 -0
  59. package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-fix.md +7 -0
  60. package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-implement.md +30 -0
  61. package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-resume.md +5 -0
  62. package/bundled/dev-pipeline-windows/templates/agent-prompts/reviewer-review.md +7 -0
  63. package/bundled/dev-pipeline-windows/templates/bootstrap-prompt.md +46 -0
  64. package/bundled/dev-pipeline-windows/templates/bootstrap-tier1.md +43 -0
  65. package/bundled/dev-pipeline-windows/templates/bootstrap-tier2.md +43 -0
  66. package/bundled/dev-pipeline-windows/templates/bootstrap-tier3.md +43 -0
  67. package/bundled/dev-pipeline-windows/templates/bug-fix-list-schema.json +263 -0
  68. package/bundled/dev-pipeline-windows/templates/bugfix-bootstrap-prompt.md +320 -0
  69. package/bundled/dev-pipeline-windows/templates/feature-list-schema.json +237 -0
  70. package/bundled/dev-pipeline-windows/templates/refactor-bootstrap-prompt.md +331 -0
  71. package/bundled/dev-pipeline-windows/templates/refactor-list-schema.json +270 -0
  72. package/bundled/dev-pipeline-windows/templates/sections/ac-verification-checklist.md +13 -0
  73. package/bundled/dev-pipeline-windows/templates/sections/checkpoint-system.md +91 -0
  74. package/bundled/dev-pipeline-windows/templates/sections/context-budget-rules.md +33 -0
  75. package/bundled/dev-pipeline-windows/templates/sections/critical-paths-agent.md +10 -0
  76. package/bundled/dev-pipeline-windows/templates/sections/critical-paths-full.md +12 -0
  77. package/bundled/dev-pipeline-windows/templates/sections/critical-paths-lite.md +7 -0
  78. package/bundled/dev-pipeline-windows/templates/sections/directory-convention-agent.md +8 -0
  79. package/bundled/dev-pipeline-windows/templates/sections/directory-convention-full.md +9 -0
  80. package/bundled/dev-pipeline-windows/templates/sections/directory-convention-lite.md +6 -0
  81. package/bundled/dev-pipeline-windows/templates/sections/failure-capture.md +21 -0
  82. package/bundled/dev-pipeline-windows/templates/sections/feature-context.md +31 -0
  83. package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification-auto.md +72 -0
  84. package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification-opencli.md +63 -0
  85. package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification.md +62 -0
  86. package/bundled/dev-pipeline-windows/templates/sections/phase-commit-full.md +71 -0
  87. package/bundled/dev-pipeline-windows/templates/sections/phase-commit.md +64 -0
  88. package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-agent-suffix.md +23 -0
  89. package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-base.md +24 -0
  90. package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-lite-suffix.md +12 -0
  91. package/bundled/dev-pipeline-windows/templates/sections/phase-critic-plan-full.md +53 -0
  92. package/bundled/dev-pipeline-windows/templates/sections/phase-critic-plan.md +32 -0
  93. package/bundled/dev-pipeline-windows/templates/sections/phase-implement-agent.md +37 -0
  94. package/bundled/dev-pipeline-windows/templates/sections/phase-implement-full.md +50 -0
  95. package/bundled/dev-pipeline-windows/templates/sections/phase-implement-lite.md +52 -0
  96. package/bundled/dev-pipeline-windows/templates/sections/phase-plan-agent.md +27 -0
  97. package/bundled/dev-pipeline-windows/templates/sections/phase-plan-lite.md +27 -0
  98. package/bundled/dev-pipeline-windows/templates/sections/phase-review-agent.md +27 -0
  99. package/bundled/dev-pipeline-windows/templates/sections/phase-review-full.md +29 -0
  100. package/bundled/dev-pipeline-windows/templates/sections/phase-specify-plan-full.md +77 -0
  101. package/bundled/dev-pipeline-windows/templates/sections/phase0-init.md +13 -0
  102. package/bundled/dev-pipeline-windows/templates/sections/phase0-test-baseline.md +23 -0
  103. package/bundled/dev-pipeline-windows/templates/sections/session-context.md +5 -0
  104. package/bundled/dev-pipeline-windows/templates/sections/subagent-timeout-recovery.md +6 -0
  105. package/bundled/dev-pipeline-windows/templates/sections/test-failure-recovery-agent.md +67 -0
  106. package/bundled/dev-pipeline-windows/templates/sections/test-failure-recovery-lite.md +58 -0
  107. package/bundled/dev-pipeline-windows/templates/session-status-schema.json +83 -0
  108. package/bundled/rules/prizm/prizm-documentation.md +2 -4
  109. package/bundled/rules/prizm/prizm-progressive-loading.md +2 -1
  110. package/bundled/skills/_metadata.json +1 -1
  111. package/bundled/skills/app-planner/SKILL.md +24 -16
  112. package/bundled/skills/app-planner/references/architecture-decisions.md +9 -5
  113. package/bundled/skills/app-planner/references/frontend-design-guide.md +1 -1
  114. package/bundled/skills/feature-planner/SKILL.md +9 -2
  115. package/bundled/skills/prizmkit-implement/SKILL.md +1 -0
  116. package/bundled/skills/prizmkit-init/SKILL.md +8 -7
  117. package/bundled/skills/prizmkit-init/references/config-schema.md +3 -1
  118. package/bundled/skills/prizmkit-plan/SKILL.md +2 -0
  119. package/bundled/skills/prizmkit-prizm-docs/assets/prizm-docs-format.md +6 -1
  120. package/bundled/skills/prizmkit-prizm-docs/references/op-init.md +2 -2
  121. package/bundled/skills/prizmkit-prizm-docs/references/op-update.md +2 -1
  122. package/bundled/skills/prizmkit-prizm-docs/references/op-validate.md +2 -2
  123. package/bundled/skills/prizmkit-retrospective/SKILL.md +2 -0
  124. package/bundled/skills/prizmkit-retrospective/references/knowledge-injection-steps.md +2 -0
  125. package/bundled/skills/prizmkit-retrospective/references/structural-sync-steps.md +2 -0
  126. package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +2 -0
  127. package/bundled/skills-windows/app-planner/SKILL.md +639 -0
  128. package/bundled/skills-windows/app-planner/assets/app-design-guide.md +101 -0
  129. package/bundled/skills-windows/app-planner/references/architecture-decisions.md +52 -0
  130. package/bundled/skills-windows/app-planner/references/brainstorm-guide.md +101 -0
  131. package/bundled/skills-windows/app-planner/references/frontend-design-guide.md +71 -0
  132. package/bundled/skills-windows/app-planner/references/project-brief-guide.md +82 -0
  133. package/bundled/skills-windows/app-planner/references/red-team-checklist.md +40 -0
  134. package/bundled/skills-windows/app-planner/references/rules/backend/derivation-rules.md +609 -0
  135. package/bundled/skills-windows/app-planner/references/rules/backend/fixed-rules.md +285 -0
  136. package/bundled/skills-windows/app-planner/references/rules/backend/question-bank.md +249 -0
  137. package/bundled/skills-windows/app-planner/references/rules/backend/template.md +173 -0
  138. package/bundled/skills-windows/app-planner/references/rules/database/derivation-rules.md +373 -0
  139. package/bundled/skills-windows/app-planner/references/rules/database/fixed-rules.md +211 -0
  140. package/bundled/skills-windows/app-planner/references/rules/database/question-bank.md +184 -0
  141. package/bundled/skills-windows/app-planner/references/rules/database/template.md +158 -0
  142. package/bundled/skills-windows/app-planner/references/rules/frontend/derivation-rules.md +810 -0
  143. package/bundled/skills-windows/app-planner/references/rules/frontend/fixed-rules.md +188 -0
  144. package/bundled/skills-windows/app-planner/references/rules/frontend/question-bank.md +302 -0
  145. package/bundled/skills-windows/app-planner/references/rules/frontend/template.md +320 -0
  146. package/bundled/skills-windows/app-planner/references/rules/mobile/derivation-rules.md +639 -0
  147. package/bundled/skills-windows/app-planner/references/rules/mobile/fixed-rules.md +290 -0
  148. package/bundled/skills-windows/app-planner/references/rules/mobile/question-bank.md +232 -0
  149. package/bundled/skills-windows/app-planner/references/rules/mobile/template.md +175 -0
  150. package/bundled/skills-windows/bug-fix-workflow/SKILL.md +415 -0
  151. package/bundled/skills-windows/bug-planner/SKILL.md +395 -0
  152. package/bundled/skills-windows/bug-planner/assets/bug-confirmation-template.md +43 -0
  153. package/bundled/skills-windows/bug-planner/references/critic-and-verification.md +44 -0
  154. package/bundled/skills-windows/bug-planner/references/error-recovery.md +73 -0
  155. package/bundled/skills-windows/bug-planner/references/input-formats.md +53 -0
  156. package/bundled/skills-windows/bug-planner/references/schema-validation.md +25 -0
  157. package/bundled/skills-windows/bug-planner/references/severity-rules.md +16 -0
  158. package/bundled/skills-windows/bug-planner/scripts/validate-bug-list.py +322 -0
  159. package/bundled/skills-windows/bugfix-pipeline-launcher/SKILL.md +380 -0
  160. package/bundled/skills-windows/feature-pipeline-launcher/SKILL.md +441 -0
  161. package/bundled/skills-windows/feature-pipeline-launcher/scripts/preflight-check.py +462 -0
  162. package/bundled/skills-windows/feature-planner/SKILL.md +401 -0
  163. package/bundled/skills-windows/feature-planner/assets/evaluation-guide.md +64 -0
  164. package/bundled/skills-windows/feature-planner/assets/planning-guide.md +214 -0
  165. package/bundled/skills-windows/feature-planner/references/browser-interaction.md +59 -0
  166. package/bundled/skills-windows/feature-planner/references/completeness-review.md +57 -0
  167. package/bundled/skills-windows/feature-planner/references/decomposition-patterns.md +75 -0
  168. package/bundled/skills-windows/feature-planner/references/error-recovery.md +90 -0
  169. package/bundled/skills-windows/feature-planner/references/incremental-feature-planning.md +112 -0
  170. package/bundled/skills-windows/feature-planner/references/new-project-planning.md +85 -0
  171. package/bundled/skills-windows/feature-planner/scripts/validate-and-generate.py +1029 -0
  172. package/bundled/skills-windows/feature-workflow/SKILL.md +531 -0
  173. package/bundled/skills-windows/prizmkit-init/SKILL.md +356 -0
  174. package/bundled/skills-windows/prizmkit-init/assets/project-brief-template.md +82 -0
  175. package/bundled/skills-windows/prizmkit-init/references/config-schema.md +70 -0
  176. package/bundled/skills-windows/prizmkit-init/references/rules/layer-detection.md +41 -0
  177. package/bundled/skills-windows/prizmkit-init/references/tech-stack-catalog.md +13 -0
  178. package/bundled/skills-windows/prizmkit-init/references/update-supplement.md +9 -0
  179. package/bundled/skills-windows/recovery-workflow/SKILL.md +456 -0
  180. package/bundled/skills-windows/recovery-workflow/evals/evals.json +46 -0
  181. package/bundled/skills-windows/recovery-workflow/scripts/detect-recovery-state.py +544 -0
  182. package/bundled/skills-windows/refactor-pipeline-launcher/SKILL.md +406 -0
  183. package/bundled/skills-windows/refactor-planner/SKILL.md +540 -0
  184. package/bundled/skills-windows/refactor-planner/assets/planning-guide.md +292 -0
  185. package/bundled/skills-windows/refactor-planner/references/behavior-preservation.md +301 -0
  186. package/bundled/skills-windows/refactor-planner/references/refactor-scoping-guide.md +221 -0
  187. package/bundled/skills-windows/refactor-planner/scripts/validate-and-generate-refactor.py +858 -0
  188. package/bundled/skills-windows/refactor-workflow/SKILL.md +503 -0
  189. package/bundled/templates/hooks/diff-prizm-docs.sh +1 -1
  190. package/bundled/templates/hooks/prizm-pre-commit.sh +53 -4
  191. package/bundled/templates/hooks/validate-prizm-docs.sh +62 -7
  192. package/bundled/templates/project-memory-template.md +2 -1
  193. package/package.json +3 -2
  194. package/src/clean.js +73 -2
  195. package/src/config.js +167 -50
  196. package/src/detect-platform.js +15 -9
  197. package/src/external-skills.js +26 -19
  198. package/src/index.js +28 -10
  199. package/src/manifest.js +6 -2
  200. package/src/metadata.js +43 -5
  201. package/src/platforms.js +38 -0
  202. package/src/prompts.js +50 -9
  203. package/src/runtimes.js +20 -0
  204. package/src/scaffold.js +447 -114
  205. package/src/upgrade.js +87 -44
@@ -4,6 +4,13 @@
4
4
 
5
5
  MODE="${1:---staged}"
6
6
  ERRORS=0
7
+ TEMP_FILES=""
8
+
9
+ cleanup() {
10
+ # shellcheck disable=SC2086
11
+ [ -z "$TEMP_FILES" ] || rm -f $TEMP_FILES
12
+ }
13
+ trap cleanup EXIT HUP INT TERM
7
14
 
8
15
  # Not a prizm project — exit silently
9
16
  [ -f ".prizmkit/prizm-docs/root.prizm" ] || exit 0
@@ -22,22 +29,70 @@ fi
22
29
  [ -z "$FILES" ] && exit 0
23
30
 
24
31
  for FILE in $FILES; do
25
- [ -f "$FILE" ] || continue
32
+ CHECK_FILE="$FILE"
33
+ if [ "$MODE" = "--staged" ]; then
34
+ git cat-file -e ":$FILE" 2>/dev/null || continue
35
+ CHECK_FILE=$(mktemp "${TMPDIR:-/tmp}/prizm-doc.XXXXXX") || exit 1
36
+ TEMP_FILES="$TEMP_FILES $CHECK_FILE"
37
+ git show ":$FILE" > "$CHECK_FILE" 2>/dev/null || continue
38
+ else
39
+ [ -f "$FILE" ] || continue
40
+ fi
26
41
 
27
42
  # Check markdown headers
28
- if grep -qE '^#{1,6} ' "$FILE"; then
43
+ if grep -qE '^#{1,6} ' "$CHECK_FILE"; then
29
44
  echo "ERROR: $FILE contains markdown headers (##). Use KEY: value format." >&2
30
45
  ERRORS=$((ERRORS + 1))
31
46
  fi
32
47
 
33
48
  # Check code blocks
34
- if grep -q '^```' "$FILE"; then
49
+ if grep -q '^```' "$CHECK_FILE"; then
35
50
  echo "ERROR: $FILE contains code blocks. Use file_path:line_number reference." >&2
36
51
  ERRORS=$((ERRORS + 1))
37
52
  fi
38
53
 
54
+ # Check auxiliary history fields and files
55
+ BASE_NAME=$(basename "$FILE" | tr '[:upper:]' '[:lower:]')
56
+ case "$BASE_NAME" in
57
+ changelog.prizm|changelog-archive.prizm|*changelog*.prizm)
58
+ echo "ERROR: $FILE is auxiliary history. Use git history instead of changelog .prizm files." >&2
59
+ ERRORS=$((ERRORS + 1))
60
+ ;;
61
+ esac
62
+ if grep -qiE '^[[:space:]]*[-*]?[[:space:]]*(CHANGELOG|CREATED([ _-]?(AT|ON|DATE))?|UPDATED([ _-]?(AT|ON|DATE))?|MODIFIED([ _-]?(AT|ON|DATE))?|LAST[ _-]?(UPDATED|MODIFIED)([ _-]?(AT|ON|DATE))?|DATE|TIMESTAMP):' "$CHECK_FILE"; then
63
+ echo "ERROR: $FILE contains auxiliary history metadata. Use durable KEY: value sections only; git tracks history." >&2
64
+ ERRORS=$((ERRORS + 1))
65
+ fi
66
+
67
+ # Check workflow metadata leakage
68
+ if grep -qiE '(^|[^[:alnum:]_])([FBR]-[0-9]{3}|T-[0-9]{3})(-[A-Z])?([^[:alnum:]_]|$)' "$CHECK_FILE" \
69
+ || grep -qiE '^[[:space:]]*[-*]?[[:space:]]*((bug|feature|refactor|task)[ _-]?id|(session|run|pipeline|workflow)([ _-]?id)?)([[:space:]]*(:|=)|[[:space:]]+)' "$CHECK_FILE" \
70
+ || grep -qiE '^[[:space:]]*[-*]?[[:space:]]*(bug|feature|refactor|task|session|run|pipeline|workflow)([ _-](bug|feature|refactor|task|session|run|pipeline|workflow|id))+([[:space:]]*(:|=)|[[:space:]]+)' "$CHECK_FILE"; then
71
+ echo "ERROR: $FILE contains workflow metadata. Translate IDs, branch names, worktree paths, and pipeline artifacts into durable product/domain language." >&2
72
+ ERRORS=$((ERRORS + 1))
73
+ fi
74
+
75
+ if sed 's#\\#/#g' "$CHECK_FILE" | grep -qE '(^|[^[:alnum:]_.-])\.prizmkit/(specs|dev-pipeline)($|/|[^[:alnum:]_.-])'; then
76
+ echo "ERROR: $FILE contains PrizmKit artifact paths. Translate specs/dev-pipeline references into durable product/domain language." >&2
77
+ ERRORS=$((ERRORS + 1))
78
+ fi
79
+
80
+ if sed 's#\\#/#g' "$CHECK_FILE" | grep -qE '(^|[^[:alnum:]_./:-])(/Users/|/home/|/tmp/|/private/tmp/|/var/folders/|/workspace/|/workspaces/|/opt/|/srv/|/root/|/var/tmp/|/Volumes/|/mnt/[A-Za-z]/|[A-Za-z]:/)'; then
81
+ echo "ERROR: $FILE contains absolute worktree paths. Use repository-relative source paths only." >&2
82
+ ERRORS=$((ERRORS + 1))
83
+ fi
84
+
85
+ if grep -qE '^[[:space:]]*[-*]?[[:space:]]*(BRANCH|BRANCH_NAME|CURRENT_BRANCH|SOURCE_BRANCH|BASE_BRANCH|HEAD_BRANCH|GIT_BRANCH|TARGET_BRANCH)[[:space:]_-]*(:|=|[[:space:]])' "$CHECK_FILE" \
86
+ || grep -qE '^[[:space:]]*[-*]?[[:space:]]*[A-Z][A-Z0-9_]*_BRANCH[[:space:]_-]*(:|=|[[:space:]])[[:space:]]*(main|master|develop|development|trunk|[A-Za-z0-9._-]+/[A-Za-z0-9._/-]+|(feature|fix|bugfix|hotfix|release|chore|refactor|task|dev)[/_-][A-Za-z0-9._/-]+)[[:space:]]*(#.*)?$' "$CHECK_FILE" \
87
+ || grep -qiE '^[[:space:]]*[-*]?[[:space:]]*(branch[ _-]*name|current[ _-]*branch|source[ _-]*branch|base[ _-]*branch|head[ _-]*branch|git[ _-]*branch|target[ _-]*branch)[[:space:]_-]*(:|=|[[:space:]])' "$CHECK_FILE" \
88
+ || grep -qiE '^[[:space:]]*[-*]?[[:space:]]*([[:alnum:]]+[ _-]+)+branch([[:space:]]*(:|=)|[[:space:]]+)[[:space:]]*(main|master|develop|development|trunk|[A-Za-z0-9._-]+/[A-Za-z0-9._/-]+|(feature|fix|bugfix|hotfix|release|chore|refactor|task|dev)[/_-][A-Za-z0-9._/-]+)[[:space:]]*(#.*)?$' "$CHECK_FILE" \
89
+ || grep -qiE '^[[:space:]]*[-*]?[[:space:]]*branch[[:space:]_-]*(:|=|[[:space:]])[[:space:]]*(main|master|develop|development|trunk|[A-Za-z0-9._-]+/[A-Za-z0-9._/-]+|(feature|fix|bugfix|hotfix|release|chore|refactor|task|dev)[/_-][A-Za-z0-9._/-]+)[[:space:]]*(#.*)?$' "$CHECK_FILE"; then
90
+ echo "ERROR: $FILE contains branch names. Describe durable product/domain context instead." >&2
91
+ ERRORS=$((ERRORS + 1))
92
+ fi
93
+
39
94
  # Size limits — determine level by path depth
40
- SIZE=$(wc -c < "$FILE" | tr -d ' ')
95
+ SIZE=$(wc -c < "$CHECK_FILE" | tr -d ' ')
41
96
  case "$FILE" in
42
97
  *root.prizm)
43
98
  LIMIT=4096; LEVEL="L0"
@@ -51,7 +106,7 @@ for FILE in $FILES; do
51
106
  HINT="Move implementation details to L2."
52
107
  else
53
108
  LIMIT=5120; LEVEL="L2"
54
- HINT="Archive CHANGELOG entries older than 90 days."
109
+ HINT="Remove stale or trivially derivable entries."
55
110
  fi
56
111
  ;;
57
112
  esac
@@ -64,11 +119,11 @@ for FILE in $FILES; do
64
119
  # Required fields in root.prizm
65
120
  case "$FILE" in
66
121
  *root.prizm)
67
- if ! grep -q 'PRIZM_VERSION:' "$FILE"; then
122
+ if ! grep -q 'PRIZM_VERSION:' "$CHECK_FILE"; then
68
123
  echo "ERROR: $FILE missing required field PRIZM_VERSION:" >&2
69
124
  ERRORS=$((ERRORS + 1))
70
125
  fi
71
- if ! grep -q 'MODULE_INDEX:' "$FILE"; then
126
+ if ! grep -q 'MODULE_INDEX:' "$CHECK_FILE"; then
72
127
  echo "ERROR: $FILE missing required field MODULE_INDEX:" >&2
73
128
  ERRORS=$((ERRORS + 1))
74
129
  fi
@@ -19,7 +19,8 @@ This project uses PrizmKit with the Prizm documentation system for AI-optimized
19
19
  - All `.prizm` files use KEY: value format, not prose
20
20
  - Size limits: L0 = 4KB, L1 = 4KB, L2 = 5KB
21
21
  - Arrow notation (->) indicates load pointers to other .prizm docs
22
- - DECISIONS and CHANGELOG are append-only (never delete entries)
22
+ - Memory files must not contain CHANGELOG sections/files, UPDATED/date metadata, feature/bug/refactor/task/session/run/pipeline/workflow IDs, branch names, absolute worktree paths, or `.prizmkit/specs` / `.prizmkit/dev-pipeline` artifact paths
23
+ - Update durable sections in place; git history is the change log
23
24
  - No date/time fields — git is the authoritative source for temporal info
24
25
 
25
26
  ### Creating New L2 Docs
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prizmkit",
3
- "version": "1.1.58",
3
+ "version": "1.1.61",
4
4
  "description": "Create a new PrizmKit-powered project with clean initialization — no framework dev files, just what you need.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -35,7 +35,8 @@
35
35
  "development",
36
36
  "framework",
37
37
  "codebuddy",
38
- "claude-code"
38
+ "claude-code",
39
+ "codex"
39
40
  ],
40
41
  "author": "PrizmKit",
41
42
  "license": "MIT"
package/src/clean.js CHANGED
@@ -70,6 +70,55 @@ async function cleanGitignore(projectRoot, dryRun) {
70
70
  return { updated: true };
71
71
  }
72
72
 
73
+ async function cleanMarkedProjectMemory(projectRoot, fileName, dryRun) {
74
+ const filePath = path.join(projectRoot, fileName);
75
+ if (!await fs.pathExists(filePath)) {
76
+ return { path: filePath, removed: false, reason: 'not_found' };
77
+ }
78
+
79
+ const content = await fs.readFile(filePath, 'utf8');
80
+ const next = content.replace(
81
+ /<!-- PRIZMKIT:START[\s\S]*?<!-- PRIZMKIT:END -->\n?/g,
82
+ ''
83
+ );
84
+
85
+ if (next === content) {
86
+ return { path: filePath, removed: false, reason: 'no_prizmkit_section' };
87
+ }
88
+
89
+ if (dryRun) {
90
+ return { path: filePath, removed: false, reason: 'dry_run' };
91
+ }
92
+
93
+ const trimmed = next.trim();
94
+ if (!trimmed) {
95
+ await fs.remove(filePath);
96
+ return { path: filePath, removed: true };
97
+ }
98
+
99
+ await fs.writeFile(filePath, next.replace(/\n{3,}/g, '\n\n').trimEnd() + '\n');
100
+ return { path: filePath, removed: true, note: '(PrizmKit section)' };
101
+ }
102
+
103
+ async function removeGeneratedCodexConfig(projectRoot, dryRun) {
104
+ const configPath = path.join(projectRoot, '.codex', 'config.toml');
105
+ if (!await fs.pathExists(configPath)) {
106
+ return { path: configPath, removed: false, reason: 'not_found' };
107
+ }
108
+
109
+ const content = await fs.readFile(configPath, 'utf8');
110
+ if (!content.includes('Generated by PrizmKit for Codex CLI project configuration')) {
111
+ return { path: configPath, removed: false, reason: 'user_config' };
112
+ }
113
+
114
+ if (dryRun) {
115
+ return { path: configPath, removed: false, reason: 'dry_run' };
116
+ }
117
+
118
+ await fs.remove(configPath);
119
+ return { path: configPath, removed: true };
120
+ }
121
+
73
122
  export async function runClean(directory, options = {}) {
74
123
  const projectRoot = path.resolve(directory || '.');
75
124
  const dryRun = Boolean(options.dryRun);
@@ -103,6 +152,7 @@ export async function runClean(directory, options = {}) {
103
152
  ];
104
153
  const manifestAgentFiles = manifest?.files?.agents || [];
105
154
  const agentFiles = [...new Set([...knownAgentFiles, ...manifestAgentFiles])];
155
+ const codexAgentFiles = [...new Set(agentFiles.flatMap(f => [f, f.replace(/\.md$/, '.toml')]))];
106
156
 
107
157
  // Rule file names installed by PrizmKit (union of metadata + manifest)
108
158
  const metadataRuleFileNames = Object.keys(metadata_rules_to_filenames(rulesMeta));
@@ -115,20 +165,21 @@ export async function runClean(directory, options = {}) {
115
165
  const fullRemoveTargets = [
116
166
  '.prizmkit',
117
167
  '.dev-team',
118
- 'CODEBUDDY.md',
119
- 'CLAUDE.md',
120
168
  path.join('.prizmkit', 'plans', 'feature-list.json'), // feature-planner output
121
169
  path.join('.prizmkit', 'plans', 'bug-fix-list.json'), // bug-planner output
122
170
  path.join('.prizmkit', 'plans', 'project-brief.md'), // feature-planner project brief
123
171
  path.join('.codebuddy', 'settings.json'),
124
172
  path.join('.claude', 'settings.json'),
125
173
  path.join('.claude', 'team-info.json'),
174
+ path.join('.codex', 'prizmkit-settings.json'), // legacy Codex metadata
175
+ path.join('.codex', 'team-info.json'),
126
176
  ];
127
177
 
128
178
  for (const rel of fullRemoveTargets) {
129
179
  const abs = path.join(projectRoot, rel);
130
180
  results.push(await removePath(abs, dryRun));
131
181
  }
182
+ results.push(await removeGeneratedCodexConfig(projectRoot, dryRun));
132
183
 
133
184
  // ── Selective removes (shared dirs — only remove PrizmKit-known entries) ──
134
185
 
@@ -145,6 +196,10 @@ export async function runClean(directory, options = {}) {
145
196
  const cbSkillsDir = path.join(projectRoot, '.codebuddy', 'skills');
146
197
  results.push(...await removeKnownEntries(cbSkillsDir, allSkillNames, dryRun));
147
198
 
199
+ // .agents/skills/ — Codex repository skills
200
+ const codexSkillsDir = path.join(projectRoot, '.agents', 'skills');
201
+ results.push(...await removeKnownEntries(codexSkillsDir, allSkillNames, dryRun));
202
+
148
203
  // .claude/agents/ — PrizmKit agent files
149
204
  const claudeAgentsDir = path.join(projectRoot, '.claude', 'agents');
150
205
  results.push(...await removeKnownEntries(claudeAgentsDir, agentFiles, dryRun));
@@ -153,6 +208,10 @@ export async function runClean(directory, options = {}) {
153
208
  const cbAgentsDir = path.join(projectRoot, '.codebuddy', 'agents');
154
209
  results.push(...await removeKnownEntries(cbAgentsDir, agentFiles, dryRun));
155
210
 
211
+ // .codex/agents/ — same agent reference files
212
+ const codexAgentsDir = path.join(projectRoot, '.codex', 'agents');
213
+ results.push(...await removeKnownEntries(codexAgentsDir, codexAgentFiles, dryRun));
214
+
156
215
  // .claude/rules/ — PrizmKit rule .md files
157
216
  const claudeRulesDir = path.join(projectRoot, '.claude', 'rules');
158
217
  results.push(...await removeKnownEntries(claudeRulesDir, ruleFileNames.map(n => `${n}.md`), dryRun));
@@ -161,6 +220,18 @@ export async function runClean(directory, options = {}) {
161
220
  const cbRulesDir = path.join(projectRoot, '.codebuddy', 'rules');
162
221
  results.push(...await removeKnownEntries(cbRulesDir, ruleFileNames.map(n => `${n}.mdc`), dryRun));
163
222
 
223
+ // .agents/rules/ — Codex PrizmKit behavioral guidance Markdown files
224
+ const codexRulesDir = path.join(projectRoot, '.agents', 'rules');
225
+ results.push(...await removeKnownEntries(codexRulesDir, ruleFileNames.map(n => `${n}.md`), dryRun));
226
+
227
+ // .codex/rules/ — legacy PrizmKit-owned rule files from older Codex installs
228
+ const legacyCodexRulesDir = path.join(projectRoot, '.codex', 'rules');
229
+ results.push(...await removeKnownEntries(legacyCodexRulesDir, ruleFileNames.map(n => `${n}.md`), dryRun));
230
+
231
+ for (const memoryFile of ['CODEBUDDY.md', 'CLAUDE.md', 'AGENTS.md']) {
232
+ results.push(await cleanMarkedProjectMemory(projectRoot, memoryFile, dryRun));
233
+ }
234
+
164
235
  // ── .gitignore cleanup ────────────────────────────────────────────────────
165
236
  const gitignoreResult = await cleanGitignore(projectRoot, dryRun);
166
237