Skip to content

docs(naming): authoritative Buzz naming & boundaries record + blueprint ledger reconcile (Track B) - #11

Merged
jeremylongshore merged 1 commit into
mainfrom
docs/authoritative-naming-and-boundaries
Jul 29, 2026
Merged

jeremylongshore merged 1 commit into
mainfrom
docs/authoritative-naming-and-boundaries

Conversation

@jeremylongshore

@jeremylongshore jeremylongshore commented Jul 29, 2026 •

Copy link
Copy Markdown

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 the 001 blueprint 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 against block/buzz stay conflict-free.

How it works

006 establishes 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) — 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 phrase intent-ops-buzz — always "production host" or "repository."

Changes

Verification & evidence

  • grep shows every intent-ops-buzz use disambiguated (production host vs repository) or fully org-qualified (intent-solutions-io/intent-ops-buzz).
  • Public-safe: no hosts-as-addresses, IPs, keys, or member data.
  • Fork gates (additive-only + must-survive + escape-scan + hash-verify) run via lefthook-local.yml pre-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

  • Track C — build the intent-solutions-io/intent-ops-buzz repository (contributor lab).
  • Track A — remaining go-live gates (off-site backup, updater planted-fault drill, monitoring alerts, smoke suite, CORS/pairing verify, key runbooks) + owner-gated apex cutover.

Refs

Bead buzz-aet. Governed by owner amendment 2026-07-29 (FINAL).

  • Jeremy Longshore
    intentsolutions.io

Summary by CodeRabbit

  • Documentation
    • Added authoritative guidance for Buzz asset naming, boundaries, trust planes, and deployment gates.
    • Updated the adoption blueprint with current progress, naming governance, and contributor-laboratory planning.
    • Clarified repository, production-host, operations-lane, and deferred plugin references.
  • Chores
    • Updated adoption and operational tracking records with go-live, backup-restore, and promotion checklist progress.

…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
@coderabbitai

coderabbitai Bot commented Jul 29, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The 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.

Changes

Buzz governance and adoption

Layer / File(s) Summary
Canonical naming and boundary record
000-docs/006-DR-STND-authoritative-naming-and-boundaries.md, 000-docs/000-INDEX.md
Defines six Buzz assets, naming disambiguation, four-plane flow, contribution and deployment gates, and cross-plane constraints; indexes the record as canonical.
Adoption blueprint alignment
000-docs/001-PP-PLAN-buzz-adoption-master-blueprint.md
Updates completion evidence, adds naming governance, introduces the contributor-laboratory phase, and refines operator-plugin repository wording.
Adoption progress records
.beads/interactions.jsonl, .beads/issues.jsonl
Adds the naming and boundary reconciliation issue, advances its status, and records production restore and updater promotion evidence.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • intent-solutions-io/buzz#2: Established the fork-infrastructure artifacts that this PR updates in the adoption blueprint and Beads tracking records.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: a canonical Buzz naming/boundaries doc and the blueprint ledger reconciliation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/authoritative-naming-and-boundaries

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 675e35f and 8ecc383.

📒 Files selected for processing (5)
  • .beads/interactions.jsonl
  • .beads/issues.jsonl
  • 000-docs/000-INDEX.md
  • 000-docs/001-PP-PLAN-buzz-adoption-master-blueprint.md
  • 000-docs/006-DR-STND-authoritative-naming-and-boundaries.md

Comment thread .beads/issues.jsonl
{"_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}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 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.

Comment thread .beads/issues.jsonl
Comment on lines +3 to +4
{"_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}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 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
done

Repository: 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
PY

Repository: 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.

Comment on lines +243 to +256
### 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."

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 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.

```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 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.

Suggested change
```
🧰 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

@jeremylongshore
jeremylongshore merged commit 46b6f69 into main Jul 29, 2026
1 check passed
@jeremylongshore
jeremylongshore deleted the docs/authoritative-naming-and-boundaries branch July 29, 2026 19:35
jeremylongshore added a commit that referenced this pull request Jul 29, 2026
…irror

buzz-aet closed with evidence (fork PR #11 + intent-os PR block#281 merged). Export
the portable backlog mirror so a fresh clone rebuilds bd to the settled state.
jeremylongshore added a commit that referenced this pull request Jul 29, 2026
… 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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant