Repository navigation
docs(naming): authoritative Buzz naming & boundaries record + blueprint ledger reconcile (Track B) - #11
Conversation
…econcile the blueprint ledger to prod-up WHAT: Adds 000-docs/006-DR-STND-authoritative-naming-and-boundaries.md as the canonical source of truth for every Buzz asset name and the boundary between them (owner amendment 2026-07-29, FINAL). Reconciles the 001 blueprint completion ledger to reality and pins asset names in Phases 6/7. WHY: Two assets deliberately share the string "intent-ops-buzz" — a VPS host and a GitHub repository — and early planning blurred the code fork, the contribution/verification lab, and the live ops lane into one "Buzz repo". Conflating planes is how prod creds leak into a PR runner or an untrusted fork branch gets deployed. The owner amendment forbids building durable architecture docs (the contributor-lab architecture) until this naming record lands; this is Track B, ordered FIRST. Chose the fork 000-docs as its home (over the not-yet-created lab repo) because Track B requires no new repo and the record must land now to unblock Track C. WHERE (architecture): the fork is the code plane; this record governs the four-plane flow — code fork (submit upstream) → contributor-lab repository (execute tests) → Intent Eval Platform (decide) → intent-os ops/buzz (record) → intent-ops-buzz production host (run). Two separate gates: contribution (SUBMIT/HOLD/…) and deployment (ship/no_ship/…). CHANGES: - 006 (new): six-asset table, host-vs-repo disambiguation rule, four-plane flow diagram, two-gate table, cross-plane boundary rules. - 001 ledger: E2 → staging live + backups/restore proven; E2d → prod host built+deployed+verified pre-cutover (PRs block#279 block#280); E3 → in-flight with the remaining BLOCKING go-live gates enumerated; adds an ELab (contributor lab) row; E9 plugin named intent-ops-buzz-plugin + marked DEFERRED. - 001 phase tree: new Phase 6 (contributor-lab pointer, architecture graduates in Track C, not before); Phase 7 plugin repo name pinned. - 000-INDEX: 006 registered. VERIFIED: grep shows every intent-ops-buzz use disambiguated (production host vs repository) or fully org-qualified; content is public-safe (no hosts-as-addresses, IPs, keys, or member data). The contributor-lab holding draft stays untracked (it graduates into the lab repo in Track C). RISKS: none — additive-only IS-overlay docs; zero upstream-path edits. UNFINISHED: Track C (build the intent-ops-buzz repository) and the remaining Track A go-live gates. Bead: buzz-aet
📝 WalkthroughWalkthroughThe PR adds a canonical Buzz naming and boundary document, integrates it into the adoption blueprint, and updates Beads records with adoption status, production restore evidence, and updater promotion notes. ChangesBuzz governance and adoption
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.beads/issues.jsonl:
- Line 2: Update the `buzz-nry.3` issue description to reflect the evidence in
`notes`: distinguish completed checks from the still-blocking updater drill, key
runbooks, and off-site backup copy; describe the restore as proven only in an
isolated scratch project, not staging or off-site proof; and state that go-live
remains incomplete before any invite.
- Around line 3-4: Redact production addressing and host identity from the Beads
records in `.beads/issues.jsonl`, especially `buzz-nry.2` notes/description and
`buzz-nry.1` close reason: remove public IPs, production/staging domains,
Tailscale addresses, and the age recipient. Replace the detailed operational
data with high-level completion evidence and, if needed, a reference to the
private `intent-os/ops/buzz` runbook.
In `@000-docs/001-PP-PLAN-buzz-adoption-master-blueprint.md`:
- Around line 243-256: Remove or correct the stale “Phase 6” label on the
LMS↔estate integration audit referenced near the existing audit section, so it
does not conflict with the contributor laboratory’s Phase 6 heading. Preserve
the audit content and ensure phase numbering remains unique across the
blueprint.
In `@000-docs/006-DR-STND-authoritative-naming-and-boundaries.md`:
- Line 60: Update the ASCII diagram code fence in the document to declare the
text language explicitly by using a text fence, resolving the markdownlint MD040
violation while preserving the diagram content.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 6ecc188a-f461-4214-a9fe-0ca7eea1d527
📒 Files selected for processing (5)
.beads/interactions.jsonl.beads/issues.jsonl000-docs/000-INDEX.md000-docs/001-PP-PLAN-buzz-adoption-master-blueprint.md000-docs/006-DR-STND-authoritative-naming-and-boundaries.md
| {"_type":"issue","id":"buzz-nry.1","title":"Bootstrap the new production host to estate conventions","description":"Mirror ops/host conventions on the dedicated box: verify OS is Ubuntu 24.04 (reinstall via provider panel if not), tailnet join, ufw (22 tailnet-only + 80/443 public), fail2ban, unattended-upgrades, docker, its OWN Caddy instance (separate failure domain = separate ingress), age host key + sops, borg client, Netdata bound to tailnet. BLOCKED until the owner installs the dev box's SSH key (ssh-copy-id) — first-access step, keeps the root password out of chat.","status":"open","priority":1,"issue_type":"task","owner":"[email protected]","created_at":"2026-07-29T16:31:15Z","created_by":"jeremylongshore","updated_at":"2026-07-29T16:31:15Z","labels":["hosting"],"dependencies":[{"issue_id":"buzz-nry.1","depends_on_id":"buzz-nry","type":"parent-child","created_at":"2026-07-29T10:31:15Z","created_by":"jeremylongshore","metadata":"{}"}],"dependency_count":0,"dependent_count":1,"comment_count":0} | ||
| {"_type":"issue","id":"buzz-nry","title":"Stand up the dedicated Buzz production VPS and cut buzz.intentsolutions.io over to it","description":"Track D of the revised adoption plan (owner topology decision 2026-07-29, fork 000-docs/005): a fast-moving pre-1.0 stack must not share a failure domain with revenue workloads, so Buzz production runs on its OWN VPS (procured 2026-07-29; concrete host detail in the private ops repo, ops/buzz lane). The shared-VPS stack is re-designated permanent STAGING (epic buzz-ocv). Prod deploy = the proven staging artifacts (same digest-pinned compose) with FRESH secrets — new relay identity key, new bootstrap owner key until the owner's desktop key swaps in, new db/redis/minio creds; staging keys never promote. DNS repoints at cutover; staging renames to buzz-staging.intentsolutions.io (closed + internal, drills + image promotion). ALL go-live gates then run against PROD before any invite. GATE: first SSH access requires the owner to install the dev box's key on the new host.","notes":"GitHub: intent-solutions-io/buzz#9 — https://github.com/intent-solutions-io/buzz/issues/9. MIRROR RULE: bd-sync handles fan-out — `bd-sync note buzz-nry` and `bd-sync close buzz-nry` mirror to GH and Plane automatically.\n\nPlane: BUZZ-3 — https://projects.intentsolutions.io/internal/projects/?peekIssue=BUZZ-3","status":"open","priority":1,"issue_type":"epic","owner":"[email protected]","created_at":"2026-07-29T16:31:08Z","created_by":"jeremylongshore","updated_at":"2026-07-29T16:32:12Z","labels":["hosting"],"dependency_count":0,"dependent_count":0,"comment_count":0} | ||
| {"_type":"issue","id":"buzz-aet","title":"Author the authoritative Buzz naming and boundaries record and reconcile the blueprint ledger to prod-up","description":"Track B of the Buzz adoption plan (owner amendment 2026-07-29, do FIRST). Author the canonical naming+boundaries record in the fork 000-docs from the AUTHORITATIVE NAMING \u0026 REPOSITORY MODEL table: 6 assets (upstream block/buzz, code fork intent-solutions-io/buzz, contributor lab intent-solutions-io/intent-ops-buzz repo, production host intent-ops-buzz VPS, live ops lane intent-os ops/buzz, deferred plugin intent-solutions-io/intent-ops-buzz-plugin), the disambiguation rule (never bare 'intent-ops-buzz'), and the four-plane flow with two separate gates (contribution vs deployment). Reconcile the blueprint 001 completion ledger to reality (prod host built/deployed/verified pre-cutover, backups+restore proven), name the plugin repo deferred, and add the contributor-lab plane. Unblocks the parked contributor-lab architecture DRAFT (Track C). The amendment forbids durable architecture docs until this lands. Done-means: naming doc exists + internally consistent; ledger prod-up; no bare-intent-ops-buzz ambiguity; pnpm check green on the intent-os reconcile edit.","status":"in_progress","priority":1,"issue_type":"task","owner":"[email protected]","created_at":"2026-07-29T19:19:37Z","created_by":"jeremylongshore","updated_at":"2026-07-29T19:19:43Z","started_at":"2026-07-29T19:19:43Z","labels":["architecture","ledger","naming"],"dependency_count":0,"dependent_count":0,"comment_count":0} | ||
| {"_type":"issue","id":"buzz-nry.3","title":"Run the full go-live gate suite against production on the dedicated box","description":"All E3 gates, unchanged and BLOCKING before any invite, now executed against PROD: unauth probe matrix off-network; functional membership probe (NIP-42 publish + readback, un-invited key refused); backup restore drill — restore STAGING from PROD's backup artifacts (doubles as the off-site proof); updater planted-fault drill on staging; key runbooks rehearsed; resource caps verified. Depends on the prod-deploy child.","notes":"Go-live gates PARTIAL against prod: (1) functional membership probe GREEN — owner NIP-42 auth -\u003e publish -\u003e readback OK; un-invited key REFUSED (closed relay enforcing, member_count:1 on boot). (2) unauth HTTP probe matrix PASS — media PUT 405, git 404/405, hooks 400, admin 404; public readiness/NIP-11/web-client 200. (3) resource caps + loopback-only publish + isolated bridge net verified. REMAINING/BLOCKING before any invite: backup-restore drill, updater planted-fault drill, key runbooks — all depend on backup+updater wiring (buzz-ocv.4, not built).\nRESTORE DRILL PROVEN (buzz-nry.3 gate item): restored the first prod archive into an ISOLATED dev-box scratch project (prod/staging untouched, prod 4/4 healthy throughout). 40 tables restored; the exact prod-published event 9717ccaa physically present; relay_members=1 + member_count:1 on boot; media restored; relay identity stable (same key-\u003e35cd57ab); relay boots healthy; un-invited refused; restart persistence holds. RTO ~3min, RPO = backup point (18:36:41Z). Caveat: headless nak auth-on-REQ readback didn't complete in-harness (passed on prod). Evidence: ops/buzz/RUNBOOK-backup-restore.md. STILL BLOCKING before invite: updater planted-fault drill, key runbooks, off-site copy.","status":"open","priority":1,"issue_type":"task","owner":"[email protected]","created_at":"2026-07-29T16:31:30Z","created_by":"jeremylongshore","updated_at":"2026-07-29T18:45:39Z","labels":["hosting"],"dependencies":[{"issue_id":"buzz-nry.3","depends_on_id":"buzz-nry.2","type":"blocks","created_at":"2026-07-29T10:31:31Z","created_by":"jeremylongshore","metadata":"{}"},{"issue_id":"buzz-nry.3","depends_on_id":"buzz-nry","type":"parent-child","created_at":"2026-07-29T10:31:29Z","created_by":"jeremylongshore","metadata":"{}"}],"dependency_count":1,"dependent_count":0,"comment_count":0} |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Reconcile the buzz-nry.3 description with its evidence notes.
The description says all E3 gates are executed and that restoring production artifacts into staging doubles as off-site proof. The notes instead say the gate was previously blocking, only an isolated scratch restore is proven, and off-site copy remains blocking. Align the description with the actual evidence so readers cannot treat go-live as complete prematurely.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.beads/issues.jsonl at line 2, Update the `buzz-nry.3` issue description to
reflect the evidence in `notes`: distinguish completed checks from the
still-blocking updater drill, key runbooks, and off-site backup copy; describe
the restore as proven only in an isolated scratch project, not staging or
off-site proof; and state that go-live remains incomplete before any invite.
| {"_type":"issue","id":"buzz-nry.2","title":"Deploy production from the proven staging artifacts with fresh secrets and cut DNS over","description":"Same digest-pinned compose as staging; FRESH prod secrets minted on the new box (new relay identity key, new bootstrap op owner key until the owner's desktop key swaps in, new db/redis/minio creds — staging keys never promote); buzz.intentsolutions.io A record repoints to the new host at cutover; the shared-VPS stack renames to buzz-staging.intentsolutions.io (its Caddy block + env updated; stays closed + internal for drills and image promotion). Depends on the bootstrap child.","notes":"Prod deploy DONE (apex cutover pending): staging-proven digest-pinned compose deployed to intent-ops-buzz with FRESH prod secrets (new relay identity + new bootstrap owner key + new db/redis/minio; staging keys NOT promoted). 4 containers healthy; own Caddy ingress TLS + security headers; serving under buzz-prod.intentsolutions.io. REMAINING (gated on Jeremy's client-generated desktop key): repoint buzz.intentsolutions.io -\u003e 169.58.95.32, rename staging to buzz-staging., swap prod BUZZ_DOMAIN/RELAY_URL/CORS to apex, swap RELAY_OWNER_PUBKEY to Jeremy's desktop pubkey.","status":"open","priority":1,"issue_type":"task","owner":"[email protected]","created_at":"2026-07-29T16:31:22Z","created_by":"jeremylongshore","updated_at":"2026-07-29T18:17:43Z","labels":["hosting"],"dependencies":[{"issue_id":"buzz-nry.2","depends_on_id":"buzz-nry","type":"parent-child","created_at":"2026-07-29T10:31:22Z","created_by":"jeremylongshore","metadata":"{}"},{"issue_id":"buzz-nry.2","depends_on_id":"buzz-nry.1","type":"blocks","created_at":"2026-07-29T10:31:31Z","created_by":"jeremylongshore","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0} | ||
| {"_type":"issue","id":"buzz-nry.1","title":"Bootstrap the new production host to estate conventions","description":"Mirror ops/host conventions on the dedicated box: verify OS is Ubuntu 24.04 (reinstall via provider panel if not), tailnet join, ufw (22 tailnet-only + 80/443 public), fail2ban, unattended-upgrades, docker, its OWN Caddy instance (separate failure domain = separate ingress), age host key + sops, borg client, Netdata bound to tailnet. BLOCKED until the owner installs the dev box's SSH key (ssh-copy-id) — first-access step, keeps the root password out of chat.","status":"closed","priority":1,"issue_type":"task","owner":"[email protected]","created_at":"2026-07-29T16:31:15Z","created_by":"jeremylongshore","updated_at":"2026-07-29T18:06:58Z","started_at":"2026-07-29T17:57:57Z","closed_at":"2026-07-29T18:06:58Z","close_reason":"intent-ops-buzz bootstrapped to estate baseline + verified: Ubuntu 24.04.4 LTS, hostname intent-ops-buzz, joined tailnet 100.74.181.116 (untagged/user-owned, matching estate); ufw default-deny (tailnet-trusted iface + public 80/443 only, public 22 CLOSED/times-out); sshd key-only + PermitRootLogin no + PasswordAuthentication no; non-root sudo admin 'intentsolutions' (NOPASSWD, docker group); fail2ban + unattended-upgrades active; 2G swap swappiness=10; docker 29.6 (log-rotation + live-restore) + compose v5.3; caddy 2.11 (own ingress); age host key at /etc/intentsolutions/age.key (recipient age1ztnq3d4htgf8vk2nj2p64xpeew6ks8lvk8stw70a6g83f3f9kcgstsltxg); borg client; sops 3.9.4; Netdata bound loopback+tailnet only (127.0.0.1:19999 + 100.74.181.116:19999, not public). 7/7 services active.","labels":["hosting"],"dependencies":[{"issue_id":"buzz-nry.1","depends_on_id":"buzz-nry","type":"parent-child","created_at":"2026-07-29T10:31:15Z","created_by":"jeremylongshore","metadata":"{}"}],"dependency_count":0,"dependent_count":1,"comment_count":0} |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== repository files around .beads =="
git ls-files | rg '(^|^|\.beads/|ops|buzz|intentsolutions|README|\.gitignore|package\.json|beads)' || true
echo
echo "== .beads issues context =="
if [ -f .beads/issues.jsonl ]; then
wc -l .beads/issues.jsonl
sed -n '1,20p' .beads/issues.jsonl | cat -n
else
echo ".beads/issues.jsonl not present"
fi
echo
echo "== search for sensitive/private-looking values/usages =="
rg -n --hidden --glob '!*.git/**' '169\.58\.95\.32|buzz\.intentsolutions\.io|buzz-prod\.intentsolutions\.io|buzz-staging|age1ztnq3d4htgf8vk2nj2p64xpeew6ks8lvk8stw70a6g83f3f9kcgstsltxg|tailscale|tailnet|100\.74\.181\.116|ops/buzz|beads/issues|beads' . 2>/dev/null || true
echo
echo "== README/security/docs mentions of public/private distribution =="
for f in $(git ls-files | rg 'README|SECURITY|POLICIES|Policies|privacy|public|distribution|beads|issues'); do
echo "--- $f"
rg -n "beads|issues|public|private|ops/buzz|distribution|security|sensitive|169\.58\.95\.32|100\.74\.181\.116" "$f" 2>/dev/null || true
doneRepository: intent-solutions-io/buzz
Length of output: 50381
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== .beads README =="
if [ -f .beads/README.md ]; then
cat -n .beads/README.md
fi
echo
echo "== .beads config/metadata =="
for f in .beads/config.yaml .beads/metadata.json .beads/.gitignore .gitignore SECURITY.md README.md; do
[ -f "$f" ] && { echo "--- $f"; sed -n '1,220p' "$f" | cat -n; }
done
echo
echo "== focused private/ops references in tracked repo docs/files =="
rg -n --hidden --glob '!*.git/**' --glob '!bin/**' --glob '!desktop/src-tauri/icons/**' \
'169\.58\.95\.32|buzz\.intentsolutions\.io|buzz-prod\.intentsolutions\.io|buzz-staging\.intentsolutions\.io|age1ztnq3d4htgf8vk2nj2p64xpeew6ks8lvk8stw70a6g83f3f9kcgstsltxg|100\.74\.181\.116|intent-ops-buzz|ops/buzz|\.beads/issues|beads/issues' \
README.md SECURITY.md .beads 000-docs .github CODEOWNERS 2>/dev/null || true
echo
echo "== issue entry sensitive values for redaction count =="
python3 - <<'PY'
from pathlib import Path
p=Path('.beads/issues.jsonl')
lines=p.read_text().splitlines()
print(f"lines={len(lines)}")
for i,line in enumerate(lines,1):
print(f"-- line {i} --")
forneedle=['169.58.95.32','buzz.intentsolutions.io','100.74.181.116','age1ztnq3d4htgf8vk2nj2p64xpeew6ks8lvk8stw70a6g83f3f9kcgstsltxg']
for term in needfor? actually not
PYRepository: intent-solutions-io/buzz
Length of output: 50382
Redact production addressing and host identity from Beads issues.
.beads/config.yaml sets sync.remote to the public repo and issues.jsonl is backed by Beads’ tracked issue store. Lines 3-4 include 169.58.95.32, production/staging domains, and the Tailscale tailnet address; buzz-nry.1.notes also includes the age recipient used for host access. Keep this operational detail in intent-os/ops/buzz only, or replace it with high-level evidence and a private runbook reference.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.beads/issues.jsonl around lines 3 - 4, Redact production addressing and
host identity from the Beads records in `.beads/issues.jsonl`, especially
`buzz-nry.2` notes/description and `buzz-nry.1` close reason: remove public IPs,
production/staging domains, Tailscale addresses, and the age recipient. Replace
the detailed operational data with high-level completion evidence and, if
needed, a reference to the private `intent-os/ops/buzz` runbook.
| ### Phase 6 — Contributor laboratory (ELab, Track C) | ||
|
|
||
| Depends on: the naming record `006` (done). A **separate** repository — | ||
| `intent-solutions-io/intent-ops-buzz` **repository** (NOT a fork, NOT the prod | ||
| host of the same name) — that resolves any exact Buzz candidate, mirrors | ||
| upstream CI, adds self-hosting/fault/deployment tests, compares against an exact | ||
| upstream baseline, produces reusable PR evidence, and hands normalized | ||
| `gate-result/v1` evidence to the Intent Eval Platform for the contribution and | ||
| deployment gates (`006` §4–§5). The lab **executes**; IEP **decides**; the ops | ||
| lane **records**; the host **runs**. Its full architecture (contrib.lock schema, | ||
| pinned runner, `buzz-contrib` CLI, test profiles, CI workflows, IEP adapter, | ||
| J-Rig dataset, evidence bundle, baseline run, contamination check) graduates | ||
| from the parked draft to filed artifacts **in Track C** — not before, per the | ||
| owner amendment's "no durable architecture docs until the naming record lands." |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Keep Phase numbering unique.
This adds Phase 6 for the contributor laboratory, but Lines 93-94 still label the LMS↔estate integration audit as “Phase 6.” Remove the stale phase label or assign that audit its correct phase; otherwise dependency tracking and execution prompts can target the wrong workstream.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@000-docs/001-PP-PLAN-buzz-adoption-master-blueprint.md` around lines 243 -
256, Remove or correct the stale “Phase 6” label on the LMS↔estate integration
audit referenced near the existing audit section, so it does not conflict with
the contributor laboratory’s Phase 6 heading. Preserve the audit content and
ensure phase numbering remains unique across the blueprint.
| Platform **decides** what the evidence means; Intent OS **records** what is | ||
| approved and running; the host **runs** it. | ||
|
|
||
| ``` |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Specify the diagram fence language.
markdownlint-cli2 reports MD040 here. Use a text fence for the ASCII diagram.
Proposed fix
-```
+```text📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ``` |
🧰 Tools
🪛 markdownlint-cli2 (0.23.1)
[warning] 60-60: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@000-docs/006-DR-STND-authoritative-naming-and-boundaries.md` at line 60,
Update the ASCII diagram code fence in the document to declare the text language
explicitly by using a text fence, resolving the markdownlint MD040 violation
while preserving the diagram content.
Source: Linters/SAST tools
… fix phase collision + MD040 (#12) * docs(review): address CodeRabbit findings on #11 — redact host identity, fix phase collision + MD040 Addresses the four CodeRabbit findings on the merged PR #11 (they were not read before that merge — process corrected): - SECURITY (Major): redact production/host identity from the PUBLIC fork's .beads/issues.jsonl — prod public IP, tailnet address, prod domain, and the host age recipient in buzz-nry.1/.2 now point to intent-os ops/buzz instead. Forks of public repos are always public; operator detail must live only in the private ops lane (standing rule). These values are not true secrets (age recipient is a public key; the IP is internet-facing; the tailnet addr needs tailnet auth; domains are DNS-public), so no rotation — but they don't belong here. Dolt re-synced (--allow-stale) so the pre-commit export can't re-inject. Residual: prior git history still carries them (accepted — no secrets). - CORRECTNESS (Major): fix the Phase-6 collision I introduced — the LMS↔estate audit note no longer claims "Phase 6"; Phase 6 in this tree is the contributor laboratory, uniquely. - CORRECTNESS (Major): reframe buzz-nry.3's description from "now executed against PROD" (a false completion tone) to SCOPE — the gate suite to run, with per-gate status in notes/ops; the off-site leg and several gates remain OPEN. - MAINTAINABILITY (Minor): MD040 — the four-plane flow diagram fence is now ```text. VERIFIED: grep shows zero host-addressing in the tracked JSONL and in the Dolt export; markdownlint no longer reports MD040 on 006; JSONL re-imports valid (20 issues). Refs #11. * docs(review): complete the host-identity redaction (CodeRabbit #12 follow-up) The first redaction only zeroed IPs; CodeRabbit correctly flagged that the public JSONL still carried the admin account name + NOPASSWD/docker-group detail, the age-key path, staging/prod DNS names, the shared-host ssh alias, and an internal Plane URL. Rewrote the buzz-nry/.1/.2 descriptions+notes to high-level status (bd-sync mirror IDs preserved) and globally scrubbed all addressing/paths/ accounts/internal-URLs across every bead — detail now points to intent-os ops/buzz only. Kept the public asset name 'intent-ops-buzz' (published by the canonical naming record 006) and the public github.com issue URL. VERIFIED: zero residual across all sensitive tokens in both the tracked JSONL and the Dolt export (re-imported --allow-stale so the pre-commit export can't re-inject); JSONL valid. Residual: prior git history still carries the old values (accepted — none are secrets: age recipient is a public key, IP is internet-facing). Refs #12. --------- Co-authored-by: jeremylongshore <[email protected]>
What
Adds
000-docs/006-DR-STND-authoritative-naming-and-boundaries.md— the canonical source of truth for every Buzz asset name and the boundary between them (owner amendment 2026-07-29, FINAL) — and reconciles the001blueprint completion ledger to reality.This is Track B of the Buzz adoption plan, ordered FIRST: the amendment forbids building durable architecture docs (the contributor-lab architecture) until this naming record lands.
Why
Two assets deliberately share the string
intent-ops-buzz— a VPS host and a GitHub repository — and early planning blurred the code fork, the contribution/verification lab, and the live ops lane into one "Buzz repo." Conflating planes is how prod credentials leak into a PR runner or an untrusted fork branch gets deployed. This record fixes the names and the boundaries so no session re-derives them.Decision: the record lives in the fork
000-docs/rather than the not-yet-created lab repo, because Track B requires no new repo and the record must land now to unblock Track C.Layer(s) touched
Documentation only — additive-only IS overlay (
000-docs/). Zero upstream-path edits, so rebases againstblock/buzzstay conflict-free.How it works
006establishes the four-plane flow — code fork (submit upstream) → contributor-lab repository (execute tests) → Intent Eval Platform (decide) → intent-osops/buzz/(record) →intent-ops-buzzproduction host (run) — and two separate gates: contribution (SUBMIT/HOLD/NEEDS_HUMAN_REVIEW/INVALID_EVIDENCE) and deployment (ship/no_ship/advisory/error). The disambiguation rule: never the bare phraseintent-ops-buzz— always "production host" or "repository."Changes
006(new): six-asset table, host-vs-repo disambiguation rule, four-plane flow diagram, two-gate table, cross-plane boundary rules.001ledger: E2 → staging live + backups/restore proven; E2d → prod host built+deployed+verified pre-cutover (PRs Add per-agent MCP toolset configuration to agent setup block/buzz#279 feat(desktop): render GitHub smart link chips + typing indicator popover block/buzz#280 in intent-os); E3 → in-flight with remaining BLOCKING go-live gates enumerated; new ELab (contributor lab) row; E9 plugin namedintent-ops-buzz-plugin+ marked DEFERRED.001phase tree: new Phase 6 (contributor-lab pointer; architecture graduates in Track C, not before); Phase 7 plugin repo name pinned.000-INDEX:006registered.Verification & evidence
grepshows everyintent-ops-buzzuse disambiguated (production host vs repository) or fully org-qualified (intent-solutions-io/intent-ops-buzz).lefthook-local.ymlpre-commit.Risk assessment
None — additive documentation on the IS overlay; no upstream files touched, no runtime/config/secrets change.
Operational impact
None. The contributor-lab holding draft stays untracked (it graduates into the lab repo during Track C).
Follow-up & deferred
intent-solutions-io/intent-ops-buzzrepository (contributor lab).Refs
Bead
buzz-aet. Governed by owner amendment 2026-07-29 (FINAL).intentsolutions.io
Summary by CodeRabbit