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.
- package/bin/create-prizmkit.js +1 -5
- package/bundled/VERSION.json +3 -3
- package/bundled/dev-pipeline/README.md +41 -38
- package/bundled/dev-pipeline/assets/skill-subagent-integration.md +76 -0
- package/bundled/dev-pipeline/prizmkit_runtime/config.py +2 -8
- package/bundled/dev-pipeline/prizmkit_runtime/interoperability.py +1 -1
- package/bundled/dev-pipeline/prizmkit_runtime/platform_detection.py +3 -3
- package/bundled/dev-pipeline/prizmkit_runtime/runner_classification.py +23 -25
- package/bundled/dev-pipeline/prizmkit_runtime/runner_models.py +8 -2
- package/bundled/dev-pipeline/prizmkit_runtime/runner_prompts.py +10 -1
- package/bundled/dev-pipeline/prizmkit_runtime/runners.py +88 -32
- package/bundled/dev-pipeline/prizmkit_runtime/sessions.py +28 -6
- package/bundled/dev-pipeline/scripts/continuation.py +51 -6
- package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +60 -102
- package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +1 -19
- package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +1 -19
- package/bundled/dev-pipeline/scripts/{init-dev-team.py → init-change-artifact.py} +6 -16
- package/bundled/dev-pipeline/scripts/parse-stream-progress.py +364 -76
- package/bundled/dev-pipeline/scripts/update-bug-status.py +57 -14
- package/bundled/dev-pipeline/scripts/update-feature-status.py +54 -5
- package/bundled/dev-pipeline/scripts/update-refactor-status.py +57 -14
- package/bundled/dev-pipeline/scripts/utils.py +1 -1
- package/bundled/dev-pipeline/templates/bootstrap-prompt.md +2 -2
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +9 -11
- package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +2 -1
- package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +2 -2
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-review.md +3 -3
- package/bundled/dev-pipeline/templates/sections/context-budget-rules.md +1 -1
- package/bundled/dev-pipeline/templates/sections/critical-paths-agent.md +0 -1
- package/bundled/dev-pipeline/templates/sections/critical-paths-full.md +0 -2
- package/bundled/dev-pipeline/templates/sections/phase-commit-full.md +8 -1
- package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +6 -7
- package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +6 -7
- package/bundled/dev-pipeline/templates/sections/phase-implement-lite.md +4 -2
- package/bundled/dev-pipeline/templates/sections/phase-review-agent.md +3 -3
- package/bundled/dev-pipeline/templates/sections/phase-review-full.md +5 -3
- package/bundled/dev-pipeline/templates/sections/phase-specify-plan-full.md +20 -0
- package/bundled/dev-pipeline/templates/sections/refactor-phase-review.md +3 -3
- package/bundled/dev-pipeline/tests/test_auto_skip.py +5 -5
- package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +214 -144
- package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +25 -12
- package/bundled/dev-pipeline/tests/test_generate_refactor_prompt.py +11 -14
- package/bundled/dev-pipeline/tests/test_python_runner_parity.py +235 -32
- package/bundled/dev-pipeline/tests/test_unified_cli.py +219 -16
- package/bundled/skills/_metadata.json +4 -4
- package/bundled/skills/app-planner/SKILL.md +2 -2
- package/bundled/skills/app-planner/references/architecture-decisions.md +1 -3
- package/bundled/skills/prizmkit-code-review/SKILL.md +50 -47
- package/bundled/skills/prizmkit-code-review/references/review-report-template.md +13 -8
- package/bundled/skills/prizmkit-code-review/references/reviewer-agent-prompt.md +47 -33
- package/bundled/skills/prizmkit-code-review/references/reviewer-workspace-protocol.md +90 -0
- package/bundled/skills/prizmkit-implement/SKILL.md +21 -1
- package/bundled/skills/prizmkit-implement/references/implementation-subagent-procedure.md +67 -0
- package/bundled/skills/prizmkit-test/SKILL.md +159 -155
- package/bundled/skills/prizmkit-test/assets/authoritative-records.schema.json +420 -0
- package/bundled/skills/prizmkit-test/assets/behavior-risk-matrix.schema.json +116 -0
- package/bundled/skills/prizmkit-test/assets/evidence-manifest.schema.json +112 -0
- package/bundled/skills/prizmkit-test/assets/evidence-package-template.json +97 -0
- package/bundled/skills/prizmkit-test/references/boundary-coverage-protocol.md +76 -192
- package/bundled/skills/prizmkit-test/references/contract-mock-protocol.md +65 -0
- package/bundled/skills/prizmkit-test/references/evidence-protocol.md +194 -0
- package/bundled/skills/prizmkit-test/references/evidence-request-protocol.md +78 -0
- package/bundled/skills/prizmkit-test/references/examples.md +65 -108
- package/bundled/skills/prizmkit-test/references/service-boundary-test-catalog.md +10 -7
- package/bundled/skills/prizmkit-test/references/test-generation-steps.md +90 -82
- package/bundled/skills/prizmkit-test/references/test-report-template.md +77 -98
- package/bundled/skills/prizmkit-test/references/trusted-evidence-execution.md +97 -0
- package/bundled/skills/prizmkit-test/scripts/build_test_evidence.py +723 -0
- package/bundled/skills/prizmkit-test/scripts/validate_test_evidence.py +1426 -0
- package/package.json +1 -1
- package/src/clean.js +12 -8
- package/src/config.js +24 -42
- package/src/index.js +1 -10
- package/src/manifest.js +3 -9
- package/src/metadata.js +0 -26
- package/src/prompts.js +0 -13
- package/src/scaffold.js +76 -201
- package/src/upgrade.js +16 -33
- package/bundled/adapters/claude/agent-adapter.js +0 -96
- package/bundled/adapters/claude/team-adapter.js +0 -183
- package/bundled/adapters/codebuddy/agent-adapter.js +0 -42
- package/bundled/adapters/codebuddy/team-adapter.js +0 -46
- package/bundled/adapters/codex/agent-adapter.js +0 -38
- package/bundled/adapters/codex/team-adapter.js +0 -37
- package/bundled/agents/prizm-dev-team-dev.md +0 -123
- package/bundled/agents/prizm-dev-team-reviewer.md +0 -113
- package/bundled/dev-pipeline/assets/prizm-dev-team-integration.md +0 -65
- package/bundled/dev-pipeline/templates/bootstrap-tier1.md +0 -436
- package/bundled/dev-pipeline/templates/bootstrap-tier2.md +0 -510
- package/bundled/skills/prizmkit-test/scripts/validate_boundary_report.py +0 -347
- 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
|
-
|
|
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
|
-
|
|
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
|
|
2
|
+
"""Initialize PrizmKit change-artifact directories for a feature.
|
|
3
3
|
|
|
4
|
-
Creates the standard directory layout expected by
|
|
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-
|
|
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
|
|
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
|
|
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
|
-
"
|
|
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__":
|