@groundnuty/macf 0.2.1 → 0.2.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.
@@ -1,4 +1,4 @@
1
1
  {
2
- "commit": "a027d1dda40a7834abbefd4bea03262f7bea3127",
3
- "built_at": "2026-04-26T22:50:13.545Z"
2
+ "commit": "fe09832e688ccd95331e41717f6f0c85b6a4553a",
3
+ "built_at": "2026-04-27T00:51:30.774Z"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@groundnuty/macf",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "Multi-Agent Coordination Framework CLI — coordinate Claude Code agents via GitHub. Installs as `macf` binary; use `macf init` to set up an agent workspace, `macf update` to refresh rules + version pins.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -35,7 +35,7 @@
35
35
  "test:watch": "vitest"
36
36
  },
37
37
  "dependencies": {
38
- "@groundnuty/macf-core": "0.2.1",
38
+ "@groundnuty/macf-core": "0.2.2",
39
39
  "commander": "^14.0.3",
40
40
  "reflect-metadata": "^0.2.2",
41
41
  "zod": "^4.0.0"
@@ -174,6 +174,25 @@ retry on flaky CI, etc.) and executes.
174
174
  If the PR author is blocked (e.g., offline), the reviewer may merge after
175
175
  an explicit hand-off comment — but that's exception, not default.
176
176
 
177
+ ### When the reviewer is absent or unreachable
178
+
179
+ **Without an explicit LGTM from the reviewer, the implementer does NOT merge — even if waiting indefinitely.**
180
+
181
+ When a PR has been open for an extended period without reviewer signal:
182
+
183
+ 1. **@mention the reviewer again** on the originating issue — they may have missed routing (silent-fallback hazards class; see `silent-fallback-hazards.md` Instance 3 for a concrete failure mode where routing succeeds at the API layer but the recipient never sees the prompt)
184
+ 2. **If still no response after a reasonable interval** (judgment call based on session pacing — minutes for fast-cycle work, an hour or more for deeper review): **escalate to the issue reporter** with `@<reporter>`
185
+ 3. **The reporter decides**:
186
+ - Re-route the review to a different reviewer
187
+ - Accept self-merge as exception (with explicit comment on the PR documenting why the LGTM gate was bypassed)
188
+ - Close the PR if the work is no longer needed
189
+
190
+ **Self-merging without LGTM is a protocol violation**, except via the explicit reporter-sanctioned exception above. The only other sanctioned merge-without-explicit-LGTM path is the "PR author offline → reviewer merges with hand-off comment" exception described in the previous paragraph.
191
+
192
+ **Why this rule exists.** The LGTM gate is structural — it ensures that someone other than the implementer has read the diff in context. Self-merge without LGTM bypasses that quality gate even if the work is correct. The escalation path preserves the gate's intent (someone else makes the merge decision) while providing a clear path forward when the registered reviewer is unreachable.
193
+
194
+ This rule was surfaced 2026-04-26 during the macf-testbed#229 Phase C iter 4 sweep — a tester self-merged when its harness driver (acting as the de-facto reviewer) was killed mid-poll. The work was correct and the scenario AC was met, but the LGTM precondition wasn't. Codified here so the protocol covers reviewer-absence symmetrically with the existing implementer-absence case.
195
+
177
196
  ### Before merging
178
197
 
179
198
  Check `mergeStateStatus` via `gh pr view <N> --json mergeStateStatus`: