@dzhechkov/p-replicator 1.0.0

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 (92) hide show
  1. package/README.md +314 -0
  2. package/bin/cli.js +4 -0
  3. package/package.json +62 -0
  4. package/src/cli.js +160 -0
  5. package/src/commands/doctor.js +151 -0
  6. package/src/commands/init.js +155 -0
  7. package/src/commands/list.js +133 -0
  8. package/src/commands/remove.js +111 -0
  9. package/src/commands/update.js +102 -0
  10. package/src/utils.js +280 -0
  11. package/templates/.claude/agents/doc-validator.md +92 -0
  12. package/templates/.claude/agents/harvest-coordinator.md +91 -0
  13. package/templates/.claude/agents/product-discoverer.md +57 -0
  14. package/templates/.claude/agents/replicate-coordinator.md +98 -0
  15. package/templates/.claude/commands/harvest.md +106 -0
  16. package/templates/.claude/commands/replicate.md +389 -0
  17. package/templates/.claude/rules/replicate-pipeline.md +92 -0
  18. package/templates/.claude/skills/brutal-honesty-review/README.md +218 -0
  19. package/templates/.claude/skills/brutal-honesty-review/SKILL.md +225 -0
  20. package/templates/.claude/skills/brutal-honesty-review/resources/assessment-rubrics.md +295 -0
  21. package/templates/.claude/skills/brutal-honesty-review/resources/review-template.md +102 -0
  22. package/templates/.claude/skills/brutal-honesty-review/scripts/assess-code.sh +179 -0
  23. package/templates/.claude/skills/brutal-honesty-review/scripts/assess-tests.sh +223 -0
  24. package/templates/.claude/skills/cc-toolkit-generator-enhanced/SKILL.md +374 -0
  25. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/claude-md-strategy.md +178 -0
  26. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/enhanced-recommendations.md +416 -0
  27. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/extended-mapping.md +370 -0
  28. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/automation-commands.md +733 -0
  29. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/ddd-agents.md +416 -0
  30. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/ddd-hooks-commands.md +524 -0
  31. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/ddd-skills.md +350 -0
  32. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/enhanced-claude-md.md +235 -0
  33. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/feature-lifecycle-ent.md +400 -0
  34. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/feature-lifecycle.md +325 -0
  35. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/feature-suggestions.md +423 -0
  36. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/insights-system.md +349 -0
  37. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/mcp.md +274 -0
  38. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/start-command.md +283 -0
  39. package/templates/.claude/skills/explore/SKILL.md +215 -0
  40. package/templates/.claude/skills/explore/references/questioning-techniques.md +151 -0
  41. package/templates/.claude/skills/explore/references/task-brief-templates.md +355 -0
  42. package/templates/.claude/skills/goap-research-ed25519/SKILL.md +415 -0
  43. package/templates/.claude/skills/goap-research-ed25519/references/ed25519-verification.md +658 -0
  44. package/templates/.claude/skills/goap-research-ed25519/references/research-actions.md +544 -0
  45. package/templates/.claude/skills/goap-research-ed25519/references/source-evaluation.md +560 -0
  46. package/templates/.claude/skills/goap-research-ed25519/scripts/ed25519_verifier.py +662 -0
  47. package/templates/.claude/skills/goap-research-ed25519/scripts/goap_planner.py +720 -0
  48. package/templates/.claude/skills/knowledge-extractor/SKILL.md +412 -0
  49. package/templates/.claude/skills/knowledge-extractor/examples/rate-limiting-extraction.md +259 -0
  50. package/templates/.claude/skills/knowledge-extractor/modules/01-agent-review.md +192 -0
  51. package/templates/.claude/skills/knowledge-extractor/modules/02-classify.md +122 -0
  52. package/templates/.claude/skills/knowledge-extractor/modules/03-decontextualize.md +156 -0
  53. package/templates/.claude/skills/knowledge-extractor/modules/04-integrate.md +178 -0
  54. package/templates/.claude/skills/knowledge-extractor/references/artifact-categories.md +342 -0
  55. package/templates/.claude/skills/knowledge-extractor/references/decontextualization-guide.md +247 -0
  56. package/templates/.claude/skills/knowledge-extractor/references/maturity-model.md +153 -0
  57. package/templates/.claude/skills/knowledge-extractor/templates/artifact-card.md +60 -0
  58. package/templates/.claude/skills/knowledge-extractor/templates/harvest-report.md +70 -0
  59. package/templates/.claude/skills/knowledge-extractor/templates/toolkit-harvest.md +38 -0
  60. package/templates/.claude/skills/pipeline-forge/SKILL.md +523 -0
  61. package/templates/.claude/skills/pipeline-forge/examples/replicate-analysis.md +291 -0
  62. package/templates/.claude/skills/pipeline-forge/references/patterns-catalog.md +408 -0
  63. package/templates/.claude/skills/pipeline-forge/references/quality-gates.md +268 -0
  64. package/templates/.claude/skills/pipeline-forge/references/skill-anatomy.md +292 -0
  65. package/templates/.claude/skills/pipeline-forge/templates/agent-template.md +60 -0
  66. package/templates/.claude/skills/pipeline-forge/templates/command-template.md +80 -0
  67. package/templates/.claude/skills/pipeline-forge/templates/pipeline-template.md +137 -0
  68. package/templates/.claude/skills/pipeline-forge/templates/skill-template.md +132 -0
  69. package/templates/.claude/skills/problem-solver-enhanced/SKILL.md +562 -0
  70. package/templates/.claude/skills/requirements-validator/SKILL.md +121 -0
  71. package/templates/.claude/skills/requirements-validator/assets/templates/bdd-feature-template.feature +69 -0
  72. package/templates/.claude/skills/requirements-validator/references/bdd-patterns.md +184 -0
  73. package/templates/.claude/skills/requirements-validator/references/invest-criteria.md +121 -0
  74. package/templates/.claude/skills/requirements-validator/references/scoring-system.md +134 -0
  75. package/templates/.claude/skills/requirements-validator/references/smart-criteria.md +130 -0
  76. package/templates/.claude/skills/reverse-engineering-unicorn/SKILL.md +194 -0
  77. package/templates/.claude/skills/reverse-engineering-unicorn/examples/noom-cjm-example.md +100 -0
  78. package/templates/.claude/skills/reverse-engineering-unicorn/examples/noom-module1-example.md +88 -0
  79. package/templates/.claude/skills/reverse-engineering-unicorn/modules/01-intelligence.md +328 -0
  80. package/templates/.claude/skills/reverse-engineering-unicorn/modules/02-product-customers.md +221 -0
  81. package/templates/.claude/skills/reverse-engineering-unicorn/modules/025-cjm-prototype.md +206 -0
  82. package/templates/.claude/skills/reverse-engineering-unicorn/modules/03-market-competition.md +402 -0
  83. package/templates/.claude/skills/reverse-engineering-unicorn/modules/04-business-finance.md +287 -0
  84. package/templates/.claude/skills/reverse-engineering-unicorn/modules/05-growth-engine.md +290 -0
  85. package/templates/.claude/skills/reverse-engineering-unicorn/modules/06-playbook-synthesis.md +286 -0
  86. package/templates/.claude/skills/reverse-engineering-unicorn/references/blue-ocean-canvas.md +39 -0
  87. package/templates/.claude/skills/reverse-engineering-unicorn/references/industry-benchmarks.md +67 -0
  88. package/templates/.claude/skills/reverse-engineering-unicorn/references/jtbd-canvas.md +48 -0
  89. package/templates/.claude/skills/sparc-prd-mini/SKILL.md +955 -0
  90. package/templates/.claude/skills/sparc-prd-mini/references/sparc-methodology.md +360 -0
  91. package/templates/.claude/skills/sparc-prd-mini/templates/CLAUDE.md +91 -0
  92. package/templates/.claude/skills/sparc-prd-mini/templates/prd.md +336 -0
@@ -0,0 +1,423 @@
1
+ # Feature Suggestions System Templates
2
+
3
+ Templates for generating a feature navigation and contextual suggestion system.
4
+ Combines CLAUDE.md roadmap, SessionStart hook for dynamic context, `/next` command,
5
+ and `feature-navigator` skill for on-demand roadmap navigation.
6
+
7
+ Architecture: **feature-roadmap.json** as single source of truth → consumed by hook, skill, and command.
8
+
9
+ ---
10
+
11
+ ## 1. Data File Template: `feature-roadmap.json`
12
+
13
+ Generate as `.claude/feature-roadmap.json` — pre-populate from project's PRD/Specification:
14
+
15
+ ```json
16
+ {
17
+ "project": "{{PROJECT_NAME}}",
18
+ "current_sprint": "{{SPRINT_NAME}}",
19
+ "features": [
20
+ {
21
+ "id": "{{feature-id}}",
22
+ "name": "{{Feature Name}}",
23
+ "description": "{{Brief description of the feature}}",
24
+ "status": "done|in_progress|next|planned|blocked",
25
+ "files": ["src/path/to/main-file.ts"],
26
+ "depends_on": ["{{other-feature-id}}"],
27
+ "sprint": "{{SPRINT_NAME}}"
28
+ }
29
+ ]
30
+ }
31
+ ```
32
+
33
+ **Status values:**
34
+ - `done` — completed and verified
35
+ - `in_progress` — currently being worked on
36
+ - `next` — highest priority, ready to start
37
+ - `planned` — in backlog, not yet prioritized
38
+ - `blocked` — waiting on dependency or external factor
39
+
40
+ **Population rules:**
41
+ - Extract features from PRD.md Functional Requirements
42
+ - Extract dependencies from Architecture.md
43
+ - Set initial statuses based on Specification.md priorities (MoSCoW)
44
+ - Must-have features → `next`, Should-have → `planned`
45
+ - Pre-populate `files` from Pseudocode.md or Architecture.md when possible
46
+
47
+ ---
48
+
49
+ ## 2. Hook Template: SessionStart Event
50
+
51
+ Add to `.claude/settings.json` hooks section alongside existing hooks:
52
+
53
+ ```json
54
+ {
55
+ "hooks": {
56
+ "SessionStart": [
57
+ {
58
+ "hooks": [
59
+ {
60
+ "type": "command",
61
+ "command": "python3 .claude/hooks/feature-context.py",
62
+ "timeout": 10
63
+ }
64
+ ]
65
+ }
66
+ ]
67
+ }
68
+ }
69
+ ```
70
+
71
+ Generate as `.claude/hooks/feature-context.py`:
72
+
73
+ ```python
74
+ #!/usr/bin/env python3
75
+ """
76
+ Injects dynamic feature context at the start of each Claude Code session.
77
+ stdout on SessionStart is added as context that Claude sees.
78
+
79
+ Reads feature-roadmap.json + git log + TODO scan to build a context snapshot.
80
+ """
81
+ import json
82
+ import subprocess
83
+ import sys
84
+ from pathlib import Path
85
+
86
+
87
+ def get_recent_changes():
88
+ """Analyze git log to understand recent progress."""
89
+ try:
90
+ result = subprocess.run(
91
+ ["git", "log", "--oneline", "-5", "--no-decorate"],
92
+ capture_output=True, text=True, timeout=5
93
+ )
94
+ return result.stdout.strip()
95
+ except Exception:
96
+ return ""
97
+
98
+
99
+ def get_open_todos():
100
+ """Find TODO/FIXME/HACK in source code."""
101
+ try:
102
+ result = subprocess.run(
103
+ ["grep", "-rn", r"TODO\|FIXME\|HACK", "src/",
104
+ "--include=*.py", "--include=*.ts", "--include=*.js",
105
+ "--include=*.tsx", "--include=*.jsx", "--include=*.go",
106
+ "--include=*.rs", "-l"],
107
+ capture_output=True, text=True, timeout=5
108
+ )
109
+ files = [f for f in result.stdout.strip().split('\n') if f]
110
+ return files[:5]
111
+ except Exception:
112
+ return []
113
+
114
+
115
+ def load_roadmap():
116
+ """Load feature roadmap from project config."""
117
+ roadmap_path = Path(".claude/feature-roadmap.json")
118
+ if roadmap_path.exists():
119
+ with open(roadmap_path) as f:
120
+ return json.load(f)
121
+ return None
122
+
123
+
124
+ def format_sprint_progress(features, sprint_name):
125
+ """Calculate sprint completion percentage."""
126
+ sprint_features = [f for f in features if f.get("sprint") == sprint_name]
127
+ if not sprint_features:
128
+ return ""
129
+ done = sum(1 for f in sprint_features if f.get("status") == "done")
130
+ total = len(sprint_features)
131
+ pct = int(done / total * 100)
132
+ return f"SPRINT PROGRESS: {sprint_name} — {done}/{total} ({pct}%)"
133
+
134
+
135
+ def main():
136
+ roadmap = load_roadmap()
137
+ recent = get_recent_changes()
138
+ todos = get_open_todos()
139
+
140
+ parts = []
141
+ parts.append("=== PROJECT FEATURE CONTEXT ===")
142
+
143
+ if roadmap:
144
+ features = roadmap.get("features", [])
145
+ sprint = roadmap.get("current_sprint", "")
146
+
147
+ # Sprint progress
148
+ progress = format_sprint_progress(features, sprint)
149
+ if progress:
150
+ parts.append(progress)
151
+
152
+ # Currently building
153
+ in_progress = [f for f in features if f.get("status") == "in_progress"]
154
+ for f in in_progress[:2]:
155
+ files = ", ".join(f.get("files", []))
156
+ parts.append(
157
+ f"CURRENTLY BUILDING: {f['name']} — {f.get('description', '')}"
158
+ + (f" [files: {files}]" if files else "")
159
+ )
160
+
161
+ # Suggested next
162
+ next_up = [f for f in features if f.get("status") == "next"]
163
+ for f in next_up[:2]:
164
+ parts.append(
165
+ f"SUGGESTED NEXT: {f['name']} — {f.get('description', '')}"
166
+ )
167
+
168
+ # Blocked items
169
+ blocked = [f for f in features if f.get("status") == "blocked"]
170
+ for f in blocked[:2]:
171
+ deps = ", ".join(f.get("depends_on", []))
172
+ parts.append(f"BLOCKED: {f['name']} — waiting on: {deps}")
173
+
174
+ if recent:
175
+ parts.append(f"RECENT COMMITS:\n{recent}")
176
+
177
+ if todos:
178
+ parts.append(f"FILES WITH TODOs: {', '.join(todos)}")
179
+
180
+ parts.append("=== END CONTEXT ===")
181
+
182
+ # stdout on SessionStart → Claude sees as context
183
+ print('\n'.join(parts))
184
+
185
+
186
+ if __name__ == "__main__":
187
+ main()
188
+ ```
189
+
190
+ **How it works:**
191
+ - On every session start, Claude receives a context snapshot: current progress, what to work on next, blockers, recent git history, TODOs
192
+ - The built-in Prompt Suggestion Generator v2 (Tab-completion) sees this context and generates more relevant suggestions
193
+ - Zero token cost during work — only runs once at session start
194
+
195
+ ---
196
+
197
+ ## 3. Hook Template: Stop Event — Auto-Commit Roadmap
198
+
199
+ Add to `.claude/settings.json` hooks section (alongside existing Stop hooks):
200
+
201
+ ```json
202
+ {
203
+ "hooks": {
204
+ "Stop": [
205
+ {
206
+ "hooks": [
207
+ {
208
+ "type": "command",
209
+ "command": "bash -c 'if [ -f \".claude/feature-roadmap.json\" ] && git diff --name-only -- \".claude/feature-roadmap.json\" 2>/dev/null | grep -q .; then git add .claude/feature-roadmap.json && git commit -m \"docs(roadmap): update feature status\" && echo \"✅ feature-roadmap.json auto-committed\"; fi'"
210
+ }
211
+ ]
212
+ }
213
+ ]
214
+ }
215
+ }
216
+ ```
217
+
218
+ **What it does:** If Claude updated feature-roadmap.json during the session (marking features as done, changing statuses), it auto-commits the change.
219
+
220
+ ---
221
+
222
+ ## 4. Skill Template: `feature-navigator`
223
+
224
+ Generate as `.claude/skills/feature-navigator/SKILL.md`:
225
+
226
+ ````markdown
227
+ ---
228
+ name: feature-navigator
229
+ description: >
230
+ Navigate project features and suggest next steps. Use when the user
231
+ asks "what's next", "what should I work on", "show roadmap", starts a new task,
232
+ or when a feature is completed. Also trigger on "roadmap", "backlog",
233
+ "sprint", "feature status", or "что делать дальше".
234
+ ---
235
+
236
+ # Feature Navigator
237
+
238
+ Read `.claude/feature-roadmap.json` for current feature status, then present:
239
+
240
+ ## Step 1: Gather Context
241
+
242
+ 1. Read `.claude/feature-roadmap.json`
243
+ 2. Run `git log --oneline -10` for recent progress
244
+ 3. Scan for TODO/FIXME: `grep -rn "TODO\|FIXME" src/ --include="*.ts" --include="*.py" -l | head -5`
245
+
246
+ ## Step 2: Present Current State
247
+
248
+ ```
249
+ ═══════════════════════════════════════════════════════════
250
+ 📋 Feature Roadmap: [Project Name]
251
+ Sprint: [Sprint Name] — [N/M] complete ([X]%)
252
+ ═══════════════════════════════════════════════════════════
253
+
254
+ 🔨 In Progress:
255
+ • [Feature Name] — [description]
256
+ Files: [file paths]
257
+
258
+ ⏭️ Next Up:
259
+ • [Feature Name] — [description]
260
+ Depends on: [none | feature-id]
261
+
262
+ 🚫 Blocked:
263
+ • [Feature Name] — waiting on: [dependency]
264
+
265
+ 📝 TODOs Found:
266
+ • [file:line] — [TODO text]
267
+
268
+ 🕐 Recent Work:
269
+ [git log last 5 commits]
270
+ ═══════════════════════════════════════════════════════════
271
+ ```
272
+
273
+ ## Step 3: Suggest Top 3 Actions
274
+
275
+ Format as numbered list, each 3-8 words:
276
+ 1. **[Feature/Task Name]** — Brief actionable description. Files: `path/to/files`
277
+ 2. **[Bug/TODO]** — From code scan. Location: `file:line`
278
+ 3. **[Follow-up]** — Based on recent progress
279
+
280
+ ## Step 4: Ask
281
+
282
+ ```
283
+ Which one shall we tackle? (1/2/3 or describe your own)
284
+ ```
285
+
286
+ ## Updating Roadmap
287
+
288
+ When a feature is completed during the session:
289
+ 1. Update its status to `"done"` in `.claude/feature-roadmap.json`
290
+ 2. If there are features with `"depends_on"` pointing to the completed feature,
291
+ check if all their dependencies are now done → update to `"next"`
292
+ 3. Inform the user: `✅ [Feature] marked as done. [Next Feature] is now unblocked.`
293
+
294
+ ## Priority Rules
295
+
296
+ - `blocked` items → show but don't suggest (explain what's blocking)
297
+ - `in_progress` → suggest continuing (highest priority)
298
+ - `next` → suggest starting (second priority)
299
+ - `planned` → only suggest if no `next` items remain
300
+ - Respect `depends_on` — never suggest a feature whose dependencies aren't `done`
301
+
302
+ ## Important
303
+
304
+ - Keep suggestions actionable and specific (3-8 words each)
305
+ - After presenting, always ask which task to start
306
+ - If all features are `done`, congratulate and suggest: refactoring, test coverage, documentation, or performance optimization
307
+ ````
308
+
309
+ ---
310
+
311
+ ## 5. Command Template: `/next`
312
+
313
+ Generate as `.claude/commands/next.md`:
314
+
315
+ ````markdown
316
+ ---
317
+ description: Show next features to work on from the project roadmap.
318
+ Quick overview of sprint progress and top suggested tasks.
319
+ $ARGUMENTS: optional — "update" to refresh statuses, or feature-id to mark as done
320
+ ---
321
+
322
+ # /next $ARGUMENTS
323
+
324
+ ## Default: Show Next Steps
325
+
326
+ 1. Read `.claude/feature-roadmap.json`
327
+ 2. Show current sprint progress (% complete)
328
+ 3. List top 3 suggested next tasks based on priority and dependencies
329
+ 4. Show any blocking issues
330
+ 5. Ask which task to start
331
+
332
+ Format as a brief, actionable list.
333
+
334
+ ## /next update
335
+
336
+ Review the current codebase state and conversation history:
337
+ 1. Check which features appear to be implemented (scan for key files)
338
+ 2. Suggest status updates for features that may be done
339
+ 3. Apply updates after user confirmation
340
+
341
+ ## /next [feature-id]
342
+
343
+ Mark a specific feature as done:
344
+ 1. Update status to `"done"` in `.claude/feature-roadmap.json`
345
+ 2. Check if this unblocks any dependent features → update to `"next"`
346
+ 3. Show updated sprint progress
347
+ 4. Suggest the next feature to work on
348
+ ````
349
+
350
+ ---
351
+
352
+ ## 6. CLAUDE.md Integration
353
+
354
+ When generating CLAUDE.md, include this section:
355
+
356
+ ```markdown
357
+ ## 📋 Feature Roadmap
358
+ Roadmap: [.claude/feature-roadmap.json](.claude/feature-roadmap.json) — single source of truth for feature status.
359
+ Sprint progress and next steps are injected automatically at session start.
360
+ Quick check: `/next` | Full overview: ask "what should I work on?"
361
+ Mark done: `/next [feature-id]` | Update all: `/next update`
362
+ ```
363
+
364
+ The SessionStart hook injects dynamic context automatically, improving Tab-completion suggestions.
365
+
366
+ ---
367
+
368
+ ## 7. DEVELOPMENT_GUIDE.md Integration
369
+
370
+ Add to the development workflow section:
371
+
372
+ ```markdown
373
+ ## Feature Workflow
374
+
375
+ 1. Run `/next` to see current sprint status and suggested tasks
376
+ 2. Pick a feature to work on → it appears as "in_progress" in roadmap
377
+ 3. Implement using `/feature [name]` or `/feature-ent [name]` lifecycle
378
+ 4. When done → `/next [feature-id]` to mark complete and see what's next
379
+ 5. Feature roadmap auto-commits on session end (Stop hook)
380
+
381
+ The SessionStart hook gives Claude context about your current progress,
382
+ so Tab-completion suggestions are aligned with your roadmap.
383
+ ```
384
+
385
+ ---
386
+
387
+ ## Generation Rules
388
+
389
+ **When populating feature-roadmap.json from project docs:**
390
+
391
+ | Source Document | What to Extract |
392
+ |----------------|----------------|
393
+ | PRD.md | Feature names, descriptions, MoSCoW priorities |
394
+ | Specification.md | User stories → features, acceptance criteria |
395
+ | Architecture.md | File paths, dependencies between components |
396
+ | Pseudocode.md | Key files per feature |
397
+ | Completion.md | Sprint/phase structure |
398
+
399
+ **Status assignment:**
400
+ - Features already implemented (from git/codebase scan) → `done`
401
+ - Feature from current sprint, highest priority → `in_progress` (max 1-2)
402
+ - Next Must-have features → `next`
403
+ - Should-have features → `planned`
404
+ - Features with unmet `depends_on` → `blocked`
405
+
406
+ **Minimum viable roadmap:** At least 5 features with correct statuses and dependencies.
407
+
408
+ ---
409
+
410
+ ## Integration with /feature and /feature-ent
411
+
412
+ The feature-suggestions system complements the feature lifecycle:
413
+
414
+ ```
415
+ /next → "What should I work on?"
416
+
417
+ /feature [name] → Plan + Validate + Implement + Review (simple features)
418
+ /feature-ent [name] → Same but with DDD/ADR/C4 (complex features)
419
+
420
+ /next [feature-id] → Mark done, see what's next
421
+ ```
422
+
423
+ The `/next` command is the **discovery** layer, while `/feature` and `/feature-ent` are the **execution** layer.