At 7:39 one morning, a one-minute check turned up 16 staff pages that no menu linked to. The first was live on master: a staff page showing how our API keys are being used. Nothing in the staff nav pointed at it.
One page, then fifteen more
An API key is a password one piece of software uses to talk to another. I asked an AI assistant to look across the staff site for other pages in the same state. It listed 15 more, and the whole check took about a minute. It made no changes. I don’t know why each page is unlinked. The list is only a list so far, and nobody has sorted it.
The same gap on a screen we were building
That same day we were building a screen for a different job. When a customer wants to send email from their own domain, someone has to add a few DNS records, the entries that tell the internet who is allowed to send mail for that domain. The customer submits a request, and our staff review it.
We built a review dialog for those requests. The notification email to staff includes a link that opens it directly. I asked a browser assistant to walk the whole flow and take a screenshot at every step, starting on the customer side and ending on ours. Then I had it reach the same screen without the email link, starting from the customer’s detail page. That route goes through the Domain row, then the Domain dialog, then a link in the dialog labeled “Review DNS records”.
I told it to report every place the flow differed from what we intended. The intended path: the email links to the customer’s page, staff click Domains, click the DNS records reference, and see the pending request. I asked in particular whether the email link skips the dialog, and whether the Domain row shows any marker of a pending request. The email is the only thing that tells staff the screen exists, so those two questions mattered most.
Shipped and findable are different checks
A broken page gets noticed and fixed. A finished page that nobody can reach sits on master looking like progress. Had I asked “did we ship the API key page?”, the answer would have been yes. Had I asked “can a staff member who didn’t build it find it?”, the answer was no.
The 15 other pages are still on the list. Some will get a menu entry, some may get deleted, and the first job is finding out which is which.
AI Skills
Use this lesson with the AI assistant you already use
A one-minute check at 7:39 one morning found 16 staff pages on master that no menu linked to, starting with an API key usage page. The same day, a new DNS review dialog was reachable mainly through an email link.
Paste the prompt, share only the context needed to answer it, and treat the result as a draft for your review. Do not include confidential information or let an AI assistant make changes without your approval.
Optional: for a visual report and saved memory, run /dxdev first.
Don’t have it? Get it at dxdev.com/skills/dxdev. The prompt works without it.
dxdev LESSON · paste into your AI coding agent
LESSON: Check That A Finished Feature Can Be Found By Someone Who Did Not Build It, Not Just That It Shipped
SOURCE: dxdev.com/blog/hidden-staff-features
WHAT HAPPENED: An AI assistant was asked to look across the staff site for pages that were live but not linked from the staff nav. It found the API key usage page plus 15 more in about a minute, made no changes, and the reasons for each being unlinked are still unknown. The same day, a review dialog for custom email domain DNS requests was being built, and the notification email to staff was the only thing telling them the screen existed. A browser assistant was asked to walk the flow with screenshots, then reach the same screen without the email link through the customer's detail page, the Domain row, the Domain dialog and the Review DNS records link. It was asked to report whether the email link skips the dialog and whether the Domain row shows any marker of a pending request. The 15 other pages are still on the list to be sorted into menu entries or deletions.
THE RULE: Verifying that a feature shipped is not the same as verifying that someone who did not build it can find it. Check discoverability separately, by asking whether a person with no inside knowledge can reach the feature without a direct link.
CHECK MY CODE, then report PASS or FAIL with file:line for each:
1. List every live page or route in the staff site and confirm each one is reachable from a menu or navigation entry, or is explicitly marked as intentionally unlinked.
2. For each new screen, walk to it from the product's normal navigation without using any email or direct link, and confirm the path exists and is documented.
3. Confirm that any state needing staff action, such as a pending request, shows a visible marker where staff normally look, so the notification email is not the only signal.
THEN PRINT: a table (check, PASS/FAIL, evidence, fix) + a verdict (applies / partially / OUT_OF_SCOPE / no) + the single most important next action.