Best for
- Activation Triggers
- Use Cases
- When NOT to Use
MichelKerkmeester/opencode--skilled-agent-loops-with-spec-kit-memory/.opencode/skills/mcp-tooling/mcp-refero/SKILL.md
Refero MCP transport: read-only UI design-reference search (styles, screens, flows) via Code Mode; pairs with sk-design-md-generator for a measured Style Reference (extracted design tokens).
Decision brief
Search Refero's library of real shipped UI (150,000+ app screens, 6,000+ user flows per the official repo) from an agent through the Refero MCP via Code Mode: styles for visual direction, screens for concrete UI patterns, flows for multi-step journeys. This packet is a read-only…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/MichelKerkmeester/opencode--skilled-agent-loops-with-spec-kit-memory --skill ".opencode/skills/mcp-tooling/mcp-refero"Inspect the Agent Skill "mcp-refero" from https://github.com/MichelKerkmeester/opencode--skilled-agent-loops-with-spec-kit-memory/blob/3d386ee21366523774d89c0aff3ebbbc8fa7ff10/.opencode/skills/mcp-tooling/mcp-refero/SKILL.md at commit 3d386ee21366523774d89c0aff3ebbbc8fa7ff10. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Review the “Phase Detection” section in the pinned source before continuing.
The refero manual is already registered in this repo's .utcpconfig.json (npx -y mcp-remote https://api.refero.design/mcp, stdio, empty env). Verify it is present (read-only grep, or scripts/doctor.sh), never re-add it, and never edit it. Then discover the live callables through…
Code Mode (mcpcodemodecalltoolchain) owns every Refero call, including discovery (listtools, searchtools, toolinfo).
sk-design-md-generator is the cross-hub design pairing: it extracts a live website's real CSS into a measured Style Reference DESIGN.md (named design tokens, type scale, components). This packet retrieves only requested…
Use when the user wants to: - Search Refero for design references: visual styles, real app screens, or user flows. - Find real-app screen examples for a UI pattern, state, or component ("show me real onboarding screens", "empty-state examples from shipped apps"). - Pull the full…
Permission review
The documentation includes network, browsing, or remote request actions.
| Screens | `refero_search_screens` | `query`, `platform: "web"\|"ios"` | Returns UUID records with `site`, `ux_patterns`, `ui_elements` |The documentation includes network, browsing, or remote request actions.
| Flows | `refero_search_flows` | `query`, `platform: "web"\|"ios"` | Returns **numeric** flow IDs |The documentation asks the agent to read local files, directories, or repositories.
**ALWAYS treat this packet as read-only against this repo** (`mutatesWorkspace: false`). Reads and writes happen against the external Refero service only; Write, Edit, and Task are forbidden tools for this transport.Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 98/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 34 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Search Refero's library of real shipped UI (150,000+ app screens, 6,000+ user flows per the official repo) from an agent through the Refero MCP via Code Mode: styles for visual direction, screens for concrete UI patterns, flows for multi-step journeys. This packet is a read-only TRANSPORT (packetKind: transport, mutatesWorkspace: false): every read and "write" happens against the external Refero service, never this repo, and it is never the taste authority. Any design-affecting use pairs with sk-design-md-generator for a measured Style Reference (extracted design tokens). Deep operational detail lives in references/tool-surface.md and references/mcp-wiring.md.
Naming trap (read first). Inside
call_tool_chain, Refero tools resolve with a DOUBLED prefix: the callable form isrefero.refero_refero_<tool>(...)(for examplerefero.refero_refero_search_styles), because Code Mode's{manual}.{manual}_{tool}rule applies to tools whose own names already begin withrefero_. CONFIRMED by live discovery 2026-07-16 (references/discovery-fixture-2026-07-16.json):list_toolsreturned all eight registry names in the dotted doubled formrefero.refero.refero_<tool>— pre-auth, no OAuth needed for discovery — and the fixture'sAccess as:line shows the TS callablerefero.refero_refero_search_styles(args). Per-sessiontool_infore-confirmation stays mandatory: confirm, then call, and fail closed on drift.Access trap. Live MCP access is paid and authenticated. The Free plan has no MCP access at all (denial, not a reduced tool set). Pro is the first tier with MCP and carries a published quota of 8,000 tool calls per month. Unauthenticated calls return HTTP 401.
Use when the user wants to:
site metadata.refero Code Mode manual, its OAuth or Bearer authentication, or its plan gating.Keyword Triggers: "refero", "refero mcp", "design reference", "ui reference search", "real app screens", "refero styles", "refero flows", "search refero".
Styles research (read-only). Search 3-5 semantic angles for visual direction, inspect metadata, then fetch full style references for shortlisted UUIDs. Styles cover web marketing and product pages only.
Screens research (read-only). Literal semantic queries (screen type, component, state, company) plus a required platform (web or ios); fetch detail for the most relevant UUIDs; similar screens and images only when text cannot answer.
Flows research (read-only). Search task journeys, fetch one relevant numeric flow, and use its ordered step goals, actions, and system responses.
Wiring and auth verification. Confirm the existing refero manual is registered, discovery resolves the doubled-prefix names, and authentication state is what the operator expects. Never repair auth state yourself.
Skip this skill when:
mcp-mobbin (a future sibling transport, not this packet).mcp-chrome-devtools.sk-code..utcp_config.json manual, or auth state. This transport forbids Write/Edit/Task and never mutates the workspace.Route on narrow Refero-specific signals only. Generic "design", "UI", or "screen" phrasing is not a Refero signal; Figma work belongs to mcp-figma, and browser work to mcp-chrome-devtools.
# Signal detection (pseudo)
echo "$REQUEST" | grep -qiE 'refero' && ROUTE="MCP_REFERO"
echo "$REQUEST" | grep -qiE 'design reference|ui reference search|real app (screens|examples|flows)' && ROUTE="MCP_REFERO"
# generic design/UI phrasing WITHOUT these signals -> not this packet (Refero signals only)
TASK CONTEXT
|
+- STEP 0: Verify wiring (refero manual registered; Code Mode reachable; auth state operator-confirmed)
+- STEP 1: Score intent -> STYLES | SCREENS | FLOWS | WIRING_AUTH | TROUBLESHOOT
+- Phase 1: Design-affecting? -> pair with sk-design-md-generator for a measured Style Reference (extracted tokens), then return here for retrieval
+- Phase 2: Discovery (list_tools / tool_info confirms the doubled-prefix callables) [MANDATORY]
+- Phase 3: Retrieval funnel (search -> metadata shortlist -> get_* detail -> similar -> image last)
+- Phase 4: Verify (evidence cited by source URL; unknown fields preserved; no invented limits)
The router discovers markdown resources recursively from references/ and assets/, then applies intent scoring. This skill uses a flat intent router: no keyed references/<key>/ subdirectories. References are the primary loaded resources; the single asset is the paste-ready manual snapshot.
references/tool-surface.md # the 8-tool surface, args/bounds, workflows, plan gating
references/mcp-wiring.md # manual, mcp-remote bridge, OAuth/Bearer, naming, discovery
references/troubleshooting.md # failure modes + fixes
assets/utcp-refero-manual.md # verified manual snapshot (already registered) + Bearer alternative
| Level | When to Load | Resources |
|---|---|---|
| CONDITIONAL | Research intent (styles/screens/flows) | references/tool-surface.md (tool contract + workflow baseline) |
| CONDITIONAL | Wiring / auth intent | references/mcp-wiring.md, assets/utcp-refero-manual.md |
| CONDITIONAL | Setup / error intent | references/troubleshooting.md |
| FALLBACK | Zero-score routes only | references/tool-surface.md suggested (never auto-loaded) |
| ALWAYS (design work) | Retrieved evidence feeds a design decision | sk-design-md-generator, for a measured Style Reference (extracted design tokens) |
Resilience pattern: see sk-doc smart-router template. Guard paths, discover at runtime, score intents, and fall back when unsure. Because this skill has no keyed resource subdirectories, intent selects from the flat resource inventory below.
from pathlib import Path
SKILL_ROOT = Path(__file__).resolve().parent
RESOURCE_BASES = (SKILL_ROOT / "references", SKILL_ROOT / "assets")
DEFAULT_RESOURCE = "references/tool-surface.md"
# Fallback-only: DEFAULT_RESOURCE is a defer-time suggestion, never unioned
# into a route's loaded set. Scored routes load exactly RESOURCE_MAP[intent];
# zero-score routes load nothing and ask for disambiguation instead.
DEFAULT_RESOURCE_SEMANTICS = "fallback-only"
MIN_CONFIDENCE = 1
AMBIGUITY_DELTA = 1
INTENT_MODEL = {
"STYLES": {"keywords": [("style", 4), ("visual direction", 4), ("design reference", 3), ("aesthetic", 3), ("look and feel", 3), ("design language", 3), ("landing page", 2), ("typography reference", 2), ("palette reference", 2)]},
"SCREENS": {"keywords": [("screen", 4), ("ui pattern", 4), ("similar screens", 4), ("real app", 3), ("empty state", 3), ("component example", 3), ("screenshot", 3), ("modal", 2), ("dashboard", 2), ("onboarding", 2), ("settings", 2), ("ui element", 2)]},
"FLOWS": {"keywords": [("flow", 4), ("user flow", 4), ("journey", 4), ("multi-step", 3), ("steps", 2), ("checkout", 2), ("cancel subscription", 2), ("signup process", 2)]},
"WIRING_AUTH": {"keywords": [("wiring", 4), ("utcp", 4), ("oauth", 4), ("bearer", 4), ("mcp-remote", 4), ("authenticate", 4), ("manual", 3), ("token", 3), ("register", 3), ("plan", 2), ("subscription", 2), ("install", 2), ("setup", 2)]},
"TROUBLESHOOT": {"keywords": [("error", 4), ("failed", 4), ("401", 4), ("connection closed", 4), ("not resolving", 4), ("not working", 4), ("sigsegv", 4), ("429", 3), ("quota", 3), ("timeout", 3), ("broken", 3), ("unauthorized", 3)]},
}
# Benchmark-facing mirror of INTENT_MODEL in the standard {weight, keywords} shape
# the skill-benchmark router-replay reads (the tuple form above parses to zero
# intents there). Runtime scoring uses INTENT_MODEL; this block changes no routing.
# Per-intent weight = the MAX per-keyword weight in INTENT_MODEL for that intent
# (all five resolve to 4). Keys and keywords MUST stay identical to INTENT_MODEL;
# keep the two blocks in sync whenever either one is edited.
INTENT_SIGNALS = {
"STYLES": {"weight": 4, "keywords": ["style", "visual direction", "design reference", "aesthetic", "look and feel", "design language", "landing page", "typography reference", "palette reference"]},
"SCREENS": {"weight": 4, "keywords": ["screen", "ui pattern", "similar screens", "real app", "empty state", "component example", "screenshot", "modal", "dashboard", "onboarding", "settings", "ui element"]},
"FLOWS": {"weight": 4, "keywords": ["flow", "user flow", "journey", "multi-step", "steps", "checkout", "cancel subscription", "signup process"]},
"WIRING_AUTH": {"weight": 4, "keywords": ["wiring", "utcp", "oauth", "bearer", "mcp-remote", "authenticate", "manual", "token", "register", "plan", "subscription", "install", "setup"]},
"TROUBLESHOOT": {"weight": 4, "keywords": ["error", "failed", "401", "connection closed", "not resolving", "not working", "sigsegv", "429", "quota", "timeout", "broken", "unauthorized"]},
}
RESOURCE_MAP = {
"STYLES": ["references/tool-surface.md"],
"SCREENS": ["references/tool-surface.md"],
"FLOWS": ["references/tool-surface.md"],
"WIRING_AUTH": ["references/mcp-wiring.md", "assets/utcp-refero-manual.md"],
"TROUBLESHOOT": ["references/troubleshooting.md", "references/mcp-wiring.md"],
}
UNKNOWN_FALLBACK_CHECKLIST = [
"Confirm the layer: styles (visual direction), screens (UI patterns), or flows (journeys)",
"Confirm the refero manual is registered and discovery (tool_info) confirms the doubled-prefix callables",
"Confirm the account has a Pro (or higher) plan; Free has no MCP access at all",
"If the evidence will influence a design decision, pair with sk-design-md-generator for a measured Style Reference (extracted design tokens); this transport never decides taste",
]
def _guard_in_skill(relative_path: str) -> str:
resolved = (SKILL_ROOT / relative_path).resolve()
resolved.relative_to(SKILL_ROOT) # raises if path escapes the skill
if resolved.suffix.lower() != ".md":
raise ValueError(f"Only markdown resources are routable: {relative_path}")
return resolved.relative_to(SKILL_ROOT).as_posix()
def discover_markdown_resources() -> set[str]:
docs = []
for base in RESOURCE_BASES:
if base.exists():
docs.extend(p for p in base.rglob("*.md") if p.is_file())
return {d.relative_to(SKILL_ROOT).as_posix() for d in docs}
def classify_intents(request: str):
text = (request or "").lower()
scores = {i: 0 for i in INTENT_MODEL}
for intent, cfg in INTENT_MODEL.items():
for kw, w in cfg["keywords"]:
if kw in text:
scores[intent] += w
ranked = sorted(scores.items(), key=lambda kv: kv[1], reverse=True)
primary, top = ranked[0]
if top == 0:
return (None, None, scores) # unrouted -> no intent selected; fallback branch disambiguates
secondary, second = ranked[1]
if second > 0 and (top - second) <= AMBIGUITY_DELTA:
return (primary, secondary, scores)
return (primary, None, scores)
def route_refero_resources(request: str):
inventory = discover_markdown_resources()
primary, secondary, scores = classify_intents(request)
intents = [i for i in (primary, secondary) if i]
loaded, seen, notices = [], set(), []
def load_if_available(rel: str) -> bool:
guarded = _guard_in_skill(rel)
if guarded in inventory and guarded not in seen:
load(guarded); loaded.append(guarded); seen.add(guarded)
return True
if guarded not in inventory:
notices.append(f"Resource not found in inventory: {guarded}")
return False
if max(scores.values() or [0]) < MIN_CONFIDENCE:
# Fallback-only: nothing is loaded on a zero-score route; the default
# reference is offered as a suggestion beside the disambiguation ask.
return {"intents": intents, "load_level": "UNKNOWN_FALLBACK", "needs_disambiguation": True,
"disambiguation_checklist": UNKNOWN_FALLBACK_CHECKLIST,
"suggested_fallback": DEFAULT_RESOURCE, "resources": loaded, "notices": notices}
for intent in intents:
for rel in RESOURCE_MAP.get(intent, []):
load_if_available(rel)
return {"intents": intents, "intent_scores": scores, "resources": loaded, "notices": notices}
The refero manual is already registered in this repo's .utcp_config.json (npx -y mcp-remote https://api.refero.design/mcp, stdio, empty env). Verify it is present (read-only grep, or scripts/doctor.sh), never re-add it, and never edit it. Then discover the live callables through Code Mode before any call:
// Discovery names appear dotted: refero.refero.refero_search_styles
const all = await list_tools();
// MANDATORY: confirm the exact callable + schema before relying on any name
const info = await tool_info({ tool_name: "refero.refero_refero_search_styles" });
The doubled-prefix callable form (refero.refero_refero_<tool>) is confirmed by live registry evidence (2026-07-16 discovery fixture, references/discovery-fixture-2026-07-16.json): all eight tools were live-listed pre-auth as refero.refero.refero_{search_styles,search_screens,get_style,get_similar_screens,get_screen_image,get_screen,search_flows,get_flow}, resolving the research record's conflicting derivations — the single-prefix derivation is dead. Discovery is pre-auth; authenticated CALLS remain operator-gated. The per-session tool_info confirmation step is still not optional. If discovery shows the eight tools missing, renamed, or expanded, fail closed: report the drift; a changed provider surface requires a reviewed packet update, not an improvised call.
The expected contract (authoritative docs baseline; tool_info is the final live schema). Full args, bounds, and result shapes: references/tool-surface.md.
| Layer | Tool | Required args | Notes |
|---|---|---|---|
| Styles | refero_search_styles | query | page (default 1) pagination |
| Styles | refero_get_style | exactly one of style_id | style_ids[] | Full styles are ~10-15k chars each; batch 3-4 |
| Screens | refero_search_screens | query, platform: "web"|"ios" | Returns UUID records with site, ux_patterns, ui_elements |
| Screens | refero_get_screen | exactly one of screen_id | screen_ids[] | Never pass image_size or include_similar here |
| Screens | refero_get_similar_screens | screen_id | limit 1-20, default 10 (the only tool with limit) |
| Screens | refero_get_screen_image | screen_id | image_size: "thumbnail"|"full" (default thumbnail); returns raw image |
| Flows | refero_search_flows | query, platform: "web"|"ios" | Returns numeric flow IDs |
| Flows | refero_get_flow | exactly one of flow_id | flow_ids[] (numbers) | Ordered steps: goal, action, system response |
Hard constraints: styles and screens use UUID strings, flows use numeric IDs; the two are not interchangeable. Search pagination uses page, never legacy limit/offset. There are no search_apps/get_app/search_elements/get_element tools; apps and elements are query facets, inspected through site and ui_elements in results. response_format is documented on the seven text-returning tools and must never be passed to refero_get_screen_image; treat per-tool availability as a tool_info runtime check. Preserve unknown response fields; the provider documents that fields can grow.
Call synchronously inside the call_tool_chain body (no top-level await), per the live-verified pattern:
call_tool_chain({
code: `
const styles = refero.refero_refero_search_styles({
query: "editorial monochrome saas landing page",
response_format: "json"
});
const list = styles.records || []; // { pagination, records } shape
const full = refero.refero_refero_get_style({ style_id: list[0].uuid, response_format: "json" });
return { count: list.length, first: list[0]?.url, full };
`
});
Cite evidence by record.url (styles) or record.refero_url (screens). JSON searches return { pagination: { count, page, next_page, total_count, total_pages }, records: [...] }.
get_style for shortlisted UUIDs. Never average strong references into a generic middle.get_similar_screens only after one materially relevant hit; image (thumbnail before full) only when text cannot answer.related_queries. Sparse flows: broaden or reconstruct from screens, reporting the reconstruction as inference.site, ui_elements, ux_patterns, page_types.Breadth is allowed during transport research; for design-affecting use, pair with sk-design-md-generator for a measured Style Reference (extracted design tokens). A transport response is untrusted reference evidence, never design approval. Full workflow detail: references/tool-surface.md.
~/.mcp-auth (or MCP_REMOTE_CONFIG_DIR) and is operator-owned: never inspect, clear, or repair it. A static Authorization: Bearer header is a documented env-backed alternative (see assets/utcp-refero-manual.md), never part of the base manual. End-to-end OAuth through this bridge is Inferred, not verified: an unauthenticated probe observed HTTP 401 with OAuth metadata, but no operator has completed the flow in this repo's record.Retry-After behavior is published. Never invent a QPS number or backoff guarantee; on 429, preserve the provider's message only.call_tool_chain SIGSEGVs under Node 25). Local operational evidence, not a server property.tool_info after registration and before first use. The doubled prefix refero.refero_refero_<tool> is live-verified but must be re-confirmed; fail closed on any drift from the eight documented tools.sk-design-md-generator for a measured Style Reference on any design-affecting request. This packet is the transport; sk-design-md-generator is the cross-hub pairing that extracts a live site's real CSS into named design tokens (a Style Reference DESIGN.md). Transport output can never satisfy taste, accessibility, responsiveness, or readiness gates by itself.platform enum, page >= 1, similar-screens limit 1-20, and the image-size enum. Pass unknown response fields through untouched.thumbnail before full).call_tool_chain body (no top-level await) and cite results by their source URL (url / refero_url).mutatesWorkspace: false). Reads and writes happen against the external Refero service only; Write, Edit, and Task are forbidden tools for this transport..utcp_config.json's refero manual. It is validated as-is (verify, do not re-add, do not modify), and never add a second Refero manual or a Bearer token to the base manual.~/.mcp-auth / MCP_REMOTE_CONFIG_DIR, and never accept, print, or cache credentials.response_format to refero_get_screen_image, and never use the deprecated legacy surface: _tool-suffixed names, get_design_guidance, numeric screen IDs, limit/offset search pagination, or image_size/include_similar on refero_get_screen.references/tool-surface.md. A provider-surface change requires a reviewed packet update.call_tool_chain drops the connection (-32000 Connection closed), which locally indicates a Node 25 runtime; the Node 24 pin is an operator-side fix.sk-design-md-generator Style Reference (its extracted design tokens), asking which source prevails before any design conclusion is drawn.refero manual, the mcp-remote bridge (transport strategy, OAuth, auth state), the doubled-prefix naming rule, and the discovery-first contract..utcp_config.json manual snapshot (already registered: verify, do not re-add) plus the env-backed Bearer-header alternative, marked alternative-only.tool-surface.md is the baseline (always). Load mcp-wiring.md and the manual asset for wiring/auth intent, troubleshooting.md for errors.Wiring verification complete when:
refero manual was confirmed present in .utcp_config.json read-only (no edit, no re-add), and discovery (list_tools / tool_info) confirmed the doubled-prefix callables, or the auth/entitlement blocker was escalated to the operator.Retrieval complete when:
Design-affecting use complete when:
sk-design-md-generator was paired for a measured Style Reference, the transport supplied only requested evidence, and no taste, accessibility, or readiness verdict was issued from transport output.Always:
mcp__code_mode__call_tool_chain) owns every Refero call, including discovery (list_tools, search_tools, tool_info)..utcp_config.json read-only.scripts/doctor.sh diagnostics; this transport has no other shell role (Code Mode owns the stdio process launch, so the packet never runs npx itself).sk-design-md-generator is the cross-hub design pairing: it extracts a live website's real CSS into a measured Style Reference DESIGN.md (named design tokens, type scale, components). This packet retrieves only requested shipped-UI evidence and returns it to that measured-extraction pairing.mcp-code-mode is the substrate: manuals, {manual}.{manual}_{tool} naming, prefixed env vars (refero_<NAME> if a token is ever wired via env), discovery, and the error-envelope discipline all come from it.mcp-figma is the sibling Figma transport in this hub; mcp-mobbin is a planned future sibling for Mobbin research. Neither overlaps this packet's Refero surface.https://api.refero.design/mcp): the external, paid, read-only design-reference service. Requires a Pro (or higher) plan and authentication; not vendored, not mirrored.npx. HTTP-first transport strategy; do not force SSE.Required: references/tool-surface.md (tool contract baseline). Conditional: mcp-wiring.md + assets/utcp-refero-manual.md (wiring/auth), troubleshooting.md (errors).
| Item | Value |
|---|---|
| Endpoint | https://api.refero.design/mcp (remote HTTP; bridged by npx -y mcp-remote) |
| Manual | refero in .utcp_config.json (already registered; verify, never edit) |
| Callable form | refero.refero_refero_<tool>(...) (doubled prefix — confirmed by 2026-07-16 discovery fixture; registry names are dotted refero.refero.refero_<tool>; re-confirm via tool_info per session) |
| Layers | Styles (2 tools) · Screens (4 tools) · Flows (2 tools) |
| ID typing | Styles/screens: UUID strings · Flows: numeric IDs |
response_format | Seven text tools only; never on refero_get_screen_image |
| Funnel | styles -> screens -> flows; metadata first; image last (thumbnail before full) |
| Style batches | 3-4 UUIDs per get_style (each ~10-15k chars) |
| Plans | Free: NO MCP · Pro: 8,000 calls/month · Team: inherits Pro · Business: custom |
| Unknowns | Per-second/burst/concurrency/429 behavior unpublished; OAuth end-to-end Inferred |
| Local runtime | Code Mode on Node 24 (Node 25 SIGSEGVs); synchronous calls, no top-level await |
| Design pairing | sk-design-md-generator, for a measured Style Reference (extracted design tokens) |
The router (Section 2) discovers reference and asset docs dynamically. Start from references/tool-surface.md for the tool contract and workflows, references/mcp-wiring.md for the bridge and auth model, and references/troubleshooting.md for failures.
Assets: assets/utcp-refero-manual.md (the verified, already-registered manual snapshot plus the Bearer alternative), loaded for wiring/auth intent.
Scripts: scripts/doctor.sh (read-only, non-interactive diagnostics; optional endpoint probe gated behind REFERO_DOCTOR_LIVE=1) and scripts/install.sh (verify-only posture check: runtime prerequisites, manual presence read-only, operator-only auth boundaries; nothing is installed or modified).
Examples: examples/ carries worked Code Mode walkthroughs (the full styles -> screens -> flows funnel, a metadata-first lookup, and a screen-image fetch), each opening with the mandatory tool_info confirmation and marking OAuth-gated steps SKIP-valid.
Related skills: sk-design-md-generator (the measured Style Reference pairing — extracted design tokens), mcp-code-mode (the substrate), mcp-figma (the sibling Figma transport), mcp-chrome-devtools (browser preview only), sk-code (adapting evidence into an app), and system-spec-kit when packet documentation or memory continuity applies.
Install guide: INSTALL-GUIDE.md.
Upstream: the Refero MCP is the paid service at refero.design/mcp (docs at doc.refero.design). The official referodesign/refero_skill repository (MIT, default branch master) is a design methodology skill and a peer of sk-design-md-generator; this packet deliberately does not vendor or duplicate it.
Frequently asked questions
Search Refero's library of real shipped UI (150,000+ app screens, 6,000+ user flows per the official repo) from an agent through the Refero MCP via Code Mode: styles for visual direction, screens for concrete UI patterns, flows for multi-step journeys. This packet is a read-only…
The source record exposes this install command: npx skills add https://github.com/MichelKerkmeester/opencode--skilled-agent-loops-with-spec-kit-memory --skill ".opencode/skills/mcp-tooling/mcp-refero". Inspect the command and pinned source before running it.
Static rules flagged network, read-files in the source; the page lists the matching lines and excerpts.
Alternatives
brucesongs/kali-claw
Insecure Design (OWASP A06:2025) focuses on security flaws in system architecture and design phases, rather than code implementation-level bugs.
NintendaDev/unikit-ai
Generate and maintain the project's TECHNICAL documentation from its codebase — scans the project structure, tech stack, and module boundaries, then writes a lean README landing page plus detailed topic pages (architecture, modules, setup, build, APIs), only the docs that are relevant. Use whenever the user wants to create, update, or validate documentation of the CODE or the project itself, e.g. "generate documentation", "create docs", "write the README", "update the project docs", "document th
Jamie-BitFlight/claude_skills
Create high-quality Claude Code agents from scratch or by adapting existing agents as templates. Use when the user wants to create a new agent, modify agent configurations, build specialized subagents, or design agent architectures. Guides through requirements gathering, template selection, and agent file generation following Anthropic best practices (v2.1.63+).
magnus919/agent-skills
Use this skill to reverse-engineer an existing software system, map its architecture, data flow, privacy posture, coupling, quality characteristics, and feature surface, then produce an evidence-grounded clean-room design document, PRD, or migration plan under new constraints. Use for codebase archaeology, implicit contract extraction, architecture health assessment, or decomposition-readiness analysis. Do not use for greenfield architecture design, direct code review, bug hunting, security audi