Skip to content
Back to skills

Feature Visibility Surface

ASecurity

A live demo or admin page shipped with every feature whose results the user would otherwise not see. Use when adding a backend endpoint or feature with no UI to see it, when output only shows in logs, the DB, or an agent run, or when the user asks 'how do I test this'.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 3, 2026
developmentrustshellapifrontendbackend

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 3, 2026

npx -y skills add armanisadeghi/ai-matrx --skill feature-visibility-surface --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Feature Visibility Surface?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Feature Visibility Surface
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/armanisadeghi-feature-visibility-surface/badge)](https://www.skillsdirectory.com/skills/armanisadeghi-feature-visibility-surface)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: feature-visibility-surface
description: "A live demo or admin page shipped with every feature whose results the user would otherwise not see. Use when adding a backend endpoint or feature with no UI to see it, when output only shows in logs, the DB, or an agent run, or when the user asks 'how do I test this'."
---

# Ship a visibility surface with every feature (frontend recipe)

> **A feature the user can't open and watch work is a feature you'll both burn turns
> guessing about.** Build the page in the SAME change — it's the next file, not a ticket.

## Demo page or admin page?

- **No privileges to view** → **demo**: `(dev)/demos/<name>/page.dev.tsx` (auth shell) or
  `(public-demos)/demos/public/<name>/page.tsx` (no auth). Auto-listed at `/demos`. Use the
  `new-route-scaffold` skill to place it.
- **Needs privileged / cross-user / admin data or actions** → **admin**:
  `(admin)/administration/<name>/page.tsx` (super-admin gated at the layout; lower with an
  in-page `selectIsAdmin` seam if org-admins should reach it later).

Prefer the lower bar (demo) when unsure.

## The recipe (self-contained `features/<name>/`)

- **Read the live backend, never hardcode the URL.** Resolve the base from
  `selectResolvedBaseUrl` (`apiConfigSlice`) — the same value every backend call uses, so
  the admin server toggle routes it. Runtime-guard the JSON (untrusted). For authed
  POST/execute calls use the canonical backend client (`lib/api/backend-client.ts` →
  `createAuthenticatedClient`), not a hand-rolled fetch.
- **Make it a test bench, not just a viewer.** A few `Select`/inputs to drive the feature;
  show the REAL result (and, for actions, the receipt). Reuse existing renderers — e.g. the
  `features/matrx-envelope` block renderer for live reference chips — never fork one.
- **Real states + real-time.** Component-library loading/empty/error states (never plain
  "Loading…"), a manual Refresh + light polling so it mirrors the live server with no
  redeploy.
- **Standards.** Semantic tokens only, Lucide icons, no emojis, dense + scannable for an
  admin surface (see `ui-dense` / `data-dense-panels`). No new barrels; import from source.

## Reuse, never fork

Base URL resolver, backend client, component library, admin gate, envelope renderer — all
exist. If you're writing a second fetch layer or a second renderer, stop.

## Worked example (copy its shape)

`features/directive-catalog/` → `/administration/directive-catalog`: a live grid of every
capability (read from `GET /directives/catalog`) + a dropdown builder that runs one and shows
the receipt (`POST /directives/execute`). That's the bar.

## Done means

The page opens, reads the **live** backend, shows the real output, lets the user
trigger/test the meaningful path, is reachable (feature admin map / `/demos` index), and you
told the user the exact URL + what they'll see in your turn summary.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…