@cloverleaf/reference-impl 0.7.1 → 0.7.2

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/dist/cli.mjs CHANGED
@@ -590,6 +590,9 @@ try {
590
590
  stdio: ['pipe', 'pipe', 'pipe'],
591
591
  });
592
592
  const sibling = JSON.parse(raw);
593
+ // Skip siblings that are already merged — they no longer contest scope
594
+ if (sibling['status'] === 'merged')
595
+ continue;
593
596
  const scope = sibling['scope'];
594
597
  const files = Array.isArray(scope?.['files_touched'])
595
598
  ? scope['files_touched'].filter((x) => typeof x === 'string')
package/lib/cli.ts CHANGED
@@ -604,6 +604,8 @@ try {
604
604
  stdio: ['pipe', 'pipe', 'pipe'],
605
605
  });
606
606
  const sibling = JSON.parse(raw) as Record<string, unknown>;
607
+ // Skip siblings that are already merged — they no longer contest scope
608
+ if (sibling['status'] === 'merged') continue;
607
609
  const scope = sibling['scope'] as Record<string, unknown> | undefined;
608
610
  const files = Array.isArray(scope?.['files_touched'])
609
611
  ? (scope!['files_touched'] as unknown[]).filter((x): x is string => typeof x === 'string')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloverleaf/reference-impl",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "description": "Reference implementation of the Cloverleaf methodology as Claude Code skills. Implements the Tight Loop (Implementer + Reviewer).",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/prompts/plan.md CHANGED
@@ -89,3 +89,11 @@ Dependencies:
89
89
  **How to compute the diff inline:**
90
90
  - **Logical** edges: edges you explicitly declared in `task_dag.edges` for sequencing reasons.
91
91
  - **Inferred from file overlap**: edges the system will auto-compute by comparing `scope.files_touched` across tasks. For the summary, compute these yourself: for each pair of tasks (A, B) where A has lower task-number, if `scope.files_touched` sets overlap, list an inferred edge A → B with the overlapping paths. Do NOT add these to `task_dag.edges` — list them only in this summary so the human can sanity-check before approval.
92
+
93
+ **Partial-scope warning:** Count the tasks where `scope.files_touched` is absent or an empty array. If that count is greater than zero, append the following warning line at the bottom of the gate-pending summary (substituting the actual task IDs), then add an advisory note that the walker will silent-skip scope enforcement on those tasks:
94
+
95
+ ```
96
+ ⚠ Tasks without scope.files_touched: <CLV-XX, CLV-YY>
97
+ ```
98
+
99
+ Omit this warning line entirely when every task has a non-empty `scope.files_touched`.