prizmkit 1.1.1 → 1.1.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/bundled/VERSION.json +3 -3
- package/bundled/adapters/claude/agent-adapter.js +18 -0
- package/bundled/adapters/claude/command-adapter.js +1 -27
- package/bundled/agents/prizm-dev-team-critic.md +2 -0
- package/bundled/agents/prizm-dev-team-dev.md +2 -0
- package/bundled/agents/prizm-dev-team-reviewer.md +2 -0
- package/bundled/dev-pipeline/README.md +63 -63
- package/bundled/dev-pipeline/assets/feature-list-example.json +1 -1
- package/bundled/dev-pipeline/assets/prizm-dev-team-integration.md +1 -1
- package/bundled/dev-pipeline/{launch-daemon.sh → launch-feature-daemon.sh} +33 -33
- package/bundled/dev-pipeline/launch-refactor-daemon.sh +454 -0
- package/bundled/dev-pipeline/lib/branch.sh +1 -1
- package/bundled/dev-pipeline/reset-feature.sh +3 -3
- package/bundled/dev-pipeline/reset-refactor.sh +312 -0
- package/bundled/dev-pipeline/{retry-bug.sh → retry-bugfix.sh} +47 -59
- package/bundled/dev-pipeline/retry-feature.sh +41 -54
- package/bundled/dev-pipeline/retry-refactor.sh +358 -0
- package/bundled/dev-pipeline/run-bugfix.sh +41 -0
- package/bundled/dev-pipeline/{run.sh → run-feature.sh} +64 -31
- package/bundled/dev-pipeline/run-refactor.sh +787 -0
- package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +398 -10
- package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +124 -0
- package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +419 -0
- package/bundled/dev-pipeline/scripts/init-refactor-pipeline.py +393 -0
- package/bundled/dev-pipeline/scripts/update-refactor-status.py +726 -0
- package/bundled/dev-pipeline/templates/agent-prompts/critic-code-challenge.md +13 -0
- package/bundled/dev-pipeline/templates/agent-prompts/critic-plan-challenge.md +7 -0
- package/bundled/dev-pipeline/templates/agent-prompts/dev-fix.md +7 -0
- package/bundled/dev-pipeline/templates/agent-prompts/dev-implement.md +27 -0
- package/bundled/dev-pipeline/templates/agent-prompts/dev-resume.md +5 -0
- package/bundled/dev-pipeline/templates/agent-prompts/reviewer-analyze.md +5 -0
- package/bundled/dev-pipeline/templates/agent-prompts/reviewer-review.md +12 -0
- package/bundled/dev-pipeline/templates/bootstrap-tier1.md +33 -2
- package/bundled/dev-pipeline/templates/bootstrap-tier2.md +13 -9
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +16 -12
- package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +22 -4
- package/bundled/dev-pipeline/templates/feature-list-schema.json +1 -1
- package/bundled/dev-pipeline/templates/refactor-list-schema.json +159 -0
- package/bundled/dev-pipeline/templates/sections/ac-verification-checklist.md +13 -0
- package/bundled/dev-pipeline/templates/sections/checkpoint-system.md +36 -0
- package/bundled/dev-pipeline/templates/sections/failure-log-check.md +2 -1
- package/bundled/dev-pipeline/templates/sections/feature-context.md +1 -1
- package/bundled/dev-pipeline/templates/sections/phase-analyze-agent.md +11 -7
- package/bundled/dev-pipeline/templates/sections/phase-analyze-full.md +11 -7
- package/bundled/dev-pipeline/templates/sections/phase-browser-verification.md +5 -1
- package/bundled/dev-pipeline/templates/sections/phase-commit-full.md +3 -0
- package/bundled/dev-pipeline/templates/sections/phase-commit.md +3 -0
- package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-agent-suffix.md +3 -0
- package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-lite-suffix.md +3 -0
- package/bundled/dev-pipeline/templates/sections/phase-critic-code.md +11 -10
- package/bundled/dev-pipeline/templates/sections/phase-critic-plan-full.md +12 -10
- package/bundled/dev-pipeline/templates/sections/phase-critic-plan.md +11 -9
- package/bundled/dev-pipeline/templates/sections/phase-deploy-verification.md +3 -0
- package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +10 -10
- package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +12 -16
- package/bundled/dev-pipeline/templates/sections/phase-implement-lite.md +3 -0
- package/bundled/dev-pipeline/templates/sections/phase-plan-agent.md +3 -0
- package/bundled/dev-pipeline/templates/sections/phase-plan-lite.md +3 -0
- package/bundled/dev-pipeline/templates/sections/phase-review-agent.md +11 -13
- package/bundled/dev-pipeline/templates/sections/phase-review-full.md +12 -20
- package/bundled/dev-pipeline/templates/sections/phase-specify-plan-full.md +3 -0
- package/bundled/dev-pipeline/templates/sections/phase0-init.md +3 -0
- package/bundled/dev-pipeline/templates/sections/phase0-test-baseline.md +3 -0
- package/bundled/dev-pipeline/templates/sections/resume-header.md +4 -1
- package/bundled/dev-pipeline/templates/sections/test-failure-recovery.md +75 -0
- package/bundled/rules/prizm/prizm-commit-workflow.md +1 -0
- package/bundled/rules/prizm/prizm-documentation.md +15 -15
- package/bundled/rules/prizm/prizm-progressive-loading.md +2 -1
- package/bundled/skills/_metadata.json +33 -6
- package/bundled/skills/app-planner/SKILL.md +105 -320
- package/bundled/skills/app-planner/assets/app-design-guide.md +101 -0
- package/bundled/skills/app-planner/references/frontend-design-guide.md +1 -1
- package/bundled/skills/app-planner/references/project-brief-guide.md +49 -80
- package/bundled/skills/bug-fix-workflow/SKILL.md +2 -2
- package/bundled/skills/bug-planner/SKILL.md +68 -5
- package/bundled/skills/bug-planner/scripts/validate-bug-list.py +3 -2
- package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +19 -5
- package/bundled/skills/{dev-pipeline-launcher → feature-pipeline-launcher}/SKILL.md +32 -32
- package/bundled/skills/feature-planner/SKILL.md +337 -0
- package/bundled/skills/{app-planner → feature-planner}/assets/evaluation-guide.md +4 -4
- package/bundled/skills/{app-planner → feature-planner}/assets/planning-guide.md +3 -171
- package/bundled/skills/{app-planner → feature-planner}/references/browser-interaction.md +6 -5
- package/bundled/skills/feature-planner/references/decomposition-patterns.md +75 -0
- package/bundled/skills/{app-planner → feature-planner}/references/error-recovery.md +8 -8
- package/bundled/skills/{app-planner → feature-planner}/references/incremental-feature-planning.md +1 -1
- package/bundled/skills/{app-planner/references/new-app-planning.md → feature-planner/references/new-project-planning.md} +1 -1
- package/bundled/skills/{app-planner → feature-planner}/scripts/validate-and-generate.py +4 -4
- package/bundled/skills/feature-workflow/SKILL.md +23 -23
- package/bundled/skills/prizm-kit/SKILL.md +1 -3
- package/bundled/skills/prizm-kit/assets/project-memory-template.md +4 -2
- package/bundled/skills/prizmkit-analyze/SKILL.md +2 -5
- package/bundled/skills/prizmkit-code-review/SKILL.md +2 -2
- package/bundled/skills/prizmkit-committer/SKILL.md +32 -8
- package/bundled/skills/prizmkit-deploy/SKILL.md +1 -5
- package/bundled/skills/prizmkit-implement/SKILL.md +5 -51
- package/bundled/skills/prizmkit-init/SKILL.md +7 -78
- package/bundled/skills/prizmkit-plan/SKILL.md +1 -12
- package/bundled/skills/prizmkit-prizm-docs/SKILL.md +13 -28
- package/bundled/skills/prizmkit-prizm-docs/assets/PRIZM-SPEC.md +52 -1
- package/bundled/skills/prizmkit-retrospective/SKILL.md +12 -117
- package/bundled/skills/recovery-workflow/SKILL.md +168 -316
- package/bundled/skills/recovery-workflow/evals/evals.json +29 -13
- package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +232 -274
- package/bundled/skills/refactor-pipeline-launcher/SKILL.md +352 -0
- package/bundled/skills/refactor-planner/SKILL.md +436 -0
- package/bundled/skills/refactor-planner/assets/planning-guide.md +292 -0
- package/bundled/skills/refactor-planner/references/behavior-preservation.md +301 -0
- package/bundled/skills/refactor-planner/references/refactor-scoping-guide.md +221 -0
- package/bundled/skills/refactor-planner/scripts/validate-and-generate-refactor.py +786 -0
- package/bundled/skills/refactor-workflow/SKILL.md +299 -319
- package/bundled/team/prizm-dev-team.json +1 -1
- package/package.json +1 -1
- package/src/clean.js +3 -3
- package/src/scaffold.js +6 -6
- package/bundled/skills/prizmkit-plan/assets/spec-template.md +0 -56
- package/bundled/skills/prizmkit-plan/references/clarify-guide.md +0 -67
- package/src/config.js +0 -504
- package/src/prompts.js +0 -210
- /package/bundled/skills/{dev-pipeline-launcher → feature-pipeline-launcher}/scripts/preflight-check.py +0 -0
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "prizmkit-committer"
|
|
3
|
-
description: "Pure git commit workflow with safety checks. Stages files,
|
|
3
|
+
description: "Pure git commit workflow with safety checks. Stages files, generates Conventional Commits message, and commits. Does NOT modify .prizm-docs/ — run /prizmkit-retrospective first. Trigger on: 'commit', 'submit', 'finish', 'done', 'ship it'. (project)"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# PrizmKit Committer
|
|
7
7
|
|
|
8
|
-
Pure git commit workflow. Analyzes changes, generates a Conventional Commits message, performs safety checks, and commits.
|
|
9
|
-
|
|
10
|
-
**This skill is a pure git commit tool. It does NOT modify any project files — no `.prizm-docs/`, no source code.** It only reads diffs, generates a commit message, and commits. For feature/refactor workflows, run `/prizmkit-retrospective` (and optionally `/prizmkit-deploy` if new infrastructure was introduced) before this skill. For bug fixes, skip retrospective and deploy entirely.
|
|
11
|
-
|
|
12
8
|
### When to Use
|
|
13
9
|
- User says "commit", "submit", "finish", "done with this task", "ship it"
|
|
14
10
|
- After `/prizmkit-retrospective` has finished architecture sync
|
|
@@ -24,7 +20,7 @@ Pure git commit workflow. Analyzes changes, generates a Conventional Commits mes
|
|
|
24
20
|
|
|
25
21
|
### Workflow
|
|
26
22
|
|
|
27
|
-
Follow these steps
|
|
23
|
+
Follow these steps in order — skipping or reordering can stage sensitive files or commit without proper verification:
|
|
28
24
|
|
|
29
25
|
#### Step 1: Status Check
|
|
30
26
|
```bash
|
|
@@ -33,8 +29,8 @@ git status
|
|
|
33
29
|
- If "nothing to commit, working tree clean": inform user and stop
|
|
34
30
|
- If there are changes: proceed
|
|
35
31
|
|
|
36
|
-
#### Step 2:
|
|
37
|
-
|
|
32
|
+
#### Step 2: Generate Commit Message
|
|
33
|
+
Analyze the staged diff and context (spec title, plan summary, review verdict) to generate a concise Conventional Commits message. The message should capture the *what* and *why* of the change.
|
|
38
34
|
|
|
39
35
|
#### Step 3: Update CHANGELOG.md
|
|
40
36
|
If CHANGELOG.md exists in the project root, append an entry following Keep a Changelog format under the `[Unreleased]` section. Match the existing style in the file.
|
|
@@ -65,6 +61,34 @@ git status
|
|
|
65
61
|
```
|
|
66
62
|
- If "nothing to commit, working tree clean": commit verified successfully, proceed
|
|
67
63
|
|
|
64
|
+
#### Step 5.5: Generate Session Summary (for cross-session recovery)
|
|
65
|
+
|
|
66
|
+
After a successful commit, generate a lightweight handoff file for future sessions. Locate the artifact directory (`.prizmkit/specs/<feature-dir>/` for features, `.prizmkit/refactor/<slug>/` for refactors, `.prizmkit/bugfix/<id>/` for bugfixes) by checking which `plan.md` was used in this workflow.
|
|
67
|
+
|
|
68
|
+
If an artifact directory with `plan.md` is found, write `session-summary.md` in that directory:
|
|
69
|
+
|
|
70
|
+
```markdown
|
|
71
|
+
# Session Summary
|
|
72
|
+
## Completed Tasks
|
|
73
|
+
<list task IDs and one-line descriptions from plan.md [x] items>
|
|
74
|
+
|
|
75
|
+
## Files Changed
|
|
76
|
+
<list from `git diff HEAD~1 --name-only` of the commit just made>
|
|
77
|
+
|
|
78
|
+
## Key Decisions
|
|
79
|
+
<1-3 bullet points of non-obvious design choices made this session, referencing DECISIONS in .prizm-docs/ if applicable>
|
|
80
|
+
|
|
81
|
+
## Active TRAPS
|
|
82
|
+
<any CRITICAL or HIGH TRAPS relevant to the changed files, copied from .prizm-docs/ L2>
|
|
83
|
+
|
|
84
|
+
## Remaining Work
|
|
85
|
+
<list unchecked [ ] task IDs from plan.md, or "None — feature complete" if all done>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Keep this file under 1.5KB. If no artifact directory with `plan.md` can be identified (e.g., ad-hoc commit), skip this step.
|
|
89
|
+
|
|
90
|
+
**Lifecycle**: `session-summary.md` is a local cross-session artifact — do NOT commit it to git. It exists only on disk for the next session to read. Overwrite any existing `session-summary.md` from a previous session — this file reflects only the most recent commit's state. In pipeline mode, this file will remain as an untracked file after commit; the pipeline runner should ignore it (it is not a sign of incomplete work).
|
|
91
|
+
|
|
68
92
|
#### Step 6: Optional Push
|
|
69
93
|
Ask user: "Push to remote?"
|
|
70
94
|
- Yes: `git push`
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "prizmkit-deploy"
|
|
3
|
-
description: "Generate or update
|
|
3
|
+
description: "Generate or update DEPLOY.md with local dev setup, testing, production deployment, and rollback procedures. Fully autonomous. Use after /prizmkit-retrospective, before /prizmkit-committer. Trigger on: 'deploy docs', 'deployment guide', 'how to deploy', 'DEPLOY.md'. (project)"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# PrizmKit Deploy
|
|
7
7
|
|
|
8
|
-
Generate or update deployment documentation by scanning the project's actual state and reading the deployment strategy from `.prizmkit/config.json`. Produces a `DEPLOY.md` at the project root covering local development, testing, production deployment, and rollback.
|
|
9
|
-
|
|
10
|
-
**This skill generates documentation — it does NOT execute any deployment operations.**
|
|
11
|
-
|
|
12
8
|
### When to Use
|
|
13
9
|
- After `/prizmkit-retrospective` and before `/prizmkit-committer` to complete documentation before commit
|
|
14
10
|
- After a batch of features has been implemented and reviewed
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "prizmkit-implement"
|
|
3
|
-
description: "Execute
|
|
3
|
+
description: "Execute plan.md tasks with TDD approach. Respects task ordering and dependencies. Use after /prizmkit-plan (or /prizmkit-analyze). Trigger on: 'implement', 'build', 'code it', 'start coding', 'execute', 'write the code'. (project)"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# PrizmKit Implement
|
|
7
7
|
|
|
8
|
-
Execute implementation by following the task breakdown in plan.md. Respects task ordering, dependency constraints, and applies a TDD approach where applicable. Marks each task complete as it finishes.
|
|
9
|
-
|
|
10
8
|
### When to Use
|
|
11
9
|
- After `/prizmkit-plan` (or `/prizmkit-analyze`) when ready to write code
|
|
12
10
|
- User says "implement", "build", "code it", "start coding", "develop"
|
|
@@ -31,8 +29,9 @@ Execute implementation by following the task breakdown in plan.md. Respects task
|
|
|
31
29
|
- **Feature mode**: read `spec.md` in the same directory
|
|
32
30
|
- **Refactor mode**: read `refactor-analysis.md` in the same directory — pay special attention to Scope Boundary (do not implement changes outside scope) and Baseline Tests (all must still pass)
|
|
33
31
|
- **Bugfix mode**: read `fix-plan.md` in the same directory
|
|
34
|
-
2. Load project context — use the most efficient source available:
|
|
32
|
+
2. Load project context — use the most efficient source available (check in this order):
|
|
35
33
|
- If `context-snapshot.md` exists in the feature directory → read it. Section 3 has Prizm docs + TRAPS. Section 4 has File Manifest (Tier-2/3) or full source (Tier-1). Read source files on-demand as directed by the manifest.
|
|
34
|
+
- Else if `session-summary.md` exists in the feature directory → read it for quick context recovery (completed tasks, key decisions, active TRAPS). Then load only the L1/L2 docs for modules listed in "Files Changed" — skip unrelated modules.
|
|
36
35
|
- Otherwise → **self-service context fallback**:
|
|
37
36
|
1. Read **architecture index**: `.prizm-docs/root.prizm` and relevant L1/L2 for affected modules. Pay special attention to TRAPS and DECISIONS.
|
|
38
37
|
2. Scan needed source files
|
|
@@ -49,53 +48,8 @@ Execute implementation by following the task breakdown in plan.md. Respects task
|
|
|
49
48
|
f. Error handling: sequential tasks stop on failure (later tasks may depend on this one). Parallel `[P]` tasks continue — report all failures at the end.
|
|
50
49
|
5. At each checkpoint: verify build passes and tests pass. Checkpoints catch integration errors early — skipping them means cascading failures in later phases that are much harder to debug.
|
|
51
50
|
6. After all tasks: run full test suite
|
|
52
|
-
7. **Deploy guide update**
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
git diff --name-only HEAD -- package.json requirements*.txt Pipfile pyproject.toml go.mod Cargo.toml pom.xml build.gradle Gemfile composer.json docker-compose*.yml Dockerfile .tool-versions 2>/dev/null
|
|
56
|
-
```
|
|
57
|
-
- If no manifest files changed → skip this step entirely
|
|
58
|
-
- If manifest files changed, scan for **newly added** dependencies (not version bumps):
|
|
59
|
-
```bash
|
|
60
|
-
git diff -U0 HEAD -- package.json requirements*.txt Pipfile pyproject.toml go.mod Cargo.toml pom.xml build.gradle Gemfile composer.json docker-compose*.yml Dockerfile .tool-versions 2>/dev/null | grep '^\+' | grep -v '^\+\+\+' | head -30
|
|
61
|
-
```
|
|
62
|
-
- For each genuinely new framework/tool, record in `deploy_guide.md` at project root:
|
|
63
|
-
|
|
64
|
-
| Field | Description | Source |
|
|
65
|
-
|-------|-------------|--------|
|
|
66
|
-
| **Name** | Framework/tool name | Package name from manifest |
|
|
67
|
-
| **Version** | Installed version or constraint | Version spec from manifest |
|
|
68
|
-
| **Purpose** | Why it was introduced | You just added it — you know why |
|
|
69
|
-
| **Install Command** | How to install locally | Standard install command for the ecosystem |
|
|
70
|
-
| **Key Config** | Config files or env vars needed | Config files you just created/modified |
|
|
71
|
-
| **Notes** | Setup gotchas, required services | Docker services, manual steps, env vars |
|
|
72
|
-
|
|
73
|
-
- Template for `deploy_guide.md`:
|
|
74
|
-
```markdown
|
|
75
|
-
# Deploy Guide
|
|
76
|
-
|
|
77
|
-
> Auto-maintained by PrizmKit. Manual edits are preserved.
|
|
78
|
-
> Last updated: YYYY-MM-DD
|
|
79
|
-
|
|
80
|
-
## Frameworks & Tools
|
|
81
|
-
|
|
82
|
-
### <Framework Name>
|
|
83
|
-
|
|
84
|
-
- **Version**: <version constraint>
|
|
85
|
-
- **Purpose**: <why this framework is used>
|
|
86
|
-
- **Install**:
|
|
87
|
-
```bash
|
|
88
|
-
<install command>
|
|
89
|
-
```
|
|
90
|
-
- **Key Config**:
|
|
91
|
-
- `<config file or env var>`: <description>
|
|
92
|
-
- **Notes**:
|
|
93
|
-
- <any setup gotchas, required external services, manual steps>
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
- **Update rules**: create file if absent; append new sections if file exists; update version if framework already documented; preserve manually added content; keep entries sorted alphabetically
|
|
97
|
-
- **Filter out**: patch version bumps of existing deps, dev-only tools needing no setup (linters, formatters), transitive/lock-file-only changes
|
|
98
|
-
- Stage the file: `git add deploy_guide.md`
|
|
51
|
+
7. **Deploy guide update** — only when dependency manifests (package.json, requirements.txt, etc.) changed during this task.
|
|
52
|
+
→ Read `${SKILL_DIR}/references/deploy-guide-protocol.md` and follow its protocol.
|
|
99
53
|
8. Output implementation summary with pass/fail status
|
|
100
54
|
|
|
101
55
|
## Task Format in plan.md
|
|
@@ -63,23 +63,16 @@ BROWNFIELD WORKFLOW (existing project):
|
|
|
63
63
|
3. Identify entry points by language convention
|
|
64
64
|
4. Catalog dependencies (external packages)
|
|
65
65
|
5. Count source files per directory
|
|
66
|
-
6. Detect detailed tech stack (adaptive — only include fields that apply
|
|
67
|
-
|
|
68
|
-
- **Frontend framework** (if applicable): React, Vue.js, Angular, Next.js, Svelte, etc.
|
|
69
|
-
- **Frontend styling** (if applicable): Tailwind CSS, SCSS, Styled Components, Material UI, etc.
|
|
70
|
-
- **Backend framework** (if applicable): Express.js, FastAPI, Django, NestJS, Gin, etc.
|
|
71
|
-
- **Database** (if applicable): PostgreSQL, MySQL, MongoDB, Redis, SQLite — detected from deps or `docker-compose.yml`
|
|
72
|
-
- **ORM** (if applicable): Prisma, Drizzle, TypeORM, SQLAlchemy, Mongoose, etc.
|
|
73
|
-
- **Bundler** (if applicable): Vite, Webpack, esbuild, Rollup, Turborepo
|
|
74
|
-
- **Testing**: Vitest, Jest, pytest, Go test, etc.
|
|
75
|
-
- **Project type** (inferred): `frontend` | `backend` | `fullstack` | `library` | `cli` | `monorepo`
|
|
66
|
+
6. Detect detailed tech stack (adaptive — only include fields that apply):
|
|
67
|
+
→ Read `${SKILL_DIR}/references/tech-stack-catalog.md` for the full field catalog.
|
|
76
68
|
|
|
77
69
|
**IMPORTANT**: Not all projects have all fields. A pure backend API will have no `frontend_framework` or `frontend_styling`. A library may have no database. Only record what is actually detected — never generate empty or placeholder values.
|
|
78
70
|
|
|
79
71
|
**Step 2: Prizm Documentation Generation**
|
|
80
72
|
Invoke prizmkit-prizm-docs (Init operation), passing the two-tier module structure from Step 1:
|
|
81
73
|
- Create `.prizm-docs/` directory structure mirroring the source tree (sub-module dirs become subdirectories under `.prizm-docs/<top-level>/`)
|
|
82
|
-
- Generate `root.prizm` (L0) with project meta and MODULE_INDEX listing only top-level modules
|
|
74
|
+
- Generate `root.prizm` (L0) with project meta and MODULE_INDEX listing only top-level modules. If module count > 15, use MODULE_GROUPS format instead (group by functional domain).
|
|
75
|
+
- For each module entry in MODULE_INDEX/MODULE_GROUPS, include keyword tags extracted from the module's source files — scan for: exported symbols, imported packages, domain terms in file/directory names. Format: `- module-name [tag1, tag2, tag3]: ...`. Tags help AI match user intent to relevant modules.
|
|
83
76
|
- Generate L1 docs for top-level modules at `.prizm-docs/<M>.prizm` and for sub-modules at `.prizm-docs/<M>/<S>.prizm`
|
|
84
77
|
- Create `changelog.prizm`
|
|
85
78
|
- Skip L2 (lazy generation) — L2 is generated on first file modification, saving tokens upfront
|
|
@@ -90,55 +83,7 @@ Invoke prizmkit-prizm-docs (Init operation), passing the two-tier module structu
|
|
|
90
83
|
- `.prizmkit/specs/` (empty)
|
|
91
84
|
|
|
92
85
|
3b. Write detected tech stack to `.prizmkit/config.json`:
|
|
93
|
-
|
|
94
|
-
**Merge strategy** (handles re-init without losing user edits):
|
|
95
|
-
- Read existing `config.json` if present
|
|
96
|
-
- If `tech_stack` field exists AND `_auto_detected` is `false` or absent:
|
|
97
|
-
→ **SKIP** — user has manually configured tech stack, preserve their settings
|
|
98
|
-
- If `tech_stack` field exists AND `_auto_detected` is `true`:
|
|
99
|
-
→ **MERGE** — overwrite auto-detected values with new detection results, but preserve any keys the user added manually (keys not in the new detection result)
|
|
100
|
-
- If `tech_stack` field does NOT exist:
|
|
101
|
-
→ **WRITE** full detected tech stack with `"_auto_detected": true`
|
|
102
|
-
- Only include fields that were actually detected (no empty/null values)
|
|
103
|
-
|
|
104
|
-
Example config.json after init (fullstack project):
|
|
105
|
-
```json
|
|
106
|
-
{
|
|
107
|
-
"adoption_mode": "passive",
|
|
108
|
-
"platform": "claude",
|
|
109
|
-
"tech_stack": {
|
|
110
|
-
"language": "TypeScript",
|
|
111
|
-
"runtime": "Node.js 20",
|
|
112
|
-
"frontend_framework": "React",
|
|
113
|
-
"frontend_styling": "Tailwind CSS",
|
|
114
|
-
"backend_framework": "Express.js",
|
|
115
|
-
"database": "PostgreSQL",
|
|
116
|
-
"orm": "Prisma",
|
|
117
|
-
"testing": "Vitest",
|
|
118
|
-
"bundler": "Vite",
|
|
119
|
-
"project_type": "fullstack",
|
|
120
|
-
"_auto_detected": true
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
Example config.json after init (pure Python backend):
|
|
126
|
-
```json
|
|
127
|
-
{
|
|
128
|
-
"adoption_mode": "passive",
|
|
129
|
-
"platform": "claude",
|
|
130
|
-
"tech_stack": {
|
|
131
|
-
"language": "Python",
|
|
132
|
-
"runtime": "Python >=3.11",
|
|
133
|
-
"backend_framework": "FastAPI",
|
|
134
|
-
"database": "PostgreSQL",
|
|
135
|
-
"orm": "SQLAlchemy",
|
|
136
|
-
"testing": "pytest",
|
|
137
|
-
"project_type": "backend",
|
|
138
|
-
"_auto_detected": true
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
```
|
|
86
|
+
→ Read `${SKILL_DIR}/references/config-schema.md` for merge strategy, field definitions, and examples.
|
|
142
87
|
|
|
143
88
|
**Step 4: Hook & Settings Configuration**
|
|
144
89
|
|
|
@@ -165,16 +110,7 @@ Tech stack detected:
|
|
|
165
110
|
Project type: fullstack
|
|
166
111
|
```
|
|
167
112
|
|
|
168
|
-
|
|
169
|
-
```
|
|
170
|
-
Tech stack detected:
|
|
171
|
-
Language: Python
|
|
172
|
-
Runtime: Python >=3.11
|
|
173
|
-
Backend: FastAPI
|
|
174
|
-
Database: PostgreSQL (SQLAlchemy)
|
|
175
|
-
Testing: pytest
|
|
176
|
-
Project type: backend
|
|
177
|
-
```
|
|
113
|
+
Adapt fields to match project type — only show detected fields.
|
|
178
114
|
|
|
179
115
|
Saved to: `.prizmkit/config.json` → `tech_stack` field
|
|
180
116
|
|
|
@@ -243,12 +179,7 @@ Next: Use /prizmkit-plan to start your first feature
|
|
|
243
179
|
```
|
|
244
180
|
|
|
245
181
|
UPDATE SUPPLEMENT (runs after tech stack merge in Update mode):
|
|
246
|
-
|
|
247
|
-
1. **Module scan**: Re-scan project directories using the same TWO-TIER model from Step 1. Compare discovered modules against existing MODULE_INDEX in root.prizm.
|
|
248
|
-
2. **Missing L1 check**: For any discovered module with no corresponding L1 `.prizm` doc → create L1 immediately and add to MODULE_INDEX.
|
|
249
|
-
3. **Missing L2 check**: For any module/sub-module that has source files with meaningful logic but no L2 `.prizm` doc → create L2 using the L2 GENERATION TEMPLATE. Judgment call: skip trivial wrapper directories or single-config modules.
|
|
250
|
-
4. **Stale L1 check**: For existing L1 docs, verify FILES count and KEY_FILES are still accurate. Update if source directory contents have changed significantly.
|
|
251
|
-
5. **Report**: Include in the Update report: modules added, L1 docs created, L2 docs created, stale docs refreshed.
|
|
182
|
+
→ Read `${SKILL_DIR}/references/update-supplement.md` for the 5-step gap-fill procedure.
|
|
252
183
|
|
|
253
184
|
**Re-init after PrizmKit upgrade (existing config preserved):**
|
|
254
185
|
```
|
|
@@ -270,5 +201,3 @@ Documentation gap-fill:
|
|
|
270
201
|
|
|
271
202
|
Merged into .prizmkit/config.json (2 fields updated, user overrides preserved)
|
|
272
203
|
```
|
|
273
|
-
|
|
274
|
-
IMPORTANT: Use `${SKILL_DIR}` placeholder for all path references. Never hardcode absolute paths.
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "prizmkit-plan"
|
|
3
|
-
description: "Specify and plan features
|
|
3
|
+
description: "Specify and plan features: natural language → spec.md → plan.md with architecture and executable tasks. Supports feature, refactor, and bugfix modes. Use before /prizmkit-implement. Trigger on: 'specify', 'plan', 'new feature', 'I want to add/build...', 'architect', 'design', 'break it down', 'create tasks'. (project)"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# PrizmKit Plan
|
|
7
7
|
|
|
8
|
-
Define WHAT to build, then design HOW to build it — in one continuous flow. Phase 0 produces `spec.md` (requirements), Phase 1-2 produce `plan.md` (architecture + tasks).
|
|
9
|
-
|
|
10
8
|
### When to Use
|
|
11
9
|
- New feature — user says "specify", "plan", "new feature", "I want to add..."
|
|
12
10
|
- Before `/prizmkit-implement` — to create the spec + task breakdown
|
|
@@ -99,15 +97,6 @@ If no input document exists, prompt user to describe the feature (triggers Phase
|
|
|
99
97
|
|
|
100
98
|
**HANDOFF:** `/prizmkit-implement`
|
|
101
99
|
|
|
102
|
-
## Handling Vague Inputs
|
|
103
|
-
|
|
104
|
-
When the user's description is vague:
|
|
105
|
-
1. Extract what IS clear and write it into the spec
|
|
106
|
-
2. Mark ambiguous parts with `[NEEDS CLARIFICATION]` + recommended default
|
|
107
|
-
3. Auto-clarification (Phase 0, step 9) resolves interactively before planning
|
|
108
|
-
|
|
109
|
-
Never block progress — always produce a usable spec, even with open questions.
|
|
110
|
-
|
|
111
100
|
## Example
|
|
112
101
|
|
|
113
102
|
**Input:** "I want users to upload avatars"
|
|
@@ -52,6 +52,8 @@ STEPS:
|
|
|
52
52
|
- Exclude .git/, node_modules/, vendor/, build/, dist/, __pycache__/, target/, bin/, .claude/, .codebuddy/, .prizmkit/, .prizm-docs/, dev-pipeline/. If total module count > 30, ask user for include/exclude patterns.
|
|
53
53
|
3. Create .prizm-docs/ directory structure mirroring the source tree exactly. For each top-level module M that has sub-modules, create the subdirectory .prizm-docs/<M>/.
|
|
54
54
|
4. Generate root.prizm (L0) with PROJECT, LANG, FRAMEWORK, BUILD, TEST, ENTRY, MODULE_INDEX with multi-level entries as needed for efficient navigation (constrained by 4KB limit), RULES extracted from CODEBUDDY.md/CLAUDE.md/README/linter configs, PATTERNS, and CROSS_CUTTING (cross-module concerns spanning 2+ modules). Set PRIZM_VERSION: 4. Max 4KB. No UPDATED timestamp — git tracks modification times.
|
|
55
|
+
- If module count > 15: use MODULE_GROUPS format instead of MODULE_INDEX — group modules by functional domain (3-8 domains, inferred from directory structure and module responsibilities). See PRIZM-SPEC for MODULE_GROUPS format.
|
|
56
|
+
- For each module entry, auto-generate 3-6 keyword tags by scanning the module's key source files for: exported function/class names, imported library names, domain-specific terms in file/directory names. Add tags in square brackets after the module name (e.g., `- auth [login, session, jwt]: ...`). Tags are optional but recommended for projects with 10+ modules.
|
|
55
57
|
5. Generate L1 .prizm files (structural index only) for ALL modules, each at its correct mirrored path:
|
|
56
58
|
- Top-level module M → write .prizm-docs/<M>.prizm (include SUBDIRS section with pointers to sub-module docs)
|
|
57
59
|
- Sub-module S inside M → write .prizm-docs/<M>/<S>.prizm
|
|
@@ -72,9 +74,9 @@ PRECONDITION: .prizm-docs/ exists with root.prizm.
|
|
|
72
74
|
|
|
73
75
|
STEPS:
|
|
74
76
|
1. Get changed files via `git diff --cached --name-status`. If nothing staged, use `git diff --name-status`. If no git changes at all, do full rescan comparing code against existing docs — this includes checking for modules that have source files but no L2 doc.
|
|
75
|
-
2. Map changed files to modules by matching against MODULE_INDEX in root.prizm. Group changes by module.
|
|
77
|
+
2. Map changed files to modules by matching against MODULE_INDEX or MODULE_GROUPS in root.prizm. Group changes by module.
|
|
76
78
|
3. Classify each change: A (added) -> new KEY_FILES entries. D (deleted) -> remove entries, update counts. M (modified) -> check dependency changes. R (renamed) -> update all path references.
|
|
77
|
-
4. Update affected docs: L2 first (KEY_FILES, INTERFACES, DATA_FLOW, DEPENDENCIES, TRAPS, CHANGELOG), then L1 (FILES count, KEY_FILES, DEPENDENCIES — L1 does NOT contain INTERFACES/DATA_FLOW/TRAPS/DECISIONS), then L0 (MODULE_INDEX counts, CROSS_CUTTING) only if structural change. No UPDATED timestamps — git tracks modification times.
|
|
79
|
+
4. Update affected docs: L2 first (KEY_FILES, INTERFACES, DATA_FLOW, DEPENDENCIES, TRAPS, CHANGELOG), then L1 (FILES count, KEY_FILES, DEPENDENCIES — L1 does NOT contain INTERFACES/DATA_FLOW/TRAPS/DECISIONS), then L0 (MODULE_INDEX or MODULE_GROUPS counts, CROSS_CUTTING) only if structural change. No UPDATED timestamps — git tracks modification times.
|
|
78
80
|
5. Skip updates if: only internal implementation changed (no interface/dependency change), only comments/whitespace/formatting, only .prizm files changed. DO NOT skip test file changes or bug fixes — they may reveal TRAPS worth capturing in L2.
|
|
79
81
|
6. If new directory qualifies as a module (per MODULE_DISCOVERY_CRITERIA) and matches no existing module: create L1 immediately, add to MODULE_INDEX. If the current diff includes Added or Modified source files in this module → also create L2 immediately using the L2 GENERATION TEMPLATE. Otherwise defer L2.
|
|
80
82
|
6a. **L2 gap check** (runs during full rescan mode only — when no git changes detected): For each existing module in MODULE_INDEX, check if L2 doc exists. If L2 is missing and the module has source files with meaningful logic (not trivial config/wrapper) → create L2 using the L2 GENERATION TEMPLATE. This ensures Update fills documentation gaps left by previous sessions.
|
|
@@ -110,7 +112,7 @@ STEPS:
|
|
|
110
112
|
2. Re-scan the module directory for files, interfaces, dependencies, subdirectories.
|
|
111
113
|
3. Generate fresh L1 doc with full module analysis.
|
|
112
114
|
4. Generate L2 docs for all sub-modules immediately (unlike init, rebuild generates L2 right away to capture current state).
|
|
113
|
-
5. Update MODULE_INDEX in root.prizm with new file counts and pointers.
|
|
115
|
+
5. Update MODULE_INDEX (or MODULE_GROUPS) in root.prizm with new file counts and pointers. Re-evaluate grouping: if total module count > 15 and currently using MODULE_INDEX, convert to MODULE_GROUPS. Regenerate keyword tags for rebuilt modules.
|
|
114
116
|
6. Append rebuild entry to changelog.prizm: `- YYYY-MM-DD | <module-path> | refactor: rebuilt module documentation from scratch`
|
|
115
117
|
7. Validate regenerated docs against size limits and format rules.
|
|
116
118
|
|
|
@@ -124,12 +126,13 @@ PRECONDITION: .prizm-docs/ exists.
|
|
|
124
126
|
|
|
125
127
|
STEPS:
|
|
126
128
|
1. FORMAT CHECK: Verify all .prizm files use KEY: value format. Flag any prose paragraphs, code blocks (```), markdown headers (##), emoji, ASCII art, or horizontal rules. Flag TRAPS entries missing severity prefix ([CRITICAL], [HIGH], or [LOW]). Note: [REVIEW] preceding severity (e.g., `[REVIEW][HIGH]`) is a valid temporary staleness marker, not a format violation.
|
|
127
|
-
2. SIZE CHECK: Verify size limits: L0 <= 4KB, L1 <=
|
|
129
|
+
2. SIZE CHECK: Verify size limits: L0 <= 4KB, L1 <= 4KB, L2 <= 5KB. Report files exceeding limits with current size.
|
|
128
130
|
3. POINTER CHECK: Verify all arrow (->) references resolve to existing .prizm files. Report broken pointers.
|
|
129
131
|
4. STALENESS CHECK: Compare git modification time of each .prizm file against source directory. Flag docs where source was modified more recently.
|
|
130
|
-
5. COMPLETENESS CHECK: Verify root.prizm has all required fields (PRIZM_VERSION, PROJECT, LANG, MODULE_INDEX). Verify L1 docs have MODULE, FILES, RESPONSIBILITY, DEPENDENCIES (no INTERFACES/TRAPS/DECISIONS). Verify L2 docs have MODULE, FILES, KEY_FILES, DEPENDENCIES, INTERFACES, TRAPS.
|
|
132
|
+
5. COMPLETENESS CHECK: Verify root.prizm has all required fields (PRIZM_VERSION, PROJECT, LANG, MODULE_INDEX or MODULE_GROUPS). Verify L1 docs have MODULE, FILES, RESPONSIBILITY, DEPENDENCIES (no INTERFACES/TRAPS/DECISIONS). Verify L2 docs have MODULE, FILES, KEY_FILES, DEPENDENCIES, INTERFACES, TRAPS.
|
|
131
133
|
6. ANTI-PATTERN CHECK: Flag duplicate information across levels, implementation details in L0/L1, TODO items, session-specific context.
|
|
132
134
|
7. RULES HIERARCHY CHECK: Verify L1/L2 RULES do not contradict root.prizm RULES. L1/L2 may only supplement with module-specific exceptions.
|
|
135
|
+
8. TRAPS STALENESS CHECK: For each L2 doc where TRAPS section has more than 8 entries, verify that TRAPS include staleness metadata (`STALE_IF:` or `REF:` fields). Flag TRAPS without any staleness metadata as `NEEDS_METADATA` — these are not auto-removed, but flagged for the next `/prizmkit-retrospective` to enrich with `STALE_IF:` globs or `REF:` hashes.
|
|
133
136
|
|
|
134
137
|
OUTPUT: Validation report with PASS/FAIL per check, list of issues with file paths and suggested fixes.
|
|
135
138
|
|
|
@@ -157,29 +160,11 @@ OUTPUT: Migration report with list of source docs processed, generated .prizm fi
|
|
|
157
160
|
- **Size limit exceeded**: For L0, consolidate MODULE_INDEX entries. For L1, move implementation details to L2. For L2, archive CHANGELOG entries older than 90 days.
|
|
158
161
|
- **No git history available**: Fall back to filesystem timestamps for freshness checks; warn user that accuracy may be reduced.
|
|
159
162
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
-
|
|
165
|
-
- ON TASK: Read L1 docs for relevant modules referenced in MODULE_INDEX.
|
|
166
|
-
- ON FILE EDIT: Read L2 doc before modifying files. Check TRAPS and DECISIONS sections. If L2 does not exist and you are creating/modifying significant source files in this module → generate L2 using the L2 GENERATION TEMPLATE before proceeding.
|
|
167
|
-
- ON DEEP READ: If you need deep understanding of a module without modifying it, generate L2 if it doesn't exist.
|
|
168
|
-
- NEVER load all .prizm docs at once. Progressive loading saves tokens.
|
|
169
|
-
- BUDGET: Typical task should consume 3000-5000 tokens of Prizm docs total.
|
|
170
|
-
|
|
171
|
-
## Auto-Update Protocol
|
|
172
|
-
|
|
173
|
-
- BEFORE EVERY COMMIT: Run `/prizmkit-retrospective` which is the **sole maintainer** of .prizm-docs/. It handles structural sync and TRAPS/RULES/DECISIONS injection to `.prizm-docs/`.
|
|
174
|
-
- The UserPromptSubmit hook will remind you automatically when commit intent is detected.
|
|
175
|
-
- `/prizmkit-committer` does NOT update .prizm-docs/ — it only commits what is already staged.
|
|
176
|
-
- NEVER rewrite entire .prizm files. Only update affected sections.
|
|
177
|
-
|
|
178
|
-
## RULES Hierarchy
|
|
179
|
-
|
|
180
|
-
- root.prizm RULES are authoritative and apply project-wide.
|
|
181
|
-
- L1/L2 RULES only supplement root.prizm with module-specific exceptions.
|
|
182
|
-
- If L1/L2 RULES contradict root.prizm RULES, root.prizm takes precedence.
|
|
163
|
+
### Key Protocols (reference)
|
|
164
|
+
For detailed protocol specifications, see PRIZM-SPEC:
|
|
165
|
+
- Progressive Loading: Section 6.1
|
|
166
|
+
- Auto-Update: Section 7.1
|
|
167
|
+
- RULES hierarchy: Section 3.1
|
|
183
168
|
|
|
184
169
|
## Examples
|
|
185
170
|
|
|
@@ -8,6 +8,27 @@ LICENSE: MIT
|
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
## Table of Contents
|
|
12
|
+
|
|
13
|
+
1. Overview (L32–49)
|
|
14
|
+
2. Architecture (L50–127)
|
|
15
|
+
3. Document Format Specification (L128–308)
|
|
16
|
+
4. Format Conventions (L309–321)
|
|
17
|
+
5. Path Mapping Rules (L322–351)
|
|
18
|
+
6. Progressive Loading Protocol (L352–411)
|
|
19
|
+
7. Auto-Update Protocol (L412–491)
|
|
20
|
+
8. Anti-Patterns (L492–511)
|
|
21
|
+
9. Initialization Procedure (L512–646)
|
|
22
|
+
10. Skill Definition (L647–768)
|
|
23
|
+
11. Hook Configuration (L769–823)
|
|
24
|
+
12. Language-Specific Initialization Hints (L824–857)
|
|
25
|
+
13. Minimal Viable Prizm (L858–875)
|
|
26
|
+
14. Version History (L876–920)
|
|
27
|
+
15. Conflict Resolution (L921–978)
|
|
28
|
+
16. Version Migration (L979–1087)
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
11
32
|
# SECTION 1: OVERVIEW
|
|
12
33
|
|
|
13
34
|
WHAT: Prizm is a self-maintaining documentation system where AI reads, generates, updates, and loads project context progressively.
|
|
@@ -161,6 +182,36 @@ CONSTRAINTS:
|
|
|
161
182
|
- No prose paragraphs
|
|
162
183
|
- root.prizm RULES are AUTHORITATIVE: they override any conflicting L1/L2 RULES
|
|
163
184
|
|
|
185
|
+
### MODULE_GROUPS (alternative to MODULE_INDEX for projects with 15+ modules)
|
|
186
|
+
|
|
187
|
+
When MODULE_INDEX would exceed 15 entries, replace it with MODULE_GROUPS to stay within the 4KB limit. Group modules by functional domain:
|
|
188
|
+
|
|
189
|
+
MODULE_GROUPS:
|
|
190
|
+
<domain-name>:
|
|
191
|
+
- <module>: <file-count> files. <one-line description>. -> .prizm-docs/<module>.prizm
|
|
192
|
+
- <module>: <file-count> files. <one-line description>. -> .prizm-docs/<module>.prizm
|
|
193
|
+
<domain-name>:
|
|
194
|
+
- <module>: <file-count> files. <one-line description>. -> .prizm-docs/<module>.prizm
|
|
195
|
+
|
|
196
|
+
CONSTRAINTS for MODULE_GROUPS:
|
|
197
|
+
- Exactly ONE of MODULE_INDEX or MODULE_GROUPS must be present in root.prizm (not both)
|
|
198
|
+
- Domain names: lowercase, descriptive (e.g., api, frontend, infrastructure, shared, data)
|
|
199
|
+
- 3-8 domains is the ideal range
|
|
200
|
+
- Each module appears in exactly one domain
|
|
201
|
+
- Every entry must have an arrow pointer (->), same as MODULE_INDEX
|
|
202
|
+
- AI should load the relevant domain's modules when working on a task, not all domains
|
|
203
|
+
|
|
204
|
+
### Optional Keyword Tags (applies to both MODULE_INDEX and MODULE_GROUPS)
|
|
205
|
+
|
|
206
|
+
Entries may include keyword tags for AI intent matching:
|
|
207
|
+
|
|
208
|
+
MODULE_INDEX:
|
|
209
|
+
- auth [login, session, jwt, oauth]: 12 files. Authentication and authorization. -> .prizm-docs/auth.prizm
|
|
210
|
+
- payments [stripe, billing, subscription]: 8 files. Payment processing. -> .prizm-docs/payments.prizm
|
|
211
|
+
- users: 6 files. User management. -> .prizm-docs/users.prizm
|
|
212
|
+
|
|
213
|
+
Tags are optional, enclosed in square brackets after the module name. They contain lowercase keywords that describe the module's domain concepts. AI matches user requirement descriptions against tags to identify relevant modules before loading L1. Tags are auto-generated during Init from module source content (function names, imports, domain terms) and refined during Rebuild.
|
|
214
|
+
|
|
164
215
|
## 3.2 L1: module.prizm (Structural Index)
|
|
165
216
|
|
|
166
217
|
TEMPLATE:
|
|
@@ -561,7 +612,7 @@ STEPS:
|
|
|
561
612
|
|
|
562
613
|
4. GENERATE_ROOT (L0):
|
|
563
614
|
Fill: PROJECT, LANG, FRAMEWORK, BUILD, TEST, ENTRY from step 1
|
|
564
|
-
Build: MODULE_INDEX — list modules at the depth needed for efficient navigation, with arrow pointers
|
|
615
|
+
Build: MODULE_INDEX (or MODULE_GROUPS if 15+ modules — see Section 3.1) — list modules at the depth needed for efficient navigation, with arrow pointers
|
|
565
616
|
Extract: RULES from existing README, .editorconfig, linter configs
|
|
566
617
|
Extract: PATTERNS from common code patterns observed in step 2
|
|
567
618
|
Extract: CROSS_CUTTING — identify patterns/constraints that span 2+ modules
|