|
| 1 | +# ADR-0007: Transfer repository ownership to WithAutonomi |
| 2 | + |
| 3 | +- **Status:** Accepted |
| 4 | +- **Date:** 2026-08-04 |
| 5 | +- **Decision owners:** Jim Collinson |
| 6 | +- **Reviewers:** Jim Collinson |
| 7 | +- **Supersedes:** none |
| 8 | +- **Superseded by:** none |
| 9 | +- **Related:** ADR-0002 (Worker/GitHub serving); ADR-0004 (PDF serving); ADR-0005 (Worker source management); repository-transfer implementation PR |
| 10 | + |
| 11 | +## Context |
| 12 | + |
| 13 | +This repository contains Autonomi's machine-readable documentation and the source and deployment configuration for the Cloudflare Worker that serves it at `autonomi.com`. It currently belongs to the MaidSafe GitHub organization, while current ownership, access, and operational responsibility sit with the Autonomi team in the WithAutonomi organization. |
| 14 | + |
| 15 | +Moving the content into a newly created repository would split or duplicate the repository's identity and risk losing continuity across history, pull requests, issues, references, and integrations. GitHub's repository-transfer mechanism instead moves the existing repository object, preserving its repository ID and Git history while changing its organization namespace. |
| 16 | + |
| 17 | +The transfer also changes the namespace embedded in the Worker's GitHub raw origin and the whitepaper PDF links. The destination `WithAutonomi/autonomi-llm-docs` does not exist before the manual transfer, so those changes cannot safely become live until the repository exists there and its post-transfer controls have been validated. |
| 18 | + |
| 19 | +ADR-0002 and ADR-0005 name the current MaidSafe repository because they record the architecture as it existed when those decisions were accepted. They are immutable historical records. Their broader decisions—Cloudflare Worker delivery backed by GitHub, this repository as the source of truth, and source-controlled Worker operations—remain in force. |
| 20 | + |
| 21 | +## Decision Drivers |
| 22 | + |
| 23 | +- Align repository ownership and operational control with the Autonomi team. |
| 24 | +- Preserve one repository object, its ID, full Git history, and associated GitHub history. |
| 25 | +- Establish one unambiguous canonical repository and GitHub raw origin. |
| 26 | +- Keep the `autonomi.com` documentation service and all five whitepaper PDFs available through a controlled cutover. |
| 27 | +- Avoid relying on a permanent redirect, mirror, or dual-origin Worker implementation. |
| 28 | +- Preserve the audit trail and broader decisions in Accepted ADR-0002 and ADR-0005. |
| 29 | + |
| 30 | +## Considered Options |
| 31 | + |
| 32 | +1. Leave the repository in `maidsafe` and continue operating it across organization boundaries. |
| 33 | +2. Create a new repository under `WithAutonomi` and copy or mirror the content and history. |
| 34 | +3. Manually transfer the existing GitHub repository object to `WithAutonomi`, then make the destination namespace canonical. |
| 35 | + |
| 36 | +## Decision |
| 37 | + |
| 38 | +Jim Collinson will manually transfer the existing GitHub repository object from `maidsafe/autonomi-llm-docs` to `WithAutonomi/autonomi-llm-docs`. The transfer must preserve the repository ID and Git history; creating a replacement repository is not an equivalent migration. |
| 39 | + |
| 40 | +Once this ADR is accepted and the manual transfer has completed, `WithAutonomi/autonomi-llm-docs` is the canonical repository. `https://raw.githubusercontent.com/WithAutonomi/autonomi-llm-docs/main` is the canonical GitHub raw origin for the Cloudflare Worker and repository-hosted assets. |
| 41 | + |
| 42 | +ADR-0002 and ADR-0005 remain immutable and continue to govern the broader Cloudflare/GitHub serving architecture and source-control model. Where their literal pre-transfer repository namespace conflicts with this ADR, this ADR is authoritative once Accepted. ADR-0004 remains the decision governing direct GitHub-raw PDF delivery and is aligned to the destination namespace while still Proposed. |
| 43 | + |
| 44 | +GitHub's old-namespace redirect is transitional compatibility for a controlled, short cutover window, not a second canonical origin or a permanent dependency. No temporary dual-origin Worker logic will be introduced. The path `maidsafe/autonomi-llm-docs` must never be recreated, because doing so would capture old links and invalidate the redirect to the transferred repository. |
| 45 | + |
| 46 | +The implementation PR may be prepared before the transfer so it travels with the repository, but it must not be merged or deployed until the destination exists and post-transfer repository controls have been validated. Preview deployment and validation must precede the separately approved production deployment. |
| 47 | + |
| 48 | +## Consequences |
| 49 | + |
| 50 | +### Positive |
| 51 | + |
| 52 | +- Repository ownership, team access, and operational responsibility align under `WithAutonomi`. |
| 53 | +- Repository identity, Git history, and GitHub continuity are preserved instead of copied or fragmented. |
| 54 | +- The Worker and PDF links converge on one canonical raw-content origin. |
| 55 | +- The short redirect window provides compatibility while the prepared implementation is validated and deployed. |
| 56 | + |
| 57 | +### Negative / Trade-offs |
| 58 | + |
| 59 | +- There is a cutover interval in which the old namespace redirects while the live Worker still uses its pre-transfer raw origin. |
| 60 | +- Repository settings, access, secrets, environments, branch controls, and integrations require explicit post-transfer validation. |
| 61 | +- Absolute raw URLs must change with the organization namespace. |
| 62 | + |
| 63 | +### Neutral / Operational |
| 64 | + |
| 65 | +- The repository transfer itself is a manual, human-owned GitHub operation. |
| 66 | +- Merging the implementation and deploying the Worker remain separate actions, with production deployment protected by environment approval. |
| 67 | +- Historical MaidSafe content, company references, email addresses, and organization links that are not the repository's current namespace remain unchanged. |
| 68 | + |
| 69 | +## Validation |
| 70 | + |
| 71 | +The transfer remains valid only if the destination reports the same GitHub repository ID and expected `main` commit SHA as the source, and the old and new GitHub raw URLs return byte-identical content during the redirect window. Repository CI must pass in the destination, and organization/repository access, branch controls, secrets, protected deployment environment approval, workflows, webhooks, GitHub Apps, and other required integrations must be confirmed after transfer. |
| 72 | + |
| 73 | +The implementation must then be validated through preview before the separately approved production deployment. After production deployment, canonical `autonomi.com` documentation paths must serve content from the destination raw origin, and all five whitepaper Markdown pages must download their corresponding PDFs from that origin with the expected hashes. Any repository ID or SHA mismatch, raw-content hash mismatch, CI failure, missing approval control, broken canonical document, PDF mismatch, or lost required access/integration blocks completion of the cutover. |
| 74 | + |
| 75 | +Review triggers include another repository owner or name change, a change to the canonical raw-content host, replacement of the GitHub repository object, or any proposal to recreate the old namespace. |
| 76 | + |
| 77 | +## Notes for AI-assisted work |
| 78 | + |
| 79 | +AI tools may help draft this ADR, but **must not mark it Accepted without human review**. Accepted ADRs are immutable: create a new superseding ADR rather than editing an Accepted ADR. AI tools must not perform the repository transfer, merge or deploy the implementation, recreate the old namespace, or introduce dual-origin compatibility without a new approved decision. |
0 commit comments