Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/hygiene-history/ticks/2026/04/29/0320Z.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
| 2026-04-29T03:20:00Z (autonomous-loop tick — README hardening with CQRS lineage + content-hash naming + closed 5 stale legacy DIRTY PRs) | opus-4-7 / session continuation | 26f978a2 | Material-tick. Closed PRs #718-#722 as transport-superseded by Option B (forward-fix only per Amara's recommendation; tick row content preserved in PR commit history + conversation log). Multi-AI converged refinement received (Gemini CQRS/Event Sourcing lineage + Ani museum-rule compression + Claude.ai operator-authority criterion + review/decay schema + Alexa enthusiasm + Amara final synthesis). Added to shard README: CQRS lineage section (shards = write model / event store; aggregate table = read model / projection; generator = projector run async); content-hash filename recommendation (`HHMMSSZ-<short-content-hash>.md`) for multi-agent / high-concurrency. B-0096 update DEFERRED (PR #732 not yet merged; would conflict). Operator-authority criterion (4-condition rule) recorded as candidate substrate; NOT promoted to glossary entry this round per absorb-without-integrating. Cron `26f978a2` armed. | (PR #735 — README hardening + shard) | Observation — closing 5 legacy DIRTY PRs is the first concrete legacy-drain action. 6 fewer PRs in the queue. The pattern that produced them is structurally fixed (Option B); the queue residue from the pathology is now drained. Forward-fix only; legacy chain doesn't get rewritten into shards. |
41 changes: 41 additions & 0 deletions docs/hygiene-history/ticks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,28 @@ external-AI reviewer 2026-04-29): every tick-history PR added a
row to the same EOF surface, and parallel in-flight PRs
conflicted with each other, generating recursive maintenance work.

## External lineage — Git-native CQRS / Event Sourcing

The shard transport maps cleanly onto well-established
software architecture patterns (per the multi-AI convergence
2026-04-29):

- **Shard files = write model / event store.** Each shard is
an immutable per-tick event. High-concurrency writes are
collision-free because each event is a unique file.
Comment on lines +21 to +23
- **Aggregate table = read model / projection.** The legacy
`docs/hygiene-history/loop-tick-history.md` is a
materialized view derived from the event stream.
- **Generator = projector.** Updates the read model from the
event store on a separate cadence — NEVER inside a shard PR
(or the EOF-collision returns at the projection layer).

External anchors: Microsoft's CQRS guidance describes
separating read and write models; Event Sourcing literature
treats the event store as the source of truth with read models
generated on demand. The Git-native version replaces the SQL
event store with timestamped Markdown files in this directory.

Per task #276 architectural choice (per-tick shard files —
"Option B"), each tick now writes a unique shard file at:

Expand Down Expand Up @@ -53,6 +75,25 @@ If a tick lands within the same minute as a prior tick (rare —
the autonomous-loop cron is `* * * * *`), append `-01`, `-02`,
... to disambiguate: `0215Z-01.md`, `0215Z-02.md`.

**Recommended naming for multi-agent / high-concurrency**
(per the 2026-04-29 multi-AI hardening review):

```text
docs/hygiene-history/ticks/YYYY/MM/DD/HHMMSSZ-<short-content-hash>.md
```

Why content-hash:

- **Idempotent**: same content + same second = same path; the
Git tree naturally deduplicates.
- **Collision-discriminating**: different content + same second
= different path automatically.
- **No coordination required** between concurrent writers.

Either form (`HHMMZ.md` or `HHMMSSZ-<short-content-hash>.md`)
is valid; the second is preferred when concurrency pressure is
expected.
Comment on lines +87 to +95

## What goes in a shard

The same content that previously appended as a row to the legacy
Expand Down
Loading