prizmkit 1.1.102 → 1.1.105

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 (23) hide show
  1. package/bundled/VERSION.json +3 -3
  2. package/bundled/dev-pipeline/README.md +6 -7
  3. package/bundled/dev-pipeline/assets/prizm-dev-team-integration.md +3 -3
  4. package/bundled/dev-pipeline/prizmkit_runtime/daemon.py +1 -1
  5. package/bundled/dev-pipeline/prizmkit_runtime/runner_models.py +4 -2
  6. package/bundled/dev-pipeline/prizmkit_runtime/runners.py +357 -157
  7. package/bundled/dev-pipeline/prizmkit_runtime/sessions.py +146 -7
  8. package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +37 -28
  9. package/bundled/dev-pipeline/scripts/generate-recovery-prompt.py +4 -3
  10. package/bundled/dev-pipeline/templates/bootstrap-tier2.md +62 -38
  11. package/bundled/dev-pipeline/templates/bootstrap-tier3.md +57 -49
  12. package/bundled/dev-pipeline/templates/sections/critical-paths-agent.md +0 -1
  13. package/bundled/dev-pipeline/templates/sections/critical-paths-full.md +0 -1
  14. package/bundled/dev-pipeline/templates/sections/directory-convention-agent.md +2 -2
  15. package/bundled/dev-pipeline/templates/sections/directory-convention-full.md +2 -2
  16. package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +1 -0
  17. package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +1 -0
  18. package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +46 -0
  19. package/bundled/dev-pipeline/tests/test_python_runner_parity.py +118 -10
  20. package/bundled/dev-pipeline/tests/test_unified_cli.py +76 -0
  21. package/bundled/skills/_metadata.json +1 -1
  22. package/package.json +1 -1
  23. package/bundled/dev-pipeline/templates/agent-prompts/dev-implement.md +0 -71
@@ -1,5 +1,5 @@
1
1
  {
2
- "frameworkVersion": "1.1.102",
3
- "bundledAt": "2026-07-06T15:09:00.037Z",
4
- "bundledFrom": "e918269"
2
+ "frameworkVersion": "1.1.105",
3
+ "bundledAt": "2026-07-06T18:17:35.126Z",
4
+ "bundledFrom": "e92eb9f"
5
5
  }
@@ -678,10 +678,9 @@ cli.py feature run command
678
678
  +- AI CLI session # claude -p "$(cat prompt)" --dangerously-skip-permissions
679
679
  | | # cbc --print -y < prompt
680
680
  | | # codex --ask-for-approval never --sandbox danger-full-access exec --cd "$PROJECT_ROOT" --skip-git-repo-check - < prompt
681
- | +- prizm-dev-team # Multi-agent team implements the feature
682
- | +- Orchestrator # Main: init, context, plan, retrospective, commit
683
- | +- Dev x N # Implementation with TDD
684
- | +- Reviewer # Analyze + code review
681
+ | +- session orchestrator # Main: init, context, plan, direct implementation, review gate, retrospective, commit
682
+ | +- Critic # Optional plan challenge
683
+ | +- Reviewer # Code review via /prizmkit-code-review
685
684
  |
686
685
  +- check-session-status.py # Parse session outcome
687
686
  +- update-feature-status.py # Update feature state (completed/failed/retry)
@@ -696,8 +695,8 @@ The bootstrap prompt adapts based on feature complexity:
696
695
  | Tier | Template | Agents | Use Case |
697
696
  |------|----------|--------|----------|
698
697
  | Tier 1 (lite) | `bootstrap-tier1.md` | Single agent handles everything | Low complexity features |
699
- | Tier 2 (standard) | `bootstrap-tier2.md` | Orchestrator + Dev + Reviewer subagents | Medium complexity |
700
- | Tier 3 (full) | `bootstrap-tier3.md` | Full team with spec/plan/analyze/implement/review phases | High/critical complexity |
698
+ | Tier 2 (standard) | `bootstrap-tier2.md` | Orchestrator implements directly + optional Critic/Reviewer | Medium/high complexity |
699
+ | Tier 3 (full) | `bootstrap-tier3.md` | Orchestrator implements directly + Critic/Reviewer review phases | High/critical complexity |
701
700
 
702
701
  **Self-evolve mode:** Uses Tier 3 template with additional framework guardrails for developing the PrizmKit framework itself.
703
702
 
@@ -919,7 +918,7 @@ cli.py bugfix run command
919
918
  | Claude Code | `.claude/agents/prizm-dev-team-*.md` | `.claude/team-info.json` |
920
919
  | CodeBuddy | `.codebuddy/agents/prizm-dev-team-*.md` | `~/.codebuddy/teams/prizm-dev-team/config.json` |
921
920
 
922
- Agent files are 2 types: `prizm-dev-team-dev.md` (implementation) and `prizm-dev-team-reviewer.md` (review). Paths are auto-resolved by `generate-bootstrap-prompt.py`.
921
+ Agent files include Reviewer/Critic definitions used by feature prompt flows. `prizm-dev-team-dev.md` remains available for targeted fix/specialized handoffs such as the internal `/prizmkit-code-review` fix loop, but top-level feature implementation is performed directly by the main orchestrator with `/prizmkit-implement`. Paths are auto-resolved by `generate-bootstrap-prompt.py`.
923
922
 
924
923
  ---
925
924
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- dev-pipeline drives the prizm-dev-team multi-agent team through an outer shell loop. Each iteration spawns a new AI CLI session with a bootstrap prompt that instructs the agent to create and orchestrate the team for one feature.
5
+ dev-pipeline drives feature sessions through the unified Python outer loop. Each iteration spawns a new AI CLI session with a bootstrap prompt that makes the main session orchestrator responsible for implementation, while Critic and Reviewer agents remain available for challenge/review phases.
6
6
 
7
7
  ## Architecture
8
8
 
@@ -19,7 +19,7 @@ dev-pipeline (outer loop)
19
19
  ├── Phase 1-2: Context snapshot + Specify + Plan (Orchestrator)
20
20
  ├── Phase 3: Analyze (Reviewer agent) [tier2] / Phase 4: Analyze [tier3]
21
21
  ├── Phase 3.5: Plan Challenge (Critic agent(s), 1 or 3 parallel) [tier2+]
22
- ├── Phase 4: Implement (Dev agent) [tier2] / Phase 5: Implement [tier3]
22
+ ├── Phase 4: Implement (main orchestrator runs /prizmkit-implement directly)
23
23
  ├── Phase 5: Review (Reviewer agent)
24
24
  └── Phase 6: Retrospective & Commit (Orchestrator)
25
25
 
@@ -30,7 +30,7 @@ dev-pipeline (outer loop)
30
30
 
31
31
  | Agent | Definition Path | Type |
32
32
  |-------|----------------|------|
33
- | Dev | `.claude/agents/prizm-dev-team-dev.md` (or `.codebuddy/agents/`) | prizm-dev-team-dev |
33
+ | Dev | `.claude/agents/prizm-dev-team-dev.md` (or `.codebuddy/agents/`) | prizm-dev-team-dev; reserved for targeted fix/specialized handoffs, not top-level feature implementation |
34
34
  | Reviewer | `.claude/agents/prizm-dev-team-reviewer.md` (or `.codebuddy/agents/`) | prizm-dev-team-reviewer |
35
35
  | Critic | `.claude/agents/prizm-dev-team-critic.md` (or `.codebuddy/agents/`) | prizm-dev-team-critic |
36
36
 
@@ -320,7 +320,7 @@ def _payload_command(family: RunnerFamily, paths, list_path: Path, options: Daem
320
320
 
321
321
 
322
322
  def _daemon_env(options: DaemonStartOptions) -> dict[str, str]:
323
- env: dict[str, str] = {}
323
+ env: dict[str, str] = {"PRIZMKIT_LIVE_OUTPUT": "0"}
324
324
  for token in shlex.split(options.env_overrides):
325
325
  if "=" in token:
326
326
  key, value = token.split("=", 1)
@@ -37,10 +37,11 @@ class RunnerEnvironment:
37
37
 
38
38
  stop_on_failure: bool = False
39
39
  auto_push: bool = False
40
- use_worktree: bool = True
40
+ use_worktree: bool = False
41
41
  dev_branch: str = ""
42
42
  enable_deploy: bool = False
43
43
  verbose: bool = False
44
+ live_output: bool = True
44
45
  heartbeat_interval_seconds: int = 30
45
46
  heartbeat_stale_threshold_seconds: int = 600
46
47
  stale_kill_threshold_seconds: int = 600
@@ -54,10 +55,11 @@ class RunnerEnvironment:
54
55
  return cls(
55
56
  stop_on_failure=_truthy(values.get("STOP_ON_FAILURE")),
56
57
  auto_push=_truthy(values.get("AUTO_PUSH")),
57
- use_worktree=not _falsey(values.get("USE_WORKTREE")),
58
+ use_worktree=_truthy(values.get("USE_WORKTREE")),
58
59
  dev_branch=values.get("DEV_BRANCH", ""),
59
60
  enable_deploy=_truthy(values.get("ENABLE_DEPLOY")),
60
61
  verbose=_truthy(values.get("VERBOSE")),
62
+ live_output=not _falsey(values.get("PRIZMKIT_LIVE_OUTPUT")),
61
63
  heartbeat_interval_seconds=_int_value(values, "HEARTBEAT_INTERVAL", 30),
62
64
  heartbeat_stale_threshold_seconds=_int_value(
63
65
  values,