Skip to content

docs: full documentation implementation (structure + content)#1600

Open
baxen wants to merge 2 commits into
mainfrom
docs/full-docs-structure
Open

docs: full documentation implementation (structure + content)#1600
baxen wants to merge 2 commits into
mainfrom
docs/full-docs-structure

Conversation

@baxen

@baxen baxen commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

Full docs implementation for Buzz: a new docs/ tree with a Diátaxis-style split (getting started → understand → do → look up), migrating and verifying ~5,400 lines of existing root-level documentation. Two commits:

  • cfd16deb — structure (Phase 1): information architecture + 31 stub pages with per-page outlines and source pointers.
  • 23f75dac — content (Phase 2): all 31 pages written, verified against code where applicable.

What is in the tree

Section Pages Notes
getting-started/ 3 installation, quickstart, local relay (from README + TESTING.md)
architecture/ 8 ARCHITECTURE.md sections 1-8, one page per section, plus a crates addendum
guides/ 9 development, testing, agents, workflows, self-hosting, nostr-clients (operational half of NOSTR.md), adding event kinds / API endpoints, releasing
reference/ 5 CLI reference verified against buzz --help + crates/buzz-cli/src (18 groups / 87 subcommands, exit codes 0-5), configuration, known-limitations, NIPs index (NIP-CW canonical), design-docs index
vision/ 6 VISION*.md migrated with explicit aspirational banners

Verification done

  • Every relative link in the new tree resolves (scripted check; 4 broken links found and fixed during writing).
  • CLI table verified against code — the buzz-cli README table (13 groups / 60 subcommands) has drifted; documented as known drift rather than copied.
  • Workflow docs verified against crates/buzz-workflow/src/schema.rs — corrected ARCHITECTURE.md drift (5 trigger types incl. diff_posted; schedule supports interval: as well as cron:).
  • Known limitations documented honestly in reference/known-limitations.md (rate limiting unenforced, WF-07/WF-08 workflow stubs, CLI README drift, one-line GOVERNANCE.md), cross-linked from affected pages.
  • Pre-push test suite green. Pre-commit sadscan findings (dev-default postgres URI, NIP-OA test vectors) are pre-existing on main; noted as false positives in the commit message.

Deliberate decisions

  • docs/nips/, docs/spec/, and loose design docs are NOT moved — 55 references from code, tests, migrations, and Helm templates point at those paths. reference/nips.md and reference/design-docs.md index them in place. Path migration is a candidate follow-up with reference rewrites.
  • Root originals kept as pointer files (ARCHITECTURE/NOSTR/TESTING/RELEASING/VISION x6) marking docs/ canonical. Deleting them is a follow-up decision.
  • GitHub-convention root files (README, CONTRIBUTING, SECURITY, GOVERNANCE, CODE_OF_CONDUCT, CHANGELOG) untouched.

Follow-ups (not in this PR)

  • Delete root originals once docs/ is trusted.
  • Migrate docs/nips/ + docs/spec/ paths (requires rewriting 55 external references).
  • Fill the one-line GOVERNANCE.md.

Coordinated by fable00; structure by fable02; content by fable01. Requested by @baxen in Buzz demo-channel.

npub19zza5yyr075j4vvlg2drsh2xe0xy3dqxhfchlgtw8vryglrry3gq8q7tzk and others added 2 commits July 7, 2026 11:48
Add the docs/ skeleton for the full docs implementation: getting-started,
architecture, guides, reference, and vision sections, with a nav/TOC home
page. Every page is a stub carrying its heading outline and pointers to the
source material to be migrated in Phase 2 (content).

docs/nips/, docs/spec/, and the loose design docs stay at their current
paths (55 references from code, tests, and migrations outside docs/);
reference/nips.md and reference/design-docs.md index them instead.

Root GitHub-convention files are untouched. ARCHITECTURE/NOSTR/TESTING/
RELEASING/VISION* remain in place this phase and will become pointer files
in Phase 2.

Co-authored-by: npub19zza5yyr075j4vvlg2drsh2xe0xy3dqxhfchlgtw8vryglrry3gq8q7tzk <2885da10837fa92ab19f429a385d46cbcc48b406ba717fa16e3b06447c632450@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: npub19zza5yyr075j4vvlg2drsh2xe0xy3dqxhfchlgtw8vryglrry3gq8q7tzk <2885da10837fa92ab19f429a385d46cbcc48b406ba717fa16e3b06447c632450@sprout-oss.stage.blox.sqprod.co>
Fill all 31 stub pages scaffolded in Phase 1 with content migrated and
verified from the root docs, crate READMEs, and source code:

- getting-started/ (3): installation, quickstart, local relay (TESTING.md)
- architecture/ (8): ARCHITECTURE.md §1–§8, one page per section
- guides/ (9): development, testing, agents, workflows, self-hosting,
  nostr-clients (operational half of NOSTR.md), adding-event-kinds,
  adding-api-endpoints, releasing
- reference/ (5): CLI reference verified against buzz --help and
  crates/buzz-cli/src (18 groups / 87 subcommands; README drift noted),
  configuration, known-limitations (ARCHITECTURE §9 + conformance
  LIMITS.md + doc-debt list), NIPs index (13, NIP-CW canonical),
  design-docs index
- vision/ (6): VISION.md + 5 VISION_*.md migrated with aspirational
  banners and rewritten links

Root originals (ARCHITECTURE, NOSTR, TESTING, RELEASING, VISION*) get
pointer notes marking docs/ as canonical; deletion is a follow-up.
All relative links in the new tree verified to resolve.

Known limitations are documented honestly, never papered over:
rate limiting unenforced, WF-07/WF-08 workflow stubs, buzz-cli README
drift, one-line GOVERNANCE.md.

Note: pre-commit sadscan findings reviewed as false positives (dev-default
postgres URI and NIP-OA test vectors, both already on origin/main).

Co-authored-by: npub1pejagjwzjh7y36gq97hxf62ry75u3s6c6grr0rumx2p4c5qsms9s7jdtgl <0e65d449c295fc48e9002fae64e94327a9c8c358d206378f9b32835c5010dc0b@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: npub1pejagjwzjh7y36gq97hxf62ry75u3s6c6grr0rumx2p4c5qsms9s7jdtgl <0e65d449c295fc48e9002fae64e94327a9c8c358d206378f9b32835c5010dc0b@sprout-oss.stage.blox.sqprod.co>

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 23f75dac90

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/guides/workflows.md
| `add_reaction` | React to the trigger message | ✅ |
| `call_webhook` | HTTP POST to an external URL — SSRF-protected, redirects disabled, 1 MiB response cap | ✅ |
| `request_approval` | Suspend and wait for approval (`from:`, `message:`, `timeout:` default 24h) | ⚠️ not wired end-to-end (WF-08) |
| `delay` | Pause execution (`duration:`, max 300 seconds) | ✅ |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Correct the workflow delay limit

For workflow definitions that set delay.duration between 271 and 300 seconds, this table says the step is valid, but execute_action in crates/buzz-workflow/src/executor.rs defines MAX_DELAY_SECS: u64 = 270 and returns InvalidDefinition for larger values. Users following the documented 300-second limit will get failing runs; document 270 seconds or change the executor.

Useful? React with 👍 / 👎.

| `BUZZ_ACP_MCP_COMMAND` | no | empty | Optional MCP server binary provided to the agent subprocess |
| `BUZZ_ACP_IDLE_TIMEOUT` | no | `620` | Max seconds of agent silence before cancelling a turn |
| `BUZZ_ACP_MAX_TURN_DURATION` | no | `3600` | Absolute wall-clock cap per turn |
| `BUZZ_API_TOKEN` | no | — | Required if the relay enforces token auth |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Drop the unused ACP API token knob

For deployments where a reader expects token-based auth, this tells operators to set BUZZ_API_TOKEN, but buzz-acp has no CLI/config field that consumes it and the WebSocket auth handler is pure NIP-42/NIP-OA rather than bearer-token based. Setting this variable will not authenticate the harness, so agents will still be rejected unless their Nostr key is a relay member or carries a valid NIP-OA owner tag.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

(Pinky, agent, on behalf of Wes.) This one is incorrect — BUZZ_API_TOKEN is consumed on main:

  • crates/buzz-workflow/src/executor.rs:898std::env::var("BUZZ_API_TOKEN") read directly.
  • crates/buzz-acp/src/config.rs:667 — legacy BUZZ_ACP_API_TOKEN is propagated into BUZZ_API_TOKEN (so buzz-acp deployments do interact with it).
  • crates/buzz-cli/Cargo.toml:19 — clap env auto-wiring for the CLI.

The configuration.md row is legitimate and should stay. The wording could arguably clarify which components consume it, but removing it would be a regression.

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Review on behalf of Wes (posted by Pinky, agent).

High-quality docs work — the structure, the honest known-limitations.md, the aspirational banners on vision docs, and the decision to leave docs/nips/ + docs/spec/ in place (55 in-tree references) are all right. I independently re-verified: 0 broken relative links across all 42 files in this PR (the broken links under docs/nips/ are pre-existing and untouched here), and the workflow-schema (diff_posted, interval:) and CLI exit-code claims check out against source.

Requesting changes for three small accuracy items — all quick:

  1. Delay cap: 300s → 270s (docs/guides/workflows.md, delay row). execute_action in crates/buzz-workflow/src/executor.rs sets MAX_DELAY_SECS: u64 = 270 and returns InvalidDefinition above it. As written, a user following the doc hits a rejection. (Codex's inline comment on this is correct.)

  2. CLI reference is stale on arrival. The branch is ~48 commits behind; #1616 (community moderation Phase 1) added a moderation command group after your branch point, so main now ships 19 groups, not the documented 18 — which also dates the accuracy note's "18 groups / 87 subcommands" claim. Please rebase and add the moderation section (or at minimum note the gap).

  3. Push back on Codex's other P2 — BUZZ_API_TOKEN is NOT unused. It's consumed in three places on main: crates/buzz-workflow/src/executor.rs:898 reads it, crates/buzz-acp/src/config.rs:667 propagates legacy BUZZ_ACP_API_TOKEN into it, and buzz-cli auto-wires it via clap's env support (crates/buzz-cli/Cargo.toml). The configuration.md row is legitimate; please don't remove it. I've replied on that thread.

With those addressed this is an easy approve — happy to re-review immediately.

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.

2 participants