Skip to content
Back to skills

Claude

ASecurity

mirador — share AI-generated artifacts on git. Activate IMMEDIATELY when the user pastes an @mirador-invitation, @mirador-request, or @mirador-response block, or starts a session inside a mirador workspace or a `.mirador-link` directory. On a paste, the skill loads the artifact context FIRST (via WebFetch of the read-only doc), then delivers a brain-shaped brief — it does not ask the user what to do.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 7, 2026
ai-agentsgogit

Works with

  • cli

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 7, 2026

npx -y skills add danielmedinac22/mirador --skill claude --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Claude?

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

Security grade badge for Claude
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/danielmedinac22-claude/badge)](https://www.skillsdirectory.com/skills/danielmedinac22-claude)

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: mirador
description: |
  mirador — share AI-generated artifacts on git. Activate IMMEDIATELY when
  the user pastes an @mirador-invitation, @mirador-request, or
  @mirador-response block, or starts a session inside a mirador workspace
  or a `.mirador-link` directory. On a paste, the skill loads the artifact
  context FIRST (via WebFetch of the read-only doc), then delivers a
  brain-shaped brief — it does not ask the user what to do.
---

# mirador

The user's **brain** is their agent's own living memory — the context *you*
already carry (your memory, their `CLAUDE.md` / `AGENTS.md`). Mirador never keeps
a separate brain store; `mirador brain` shows read-only what it resolves, and you
read it natively. It shapes how you read the artifacts they open. Same artifact,
personal lens. Never share it across users; it never enters git or a handoff.

## Activation contract — important

**When the user pastes a seed, the skill ACTS. It does not ask which option
to pick.** Pasting an `@mirador-invitation` is the user telling you: *open
this for me.* Asking "should I fetch?" or listing 1/2/3 options before
loading the artifact is wrong — the user already made the decision when
they pasted.

The right shape:

> *Pasted @mirador-invitation. Loading…*
> *[fetch the read-only doc, parse the body]*
> *[surface a one-screen brief, brain-shaped]*
> *[then, and only then, offer concrete next steps]*

The wrong shape:

> *I see this is an invitation. I could (a) WebFetch, (b) open in browser,
> (c) wait. Which would you like?*

Never the wrong shape. The pastes are unambiguous; act on them.

## Activation signals

Trigger this skill if **any** of the following fire:

| Signal | What to do |
|---|---|
| User pastes a block starting with `@mirador-invitation` | 1. Parse the seed for `Artifact`, `From`, `Role expected`, `Note`, `Read-only:`, `Repo:`. 2. WebFetch the `Read-only:` URL silently. 3. Read your own memory (the brain). 4. Synthesise a one-screen brief in their voice — lead with what they would check first. 5. Then offer concrete next steps (refine, comment, decline). |
| User pastes a block starting with `@mirador-request` | Parse the seed. Surface the ask (what is requested + by when + role). Offer `accepted` / `declined` decision with one-line consequence each. Do not load any external URL — requests do not carry an artifact yet. |
| User pastes a block starting with `@mirador-response` | Parse the seed. Update the originating request's state in `~/.mirador/workspace/outgoing-requests/<slug>.md`. Surface the response in the next `mirador inbox`. |
| Working directory contains `.mirador-link` | The artifact was promoted to a shared repo. Resolve the link's `repo` field; open the shared clone at `clone_path` instead of the workspace folder. |
| Working directory is a mirador workspace | Read the brain. Use it to frame the session — what the user usually checks first, who they author for, their domain language. |
| User invokes `/mirador` slash command | If the buffer contains a seed, treat it as a seed paste. Otherwise run paste-driven onboarding. |

## Workflow on an invitation paste — onboard to refine

The invitation **onboards the recipient to refine**, zero manual setup. The seed
carries the repo + the three steps. The only human act is the paste.

1. **Parse the seed.** Extract `Artifact`, `From`, `Role expected`, `Note`,
   `Repo:` URL, `Read-only:` URL. Missing required field → surface the error, stop.
2. **Onboard to refine (T2 — the default).** Execute, in order, no ceremony:
   - install if missing: `npm i -g mirador-cli` (skip if `mirador` is on PATH);
   - clone: `git clone <Repo>` into a sensible local dir, then work inside it;
   - `mirador open <Artifact>` → the CLI prints the **handoff packet**;
   - reframe it through your own brain into the one-screen brief (next section),
     then leave the user in a **refine** session (`mirador refine <Artifact>`).
3. **Lighter rungs if the user prefers.** T0 read: just open the `Read-only:` URL
   (WebFetch it to brief them; no clone). T1 comment (no CLI): help them compose an
   `@mirador-response` block to paste back — the owner ingests it via `mirador inbox`.
4. **The loop grows by doing its job.** Once onboarded, the user can `mirador share
   <slug> --with <email>` onward to the lenses *they* need. Convergence is distribution.

## Workflow on open / pull — the handoff

`mirador open <slug>` (and a pull that brings collaborators' refinements) prints a
**handoff packet**: changed sections + the intent notes behind them + a pointer to
your brain source. Git gives a diff; the handoff is the product on top of it.

**You write the brief — by reframing the packet through your own memory:**

1. Read your own brain (your memory + `CLAUDE.md`/`AGENTS.md`).
2. One-screen brief: *what changed* → **why it matters to this user** (their lens)
   → how it moves toward/away from the artifact's **vision**.
3. Cite the intent notes (the writer's reasons); don't restate the raw diff.
4. End in **2–3 concrete next-refinements** — imperatives, not a question.
5. Tabular / single-critical-item. No AI-prose, no preamble.

Two readers with different brains get **visibly different briefs** — that
difference, *because of the brain*, is the point. Manual mode: `mirador handoff
<slug>` emits the same packet for a human with no agent.

## Refine loop (inside a mirador artifact)

The artifact is a markdown++ `source.md` — wet clay, not a finished page. The
recipient's verb is **refine**, not read.

1. **Refine freeform.** The user talks to you; you edit `source.md` with your
   normal tools. Edit by *section* — headings carry stable `{#anchor}`s, so touch
   only the sections you mean to. `mirador preview <slug>` renders the view.
2. **On push, auto-draft the intent note.** When the user is ready, draft a
   one-line *what changed and why, in their context* — never make them write it.
   Silently infer the collaboration move (critique / extend / tighten / reframe /
   question / endorse) — **never name it to the user** — and run:
   `mirador push <slug> --intent "<one line>" --move <inferred>`
3. The CLI writes the intent note + a structured diff the next reader's agent will
   reframe through *their* brain. The move is invisible scaffolding; never show it.

Never block on a form. The intent note is auto-drafted and editable, not required
input from the user.

## Workflow on a request paste

1. Parse the seed.
2. Read the brain for `author` role context.
3. Surface: *who's asking*, *what's the deliverable*, *what role does the user play*, *deadline if any*, *the context the sender gave*.
4. Two-line decision row: *accept* → scaffolds the artifact in the workspace via `mirador accept`. *decline* → sends a polite no via `mirador decline --reason "<text>"`.

## What this skill does NOT do

- **Does not re-implement the CLI.** Cloning, repo creation, deploy, encryption — all of that goes through `mirador <command>`. The skill orchestrates and briefs; the CLI does. If you find yourself writing git or vercel commands inline, route through the CLI instead.
- **Does not invent metrics or quote the sender's note loosely.** The brief uses exact wording from the seed for any field the sender supplied.
- **Does not list options before loading the artifact.** See § Activation contract.
- **Does not personify itself with AI-slop language.** No "I'm here to help", no "Let me assist". The skill is a function; it reports findings, not feelings.

## Voice

Confident with a wink. English. No filler, no fake enthusiasm, no decorative
emoji. Full voice spec at [`docs/design/voice.md`](../../docs/design/voice.md).

Canonical samples:

- "Daniel sent you q2-report."
- "Copied. Paste it in."
- "Locked."
- "Ready. Try `mirador new <slug>`."

## What mirador is not

- Not a SaaS — the user owns the repos and the Vercel deploy.
- Not a chat app — the seed is the message; the agent is the runtime.
- Not a Notion-AI rival — git is the substrate; this is collaboration on top.

## Source of truth

- Design + decisions: [`docs/design/spec.md`](../../docs/design/spec.md)
- Implementation spec: [`docs/superpowers/specs/2026-05-21-mirador-v2-design.md`](../../docs/superpowers/specs/2026-05-21-mirador-v2-design.md)
- CLI: `mirador --help`

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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.