Phone Harness
ShawnPana/phone-harness
Control the user's phone - an iPhone through the Mac's iPhone Mirroring window, an Android over adb, a rented cloud Android, or a cloud iPhone over HTTPS: open apps, tap, type, swipe, read the screen.
Lead-only council for a hard-to-reverse fork - a neutral brief, sealed independent seats, one premise verifier on unanimity, bounded verifiers, one cross-examination round, a draft-verdict audit…
$ npx skills add ReinaMacCredy/maestro --skill maestro-council -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ReinaMacCredy/maestro maestro-council --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ReinaMacCredy/maestro.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/plugins/skills/maestro-council .claude/skills/maestro-council && rm -rf skills-srcUse ~/.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/
Install the "maestro-council" agent skill from https://github.com/ReinaMacCredy/maestro/tree/main/src/plugins/skills/maestro-council into .claude/skills/maestro-council/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maestro-council", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ReinaMacCredy/maestro/tree/main/src/plugins/skills/maestro-councilType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ReinaMacCredy/maestro --skill maestro-council -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ReinaMacCredy/maestro maestro-council --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ReinaMacCredy/maestro.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/plugins/skills/maestro-council .agents/skills/maestro-council && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "maestro-council" agent skill from https://github.com/ReinaMacCredy/maestro/tree/main/src/plugins/skills/maestro-council into .agents/skills/maestro-council/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maestro-council", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ReinaMacCredy/maestro --skill maestro-council -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ReinaMacCredy/maestro maestro-council --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ReinaMacCredy/maestro.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/plugins/skills/maestro-council .cursor/skills/maestro-council && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "maestro-council" agent skill from https://github.com/ReinaMacCredy/maestro/tree/main/src/plugins/skills/maestro-council into .cursor/skills/maestro-council/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maestro-council", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ReinaMacCredy/maestro.git --path src/plugins/skills/maestro-council--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ReinaMacCredy/maestro --skill maestro-council -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ReinaMacCredy/maestro maestro-council --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ReinaMacCredy/maestro.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/plugins/skills/maestro-council .gemini/skills/maestro-council && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "maestro-council" agent skill from https://github.com/ReinaMacCredy/maestro/tree/main/src/plugins/skills/maestro-council into .gemini/skills/maestro-council/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maestro-council", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ReinaMacCredy/maestro maestro-councilInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ReinaMacCredy/maestro --skill maestro-council -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ReinaMacCredy/maestro.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/plugins/skills/maestro-council .github/skills/maestro-council && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "maestro-council" agent skill from https://github.com/ReinaMacCredy/maestro/tree/main/src/plugins/skills/maestro-council into .github/skills/maestro-council/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maestro-council", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ReinaMacCredy/maestro --skill maestro-council -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ReinaMacCredy/maestro maestro-council --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ReinaMacCredy/maestro.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/plugins/skills/maestro-council .opencode/skills/maestro-council && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "maestro-council" agent skill from https://github.com/ReinaMacCredy/maestro/tree/main/src/plugins/skills/maestro-council into .opencode/skills/maestro-council/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maestro-council", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
maestro-councilLead-only council for a hard-to-reverse fork - a neutral brief, sealed independent seats, one premise verifier on unanimity, bounded verifiers, one cross-examination round, a draft-verdict audit…
Maestro Council is an agent skill from ReinaMacCredy/maestro. Lead-only council for a hard-to-reverse fork - a neutral brief, sealed independent seats, one premise verifier on unanimity, bounded verifiers, one cross-examination round, a draft-verdict audit, and one binding verdict recorded as a decision with its dissent. Never inside a seat.
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/brief.md` and `references/report-format.md`).
It sits in Mobile, covering Mobile testing and debugging. The repository describes itself as: Local-first coordination for human and agent work: durable work, decisions, dispatches, evidence, and prompt-first methods, powered by TypeScript and Bun. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 2412403. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Maestro Council loads about 2.9k tokens when it runs, and up to ~4.1k if it reads all its reference files. Until then it costs about 74 tokens; SKILL.md has 1,422 words of instructions outside code blocks.
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.
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.
The full file from ReinaMacCredy/maestro at commit 2412403, republished under its MIT licence (© ReinaMacCredy). 1,422 words, ~2,858 tokens.
.claude/skills/maestro-council/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.<!-- maestro-skill-version: dev -->
Use when maestro-design intake scores yes on every ROI question including
hard to reverse. The Lead is the final arbiter: it frames, seals, collects,
verifies, drafts, and decides. It never performs a seat's analysis itself and
never spawns another Lead. Council ends at a decision and a handoff contract;
seats never implement.
Proceed only as the Lead of a running team, or in a plain session outside a team. A Peer, Verifier, Auditor, or any other seat refuses in one line and returns to its own assignment. A seat never opens a council. No Observer seat exists (Hub d98); a council has exactly the seats its tier names.
The owner chooses the Lead's model and effort; do not second-guess it. Seat routing lives in the five seat profiles of bundle slp-profiles (independent, challenger, specialist, verifier, auditor); this skill carries no routing table.
tier -> the smallest sufficient tier, in one sentence
brief -> neutral brief + case output contract + framing lint
sealed -> one bound work item per round 1 seat, read nothing until all return
collect -> seat audit, failure policy
model -> typed claims with statuses
verify -> premise verifier on unanimity, bounded verifiers on dispute
cross -> one challenge and one response per disputed unit
draft -> the Lead drafts alone
audit -> auditor by tier
verdict -> decision draft with dissent, handoff note on the work itemRe-anchor on this list when unsure which step is active. Announce each phase in one line.
lens: one Independent.debate (default): Independent + Challenger.debate-with-proof: Independent + Challenger, Verifiers as needed, audit by
default.high-risk: Independent + Challenger at the high-risk profile, optionally
one Specialist, Verifiers as needed, audit mandatory.Pick the tier in one sentence. The design ROI score decides only whether a council happens; it never picks the tier.
Write the neutral brief from the template in
references/brief.md. The original request stays
verbatim. The snapshot is the branch, commit, and dirty paths, pinned as
maestro-design intake already requires; a hash detects drift, it does not
preserve bytes. Design the case output contract for this case's natural
units (findings, options, gates, timeline) from the patterns in
references/report-format.md; never force
POSITION or a fixed claim count where it does not fit.
Framing lint: repair the brief until every answer is yes.
Ask the user only when missing authority or scope would change the decision. After lint, the next action is opening the seats; no more context gathering.
Every core seat receives the identical brief and output contract plus exactly one role line:
Open every seat before reading any report. Round 1 is sealed: no seat sees the Lead's view, another report, or another seat's identity, and the Lead reads nothing until every required seat has returned. Seats are analysis only: no edits, no spawning, no contact with other seats, no council skill.
After every required seat returns:
git status --short against the pinned dirty
paths, and read maestro trace <id> for each seat's work item.COMPROMISED: its report is unused and named as such in the verdict
(Hub d93). Isolation is by profile (Claude disallowedTools, Codex
read-only sandbox under the subagent executor) and audited here; never
claim a write was technically impossible.lens cannot issue a verdict without its seat; debate
tiers continue with one missing core seat only as DEGRADED; high-risk
never issues a normal verdict without both core seats.Reduce valid reports into the smallest model that keeps every natural unit.
Type each material claim when its type sets the evidence bar: FACT,
INFERENCE, CAUSAL CLAIM, FORECAST, VALUE / PREFERENCE,
AUTHORITATIVE CONSTRAINT. Statuses are exactly:
verified | falsified | authoritative | supported inference |
contested inference | unresolved | insufficient coverage | snapshot mismatchOnly facts and direct observations are eligible for factual verification.
insufficient coverage is never evidence that a claim is false. Do not build
a claim graph or a store; the model lives in the Lead's draft.
Unanimity is not a skip: above lens, when every valid seat agrees, open exactly one Verifier whose single mandate is to name the shared premise in the brief that drives the common conclusion and test it. Verified leads to the Lead draft; falsified opens a second generation with a corrected brief (Hub d94). Only a material dispute opens the full path below.
For a material factual dispute, open one to three Verifiers, each with one precise proposition, the authorized sources, and one distinct mandate: supporting evidence, disconfirming evidence, or coverage audit. Use only the mandates the proposition needs; identical prompts never form an ensemble vote (Hub d95). A Verifier returns:
PROPOSITION CHECKED
MANDATE
SOURCES OR LOCATIONS SEARCHED
DIRECT OBSERVATIONS
RESULT: verified | falsified | partial | insufficient coverage | snapshot mismatch
LIMITATIONSA snapshot mismatch stops that proposition until the source is refreshed.
At most one challenge and one response per disputed unit; never free-form debate. Under a team the Lead opens a second generation (d688): each seat receives the other seats' reports verbatim plus one targeted question and answers by return. Under the subagent executor a seat's own report goes to a fresh instance with the same question. The response schema:
PROPOSITION_ID
RESPONSE: CONCEDE | MAINTAIN | NARROW | REVERSE
REASON
DIRECT EVIDENCE
NEW CLAIMS, if any
FALSIFIERNew material factual claims return to a Verifier; they never reopen debate.
The Lead, not the seats, decides: the authoritative outcome and hard
constraints; options excluded by verified constraints; verified, falsified,
and unresolved premises; fit under realistic failure modes; robustness if an
assumption is wrong; reversibility; whether serious dissent has stronger
evidence or a decisive falsifier. Reconcile the reports through eight axes:
premise, mechanism, boundary, failure, reversibility, evidence,
authority, and proof. No vote, no averaged confidence; seat count never
creates authority. Draft before deciding whether an audit is due.
debate: only with material dissent, an unresolved high-impact claim, or
a fragile chain.debate-with-proof: default.high-risk: mandatory.One fresh Auditor receives the brief, every valid report attributed by role only, the decision model, verified evidence, the draft, and the dissent; never seat identities or transcripts. It returns, with findings per references/report-format.md:
AUDIT RESULT: CLEAR | REVISE | STOPResolve every material finding by revising the draft, dropping the unsupported claim, or returning the proposition to a Verifier. At most one audit round; the Auditor never replaces the verdict.
Record the binding verdict:
maestro decision draft "<decision>" --rationale "<why; accepted and rejected claims; the dissent and the Lead's answer to it>" --dissent "<losing view>" --work <id>
maestro decision lock <id>Then note the handoff contract on the work item with maestro work note <id>:
required action and owner, do-not-touch boundaries, validation, limitations
(degraded, incomplete coverage, audit skipped), and reopen conditions. When a
bundle follows, the do-not-touch boundaries become its SPEC anti-goals. A
later implementer receives that note, never the seat reports; a fresh
validator checks the implementation against it without reopening the
architecture unless a reopen condition fires.
maestro graph run council brief=<brief> tier=<tier> runs the protocol as
the third graph-engine preset (seats by tier, sealed join, verifiers,
cross-examination, your draft and verdict as human nodes, auditor by tier)
through the maestro-graph skill; under a team it binds one work item per
seat. Without the preset, map each seat by hand:
| Executor | Open a seat | Read its report |
|---|---|---|
| Lead of a running team | maestro work add "<case> <seat>" --to peer-<seat> --acceptance "<output contract>" | maestro work show <id> --notes all after work return |
| Plain session, Claude | independent and specialist: the Agent tool with subagent_type: maestro-<seat> and the brief as the prompt. Challenger, verifier and auditor are Codex seats; open each as a Codex pane with --profile maestro-<seat> (rendered by maestro install), the way the team runtime opens a Codex seat | the agent's final report, or the pane's |
| Plain session, Codex | spawn_agent with agent type maestro-<seat> and the brief as the prompt | the agent's final report |
<seat> is one of independent, challenger, specialist, verifier, auditor.
The classic maestro dispatch open --council-members <n> plus --council-anchor
path and the COUNCIL_REQUEST handback status stay valid for a plain session.
© ReinaMacCredy, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in src/plugins/skills/maestro-council of ReinaMacCredy/maestro.
Open the folder on GitHubat commit 2412403
Maestro Council 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Maestro Council this skillReinaMacCredy/maestro | 233 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Phone HarnessShawnPana/phone-harness | 3.2k | — | ~7.7k | Automated safety check: Pass | MIT | |
| Maa Issue Log AnalysisMaaAssistantArknights/MaaAssistantArknights | 24k | — | ~4k | Automated safety check: Pass | AGPL-3.0 | |
| Mobile QAtloncorp/tlon-apps | 107 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Store Listing Screenshotstherxmv/Telegram-Themer | 119 | — | ~2.5k | Automated safety check: Pass | None | |
| Androidyang1ming/android-harness | 176 | — | ~259 | Automated safety check: Pass | MIT |
ShawnPana/phone-harness
Control the user's phone - an iPhone through the Mac's iPhone Mirroring window, an Android over adb, a rented cloud Android, or a cloud iPhone over HTTPS: open apps, tap, type, swipe, read the screen.
MaaAssistantArknights/MaaAssistantArknights
分析 MaaAssistantArknights 上游仓库公开 Issue(https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/...
tloncorp/tlon-apps
Run a mobile QA checklist on a physical Android device over adb for tlon-apps, then triage what fails into fixes.
therxmv/Telegram-Themer
Generate TelegramThemer's Play Store listing images — capture the 8 required app screenshots on a running emulator/device by driving the real UI with adb, then composite them into the final…
yang1ming/android-harness
Direct Android device control through ADB. An agent skill from yang1ming/android-harness.
haumacher/phoneblock
Decode and analyze an ESP32 dongle crash report (uploaded .coredump).
ReinaMacCredy/maestro
Turn filed lessons into the smallest doctrine edit. An agent skill from ReinaMacCredy/maestro.
ReinaMacCredy/maestro
Resolve material unknowns blocking the next authorized slice, using research, grilling, prototypes, models, or wayfinding.
ReinaMacCredy/maestro
Drive a pre-known multi-agent path as a maestro graph - run it by name or from a file you just wrote, pull each agent node with graph next, spawn it as a sub-agent under its maestro-<profile…
ReinaMacCredy/maestro
Verify and close - cross-check coverage, run the VERIFY table, deliver the verdict, harvest durable lessons into decisions, close the bundle, and never claim remote state from local evidence.
ReinaMacCredy/maestro
Implement or fix one authorized unit with minimal edits and sufficient evidence.
ReinaMacCredy/maestro
Route work into the right maestro tier and drive the SPEC/NOTES/VERIFY bundle lifecycle - open, resume, close, recall.
Categories
Lead-only council for a hard-to-reverse fork - a neutral brief, sealed independent seats, one premise verifier on unanimity, bounded verifiers, one cross-examination round, a draft-verdict audit…. Maestro Council is an agent skill from ReinaMacCredy/maestro. Lead-only council for a hard-to-reverse fork - a neutral brief, sealed independent seats, one premise verifier on unanimity, bounded verifiers, one cross-examination round, a draft-verdict audit, and one binding verdict recorded as a decision with its dissent.
Maestro Council fits situations like: tasks that involve Mobile testing and debugging.
Run `npx skills add ReinaMacCredy/maestro --skill maestro-council -a claude-code`. Or copy the skill folder (src/plugins/skills/maestro-council in ReinaMacCredy/maestro) into .claude/skills/maestro-council in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ReinaMacCredy/maestro --skill maestro-council -a codex`. Or copy the skill folder (src/plugins/skills/maestro-council in ReinaMacCredy/maestro) into .agents/skills/maestro-council in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ReinaMacCredy/maestro --skill maestro-council -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/maestro-council, .gemini/skills/maestro-council, .github/skills/maestro-council and .opencode/skills/maestro-council in your project.
Going by SKILL.md and its folder, Maestro Council needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Maestro Council is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Maestro Council: Phone Harness (ShawnPana/phone-harness, 3.2k stars), Maa Issue Log Analysis (MaaAssistantArknights/MaaAssistantArknights, 24k stars), Mobile QA (tloncorp/tlon-apps, 107 stars) and Store Listing Screenshots (therxmv/Telegram-Themer, 119 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ReinaMacCredy (a GitHub user) maintains it in ReinaMacCredy/maestro, which has 233 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on September 28, 2026.
Source: ReinaMacCredy/maestro on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.