Agent skill

Register Limitation

by jfarcand in jfarcand/mirroir-mcp

Register a known gap in the limitation register — file the issue in the private tracker, write the LIMITATION(registren) marker, or ledger a dark-launched feature.

Apache-2.0Auto-check passedAgent Workflows

Install Register Limitation

skills CLI
$ npx skills add jfarcand/mirroir-mcp --skill register-limitation -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jfarcand/mirroir-mcp register-limitation --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jfarcand/mirroir-mcp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/register-limitation .claude/skills/register-limitation && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
register-limitation
GitHub stars
246
Token cost
~1.4k tokens
SKILL.md length
682 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
Apache-2.0

At a glance

Register a known gap in the limitation register — file the issue in the private tracker, write the LIMITATION(registren) marker, or ledger a dark-launched feature.

  • Works in 5 steps: try to not need this → file the issue → write the marker → …
  • The register gates fail
  • SKILL.md covers When this fires, Step 0 — try to not need this, Where issues go and Step 1 — file the issue, plus 5 more sections
  • Reaches github.com

What it does

Register Limitation is an agent skill from jfarcand/mirroir-mcp. Register a known gap in the limitation register — file the issue in the private tracker, write the LIMITATION(registren) marker, or ledger a dark-launched feature. Use when the register gates fail, or when you are about to document why something is incomplete.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering MCP servers and Mobile testing and debugging. It works with Model Context Protocol and macOS. The repository describes itself as: MCP server for controlling a real iPhone via macOS iPhone Mirroring...and any MacOs app. Screenshot, tap, swipe, type — from any MCP client. The licence is Apache-2.0.

When your agent uses it

  • The register gates fail
  • You are about to document why something is incomplete

Example prompts

  • “/register-limitation”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. try to not need this
  2. file the issue
  3. write the marker
  4. if the feature ships disarmed, ledger it too
  5. verify

What it can do on your machine

Read from SKILL.md and the folder at commit c652b78. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash, rust and yaml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Register Limitation loads about 1.4k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 682 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~70
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jfarcand/mirroir-mcp at commit c652b78, republished under its Apache-2.0 licence (© jfarcand). 682 words, ~1,422 tokens.

Download SKILL.mdSave it as .claude/skills/register-limitation/SKILL.md (or your agent's skills folder).
name
register-limitation
description
Register a known gap in the limitation register — file the issue in the private tracker, write the LIMITATION(registre#n) marker, or ledger a dark-launched feature. Use when the register gates fail, or when you are about to document why something is incomplete.
user-invocable
true

Register a Limitation

When this fires

Any of these, without exception:

  • The register gates failed — "unregistered deferral/confession prose", "malformed LIMITATION marker", a file over the 500-line cap, or an inline clippy allow outside the declared list.
  • You are about to write a comment explaining why something is incomplete, restricted, or deferred.
  • You are shipping a feature disarmed (flag off, shadow mode, log-only phase).
  • You found a gap while reading code and are not fixing it in this change.

The gates are the Apache-2.0 llm-registre tool, vendored as the .registre submodule and run by Tier 1 of runner/scripts/ci/pre-push-validate.sh and by CI (limitation-register.yml).

Step 0 — try to not need this

The register exists so honest gaps become tracked obligations, not so gaps become easy to ship. If you can implement the real thing now, do that instead. Registering is the fallback, and it costs a permanent entry someone has to close later. (A file over the cap or a stray inline allow is never registered — extract the helper or fix the lint.)

Where issues go

Read registre.toml at the repo root — its tracker key names this repo's register. Never assume; registers are per project. For mirroir that is jfarcand/mirroir-carnet.

bash
grep tracker registre.toml
Trackerwhatever registre.toml says
Labelslimitation + this repo's name (iphone-mirroir-mcp)
Title[mirroir-mcp] <short statement of the gap> — always project-prefixed (registre.toml → project)

Never file on the code repo itself. It is PUBLIC, and a limitation issue states precisely where a capability or defence is incomplete — a roadmap when the code is open. Issue bodies may hold reasoning and residual risk; the code comment stays thin.

Step 1 — file the issue

File it through the carnet skill's script — the one path into the register. It reads the tracker from registre.toml, refuses a public tracker, prefixes the title [<project>] , and adds the project label. Pass --label limitation because a marker will point at this issue.

bash
.claude/skills/carnet/carnet.sh create \
  --label limitation \
  --title "Short statement of the gap" \
  --body "Where it is (file + symbol). What is incomplete. What the correct fix looks like."
# → https://github.com/jfarcand/mirroir-carnet/issues/42
#   marker: LIMITATION(registre#42): <name the limited item on this line>

Add --claim when you are about to keep working the gap in this session, so a peer sees it held. The ledger line create writes is also how bilan credits the issue as a registered limitation rather than work this session owes.

Show full SKILL.md (331 more words)Show less

Step 2 — write the marker

On the comment line that names the limited item:

rust
// LIMITATION(registre#1): device-only step kinds (launch, home, shake,
// reset_app, set_network, measure, condition) have no replay dispatch arm.

Rules that make a marker valid rather than decorative:

  • The literal is registre#<number> — the bare word, never the tracker repo name. The tracker is configuration (registre.toml); the marker never changes when it moves.
  • Name the limited item on the marker line (the symbol, variant, or tool). A marker that says only "this is incomplete" is unsearchable.
  • The marker exempts its own line from the prose ban, not the file. A second unmarked deferral sentence on the next line still fails.
  • Put it in source the gates scan. Test, bench, example and generated trees are outside the scan (.registre/limitation-gates.sh --list-files prints what is in), so a marker there is validated by nothing and never credits the issue as registered. A gap in test coverage belongs to the production item that goes uncovered: mark that item, where the next person to change it reads it.

Step 3 — if the feature ships disarmed, ledger it too

Add to feature-phases.yaml (fixed shape — the review workflow parses it with awk):

yaml
  - name: kebab-case-feature-name
    surface: Sources/mirroir-mcp/TheFlag.swift
    current: what ships today, i.e. the disarmed state
    advance_when: the criterion that arms the next phase
    review_by: 2026-09-30

The weekly "Monitor: Feature Phase Review" workflow opens a feature-phase issue in the tracker once review_by passes, so phase 1 cannot silently become forever. Keep values free of ": " and " #".

Step 4 — verify

bash
./.registre/limitation-gates.sh Sources runner/src npm scripts website/src

Expect all five gates green. Tier 1 of runner/scripts/ci/pre-push-validate.sh runs the same command before every push.

Closing an entry

Fix the gap, delete the marker in the same change, close the issue. A stale marker still exempts prose from the gates, so exhausted markers are debt of their own.

What the register does not cover

These gates are per-change: they stop new debt at authoring time and cannot reach the standing stock of defects that live between diffs — a handler nothing reaches, an override nothing reads, two components each locally correct and jointly wrong. Those come out of periodic adversarial cold-reads and get filed here like anything else. A green gate means no new unregistered debt, not a clean codebase.

© jfarcand, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/register-limitation of jfarcand/mirroir-mcp.

Open the folder on GitHubat commit c652b78

Compare with similar skills

Register Limitation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Register Limitation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Register Limitation this skilljfarcand/mirroir-mcp246—~1.4kAutomated safety check: PassApache-2.0
Iphone Useleeguooooo/iphone-use119—~2.7kAutomated safety check: PassMIT
Healthmd CLI DevelopmentCodyBontecou/health-md231—~4.3kAutomated safety check: PassAGPL-3.0
Binggo MCPluovicter-collab/bilibinggo500—~1.2kAutomated safety check: PassProprietary
Cortex Mem MCPsopaco/cortex-mem313—~2.8kAutomated safety check: PassMIT
Mps Project ManagementJetBrains/MPS1.7k—~2.2kAutomated safety check: PassApache-2.0

Similar skills

  • Iphone Use

    leeguooooo/iphone-use

    A skill your agent uses when a task needs a real iPhone — operating iOS apps that have no API (Apple Health, banking, IM apps), exporting on-phone data, tapping/typing/scrolling on the phone, or…

    119 GitHub stars~2.7k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Healthmd CLI Development

    CodyBontecou/health-md

    Develop or debug the standalone Rust Health.md CLI, portable healthmd-mcp server, and iPhone direct service.

    231 GitHub stars~4.3k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Binggo MCP

    luovicter-collab/bilibinggo

    Operates the local Binggo (bilibinggo) Bilibili lottery helper console strictly through binggo MCP tools.

    500 GitHub stars~1.2k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Cortex Mem MCP

    sopaco/cortex-mem

    Persistent memory enhancement for AI agents. An agent skill from sopaco/cortex-mem.

    313 GitHub stars~2.8k tokensUpdated 2 mo ago
    Agent WorkflowsAuto-check passed
  • Official

    Open an MPS project in a running or freshly started MPS instance when MCP tools fail because no project is open (welcome screen), close an open project with mpsmcpcloseproject, or create a new empty…

    1.7k GitHub stars~2.2k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Premiere Pro MCP

    hetpatel-11/Adobe_Premiere_Pro_MCP

    Install, verify, troubleshoot, and operate the Adobe Premiere Pro MCP server.

    668 GitHub stars~1.3k tokensUpdated 14 days ago
    Agent WorkflowsAuto-check passed

More from jfarcand/mirroir-mcp

  • Carnet

    jfarcand/mirroir-mcp

    Work the private register (mirroir-carnet) from a session — claim an issue before touching it so peers see who holds it and which session, release or close it when done, file new issues in the one…

    246 GitHub stars~2.8k tokensUpdated 4 days ago
    Auto-check passed
  • Mirroir Onboard

    jfarcand/mirroir-mcp

    Onboard a consumer web app to mirroir's .mirroir/ dotfile by EXPLORING the running app (chrome-devtools-mcp) — derive real selectors from the accessibility tree, exercise each surface's primary…

    246 GitHub stars~4.4k tokensUpdated 4 days ago
    Auto-check: notes

Questions about Register Limitation

What does Register Limitation do?

Register a known gap in the limitation register — file the issue in the private tracker, write the LIMITATION(registren) marker, or ledger a dark-launched feature. Register Limitation is an agent skill from jfarcand/mirroir-mcp. Register a known gap in the limitation register — file the issue in the private tracker, write the LIMITATION(registren) marker, or ledger a dark-launched feature.

When should I use Register Limitation?

Register Limitation fits situations like: the register gates fail; you are about to document why something is incomplete.

How do I install Register Limitation in Claude Code?

Run `npx skills add jfarcand/mirroir-mcp --skill register-limitation -a claude-code`. Or copy the skill folder (.claude/skills/register-limitation in jfarcand/mirroir-mcp) into .claude/skills/register-limitation in your project. Claude Code loads it when a task matches its description.

How do I install Register Limitation in Codex?

Run `npx skills add jfarcand/mirroir-mcp --skill register-limitation -a codex`. Or copy the skill folder (.claude/skills/register-limitation in jfarcand/mirroir-mcp) into .agents/skills/register-limitation in your project. Codex loads it when a task matches its description.

Can I use Register Limitation in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jfarcand/mirroir-mcp --skill register-limitation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/register-limitation, .gemini/skills/register-limitation, .github/skills/register-limitation and .opencode/skills/register-limitation in your project.

What does Register Limitation need to run?

SKILL.md names no scripts, command-line tools or credentials: Register Limitation is instructions for the agent only.

Does Register Limitation access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Register Limitation safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Register Limitation use?

Register Limitation is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Register Limitation use?

About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Register Limitation?

Skills that share tags, products or a category with Register Limitation: Iphone Use (leeguooooo/iphone-use, 119 stars), Healthmd CLI Development (CodyBontecou/health-md, 231 stars), Binggo MCP (luovicter-collab/bilibinggo, 500 stars) and Cortex Mem MCP (sopaco/cortex-mem, 313 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Register Limitation?

jfarcand (a GitHub user) maintains it in jfarcand/mirroir-mcp, which has 246 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 5, 2026.

Source: jfarcand/mirroir-mcp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.