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: 0 additions & 1 deletion .skills/context-counts-ok
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
docs/ARCHITECTURE.md :: enumerated :: **two backends** (`local`, `gcs`)
AGENTS.md :: enumerated :: Two that bite, each symptomless until it matters:
AGENTS.md :: enumerated :: Two env files, split by a security boundary
AGENTS.md :: enumerated :: **Two blob backends, one seam.**
AGENTS.md :: enumerated :: **Three stream kinds, three sets of rules.**
# The three contracts and their four documents are the four `docs/contracts/`
# rows in ## Detail Docs, one line down the same file.
Expand Down
22 changes: 22 additions & 0 deletions .skills/context-loss-ok
Original file line number Diff line number Diff line change
Expand Up @@ -703,3 +703,25 @@ AGENTS.md :: tighten :: - [CONVENTIONS.md](docs/CONVENTIONS.md) — the rules co
AGENTS.md :: tighten :: - [INFRASTRUCTURE.md](docs/INFRASTRUCTURE.md) — VM topology, ports, the broker, and the buckets
AGENTS.md :: tighten :: - [TESTING.md](docs/TESTING.md) — fakeredis's divergences, the keys an integration run may create
AGENTS.md :: tighten :: - [content-persist-issuer-contract.md](docs/contracts/content-persist-issuer-contract.md) — keeping a blob in the permanent store by digest: obligations, the refusal registry

# Judged losses from the 2026-10-16 curation (AGENTS.md 6199 -> under 6000).
# Three Bus Conventions bullets whose every fact the destination already states
# at length; a verbatim move would sit a near-duplicate beside the canonical
# treatment, which Phase 5 forbids. Each read against its destination:
# blob backends -> docs/STORAGE.md ## Two backends, one seam: REPLICATOR_BLOB_BACKEND
# (#7), the file:// / gs:// table row, "local is the default and stays
# the default", the bold to_thread rule; STORAGE.md is indexed.
# replicate gcs -> docs/CONVENTIONS.md (create-if-absent, "never resolved as a path",
# line 45) and docs/STREAMS.md's content.replicate bullet (#29).
# Watcher issues -> docs/STREAMS.md's "Watcher alone issues content.fetch" bullet: #90,
# seed_fetch.py seeds scratch streams, --production, Watcher's identity.
AGENTS.md :: duplicate :: - **Two blob backends, one seam.** `REPLICATOR_BLOB_BACKEND` selects them: `local`
AGENTS.md :: duplicate :: announces `file://` and `gcs` announces `gs://`, and `local` stays the
AGENTS.md :: duplicate :: compiled-in default deliberately (#7). Every `BlobStore` call from a coroutine
AGENTS.md :: duplicate :: goes through `asyncio.to_thread`.
AGENTS.md :: duplicate :: [docs/STORAGE.md](docs/STORAGE.md) is the authority for either store.
AGENTS.md :: duplicate :: - **The replicate loop writes for `gcs` (#29)** — create-if-absent, and `blob_uri` is
AGENTS.md :: duplicate :: never resolved as a path. Read [docs/CONVENTIONS.md](docs/CONVENTIONS.md) first.
AGENTS.md :: duplicate :: - **Watcher alone issues `content.fetch` (#90).** `scripts/seed_fetch.py` seeds
AGENTS.md :: duplicate :: scratch streams; the live one takes `--production` and Watcher's identity, never
AGENTS.md :: duplicate :: `replicator`'s.
2 changes: 2 additions & 0 deletions .skills/context-metrics.jsonl
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,5 @@
{"actions": ["baseline:scheduled"], "budget": 6000, "bytes": 14180, "claims_dropped": null, "claims_warranted": null, "counts": null, "counts_acked": null, "delta_days": 0, "delta_tokens": 0, "docs_orphaned": 0, "docs_total": 22, "docs_unindexed": 0, "file": "AGENTS.md", "lines": 249, "links_dead": 0, "links_dead_anchors": 0, "no_loss": null, "no_loss_warrants": null, "note": null, "over_budget": false, "repo": "replicator", "repo_commit": "7550060", "seams": 0, "seams_acked": 36, "skill_commit": "c4ae0d7", "skill_version": "1.31", "tokens": 5993, "tokens_exact": true, "tokens_live": 164942, "top_section": "Bus Conventions", "top_section_share": 28, "ts": "2026-09-29"}
{"actions": ["baseline:scheduled"], "budget": 6000, "bytes": 14198, "claims_dropped": null, "claims_warranted": null, "counts": null, "counts_acked": null, "delta_days": 7, "delta_tokens": 16, "docs_orphaned": 0, "docs_total": 22, "docs_unindexed": 0, "file": "AGENTS.md", "lines": 249, "links_dead": 0, "links_dead_anchors": 0, "no_loss": null, "no_loss_warrants": null, "note": null, "over_budget": true, "repo": "replicator", "repo_commit": "7604d0f", "seams": 40, "seams_acked": 36, "skill_commit": "7cf855e", "skill_version": "1.31", "tokens": 6009, "tokens_exact": true, "tokens_live": 165904, "top_section": "Bus Conventions", "top_section_share": 28, "ts": "2026-10-06"}
{"actions": ["baseline:scheduled"], "budget": 6000, "bytes": 14190, "claims_dropped": null, "claims_warranted": null, "counts": null, "counts_acked": null, "delta_days": 7, "delta_tokens": -4, "docs_orphaned": 0, "docs_total": 22, "docs_unindexed": 0, "file": "AGENTS.md", "lines": 249, "links_dead": 0, "links_dead_anchors": 0, "no_loss": null, "no_loss_warrants": null, "note": null, "over_budget": true, "repo": "replicator", "repo_commit": "bd49943", "seams": 2, "seams_acked": 35, "skill_commit": "5ff7a82", "skill_version": "1.31", "tokens": 6005, "tokens_exact": true, "tokens_live": 166891, "top_section": "Bus Conventions", "top_section_share": 28, "ts": "2026-10-13"}
{"actions": ["baseline:pre-curation"], "budget": 6000, "bytes": 14641, "claims_dropped": null, "claims_warranted": null, "counts": null, "counts_acked": null, "delta_days": 3, "delta_tokens": 194, "docs_orphaned": 0, "docs_total": 22, "docs_unindexed": 0, "file": "AGENTS.md", "lines": 259, "links_dead": 0, "links_dead_anchors": 0, "no_loss": null, "no_loss_warrants": null, "note": null, "over_budget": true, "repo": "replicator", "repo_commit": "931ddbf", "seams": null, "seams_acked": null, "skill_commit": "3cea77a", "skill_version": "1.31", "tokens": 6199, "tokens_exact": true, "tokens_live": 167028, "top_section": "Bus Conventions", "top_section_share": 27, "ts": "2026-10-16"}
{"actions": ["prune:Bus Conventions/blob-backends (dup docs/STORAGE.md; to_thread rule kept inline)", "prune:Bus Conventions/replicate-gcs (dup docs/CONVENTIONS.md+STREAMS.md)", "prune:Bus Conventions/watcher-issues-fetch (dup docs/STREAMS.md)", "ack:seams x4", "prune:stale counts-ok entry"], "budget": 6000, "bytes": 14099, "claims_dropped": 0, "claims_warranted": 0, "counts": 0, "counts_acked": 4, "delta_days": 0, "delta_tokens": -244, "docs_orphaned": 0, "docs_total": 22, "docs_unindexed": 0, "file": "AGENTS.md", "lines": 251, "links_dead": 0, "links_dead_anchors": 0, "no_loss": "ok", "no_loss_warrants": 9, "note": null, "over_budget": false, "repo": "replicator", "repo_commit": "c95aa3f", "seams": 0, "seams_acked": 39, "skill_commit": "3cea77a", "skill_version": "1.31", "tokens": 5955, "tokens_exact": true, "tokens_live": 166784, "top_section": "Bus Conventions", "top_section_share": 24, "ts": "2026-10-16"}
9 changes: 9 additions & 0 deletions .skills/context-seams-ok
Original file line number Diff line number Diff line change
Expand Up @@ -469,3 +469,12 @@ tests/test_socraticode_config.py :: f"docs/COMMANDS.md caps at {sorted(map(sorte
.socraticodecontextartifacts.json :: "description": "How the systemd unit runs and the guards it starts behind;
# The POLITENESS description this run extended: ENVIRONMENT.md does index REPLICATOR_MIN_HOST_INTERVAL_SECONDS by name.
.socraticodecontextartifacts.json :: "description": "Per-host politeness, the consumer-side mechanism;
# 2026-10-16 curation: back-references to sections that stayed inline.
# Common Commands still carries the env-load line COMMANDS.md points at.
docs/COMMANDS.md :: AGENTS.md), then source this once per shell from the repo root; the examples below assume it:
# Design Preferences stays in AGENTS.md; both SKILLS.md lines point at it by name.
docs/SKILLS.md :: None — `brainstorming` runs upstream's, under AGENTS.md's **Design Preferences**.
docs/SKILLS.md :: | `brainstorming` | Intent and design before building; this repo's overrides are AGENTS.md's Design Preferences |
# Provenance heading from #131, not this run's; nothing links its anchor (grep "in-flight-count"),
# so the slug is not load-bearing. Rename it with the next COMMANDS.md edit rather than widen this one.
docs/COMMANDS.md :: The patching gate's in-flight count (#131)
4 changes: 2 additions & 2 deletions .skills/context-token-counts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# The offline estimators prefer a file's own last exact measurement to the
# repo-wide figure in .skills/context-token-ratio, falling back to it for a
# file never counted exactly or since drifted far from the size recorded here.
14190 6005 AGENTS.md
14099 5955 AGENTS.md
5692 2194 docs/ARCHITECTURE.md
26724 10372 docs/COMMANDS.md
26391 9745 docs/CONVENTIONS.md
Expand All @@ -12,7 +12,7 @@
8941 3330 docs/FAILURE-NOTIFICATION.md
21824 8554 docs/INFRASTRUCTURE.md
18208 6458 docs/POLITENESS.md
26831 10116 docs/SKILLS.md
26669 10059 docs/SKILLS.md
11592 4447 docs/SOCRATICODE.md
22502 8233 docs/STORAGE.md
25396 9285 docs/STREAMS.md
Expand Down
12 changes: 2 additions & 10 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,14 +128,11 @@ Replicator is a **consumer** first — follow what co-core and the archiver prod
`command_id:occurred_at`). `info_source_id` and replicate's
`info_item_rep_spec_id` are **echoed, never read** — a `test_boundaries.py`
carve-out is one field wide, and adding one edits the charter (#28, #29).
- **Two blob backends, one seam.** `REPLICATOR_BLOB_BACKEND` selects them: `local`
announces `file://` and `gcs` announces `gs://`, and `local` stays the
compiled-in default deliberately (#7). Every `BlobStore` call from a coroutine
goes through `asyncio.to_thread`.
[docs/STORAGE.md](docs/STORAGE.md) is the authority for either store.
- **Store, then publish — never the reverse.** A fact pointing at absent bytes is
unrepairable by the consumer; stored bytes with no fact repair themselves on the
reclaim.
- **Every `BlobStore` call from a coroutine goes through `asyncio.to_thread`** —
[docs/STORAGE.md](docs/STORAGE.md) is the authority for either store.
- **Read `count=1`.** `AsyncBusConsumer.read(count>1)` raises on a malformed frame
*before* returning the well-formed ones. Recovery claims at `count=1` too — for
the #98 turn bound, not poison (#109).
Expand Down Expand Up @@ -169,12 +166,7 @@ Replicator is a **consumer** first — follow what co-core and the archiver prod
default); `content.blobs` carries both fetch outcomes and `content.artifacts`
both outcomes of replicate and of persist; `content.fetch-policy` is read
**groupless** — no group, no ack, no DLQ.
- **The replicate loop writes for `gcs` (#29)** — create-if-absent, and `blob_uri` is
never resolved as a path. Read [docs/CONVENTIONS.md](docs/CONVENTIONS.md) first.
- **A fetch may not reach loopback, RFC 1918, or the tailnet (#89, #95).** Per redirect hop.
- **Watcher alone issues `content.fetch` (#90).** `scripts/seed_fetch.py` seeds
scratch streams; the live one takes `--production` and Watcher's identity, never
`replicator`'s.
- **The `docs/contracts/` documents are normative**, indexed below.
`tests/test_boundaries.py` enforces the charter in CI; change a charter and its
tests together.
Expand Down
Loading