README rewrite, docs tree, and protected main #7
Labels
No labels
needs-info
needs-triage
ready-for-agent
ready-for-human
wontfix
needs-info
needs-triage
ready-for-agent
ready-for-human
review/merge-ready
review/needs-fix
review/needs-human
review/needs-review
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
olympus/infra-forge#7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem Statement
The README has become the repo's junk drawer. It opens as the project's front door but then carries a numbered "Conventions" list that is really three unrelated things bundled together: agent working rules (where version pins live, how secrets are handled, the privacy rule), operator procedure (plan before apply, snapshot before touching a running service, back up state after apply), and a contribution rule (nothing directly to main). Because those rules are numbered, the numbers have leaked into the codebase: source comments and the ADR cite "convention 4" and "convention 7" by number, so editing the list breaks references elsewhere.
The list has also drifted from reality: it calls the repo private when it is not, describes the PRE Guest as if it were running, and frames the working flow as "phase 1, no CI" although Actions now exists on the instance. Detail that belongs in documentation — the NPM Edge flow, vault handling, the PRE rehearsal, the Actions runner and mirror hosts — sits in the README and grows it every time something changes.
Pedro wants a README that does one job (say what this is and how to run it, concisely) and a
docs/tree that holds the detail, is the single place to update, and becomes the published wiki. And the one rule a forge can enforce mechanically — no direct pushes to main — should be enforced by the forge, not kept as a sentence in a document. That last point matters more now that agents work in the repo: an agent landing a change on main without review is a real risk.Solution
Rewrite the README from an adapted API/Server template, keeping it to the front door: what this is, requirements, environment variables, how to run each layer, a one-line repository overview, a "before you touch anything" pointer, contributing, and license. Move the detail into a
docs/tree whose entry point doubles as the wiki's Home page and as the docs table of contents. Decide what reaches the wiki from an explicit, in-repo manifest so that every document is either published or deliberately excluded. Turn "nothing directly to main" into real branch protection at the forge (admins included), enforced rather than described, and record that decision in an ADR.User Stories
README
Rule migration
Branch protection
Docs tree
docs/agents/to remain repo-only (issue tracker and domain docs), so that agent tooling is not published as user documentation.Wiki publishing
Repo hygiene
Implementation Decisions
docs/. A single wiki link is added later, once the wiki is live.docs/agents/and the domain docs.Runbook-NNNN-*, ADR index → Decisions, ADR pages →ADR-NNNN-*, Actions index → Actions, glossary → Glossary.docs/agents/is excluded. Mirror semantics are preserved (a deleted source deletes its page).Testing Decisions
Out of Scope
Further Notes
private: falsebut is not anonymously reachable (it does not appear in the forge's public explore listing); the forge is 15.0.9; theready-for-agentlabel already exists (id 1) — a note indocs/agents/issue-tracker.mdclaiming "no labels defined yet" is stale and should be corrected when that file is next touched; there is currently no branch protection on main.Closed. All five children are merged (#8–#12, via PRs #13, #15, #16, #18, #20) and the one stale line they left behind is fixed on main (#25).
Story 21 — provisioning branch protection from the role — is consciously dropped rather than deferred. Protection is per-repo (the API exposes branch/tag protection only under
/repos/{owner}/{repo}; there is no org- or instance-level default), so a role would be hardcoding one repo's policy into a generic installer for no gain. The protection itself is live and recorded in ADR 0002, including the caveat that it is not recreated by a re-provision.