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.
- package/bin/create-prizmkit.js +8 -6
- package/bundled/VERSION.json +3 -3
- package/bundled/adapters/codex/agent-adapter.js +38 -0
- package/bundled/adapters/codex/paths.js +27 -0
- package/bundled/adapters/codex/rules-adapter.js +30 -0
- package/bundled/adapters/codex/settings-adapter.js +27 -0
- package/bundled/adapters/codex/skill-adapter.js +65 -0
- package/bundled/adapters/codex/team-adapter.js +37 -0
- package/bundled/agents/prizm-dev-team-dev.md +6 -5
- package/bundled/dev-pipeline/.env.example +2 -1
- package/bundled/dev-pipeline/README.md +10 -7
- package/bundled/dev-pipeline/lib/common.sh +278 -37
- package/bundled/dev-pipeline/run-bugfix.sh +10 -61
- package/bundled/dev-pipeline/run-feature.sh +10 -78
- package/bundled/dev-pipeline/run-recovery.sh +10 -46
- package/bundled/dev-pipeline/run-refactor.sh +10 -61
- package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +17 -7
- package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +9 -3
- package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +9 -3
- package/bundled/dev-pipeline/scripts/utils.py +6 -4
- package/bundled/dev-pipeline-windows/.env.example +28 -0
- package/bundled/dev-pipeline-windows/README.md +30 -0
- package/bundled/dev-pipeline-windows/SCHEMA_ANALYSIS.md +525 -0
- package/bundled/dev-pipeline-windows/assets/feature-list-example.json +146 -0
- package/bundled/dev-pipeline-windows/assets/prizm-dev-team-integration.md +138 -0
- package/bundled/dev-pipeline-windows/launch-bugfix-daemon.ps1 +9 -0
- package/bundled/dev-pipeline-windows/launch-feature-daemon.ps1 +9 -0
- package/bundled/dev-pipeline-windows/launch-refactor-daemon.ps1 +9 -0
- package/bundled/dev-pipeline-windows/lib/common.ps1 +432 -0
- package/bundled/dev-pipeline-windows/lib/daemon.ps1 +140 -0
- package/bundled/dev-pipeline-windows/lib/pipeline.ps1 +446 -0
- package/bundled/dev-pipeline-windows/lib/reset.ps1 +87 -0
- package/bundled/dev-pipeline-windows/reset-bug.ps1 +9 -0
- package/bundled/dev-pipeline-windows/reset-feature.ps1 +9 -0
- package/bundled/dev-pipeline-windows/reset-refactor.ps1 +9 -0
- package/bundled/dev-pipeline-windows/run-bugfix.ps1 +9 -0
- package/bundled/dev-pipeline-windows/run-feature.ps1 +9 -0
- package/bundled/dev-pipeline-windows/run-recovery.ps1 +76 -0
- package/bundled/dev-pipeline-windows/run-refactor.ps1 +9 -0
- package/bundled/dev-pipeline-windows/scripts/check-session-status.py +228 -0
- package/bundled/dev-pipeline-windows/scripts/cleanup-logs.py +192 -0
- package/bundled/dev-pipeline-windows/scripts/detect-stuck.py +530 -0
- package/bundled/dev-pipeline-windows/scripts/generate-bootstrap-prompt.py +1737 -0
- package/bundled/dev-pipeline-windows/scripts/generate-bugfix-prompt.py +685 -0
- package/bundled/dev-pipeline-windows/scripts/generate-recovery-prompt.py +805 -0
- package/bundled/dev-pipeline-windows/scripts/generate-refactor-prompt.py +763 -0
- package/bundled/dev-pipeline-windows/scripts/init-bugfix-pipeline.py +316 -0
- package/bundled/dev-pipeline-windows/scripts/init-dev-team.py +134 -0
- package/bundled/dev-pipeline-windows/scripts/init-pipeline.py +380 -0
- package/bundled/dev-pipeline-windows/scripts/init-refactor-pipeline.py +399 -0
- package/bundled/dev-pipeline-windows/scripts/parse-stream-progress.py +388 -0
- package/bundled/dev-pipeline-windows/scripts/patch-completion-notes.py +191 -0
- package/bundled/dev-pipeline-windows/scripts/update-bug-status.py +864 -0
- package/bundled/dev-pipeline-windows/scripts/update-checkpoint.py +173 -0
- package/bundled/dev-pipeline-windows/scripts/update-feature-status.py +1501 -0
- package/bundled/dev-pipeline-windows/scripts/update-refactor-status.py +1073 -0
- package/bundled/dev-pipeline-windows/scripts/utils.py +542 -0
- package/bundled/dev-pipeline-windows/templates/agent-prompts/critic-plan-challenge.md +7 -0
- package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-fix.md +7 -0
- package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-implement.md +30 -0
- package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-resume.md +5 -0
- package/bundled/dev-pipeline-windows/templates/agent-prompts/reviewer-review.md +7 -0
- package/bundled/dev-pipeline-windows/templates/bootstrap-prompt.md +46 -0
- package/bundled/dev-pipeline-windows/templates/bootstrap-tier1.md +43 -0
- package/bundled/dev-pipeline-windows/templates/bootstrap-tier2.md +43 -0
- package/bundled/dev-pipeline-windows/templates/bootstrap-tier3.md +43 -0
- package/bundled/dev-pipeline-windows/templates/bug-fix-list-schema.json +263 -0
- package/bundled/dev-pipeline-windows/templates/bugfix-bootstrap-prompt.md +320 -0
- package/bundled/dev-pipeline-windows/templates/feature-list-schema.json +237 -0
- package/bundled/dev-pipeline-windows/templates/refactor-bootstrap-prompt.md +331 -0
- package/bundled/dev-pipeline-windows/templates/refactor-list-schema.json +270 -0
- package/bundled/dev-pipeline-windows/templates/sections/ac-verification-checklist.md +13 -0
- package/bundled/dev-pipeline-windows/templates/sections/checkpoint-system.md +91 -0
- package/bundled/dev-pipeline-windows/templates/sections/context-budget-rules.md +33 -0
- package/bundled/dev-pipeline-windows/templates/sections/critical-paths-agent.md +10 -0
- package/bundled/dev-pipeline-windows/templates/sections/critical-paths-full.md +12 -0
- package/bundled/dev-pipeline-windows/templates/sections/critical-paths-lite.md +7 -0
- package/bundled/dev-pipeline-windows/templates/sections/directory-convention-agent.md +8 -0
- package/bundled/dev-pipeline-windows/templates/sections/directory-convention-full.md +9 -0
- package/bundled/dev-pipeline-windows/templates/sections/directory-convention-lite.md +6 -0
- package/bundled/dev-pipeline-windows/templates/sections/failure-capture.md +21 -0
- package/bundled/dev-pipeline-windows/templates/sections/feature-context.md +31 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification-auto.md +72 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification-opencli.md +63 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification.md +62 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-commit-full.md +71 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-commit.md +64 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-agent-suffix.md +23 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-base.md +24 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-lite-suffix.md +12 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-critic-plan-full.md +53 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-critic-plan.md +32 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-implement-agent.md +37 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-implement-full.md +50 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-implement-lite.md +52 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-plan-agent.md +27 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-plan-lite.md +27 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-review-agent.md +27 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-review-full.md +29 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase-specify-plan-full.md +77 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase0-init.md +13 -0
- package/bundled/dev-pipeline-windows/templates/sections/phase0-test-baseline.md +23 -0
- package/bundled/dev-pipeline-windows/templates/sections/session-context.md +5 -0
- package/bundled/dev-pipeline-windows/templates/sections/subagent-timeout-recovery.md +6 -0
- package/bundled/dev-pipeline-windows/templates/sections/test-failure-recovery-agent.md +67 -0
- package/bundled/dev-pipeline-windows/templates/sections/test-failure-recovery-lite.md +58 -0
- package/bundled/dev-pipeline-windows/templates/session-status-schema.json +83 -0
- package/bundled/rules/prizm/prizm-documentation.md +2 -4
- package/bundled/rules/prizm/prizm-progressive-loading.md +2 -1
- package/bundled/skills/_metadata.json +1 -1
- package/bundled/skills/app-planner/SKILL.md +24 -16
- package/bundled/skills/app-planner/references/architecture-decisions.md +9 -5
- package/bundled/skills/app-planner/references/frontend-design-guide.md +1 -1
- package/bundled/skills/feature-planner/SKILL.md +9 -2
- package/bundled/skills/prizmkit-implement/SKILL.md +1 -0
- package/bundled/skills/prizmkit-init/SKILL.md +8 -7
- package/bundled/skills/prizmkit-init/references/config-schema.md +3 -1
- package/bundled/skills/prizmkit-plan/SKILL.md +2 -0
- package/bundled/skills/prizmkit-prizm-docs/assets/prizm-docs-format.md +6 -1
- package/bundled/skills/prizmkit-prizm-docs/references/op-init.md +2 -2
- package/bundled/skills/prizmkit-prizm-docs/references/op-update.md +2 -1
- package/bundled/skills/prizmkit-prizm-docs/references/op-validate.md +2 -2
- package/bundled/skills/prizmkit-retrospective/SKILL.md +2 -0
- package/bundled/skills/prizmkit-retrospective/references/knowledge-injection-steps.md +2 -0
- package/bundled/skills/prizmkit-retrospective/references/structural-sync-steps.md +2 -0
- package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +2 -0
- package/bundled/skills-windows/app-planner/SKILL.md +639 -0
- package/bundled/skills-windows/app-planner/assets/app-design-guide.md +101 -0
- package/bundled/skills-windows/app-planner/references/architecture-decisions.md +52 -0
- package/bundled/skills-windows/app-planner/references/brainstorm-guide.md +101 -0
- package/bundled/skills-windows/app-planner/references/frontend-design-guide.md +71 -0
- package/bundled/skills-windows/app-planner/references/project-brief-guide.md +82 -0
- package/bundled/skills-windows/app-planner/references/red-team-checklist.md +40 -0
- package/bundled/skills-windows/app-planner/references/rules/backend/derivation-rules.md +609 -0
- package/bundled/skills-windows/app-planner/references/rules/backend/fixed-rules.md +285 -0
- package/bundled/skills-windows/app-planner/references/rules/backend/question-bank.md +249 -0
- package/bundled/skills-windows/app-planner/references/rules/backend/template.md +173 -0
- package/bundled/skills-windows/app-planner/references/rules/database/derivation-rules.md +373 -0
- package/bundled/skills-windows/app-planner/references/rules/database/fixed-rules.md +211 -0
- package/bundled/skills-windows/app-planner/references/rules/database/question-bank.md +184 -0
- package/bundled/skills-windows/app-planner/references/rules/database/template.md +158 -0
- package/bundled/skills-windows/app-planner/references/rules/frontend/derivation-rules.md +810 -0
- package/bundled/skills-windows/app-planner/references/rules/frontend/fixed-rules.md +188 -0
- package/bundled/skills-windows/app-planner/references/rules/frontend/question-bank.md +302 -0
- package/bundled/skills-windows/app-planner/references/rules/frontend/template.md +320 -0
- package/bundled/skills-windows/app-planner/references/rules/mobile/derivation-rules.md +639 -0
- package/bundled/skills-windows/app-planner/references/rules/mobile/fixed-rules.md +290 -0
- package/bundled/skills-windows/app-planner/references/rules/mobile/question-bank.md +232 -0
- package/bundled/skills-windows/app-planner/references/rules/mobile/template.md +175 -0
- package/bundled/skills-windows/bug-fix-workflow/SKILL.md +415 -0
- package/bundled/skills-windows/bug-planner/SKILL.md +395 -0
- package/bundled/skills-windows/bug-planner/assets/bug-confirmation-template.md +43 -0
- package/bundled/skills-windows/bug-planner/references/critic-and-verification.md +44 -0
- package/bundled/skills-windows/bug-planner/references/error-recovery.md +73 -0
- package/bundled/skills-windows/bug-planner/references/input-formats.md +53 -0
- package/bundled/skills-windows/bug-planner/references/schema-validation.md +25 -0
- package/bundled/skills-windows/bug-planner/references/severity-rules.md +16 -0
- package/bundled/skills-windows/bug-planner/scripts/validate-bug-list.py +322 -0
- package/bundled/skills-windows/bugfix-pipeline-launcher/SKILL.md +380 -0
- package/bundled/skills-windows/feature-pipeline-launcher/SKILL.md +441 -0
- package/bundled/skills-windows/feature-pipeline-launcher/scripts/preflight-check.py +462 -0
- package/bundled/skills-windows/feature-planner/SKILL.md +401 -0
- package/bundled/skills-windows/feature-planner/assets/evaluation-guide.md +64 -0
- package/bundled/skills-windows/feature-planner/assets/planning-guide.md +214 -0
- package/bundled/skills-windows/feature-planner/references/browser-interaction.md +59 -0
- package/bundled/skills-windows/feature-planner/references/completeness-review.md +57 -0
- package/bundled/skills-windows/feature-planner/references/decomposition-patterns.md +75 -0
- package/bundled/skills-windows/feature-planner/references/error-recovery.md +90 -0
- package/bundled/skills-windows/feature-planner/references/incremental-feature-planning.md +112 -0
- package/bundled/skills-windows/feature-planner/references/new-project-planning.md +85 -0
- package/bundled/skills-windows/feature-planner/scripts/validate-and-generate.py +1029 -0
- package/bundled/skills-windows/feature-workflow/SKILL.md +531 -0
- package/bundled/skills-windows/prizmkit-init/SKILL.md +356 -0
- package/bundled/skills-windows/prizmkit-init/assets/project-brief-template.md +82 -0
- package/bundled/skills-windows/prizmkit-init/references/config-schema.md +70 -0
- package/bundled/skills-windows/prizmkit-init/references/rules/layer-detection.md +41 -0
- package/bundled/skills-windows/prizmkit-init/references/tech-stack-catalog.md +13 -0
- package/bundled/skills-windows/prizmkit-init/references/update-supplement.md +9 -0
- package/bundled/skills-windows/recovery-workflow/SKILL.md +456 -0
- package/bundled/skills-windows/recovery-workflow/evals/evals.json +46 -0
- package/bundled/skills-windows/recovery-workflow/scripts/detect-recovery-state.py +544 -0
- package/bundled/skills-windows/refactor-pipeline-launcher/SKILL.md +406 -0
- package/bundled/skills-windows/refactor-planner/SKILL.md +540 -0
- package/bundled/skills-windows/refactor-planner/assets/planning-guide.md +292 -0
- package/bundled/skills-windows/refactor-planner/references/behavior-preservation.md +301 -0
- package/bundled/skills-windows/refactor-planner/references/refactor-scoping-guide.md +221 -0
- package/bundled/skills-windows/refactor-planner/scripts/validate-and-generate-refactor.py +858 -0
- package/bundled/skills-windows/refactor-workflow/SKILL.md +503 -0
- package/bundled/templates/hooks/diff-prizm-docs.sh +1 -1
- package/bundled/templates/hooks/prizm-pre-commit.sh +53 -4
- package/bundled/templates/hooks/validate-prizm-docs.sh +62 -7
- package/bundled/templates/project-memory-template.md +2 -1
- package/package.json +3 -2
- package/src/clean.js +73 -2
- package/src/config.js +167 -50
- package/src/detect-platform.js +15 -9
- package/src/external-skills.js +26 -19
- package/src/index.js +28 -10
- package/src/manifest.js +6 -2
- package/src/metadata.js +43 -5
- package/src/platforms.js +38 -0
- package/src/prompts.js +50 -9
- package/src/runtimes.js +20 -0
- package/src/scaffold.js +447 -114
- 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
|
-
|
|
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} ' "$
|
|
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 '^```' "$
|
|
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 < "$
|
|
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="
|
|
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:' "$
|
|
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:' "$
|
|
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
|
-
-
|
|
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.
|
|
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
|
|