Skip to content

docs(direction): add §distribution-channels clause - #2285

Merged
Wirasm merged 1 commit into
devfrom
docs/direction-distribution-channels
Jul 31, 2026
Merged

Wirasm merged 1 commit into
devfrom
docs/direction-distribution-channels

Conversation

@Wirasm

@Wirasm Wirasm commented Jul 27, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Problem: direction.md had no stated position on package-manager distribution channels, so feat: add Nix flake and Devbox support #2131 (Nix flake + Devbox) had to be decided as a per-PR judgment call — the second time, after feat: add Nix flake and Devbox support #1767 was closed on similar grounds with an invitation that hadn't been thought through to the maintenance end.
  • Why it matters: without a clause, the next AUR / Scoop / winget / apt proposal gets written before it gets an answer, and the contributor absorbs that cost. A stated position is answerable in one link.
  • What changed: one bullet under What Archon is NOT, citable as direction.md §distribution-channels.
  • What did not change (scope boundary): no code, no workflow, no existing clause reworded. Nothing about the currently maintained channels changes — installer, Homebrew, Docker, and GitHub release binaries all stay exactly as they are.

UX Journey

Before

  Contributor            Maintainer                direction.md
  ───────────            ──────────                ────────────
  proposes Nix ────────▶ no clause covers it
                         reasons by analogy
                         from §deployment-recipes
                         writes the rationale ────▶ (not recorded)
  gets a decline ◀────── per-PR judgment call

  (next contributor proposes Scoop — repeat from the top)

After

  Contributor            Maintainer                direction.md
  ───────────            ──────────                ────────────
  reads direction.md ──────────────────────────▶ [§distribution-channels]
  proposes a docs
  recipe or an
  upstream package
  instead        ──────▶ merges the docs recipe

Architecture Diagram

Before

direction.md
  ├── What Archon IS
  └── What Archon is NOT
        ├── §single-tenant-per-install
        ├── §deployment-recipes      (proxies/infra → docs, community-maintained)
        └── §workflow-language

After

direction.md
  ├── What Archon IS
  └── What Archon is NOT
        ├── §single-tenant-per-install
        ├── §deployment-recipes
        ├── [+] §distribution-channels   (install channels → docs recipe or upstream registry)
        └── §workflow-language

Connection inventory

From To Status Notes
direction.md PR triage modified Adds a citable clause for install-channel proposals
direction.md maintainer-standup workflow unchanged The workflow reads the file wholesale; no format change

Label Snapshot

  • Risk: risk: low
  • Size: size: XS
  • Scope: docs
  • Module: docs:direction

Change Metadata

  • Change type: docs
  • Primary scope: multi

Linked Issue

Validation Evidence (required)

git diff --check   # clean
  • Evidence provided: single-bullet addition to a documentation file; the diff is one added line plus its surrounding context.
  • If any command is intentionally skipped, explain why: bun run validate not run — this touches no TypeScript, no workflow YAML, no generated artifact, and no schema. direction.md is prose consumed by the maintainer-standup workflow and by humans; there is no build step over it.

Security Impact (required)

  • New permissions/capabilities? No
  • New external network calls? No
  • Secrets/tokens handling changed? No
  • File system access scope changed? No

Compatibility / Migration

  • Backward compatible? Yes
  • Config/env changes? No
  • Database migration needed? No

Human Verification (required)

  • Verified scenarios: read the clause back against §deployment-recipes for consistency of reasoning and citation format; confirmed the Cite as suffix matches the convention used by the other clauses so PR comments can reference it the same way.
  • Edge cases checked: the clause explicitly names the currently maintained channels, so it cannot be read as retroactively rejecting Homebrew or Docker — that was the ambiguity most likely to bite.
  • What was not verified: whether the maintainer-standup workflow's prompt has any length sensitivity to direction.md growing. One bullet is unlikely to matter, but the file is read wholesale into a prompt.

Side Effects / Blast Radius (required)

  • Affected subsystems/workflows: PR triage only. maintainer-standup.yaml and repo-triage.yaml consult this file; both read it as prose.
  • Potential unintended effects: a clause is a commitment. If we later do want to maintain a Nix or Scoop channel, this has to be moved to "What Archon IS" rather than quietly ignored — which is the point of writing it down, but worth naming.
  • Guardrails: none needed; the file is advisory input to triage, not executable policy.

Rollback Plan (required)

  • Fast rollback: git revert e8d678bf
  • Feature flags: n/a
  • Observable failure symptoms: none mechanical. The failure mode is social — a contributor citing the clause to argue against a channel we later decide we want.

Risks and Mitigations

  • Risk: The clause is broader than the case that produced it — it covers AUR, Scoop, winget and apt, none of which anyone has proposed.
    • Mitigation: That breadth is deliberate; a clause that only covered Nix would need rewriting on the next proposal. The escape hatch is stated in the clause itself (docs recipe, or upstream in the registry), so it declines a maintenance model, not the ecosystems.
  • Risk: The dev-environment half of feat: add Nix flake and Devbox support #2131 (devbox.json, and by extension .devcontainer / mise.toml / .tool-versions) is not covered here, so a future manifest PR re-litigates it.
    • Mitigation: Left out deliberately to keep this PR to the one clause promised on feat: add Nix flake and Devbox support #2131. A §dev-env-manifests clause is drafted and can follow separately if wanted — the argument there is different (a second, unpinned source of truth for the toolchain that drifts from the bun-version CI pins), and it deserves its own discussion rather than riding along.

Summary by CodeRabbit

  • Documentation
    • Clarified in the “What Archon is NOT” section that Archon is not an in-repository package distribution hub.
    • Documented that community-maintained distribution-channel guidance and upstream packages can be referenced via external registries.

@coderabbitai

coderabbitai Bot commented Jul 27, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: b78d7d37-72bb-4196-a34e-fb3950d6d7ad

📥 Commits

Reviewing files that changed from the base of the PR and between e8d678b and 018d3e2.

📒 Files selected for processing (1)
  • .archon/maintainer-standup/direction.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • .archon/maintainer-standup/direction.md

📝 Walkthrough

Walkthrough

The maintainer direction document now states that Archon is not an in-repo package-manager distribution hub, while permitting community-maintained channel documentation and upstream packages through external registries.

Changes

Distribution scope

Layer / File(s) Summary
Package-manager distribution scope
.archon/maintainer-standup/direction.md
Adds a “What Archon is NOT” clause defining Archon’s package-manager distribution boundary and citing direction.md §distribution-channels.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Possibly related PRs

  • coleam00/Archon#1575: Updates the same document section with related distribution and channel-scope guidance.
  • coleam00/Archon#1736: Adds related maintainer guidance for distribution and community-provider contributions.
  • coleam00/Archon#2194: Adds a related scope restriction around distribution and deployment channels.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately summarizes the new distribution-channels clause in direction.md.
Description check ✅ Passed The description follows the template closely and covers the required summary, diagrams, metadata, validation, risks, and rollback sections.
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/direction-distribution-channels

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.

Records the position taken when declining #2131 (Nix flake + Devbox): the
maintained install channels are the installer, Homebrew, Docker, and the
GitHub release binaries. Additional package-manager channels belong in docs
as community recipes, or upstream in the package manager's own registry —
not as in-repo manifests Archon version-bumps every release.

Reasoning mirrors §deployment-recipes: each maintained hash-pinned channel
doubles a release-critical surface, and rots silently between releases when
nothing exercises it. Stating it here so the next AUR/Scoop/winget proposal
gets an answer before the work is written, rather than a per-PR judgment call.
@Wirasm
Wirasm force-pushed the docs/direction-distribution-channels branch from e8d678b to 018d3e2 Compare July 29, 2026 15:39
@Wirasm
Wirasm merged commit c764946 into dev Jul 31, 2026
4 checks passed
@Wirasm
Wirasm deleted the docs/direction-distribution-channels branch July 31, 2026 08:23
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