Add cross-project dashboard surface audit and Ops Hub v2 build spec - #1
Draft
DaveHomeAssist wants to merge 1 commit into
Draft
Add cross-project dashboard surface audit and Ops Hub v2 build spec#1DaveHomeAssist wants to merge 1 commit into
DaveHomeAssist wants to merge 1 commit into
Conversation
Audits every historical surface that has tried to answer "what projects exist and what state are they in": cross-project dashboards, command centers, Ops Hub, Code Dashboard, the project manifest, and the public portfolio hub. Each artifact is classified preserve / migrate / archive / unlink / remove-from-public. Findings are grounded in anonymous crawl evidence rather than inference: - /command-center-061eed/ serves an internal ops console at HTTP 200 with no robots directive anywhere in the document, no canonical, and no description, while its manifest entry marks it visibility:public so the hub links it. Recorded design intent was "public (noindex)" — never implemented. It is also regenerated by recurring automation, so the fix belongs in the generator. - visibility has no enforcement: of 12 unlisted projects with live URLs, 1 carries noindex, 10 carry no robots meta, and 1 carries an explicit index,follow that contradicts its own manifest row. - sitemap.xml and project-manifest.json are disjoint. 48 of 48 on-host project URLs return 200; exactly 1 appears in the sitemap, and 8 of the 9 sitemap entries are not projects at all. - The served hub HTML contains no project anchors; discovery is JS-only. - / and /public-hub.html share a title, serve different bodies, and each self-canonicalizes to its own URL. Root cause: six dashboard generations each built a new surface, none established a contract underneath. The spec inverts this — registries and state contracts own truth, the dashboard is a renderer — and encodes nine invariants as CI checks that fail the build, since the previous generations already demonstrated that conventions do not hold. Both documents are public-safe by construction: this repository is public, so they cite only already-public evidence and refer to internal sources by role. The Ops Hub v2 implementation itself is specified to live in a private repo. No remediation executed — the audit is read-only and gates every change behind an approval bundle. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EUpn33n5YkqEbX58onsTJk
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds two documents under
docs/ops-hub-v2/, plus README and CHANGELOG pointers. Docs only — no code changes, and no remediation was executed.What's here
docs/ops-hub-v2/AUDIT-2026-08-18.mddocs/ops-hub-v2/OPS_HUB_V2_SPEC.mdops-state.jsonv2 contract, nine enforced invariants, UI zones, build order, acceptance criteria.Findings, from crawl evidence rather than inference
Everything below was verified by anonymous
curlagainst the live host and the already-publicproject-manifest.jsonon 2026-08-18./command-center-061eed/serves an internal ops console at HTTP 200 with no robots directive anywhere in the document — the stringnoindexappears zero times in 229 KB. No canonical, no description, no<h1>. Its manifest entry setsvisibility: public, so the hub renders a card linking to it. Recorded design intent was "public (noindex)"; it was never implemented, and nothing existed that would have caught the gap. The surface is also regenerated by recurring automation, so a manual edit to the published output gets reverted — the fix has to land in the generator.visibilityhas no enforcement anywhere. Of the 12unlistedprojects with live URLs: 1 carriesnoindex, 10 carry no robots meta at all, and 1 carries an explicitindex, followthat directly contradicts its own manifest row.sitemap.xmlandproject-manifest.jsonare disjoint. 48 of 48 on-host project URLs return 200; exactly 1 appears in the sitemap. 8 of the 9 sitemap entries are not projects at all. The sitemap isn't stale — it's an orphan from a different lineage./and/public-hub.htmlshare a<title>, serve different bodies (91 KB vs 31 KB), and each self-canonicalizes to its own URL.localPathandrunCommandcolumns. Empty on all 79 rows today — a closed leak with an open channel.Root cause, and what the spec does about it
Six dashboard generations were built. Each was a new surface; none established a contract underneath. The concrete expression today is that
visibilityis decorative metadata — nothing converts it into a robots directive, a sitemap entry, or a link-rendering decision.The spec inverts the relationship (registries and state contracts own truth; the dashboard renders) and encodes nine invariants as CI checks that fail the build. That's deliberate: the previous five generations already demonstrated that conventions don't hold. The load-bearing one is fail-closed export — every prior generation defaulted to publish and relied on review to catch mistakes, and review did not catch them.
The spec also preserves rather than replaces the Ops Hub v0.5 architecture, which was the one generation that already had the right shape.
Publication boundary
code-dashboardis a public repo, and the audit's central finding is that internal ops material leaked onto public infrastructure — so publishing an unredacted inventory here would reproduce the exact defect being reported.Both documents are therefore public-safe by construction: they cite only already-public evidence (anonymous crawl results, the public manifest, architecture description) and refer to internal sources by role rather than by name. No workspace URLs, local paths, private project identifiers, run IDs, or client detail. §11 of the spec specifies that the Ops Hub v2 implementation itself — registry, state files, rendered private dashboard — belongs in a private repo, not this one.
Review notes
/act-two-catering/carriesnoindex,nofollowand is the only unlisted page whose live directive matches its declared visibility. If it's a live commercial page that's a serious defect; if it's a client preview it's the one correctly configured page on the property. It can't be graded without you. The audit's actual finding is that the intent isn't recorded anywhere — hence the requiredindexPolicy+ reason field in the v2 registry schema.Generated by Claude Code