fix(guide): gate Architect + Claude tabs to BCOS_ADMIN only (#16) #17
Reference in New Issue
Block a user
Delete Branch "fix/16-architect-claude-bcos-only"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #16.
What
Retag the 162
Architect+Claudedocs fromaudience: devtoaudience: bcos, and add a newplatform.guide-accesspage documenting the access model.Why
audience: devresolves throughisInternal()=ROLE_MSP_ADMIN || ROLE_BCOS_ADMIN, so every MSP_ADMIN could read the full body of all Architect and Claude tabs: internal architecture, source file paths, DB table names, service ports, NGINX routes.Reproduced live on bcos.dev as
msp_a@msp1.bcos.dev(roleMSP_ADMIN): 81 Architect + 81 Claude tabs returned in/nav, andanalytics.adoonsserved a 4,672-char Architect body and a 3,918-char Claude body. Bodies, not just nav entries.Why content-only, not a code fix
Remapping the
devtier inMarkdownGuideService.visible()would also strip the 15Internal, 35Overviewand 66Testingdocs from MSP_ADMIN, andagent.*modules would lose every tab and vanish from MSP's nav. Retagging only the two affected tab types has no such blast radius.Testing tabs stay MSP-visible, per Johannes.
Verification
No module loses all its tabs. The 8 modules MSP cannot see (
processes.*,devops.dev,devops.prod,milestone.2026-07) were alreadybcos-tier and are unaffected. New doc validated against the loader's own frontmatter parser.Scope / risk
Guide is bcos.dev only; it is not routed in production. No production change, no deploy in this PR.
Follow-up (not in this PR)
The
devtier is a footgun: named for developers, gates at MSP_ADMIN. Any future doc taggedaudience: devis silently MSP-visible. Worth a rename or a startup assertion.