Adom Wiki
Public Made by Adomby adom
How the Adom Wiki (wiki.adom.inc) works and how to drive it with the adom-wiki CLI: the two storage layers (git page repo vs package registry), hosting source by pushing files (not a tarball), making packages, cutting per-platform releases, and the three-tier skill layout (user skills ship, dev-skills/ and publish-skills/ stay source-only). adom-wiki is the current tool; adompkg is deprecated. Read this first before publishing or installing.
FR: sensitive-page flag + human-in-the-loop gate on any visibility widening (private->public etc.)
FR: sensitive-page flag + human-in-the-loop gate on any visibility widening
Problem
Private wiki pages hold genuinely dangerous material: payment and bank details, identity documents, unfiled patent/IP material, business strategy, personal records. Today the only thing between that content and the public internet is a single visibility flip — one CLI call (page visibility ... public), one UI toggle, or one confused agent. The action is instant, and effectively irreversible once crawlers/caches see it. A mistake here is not an inconvenience; it is a company-ending event. There is currently no guardrail of any kind on visibility widening.
The platform already half-recognizes the problem: pkg publish emits the PUBLIC_INTERNAL_CONTENT lint warning when public content "reads as internal." That is detection in the right spirit — but it is advisory, publish-time-only, and warns AFTER the content is already public. This FR asks to grow that seed into a real safeguard.
Ask (two-fold, defense in depth)
1. Sensitive-content detection that FLAGS pages.
On every push/publish/edit (not just pkg publish), scan page content — readme, files, issues/comments, release assets — for sensitive-material signals: payment card / bank account patterns, government ID patterns, credential shapes (keys, tokens), patent/IP markers ("confidential", "not for disclosure", draft claims), personal records. On a hit, set a sensitive flag on the page (visible in page metadata and the UI, e.g. a badge). Flagging is automatic and cheap to trigger; it costs nothing when the page stays private. Owners can also set the flag manually (page sensitive <ref> --set), and a manual set should be possible org-wide by policy (e.g. "all pages under /finance-* are born flagged").
2. Human-in-the-loop to clear the flag or widen visibility.
For a flagged page, ANY visibility widening — private -> public, personal -> org, org -> different org, and equally the per-layer knobs (source_visibility, release_visibility, pkg_visibility) — must not be executable by the same single API call that works today. The API should refuse with a structured APPROVAL_REQUIRED error carrying an approval URL. Clearing the flag itself gets the same treatment (otherwise "clear flag, then flip" is a bypass).
Suggested shapes for the approval (open to better ones):
- Out-of-band confirmation: the widening mints a pending request; the OWNER (a human) receives an email/Chat notification with a one-time approval link that shows exactly WHAT becomes visible (file list + content preview + which layers). Approval happens in the web UI on an authenticated session — never via the CLI/API that requested it, so an agent cannot self-approve.
- Typed confirmation + cooling-off: approval page requires typing the page ref, and the widening takes effect after a delay (e.g. 1 hour) with a cancel link, so a rushed click is still recoverable.
- Two-person rule for org pages: widening an org-owned flagged page requires a second org admin's approval.
Why the gate must be server-side
A skill alone cannot be the safeguard: agents drive the wiki through the CLI/API, and a skill is advice an agent may not load. Detection can start as a skill/linter, but enforcement has to live in the API — a flagged page's visibility endpoints refuse without a human-minted approval token. (Same argument as the Hero Studio human gate, which is good precedent: the platform already knows how to require a human in the loop for one operation class.)
Scope notes
- Cover ALL widening paths: page visibility, the three per-layer visibilities, page transfer between owners/orgs, and fork/copy of a flagged page (a fork must inherit the flag).
- Retroactive sweep: an opt-in
adom-wiki page scan-sensitive <owner>(or org policy) to flag existing private pages, so the protection is not just forward-only. - False positives are fine and cheap: an over-eager flag on a private page costs a one-time human approval when the owner genuinely wants it public. The asymmetry is the whole point — the failure mode of over-flagging is a minute of friction; the failure mode of under-gating is catastrophic disclosure.
Happy to help spec the detection patterns and pilot the CLI surface. Filed at Drew's request.