|
2 | 2 | title: "Parent-Child Nested Organizations Are Not Modeled — Initiatives, Funds, and Sub-Orgs Have Nowhere Canonical to Hang" |
3 | 3 | lede: "Surfaced in the first triage-inbox co-pilot run (2026-07-25): an Urban Institute event page had no honest destination because upmobility-foundation-urban-institute conflates a parent org (Urban Institute) with an initiative of it (Upward Mobility Foundation). The operator ruled: don't file content into either until the parent/child relationship is actually modeled." |
4 | 4 | date_created: 2026-07-25 |
5 | | -date_modified: 2026-07-25 |
| 5 | +date_modified: 2026-07-27 |
6 | 6 | authors: |
7 | 7 | - Michael Staton |
8 | 8 | augmented_with: |
9 | 9 | - Claude Code on Claude Fable 5 |
10 | | -semantic_version: 0.0.0.1 |
| 10 | +semantic_version: 0.0.0.2 |
11 | 11 | revisions: |
12 | 12 | - 2026-07-25 — Initial draft, written mid-triage-run when the Urban Institute event page (batch 1 item 18) was parked rather than filed into the conflated funder folder. |
| 13 | + - 2026-07-27 — **Reconciliation worklist added (0.0.0.2).** After the DB-slug-is-source-of-truth pass renamed every cleanly-renamable folder, the welded slugs are the last disk↔DB divergence — operator directed: build this in and track it. Full per-case inventory with current state and untangle steps; gh issue opened for the work trail. |
13 | 14 | tags: |
14 | 15 | - Issue |
15 | 16 | - Augment-It |
@@ -89,6 +90,69 @@ Operator flagged this explicitly when ruling the bucket. |
89 | 90 | - Existing welded slugs get untangled lazily, on first real filing pressure, |
90 | 91 | not in a big-bang rename. |
91 | 92 |
|
| 93 | +## The reconciliation worklist (added 2026-07-27 — this is the tracked work) |
| 94 | + |
| 95 | +Everything cleanly renamable was renamed on 2026-07-27 (DB slug = source of |
| 96 | +truth). What remains is exactly the set this issue exists for. Untangling one |
| 97 | +case = (1) ensure BOTH entities have org rows, (2) create the typed relation |
| 98 | +edge, (3) split/rename the disk folder by aboutness with `reference_of:` |
| 99 | +pointers across the seam, (4) re-home any parked inbox captures. |
| 100 | + |
| 101 | +### A. Welded disk folders (4) |
| 102 | + |
| 103 | +- [ ] **`funders/upmobility-foundation-urban-institute/`** — Upward Mobility |
| 104 | + Foundation (initiative) welded to Urban Institute (parent). Clean |
| 105 | + `upmobility-foundation` row EXISTS (operator-created); `urban-institute` |
| 106 | + row does not. Three inbox captures parked on this case (event page, |
| 107 | + homepage, 2025 impact report). Untangle: mint `urban-institute` |
| 108 | + (think-tank), edge `upmobility-foundation —initiative_of→ |
| 109 | + urban-institute`, split folder content by aboutness, file the three |
| 110 | + parked captures. **The pilot case — do this one first.** |
| 111 | +- [ ] **`funders/truist-foundation-liftfund-us/`** — Truist Foundation welded |
| 112 | + to LiftFund (a CDFI grantee/partner, not a sub-org — the edge here is |
| 113 | + `funds`/`partners_with`, not `initiative_of`). Clean `truist-foundation` |
| 114 | + row EXISTS. Untangle: decide LiftFund's own row + bucket, split folder. |
| 115 | +- [ ] **`funders/the-denver-foundation-beacon/`** — the Beacon fund OF the |
| 116 | + Denver Foundation. Clean `denver-foundation` row EXISTS. The fund is the |
| 117 | + thing reach-edu cares about; the community foundation is its host. |
| 118 | + Untangle: `beacon-fund —fund_of→ denver-foundation`; folder probably |
| 119 | + renames to the fund's own slug. |
| 120 | +- [ ] **`funders/alabama-state-legislature-appropriations-funds/`** — a |
| 121 | + funding *mechanism* (state appropriations) welded to a gov body. NO row |
| 122 | + exists for either. Untangle: mint `alabama-state-legislature` |
| 123 | + (gov-entities); decide whether the appropriations channel is an edge |
| 124 | + property, a stream, or its own entity. |
| 125 | + |
| 126 | +### B. Same-shape residue (not welded folders, same missing model) |
| 127 | + |
| 128 | +- [ ] **`funders/mandelblatt-foundation/`** — a donor fund hosted at a |
| 129 | + community foundation (yourcommunityfoundation.org); no row. Same |
| 130 | + fund-of shape as Beacon. |
| 131 | +- [ ] **Koch / Stand Together constellation** — rows exist |
| 132 | + (`charles-koch-foundation`, `stand-together-trust`, |
| 133 | + `stand-together-foundation`); the edges don't. See the constellation |
| 134 | + note above. |
| 135 | +- [ ] **`us-department-of-agriculture` ↔ `usda-rural-development`** — both |
| 136 | + rows exist as flat siblings; needs `agency_of` (and DOL/ETA has the |
| 137 | + same shape waiting: TEGL/ETA content sits on `us-department-of-labor`). |
| 138 | +- [ ] **Academic chain** — `project-on-workforce-at-harvard` is a leaf with |
| 139 | + no chain to HKS/Harvard (see the academic-institutions note above). |
| 140 | +- [ ] **DB dupe, non-destructive merge pending**: `donor-s-trust` vs |
| 141 | + `donorstrust` (same recipe as bhef/jff merges). |
| 142 | + |
| 143 | +### C. The build (what "model lands" means) |
| 144 | + |
| 145 | +- [ ] Ratify the edge shape: a typed `org_relations` RELATE edge |
| 146 | + (`kind: initiative_of | fund_of | program_of | agency_of | chapter_of | |
| 147 | + funds | partners_with`), queryable both directions. |
| 148 | +- [ ] Capabilities: `organization.relate` (+ list/remove) on the wire, so |
| 149 | + edges never need direct writes. |
| 150 | +- [ ] Surface: entity card shows parent/children; corpus lenses can roll a |
| 151 | + child's content up to the parent. |
| 152 | +- [ ] Triage integration: the skill's aboutness routing gains a "parent or |
| 153 | + child?" step once edges exist; the four welded folders above get |
| 154 | + untangled as the acceptance test. |
| 155 | + |
92 | 156 | ## Parked pending this issue |
93 | 157 |
|
94 | 158 | - `inbox/2026-06-10_apprenticeship-industry-driven-made-to-scale.md` (Urban |
|
0 commit comments