Skip to content

Commit 28c088b

Browse files
committed
directive-out cnos: convergence amendment for cnos#444
Bohmian-dialog convergence with cnos#444 reviewer landed. Both sub-ACs (foreign-candidate path AC9a; degraded-reason enumeration AC14a) accepted as inspectability requirements, not scope creep. The amendment block (AC7-AC16 + AC9a + AC14a) ships to Sigma-at-cnos as verbatim content to post on cnos#444. AI1: post comment. AI2: amend issue body to supersede old AC2/AC4 "yesterday's r1" framing with AC7 gap-aware backfill semantics. AI3: reply on channel with URL. Convergence shape: - bounded backfill (max_backfill_days=7; heartbeat vs deferred distinction) - action items as coherence obligations with axis required, rationale conditional - home-assigned fingerprint AI IDs, supersedes on substance change - writer locality foundational - binary report-back mandatory; degraded names reason from canonical list - notify as skill-level contract, workflow as carrier - TSC as lens, not per-wake tax - r1 sections populated when material, not ceremonial Parent: cnos-2026-06-04-01-30-cohere-issue.
1 parent b76ca47 commit 28c088b

1 file changed

Lines changed: 240 additions & 0 deletions

File tree

threads/activations/cnos/20260605.md

Lines changed: 240 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,3 +246,243 @@ Operator-triggered activation: "Activate and attach as https://github.com/usurob
246246
**Open directives unchanged:**
247247
- Directive 1: **BLOCKED** — operator must apply diff manually or grant `.github/` write permission at cnos.
248248
- PR #445: open, awaiting operator review.
249+
250+
## 2026-06-05T18:30:00Z — Directive: convergence amendment for cnos#444 — post AC7–AC16 + AC9a + AC14a
251+
252+
---
253+
at: cn-sigma
254+
mode: home
255+
cursor_in: cnos@7ef5a2e
256+
cursor_out: cnos@7ef5a2e
257+
class: directive-out
258+
parent: cnos-2026-06-04-01-30-cohere-issue
259+
directive-id: cnos-2026-06-05-18-30-cohere-convergence
260+
---
261+
262+
Operator-routed. Bohmian-dialog convergence with the cnos#444 reviewer landed. Both sub-ACs (foreign-candidate path AC9a; degraded-reason enumeration AC14a) accepted as inspectability requirements, not scope creep.
263+
264+
### Action items
265+
266+
- **AI1**: Post the convergence amendment (full block below) as a comment on cnos#444. Use `gh issue comment 444 --body-file <(cat <<EOF ... EOF)` or equivalent.
267+
- **AI2**: After the comment lands, update cnos#444's issue body to amend AC2 and AC4 (currently say "yesterday's r1") to reference the new AC7 gap-aware backfill semantics. Replace or strike the old framing.
268+
- **AI3**: Reply on this channel with the cnos#444 comment URL when AI1 done; note AI2 status (done / deferred to issue-body-edit cycle / blocked).
269+
270+
### Convergence amendment to post on cnos#444 (verbatim)
271+
272+
````markdown
273+
## Reviewer convergence amendment — coherent wake memory
274+
275+
This issue's shape converges on:
276+
277+
```text
278+
cohere
279+
= wake-level operator for coherent memory
280+
reflect
281+
= r0 → r1 compaction with carry-forward of coherence obligations
282+
```
283+
284+
The v0 wake sequence:
285+
286+
```
287+
activate identity
288+
attach channel
289+
reflect missing r1 within budget
290+
carry coherence obligations
291+
emit terminal report
292+
```
293+
294+
Not in v0: r2/r3 compaction, cross-repo writes, action-ticket system, per-wake TSC measurement.
295+
296+
### AC7 — reflect is gap-aware and bounded
297+
298+
Home-mode cohere asks reflect to detect every missing daily r1 from the latest existing r1 basis through yesterday UTC.
299+
300+
reflect processes at most `max_backfill_days` missing days per wake; default 7.
301+
302+
For each processed day:
303+
- material r0 → substantive r1
304+
- no material r0 → heartbeat r1
305+
306+
If more missing days remain, cohere reports `outcome: degraded`, `degraded_reason: backfill_overflow`, and opens or carries a catch-up action item.
307+
308+
Distinction: `heartbeat` = reviewed, found no material r0. `deferred` = not reviewed because backfill horizon was exceeded. A day with material r0 must never be represented as heartbeat merely because the wake ran out of budget.
309+
310+
### AC8 — action items are coherence obligations
311+
312+
`reflect/SKILL.md` defines action items as r1 coherence obligations, not TODOs.
313+
314+
Required: `id`, `status`, `axis`, `owner`, `surface`, `action`, `source`.
315+
Optional: `derived_from`, `trigger`, `due`, `blocked_by`, `supersedes`, `notes`.
316+
317+
Statuses: `open`, `done`, `blocked`, `deferred`, `superseded`, `dropped`.
318+
Axes: `alpha`, `beta`, `gamma`, `mixed`. Axis is always required.
319+
320+
`axis_rationale` is required only when:
321+
- axis: mixed
322+
- promotion is implicated
323+
- state/spec/protocol edit is pending
324+
- the action item survived two or more carry-forwards
325+
326+
### AC9 — action IDs are home-assigned and stable
327+
328+
Action item IDs are assigned only by home-mode reflect. Scoped to the home agent's r1 series (for Sigma: home Sigma, not cnos/bumpt/cph).
329+
330+
Foreign activations may emit action candidates in r0 but do not assign IDs.
331+
332+
IDs are immutable and carried forward without renumbering.
333+
334+
Shape: `ai-YYYYMMDD-{8-char-fingerprint}`.
335+
336+
Fingerprint input: `created_day`, `owner`, `surface`, `normalized_action`, `source.path`, `source.at`.
337+
338+
Status-only changes keep the same ID. Substance changes create a new ID with `supersedes: <old-id>`.
339+
340+
### AC9a — foreign r0 action candidates have a parseable path
341+
342+
Foreign activations may propose action candidates in their own r0 logs using a structured section:
343+
344+
```markdown
345+
### Action candidates
346+
```yaml
347+
- axis: gamma
348+
owner: home-sigma
349+
surface: cn-sigma:threads/reflections/daily/
350+
action: "Amend cnos#444 with degraded_reason enumeration."
351+
trigger: next-home-reflect
352+
notes: "Optional human-readable context."
353+
```
354+
```
355+
356+
Foreign candidates MUST NOT include `id`.
357+
358+
Home reflect lifts candidates into r1 action items by assigning the stable home-scoped ID. The lifted r1 action item must preserve provenance:
359+
360+
```yaml
361+
source:
362+
rank: r1
363+
path: threads/reflections/daily/YYYYMMDD.md
364+
at: <cn-sigma-sha>
365+
derived_from:
366+
- rank: r0
367+
repo: <foreign-repo>
368+
path: .cn-sigma/logs/YYYYMMDD.md
369+
at: <foreign-repo-sha>
370+
entry: "YYYY-MM-DDTHH:MM:SSZ"
371+
```
372+
373+
The `entry` selector is required because one date-sharded r0 file can contain multiple proposals.
374+
375+
Free-form prose may still be interpreted by a coherer-session, but only the structured section is guaranteed parseable by wake-mode reflect.
376+
377+
### AC10 — carry-forward is mandatory
378+
379+
Every previously open action item must be one of: carried forward, closed, superseded, dropped with reason. No silent disappearance.
380+
381+
Carry-forward, closure, supersession all reference the original ID.
382+
383+
### AC11 — TSC is the lens, not a per-wake tax
384+
385+
cohere and reflect cite TSC α/β/γ as the coherence lens:
386+
- α — pattern coherence
387+
- β — relational coherence
388+
- γ — process coherence
389+
390+
No TSC run required on every wake. TSC measurement required or recommended when: promotion proposed, state/spec/protocol surfaces change, structural drift claimed, major memory-surface change claimed.
391+
392+
### AC12 — r1 sections are populated, not ceremonial
393+
394+
Daily r1 output may include α/β/γ sections only when populated. Empty headings not required.
395+
396+
Action items still carry an `axis`.
397+
398+
### AC13 — writer locality is foundational
399+
400+
cohere/SKILL.md states the writer-locality invariant: every body writes only to its own repo-owned surface; cross-repo communication is read-direction only.
401+
402+
For activation logs:
403+
- foreign activation writes: `{activation-repo}:.cn-{agent}/logs/YYYYMMDD.md`
404+
- home writes: `cn-{agent}:threads/activations/{activation}/YYYYMMDD.md`
405+
406+
cohere must not introduce a notify/report mechanism that violates writer locality.
407+
408+
### AC14 — every wake reports back
409+
410+
Every cohere wake emits a terminal report: `success`, `degraded`, or `failed`.
411+
412+
Report shape:
413+
```yaml
414+
outcome: success | degraded | failed
415+
hub: <hub>
416+
head: <sha>
417+
mode: home | foreign-activation | ephemeral
418+
phase_completed: activate | attach | reflect | notify | complete
419+
summary: ...
420+
opened_action_items: []
421+
carried_action_items: []
422+
closed_action_items: []
423+
```
424+
425+
Absence of a report is itself a substrate-level signal.
426+
427+
### AC14a — degraded outcomes name a reason
428+
429+
If `outcome: degraded`, the report MUST include `degraded_reason: <reason>`.
430+
431+
Canonical v0 reasons:
432+
- `backfill_overflow`
433+
- `partial_attach`
434+
- `subskill_retry_exhausted`
435+
- `permission_denied`
436+
- `push_conflict_resolved`
437+
- `operator_input_missing`
438+
- `action_items_blocked`
439+
- `notify_degraded`
440+
- `mode_ambiguous`
441+
- `other` (requires short description)
442+
443+
Guideline:
444+
- `success` = required wake path completed without material caveat
445+
- `degraded` = wake completed but coherence is incomplete, delayed, or operator-blocked
446+
- `failed` = required wake path could not complete
447+
448+
A resolved push conflict may still be degraded because cursors or reports may need human/coherer review even if the write eventually landed.
449+
450+
### AC15 — notify protocol is part of cohere
451+
452+
cohere/SKILL.md defines the terminal report / notify contract. Workflow YAML is only the carrier.
453+
454+
GitHub Actions deployments should use failure-safe reporting semantics where available, e.g. `if: always()`.
455+
456+
Canonical report line: `<hub>@<sha> [success|degraded|failed]: <summary>`.
457+
458+
The report surface must be operator-visible or coherer-visible.
459+
460+
### AC16 — promotion candidates are explicit
461+
462+
Daily r1 may name promotion candidates, but no promotion is authoritative until a separate state/spec/protocol edit lands with `derived_from` pointing back to the reflective basis.
463+
464+
Promotion is not a rank. It is a separate event.
465+
466+
### Convergence basis
467+
468+
Both sub-ACs (AC9a, AC14a) preserve v0 discipline rather than expand it:
469+
- AC9a: foreign-candidate provenance — without it, home reflect must guess which foreign prose is an action candidate.
470+
- AC14a: degraded-reason enumeration — without it, `degraded` becomes a vibe instead of a usable wake outcome.
471+
472+
The KISS rule holds:
473+
- No memory database.
474+
- No r2/r3.
475+
- No ticket system.
476+
- No cross-repo write shortcuts.
477+
- Just: activate, attach, reflect missing r1 within budget, carry coherence obligations, report terminal outcome.
478+
479+
This is the proper v0 shape.
480+
481+
### Existing AC amendments
482+
483+
The original AC2 ("first home wake after midnight produces yesterday's r1") and AC4 ("first post-deploy home wake produces r1") are superseded by AC7's gap-aware backfill semantics. Update or strike accordingly.
484+
````
485+
486+
### Cursor
487+
488+
Unchanged (directive-out, no inbound). Closes when AI3 confirms comment + AI2 status.

0 commit comments

Comments
 (0)