You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -17,12 +17,12 @@ A **GitHub Organization** named **LAF-US** is recommended to host both repos and
17
17
18
18
| Repo | Visibility | Description | Target |
19
19
|------|-----------|-------------|--------|
20
-
|[loganfinney27.github.io](https://github.com/loganfinney27/loganfinney27.github.io)| Public | GitHub Pages personal site | LAF-PUBLIC |
21
-
|[THE-GEMSTONE](https://github.com/loganfinney27/THE-GEMSTONE)| Public |Independent publication about Idaho | LAF-PUBLIC |
22
-
|[IR-Court-Tracker](https://github.com/loganfinney27/IR-Court-Tracker)| Public | Idaho Reports court tracker (Python)| LAF-PUBLIC |
23
-
|[IDEX_Artifacts](https://github.com/loganfinney27/IDEX_Artifacts)| Public | Idaho Experience "Our American Artifacts" (HTML) | LAF-PUBLIC |
24
-
|[PyTutorial](https://github.com/loganfinney27/PyTutorial)| Public | Python learning playground (this repo)| LAF-PUBLIC |
25
-
|[IDAHO-VAULT](https://github.com/loganfinney27/IDAHO-VAULT)| Public | Obsidian master archive| LAF-PRIVATE |
20
+
|[loganfinney27.github.io](https://github.com/loganfinney27/loganfinney27.github.io)| Public |Standalone "Hello World" GitHub Pages site (`index.html` + `README.md`)| LAF-PUBLIC |
21
+
|[THE-GEMSTONE](https://github.com/loganfinney27/THE-GEMSTONE)| Public |Quartz 4.0 static site fork — independent Idaho publication at `thegemstone.org`, self-deploys via GitHub Actions| LAF-PUBLIC |
22
+
|[IR-Court-Tracker](https://github.com/loganfinney27/IR-Court-Tracker)| Public |Python scraper tracking Idaho federal court cases via CourtListener; daily GitHub Actions workflow auto-commits `output.csv`| LAF-PUBLIC |
23
+
|[IDEX_Artifacts](https://github.com/loganfinney27/IDEX_Artifacts)| Public | Idaho Experience "Our American Memories" TV production artifacts (RESEARCH, MEDIA, PROJECTS, LOGISTICS, SCRIPTS) | LAF-PUBLIC |
24
+
|[PyTutorial](https://github.com/loganfinney27/PyTutorial)| Public | Python learning playground with Jupyter notebooks and scripts| LAF-PUBLIC |
25
+
|[IDAHO-VAULT](https://github.com/loganfinney27/IDAHO-VAULT)| Public*| Obsidian knowledge vault + master AI agent governance hub (1,000+ files, 20+ active workflows) — **currently public, must be moved to PRIVATE**| LAF-PRIVATE |
26
26
27
27
---
28
28
@@ -98,10 +98,14 @@ Both repos can be merged into LAF-PUBLIC independently. The `index.html` from `l
98
98
| Filename | Repos that contain it |
99
99
|---|---|
100
100
|`README.md`|**All 5 public repos** — must be manually merged into one |
|`AGENTS.md`| IR-Court-Tracker — check other repos before merging |
105
109
106
110
Resolve each conflict before committing each repo merge.
107
111
@@ -111,6 +115,145 @@ THE-GEMSTONE was set up to receive upstream patches from `jackyzha0/quartz`. Aft
111
115
112
116
---
113
117
118
+
## IDAHO-VAULT: Context and Broader Goals
119
+
120
+
IDAHO-VAULT is far more than a personal notes archive. Understanding what it contains is essential for executing a safe migration.
121
+
122
+
### What it is
123
+
124
+
IDAHO-VAULT is a dual-purpose repository combining two deeply intertwined systems:
125
+
126
+
1.**An Obsidian.md personal knowledge vault** — 1,000+ Markdown files organized mostly flat at the repo root. Topics span Idaho legislation, Idaho journalism research, court case notes, production artifacts from Idaho Public Television, personal organization, and reference notes.
127
+
128
+
2.**The master governance hub for the "UNIFIED (US) SWARM"** — a multi-agent AI infrastructure Logan has built to assist his journalism and knowledge-management work. This is the brain that all other repos point back to.
129
+
130
+
### The UNIFIED (US) SWARM
131
+
132
+
IDAHO-VAULT is the single source of truth for an active swarm of AI agents working across Logan's repositories. Key governance files:
133
+
134
+
| File | Purpose |
135
+
|---|---|
136
+
|`CONSTITUTION.md`| Root canonical constitution — binding governance for all agents |
137
+
|`AGENTS.md` (root) | Cross-tool pointer auto-loaded by Codex CLI, Copilot, and Qodo |
|`!README.md`| Touchstone Tree — live orienting doctrine |
142
+
|`!/agents.json`| Generated bootstrap index for local agent startup |
143
+
|`!/agent.sh`| Local bootstrap entrypoint for agents |
144
+
145
+
**Agent roster (from `!/AGENTS.md`):**
146
+
147
+
| Agent | Persona | Role |
148
+
|---|---|---|
149
+
| Claude Code | The Abhorsen | Authority: Code — executor |
150
+
| Gemini CLI | The Vault Advisor | Direct Write — interpreter |
151
+
| OpenAI Codex | The Lexicographer | Scripting/Automation |
152
+
| GitHub Copilot | The Clerk | Multi-Repo Admin |
153
+
| Grok | The Ironist | Read/Analysis |
154
+
| DeepSeek | The Analyst | Advisory |
155
+
| Perplexity | The Scout | Research/Sourcing |
156
+
| CrewAI layer | Python orchestration | Active re-foundation |
157
+
158
+
Per-agent configuration lives in dotfolders: `.claude/`, `.gemini/`, `.codex/`, `.grok/`, `.deepseek/`, `.perplexity/`, `.crewai/`, etc. **These must survive the migration intact.**
159
+
160
+
### Active GitHub Actions workflows in IDAHO-VAULT
161
+
162
+
IDAHO-VAULT has 20+ active workflows — this is an active operations center, not a static archive:
163
+
164
+
| Workflow | Function |
165
+
|---|---|
166
+
|`idaho-leg-scraper.yml`| Scrapes Idaho Legislature for new bills and updates vault |
167
+
|`daily-rollover.yml`| Daily vault maintenance and file rollover |
168
+
|`linear-brief.yml`, `linear-webhook.yml`, `linear-pr-sync.yml`| Linear project management integration (requires Linear API secrets) |
169
+
|`budget-tracker-csv-export.yml`| Exports budget tracker data to CSV |
170
+
|`vault-courier.yml`, `vault-ingest.yml`| Automated vault content routing and ingestion |
171
+
|`wayback-preserve.yml`, `wayback-audit.yml`| Wayback Machine preservation for journalism sources |
172
+
|`agent-review-gate.yml`| Gate for agent-submitted PRs — requires Logan's approval |
173
+
|`auto-pr.yml`, `auto-merge.yml`| Automated PR creation and merge flows |
All of these workflows depend on secrets (Linear API token, 1Password credentials, GitHub token, etc.) that must be **re-authorized in LAF-US/LAF-PRIVATE** after migration.
179
+
180
+
### Why IDAHO-VAULT must be PRIVATE
181
+
182
+
IDAHO-VAULT is currently listed as a **public** repository, which is a security concern:
183
+
- It contains agent configuration, capability tier definitions, and operational protocols
184
+
- It contains personal budget data, project notes, and private journalism research
185
+
- It contains `.github/CODEOWNERS`, issue templates, and swarm coordination scripts
186
+
-`swarm.json` contains the machine-readable registry of all connectors and agents
187
+
188
+
Moving it to `LAF-US/LAF-PRIVATE` as a **private** repo is the correct and necessary action.
189
+
190
+
### Obsidian vault integrity post-migration
191
+
192
+
IDAHO-VAULT's 1,000+ Obsidian notes use `[[wikilink]]` syntax for internal links. These resolve by filename — as long as the flat file structure is preserved, all internal links will continue to work after migration to LAF-PRIVATE.
193
+
194
+
The `.obsidian/` folder (workspace config, plugins, themes) must be preserved intact. Per the vault's TRIPLEX protocol, this folder is owned by Claude (The Abhorsen) and must not be modified during migration.
195
+
196
+
---
197
+
198
+
## Suggested Improvements to Advance the Migration
199
+
200
+
Based on review of all six repositories, the following improvements are recommended before executing the migration.
201
+
202
+
### 1. Update `swarm.json` before merging IDAHO-VAULT
203
+
204
+
`swarm.json` is the machine-readable agent registry and almost certainly contains hardcoded URLs pointing to `loganfinney27/IDAHO-VAULT`, `loganfinney27/IR-Court-Tracker`, etc. These will all break after migration. **Update `swarm.json` to reflect the new `LAF-US/LAF-PRIVATE` and `LAF-US/LAF-PUBLIC` URLs before or during the migration.**
205
+
206
+
### 2. Update cross-repo governance links in public repos
207
+
208
+
`IR-Court-Tracker/AGENTS.md` and `IR-Court-Tracker/README.md` contain hardcoded links to:
These must be updated to point to `github.com/LAF-US/LAF-PRIVATE/blob/main/...` after migration. Check all other repos for similar hardcoded IDAHO-VAULT links.
214
+
215
+
### 3. Migrate IDAHO-VAULT first (it is the governance backbone)
216
+
217
+
Because all other repos depend on IDAHO-VAULT for agent governance, consider migrating IDAHO-VAULT to `LAF-US/LAF-PRIVATE`**before** migrating the public repos to LAF-PUBLIC. This ensures the governance backbone is stable before downstream repos are moved.
218
+
219
+
### 4. Re-authorize all GitHub Actions secrets in LAF-PRIVATE
220
+
221
+
IDAHO-VAULT's workflows require secrets that must be re-added to `LAF-US/LAF-PRIVATE` before any workflows run:
222
+
- Linear API token (for linear-brief, linear-webhook, linear-pr-sync)
223
+
- 1Password integration credentials
224
+
- Wayback Machine API key (if applicable)
225
+
- GitHub PAT or fine-grained token for cross-repo writes
226
+
227
+
Go to **LAF-US/LAF-PRIVATE → Settings → Secrets and variables → Actions** and add each secret before enabling the workflows.
228
+
229
+
### 5. Re-wire IR-Court-Tracker's daily workflow in LAF-PUBLIC
230
+
231
+
`IR-Court-Tracker`'s `python-run.yml` runs daily and commits `output.csv` and `failed_urls.csv` back to the repository. After migration to LAF-PUBLIC:
232
+
- Confirm `permissions: contents: write` is still set in the workflow
233
+
- Confirm the workflow's `git commit` step references the correct repo and branch
234
+
- Verify the `GITHUB_TOKEN` for `LAF-US/LAF-PUBLIC` has write access
235
+
236
+
### 6. Resolve the `output.csv` naming collision
237
+
238
+
Both IR-Court-Tracker and PyTutorial have `output.csv`. IR-Court-Tracker's file is **actively overwritten daily** by its workflow. PyTutorial's file is empty. Decide which file takes precedence and rename the other before merging.
239
+
240
+
### 7. Clean `.DS_Store` from IDEX_Artifacts before merging
241
+
242
+
IDEX_Artifacts has a `.DS_Store` file at the repo root (a macOS filesystem artifact that should never be committed). Remove it before the flat merge and add `.DS_Store` to LAF-PUBLIC's `.gitignore`.
243
+
244
+
### 8. Create a LAF-US org-level PAT for agent automation
245
+
246
+
The swarm's cross-repo automation (auto-pr, auto-merge, vault-courier, etc.) uses `GITHUB_TOKEN`. After moving to a GitHub Organization, consider creating a fine-grained organization-level PAT or a dedicated bot account (`laf-bot`) so cross-repo workflows don't depend on personal access tokens. Document this in `swarm.json` and `CONSTITUTION.md`.
247
+
248
+
### 9. Set up branch protection and team permissions in LAF-US
249
+
250
+
Once the org exists:
251
+
- Enable **branch protection on `main`** for both LAF-PUBLIC and LAF-PRIVATE (require PR review before merge — Logan is sole approver)
252
+
- Mirror the existing CODEOWNERS pattern from `IDAHO-VAULT/.github/CODEOWNERS` into the new repos
253
+
- Apply the `SWARM` label in Linear to track the migration as an active workstream
254
+
255
+
---
256
+
114
257
## Migration Steps
115
258
116
259
### Step 1: Create a GitHub Organization (optional but recommended)
@@ -186,12 +329,16 @@ After the merge, THE-GEMSTONE's Quartz deployment pipeline is now in LAF-PUBLIC.
186
329
4. Confirm `quartz.config.ts` still has `baseUrl: "thegemstone.org"` — update if the domain changes.
187
330
5. Push a commit to trigger the deploy workflow and verify the site loads at `thegemstone.org`.
188
331
189
-
### Step 4: Create the LAF-PRIVATE repository
332
+
### Step 4: Create the LAF-PRIVATE repository and migrate IDAHO-VAULT
333
+
334
+
> **Recommended order:** Migrate IDAHO-VAULT to LAF-PRIVATE **first**, before the public repos. It is the governance backbone — getting it stable and at its new URL early reduces the window during which cross-repo governance links are broken.
190
335
191
336
```bash
192
337
gh repo create LAF-US/LAF-PRIVATE --private --description "Private LAF projects and archives"
193
338
```
194
339
340
+
Update `swarm.json` to replace all `loganfinney27/IDAHO-VAULT` URLs with `LAF-US/LAF-PRIVATE` before merging.
341
+
195
342
Then merge IDAHO-VAULT directly into the root of `LAF-PRIVATE`:
0 commit comments