prizmkit 1.1.119 → 1.1.121

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 (91) hide show
  1. package/bin/create-prizmkit.js +1 -5
  2. package/bundled/VERSION.json +3 -3
  3. package/bundled/dev-pipeline/README.md +41 -38
  4. package/bundled/dev-pipeline/assets/skill-subagent-integration.md +76 -0
  5. package/bundled/dev-pipeline/prizmkit_runtime/config.py +2 -8
  6. package/bundled/dev-pipeline/prizmkit_runtime/interoperability.py +1 -1
  7. package/bundled/dev-pipeline/prizmkit_runtime/platform_detection.py +3 -3
  8. package/bundled/dev-pipeline/prizmkit_runtime/runner_classification.py +23 -25
  9. package/bundled/dev-pipeline/prizmkit_runtime/runner_models.py +8 -2
  10. package/bundled/dev-pipeline/prizmkit_runtime/runner_prompts.py +10 -1
  11. package/bundled/dev-pipeline/prizmkit_runtime/runners.py +88 -32
  12. package/bundled/dev-pipeline/prizmkit_runtime/sessions.py +28 -6
  13. package/bundled/dev-pipeline/scripts/continuation.py +51 -6
  14. package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +60 -102
  15. package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +1 -19
  16. package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +1 -19
  17. package/bundled/dev-pipeline/scripts/{init-dev-team.py → init-change-artifact.py} +6 -16
  18. package/bundled/dev-pipeline/scripts/parse-stream-progress.py +364 -76
  19. package/bundled/dev-pipeline/scripts/update-bug-status.py +57 -14
  20. package/bundled/dev-pipeline/scripts/update-feature-status.py +54 -5
  21. package/bundled/dev-pipeline/scripts/update-refactor-status.py +57 -14
  22. package/bundled/dev-pipeline/scripts/utils.py +1 -1
  23. package/bundled/dev-pipeline/templates/bootstrap-prompt.md +2 -2
  24. package/bundled/dev-pipeline/templates/bootstrap-tier3.md +9 -11
  25. package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +2 -1
  26. package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +2 -2
  27. package/bundled/dev-pipeline/templates/sections/bugfix-phase-review.md +3 -3
  28. package/bundled/dev-pipeline/templates/sections/context-budget-rules.md +1 -1
  29. package/bundled/dev-pipeline/templates/sections/critical-paths-agent.md +0 -1
  30. package/bundled/dev-pipeline/templates/sections/critical-paths-full.md +0 -2
  31. package/bundled/dev-pipeline/templates/sections/phase-commit-full.md +8 -1
  32. package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +6 -7
  33. package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +6 -7
  34. package/bundled/dev-pipeline/templates/sections/phase-implement-lite.md +4 -2
  35. package/bundled/dev-pipeline/templates/sections/phase-review-agent.md +3 -3
  36. package/bundled/dev-pipeline/templates/sections/phase-review-full.md +5 -3
  37. package/bundled/dev-pipeline/templates/sections/phase-specify-plan-full.md +20 -0
  38. package/bundled/dev-pipeline/templates/sections/refactor-phase-review.md +3 -3
  39. package/bundled/dev-pipeline/tests/test_auto_skip.py +5 -5
  40. package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +214 -144
  41. package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +25 -12
  42. package/bundled/dev-pipeline/tests/test_generate_refactor_prompt.py +11 -14
  43. package/bundled/dev-pipeline/tests/test_python_runner_parity.py +235 -32
  44. package/bundled/dev-pipeline/tests/test_unified_cli.py +219 -16
  45. package/bundled/skills/_metadata.json +4 -4
  46. package/bundled/skills/app-planner/SKILL.md +2 -2
  47. package/bundled/skills/app-planner/references/architecture-decisions.md +1 -3
  48. package/bundled/skills/prizmkit-code-review/SKILL.md +50 -47
  49. package/bundled/skills/prizmkit-code-review/references/review-report-template.md +13 -8
  50. package/bundled/skills/prizmkit-code-review/references/reviewer-agent-prompt.md +47 -33
  51. package/bundled/skills/prizmkit-code-review/references/reviewer-workspace-protocol.md +90 -0
  52. package/bundled/skills/prizmkit-implement/SKILL.md +21 -1
  53. package/bundled/skills/prizmkit-implement/references/implementation-subagent-procedure.md +67 -0
  54. package/bundled/skills/prizmkit-test/SKILL.md +159 -155
  55. package/bundled/skills/prizmkit-test/assets/authoritative-records.schema.json +420 -0
  56. package/bundled/skills/prizmkit-test/assets/behavior-risk-matrix.schema.json +116 -0
  57. package/bundled/skills/prizmkit-test/assets/evidence-manifest.schema.json +112 -0
  58. package/bundled/skills/prizmkit-test/assets/evidence-package-template.json +97 -0
  59. package/bundled/skills/prizmkit-test/references/boundary-coverage-protocol.md +76 -192
  60. package/bundled/skills/prizmkit-test/references/contract-mock-protocol.md +65 -0
  61. package/bundled/skills/prizmkit-test/references/evidence-protocol.md +194 -0
  62. package/bundled/skills/prizmkit-test/references/evidence-request-protocol.md +78 -0
  63. package/bundled/skills/prizmkit-test/references/examples.md +65 -108
  64. package/bundled/skills/prizmkit-test/references/service-boundary-test-catalog.md +10 -7
  65. package/bundled/skills/prizmkit-test/references/test-generation-steps.md +90 -82
  66. package/bundled/skills/prizmkit-test/references/test-report-template.md +77 -98
  67. package/bundled/skills/prizmkit-test/references/trusted-evidence-execution.md +97 -0
  68. package/bundled/skills/prizmkit-test/scripts/build_test_evidence.py +723 -0
  69. package/bundled/skills/prizmkit-test/scripts/validate_test_evidence.py +1426 -0
  70. package/package.json +1 -1
  71. package/src/clean.js +12 -8
  72. package/src/config.js +24 -42
  73. package/src/index.js +1 -10
  74. package/src/manifest.js +3 -9
  75. package/src/metadata.js +0 -26
  76. package/src/prompts.js +0 -13
  77. package/src/scaffold.js +76 -201
  78. package/src/upgrade.js +16 -33
  79. package/bundled/adapters/claude/agent-adapter.js +0 -96
  80. package/bundled/adapters/claude/team-adapter.js +0 -183
  81. package/bundled/adapters/codebuddy/agent-adapter.js +0 -42
  82. package/bundled/adapters/codebuddy/team-adapter.js +0 -46
  83. package/bundled/adapters/codex/agent-adapter.js +0 -38
  84. package/bundled/adapters/codex/team-adapter.js +0 -37
  85. package/bundled/agents/prizm-dev-team-dev.md +0 -123
  86. package/bundled/agents/prizm-dev-team-reviewer.md +0 -113
  87. package/bundled/dev-pipeline/assets/prizm-dev-team-integration.md +0 -65
  88. package/bundled/dev-pipeline/templates/bootstrap-tier1.md +0 -436
  89. package/bundled/dev-pipeline/templates/bootstrap-tier2.md +0 -510
  90. package/bundled/skills/prizmkit-test/scripts/validate_boundary_report.py +0 -347
  91. package/bundled/team/prizm-dev-team.json +0 -27
@@ -246,22 +246,7 @@ def is_recovery_like(args):
246
246
  def build_replacements(args, bug, global_context, script_dir):
247
247
  """Build the full dict of placeholder -> replacement value."""
248
248
  project_root = _args_project_root(args, script_dir)
249
- platform = resolve_prompt_platform(project_root)
250
- home_dir = os.path.expanduser("~")
251
-
252
- if platform == "claude":
253
- agents_dir = os.path.join(project_root, ".claude", "agents")
254
- team_config_path = os.path.join(project_root, ".claude", "team-info.json")
255
- elif platform == "codex":
256
- agents_dir = os.path.join(project_root, ".codex", "agents")
257
- team_config_path = os.path.join(project_root, ".codex", "team-info.json")
258
- else:
259
- agents_dir = os.path.join(project_root, ".codebuddy", "agents")
260
- team_config_path = os.path.join(home_dir, ".codebuddy", "teams", "prizm-dev-team", "config.json")
261
-
262
- agent_ext = ".toml" if platform == "codex" else ".md"
263
- dev_subagent = os.path.join(agents_dir, "prizm-dev-team-dev{}".format(agent_ext))
264
- reviewer_subagent = os.path.join(agents_dir, "prizm-dev-team-reviewer{}".format(agent_ext))
249
+ resolve_prompt_platform(project_root)
265
250
 
266
251
  state_dir = (
267
252
  os.path.abspath(args.state_dir)
@@ -311,9 +296,6 @@ def build_replacements(args, bug, global_context, script_dir):
311
296
  "{{AC_CHECKLIST}}": format_ac_checklist(bug.get("acceptance_criteria", [])),
312
297
  "{{ENVIRONMENT}}": format_environment(bug.get("environment")),
313
298
  "{{GLOBAL_CONTEXT}}": format_global_context(global_context, project_root),
314
- "{{TEAM_CONFIG_PATH}}": team_config_path,
315
- "{{DEV_SUBAGENT_PATH}}": dev_subagent,
316
- "{{REVIEWER_SUBAGENT_PATH}}": reviewer_subagent,
317
299
  "{{SESSION_STATUS_PATH}}": session_status_path,
318
300
  "{{PROJECT_ROOT}}": project_root,
319
301
  "{{ARTIFACT_DIR}}": ".prizmkit/bugfix/{}".format(args.bug_id),
@@ -272,22 +272,7 @@ def determine_refactor_mode(args, refactor):
272
272
 
273
273
  def build_replacements(args, refactor, refactors, global_context, script_dir):
274
274
  project_root = _args_project_root(args, script_dir)
275
- platform = resolve_prompt_platform(project_root)
276
- home_dir = os.path.expanduser("~")
277
-
278
- if platform == "claude":
279
- agents_dir = os.path.join(project_root, ".claude", "agents")
280
- team_config_path = os.path.join(project_root, ".claude", "team-info.json")
281
- elif platform == "codex":
282
- agents_dir = os.path.join(project_root, ".codex", "agents")
283
- team_config_path = os.path.join(project_root, ".codex", "team-info.json")
284
- else:
285
- agents_dir = os.path.join(project_root, ".codebuddy", "agents")
286
- team_config_path = os.path.join(home_dir, ".codebuddy", "teams", "prizm-dev-team", "config.json")
287
-
288
- agent_ext = ".toml" if platform == "codex" else ".md"
289
- dev_subagent = os.path.join(agents_dir, "prizm-dev-team-dev{}".format(agent_ext))
290
- reviewer_subagent = os.path.join(agents_dir, "prizm-dev-team-reviewer{}".format(agent_ext))
275
+ resolve_prompt_platform(project_root)
291
276
 
292
277
  state_dir = (
293
278
  os.path.abspath(args.state_dir)
@@ -337,9 +322,6 @@ def build_replacements(args, refactor, refactors, global_context, script_dir):
337
322
  "{{AC_CHECKLIST}}": format_ac_checklist(refactor.get("acceptance_criteria", [])),
338
323
  "{{DEPENDENCIES}}": format_dependencies(refactor.get("dependencies", []), refactors),
339
324
  "{{GLOBAL_CONTEXT}}": format_global_context(global_context, project_root),
340
- "{{TEAM_CONFIG_PATH}}": team_config_path,
341
- "{{DEV_SUBAGENT_PATH}}": dev_subagent,
342
- "{{REVIEWER_SUBAGENT_PATH}}": reviewer_subagent,
343
325
  "{{SESSION_STATUS_PATH}}": session_status_path,
344
326
  "{{PROJECT_ROOT}}": project_root,
345
327
  "{{ARTIFACT_DIR}}": ".prizmkit/refactor/{}".format(args.refactor_id),
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env python3
2
- """Initialize prizmkit directory structures for a feature.
2
+ """Initialize PrizmKit change-artifact directories for a feature.
3
3
 
4
- Creates the standard directory layout expected by prizm-dev-team agents:
4
+ Creates the standard directory layout expected by generated pipeline prompts:
5
5
  - .prizmkit/specs/<feature-slug>/ ← per-feature subdirectory
6
6
 
7
7
  Usage:
8
- python3 init-dev-team.py --project-root <path> --feature-slug <slug>
8
+ python3 init-change-artifact.py --project-root <path> --feature-slug <slug>
9
9
  """
10
10
 
11
11
  import argparse
@@ -17,7 +17,7 @@ from datetime import datetime, timezone
17
17
 
18
18
  def parse_args():
19
19
  parser = argparse.ArgumentParser(
20
- description="Initialize dev-team and prizmkit directories"
20
+ description="Initialize PrizmKit change-artifact directories"
21
21
  )
22
22
  parser.add_argument(
23
23
  "--project-root",
@@ -38,16 +38,14 @@ def parse_args():
38
38
 
39
39
 
40
40
  def create_directories(project_root, feature_slug=None):
41
- """Create the prizmkit directory structures."""
41
+ """Create the PrizmKit change-artifact directory structures."""
42
42
  dirs_to_create = []
43
43
 
44
- # PrizmKit per-feature directories
45
44
  if feature_slug:
46
45
  dirs_to_create.extend([
47
46
  ".prizmkit/specs/{}".format(feature_slug),
48
47
  ])
49
48
  else:
50
- # Fallback: create flat directories (not recommended)
51
49
  dirs_to_create.extend([
52
50
  ".prizmkit/specs",
53
51
  ])
@@ -67,14 +65,11 @@ def init_prizmkit_config(project_root, feature_id):
67
65
  config_path = os.path.join(project_root, ".prizmkit", "config.json")
68
66
 
69
67
  if os.path.exists(config_path):
70
- # Update existing config
71
68
  with open(config_path, "r", encoding="utf-8") as f:
72
69
  config = json.load(f)
73
70
  config["current_feature"] = feature_id
74
71
  config["updated_at"] = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
75
72
  else:
76
- # Create new config
77
- # Try to get project name from package.json or directory name
78
73
  project_name = os.path.basename(project_root)
79
74
  pkg_json_path = os.path.join(project_root, "package.json")
80
75
  if os.path.exists(pkg_json_path):
@@ -112,22 +107,17 @@ def main():
112
107
  print(json.dumps(result, indent=2))
113
108
  sys.exit(1)
114
109
 
115
- # Create directories
116
110
  created_dirs = create_directories(project_root, args.feature_slug)
117
-
118
- # Initialize config
119
111
  config_path = init_prizmkit_config(project_root, args.feature_id)
120
112
 
121
113
  result = {
122
114
  "success": True,
123
115
  "project_root": project_root,
124
116
  "feature_slug": args.feature_slug,
125
- "directories_created": created_dirs,
117
+ "created_dirs": created_dirs,
126
118
  "config_path": config_path,
127
119
  }
128
-
129
120
  print(json.dumps(result, indent=2))
130
- sys.exit(0)
131
121
 
132
122
 
133
123
  if __name__ == "__main__":