Complete DISCTL-WP-0001: bootstrap State Hub integration

Replace repo-seed template identity with disaster-control across
AGENTS.md, SCOPE.md, and .claude/rules. Archive REPO-WP template
workplans. Document dev workflow and classification. Mark WP-0001 finished.
This commit is contained in:
tegwick 2026-07-07 21:26:42 +02:00
parent a94dfec7bd
commit a290584ed1
10 changed files with 113 additions and 59 deletions

View file

@ -1,8 +1,12 @@
## Repo boundary
This repo owns **Repo Seed** only. It does not own:
This repo owns **disaster-control** (Resilience Control Plane) only.
<!-- TODO: List what belongs in adjacent repos, e.g.:
- SSH key management → railiance-infra/
- State hub code → state-hub/
-->
| Concern | Owner repo |
| --- | --- |
| Backup scripts (`railiance-backup`, `forgejo-backup`, `-s1`, `-s2`) | `railiance-platform`, `railiance-cluster`, `railiance-infra` |
| Forgejo restore orchestration | `railiance-infra` |
| State Hub code | `state-hub` |
| SSH certificates | `ops-warden` |
| Application runtime | `railiance-apps`, product repos |
| Repo template / `statehub register` | `repo-seed` |

View file

@ -1,5 +1,6 @@
**Purpose:** Git repository template to bootstrap coulomb projects.
**Purpose:** Resilience Control Plane for Coulomb Social / Helix Forge.
**Domain:** infotech
**Repo slug:** repo-seed
**Repo slug:** disaster-control
**Topic ID:** cee7bedf-2b48-46ef-8601-006474f2ad7a
**Workplan prefix:** DISCTL-WP-

View file

@ -22,14 +22,14 @@ If the hub is offline: `cd ~/state-hub && make api`
**Step 2 — Check inbox**
With MCP tools:
```
get_messages(to_agent="repo-seed", unread_only=True)
get_messages(to_agent="disaster-control", unread_only=True)
```
Mark read with `mark_message_read(message_id)`. Reply or act on coordination
requests before proceeding.
Without MCP tools:
```bash
curl -s "http://127.0.0.1:8000/messages/?to_agent=repo-seed&unread_only=true" \
curl -s "http://127.0.0.1:8000/messages/?to_agent=disaster-control&unread_only=true" \
| python3 -m json.tool
curl -s -X PATCH "http://127.0.0.1:8000/messages/<id>/read" \
-H "Content-Type: application/json" -d '{}'
@ -45,7 +45,7 @@ For each file with `status: ready`, `active`, or `blocked`, note pending
**Step 4 — Present brief**
1. **Active workstreams** for `infotech` — title, task counts, blocking decisions
2. **Pending tasks** from `workplans/` + any `[repo:repo-seed]` hub tasks
2. **Pending tasks** from `workplans/` + any `[repo:disaster-control]` hub tasks
3. **Goal guidance** — if `goal_guidance` in summary:
- `needs_workplan`: surface as top action — *"Repo goal '{title}' has no workplan yet"*
- `alignment_warnings`: flag if active work is not aligned with current goal
@ -73,12 +73,12 @@ curl -s -X POST http://127.0.0.1:8000/progress/ \
If workplan files were modified, ensure the local copy is up to date first:
```bash
git -C <repo_path> pull --ff-only
cd ~/state-hub && make fix-consistency REPO=repo-seed
cd ~/state-hub && make fix-consistency REPO=disaster-control
```
For repos where implementation runs on a remote machine (e.g. CoulombCore),
use the combined target which pulls before fixing:
```bash
cd ~/state-hub && make fix-consistency-remote REPO=repo-seed
cd ~/state-hub && make fix-consistency-remote REPO=disaster-control
```
**C-15** (DB task ahead of file) is normal in multi-machine workflows — writeback
will sync the file to match DB. **C-16** (repo behind remote) blocks all writes

View file

@ -1,27 +1,39 @@
## Stack
- **Language:** Markdown-first registry and planning repo (no application runtime yet)
- **Key deps:** State Hub ADR-001 workplans, `registry/indexes/capabilities.yaml`
- **Language:** Markdown-first governance repo (YAML registers, policies, runbooks)
- **Key deps:** State Hub ADR-001 workplans, YAML registers, cross-repo backup tooling
## Dev Commands
```bash
# Orient (offline-safe)
cat .custodian-brief.md
cat README.md
cat SCOPE.md
cat INTENT.md
cat PanicSheet.md
ls workplans/
# Consumer bootstrap docs
cat docs/statehub-register.md
cat docs/template-validation-checklist.md
# Validate register YAML
python3 -c "import yaml; yaml.safe_load(open('AssetRegister.yaml')); yaml.safe_load(open('DataRegister.yaml'))"
# After workplan or registry edits — from ~/state-hub
make fix-consistency REPO=repo-seed
# Validate registry entries (from reuse-surface checkout)
reuse-surface validate --root .
# Sanity-check markdown / registry edits
# Sanity-check markdown / YAML edits
git diff --check
# Push to primary + off-Gitea mirror
git push origin main
./tools/sync-mirror.sh
# After workplan edits — from ~/state-hub
make fix-consistency REPO=disaster-control
# State Hub API (if hub offline: cd ~/state-hub && make api)
curl -s "http://127.0.0.1:8000/messages/?to_agent=disaster-control&unread_only=true" | python3 -m json.tool
```
## Key paths
| Path | Purpose |
| --- | --- |
| `AssetRegister.yaml` / `DataRegister.yaml` | Stack inventory |
| `BackupPickupQueue.md` | Cross-repo backup closure tracker |
| `TestEvidence/` | Restore drill reports |
| `docs/mirror-sync.md` | Off-Gitea mirror procedure |