Files
cc-ci-orchestrator/archive/plans/plan-repo-consolidation.md
T
notplantsandClaude Fable 5.1 31af820079 nix: one Hetzner host for the CI server + the orchestrator (#cc-ci)
The orchestrator's flake now builds the machine it shares with the cc-ci CI
server: `nixosConfigurations.cc-ci` composes cc-ci's nixosModules.cc-ci-server
(new flake input, nixpkgs + sops-nix follow ours), this repo's orchestrator
module (nix/modules/cc-ci.nix, exported as cc-ci-orchestrator, `cc-ci` kept
as an alias for notplants-nix) and the new nix/modules/orchestrator-host.nix
— the host contract those units always assumed (loops user, claude/opencode
CLIs, opencode web server + tailnet-only UI on 8443 since traefik owns
80/443, nix-ld, tool set, `ssh cc-ci` → loopback).

nix/hosts/cc-ci/{hardware,networking}.nix are PROVISIONAL copies of the old
server's layout so the flake evaluates; they get replaced by the
nixos-infect output of 195.201.88.249.

README.md is the deploy guide (Hetzner Debian → nixos-infect → this flake →
staging → data restore → cutover). archive/ holds the retired Incus/Hetzner
orchestrator host configs, the old terraform and the migration plans;
references updated. cc-ci-plan/plan-cc-ci-combined-host.md is the working
plan for the move.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FqkQq3CDmFWcQ7u1LzoyRz
2026-09-07 19:58:33 +00:00

59 lines
2.9 KiB
Markdown

# Plan stub — repo consolidation + recipe-maintainer submodule
**Status:** COMPLETE (2026-05-31).
Both cleanups executed. See commit history for details.
---
## Task 1 — merge the two orchestrator repos into one `cc-ci-orchestrator`
Today there are **two** repos:
- `recipe-maintainers/cc-ci-autonomous-orchestrator` — the loop code/plans/prompts (`cc-ci-plan/`,
`launch.sh`, `prompts/`, `references/`, `AGENTS.md`). This is the workspace at `/srv/cc-ci`
(`/home/loops/cc-ci` on the VM).
- `recipe-maintainers/cc-ci-orchestrator` — the VM's NixOS config (`configuration.nix`, `README.md`),
created during the VM migration.
**Goal:** combine into a single repo named **`cc-ci-orchestrator`** (loop code/plans + the VM's NixOS
config in one place). Likely: move the NixOS config into the autonomous-orchestrator repo (e.g.
`nixos/` or `vm/`), then **rename** that repo to `cc-ci-orchestrator` on Gitea.
**Touch-ups when doing it:** the workspace clone URL in `launch-orchestrator.sh` / kickoff docs /
`cc-ci-loops.service`, the VM's `git remote`, and `plan.md`/`kickoff.md` references to the repo name.
Keep `recipe-maintainers/cc-ci` (the CI **product** repo the loops build) separate — this is only
about the two **orchestrator** repos.
## Task 2 — make `references/recipe-maintainer` a git submodule
Today `references/recipe-maintainer` is a **symlink → `/srv/recipe-maintainer/`** (an absolute path).
On the Pi that target existed; **on the VM it does NOT, so the symlink dangles and the parity corpus
is empty** — Phase-2 parity-porting (P2) reads from `references/recipe-maintainer/recipe-info/<recipe>/
tests/*.py`, so recipes not already ported can't be ported until this is fixed.
**Goal:** replace the symlink with a proper **git submodule** from
**`https://git.autonomic.zone/notplants/recipe-maintainer`**:
```
git rm references/recipe-maintainer # remove the symlink
git submodule add https://git.autonomic.zone/notplants/recipe-maintainer references/recipe-maintainer
git commit
# on each clone / the VM: git submodule update --init --recursive
```
This both fixes the current VM gap (corpus present + reproducible, no absolute-path dependency) and
makes the workspace self-contained on any host.
**Interim (before this plan runs), if the loops need the corpus on the VM:** clone recipe-maintainer
to `/srv/recipe-maintainer` on the VM (needs root — `/srv` is root-owned) so the existing symlink
resolves; OR do Task 2 directly.
## Operator action required — Pi clone remote update
The Gitea rename (`cc-ci-autonomous-orchestrator``cc-ci-orchestrator`) breaks the `origin` remote
on any existing clone. **On the Pi** (and any other machine with a clone), run:
```
cd /srv/cc-ci # or wherever the workspace is cloned
git remote set-url origin https://git.autonomic.zone/recipe-maintainers/cc-ci-orchestrator.git
# (include bot credentials in the URL if needed, as before)
```
The VM clone's remote was updated automatically as part of this task.