cowork-flow 0.0.14 → 0.0.15

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cowork-flow",
3
- "version": "0.0.14",
3
+ "version": "0.0.15",
4
4
  "description": "CLI for installing and maintaining cowork-flow collaboration templates.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1 +1 @@
1
- 0.0.14
1
+ 0.0.15
@@ -16,6 +16,7 @@ agents:
16
16
  risk_limits:
17
17
  max_parallel_write_conflicts: 0
18
18
  prompt: |
19
+ Use the assignment brief as the source of truth; do not broaden scope.
19
20
  Implement the smallest change that satisfies the approved plan and tests.
20
21
  Write or update focused regression tests first, keep edits scoped, and report exact verification commands.
21
22
 
@@ -31,6 +32,7 @@ agents:
31
32
  risk_limits:
32
33
  max_parallel_write_conflicts: 0
33
34
  prompt: |
35
+ Use the assignment brief as the source of truth; do not broaden scope.
34
36
  Design tests that fail for the broken behavior and pass for the intended behavior.
35
37
  Prefer clear behavior assertions over implementation details, and include the command that proves the result.
36
38
 
@@ -47,6 +49,7 @@ agents:
47
49
  risk_limits:
48
50
  max_parallel_write_conflicts: 0
49
51
  prompt: |
52
+ Use the assignment brief as the source of truth; do not broaden scope.
50
53
  Find the root cause before changing code. Reproduce the failure, compare with nearby working patterns,
51
54
  then make the smallest fix and verify the original symptom.
52
55
 
@@ -62,6 +65,7 @@ agents:
62
65
  risk_limits:
63
66
  max_parallel_write_conflicts: 0
64
67
  prompt: |
68
+ Use the assignment brief as the source of truth; review only the requested scope.
65
69
  Review the proposal, spec, plan, and task PRD for contradictions, missing acceptance criteria,
66
70
  unclear scope, and behavior that is not covered by verification.
67
71
 
@@ -78,6 +82,7 @@ agents:
78
82
  risk_limits:
79
83
  max_parallel_write_conflicts: 0
80
84
  prompt: |
85
+ Use the assignment brief as the source of truth; review only the requested scope.
81
86
  Review the diff for correctness, maintainability, focused scope, and meaningful tests.
82
87
  Check that verification evidence matches the behavior being claimed.
83
88
 
@@ -93,6 +98,7 @@ agents:
93
98
  risk_limits:
94
99
  max_parallel_write_conflicts: 0
95
100
  prompt: |
101
+ Use the assignment brief as the source of truth; do not broaden scope.
96
102
  Write concise project documentation that reflects actual commands, files, and workflow behavior.
97
103
  Avoid aspirational text that is not backed by the implementation.
98
104
 
@@ -109,5 +115,6 @@ agents:
109
115
  risk_limits:
110
116
  max_parallel_write_conflicts: 0
111
117
  prompt: |
118
+ Use the assignment brief as the source of truth; review only the requested scope.
112
119
  Review release-facing changes for versioning, packaging, documentation, and command safety.
113
120
  Confirm that generated artifacts and publish steps are intentional.
@@ -468,28 +468,53 @@ def _render_named_items(title: str, items: object) -> list[str]:
468
468
 
469
469
  def render_assignment_prompt(assignment: dict[str, object]) -> str:
470
470
  agent_type = assignment["agent_type"]
471
+ assignment_id = assignment["id"]
472
+ task_title = assignment.get("title", "")
471
473
  lines = [
472
- f"# {assignment['id']}",
474
+ f"# {assignment_id}",
473
475
  "",
474
- f"Role: {assignment['role']}",
475
- f"Recommended agent: {assignment['recommended_agent']}",
476
- f"Agent type: {agent_type}",
477
- f"Spawn target agent type: {agent_type}",
478
- f"Task: {assignment.get('title', '')}",
479
- "",
480
- f"Spawn one {agent_type} agent for this assignment. Use this file as the complete worker prompt.",
476
+ f"You are implementing assignment {assignment_id}: {task_title}",
481
477
  "",
482
478
  "You are already the dispatched worker for this assignment.",
483
479
  "Do not run the project start-session workflow or try to spawn another worker from this prompt.",
484
480
  "Treat this file as the complete worker brief unless you are blocked and need one specific missing fact.",
485
481
  "",
482
+ "## Assignment context",
483
+ "",
484
+ f"- Role: {assignment['role']}",
485
+ f"- Recommended agent: {assignment['recommended_agent']}",
486
+ f"- Agent type: {agent_type}",
487
+ f"- Spawn target agent type: {agent_type}",
488
+ f"- Task: {task_title}",
489
+ "",
486
490
  ]
487
491
  agent_prompt = assignment.get("agent_prompt")
488
492
  if isinstance(agent_prompt, str) and agent_prompt.strip():
489
493
  lines.extend(["## Agent prompt", "", agent_prompt.strip(), ""])
490
- lines.append("You are not alone in this codebase. Respect the write boundary, do not revert other agents' edits, and report changed files.")
491
- lines.append("")
494
+ lines.extend(
495
+ [
496
+ "## Your job",
497
+ "",
498
+ "- Implement exactly this assignment and nothing outside its write boundary.",
499
+ "- Follow the listed steps and run the listed verification commands when applicable.",
500
+ "- You are not alone in this codebase. Respect other agents' edits and never revert work you did not make.",
501
+ "- If the brief is missing a required fact, report NEEDS_CONTEXT with the specific missing fact instead of guessing.",
502
+ "",
503
+ ]
504
+ )
492
505
  lines.extend(_render_named_items("Files", assignment.get("files")))
493
506
  lines.extend(_render_named_items("Steps", assignment.get("steps")))
494
507
  lines.extend(_render_named_items("Commands", assignment.get("commands")))
508
+ lines.extend(
509
+ [
510
+ "## Report format",
511
+ "",
512
+ "- Status: DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT",
513
+ "- What changed, or what was attempted if blocked",
514
+ "- Files changed",
515
+ "- Exact verification commands and results",
516
+ "- Concerns or follow-up needed",
517
+ "",
518
+ ]
519
+ )
495
520
  return "\n".join(lines)