From f820ced5c95334813f2a855fb2e1200dd4c83db7 Mon Sep 17 00:00:00 2001 From: codex Date: Mon, 14 Sep 2026 15:51:06 +0200 Subject: [PATCH] Finish CUST-WP-0072: coverage evidence, templates, intake join. Record the flavor backfill cohort, residual-intake join, and agent convention that default views omit residuals. --- .claude/rules/session-protocol.md | 5 +- AGENTS.md | 2 +- .../2026-09-14-flavor-backfill/README.md | 67 + .../apply_flavor_backfill.py | 348 ++++ .../changed-by-repo.json | 226 +++ .../2026-09-14-flavor-backfill/coverage.csv | 117 ++ .../2026-09-14-flavor-backfill/coverage.json | 1755 +++++++++++++++++ .../intake-join.json | 464 +++++ ...72-fleet-flavor-and-depends-on-backfill.md | 26 +- 9 files changed, 3003 insertions(+), 7 deletions(-) create mode 100644 docs/evidence/2026-09-14-flavor-backfill/README.md create mode 100644 docs/evidence/2026-09-14-flavor-backfill/apply_flavor_backfill.py create mode 100644 docs/evidence/2026-09-14-flavor-backfill/changed-by-repo.json create mode 100644 docs/evidence/2026-09-14-flavor-backfill/coverage.csv create mode 100644 docs/evidence/2026-09-14-flavor-backfill/coverage.json create mode 100644 docs/evidence/2026-09-14-flavor-backfill/intake-join.json diff --git a/.claude/rules/session-protocol.md b/.claude/rules/session-protocol.md index c3abbbf..d652768 100644 --- a/.claude/rules/session-protocol.md +++ b/.claude/rules/session-protocol.md @@ -40,7 +40,10 @@ curl -s -X PATCH "http://127.0.0.1:8000/messages//read" \ ls workplans/ ``` For each file with `status: ready`, `active`, or `blocked`, note pending -`wait`/`todo`/`progress` tasks. +`wait`/`todo`/`progress` tasks. Default hub open views omit +`flavor: residual` (STATE-WP-0092). Do not implement residuals unless +demand or risk has promoted the flavor. Cross-repo waits belong to +`COORDINATION-WP-0005`, not a stranded `wait` note. **Step 4 — Present brief** diff --git a/AGENTS.md b/AGENTS.md index 5c04338..36269ff 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -92,7 +92,7 @@ curl -s -X PATCH "http://127.0.0.1:8000/tasks/" \ **Start:** 1. `cat .custodian-brief.md` — domain goal and open workplans (offline-safe) 2. Check inbox: `GET /messages/?to_agent=the-custodian&unread_only=true`; mark read -3. Scan workplans: `ls workplans/` — note `status: ready`, `active`, or `blocked` files and open tasks +3. Scan workplans: `ls workplans/` — note `status: ready`, `active`, or `blocked` files and open tasks. Default hub views omit `flavor: residual`; do not implement residuals unless promoted (STATE-WP-0092). 4. Check human-needed tasks: `GET /tasks/?needs_human=true` **During work:** diff --git a/docs/evidence/2026-09-14-flavor-backfill/README.md b/docs/evidence/2026-09-14-flavor-backfill/README.md new file mode 100644 index 0000000..a564239 --- /dev/null +++ b/docs/evidence/2026-09-14-flavor-backfill/README.md @@ -0,0 +1,67 @@ +# CUST-WP-0072 flavor and depends_on backfill + +Date: 2026-09-14. Gate: STATE-WP-0092 is `finished` in files and on the hub +(`2a2d8bcd`). Live primary schema is still `b5e6f7a8c9d0` (flavor column not +applied), so default views do not yet drop residuals. Founder instructed +file backfill to proceed. Hub views follow after alembic `c6f7a8b9d0e1` is +deployed. + +## Classification rules (no auto-promote) + +| Flavor | When | +| --- | --- | +| `residual` | `origin: residual\|handoff`, or title/body already names a residual handoff | +| `planning` | already set, or `status: proposed` without implement/deploy verbs, or planning keywords | +| `refactoring` | title keyword refactor/rename/terminology/cleanup/strangler | +| `extension` | title keyword adapt/extension/follow-on (and not implement) | +| `implementation` | default for ready/active/blocked functional work | + +Unset was treated as relevant, then filled. Existing valid `flavor:` was kept +(`CUST-WP-0072`, `INFD-WP-0002`, `COORDINATION-WP-0005`, `RAIL-FAB-WP-0030`). +`depends_on` was copied from existing `depends_on` / `depends_on_workplans` / +`blocked_on` workplan ids only — no edges invented from `related:`. + +WHITEHAT-WP-0008 was corrected from `implementation` to `residual` (title +“live ASM residuals after WHITEHAT-WP-0007”). + +## Open-workplan cohort (116) + +| Flavor | Count | +| --- | ---: | +| implementation | 81 | +| planning | 21 | +| residual | 11 | +| extension | 2 | +| refactoring | 1 | + +Residual open workplans: + +| Repo | Id | origin_ref | +| --- | --- | --- | +| railiance-fabric | RAIL-FAB-WP-0028 | STATE-WP-0079 | +| railiance-infra | RAIL-HO-WP-0013 | RCLK-WP-0005 | +| ops-warden | WARDEN-WP-0039 | HFACT-WP-0001 | +| approval-engine | APPROVAL-WP-0002 | APPROVAL-WP-0001 | +| tenant-engine | TEN-WP-0012 | TEN-WP-0011 | +| reuse-surface | REUSE-WP-0021 | IDENTITY-WP-0004 | +| hub-core | HUB-WP-0011 | HUB-WP-0010 | +| hub-core | HUB-WP-0009 | OPS-WP-0003 | +| whitehat-security | WHITEHAT-WP-0006 | WHITEHAT-WP-0001 | +| whitehat-security | WHITEHAT-WP-0008 | WHITEHAT-WP-0007 | +| fin-hub | FIN-WP-0006 | RESOURCE-WP-0005 | + +Machine table: `coverage.csv` / `coverage.json`. + +## T04 — residual intakes vs workplans + +42 intakes with `origin: residual`. Join by `origin_ref`: + +- 38 → finished/archived parent workplan (intake is the live leftover; not a + second implementation backlog) +- 4 → non-workplan refs (task/decision/legacy id); not open workplans + +Zero open workplans were both `flavor: implementation` and the target of a +residual intake. Provenance stays on the intake; flavor is the live +classification on the workplan. + +See `intake-join.json`. diff --git a/docs/evidence/2026-09-14-flavor-backfill/apply_flavor_backfill.py b/docs/evidence/2026-09-14-flavor-backfill/apply_flavor_backfill.py new file mode 100644 index 0000000..51c3291 --- /dev/null +++ b/docs/evidence/2026-09-14-flavor-backfill/apply_flavor_backfill.py @@ -0,0 +1,348 @@ +#!/usr/bin/env python3 +"""One-shot CUST-WP-0072-T02 helper: classify open workplans and patch files. + +Does not invent depends_on edges. Does not promote residuals. +""" +from __future__ import annotations + +import json +import re +import urllib.request +from collections import Counter, defaultdict +from pathlib import Path + +import yaml + +API = "http://127.0.0.1:8000" +OPEN = {"proposed", "ready", "active", "blocked", "backlog"} +FLAVORS = {"planning", "implementation", "refactoring", "extension", "residual"} +WP_ID = re.compile( + r"\b([A-Z][A-Z0-9]*(?:-[A-Z][A-Z0-9]*)*-WP-(?:ADHOC-)?[0-9]{4}(?:[a-z])?)\b" +) +ORIGIN_LINE = re.compile( + r"Origin:\s*residual\s+from\s+`?([A-Z][A-Z0-9]*(?:-[A-Z][A-Z0-9]*)*-WP-(?:ADHOC-)?[0-9]{4})", + re.I, +) +PLAN_KW = re.compile( + r"\b(spec|design|canon|policy|review|declare|founding|charter|" + r"convention|assessment|plan-derived|establish intent)\b", + re.I, +) +IMPL_KW = re.compile( + r"\b(implement|deploy|admit|migrate|build|provision|activate|" + r"cut over|restore|bind)\b", + re.I, +) +REF_KW = re.compile(r"\b(refactor|rename|terminology|cleanup|strangler)\b", re.I) +EXT_KW = re.compile(r"\b(adapt(?:ation)?|extension|follow-on)\b", re.I) +TITLE_RESIDUAL = re.compile( + r"(authorized live residuals|residual from|residual of|residual handoff|" + r"^residual\b)", + re.I, +) + + +def get(path: str): + with urllib.request.urlopen(API + path, timeout=30) as response: + return json.load(response) + + +def parse_fm(text: str) -> tuple[dict, str, str]: + if not text.startswith("---"): + return {}, text, "" + rest = text[3:] + end = rest.find("\n---") + if end < 0: + return {}, text, "" + raw = rest[:end].lstrip("\n") + body = rest[end + 4 :] + loaded = yaml.safe_load(raw) or {} + if not isinstance(loaded, dict): + loaded = {} + return loaded, body, raw + + +def classify(meta: dict, title: str, body: str, status: str) -> tuple[str, str]: + existing = str(meta.get("flavor") or "").strip().lower() + if existing in FLAVORS: + return existing, "already-set" + origin = str(meta.get("origin") or "").strip().lower() + if origin in {"residual", "handoff"}: + return "residual", "origin" + if TITLE_RESIDUAL.search(title or "") or ORIGIN_LINE.search(body[:1500] or ""): + return "residual", "prose" + if REF_KW.search(title or ""): + return "refactoring", "keyword" + if EXT_KW.search(title or "") and not IMPL_KW.search(title or ""): + return "extension", "keyword" + if status == "proposed": + if IMPL_KW.search(title or ""): + return "implementation", "proposed-implement" + return "planning", "proposed" + if PLAN_KW.search(title or "") and not IMPL_KW.search(title or ""): + return "planning", "keyword" + return "implementation", "default" + + +def existing_depends(meta: dict, self_id: str) -> list[str]: + ids: list[str] = [] + for key in ("depends_on", "depends_on_workplans"): + val = meta.get(key) + if isinstance(val, str): + ids.extend(WP_ID.findall(val)) + elif isinstance(val, list): + for item in val: + ids.extend(WP_ID.findall(str(item))) + ids.extend(WP_ID.findall(str(meta.get("blocked_on") or ""))) + out: list[str] = [] + seen: set[str] = set() + for item in ids: + if item == self_id or item in seen: + continue + seen.add(item) + out.append(item) + return out + + +def index_workplan_files(repo_path: Path) -> dict[str, Path]: + found: dict[str, Path] = {} + for directory in (repo_path / "workplans", repo_path / "workplans" / "archived"): + if not directory.is_dir(): + continue + for path in directory.glob("*.md"): + try: + text = path.read_text(encoding="utf-8") + except OSError: + continue + meta, _, _ = parse_fm(text) + wid = str(meta.get("id") or "").strip() + if wid: + found.setdefault(wid, path) + return found + + +def insert_after_status(raw: str, flavor: str) -> str: + if re.search(r"^flavor:\s*", raw, re.M): + return raw + lines = raw.splitlines() + out = [] + inserted = False + for line in lines: + out.append(line) + if not inserted and re.match(r"^status:\s*", line): + out.append(f"flavor: {flavor}") + inserted = True + if not inserted: + out.append(f"flavor: {flavor}") + return "\n".join(out) + + +def insert_depends_on(raw: str, deps: list[str]) -> str: + if re.search(r"^depends_on:\s*", raw, re.M): + return raw + block = "depends_on:\n" + "\n".join(f" - {item}" for item in deps) + lines = raw.splitlines() + out = [] + inserted = False + for line in lines: + out.append(line) + if not inserted and re.match(r"^flavor:\s*", line): + out.extend(block.splitlines()) + inserted = True + if not inserted: + out.extend(block.splitlines()) + return "\n".join(out) + + +def insert_origin(raw: str, origin: str, origin_ref: str | None) -> str: + lines = raw.splitlines() + have_origin = any(re.match(r"^origin:\s*", line) for line in lines) + have_ref = any(re.match(r"^origin_ref:\s*", line) for line in lines) + extra = [] + if not have_origin: + extra.append(f"origin: {origin}") + if origin_ref and not have_ref: + extra.append(f"origin_ref: {origin_ref}") + if not extra: + return raw + out = [] + inserted = False + for line in lines: + out.append(line) + if not inserted and re.match(r"^flavor:\s*", line): + out.extend(extra) + inserted = True + if not inserted: + out.extend(extra) + return "\n".join(out) + + +def patch_residual_tasks(body: str) -> tuple[str, int]: + count = 0 + + def repl(match: re.Match[str]) -> str: + nonlocal count + block = match.group(0) + inner = match.group(1) + if re.search(r"^flavor:\s*", inner, re.M): + return block + inner_lines = inner.splitlines() + new_inner = [] + inserted = False + for line in inner_lines: + new_inner.append(line) + if not inserted and re.match(r"^status:\s*", line): + new_inner.append("flavor: residual") + inserted = True + count += 1 + if not inserted: + new_inner.append("flavor: residual") + count += 1 + return "```task\n" + "\n".join(new_inner) + "\n```" + + patched = re.sub(r"```task\n(.*?)```", repl, body, flags=re.S) + return patched, count + + +def rebuild(raw: str, body: str) -> str: + if not raw.endswith("\n"): + raw += "\n" + if body.startswith("\n"): + return f"---\n{raw}---{body}" + return f"---\n{raw}---\n{body}" + + +def main() -> None: + repos = {row["id"]: row for row in get("/repos/")} + open_wps = [ + row + for row in get("/workplans/") + if (row.get("status") or "").lower() in OPEN + and "@retired" not in (row.get("slug") or "") + ] + coverage = [] + changed_by_repo: dict[str, list[str]] = defaultdict(list) + stats = Counter() + + for wp in open_wps: + repo = repos.get(wp.get("repo_id") or "") or {} + repo_slug = repo.get("slug") or "" + local = repo.get("local_path") + record = { + "repo": repo_slug, + "hub_slug": wp.get("slug"), + "hub_status": wp.get("status"), + "title": wp.get("title"), + "file": "", + "id": "", + "flavor": "", + "flavor_reason": "", + "depends_on": "", + "origin": "", + "origin_ref": "", + "changed": "no", + "note": "", + } + if not local or not Path(local).is_dir(): + record["note"] = "no-local-path" + stats["skip_no_path"] += 1 + coverage.append(record) + continue + files = index_workplan_files(Path(local)) + # Prefer backing path when it exists + file_path = None + rel = wp.get("backing_relative_path") + fname = wp.get("backing_filename") + if rel and (Path(local) / rel).is_file(): + file_path = Path(local) / rel + elif fname and (Path(local) / "workplans" / fname).is_file(): + file_path = Path(local) / "workplans" / fname + text = "" + meta: dict = {} + if file_path: + text = file_path.read_text(encoding="utf-8") + meta, _, _ = parse_fm(text) + wid = str(meta.get("id") or "").strip() + if not wid: + # match by scanning index using hub slug upper + guess = (wp.get("slug") or "").upper().replace("_", "-") + file_path = files.get(guess) + if file_path: + text = file_path.read_text(encoding="utf-8") + meta, _, _ = parse_fm(text) + wid = str(meta.get("id") or "").strip() + if not file_path or not wid: + record["note"] = "no-file" + stats["skip_no_file"] += 1 + coverage.append(record) + continue + + body_holder = parse_fm(text) + meta, body, raw = body_holder + title = str(meta.get("title") or wp.get("title") or "") + status = str(meta.get("status") or wp.get("status") or "").lower() + flavor, reason = classify(meta, title, body, status) + deps = existing_depends(meta, wid) + origin = str(meta.get("origin") or "").strip() + origin_ref = str(meta.get("origin_ref") or "").strip() + origin_match = ORIGIN_LINE.search(body[:2000]) + new_raw = raw + new_body = body + changed = False + task_patches = 0 + + if str(meta.get("flavor") or "").strip().lower() not in FLAVORS: + new_raw = insert_after_status(new_raw, flavor) + changed = True + if deps and not meta.get("depends_on"): + new_raw = insert_depends_on(new_raw, deps) + changed = True + if flavor == "residual": + if not origin and origin_match: + origin = "residual" + if not origin_ref and origin_match: + origin_ref = origin_match.group(1) + if origin == "residual" or origin_ref: + before = new_raw + new_raw = insert_origin(new_raw, origin or "residual", origin_ref or None) + if new_raw != before: + changed = True + new_body, task_patches = patch_residual_tasks(new_body) + if task_patches: + changed = True + + record.update( + { + "file": str(file_path), + "id": wid, + "flavor": flavor, + "flavor_reason": reason, + "depends_on": ",".join(deps) if deps else "none", + "origin": origin, + "origin_ref": origin_ref, + } + ) + if changed: + file_path.write_text(rebuild(new_raw, new_body), encoding="utf-8") + record["changed"] = "yes" + if task_patches: + record["note"] = f"task_flavor={task_patches}" + changed_by_repo[repo_slug].append(str(file_path)) + stats["changed"] += 1 + else: + stats["unchanged"] += 1 + coverage.append(record) + + out_dir = Path(__file__).resolve().parent + (out_dir / "coverage.json").write_text( + json.dumps({"stats": dict(stats), "rows": coverage}, indent=2) + "\n", + encoding="utf-8", + ) + (out_dir / "changed-by-repo.json").write_text( + json.dumps(changed_by_repo, indent=2) + "\n", encoding="utf-8" + ) + print(json.dumps({"stats": dict(stats), "repos_changed": len(changed_by_repo)}, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/docs/evidence/2026-09-14-flavor-backfill/changed-by-repo.json b/docs/evidence/2026-09-14-flavor-backfill/changed-by-repo.json new file mode 100644 index 0000000..e259a44 --- /dev/null +++ b/docs/evidence/2026-09-14-flavor-backfill/changed-by-repo.json @@ -0,0 +1,226 @@ +{ + "net-kingdom": [ + "/home/worsch/net-kingdom/workplans/NK-WP-0033-keycape-secret-exposure-rotation.md", + "/home/worsch/net-kingdom/workplans/NK-WP-0035-emission-cadence-security-profile.md", + "/home/worsch/net-kingdom/workplans/NK-WP-0027-reef-placement-reconciliation.md", + "/home/worsch/net-kingdom/workplans/NK-WP-0031-deterministic-posture-feedback.md", + "/home/worsch/net-kingdom/workplans/NK-WP-0009-netkingdom-security-pattern-tutorials.md", + "/home/worsch/net-kingdom/workplans/NK-WP-0032-openbao-operator-loopback-callback.md", + "/home/worsch/net-kingdom/workplans/NK-WP-0037-vergabe-company-welcome.md", + "/home/worsch/net-kingdom/workplans/NK-WP-0022-railiance01-identity-cutover-and-coulombcore-retirement.md", + "/home/worsch/net-kingdom/workplans/NK-WP-0011-enterprise-federation-saml.md", + "/home/worsch/net-kingdom/workplans/NK-WP-0034-verification-that-verifies.md", + "/home/worsch/net-kingdom/workplans/NK-WP-0036-restore-user-portal-client-registration.md" + ], + "flex-auth": [ + "/home/worsch/flex-auth/workplans/FLEX-WP-0022-tenant-scope-coverage.md", + "/home/worsch/flex-auth/workplans/FLEX-WP-0027-t03-human-review.md", + "/home/worsch/flex-auth/workplans/FLEX-WP-0020-repository-identity-migration.md" + ], + "ops-warden": [ + "/home/worsch/ops-warden/workplans/WARDEN-WP-0040-unknown-zone-fail-closed-adoption.md", + "/home/worsch/ops-warden/workplans/WARDEN-WP-0034-layer-model-v07-conformance.md", + "/home/worsch/ops-warden/workplans/WARDEN-WP-0027-credential-governance-lockdown.md", + "/home/worsch/ops-warden/workplans/WARDEN-WP-0037-whynot-design-forgejo-npm-lane.md", + "/home/worsch/ops-warden/workplans/WARDEN-WP-0039-explicit-policy-refusal.md" + ], + "fluid-telegram": [ + "/home/worsch/fluid-telegram/workplans/FT-WP-0001-telegram-identity-and-hall-channel.md", + "/home/worsch/fluid-telegram/workplans/FT-WP-0002-declared-presence-provisioning.md" + ], + "fluid-core": [ + "/home/worsch/fluid-core/workplans/FLUID-WP-0008-fluid-telegram-handover.md", + "/home/worsch/fluid-core/workplans/FLUID-WP-0009-campaign-repos-and-example-separation.md" + ], + "intelligence-radar": [ + "/home/worsch/intelligence-radar/workplans/IR-WP-0004-evidence-coverage-and-field-calibration.md" + ], + "state-hub": [ + "/home/worsch/state-hub/workplans/STATE-WP-0079-retirement-strangler.md", + "/home/worsch/state-hub/workplans/CUST-WP-0038-state-hub-threephoenix-ha.md" + ], + "the-custodian": [ + "/home/worsch/the-custodian/workplans/CUST-WP-0071-measured-workload-sizing-and-weekly-review.md" + ], + "railiance-clock": [ + "/home/worsch/railiance-clock/workplans/RCLK-WP-0003-reference-implementation.md", + "/home/worsch/railiance-clock/workplans/RCLK-WP-0002-contract-review.md", + "/home/worsch/railiance-clock/workplans/RCLK-WP-0005-infrastructure-as-code.md", + "/home/worsch/railiance-clock/workplans/RCLK-WP-0004-deployment-adoption.md" + ], + "informed-decision": [ + "/home/worsch/informed-decision/workplans/INFD-WP-0001-founding-specs-and-approver-ui-ownership.md" + ], + "coordination-engine": [ + "/home/worsch/coordination-engine/workplans/COORDINATION-WP-0004-orwell-canon-review.md" + ], + "railiance-fabric": [ + "/home/worsch/railiance-fabric/workplans/RAIL-FAB-WP-0028-hosted-financial-fabric-authority.md", + "/home/worsch/railiance-fabric/workplans/RAIL-FAB-WP-0029-coordination-graph-perspective.md" + ], + "railiance-infra": [ + "/home/worsch/railiance-infra/workplans/RAIL-HO-WP-0013-host-utc-timesyncd.md", + "/home/worsch/railiance-infra/workplans/RAIL-HO-WP-0011-reproducible-s1-declaration-and-handoff.md", + "/home/worsch/railiance-infra/workplans/RAIL-HO-WP-0012-s1-backup-recovery-loop.md" + ], + "hall-of-helix": [ + "/home/worsch/hall-of-helix/workplans/HOH-WP-0002-published-hall-and-renderers.md" + ], + "ops-mason": [ + "/home/worsch/ops-mason/workplans/MASON-WP-0004-credential-inventory-descriptions.md", + "/home/worsch/ops-mason/workplans/MASON-WP-0005-fluid-telegram-operator-credential-lane.md" + ], + "railiance-platform": [ + "/home/worsch/railiance-platform/workplans/RPF-WP-0035-credential-lane-implementation.md", + "/home/worsch/railiance-platform/workplans/RPF-WP-0025-openbao-operator-only-access.md", + "/home/worsch/railiance-platform/workplans/RPF-WP-0027-keycape-live-secret-exposure-recovery.md", + "/home/worsch/railiance-platform/workplans/RPF-WP-0036-platform-service-assurance.md", + "/home/worsch/railiance-platform/workplans/RPF-WP-0015-audit-core-custody-and-recovery-coordination.md", + "/home/worsch/railiance-platform/workplans/RPF-WP-0038-forgejo-scaleway-primary-coverage.md", + "/home/worsch/railiance-platform/workplans/RPF-WP-0029-backup-credential-default-removal.md" + ], + "railiance-cluster": [ + "/home/worsch/railiance-cluster/workplans/RCLUSTER-WP-0007-threephoenix-ha-cluster.md" + ], + "rein-aharness": [ + "/home/worsch/rein-aharness/workplans/REINAH-WP-0003-governed-runtime-integrity.md" + ], + "secrets-engine": [ + "/home/worsch/secrets-engine/workplans/SECRETS-WP-0010-openrouter-native-access.md", + "/home/worsch/secrets-engine/workplans/SECRETS-WP-0006-catalog-lane-adoption.md", + "/home/worsch/secrets-engine/workplans/SECRETS-WP-0008-layer-model-lifecycle-conformance.md", + "/home/worsch/secrets-engine/workplans/SECRETS-WP-0007-production-lifecycle-hardening.md", + "/home/worsch/secrets-engine/workplans/SECRETS-WP-0009-glas-claude-native-delivery.md" + ], + "approval-engine": [ + "/home/worsch/approval-engine/workplans/APPROVAL-WP-0002-production-readiness-and-consumer-adoption.md" + ], + "freedom-intelligence": [ + "/home/worsch/freedom-intelligence/workplans/FI-WP-0004-operational-loop-and-scaleway-reserve.md" + ], + "activity-core": [ + "/home/worsch/activity-core/workplans/ACTIVITY-WP-0035-intent-boundary-guardrails.md", + "/home/worsch/activity-core/workplans/ACTIVITY-WP-0036-queue-identity-and-lease-integrity.md", + "/home/worsch/activity-core/workplans/ACTIVITY-WP-0032-glas-profile-execution-contract.md" + ], + "user-engine": [ + "/home/worsch/user-engine/workplans/USER-WP-0026-account-recovery.md", + "/home/worsch/user-engine/workplans/USER-WP-0025-operator-navigation-and-logout.md", + "/home/worsch/user-engine/workplans/USER-WP-0027-account-journey-clarity.md", + "/home/worsch/user-engine/workplans/USER-WP-0028-user-journey-acceptance.md" + ], + "key-cape": [ + "/home/worsch/key-cape/workplans/KEY-WP-0013-approval-engine-resource-audience.md", + "/home/worsch/key-cape/workplans/KEY-WP-0033-vergabe-fresh-login.md", + "/home/worsch/key-cape/workplans/KEY-WP-0034-account-recovery.md" + ], + "rapp-user-engine": [ + "/home/worsch/rapp-user-engine/workplans/RAPP-USER-ENGINE-WP-0002-canonical-users-hostname.md" + ], + "vergabe-teilnahme": [ + "/home/worsch/vergabe-teilnahme/workplans/VERGABE-WP-0018-customer-factory-delivery.md", + "/home/worsch/vergabe-teilnahme/workplans/VERGABE-WP-0019-invited-company-pilot.md" + ], + "railiance-apps": [ + "/home/worsch/railiance-apps/workplans/RAPPS-WP-0014-vergabe-invited-pilot.md" + ], + "prj-helixforge-factory": [ + "/home/worsch/prj-helixforge-factory/workplans/HFACT-WP-0001-establish-internal-factory.md" + ], + "audit-core": [ + "/home/worsch/audit-core/workplans/AUDIT-WP-0010-tenant-engine-sender-admission.md", + "/home/worsch/audit-core/workplans/AUDIT-WP-0008-tenancy-posture-alignment.md", + "/home/worsch/audit-core/workplans/AUDIT-WP-0009-evidence-role-conformance.md" + ], + "tenant-engine": [ + "/home/worsch/tenant-engine/workplans/TEN-WP-0012-external-conformance-waits.md" + ], + "sand-boxer": [ + "/home/worsch/sand-boxer/workplans/SAND-WP-0015-bwrap-runtime-and-private-state.md", + "/home/worsch/sand-boxer/workplans/SAND-WP-0014-owner-mediated-execution.md" + ], + "info-tech-canon": [ + "/home/worsch/info-tech-canon/workplans/INFO-WP-0019-conformance-and-maintenance.md" + ], + "llm-connect": [ + "/home/worsch/llm-connect/workplans/LLM-WP-0009-owner-metered-messages-transport.md" + ], + "glas-harness": [ + "/home/worsch/glas-harness/workplans/GLAS-WP-0012-first-local-profile-production-proof.md", + "/home/worsch/glas-harness/workplans/GLAS-WP-0015-production-dependency-coordination.md" + ], + "rapp-postgres": [ + "/home/worsch/rapp-postgres/workplans/RAPP-POSTGRES-WP-0006-canned-prompts-admission.md" + ], + "rapp-telemetry": [ + "/home/worsch/rapp-telemetry/workplans/RAPP-TELEMETRY-WP-0001-foundation.md" + ], + "railiance-telemetry": [ + "/home/worsch/railiance-telemetry/workplans/RTEL-WP-0002-signal-contract.md" + ], + "reuse-surface": [ + "/home/worsch/reuse-surface/workplans/REUSE-WP-0021-commerce-canon-source-rename.md" + ], + "pqrst-practice": [ + "/home/worsch/pqrst-practice/workplans/PQRST-WP-0002-validate-v01-against-real-sessions.md" + ], + "rapp-core-hub": [ + "/home/worsch/rapp-core-hub/workplans/RAPPCOREHUB-WP-0003-forgejo-repository-publisher.md", + "/home/worsch/rapp-core-hub/workplans/RAPPCOREHUB-WP-0002-hub-core-candidate-and-cutover.md" + ], + "hub-core": [ + "/home/worsch/hub-core/workplans/HUB-WP-0011-statehub-inbox-freshness-and-cutover.md", + "/home/worsch/hub-core/workplans/HUB-WP-0009-extension-conformance-gaps.md", + "/home/worsch/hub-core/workplans/HUB-WP-0006-repository-classification-navigation.md" + ], + "rapp-qonto": [ + "/home/worsch/rapp-qonto/workplans/RAPP-QONTO-WP-0002-resource-usage-and-cost-evidence.md" + ], + "whitehat-security": [ + "/home/worsch/whitehat-security/workplans/WHITEHAT-WP-0006-authorized-live-residuals.md", + "/home/worsch/whitehat-security/workplans/WHITEHAT-WP-0008-live-asm-residuals.md" + ], + "fin-hub": [ + "/home/worsch/fin-hub/workplans/FIN-WP-0005-datev-accounting-adapter-operations.md", + "/home/worsch/fin-hub/workplans/FIN-WP-0006-internal-transfer-settlement.md", + "/home/worsch/fin-hub/workplans/FIN-WP-0004-resource-cost-evidence-contract.md" + ], + "soul-frame": [ + "/home/worsch/soul-frame/workplans/SOUL-WP-0008-phase-vii-paper.md" + ], + "railiance-master": [ + "/home/worsch/railiance-master/workplans/RMASTER-WP-0020-openbao-migration-to-reef-railiance.md" + ], + "prj-unattended-progress-company": [ + "/home/worsch/prj-unattended-progress-company/workplans/UPC-WP-0004-first-offer-and-revenue.md", + "/home/worsch/prj-unattended-progress-company/workplans/UPC-WP-0003-unattended-and-load.md", + "/home/worsch/prj-unattended-progress-company/workplans/UPC-WP-0002-company-vessel-closeout.md" + ], + "prj-forgejo-org-refactor": [ + "/home/worsch/prj-forgejo-org-refactor/workplans/ORGREF-WP-0001-foundation-and-entry-gate.md" + ], + "reef-railiance": [ + "/home/worsch/reef-railiance/workplans/REEF-RAILIANCE-WP-0003-rapp-qonto-production-gates.md" + ], + "rapp-openbao": [ + "/home/worsch/rapp-openbao/workplans/RAPP-OPENBAO-WP-0002-operator-only-ui-exposure.md" + ], + "core-hub": [ + "/home/worsch/core-hub/workplans/CORE-WP-0010-runtime-absorption-and-archive.md" + ], + "adaptive-pricing": [ + "/home/worsch/adaptive-pricing/workplans/ADAPTIVE-WP-0010-plan-derived-guardrail-ceilings.md" + ], + "rapp-tenant-engine": [ + "/home/worsch/rapp-tenant-engine/workplans/RAPP-TENANT-ENGINE-WP-0001-bootstrap.md" + ], + "test-driver": [ + "/home/worsch/test-driver/workplans/TD-WP-0003-generalise-and-settle.md" + ], + "reef-storage": [ + "/home/worsch/reef-storage/workplans/REEF-STORAGE-WP-0002-fill-after-purchase.md" + ], + "markitect-main": [ + "/home/worsch/markitect-main/workplans/MARKITECT-WP-0002-testdrive-jsui-publication.md" + ] +} diff --git a/docs/evidence/2026-09-14-flavor-backfill/coverage.csv b/docs/evidence/2026-09-14-flavor-backfill/coverage.csv new file mode 100644 index 0000000..1300230 --- /dev/null +++ b/docs/evidence/2026-09-14-flavor-backfill/coverage.csv @@ -0,0 +1,117 @@ +repo,id,hub_status,flavor,flavor_reason,depends_on,origin,origin_ref,changed +net-kingdom,NK-WP-0033,active,implementation,default,none,routed,State Hub message 8cc44a39-683c-4fab-80dd-b2275d0728e0,yes +flex-auth,FLEX-WP-0022,proposed,planning,proposed,FLEX-WP-0021,,,yes +ops-warden,WARDEN-WP-0040,proposed,planning,proposed,"WARDEN-WP-0032,WARDEN-WP-0034",,,yes +ops-warden,WARDEN-WP-0034,active,implementation,default,WARDEN-WP-0030,,,yes +net-kingdom,NK-WP-0035,blocked,implementation,default,none,,,yes +net-kingdom,NK-WP-0027,blocked,planning,keyword,none,,,yes +net-kingdom,NK-WP-0031,blocked,implementation,default,none,,,yes +fluid-telegram,FT-WP-0001,active,implementation,default,FLUID-WP-0008,,,yes +fluid-core,FLUID-WP-0008,active,implementation,default,FLUID-WP-0007,,,yes +net-kingdom,NK-WP-0009,backlog,implementation,default,NK-WP-0008,,,yes +fluid-core,FLUID-WP-0009,active,implementation,default,FLUID-WP-0008,,,yes +ops-warden,WARDEN-WP-0027,active,implementation,default,none,,,yes +intelligence-radar,IR-WP-0004,active,implementation,default,none,,,yes +state-hub,STATE-WP-0079,blocked,refactoring,keyword,none,,,yes +state-hub,CUST-WP-0038,backlog,implementation,default,CUST-WP-0011,,,yes +the-custodian,CUST-WP-0072,proposed,planning,already-set,STATE-WP-0092,residual-policy,the-custodian/history/20260914-open-workplan-chokepoints.md,no +the-custodian,CUST-WP-0071,active,planning,keyword,none,,,yes +railiance-clock,RCLK-WP-0003,proposed,implementation,proposed-implement,RCLK-WP-0002,,,yes +railiance-clock,RCLK-WP-0002,active,planning,keyword,RCLK-WP-0001,,,yes +railiance-clock,RCLK-WP-0005,active,implementation,default,none,,,yes +railiance-clock,RCLK-WP-0004,proposed,implementation,proposed-implement,"RCLK-WP-0003,RCLK-WP-0005",,,yes +informed-decision,INFD-WP-0002,proposed,planning,already-set,INFD-WP-0001,demand,the-custodian/history/20260914-open-workplan-chokepoints.md,no +informed-decision,INFD-WP-0001,active,planning,keyword,none,founding,history/20260909-initial-exploration/InitialExploration.md,yes +coordination-engine,COORDINATION-WP-0005,proposed,extension,already-set,none,residual-policy,the-custodian/history/20260914-open-workplan-chokepoints.md,no +coordination-engine,COORDINATION-WP-0004,active,planning,keyword,none,,,yes +railiance-fabric,RAIL-FAB-WP-0030,proposed,extension,already-set,"STATE-WP-0092,RAIL-FAB-WP-0029",residual-policy,the-custodian/history/20260914-open-workplan-chokepoints.md,no +railiance-fabric,RAIL-FAB-WP-0028,proposed,residual,prose,none,residual,STATE-WP-0079,yes +railiance-fabric,RAIL-FAB-WP-0029,proposed,planning,proposed,none,,,yes +railiance-infra,RAIL-HO-WP-0013,proposed,residual,origin,none,residual,RCLK-WP-0005,yes +railiance-infra,RAIL-HO-WP-0011,active,implementation,default,none,,,yes +railiance-infra,RAIL-HO-WP-0012,active,implementation,default,none,,,yes +hall-of-helix,HOH-WP-0002,active,implementation,default,none,,,yes +ops-mason,MASON-WP-0004,proposed,planning,proposed,none,,,yes +ops-mason,MASON-WP-0005,proposed,planning,proposed,none,,,yes +railiance-platform,RPF-WP-0035,blocked,implementation,default,none,,,yes +railiance-platform,RPF-WP-0025,blocked,implementation,default,none,,,yes +railiance-platform,RPF-WP-0027,blocked,implementation,default,none,routed,"State Hub messages e88abb61-e393-4a82-817c-5ac378a2ee3d, acf98be3-ff6b-4270-bd21-0193bebd806b, aeb216b5-9f1b-404b-a483-fb08a00a49b1, and 71b1008a-7fd7-4500-85c6-e8893a6d80d4",yes +railiance-platform,RPF-WP-0036,blocked,implementation,default,none,,,yes +railiance-platform,RPF-WP-0015,blocked,implementation,default,none,routed,State Hub messages 10f80080-4c83-42ba-8590-f23c582d9f05 and a93fa88f-a9c5-4539-93ae-0c8f8490f53d,yes +railiance-platform,RPF-WP-0038,active,implementation,default,none,,,yes +railiance-platform,RPF-WP-0029,blocked,implementation,default,none,,,yes +railiance-cluster,RCLUSTER-WP-0007,blocked,implementation,default,none,,,yes +flex-auth,FLEX-WP-0027,active,implementation,default,none,,,yes +flex-auth,FLEX-WP-0020,proposed,planning,proposed,none,,,yes +ops-warden,WARDEN-WP-0037,active,planning,keyword,none,,,yes +ops-warden,WARDEN-WP-0039,blocked,residual,origin,none,residual,HFACT-WP-0001,yes +net-kingdom,NK-WP-0032,blocked,implementation,default,none,routed,State Hub message 5e56b413-d8ec-4718-b432-2debc40498ca,yes +net-kingdom,NK-WP-0037,active,implementation,default,none,,,yes +net-kingdom,NK-WP-0022,blocked,implementation,default,"USER-WP-0020,NK-WP-0023,KEY-WP-0004",,,yes +net-kingdom,NK-WP-0011,backlog,implementation,default,"NK-WP-0003,NK-WP-0004,NK-WP-0006",,,yes +net-kingdom,NK-WP-0034,blocked,implementation,default,none,,,yes +net-kingdom,NK-WP-0036,active,implementation,default,none,,,yes +rein-aharness,REINAH-WP-0003,active,implementation,default,none,,,yes +secrets-engine,SECRETS-WP-0010,active,implementation,default,none,,,yes +secrets-engine,SECRETS-WP-0006,active,implementation,default,none,,,yes +secrets-engine,SECRETS-WP-0008,active,implementation,default,none,,,yes +secrets-engine,SECRETS-WP-0007,active,implementation,default,none,,,yes +secrets-engine,SECRETS-WP-0009,blocked,implementation,default,none,,,yes +fluid-telegram,FT-WP-0002,active,implementation,default,FT-WP-0001,,,yes +approval-engine,APPROVAL-WP-0002,active,residual,origin,none,residual,APPROVAL-WP-0001,yes +freedom-intelligence,FI-WP-0004,active,implementation,default,"FI-WP-0001,FI-WP-0002,FI-WP-0003",,,yes +activity-core,ACTIVITY-WP-0035,active,planning,keyword,none,,,yes +activity-core,ACTIVITY-WP-0036,active,implementation,default,none,,,yes +activity-core,ACTIVITY-WP-0032,active,implementation,default,none,,,yes +user-engine,USER-WP-0026,active,implementation,default,none,,,yes +user-engine,USER-WP-0025,active,implementation,default,none,,,yes +user-engine,USER-WP-0027,active,implementation,default,none,,,yes +user-engine,USER-WP-0028,active,implementation,default,none,,,yes +key-cape,KEY-WP-0013,blocked,implementation,default,none,,,yes +key-cape,KEY-WP-0033,active,implementation,default,none,,,yes +key-cape,KEY-WP-0034,active,implementation,default,none,,,yes +rapp-user-engine,RAPP-USER-ENGINE-WP-0002,active,implementation,default,none,,,yes +vergabe-teilnahme,VERGABE-WP-0018,blocked,implementation,default,none,,,yes +vergabe-teilnahme,VERGABE-WP-0019,active,implementation,default,none,,,yes +railiance-apps,RAPPS-WP-0014,active,implementation,default,none,,,yes +prj-helixforge-factory,HFACT-WP-0001,active,implementation,default,none,,,yes +audit-core,AUDIT-WP-0010,active,implementation,default,AUDIT-WP-0005,,,yes +audit-core,AUDIT-WP-0008,active,implementation,default,AUDIT-WP-0007,,,yes +audit-core,AUDIT-WP-0009,active,implementation,default,AUDIT-WP-0007,,,yes +tenant-engine,TEN-WP-0012,blocked,residual,origin,TEN-WP-0011,residual,TEN-WP-0011,yes +sand-boxer,SAND-WP-0015,blocked,implementation,default,none,,,yes +sand-boxer,SAND-WP-0014,active,implementation,default,none,,,yes +info-tech-canon,INFO-WP-0019,blocked,implementation,default,none,,,yes +llm-connect,LLM-WP-0009,active,implementation,default,none,,,yes +glas-harness,GLAS-WP-0012,blocked,implementation,default,none,,,yes +glas-harness,GLAS-WP-0015,active,implementation,default,none,,,yes +rapp-postgres,RAPP-POSTGRES-WP-0006,active,implementation,default,none,,,yes +rapp-telemetry,RAPP-TELEMETRY-WP-0001,active,implementation,default,none,,,yes +railiance-telemetry,RTEL-WP-0002,active,implementation,default,none,,,yes +reuse-surface,REUSE-WP-0021,active,residual,origin,none,residual,IDENTITY-WP-0004,yes +pqrst-practice,PQRST-WP-0002,proposed,planning,proposed,none,,,yes +rapp-core-hub,RAPPCOREHUB-WP-0003,active,implementation,default,none,,,yes +rapp-core-hub,RAPPCOREHUB-WP-0002,active,implementation,default,none,,,yes +hub-core,HUB-WP-0011,proposed,residual,origin,none,residual,HUB-WP-0010,yes +hub-core,HUB-WP-0009,proposed,residual,origin,none,residual,OPS-WP-0003,yes +hub-core,HUB-WP-0006,active,implementation,default,none,,,yes +rapp-qonto,RAPP-QONTO-WP-0002,ready,implementation,default,none,,,yes +whitehat-security,WHITEHAT-WP-0006,blocked,residual,prose,none,residual,WHITEHAT-WP-0001,yes +whitehat-security,WHITEHAT-WP-0008,blocked,residual,prose,none,residual,WHITEHAT-WP-0007,yes +fin-hub,FIN-WP-0005,active,implementation,default,none,,,yes +fin-hub,FIN-WP-0006,proposed,residual,origin,none,residual,RESOURCE-WP-0005,yes +fin-hub,FIN-WP-0004,active,implementation,default,none,,,yes +soul-frame,SOUL-WP-0008,ready,implementation,default,SOUL-WP-0007,,,yes +railiance-master,RMASTER-WP-0020,blocked,implementation,default,NK-WP-0022,,,yes +prj-unattended-progress-company,UPC-WP-0004,proposed,planning,proposed,none,,,yes +prj-unattended-progress-company,UPC-WP-0003,proposed,planning,proposed,none,,,yes +prj-unattended-progress-company,UPC-WP-0002,active,implementation,default,none,,,yes +prj-forgejo-org-refactor,ORGREF-WP-0001,backlog,implementation,default,none,,,yes +reef-railiance,REEF-RAILIANCE-WP-0003,blocked,implementation,default,none,,,yes +rapp-openbao,RAPP-OPENBAO-WP-0002,blocked,implementation,default,none,,,yes +core-hub,CORE-WP-0010,active,implementation,default,none,,,yes +adaptive-pricing,ADAPTIVE-WP-0010,proposed,planning,proposed,none,,,yes +rapp-tenant-engine,RAPP-TENANT-ENGINE-WP-0001,proposed,planning,proposed,none,,,yes +test-driver,TD-WP-0003,proposed,planning,proposed,none,,,yes +reef-storage,REEF-STORAGE-WP-0002,active,implementation,default,none,,,yes +markitect-main,MARKITECT-WP-0002,backlog,implementation,default,none,,,yes diff --git a/docs/evidence/2026-09-14-flavor-backfill/coverage.json b/docs/evidence/2026-09-14-flavor-backfill/coverage.json new file mode 100644 index 0000000..a54ed10 --- /dev/null +++ b/docs/evidence/2026-09-14-flavor-backfill/coverage.json @@ -0,0 +1,1755 @@ +{ + "stats": { + "changed": 112, + "unchanged": 4, + "flavor": { + "implementation": 81, + "planning": 21, + "refactoring": 1, + "extension": 2, + "residual": 11 + } + }, + "rows": [ + { + "repo": "net-kingdom", + "hub_slug": "nk-wp-0033", + "hub_status": "active", + "title": "Contain and rotate the exposed KeyCape credential bundle", + "file": "/home/worsch/net-kingdom/workplans/NK-WP-0033-keycape-secret-exposure-rotation.md", + "id": "NK-WP-0033", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "routed", + "origin_ref": "State Hub message 8cc44a39-683c-4fab-80dd-b2275d0728e0", + "changed": "yes", + "note": "" + }, + { + "repo": "flex-auth", + "hub_slug": "flex-wp-0022", + "hub_status": "proposed", + "title": "Tenant scoping is unstated in tenant-engine and untested in two more packages", + "file": "/home/worsch/flex-auth/workplans/FLEX-WP-0022-tenant-scope-coverage.md", + "id": "FLEX-WP-0022", + "flavor": "planning", + "flavor_reason": "proposed", + "depends_on": "FLEX-WP-0021", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "ops-warden", + "hub_slug": "warden-wp-0040", + "hub_status": "proposed", + "title": "Adopt unknown -> fail_closed behind signing-target classification coverage", + "file": "/home/worsch/ops-warden/workplans/WARDEN-WP-0040-unknown-zone-fail-closed-adoption.md", + "id": "WARDEN-WP-0040", + "flavor": "planning", + "flavor_reason": "proposed", + "depends_on": "WARDEN-WP-0032,WARDEN-WP-0034", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "ops-warden", + "hub_slug": "warden-wp-0034", + "hub_status": "active", + "title": "Layer model v0.7 conformance \u2014 state the deadline, bind the agent boundary, steward the estate's newest rule", + "file": "/home/worsch/ops-warden/workplans/WARDEN-WP-0034-layer-model-v07-conformance.md", + "id": "WARDEN-WP-0034", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "WARDEN-WP-0030", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "net-kingdom", + "hub_slug": "net-kingdom-nk-wp-0035", + "hub_status": "blocked", + "title": "Publish the NetKingdom emission-cadence security profile", + "file": "/home/worsch/net-kingdom/workplans/NK-WP-0035-emission-cadence-security-profile.md", + "id": "NK-WP-0035", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "net-kingdom", + "hub_slug": "nk-wp-0027", + "hub_status": "blocked", + "title": "Reconcile reef placement and security-zone canon dependencies", + "file": "/home/worsch/net-kingdom/workplans/NK-WP-0027-reef-placement-reconciliation.md", + "id": "NK-WP-0027", + "flavor": "planning", + "flavor_reason": "keyword", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "net-kingdom", + "hub_slug": "nk-wp-0031", + "hub_status": "blocked", + "title": "Implement deterministic posture and evidence feedback", + "file": "/home/worsch/net-kingdom/workplans/NK-WP-0031-deterministic-posture-feedback.md", + "id": "NK-WP-0031", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "fluid-telegram", + "hub_slug": "ft-wp-0001", + "hub_status": "active", + "title": "Establish HelixForge's Telegram identity and publish the Hall of Helix", + "file": "/home/worsch/fluid-telegram/workplans/FT-WP-0001-telegram-identity-and-hall-channel.md", + "id": "FT-WP-0001", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "FLUID-WP-0008", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "fluid-core", + "hub_slug": "fluid-wp-0008", + "hub_status": "active", + "title": "Handover: HelixForge Telegram identity and hall-of-helix channel", + "file": "/home/worsch/fluid-core/workplans/FLUID-WP-0008-fluid-telegram-handover.md", + "id": "FLUID-WP-0008", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "FLUID-WP-0007", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "net-kingdom", + "hub_slug": "nk-wp-0009", + "hub_status": "backlog", + "title": "NetKingdom Security Pattern Tutorials", + "file": "/home/worsch/net-kingdom/workplans/NK-WP-0009-netkingdom-security-pattern-tutorials.md", + "id": "NK-WP-0009", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "NK-WP-0008", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "fluid-core", + "hub_slug": "fluid-wp-0009", + "hub_status": "active", + "title": "Establish the pr- campaign repository pattern and reduce hall-of-helix to an example", + "file": "/home/worsch/fluid-core/workplans/FLUID-WP-0009-campaign-repos-and-example-separation.md", + "id": "FLUID-WP-0009", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "FLUID-WP-0008", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "ops-warden", + "hub_slug": "warden-wp-0027", + "hub_status": "active", + "title": "Tamper-resistant credential governance + mass rotation/lockdown (Strand B)", + "file": "/home/worsch/ops-warden/workplans/WARDEN-WP-0027-credential-governance-lockdown.md", + "id": "WARDEN-WP-0027", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "intelligence-radar", + "hub_slug": "ir-wp-0004", + "hub_status": "active", + "title": "Expand verified evidence and calibrate against field outcomes", + "file": "/home/worsch/intelligence-radar/workplans/IR-WP-0004-evidence-coverage-and-field-calibration.md", + "id": "IR-WP-0004", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "state-hub", + "hub_slug": "state-wp-0079", + "hub_status": "blocked", + "title": "State Hub retirement strangler and disposition execution", + "file": "/home/worsch/state-hub/workplans/STATE-WP-0079-retirement-strangler.md", + "id": "STATE-WP-0079", + "flavor": "refactoring", + "flavor_reason": "keyword", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "state-hub", + "hub_slug": "cust-wp-0038", + "hub_status": "backlog", + "title": "State Hub Full ThreePhoenix HA Migration", + "file": "/home/worsch/state-hub/workplans/CUST-WP-0038-state-hub-threephoenix-ha.md", + "id": "CUST-WP-0038", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "CUST-WP-0011", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "the-custodian", + "hub_slug": "cust-wp-0072", + "hub_status": "proposed", + "title": "Backfill workplan flavor and depends_on across the fleet", + "file": "/home/worsch/the-custodian/workplans/CUST-WP-0072-fleet-flavor-and-depends-on-backfill.md", + "id": "CUST-WP-0072", + "flavor": "planning", + "flavor_reason": "already-set", + "depends_on": "STATE-WP-0092", + "origin": "residual-policy", + "origin_ref": "the-custodian/history/20260914-open-workplan-chokepoints.md", + "changed": "no", + "note": "" + }, + { + "repo": "the-custodian", + "hub_slug": "cust-wp-0071", + "hub_status": "active", + "title": "Size Railiance workloads from actual demand and establish a weekly allocation review", + "file": "/home/worsch/the-custodian/workplans/CUST-WP-0071-measured-workload-sizing-and-weekly-review.md", + "id": "CUST-WP-0071", + "flavor": "planning", + "flavor_reason": "keyword", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-clock", + "hub_slug": "rclk-wp-0003", + "hub_status": "proposed", + "title": "Implement isolated authority and application clock", + "file": "/home/worsch/railiance-clock/workplans/RCLK-WP-0003-reference-implementation.md", + "id": "RCLK-WP-0003", + "flavor": "implementation", + "flavor_reason": "proposed-implement", + "depends_on": "RCLK-WP-0002", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-clock", + "hub_slug": "rclk-wp-0002", + "hub_status": "active", + "title": "Review time authority, trust and consumer contracts", + "file": "/home/worsch/railiance-clock/workplans/RCLK-WP-0002-contract-review.md", + "id": "RCLK-WP-0002", + "flavor": "planning", + "flavor_reason": "keyword", + "depends_on": "RCLK-WP-0001", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-clock", + "hub_slug": "rclk-wp-0005", + "hub_status": "active", + "title": "Deploy clock infrastructure through owner-managed infrastructure as code", + "file": "/home/worsch/railiance-clock/workplans/RCLK-WP-0005-infrastructure-as-code.md", + "id": "RCLK-WP-0005", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-clock", + "hub_slug": "rclk-wp-0004", + "hub_status": "proposed", + "title": "Admit railiance01 pilot and migrate one consumer", + "file": "/home/worsch/railiance-clock/workplans/RCLK-WP-0004-deployment-adoption.md", + "id": "RCLK-WP-0004", + "flavor": "implementation", + "flavor_reason": "proposed-implement", + "depends_on": "RCLK-WP-0003,RCLK-WP-0005", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "informed-decision", + "hub_slug": "infd-wp-0002", + "hub_status": "proposed", + "title": "Compact sign-off batches for credentials and decisions", + "file": "/home/worsch/informed-decision/workplans/INFD-WP-0002-compact-signoff-batches.md", + "id": "INFD-WP-0002", + "flavor": "planning", + "flavor_reason": "already-set", + "depends_on": "INFD-WP-0001", + "origin": "demand", + "origin_ref": "the-custodian/history/20260914-open-workplan-chokepoints.md", + "changed": "no", + "note": "" + }, + { + "repo": "informed-decision", + "hub_slug": "infd-wp-0001", + "hub_status": "active", + "title": "Founding specs and approver-UI ownership", + "file": "/home/worsch/informed-decision/workplans/INFD-WP-0001-founding-specs-and-approver-ui-ownership.md", + "id": "INFD-WP-0001", + "flavor": "planning", + "flavor_reason": "keyword", + "depends_on": "none", + "origin": "founding", + "origin_ref": "history/20260909-initial-exploration/InitialExploration.md", + "changed": "yes", + "note": "" + }, + { + "repo": "coordination-engine", + "hub_slug": "coordination-wp-0005", + "hub_status": "proposed", + "title": "prj- awareness, cross-owner waits, and agent coordination mode", + "file": "/home/worsch/coordination-engine/workplans/COORDINATION-WP-0005-prj-cross-repo-and-agent-mode.md", + "id": "COORDINATION-WP-0005", + "flavor": "extension", + "flavor_reason": "already-set", + "depends_on": "none", + "origin": "residual-policy", + "origin_ref": "the-custodian/history/20260914-open-workplan-chokepoints.md", + "changed": "no", + "note": "" + }, + { + "repo": "coordination-engine", + "hub_slug": "coordination-wp-0004", + "hub_status": "active", + "title": "OrwellLoggingDiagnostics canon review", + "file": "/home/worsch/coordination-engine/workplans/COORDINATION-WP-0004-orwell-canon-review.md", + "id": "COORDINATION-WP-0004", + "flavor": "planning", + "flavor_reason": "keyword", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-fabric", + "hub_slug": "rail-fab-wp-0030", + "hub_status": "proposed", + "title": "Coordination graph: flavor classes and real depends_on edges", + "file": "/home/worsch/railiance-fabric/workplans/RAIL-FAB-WP-0030-flavor-and-depends-on-graph.md", + "id": "RAIL-FAB-WP-0030", + "flavor": "extension", + "flavor_reason": "already-set", + "depends_on": "STATE-WP-0092,RAIL-FAB-WP-0029", + "origin": "residual-policy", + "origin_ref": "the-custodian/history/20260914-open-workplan-chokepoints.md", + "changed": "no", + "note": "" + }, + { + "repo": "railiance-fabric", + "hub_slug": "rail-fab-wp-0028", + "hub_status": "proposed", + "title": "Host and operate the financial Fabric authority", + "file": "/home/worsch/railiance-fabric/workplans/RAIL-FAB-WP-0028-hosted-financial-fabric-authority.md", + "id": "RAIL-FAB-WP-0028", + "flavor": "residual", + "flavor_reason": "prose", + "depends_on": "none", + "origin": "residual", + "origin_ref": "STATE-WP-0079", + "changed": "yes", + "note": "task_flavor=4" + }, + { + "repo": "railiance-fabric", + "hub_slug": "rail-fab-wp-0029", + "hub_status": "proposed", + "title": "Inspectable workplan and wait graph in the Fabric explorer", + "file": "/home/worsch/railiance-fabric/workplans/RAIL-FAB-WP-0029-coordination-graph-perspective.md", + "id": "RAIL-FAB-WP-0029", + "flavor": "planning", + "flavor_reason": "proposed", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-infra", + "hub_slug": "rail-ho-wp-0013", + "hub_status": "proposed", + "title": "Declare systemd-timesyncd as the S1 host UTC daemon", + "file": "/home/worsch/railiance-infra/workplans/RAIL-HO-WP-0013-host-utc-timesyncd.md", + "id": "RAIL-HO-WP-0013", + "flavor": "residual", + "flavor_reason": "origin", + "depends_on": "none", + "origin": "residual", + "origin_ref": "RCLK-WP-0005", + "changed": "yes", + "note": "task_flavor=1" + }, + { + "repo": "railiance-infra", + "hub_slug": "rail-ho-wp-0011", + "hub_status": "active", + "title": "Make the S1 declaration reproducible and the handoff verifiably green", + "file": "/home/worsch/railiance-infra/workplans/RAIL-HO-WP-0011-reproducible-s1-declaration-and-handoff.md", + "id": "RAIL-HO-WP-0011", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-infra", + "hub_slug": "rail-ho-wp-0012", + "hub_status": "active", + "title": "Close the encrypted S1 backup and recovery loop", + "file": "/home/worsch/railiance-infra/workplans/RAIL-HO-WP-0012-s1-backup-recovery-loop.md", + "id": "RAIL-HO-WP-0012", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "hall-of-helix", + "hub_slug": "hoh-wp-0002", + "hub_status": "active", + "title": "Publish the hall at helix.coulomb.social with selectable renderers", + "file": "/home/worsch/hall-of-helix/workplans/HOH-WP-0002-published-hall-and-renderers.md", + "id": "HOH-WP-0002", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "ops-mason", + "hub_slug": "mason-wp-0004", + "hub_status": "proposed", + "title": "Describe every stored credential so the store is navigable", + "file": "/home/worsch/ops-mason/workplans/MASON-WP-0004-credential-inventory-descriptions.md", + "id": "MASON-WP-0004", + "flavor": "planning", + "flavor_reason": "proposed", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "ops-mason", + "hub_slug": "mason-wp-0005", + "hub_status": "proposed", + "title": "Construct the fluid-telegram operator credential lane", + "file": "/home/worsch/ops-mason/workplans/MASON-WP-0005-fluid-telegram-operator-credential-lane.md", + "id": "MASON-WP-0005", + "flavor": "planning", + "flavor_reason": "proposed", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-platform", + "hub_slug": "rpf-wp-0035", + "hub_status": "blocked", + "title": "Implement reviewed credential lanes with separate owner gates", + "file": "/home/worsch/railiance-platform/workplans/RPF-WP-0035-credential-lane-implementation.md", + "id": "RPF-WP-0035", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-platform", + "hub_slug": "rpf-wp-0025", + "hub_status": "blocked", + "title": "Retract public OpenBao listener behind operator-only access", + "file": "/home/worsch/railiance-platform/workplans/RPF-WP-0025-openbao-operator-only-access.md", + "id": "RPF-WP-0025", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-platform", + "hub_slug": "rpf-wp-0027", + "hub_status": "blocked", + "title": "Coordinate KeyCape live Secret exposure recovery", + "file": "/home/worsch/railiance-platform/workplans/RPF-WP-0027-keycape-live-secret-exposure-recovery.md", + "id": "RPF-WP-0027", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "routed", + "origin_ref": "State Hub messages e88abb61-e393-4a82-817c-5ac378a2ee3d, acf98be3-ff6b-4270-bd21-0193bebd806b, aeb216b5-9f1b-404b-a483-fb08a00a49b1, and 71b1008a-7fd7-4500-85c6-e8893a6d80d4", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-platform", + "hub_slug": "rpf-wp-0036", + "hub_status": "blocked", + "title": "Close S3 service assurance and ownership gaps", + "file": "/home/worsch/railiance-platform/workplans/RPF-WP-0036-platform-service-assurance.md", + "id": "RPF-WP-0036", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-platform", + "hub_slug": "rpf-wp-0015", + "hub_status": "blocked", + "title": "Coordinate audit-core temporary custody and recovery exercises", + "file": "/home/worsch/railiance-platform/workplans/RPF-WP-0015-audit-core-custody-and-recovery-coordination.md", + "id": "RPF-WP-0015", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "routed", + "origin_ref": "State Hub messages 10f80080-4c83-42ba-8590-f23c582d9f05 and a93fa88f-a9c5-4539-93ae-0c8f8490f53d", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-platform", + "hub_slug": "rpf-wp-0038", + "hub_status": "active", + "title": "Close Forgejo primary backup coverage on Scaleway", + "file": "/home/worsch/railiance-platform/workplans/RPF-WP-0038-forgejo-scaleway-primary-coverage.md", + "id": "RPF-WP-0038", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-platform", + "hub_slug": "rpf-wp-0029", + "hub_status": "blocked", + "title": "Remove backup credential default and verify governed replacement", + "file": "/home/worsch/railiance-platform/workplans/RPF-WP-0029-backup-credential-default-removal.md", + "id": "RPF-WP-0029", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-cluster", + "hub_slug": "three-phoenix-ha-cluster", + "hub_status": "blocked", + "title": "ThreePhoenix - HA Cluster Implementation", + "file": "/home/worsch/railiance-cluster/workplans/RCLUSTER-WP-0007-threephoenix-ha-cluster.md", + "id": "RCLUSTER-WP-0007", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "flex-auth", + "hub_slug": "flex-wp-0027", + "hub_status": "active", + "title": "Admit scoped human review for the three T03 actions", + "file": "/home/worsch/flex-auth/workplans/FLEX-WP-0027-t03-human-review.md", + "id": "FLEX-WP-0027", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "flex-auth", + "hub_slug": "flex-wp-0020", + "hub_status": "proposed", + "title": "Repository identity migration from flex-auth to access-engine", + "file": "/home/worsch/flex-auth/workplans/FLEX-WP-0020-repository-identity-migration.md", + "id": "FLEX-WP-0020", + "flavor": "planning", + "flavor_reason": "proposed", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "ops-warden", + "hub_slug": "warden-wp-0037", + "hub_status": "active", + "title": "Repoint the whynot-design npm lane to Forgejo", + "file": "/home/worsch/ops-warden/workplans/WARDEN-WP-0037-whynot-design-forgejo-npm-lane.md", + "id": "WARDEN-WP-0037", + "flavor": "planning", + "flavor_reason": "keyword", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "ops-warden", + "hub_slug": "warden-wp-0039", + "hub_status": "blocked", + "title": "Preserve explicit policy caller refusals before credential and CA effects", + "file": "/home/worsch/ops-warden/workplans/WARDEN-WP-0039-explicit-policy-refusal.md", + "id": "WARDEN-WP-0039", + "flavor": "residual", + "flavor_reason": "origin", + "depends_on": "none", + "origin": "residual", + "origin_ref": "HFACT-WP-0001", + "changed": "yes", + "note": "task_flavor=3" + }, + { + "repo": "net-kingdom", + "hub_slug": "nk-wp-0032", + "hub_status": "blocked", + "title": "Admit the operator-tunneled OpenBao browser callback", + "file": "/home/worsch/net-kingdom/workplans/NK-WP-0032-openbao-operator-loopback-callback.md", + "id": "NK-WP-0032", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "routed", + "origin_ref": "State Hub message 5e56b413-d8ec-4718-b432-2debc40498ca", + "changed": "yes", + "note": "" + }, + { + "repo": "net-kingdom", + "hub_slug": "nk-wp-0037", + "hub_status": "active", + "title": "Bind password setup to the Vergabe company welcome and sign-in", + "file": "/home/worsch/net-kingdom/workplans/NK-WP-0037-vergabe-company-welcome.md", + "id": "NK-WP-0037", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "net-kingdom", + "hub_slug": "nk-wp-0022", + "hub_status": "blocked", + "title": "Cut over NetKingdom identity to railiance01 and retire CoulombCore", + "file": "/home/worsch/net-kingdom/workplans/NK-WP-0022-railiance01-identity-cutover-and-coulombcore-retirement.md", + "id": "NK-WP-0022", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "USER-WP-0020,NK-WP-0023,KEY-WP-0004", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "net-kingdom", + "hub_slug": "nk-wp-0011", + "hub_status": "backlog", + "title": "Enterprise Federation & SAML \u2014 Expanded-Mode Keycloak Identity Broker", + "file": "/home/worsch/net-kingdom/workplans/NK-WP-0011-enterprise-federation-saml.md", + "id": "NK-WP-0011", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "NK-WP-0003,NK-WP-0004,NK-WP-0006", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "net-kingdom", + "hub_slug": "nk-wp-0034", + "hub_status": "blocked", + "title": "Make the SSO/MFA verification actually verify", + "file": "/home/worsch/net-kingdom/workplans/NK-WP-0034-verification-that-verifies.md", + "id": "NK-WP-0034", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "net-kingdom", + "hub_slug": "nk-wp-0036", + "hub_status": "active", + "title": "Restore native portal login and tenant-onboarding integration", + "file": "/home/worsch/net-kingdom/workplans/NK-WP-0036-restore-user-portal-client-registration.md", + "id": "NK-WP-0036", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "rein-aharness", + "hub_slug": "reinah-wp-0003", + "hub_status": "active", + "title": "Governed runtime integrity and intent convergence", + "file": "/home/worsch/rein-aharness/workplans/REINAH-WP-0003-governed-runtime-integrity.md", + "id": "REINAH-WP-0003", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "secrets-engine", + "hub_slug": "secrets-wp-0010", + "hub_status": "active", + "title": "Native OpenRouter access for intelligence-radar", + "file": "/home/worsch/secrets-engine/workplans/SECRETS-WP-0010-openrouter-native-access.md", + "id": "SECRETS-WP-0010", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "secrets-engine", + "hub_slug": "secrets-wp-0006", + "hub_status": "active", + "title": "Adopt concrete OpenBao credential lanes from ops-warden", + "file": "/home/worsch/secrets-engine/workplans/SECRETS-WP-0006-catalog-lane-adoption.md", + "id": "SECRETS-WP-0006", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "secrets-engine", + "hub_slug": "secrets-wp-0008", + "hub_status": "active", + "title": "Evolve the Lifecycle engine to the accepted security layer model", + "file": "/home/worsch/secrets-engine/workplans/SECRETS-WP-0008-layer-model-lifecycle-conformance.md", + "id": "SECRETS-WP-0008", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "secrets-engine", + "hub_slug": "secrets-wp-0007", + "hub_status": "active", + "title": "Production-safe provisioning, authorization, and lifecycle hardening", + "file": "/home/worsch/secrets-engine/workplans/SECRETS-WP-0007-production-lifecycle-hardening.md", + "id": "SECRETS-WP-0007", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "secrets-engine", + "hub_slug": "secrets-wp-0009", + "hub_status": "blocked", + "title": "Activate native Claude credential delivery for Glas", + "file": "/home/worsch/secrets-engine/workplans/SECRETS-WP-0009-glas-claude-native-delivery.md", + "id": "SECRETS-WP-0009", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "fluid-telegram", + "hub_slug": "ft-wp-0002", + "hub_status": "active", + "title": "Provision the Telegram presence from a declared specification", + "file": "/home/worsch/fluid-telegram/workplans/FT-WP-0002-declared-presence-provisioning.md", + "id": "FT-WP-0002", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "FT-WP-0001", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "approval-engine", + "hub_slug": "approval-wp-0002", + "hub_status": "active", + "title": "Production readiness and consumer adoption", + "file": "/home/worsch/approval-engine/workplans/APPROVAL-WP-0002-production-readiness-and-consumer-adoption.md", + "id": "APPROVAL-WP-0002", + "flavor": "residual", + "flavor_reason": "origin", + "depends_on": "none", + "origin": "residual", + "origin_ref": "APPROVAL-WP-0001", + "changed": "yes", + "note": "task_flavor=6" + }, + { + "repo": "freedom-intelligence", + "hub_slug": "fi-wp-0004", + "hub_status": "active", + "title": "Make the sensing loop durable and move the reserve to Scaleway", + "file": "/home/worsch/freedom-intelligence/workplans/FI-WP-0004-operational-loop-and-scaleway-reserve.md", + "id": "FI-WP-0004", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "FI-WP-0001,FI-WP-0002,FI-WP-0003", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "activity-core", + "hub_slug": "activity-wp-0035", + "hub_status": "active", + "title": "Make the execution boundary enforceable and the review contract truthful", + "file": "/home/worsch/activity-core/workplans/ACTIVITY-WP-0035-intent-boundary-guardrails.md", + "id": "ACTIVITY-WP-0035", + "flavor": "planning", + "flavor_reason": "keyword", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "activity-core", + "hub_slug": "activity-wp-0036", + "hub_status": "active", + "title": "Bind queue mutations to worker identity and active leases", + "file": "/home/worsch/activity-core/workplans/ACTIVITY-WP-0036-queue-identity-and-lease-integrity.md", + "id": "ACTIVITY-WP-0036", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "activity-core", + "hub_slug": "activity-wp-0032", + "hub_status": "active", + "title": "Adopt the Glas profile-driven execution contract", + "file": "/home/worsch/activity-core/workplans/ACTIVITY-WP-0032-glas-profile-execution-contract.md", + "id": "ACTIVITY-WP-0032", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "user-engine", + "hub_slug": "user-wp-0026", + "hub_status": "active", + "title": "Account recovery and visible identity and access", + "file": "/home/worsch/user-engine/workplans/USER-WP-0026-account-recovery.md", + "id": "USER-WP-0026", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "user-engine", + "hub_slug": "user-wp-0025", + "hub_status": "active", + "title": "Make operator navigation and portal logout usable during demo onboarding", + "file": "/home/worsch/user-engine/workplans/USER-WP-0025-operator-navigation-and-logout.md", + "id": "USER-WP-0025", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "user-engine", + "hub_slug": "user-wp-0027", + "hub_status": "active", + "title": "Clear account state and complete user, tenant-admin and platform-admin journeys", + "file": "/home/worsch/user-engine/workplans/USER-WP-0027-account-journey-clarity.md", + "id": "USER-WP-0027", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "user-engine", + "hub_slug": "user-wp-0028", + "hub_status": "active", + "title": "User account journeys and recovery", + "file": "/home/worsch/user-engine/workplans/USER-WP-0028-user-journey-acceptance.md", + "id": "USER-WP-0028", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "key-cape", + "hub_slug": "key-wp-0013", + "hub_status": "blocked", + "title": "Approval-engine resource audience and client registrations", + "file": "/home/worsch/key-cape/workplans/KEY-WP-0013-approval-engine-resource-audience.md", + "id": "KEY-WP-0013", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "key-cape", + "hub_slug": "key-wp-0033", + "hub_status": "active", + "title": "Preserve fresh-user authentication for the Vergabe company handoff", + "file": "/home/worsch/key-cape/workplans/KEY-WP-0033-vergabe-fresh-login.md", + "id": "KEY-WP-0033", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "key-cape", + "hub_slug": "key-wp-0034", + "hub_status": "active", + "title": "Browser authentication recovery and confirmed shared sign-out", + "file": "/home/worsch/key-cape/workplans/KEY-WP-0034-account-recovery.md", + "id": "KEY-WP-0034", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "rapp-user-engine", + "hub_slug": "rapp-user-engine-wp-0002", + "hub_status": "active", + "title": "Move the native portal to users.coulomb.social", + "file": "/home/worsch/rapp-user-engine/workplans/RAPP-USER-ENGINE-WP-0002-canonical-users-hostname.md", + "id": "RAPP-USER-ENGINE-WP-0002", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "vergabe-teilnahme", + "hub_slug": "vergabe-wp-0018", + "hub_status": "blocked", + "title": "Establish verified delivery for the primary customer tender product", + "file": "/home/worsch/vergabe-teilnahme/workplans/VERGABE-WP-0018-customer-factory-delivery.md", + "id": "VERGABE-WP-0018", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "vergabe-teilnahme", + "hub_slug": "vergabe-wp-0019", + "hub_status": "active", + "title": "Admit the first invited company pilot with protected access and recoverable data", + "file": "/home/worsch/vergabe-teilnahme/workplans/VERGABE-WP-0019-invited-company-pilot.md", + "id": "VERGABE-WP-0019", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-apps", + "hub_slug": "rapps-wp-0014", + "hub_status": "active", + "title": "Deploy and recover the first invited Vergabe company pilot", + "file": "/home/worsch/railiance-apps/workplans/RAPPS-WP-0014-vergabe-invited-pilot.md", + "id": "RAPPS-WP-0014", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "prj-helixforge-factory", + "hub_slug": "hfact-wp-0001", + "hub_status": "active", + "title": "Establish the internal HelixForge software factory on Railiance", + "file": "/home/worsch/prj-helixforge-factory/workplans/HFACT-WP-0001-establish-internal-factory.md", + "id": "HFACT-WP-0001", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "audit-core", + "hub_slug": "audit-wp-0010", + "hub_status": "active", + "title": "Admit tenant-engine as an attributive sender", + "file": "/home/worsch/audit-core/workplans/AUDIT-WP-0010-tenant-engine-sender-admission.md", + "id": "AUDIT-WP-0010", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "AUDIT-WP-0005", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "audit-core", + "hub_slug": "audit-wp-0008", + "hub_status": "active", + "title": "Tenancy posture declaration and read-path enforcement", + "file": "/home/worsch/audit-core/workplans/AUDIT-WP-0008-tenancy-posture-alignment.md", + "id": "AUDIT-WP-0008", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "AUDIT-WP-0007", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "audit-core", + "hub_slug": "audit-wp-0009", + "hub_status": "active", + "title": "Evidence-role conformance under Security Layer Model v0.7", + "file": "/home/worsch/audit-core/workplans/AUDIT-WP-0009-evidence-role-conformance.md", + "id": "AUDIT-WP-0009", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "AUDIT-WP-0007", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "tenant-engine", + "hub_slug": "ten-wp-0012", + "hub_status": "blocked", + "title": "Track the two external dispositions tenant-engine is waiting on", + "file": "/home/worsch/tenant-engine/workplans/TEN-WP-0012-external-conformance-waits.md", + "id": "TEN-WP-0012", + "flavor": "residual", + "flavor_reason": "origin", + "depends_on": "TEN-WP-0011", + "origin": "residual", + "origin_ref": "TEN-WP-0011", + "changed": "yes", + "note": "task_flavor=2" + }, + { + "repo": "sand-boxer", + "hub_slug": "sand-wp-0015", + "hub_status": "blocked", + "title": "Provide a pinned bwrap rein runtime and private state", + "file": "/home/worsch/sand-boxer/workplans/SAND-WP-0015-bwrap-runtime-and-private-state.md", + "id": "SAND-WP-0015", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "sand-boxer", + "hub_slug": "sand-wp-0014", + "hub_status": "active", + "title": "Owner-mediated governed bwrap execution", + "file": "/home/worsch/sand-boxer/workplans/SAND-WP-0014-owner-mediated-execution.md", + "id": "SAND-WP-0014", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "info-tech-canon", + "hub_slug": "info-wp-0019", + "hub_status": "blocked", + "title": "Conformance, reproducible consumption, and maintenance", + "file": "/home/worsch/info-tech-canon/workplans/INFO-WP-0019-conformance-and-maintenance.md", + "id": "INFO-WP-0019", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "llm-connect", + "hub_slug": "llm-wp-0009", + "hub_status": "active", + "title": "Owner-metered Messages transport for bounded factory execution", + "file": "/home/worsch/llm-connect/workplans/LLM-WP-0009-owner-metered-messages-transport.md", + "id": "LLM-WP-0009", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "glas-harness", + "hub_slug": "glas-wp-0012", + "hub_status": "blocked", + "title": "Prove the first local rein profile end to end", + "file": "/home/worsch/glas-harness/workplans/GLAS-WP-0012-first-local-profile-production-proof.md", + "id": "GLAS-WP-0012", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "glas-harness", + "hub_slug": "glas-wp-0015", + "hub_status": "active", + "title": "Drive owner returns for the first production Glas profile", + "file": "/home/worsch/glas-harness/workplans/GLAS-WP-0015-production-dependency-coordination.md", + "id": "GLAS-WP-0015", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "rapp-postgres", + "hub_slug": "rapp-postgres-wp-0006", + "hub_status": "active", + "title": "Admit canned-prompts on the PostgreSQL overflow cell", + "file": "/home/worsch/rapp-postgres/workplans/RAPP-POSTGRES-WP-0006-canned-prompts-admission.md", + "id": "RAPP-POSTGRES-WP-0006", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "rapp-telemetry", + "hub_slug": "rapp-telemetry-wp-0001", + "hub_status": "active", + "title": "Establish and activate the managed telemetry package on railiance01", + "file": "/home/worsch/rapp-telemetry/workplans/RAPP-TELEMETRY-WP-0001-foundation.md", + "id": "RAPP-TELEMETRY-WP-0001", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-telemetry", + "hub_slug": "rtel-wp-0002", + "hub_status": "active", + "title": "Provide the Q2 receiving contract and prove signal delivery", + "file": "/home/worsch/railiance-telemetry/workplans/RTEL-WP-0002-signal-contract.md", + "id": "RTEL-WP-0002", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "reuse-surface", + "hub_slug": "reuse-wp-0021", + "hub_status": "active", + "title": "Follow the CommerceCanon repository rename in federation sources", + "file": "/home/worsch/reuse-surface/workplans/REUSE-WP-0021-commerce-canon-source-rename.md", + "id": "REUSE-WP-0021", + "flavor": "residual", + "flavor_reason": "origin", + "depends_on": "none", + "origin": "residual", + "origin_ref": "IDENTITY-WP-0004", + "changed": "yes", + "note": "task_flavor=2" + }, + { + "repo": "pqrst-practice", + "hub_slug": "pqrst-wp-0002", + "hub_status": "proposed", + "title": "Validate spec v0.1 in real session closes and land PQRST in hall-of-helix", + "file": "/home/worsch/pqrst-practice/workplans/PQRST-WP-0002-validate-v01-against-real-sessions.md", + "id": "PQRST-WP-0002", + "flavor": "planning", + "flavor_reason": "proposed", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "rapp-core-hub", + "hub_slug": "rappcorehub-wp-0003", + "hub_status": "active", + "title": "Forgejo-backed repository classification publisher", + "file": "/home/worsch/rapp-core-hub/workplans/RAPPCOREHUB-WP-0003-forgejo-repository-publisher.md", + "id": "RAPPCOREHUB-WP-0003", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "rapp-core-hub", + "hub_slug": "rappcorehub-wp-0002", + "hub_status": "active", + "title": "Hub-core candidate and production cutover", + "file": "/home/worsch/rapp-core-hub/workplans/RAPPCOREHUB-WP-0002-hub-core-candidate-and-cutover.md", + "id": "RAPPCOREHUB-WP-0002", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "hub-core", + "hub_slug": "hub-wp-0011", + "hub_status": "proposed", + "title": "State Hub inbox freshness and reader cutover", + "file": "/home/worsch/hub-core/workplans/HUB-WP-0011-statehub-inbox-freshness-and-cutover.md", + "id": "HUB-WP-0011", + "flavor": "residual", + "flavor_reason": "origin", + "depends_on": "none", + "origin": "residual", + "origin_ref": "HUB-WP-0010", + "changed": "yes", + "note": "task_flavor=3" + }, + { + "repo": "hub-core", + "hub_slug": "hub-wp-0009", + "hub_status": "proposed", + "title": "Complete the hub-extension conformance profile", + "file": "/home/worsch/hub-core/workplans/HUB-WP-0009-extension-conformance-gaps.md", + "id": "HUB-WP-0009", + "flavor": "residual", + "flavor_reason": "origin", + "depends_on": "none", + "origin": "residual", + "origin_ref": "OPS-WP-0003", + "changed": "yes", + "note": "task_flavor=4" + }, + { + "repo": "hub-core", + "hub_slug": "hub-wp-0006", + "hub_status": "active", + "title": "Repository classification aggregation and navigation", + "file": "/home/worsch/hub-core/workplans/HUB-WP-0006-repository-classification-navigation.md", + "id": "HUB-WP-0006", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "rapp-qonto", + "hub_slug": "rapp-qonto-wp-0002", + "hub_status": "ready", + "title": "Publish rapp-qonto usage and cost evidence", + "file": "/home/worsch/rapp-qonto/workplans/RAPP-QONTO-WP-0002-resource-usage-and-cost-evidence.md", + "id": "RAPP-QONTO-WP-0002", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "whitehat-security", + "hub_slug": "whitehat-wp-0006", + "hub_status": "blocked", + "title": "Authorized live residuals after WHITEHAT-WP-0001", + "file": "/home/worsch/whitehat-security/workplans/WHITEHAT-WP-0006-authorized-live-residuals.md", + "id": "WHITEHAT-WP-0006", + "flavor": "residual", + "flavor_reason": "prose", + "depends_on": "none", + "origin": "residual", + "origin_ref": "WHITEHAT-WP-0001", + "changed": "yes", + "note": "task_flavor=3" + }, + { + "repo": "whitehat-security", + "hub_slug": "whitehat-wp-0008", + "hub_status": "blocked", + "title": "Authorized live ASM residuals after WHITEHAT-WP-0007", + "file": "/home/worsch/whitehat-security/workplans/WHITEHAT-WP-0008-live-asm-residuals.md", + "id": "WHITEHAT-WP-0008", + "flavor": "residual", + "flavor_reason": "prose", + "depends_on": "none", + "origin": "residual", + "origin_ref": "WHITEHAT-WP-0007", + "changed": "yes", + "note": "task_flavor=1; corrected from implementation (ASM residuals title)" + }, + { + "repo": "fin-hub", + "hub_slug": "fin-wp-0005", + "hub_status": "active", + "title": "DATEV accounting adapter operations", + "file": "/home/worsch/fin-hub/workplans/FIN-WP-0005-datev-accounting-adapter-operations.md", + "id": "FIN-WP-0005", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "fin-hub", + "hub_slug": "fin-wp-0006", + "hub_status": "proposed", + "title": "Consume resource-control internal transfer settlement", + "file": "/home/worsch/fin-hub/workplans/FIN-WP-0006-internal-transfer-settlement.md", + "id": "FIN-WP-0006", + "flavor": "residual", + "flavor_reason": "origin", + "depends_on": "none", + "origin": "residual", + "origin_ref": "RESOURCE-WP-0005", + "changed": "yes", + "note": "task_flavor=1" + }, + { + "repo": "fin-hub", + "hub_slug": "fin-wp-0004", + "hub_status": "active", + "title": "Establish the resource cost evidence contract", + "file": "/home/worsch/fin-hub/workplans/FIN-WP-0004-resource-cost-evidence-contract.md", + "id": "FIN-WP-0004", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "soul-frame", + "hub_slug": "soul-wp-0008", + "hub_status": "ready", + "title": "Phase VII \u2014 Soul Frame research paper", + "file": "/home/worsch/soul-frame/workplans/SOUL-WP-0008-phase-vii-paper.md", + "id": "SOUL-WP-0008", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "SOUL-WP-0007", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "railiance-master", + "hub_slug": "rmaster-wp-0020", + "hub_status": "blocked", + "title": "Migrate authoritative OpenBao from CoulombCore to reef-railiance", + "file": "/home/worsch/railiance-master/workplans/RMASTER-WP-0020-openbao-migration-to-reef-railiance.md", + "id": "RMASTER-WP-0020", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "NK-WP-0022", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "prj-unattended-progress-company", + "hub_slug": "upc-wp-0004", + "hub_status": "proposed", + "title": "First external offer and paid revenue path (G5\u2013G6)", + "file": "/home/worsch/prj-unattended-progress-company/workplans/UPC-WP-0004-first-offer-and-revenue.md", + "id": "UPC-WP-0004", + "flavor": "planning", + "flavor_reason": "proposed", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "prj-unattended-progress-company", + "hub_slug": "upc-wp-0003", + "hub_status": "proposed", + "title": "Unattended dogfood acceptance and founder-load envelope (G3\u2013G4)", + "file": "/home/worsch/prj-unattended-progress-company/workplans/UPC-WP-0003-unattended-and-load.md", + "id": "UPC-WP-0003", + "flavor": "planning", + "flavor_reason": "proposed", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "prj-unattended-progress-company", + "hub_slug": "upc-wp-0002", + "hub_status": "active", + "title": "Company vessel close-out (G1 + residual G2/G8)", + "file": "/home/worsch/prj-unattended-progress-company/workplans/UPC-WP-0002-company-vessel-closeout.md", + "id": "UPC-WP-0002", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "prj-forgejo-org-refactor", + "hub_slug": "orgref-wp-0001", + "hub_status": "backlog", + "title": "Foundation, blast-radius inventory, and execution entry gate", + "file": "/home/worsch/prj-forgejo-org-refactor/workplans/ORGREF-WP-0001-foundation-and-entry-gate.md", + "id": "ORGREF-WP-0001", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "reef-railiance", + "hub_slug": "reef-railiance-wp-0003", + "hub_status": "blocked", + "title": "Complete rapp-qonto production gates", + "file": "/home/worsch/reef-railiance/workplans/REEF-RAILIANCE-WP-0003-rapp-qonto-production-gates.md", + "id": "REEF-RAILIANCE-WP-0003", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "rapp-openbao", + "hub_slug": "rapp-openbao-wp-0002", + "hub_status": "blocked", + "title": "Replace public OpenBao UI exposure with operator-only access", + "file": "/home/worsch/rapp-openbao/workplans/RAPP-OPENBAO-WP-0002-operator-only-ui-exposure.md", + "id": "RAPP-OPENBAO-WP-0002", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "core-hub", + "hub_slug": "core-wp-0010", + "hub_status": "active", + "title": "Runtime absorption into hub-core and archive", + "file": "/home/worsch/core-hub/workplans/CORE-WP-0010-runtime-absorption-and-archive.md", + "id": "CORE-WP-0010", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "adaptive-pricing", + "hub_slug": "adaptive-wp-0010", + "hub_status": "proposed", + "title": "Plan-derived guardrail spend ceilings", + "file": "/home/worsch/adaptive-pricing/workplans/ADAPTIVE-WP-0010-plan-derived-guardrail-ceilings.md", + "id": "ADAPTIVE-WP-0010", + "flavor": "planning", + "flavor_reason": "proposed", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "rapp-tenant-engine", + "hub_slug": "rapp-tenant-engine-wp-0001", + "hub_status": "proposed", + "title": "Bootstrap rapp-tenant-engine", + "file": "/home/worsch/rapp-tenant-engine/workplans/RAPP-TENANT-ENGINE-WP-0001-bootstrap.md", + "id": "RAPP-TENANT-ENGINE-WP-0001", + "flavor": "planning", + "flavor_reason": "proposed", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "test-driver", + "hub_slug": "td-wp-0003", + "hub_status": "proposed", + "title": "Generalise the model and settle the open questions", + "file": "/home/worsch/test-driver/workplans/TD-WP-0003-generalise-and-settle.md", + "id": "TD-WP-0003", + "flavor": "planning", + "flavor_reason": "proposed", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "reef-storage", + "hub_slug": "reef-storage-wp-0002", + "hub_status": "active", + "title": "Fill Scaleway attributes after purchase", + "file": "/home/worsch/reef-storage/workplans/REEF-STORAGE-WP-0002-fill-after-purchase.md", + "id": "REEF-STORAGE-WP-0002", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + }, + { + "repo": "markitect-main", + "hub_slug": "testdrive-jsui-publication", + "hub_status": "backlog", + "title": "TestDrive-JSUI \u2014 npm Publication", + "file": "/home/worsch/markitect-main/workplans/MARKITECT-WP-0002-testdrive-jsui-publication.md", + "id": "MARKITECT-WP-0002", + "flavor": "implementation", + "flavor_reason": "default", + "depends_on": "none", + "origin": "", + "origin_ref": "", + "changed": "yes", + "note": "" + } + ] +} diff --git a/docs/evidence/2026-09-14-flavor-backfill/intake-join.json b/docs/evidence/2026-09-14-flavor-backfill/intake-join.json new file mode 100644 index 0000000..d6256b7 --- /dev/null +++ b/docs/evidence/2026-09-14-flavor-backfill/intake-join.json @@ -0,0 +1,464 @@ +[ + { + "intake_id": "01a028d1-c4af-7a06-adb5-c90399721872", + "intake_canonical": null, + "intake_title": "Grandfather the legacy MASON-0001 identifier scheme", + "intake_status": "open", + "origin_ref": "MASON-WP-0002", + "wp_hub_status": "finished", + "wp_hub_slug": "mason-wp-0002", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "019f8a9d-008b-7086-8f84-d72bd0d0a2a5", + "intake_canonical": null, + "intake_title": "agent-harness brief-weekly via llm-connect (Friday review prep)", + "intake_status": "open", + "origin_ref": "BINKY-WP-0006", + "wp_hub_status": "finished", + "wp_hub_slug": "binky-wp-0006", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "019f8a9d-074e-7b27-a7c0-8a13153bcc7a", + "intake_canonical": null, + "intake_title": "Optional: retarget railiance llm-connect rhythm to open-weights model", + "intake_status": "open", + "origin_ref": "BINKY-WP-0006", + "wp_hub_status": "finished", + "wp_hub_slug": "binky-wp-0006", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a007c6-c11e-7bb6-bffa-62f0a54a3bb5", + "intake_canonical": null, + "intake_title": "Clarify IP ownership boundary: which repos/assets belong to the GmbH vs Bernd privately", + "intake_status": "open", + "origin_ref": "UPC-WP-0002-T04", + "wp_hub_status": null, + "wp_hub_slug": null, + "wp_open_flavor": null, + "role": "unresolved-ref" + }, + { + "intake_id": "019ffade-2802-788f-96ed-288bb9474d96", + "intake_canonical": null, + "intake_title": "Enable production Barman on platform-pg after RESOURCE-WP-0002 handoff", + "intake_status": "open", + "origin_ref": "RAPP-POSTGRES-WP-0002", + "wp_hub_status": "finished", + "wp_hub_slug": "rapp-postgres-wp-0002", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "019ffade-2b7a-7c34-af30-0b228173a4f0", + "intake_canonical": null, + "intake_title": "Prove platform-pg data survives a coordinated railiance01 reboot", + "intake_status": "open", + "origin_ref": "RAPP-POSTGRES-WP-0002", + "wp_hub_status": "finished", + "wp_hub_slug": "rapp-postgres-wp-0002", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "019ffade-2e08-765d-aca7-cba28a0b1faa", + "intake_canonical": null, + "intake_title": "Provide ClusterSecretStore and OpenBao database role path for audit-core", + "intake_status": "open", + "origin_ref": "RAPP-POSTGRES-WP-0002", + "wp_hub_status": "finished", + "wp_hub_slug": "rapp-postgres-wp-0002", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a0215f-24eb-7602-ae4d-196e0a3f8e80", + "intake_canonical": null, + "intake_title": "Retire tenant-engine's stopped-write SQLite rollback artifact after soak", + "intake_status": "open", + "origin_ref": "RAPP-POSTGRES-WP-0003", + "wp_hub_status": "finished", + "wp_hub_slug": "rapp-postgres-wp-0003", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a02176-8ca7-725d-b2c2-4353eb4fd3f5", + "intake_canonical": null, + "intake_title": "Externalize tenant-engine audit evidence to audit-core", + "intake_status": "open", + "origin_ref": "TEN-WP-0009", + "wp_hub_status": "finished", + "wp_hub_slug": "ten-wp-0009", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "019ff532-3694-7868-a3a7-f4b4f28a647a", + "intake_canonical": null, + "intake_title": "Enable Create account and Case B registration smoke on app.coulomb.social", + "intake_status": "open", + "origin_ref": "CSOC-WP-0003", + "wp_hub_status": "finished", + "wp_hub_slug": "csoc-wp-0003", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "019ff532-3ade-7d75-acb7-2bbfa264fcb8", + "intake_canonical": null, + "intake_title": "Add callback replay and email-only takeover regressions", + "intake_status": "open", + "origin_ref": "CSOC-WP-0003", + "wp_hub_status": "finished", + "wp_hub_slug": "csoc-wp-0003", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "019ffac3-f894-707a-9fdb-75c8ea14497d", + "intake_canonical": null, + "intake_title": "Bulk-import Bubble corpus trees; map members to NetKingdom", + "intake_status": "open", + "origin_ref": "CSOC-WP-0001", + "wp_hub_status": "finished", + "wp_hub_slug": "csoc-wp-0001", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "019ffac3-fc7d-7850-93b6-b0d289881ec7", + "intake_canonical": null, + "intake_title": "Deploy PageOps CONTENT_ROOT + space visual migration to app host", + "intake_status": "open", + "origin_ref": "CSOC-WP-0006", + "wp_hub_status": "finished", + "wp_hub_slug": "csoc-wp-0006", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a02b76-e138-788c-9809-1e970c752d5d", + "intake_canonical": null, + "intake_title": "Restore the rein-openweights OpenRouter lane and close the dual-profile live proof", + "intake_status": "open", + "origin_ref": "GLAS-WP-0004", + "wp_hub_status": "finished", + "wp_hub_slug": "glas-wp-0004", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a02b76-f020-7d60-a3ce-12a34c13ebce", + "intake_canonical": null, + "intake_title": "Make bwrap reachability executable for governed Glas reins", + "intake_status": "open", + "origin_ref": "GLAS-WP-0005", + "wp_hub_status": "finished", + "wp_hub_slug": "glas-wp-0005", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a02b78-adff-70b5-8088-594784edff23", + "intake_canonical": null, + "intake_title": "Grandfather the legacy GLAS-0001 bootstrap identifiers", + "intake_status": "open", + "origin_ref": "GLAS-0001", + "wp_hub_status": null, + "wp_hub_slug": null, + "wp_open_flavor": null, + "role": "unresolved-ref" + }, + { + "intake_id": "01a02bde-7d1e-7af3-9eba-aecc8f50365c", + "intake_canonical": null, + "intake_title": "Make ADHOC workplans valid under the fleet identifier canon", + "intake_status": "open", + "origin_ref": "GLAS-WP-0006", + "wp_hub_status": "finished", + "wp_hub_slug": "glas-wp-0006", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a02dce-b761-75e6-861a-8abf8b8e0072", + "intake_canonical": null, + "intake_title": "Separate profile selection enablement from runtime readiness", + "intake_status": "open", + "origin_ref": "GLAS-WP-0007", + "wp_hub_status": "finished", + "wp_hub_slug": "glas-wp-0007", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a049a5-4599-740c-a148-e40e5695c7b5", + "intake_canonical": null, + "intake_title": "Restore source-ref projection on later SBOM catch-up batches", + "intake_status": "open", + "origin_ref": "CUST-WP-0064", + "wp_hub_status": "finished", + "wp_hub_slug": "cust-wp-0064", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a049ea-3a04-74b9-a9b1-e2630f8d5628", + "intake_canonical": null, + "intake_title": "Sweep \"control plane\" and layer vocabulary through NetKingdomImmuneArchitecture.md", + "intake_status": "open", + "origin_ref": "KG-DEC-2026-001", + "wp_hub_status": null, + "wp_hub_slug": null, + "wp_open_flavor": null, + "role": "unresolved-ref" + }, + { + "intake_id": "01a04d91-1308-7399-8942-d23f10cef388", + "intake_canonical": null, + "intake_title": "Provision a consumer-install npm-read lane for @whynot/design", + "intake_status": "open", + "origin_ref": "WHYNOT-WP-0003", + "wp_hub_status": "finished", + "wp_hub_slug": "whynot-wp-0003", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "4f1d9836-e0a6-56ea-bf19-2587c153f338", + "intake_canonical": null, + "intake_title": "Scope normal sync identity validation to actionable records", + "intake_status": "open", + "origin_ref": "RMGR-WP-0005", + "wp_hub_status": "finished", + "wp_hub_slug": "rmgr-wp-0005", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a05ef0-a034-7ef8-bae1-45840392f40e", + "intake_canonical": null, + "intake_title": "Publish the shared Taxonomy request-claim schema", + "intake_status": "open", + "origin_ref": "APPROVAL-WP-0001", + "wp_hub_status": "finished", + "wp_hub_slug": "approval-wp-0001", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a06e07-658e-73fa-9164-0b522504c0ee", + "intake_canonical": null, + "intake_title": "Absorb or replace the State Hub dashboard projection UI", + "intake_status": "routed", + "origin_ref": "STATE-WP-0081", + "wp_hub_status": "finished", + "wp_hub_slug": "state-wp-0081", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a06e07-7ca4-70de-a011-f9aad8655a50", + "intake_canonical": null, + "intake_title": "Refresh Core Hub scope after railiance01 relocation", + "intake_status": "routed", + "origin_ref": "SHR-WP-0002", + "wp_hub_status": "finished", + "wp_hub_slug": "shr-wp-0002", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a06e07-ab16-734e-89b2-4b59796d5073", + "intake_canonical": null, + "intake_title": "Refresh Ops Hub framework ownership language", + "intake_status": "routed", + "origin_ref": "SHR-WP-0002", + "wp_hub_status": "finished", + "wp_hub_slug": "shr-wp-0002", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a06e07-cdc3-763d-a746-eaaa289baad6", + "intake_canonical": null, + "intake_title": "Refresh Ops Bridge State Hub topology language", + "intake_status": "routed", + "origin_ref": "SHR-WP-0002", + "wp_hub_status": "finished", + "wp_hub_slug": "shr-wp-0002", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a06e07-f2f9-7586-9745-b359eb0025b6", + "intake_canonical": null, + "intake_title": "Retire or repoint legacy Inter-Hub and Gitea registry lanes", + "intake_status": "routed", + "origin_ref": "SHR-WP-0002", + "wp_hub_status": "finished", + "wp_hub_slug": "shr-wp-0002", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a06e08-243c-7552-8933-ae2fc4d69ffb", + "intake_canonical": null, + "intake_title": "Publish @whynot/design through the Forgejo npm registry", + "intake_status": "open", + "origin_ref": "SHR-WP-0002", + "wp_hub_status": "finished", + "wp_hub_slug": "shr-wp-0002", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a06e08-3bdd-77c8-828b-b07d0c77eb98", + "intake_canonical": null, + "intake_title": "Remove the legacy Gitea PyPI publication target", + "intake_status": "open", + "origin_ref": "SHR-WP-0002", + "wp_hub_status": "finished", + "wp_hub_slug": "shr-wp-0002", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a06e08-58fa-78d0-a7e8-06ab4fc85375", + "intake_canonical": null, + "intake_title": "Remove the legacy Gitea ArgoCD source allow-list", + "intake_status": "open", + "origin_ref": "SHR-WP-0002", + "wp_hub_status": "finished", + "wp_hub_slug": "shr-wp-0002", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a06e08-6936-7762-a347-f832182b7705", + "intake_canonical": null, + "intake_title": "Publish @whynot/design through the Forgejo npm registry", + "intake_status": "closed", + "origin_ref": "SHR-WP-0002", + "wp_hub_status": "finished", + "wp_hub_slug": "shr-wp-0002", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a06e08-7a37-7a86-b456-67a40fdc3fef", + "intake_canonical": null, + "intake_title": "Remove the legacy Gitea PyPI publication target", + "intake_status": "routed", + "origin_ref": "SHR-WP-0002", + "wp_hub_status": "finished", + "wp_hub_slug": "shr-wp-0002", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a06e08-9718-786e-b753-b56aa5f4c005", + "intake_canonical": null, + "intake_title": "Remove the legacy Gitea ArgoCD source allow-list", + "intake_status": "routed", + "origin_ref": "SHR-WP-0002", + "wp_hub_status": "finished", + "wp_hub_slug": "shr-wp-0002", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a06e0c-3feb-7920-a6f2-961b03dc170d", + "intake_canonical": null, + "intake_title": "Bound or optimize the repository collection projection", + "intake_status": "routed", + "origin_ref": "STATE-WP-0081", + "wp_hub_status": "finished", + "wp_hub_slug": "state-wp-0081", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a07331-68e8-739f-b7c3-9cca28feb5e5", + "intake_canonical": null, + "intake_title": "Complete deferred ADR metadata and conflict rulings", + "intake_status": "open", + "origin_ref": "PNEX-WP-0003", + "wp_hub_status": "finished", + "wp_hub_slug": "pnex-wp-0003", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a073cf-51ca-7fa7-a432-658ba3718382", + "intake_canonical": null, + "intake_title": "Review Custodian historical bindings and agent workplan-prefix conflict", + "intake_status": "open", + "origin_ref": "THE-WP-0001", + "wp_hub_status": "finished", + "wp_hub_slug": "the-wp-0001", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a07553-3d88-7a72-88b8-0028d55e442f", + "intake_canonical": null, + "intake_title": "Family model demand review", + "intake_status": "open", + "origin_ref": "CFED-WP-0001", + "wp_hub_status": "finished", + "wp_hub_slug": "cfed-wp-0001", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a07554-1005-78d9-a5e4-ac0c0551cec9", + "intake_canonical": null, + "intake_title": "Commerce service surface demand review", + "intake_status": "open", + "origin_ref": "CFED-WP-0001", + "wp_hub_status": "finished", + "wp_hub_slug": "cfed-wp-0001", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a07554-17ac-7d95-8df0-9b219ec2fc5f", + "intake_canonical": null, + "intake_title": "Federated canon consumer adoption review", + "intake_status": "open", + "origin_ref": "CFED-WP-0001", + "wp_hub_status": "finished", + "wp_hub_slug": "cfed-wp-0001", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + }, + { + "intake_id": "01a0880b-4421-747b-9e7f-6e9bff9d2ea3", + "intake_canonical": null, + "intake_title": "The independent evidence path \u2014 what travels to audit-core", + "intake_status": "open", + "origin_ref": "INFD-WP-0001-T05", + "wp_hub_status": null, + "wp_hub_slug": null, + "wp_open_flavor": null, + "role": "unresolved-ref" + }, + { + "intake_id": "01a08ecc-c6f6-7162-a154-0ab51a2ff61d", + "intake_canonical": null, + "intake_title": "Repair SQLite import into chained PostgreSQL custody", + "intake_status": "open", + "origin_ref": "AUDIT-WP-0005", + "wp_hub_status": "finished", + "wp_hub_slug": "audit-wp-0005", + "wp_open_flavor": null, + "role": "intake-only-parent-closed" + } +] diff --git a/workplans/CUST-WP-0072-fleet-flavor-and-depends-on-backfill.md b/workplans/CUST-WP-0072-fleet-flavor-and-depends-on-backfill.md index 3153890..4566ba7 100644 --- a/workplans/CUST-WP-0072-fleet-flavor-and-depends-on-backfill.md +++ b/workplans/CUST-WP-0072-fleet-flavor-and-depends-on-backfill.md @@ -4,7 +4,7 @@ type: workplan title: "Backfill workplan flavor and depends_on across the fleet" domain: infotech repo: the-custodian -status: proposed +status: finished owner: grok topic_slug: custodian flavor: planning @@ -36,7 +36,7 @@ residuals into implementation just to shrink a count. ```task id: CUST-WP-0072-T01 -status: wait +status: done priority: high depends_on: [STATE-WP-0092] state_hub_task_id: "cfd17138-0ae2-573d-9709-0fc87af2baf1" @@ -47,11 +47,17 @@ indexed and default views omitting residuals. Until then this task stays `wait`. Record the hub revision / workplan statuses that satisfy the gate. +2026-09-14: STATE-WP-0092 is `finished` (`2a2d8bcd`). File/API work is in +`state-hub` main. Live primary schema is still `b5e6f7a8c9d0`, so residual +exclusion is not yet visible on production views. Founder instructed this +backfill to proceed on files. Hub views follow after alembic `c6f7a8b9d0e1` +is deployed. + ## Classify open workplans (and their open tasks) ```task id: CUST-WP-0072-T02 -status: wait +status: done priority: high depends_on: [CUST-WP-0072-T01] state_hub_task_id: "e87ee326-10a8-5dce-a59a-5b9dc3236ba9" @@ -74,11 +80,16 @@ Done when a coverage table (repo, workplan id, flavor, depends_on filled or none) is committed under `the-custodian/docs/evidence/` and default hub open views drop the residual cohort. +2026-09-14: 116 open workplans classified (81 implementation, 21 planning, +11 residual, 2 extension, 1 refactoring). Coverage: +`docs/evidence/2026-09-14-flavor-backfill/`. Residuals were not promoted. +Live summary exclusion waits on STATE-WP-0092 deploy. + ## Update conventions and templates ```task id: CUST-WP-0072-T03 -status: wait +status: done priority: medium depends_on: [CUST-WP-0072-T01] state_hub_task_id: "00b28231-b4e1-5ab4-9474-d771d378b35b" @@ -98,7 +109,7 @@ convention text matches canon. ```task id: CUST-WP-0072-T04 -status: wait +status: done priority: medium depends_on: [CUST-WP-0072-T02] state_hub_task_id: "81c5a43b-4369-53f0-b666-a4f409162521" @@ -112,3 +123,8 @@ parallel residuals queue. Done when the residual intake list and residual workplan list can be joined by `origin_ref` without double-counting them as two implementation backlogs. + +2026-09-14: 42 `origin: residual` intakes. 38 point at finished parents +(intake is the live leftover). 4 point at non-workplan ids. Zero open +implementation workplans are also residual-intake targets. +`docs/evidence/2026-09-14-flavor-backfill/intake-join.json`.