{
"schema": 1,
"about": "Slim index of the AI Foundry Marketplace for agents. requires_skills and uses_agents are ids of other items in this file; install them with the item. Full text of every item: catalog_url.",
"marketplace": {"name": "ai-foundry", "repo": "ai-foundry-byu/foundry-marketplace", "site_url": "https://ai-foundry-byu.github.io/foundry-marketplace/", "catalog_url": "https://ai-foundry-byu.github.io/foundry-marketplace/catalog.json", "index_url": "https://ai-foundry-byu.github.io/foundry-marketplace/catalog-index.json"},
"install": {"plugin": ["claude plugin marketplace add ai-foundry-byu/foundry-marketplace --scope project", "claude plugin install <plugin>@ai-foundry --scope project"], "skill": "download every files[].raw_url to .claude/skills/<dir>/<path>, then chmod +x the files under scripts/", "agent": "download raw_url to .claude/agents/<name>.md", "after": "run /reload-plugins or restart Claude Code"},
"labels": {"verified": "Passed a live end-to-end run of its main path in a real Claude Code session.", "beta": "Partly live-tested or unit-tested, with known gaps; the item page lists them under What we tested.", "new": "Little or no live testing yet. Try it on something low stakes first."},
"stages": [{"id": 0, "name": "Scaffold"}, {"id": 1, "name": "Requirements"}, {"id": 2, "name": "PRD + stories"}, {"id": 3, "name": "Workplan"}, {"id": 4, "name": "Execute"}, {"id": 5, "name": "Code QA"}, {"id": 6, "name": "Visual QA with example users"}, {"id": 7, "name": "Ship"}, {"id": 8, "name": "Feedback"}],
"plugins": [
 {"name": "foundry-sdlc", "description": "The 8-stage 0-to-1 workflow: scaffold, requirements, PRD and stories, workplan, parallel lanes, QA, ship, feedback. Templates, a PRD-to-stories compiler, a stage detector, and two independent judge agents (prd-critic, story-verifier).", "starter": true, "external": false, "maturity": "mixed"},
 {"name": "foundry-guardrails", "description": "Hooks that make the gates real: block destructive commands and secret leaks, require tests before done and before push or deploy, keep worktree sessions in their worktree, flag stale whole-file writes, and keep working until a workplan milestone is checked.", "starter": true, "external": false, "maturity": "mixed"},
 {"name": "foundry-qa", "description": "Web QA: a definition-of-done gate (deployed SHA plus a Playwright journey on desktop, phone and tablet), blast-radius regression checks, axe-core accessibility, screenshot baselines, and web-qa, persona-tester and explorer agents.", "starter": true, "external": false, "maturity": "mixed"},
 {"name": "foundry-design", "description": "Design gates: a subtract-only design critic, a UI spec writer with a full state matrix and checkable acceptance criteria, a design-system template, a read-only ui-reviewer agent, and a deterministic design gate script.", "starter": false, "external": false, "maturity": "mixed"},
 {"name": "foundry-devices", "description": "Native and desktop QA agents for iOS Simulator, Android, Windows and macOS, plus a device-matrix skill that runs them as parallel lanes and merges one PASS/FAIL/INCONCLUSIVE matrix.", "starter": false, "external": false, "maturity": "mixed"},
 {"name": "foundry-iphone-mirror", "description": "Drive a real iPhone from a Mac through macOS iPhone Mirroring: screenshot, read, tap, type, swipe, verify. A skill, an iphone-driver agent, an MCP server and a CLI with a doctor.", "starter": false, "external": false, "maturity": "new"},
 {"name": "foundry-evals", "description": "Measure agents and prompts: scaffold an eval suite with oracles, code graders, a binary judge and negative controls, run and compare it, and hill-climb one change at a time. Ships evalkit.py (stdlib only).", "starter": false, "external": false, "maturity": "mixed"},
 {"name": "foundry-builder-kit", "description": "Day-one build skills: add auth, a 10k-user launch audit, secrets hygiene with a commit guard, cheap structured LLM routing, scheduled headless agents, and driving interactive CLIs through tmux.", "starter": false, "external": false, "maturity": "mixed"},
 {"name": "recruit", "description": "External (MIT). Resume builder and job finder: merge your resumes into one experience bank, score roles against your goals, build a tailored ATS-safe resume per job, and check a machine can read it. It never applies for you.", "starter": false, "external": true, "maturity": "external"}
],
"items": [
 {"id": "foundry-sdlc/bug-to-story", "plugin": "foundry-sdlc", "type": "skill", "name": "bug-to-story", "dir": "bug-to-story", "description": "Stage 8 of the Foundry SDLC, the feedback loop, and the one path for every bug report. Turn a bug report, failed criterion or user complaint into an R-id in the reporter's words, a PRD story criterion, a regression test that fails before the fix, a workplan task and a changelog line, and route it back through the gates; a report you cannot reproduce still gets an R-id and an open question. Also tracks usage gates so a human can decide whether a feature graduates. Use when someone says \"found a bug\", \"this is broken\", \"a classmate says X is broken\", \"a user reported\", \"X finds nothing\", \"X doesn't work for me\", \"handle this bug report\", \"the verifier failed\", \"turn this into a ticket\", \"should we graduate this feature\", \"is anyone using it\", or when sdlc_stage.py reports stage 8.", "stages": [8], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": ["foundry-sdlc/story-verifier"], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-sdlc/bug-to-story", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/bug-to-story/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/bug-to-story/SKILL.md"}]},
 {"id": "foundry-sdlc/gather-requirements", "plugin": "foundry-sdlc", "type": "skill", "name": "gather-requirements", "dir": "gather-requirements", "description": "Stage 1 of the Foundry SDLC. Capture every ask verbatim in REQUIREMENTS.md with a stable id (R-01), source and date, record human decisions verbatim in DECISIONS.md, and audit what already exists (code, deployed app, tools, past work) BEFORE any PRD is written. Use when someone says \"gather requirements\", \"here's what the client wants\", \"capture these asks\", \"I pasted the feature list\", \"kickoff notes\", \"what do they actually want\", \"do we have all the requirements\", or when sdlc_stage.py reports stage 1.", "stages": [1], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-sdlc/gather-requirements", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/gather-requirements/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/gather-requirements/SKILL.md"}, {"path": "scripts/gen_stories.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/gather-requirements/scripts/gen_stories.py"}, {"path": "scripts/sdlc_stage.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/gather-requirements/scripts/sdlc_stage.py"}]},
 {"id": "foundry-sdlc/new-project", "plugin": "foundry-sdlc", "type": "skill", "name": "new-project", "dir": "new-project", "description": "Stage 0 of the Foundry SDLC. Scaffold the standard artifact set (README, REQUIREMENTS, DECISIONS, PRD, WORKPLAN, CHANGELOG, stories.json, done-journey.yaml) into a new or existing project from the skill's templates, plus tools/gen_stories.py and a CI check at the project root. Use when someone says \"start a new project\", \"scaffold this\", \"set up the project docs\", \"set it up the right way\", \"new app idea\", \"kick off <name>\", or when sdlc_stage.py reports stage 0.", "stages": [0], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-sdlc/new-project", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/new-project/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/new-project/SKILL.md"}, {"path": "references/CLAUDE-md-snippet.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/new-project/references/CLAUDE-md-snippet.md"}, {"path": "scripts/gen_stories.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/new-project/scripts/gen_stories.py"}, {"path": "scripts/new_project.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/new-project/scripts/new_project.py"}, {"path": "scripts/sdlc_stage.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/new-project/scripts/sdlc_stage.py"}, {"path": "templates/CHANGELOG.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/new-project/templates/CHANGELOG.md"}, {"path": "templates/DECISIONS.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/new-project/templates/DECISIONS.md"}, {"path": "templates/PRD.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/new-project/templates/PRD.md"}, {"path": "templates/README.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/new-project/templates/README.md"}, {"path": "templates/REQUIREMENTS.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/new-project/templates/REQUIREMENTS.md"}, {"path": "templates/WORKPLAN.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/new-project/templates/WORKPLAN.md"}, {"path": "templates/done-journey.yaml", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/new-project/templates/done-journey.yaml"}, {"path": "templates/stories-ci.yml", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/new-project/templates/stories-ci.yml"}, {"path": "templates/stories.schema.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/new-project/templates/stories.schema.json"}]},
 {"id": "foundry-sdlc/parallel-lanes", "plugin": "foundry-sdlc", "type": "skill", "name": "parallel-lanes", "dir": "parallel-lanes", "description": "Stage 4 of the Foundry SDLC. Execute the workplan, either as parallel lanes (one git worktree and one agent per set of independent tasks, launched with the Agent tool's worktree isolation, a lane brief that names its task ids, a lane registry, the \"edit only inside your worktree\" rule and a merge-back procedure) or in one session, and mark each task DONE with its commit sha as it lands. It also answers whether tasks can safely run at the same time (a file-ownership check per task). Use when someone says \"build it\", \"execute the workplan\", \"run these in parallel\", \"can three agents work on these tasks at the same time\", \"can several Claude agents work on this without stepping on each other's files\", \"split the workplan across agents\", \"spin up agents for each task\", \"fan out the build\", \"git worktree\", \"work on several tasks at once\", \"merge the lanes back\", or when sdlc_stage.py reports stage 4.", "stages": [4], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-sdlc/parallel-lanes", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/parallel-lanes/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/parallel-lanes/SKILL.md"}, {"path": "scripts/gen_stories.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/parallel-lanes/scripts/gen_stories.py"}, {"path": "scripts/sdlc_stage.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/parallel-lanes/scripts/sdlc_stage.py"}]},
 {"id": "foundry-sdlc/sdlc", "plugin": "foundry-sdlc", "type": "skill", "name": "sdlc", "dir": "sdlc", "description": "The router for building software 0 to 1 with agents. Maps the 8 stages (scaffold, requirements, PRD and stories, workplan, execute, code QA, visual QA, ship, feedback) to the artifact each one produces, the skill or agent that does it, and the gate that ends it, and works out which stage a project is in from the files that exist. It is also the entry point for the stage-6 QA battery (done gate, persona testers, story verifiers, design and accessibility checks). Use when someone says \"build me an app\", \"start a new project\", \"what's next on this project\", \"where are we\", \"what stage are we in\", \"take this from idea to launch\", \"plan this feature\", \"check that it really works end to end\", \"QA everything before we call it done\", or before starting any multi-step build.", "stages": [], "all_stages": true, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": ["foundry-sdlc/story-verifier", "foundry-sdlc/prd-critic"], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-sdlc/sdlc", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/sdlc/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/sdlc/SKILL.md"}, {"path": "references/CLAUDE-md-snippet.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/sdlc/references/CLAUDE-md-snippet.md"}, {"path": "scripts/gen_stories.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/sdlc/scripts/gen_stories.py"}, {"path": "scripts/sdlc_stage.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/sdlc/scripts/sdlc_stage.py"}]},
 {"id": "foundry-sdlc/ship", "plugin": "foundry-sdlc", "type": "skill", "name": "ship", "dir": "ship", "description": "Ship it, release it, mark it live. Load this before answering any \"ship it\", \"release this\", \"mark it live\", \"it's finished\" or \"is it done\" request; never judge readiness from the files yourself. Stages 6 and 7 of the Foundry SDLC: commit, run the QA battery on that commit, set only fully passing stories LIVE, write the changelog, tell users what to try. Also for \"deploy it\", \"we're ready to launch\", \"tell the users\", \"ship it locally, we have no hosting\", or sdlc_stage.py stage 6 or 7.", "stages": [7], "all_stages": false, "maturity": "beta", "install_mode": "standalone", "requires_skills": [], "uses_agents": ["foundry-sdlc/story-verifier"], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-sdlc/ship", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/ship/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/ship/SKILL.md"}, {"path": "scripts/gen_stories.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/ship/scripts/gen_stories.py"}, {"path": "scripts/sdlc_stage.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/ship/scripts/sdlc_stage.py"}]},
 {"id": "foundry-sdlc/write-prd", "plugin": "foundry-sdlc", "type": "skill", "name": "write-prd", "dir": "write-prd", "description": "Stage 2 of the Foundry SDLC. Write PRD.md with user stories inline as \"**US-01. Title.**\" plus numbered, observable acceptance criteria, compile them into stories.json with gen_stories.py, run the independent prd-critic agent, and record its findings in an \"Addressed critiques\" appendix. Use when someone says \"write the PRD\", \"spec this\", \"PRD this\", \"turn requirements into user stories\", \"write acceptance criteria\", \"regenerate stories.json\", when the human answers a PRD review with \"approved\" or \"looks good\", or when sdlc_stage.py reports stage 2.", "stages": [2], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": ["foundry-sdlc/prd-critic"], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-sdlc/write-prd", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/write-prd/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/write-prd/SKILL.md"}, {"path": "scripts/gen_stories.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/write-prd/scripts/gen_stories.py"}, {"path": "scripts/sdlc_stage.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/write-prd/scripts/sdlc_stage.py"}]},
 {"id": "foundry-sdlc/write-workplan", "plugin": "foundry-sdlc", "type": "skill", "name": "write-workplan", "dir": "write-workplan", "description": "Stage 3 of the Foundry SDLC. Turn the PRD's stories into WORKPLAN.md, a task table (Id | Task | Owner | Deps | Status), where Owner names the model, effort and review tier chosen by blast radius, plus milestone checkboxes and a \"Blocked on human\" list. Dependencies are explicit so independent tasks run as parallel lanes. Use when someone says \"write the workplan\", \"break this into tasks\", \"plan the build\", \"what can run in parallel\", \"who does what\", \"make a task list from the PRD\", or when sdlc_stage.py reports stage 3.", "stages": [3], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-sdlc/write-workplan", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/write-workplan/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/write-workplan/SKILL.md"}, {"path": "scripts/gen_stories.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/write-workplan/scripts/gen_stories.py"}, {"path": "scripts/sdlc_stage.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/skills/write-workplan/scripts/sdlc_stage.py"}]},
 {"id": "foundry-sdlc/prd-critic", "plugin": "foundry-sdlc", "type": "agent", "name": "prd-critic", "description": "Adversarial, independent PRD reviewer. Use after a PRD draft exists and before the workplan (stage 2 of the Foundry SDLC). Given paths to PRD.md, REQUIREMENTS.md and DECISIONS.md, it returns numbered critiques with severity and a suggested fix. It never edits or rewrites the PRD. Launch it in a fresh context, never from the session that wrote the PRD. Triggers - \"critique the PRD\", \"red-team this spec\", \"review the PRD\", \"poke holes in this\", \"what's wrong with this plan\".", "stages": [2], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-sdlc/prd-critic", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/agents/prd-critic.md", "files": [{"path": "prd-critic.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/agents/prd-critic.md"}]},
 {"id": "foundry-sdlc/story-verifier", "plugin": "foundry-sdlc", "type": "agent", "name": "story-verifier", "description": "Independent verifier for one user story on the build under test, deployed or served locally from a commit (stage 6 of the Foundry SDLC). Given ONLY the story id, its acceptance criteria, the build URL and screenshot paths, it inspects the evidence and (when a browser is available) drives the app read-only, then returns PASS, FAIL or INCONCLUSIVE per criterion with the evidence for each. INCONCLUSIVE is not a pass. It never reads the builder's claims (PR text, commit messages, lane reports). Use proactively, one agent per story: delegate verification instead of probing yourself (starting the server so the verifier has a URL is fine; checking criteria is the verifier's job), whenever someone asks whether stories meet their acceptance criteria, and before any story is marked LIVE; never verify stories inline in the builder's session. Run it in the foreground (run_in_background: false), at most 3 at a time against one server, and pass the HEAD sha. Triggers - \"verify US-04\", \"independently check whether US-01 to US-03 meet their acceptance criteria\", \"check these stories\", \"do US-xx pass\", \"before I mark it live\", \"check this story on prod\", \"independent verification\".", "stages": [6], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-sdlc/story-verifier", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/agents/story-verifier.md", "files": [{"path": "story-verifier.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/agents/story-verifier.md"}]},
 {"id": "foundry-sdlc/sdlc-stage", "plugin": "foundry-sdlc", "type": "hook", "name": "sdlc-stage", "description": "Runs `sdlc_stage.py --hook`. If the project has a `PRD.md` or `REQUIREMENTS.md` (in the root, `product/` or `docs/product/`), it prints two lines: the current stage and the failing exit check. Silent otherwise. It never blocks a session", "stages": [0], "all_stages": false, "maturity": "verified", "install_mode": "plugin-only", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-sdlc/sdlc-stage", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/scripts/sdlc_stage.py", "files": [{"path": "hooks/hooks.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/hooks/hooks.json"}, {"path": "scripts/sdlc_stage.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-sdlc/scripts/sdlc_stage.py"}]},
 {"id": "foundry-guardrails/guardrails-help", "plugin": "foundry-guardrails", "type": "skill", "name": "guardrails-help", "dir": "guardrails-help", "description": "What to do when a foundry-guardrails hook blocks a tool call or a stop, and how to configure or tune the hooks. Use when a tool result or stop reason starts with \"[foundry-guardrails/\", when a command was \"Blocked destructive command\", \"Blocked ... secrets must not be printed\", needs \"VERIFY_OK=1\", or a stop was blocked by verify-before-done or ship-stop. Also use when someone asks \"why was this blocked\", \"turn off the guardrails\", \"allow force push\", \"the hook is a false positive\", or \"set up ship mode with a workplan\".", "stages": [4], "all_stages": true, "maturity": "verified", "install_mode": "plugin-only", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-guardrails/guardrails-help", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/skills/guardrails-help/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/skills/guardrails-help/SKILL.md"}]},
 {"id": "foundry-guardrails/destructive-guard", "plugin": "foundry-guardrails", "type": "hook", "name": "destructive-guard", "description": "Blocks `rm -rf` of `/`, `~`, `$HOME`, `*`, `.` or a system dir; force-push to `main`/`master` (plain `--force` anywhere); `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -f` when they would destroy uncommitted work; `DROP`/`TRUNCATE`/`DELETE` without `WHERE` sent through a DB client; `dd of=/dev/...`; `mkfs`; fork bombs; `chmod -R 777 /`; `curl ... | sh`; `shutdown`/`reboot`", "stages": [4], "all_stages": true, "maturity": "verified", "install_mode": "plugin-only", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-guardrails/destructive-guard", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/scripts/destructive_guard.py", "files": [{"path": "hooks/hooks.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/hooks.json"}, {"path": "hooks/scripts/destructive_guard.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/scripts/destructive_guard.py"}]},
 {"id": "foundry-guardrails/secret-guard", "plugin": "foundry-guardrails", "type": "hook", "name": "secret-guard", "description": "Blocks reading or printing `.env`, private keys, cloud/registry credential files; browser password and cookie stores; password-manager CLIs (`bw`, `op`, `lpass`, `pass`, `security ... -w`); token printers (`gh auth token`, `gcloud auth print-access-token`, ...); `env`/`printenv` dumps and `env | grep NAME`; `echo $API_KEY`; simple indirection (`f=.env; cat \"$f\"`, `for f in .env*`, `find -exec cat`, `xargs cat`, `cp .env x && cat x`). Listing key names only (`cut -d= -f1 .env`, `env | cut -d= -f1 | grep AWS`) is allowed", "stages": [4], "all_stages": true, "maturity": "beta", "install_mode": "plugin-only", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-guardrails/secret-guard", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/scripts/secret_guard.py", "files": [{"path": "hooks/hooks.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/hooks.json"}, {"path": "hooks/scripts/secret_guard.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/scripts/secret_guard.py"}]},
 {"id": "foundry-guardrails/verify-before-done", "plugin": "foundry-guardrails", "type": "hook", "name": "verify-before-done", "description": "Blocks stopping after changing code with no test or typecheck run since the change (blocks once per stop, at most 2 times per session). In a git repo it detects the change by content, so edits made with `sed -i`, heredocs, `tee`, `cp` or a script count too. Irreversible commands (`git push`, `vercel --prod`, `npm publish`, `wrangler deploy`, `terraform apply`, `gh pr merge`, ...) unless the command contains `VERIFY_OK=1`, which is refused while code is untested", "stages": [5], "all_stages": true, "maturity": "verified", "install_mode": "plugin-only", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-guardrails/verify-before-done", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/scripts/verify_before_done.py", "files": [{"path": "hooks/hooks.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/hooks.json"}, {"path": "hooks/scripts/verify_before_done.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/scripts/verify_before_done.py"}]},
 {"id": "foundry-guardrails/worktree-guard", "plugin": "foundry-guardrails", "type": "hook", "name": "worktree-guard", "description": "Blocks from inside a linked git worktree, editing a file in the main checkout. While a lane registry (`.git/foundry-lanes.json`) is active, a subagent editing the main checkout", "stages": [4], "all_stages": true, "maturity": "verified", "install_mode": "plugin-only", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-guardrails/worktree-guard", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/scripts/worktree_guard.py", "files": [{"path": "hooks/hooks.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/hooks.json"}, {"path": "hooks/scripts/worktree_guard.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/scripts/worktree_guard.py"}]},
 {"id": "foundry-guardrails/stale-write-guard", "plugin": "foundry-guardrails", "type": "hook", "name": "stale-write-guard", "description": "Blocks a whole-file `Write` to a git-tracked file whose uncommitted changes were not made by this session (they would be overwritten)", "stages": [4], "all_stages": true, "maturity": "verified", "install_mode": "plugin-only", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-guardrails/stale-write-guard", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/scripts/stale_write_guard.py", "files": [{"path": "hooks/hooks.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/hooks.json"}, {"path": "hooks/scripts/stale_write_guard.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/scripts/stale_write_guard.py"}]},
 {"id": "foundry-guardrails/ship-stop", "plugin": "foundry-guardrails", "type": "hook", "name": "ship-stop", "description": "Blocks stopping while the workplan milestone you named is still `- [ ]` (at most 8 continuations per milestone)", "stages": [4], "all_stages": true, "maturity": "verified", "install_mode": "plugin-only", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-guardrails/ship-stop", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/scripts/ship_stop.py", "files": [{"path": "hooks/hooks.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/hooks.json"}, {"path": "hooks/scripts/ship_stop.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-guardrails/hooks/scripts/ship_stop.py"}]},
 {"id": "foundry-qa/a11y-check", "plugin": "foundry-qa", "type": "skill", "name": "a11y-check", "dir": "a11y-check", "description": "Accessibility check for a web app against a WCAG 2.2 AA floor. Runs axe-core in a real browser via Playwright on desktop and mobile profiles (optionally after a journey reaches the right state, or signed in), adds its own WCAG 2.2 target-size check (2.5.8), reports violations by impact with selectors and fixes, then walks the manual checks axe cannot do (keyboard, focus, zoom, reduced motion, screen reader names). Prefer it over judging the markup by eye, because it catches what reading the HTML misses. Use when asked to \"check accessibility\", \"a11y audit\", \"WCAG\", \"is this accessible\", \"can people who use a screen reader or only a keyboard use my page\", \"can a blind or keyboard-only user use this\", \"will this work with VoiceOver\", \"screen reader\", \"keyboard navigation\", \"color contrast\", or before shipping any new page or form, even a single index.html.", "stages": [6], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-qa/a11y-check", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/a11y-check/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/a11y-check/SKILL.md"}, {"path": "scripts/a11y_check.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/a11y-check/scripts/a11y_check.py"}, {"path": "scripts/done_gate.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/a11y-check/scripts/done_gate.py"}, {"path": "scripts/qa_session.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/a11y-check/scripts/qa_session.py"}, {"path": "scripts/qa_yaml.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/a11y-check/scripts/qa_yaml.py"}]},
 {"id": "foundry-qa/done-gate", "plugin": "foundry-qa", "type": "skill", "name": "done-gate", "dir": "done-gate", "description": "Definition-of-done gate for a user-facing web feature. Optionally verifies the deployed build serves the expected commit SHA, then drives the feature's done-journey (YAML or JSON) in a real browser with Playwright on desktop, phone and tablet profiles, signed in when needed, saves screenshots to .qa/, and returns a strict exit code (0 pass, 1 journey fail, 2 config error, 3 SHA mismatch, 6 inconclusive). Load it for how-to questions about proving a feature works too, since it is the answer. Use when asked \"how do I prove my feature really works\", \"how do I know my feature is really done\", \"how do I show it works on the deployed site before I tell my professor or client\", before saying a feature is \"done\", \"shipped\", \"live\", \"working\" or \"fixed\", or to \"check that it really works end to end\", \"test it end to end\", \"does it work on a phone\", \"make sure it works on mobile and desktop\", \"verify the deploy\", \"prove it works\", \"run the done gate\", \"check prod\", or write a done-journey.", "stages": [6], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-qa/done-gate", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/done-gate/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/done-gate/SKILL.md"}, {"path": "scripts/done_gate.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/done-gate/scripts/done_gate.py"}, {"path": "scripts/qa_session.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/done-gate/scripts/qa_session.py"}, {"path": "scripts/qa_yaml.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/done-gate/scripts/qa_yaml.py"}, {"path": "templates/done-journey.yaml", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/done-gate/templates/done-journey.yaml"}]},
 {"id": "foundry-qa/explore", "plugin": "foundry-qa", "type": "skill", "name": "explore", "dir": "explore", "description": "Read-only same-origin crawler for a web app (a URL, a local server, or a local folder of HTML pages served on localhost), including hash-routed pages (#/route) and signed-in pages. Follows links (skipping logout, delete and downloads) and records per page console errors, uncaught exceptions, 5xx and failed requests, broken links, a Back button that does not return, horizontal overflow on phone, missing title or h1, images without alt, and near-empty pages, with a screenshot each. Use when asked to \"crawl the app\", \"find broken links\", \"dead links\", \"check every page for errors\", \"go through every page of my site\", \"click around my site and tell me what's broken\", \"click around and see what's busted\", \"which pages are busted\", or as the first pass of exploratory testing. The explorer and web-qa agents run this skill.", "stages": [6], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-qa/explore", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/explore/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/explore/SKILL.md"}, {"path": "scripts/done_gate.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/explore/scripts/done_gate.py"}, {"path": "scripts/explore.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/explore/scripts/explore.py"}, {"path": "scripts/persona_run.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/explore/scripts/persona_run.py"}, {"path": "scripts/qa_session.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/explore/scripts/qa_session.py"}, {"path": "scripts/qa_yaml.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/explore/scripts/qa_yaml.py"}]},
 {"id": "foundry-qa/persona-run", "plugin": "foundry-qa", "type": "skill", "name": "persona-run", "dir": "persona-run", "description": "Run every user story as a persona (qa/personas/<name>.md) on that persona's device profiles in a real browser. Its script is read-only by default (writes are answered inside the browser, never sent). Reads the project's own stories.json (the foundry-sdlc format) as is, opens every surface of each story, waits for async data, checks assertions plus the persona's patience budget, horizontal overflow and console errors, reports tap-target size once per device, and reports passed, failed, needs-judgment and inconclusive separately. With no app built yet, it writes the personas and the run plan and says what it needs to run. Use when asked to \"run the persona tests\", \"test as a first-time user\", \"see how my app holds up for <a kind of user>\" (a busy parent, a new student, a power user), \"how would a first-time user do on their phone\", \"which stories pass for <persona>\", or to set up personas for a project, even before the app exists. The persona-tester agent runs this skill.", "stages": [6], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-qa/persona-run", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/persona-run/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/persona-run/SKILL.md"}, {"path": "scripts/done_gate.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/persona-run/scripts/done_gate.py"}, {"path": "scripts/persona_run.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/persona-run/scripts/persona_run.py"}, {"path": "scripts/qa_session.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/persona-run/scripts/qa_session.py"}, {"path": "scripts/qa_yaml.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/persona-run/scripts/qa_yaml.py"}, {"path": "templates/personas/TEMPLATE.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/persona-run/templates/personas/TEMPLATE.md"}, {"path": "templates/personas/first-time-mobile-user.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/persona-run/templates/personas/first-time-mobile-user.md"}, {"path": "templates/personas/power-user-on-desktop.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/persona-run/templates/personas/power-user-on-desktop.md"}, {"path": "templates/stories.example.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/persona-run/templates/stories.example.json"}]},
 {"id": "foundry-qa/regression-check", "plugin": "foundry-qa", "type": "skill", "name": "regression-check", "dir": "regression-check", "description": "Stack-neutral blast-radius check before calling a change done. Maps every consumer of what you changed (functions, exports, API routes, env vars, config keys, database columns, CSS classes, CLI flags) with grep, judges whether each one relies on the behavior you changed, and behavior-tests the at-risk ones. Use before declaring done on any edit to shared code, before applying a patch file, when asked \"is it safe to apply this patch\", \"is this patch/PR/diff safe\", \"can I apply this change\", \"should I merge this\", \"what could this break\", \"check for regressions\", \"blast radius\", \"who uses this\", or after changing a signature, schema, route, or shared component.", "stages": [5], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-qa/regression-check", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/regression-check/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/regression-check/SKILL.md"}]},
 {"id": "foundry-qa/visual-baseline", "plugin": "foundry-qa", "type": "skill", "name": "visual-baseline", "dir": "visual-baseline", "description": "Screenshot baselines and pixel-diff visual regression for web pages. Captures pages on desktop, phone and tablet profiles with animations frozen and dynamic regions masked, compares them to approved baselines with a percentage threshold and per-channel noise tolerance, writes red-highlight diff images, and requires a deliberate approve step to change a baseline. Use when asked \"did anything visually change\", \"did anything change visually since the screenshots\", \"compare to the screenshots\", \"compare against the baseline\", \"did my CSS change break the layout\", \"take screenshots before I restyle\", \"check for visual regressions\", \"did the layout change\", \"screenshot diff\", \"pixel diff\", \"update the baselines\", or after CSS, layout, design-token or shared-component changes.", "stages": [6], "all_stages": false, "maturity": "beta", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-qa/visual-baseline", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/visual-baseline/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/visual-baseline/SKILL.md"}, {"path": "scripts/done_gate.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/visual-baseline/scripts/done_gate.py"}, {"path": "scripts/qa_session.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/visual-baseline/scripts/qa_session.py"}, {"path": "scripts/qa_yaml.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/visual-baseline/scripts/qa_yaml.py"}, {"path": "scripts/visual_baseline.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/skills/visual-baseline/scripts/visual_baseline.py"}]},
 {"id": "foundry-qa/explorer", "plugin": "foundry-qa", "type": "agent", "name": "explorer", "description": "Use proactively for exploratory testing; do not test inline in the main session. Exploratory tester that uses a web app like a curious, slightly careless first-time user to find what scripted tests miss, in a real browser. Crawls same-origin pages for console errors, broken links, 5xx responses, overflow and empty states, then probes by hand for edge cases, the back button, refresh mid-flow, double submit, weird input, slow network and deep links. Delegate \"poke around like a first-time user\", \"poke around this app and find what breaks\", \"use it like a curious first-time user\", \"explore the app\", \"find bugs\", \"break it\", \"exploratory test\", or \"what did we miss\" here.", "stages": [6], "all_stages": false, "maturity": "beta", "install_mode": "needs-skill", "requires_skills": ["foundry-qa/explore"], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-qa/explorer", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/agents/explorer.md", "files": [{"path": "explorer.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/agents/explorer.md"}]},
 {"id": "foundry-qa/persona-tester", "plugin": "foundry-qa", "type": "agent", "name": "persona-tester", "description": "Use proactively whenever someone wants an app tested as its users; do not test inline in the main session. Tests every user story AS a specific persona (from qa/personas/<name>.md) across that persona's device profiles, with persona_run.py's read-only guard on and no hand-written write probes, then judges every screen through the persona's eyes, reports judged versus passed separately, and turns failures that repeat across runs into tickets. Delegate \"test it as these personas\", \"test it the way a first-time user on their phone would\", \"test it as a first-time user\", \"run the persona tests\", \"test it against the user stories\", \"which stories pass for each persona\", \"test as a power user\", or \"how does this feel on a phone for a new user\" here.", "stages": [6], "all_stages": false, "maturity": "beta", "install_mode": "needs-skill", "requires_skills": ["foundry-qa/persona-run"], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-qa/persona-tester", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/agents/persona-tester.md", "files": [{"path": "persona-tester.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/agents/persona-tester.md"}]},
 {"id": "foundry-qa/web-qa", "plugin": "foundry-qa", "type": "agent", "name": "web-qa", "description": "Use proactively whenever someone wants an app QA'd; do not test inline in the main session. Web QA engineer that drives a running web app in a real browser with Playwright. Runs done-journeys, axe-core accessibility audits, visual baselines, console and network error capture, and phone/tablet emulation, then returns the full text of .qa/findings.md (exact repro steps, screenshot paths) in one fenced block; the calling session saves that block to .qa/findings.md verbatim, because the CLI refuses a subagent's Write of a report file. Delegate \"QA this app like a tester\", \"QA this app like a professional tester\", \"give me a bug list with repro steps\", \"QA this feature\", \"test the app\", \"run QA on localhost / staging / prod\", \"check it on mobile\", \"is this ready to ship\", or a post-deploy check here.", "stages": [6], "all_stages": false, "maturity": "verified", "install_mode": "needs-skill", "requires_skills": ["foundry-qa/done-gate", "foundry-qa/a11y-check", "foundry-qa/visual-baseline", "foundry-qa/explore"], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-qa/web-qa", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/agents/web-qa.md", "files": [{"path": "web-qa.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-qa/agents/web-qa.md"}]},
 {"id": "foundry-design/design-critique", "plugin": "foundry-design", "type": "skill", "name": "design-critique", "dir": "design-critique", "description": "Critique the design of a screen or app and simplify it. A ruthless subtract-only editor that asks \"can this be removed\" of every prompt, button, step and screen, grounded in an 8-question constitution (C1-C8), backed by a deterministic design gate script (clicks, dead controls, tap targets, contrast, phone overflow), and resolves its own findings without asking a human per decision. Use before building a UI change (critique the plan), after building it, and as the design pass before we ship. Triggers - \"critique the design of my app\", \"design critique\", \"critique this UI\", \"simplify this UI\", \"what can I remove\", \"what should we cut\", \"is this screen too busy\", \"too many clicks\", \"can we cut a step\", \"design pass before we ship\", \"design gate\", \"why does this feel cluttered\". For a scored rubric review (rate or score the UI, what to fix first) use the ui-reviewer agent.", "stages": [6], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-design/design-critique", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/design-critique/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/design-critique/SKILL.md"}, {"path": "CONSTITUTION.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/design-critique/CONSTITUTION.md"}, {"path": "findings.schema.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/design-critique/findings.schema.json"}, {"path": "scripts/design_gate.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/design-critique/scripts/design_gate.py"}, {"path": "scripts/tests/test_design_gate.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/design-critique/scripts/tests/test_design_gate.py"}, {"path": "scripts/tests/test_validate_findings.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/design-critique/scripts/tests/test_validate_findings.py"}, {"path": "scripts/validate_findings.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/design-critique/scripts/validate_findings.py"}, {"path": "templates/decision.yaml", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/design-critique/templates/decision.yaml"}, {"path": "templates/design-gate.config.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/design-critique/templates/design-gate.config.json"}, {"path": "templates/findings.example.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/design-critique/templates/findings.example.json"}]},
 {"id": "foundry-design/design-system", "plugin": "foundry-design", "type": "skill", "name": "design-system", "dir": "design-system", "description": "Create or update the project's design system reference file (design/design-system.md) from a fill-in template - color tokens with contrast-checked pairs, type scale, spacing ladder, radii, elevation, motion, component rules and vocabulary - so specs, reviews and the design gate all grade against one source of truth. Use when a project has no written design system, when tokens drift from the docs, or before the first UI spec. Triggers - \"set up a design system\", \"document our tokens\", \"design tokens\", \"type scale\", \"spacing scale\", \"what colors do we use\", \"make our UI consistent\", \"fill in the design system\".", "stages": [2], "all_stages": false, "maturity": "beta", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-design/design-system", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/design-system/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/design-system/SKILL.md"}, {"path": "references/design-system.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/design-system/references/design-system.md"}, {"path": "scripts/design_gate.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/design-system/scripts/design_gate.py"}]},
 {"id": "foundry-design/ui-ux-spec", "plugin": "foundry-design", "type": "skill", "name": "ui-ux-spec", "dir": "ui-ux-spec", "description": "Turn a user story or job into a buildable UI spec before any code is written - layout per breakpoint, the full state matrix (default, hover, focus, pressed, disabled, loading, empty, error, stale, offline, long content), keyboard and touch maps, exact copy, design tokens, and machine-checkable acceptance checks the build is graded on. Use before building a new screen or reshaping an existing one. Triggers - \"spec this screen\", \"design spec\", \"UI spec\", \"spec the UI before we build\", \"write the interaction spec\", \"what states does this need\", \"acceptance criteria for this page\", \"design this screen\".", "stages": [2], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-design/ui-ux-spec", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/ui-ux-spec/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/ui-ux-spec/SKILL.md"}, {"path": "references/floor-checklist.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/ui-ux-spec/references/floor-checklist.md"}, {"path": "references/rubric.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/ui-ux-spec/references/rubric.md"}, {"path": "references/spec-template.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/skills/ui-ux-spec/references/spec-template.md"}]},
 {"id": "foundry-design/ui-reviewer", "plugin": "foundry-design", "type": "agent", "name": "ui-reviewer", "description": "Scored UI review agent, read-only. Captures or reads screenshots of a built screen, reads the code behind it, scores it on a 10-dimension 0-4 rubric (job fit, hierarchy, typography, spacing, design-system fidelity, interaction, accessibility, mobile and keyboard, honest status, copy), sums the rows into a /40 total and band, and returns must-fixes ranked worst first with verified file:line evidence, saved to design/reviews/. Never edits product source. Delegate \"score this screen\", \"rate my UI\", \"review the UI against a rubric\", \"grade the build against the spec\", \"what should I fix first in the UI\", \"why does this page look bad\" here. For \"critique the design\", simplifying, or \"what can I remove\", use the design-critique skill instead.", "stages": [6], "all_stages": false, "maturity": "beta", "install_mode": "needs-skill", "requires_skills": ["foundry-design/ui-ux-spec", "foundry-design/design-critique"], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-design/ui-reviewer", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/agents/ui-reviewer.md", "files": [{"path": "ui-reviewer.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-design/agents/ui-reviewer.md"}]},
 {"id": "foundry-devices/android-ui-tree", "plugin": "foundry-devices", "type": "skill", "name": "android-ui-tree", "dir": "android-ui-tree", "description": "Read an Android screen's UI tree from a uiautomator dump instead of guessing tap coordinates. Outlines the meaningful nodes, finds a control by text, content-desc or resource-id, and prints a safe \"adb shell input tap X Y\" only when exactly one node matches. Use when driving an Android app or emulator with adb, when someone says \"find the Sign in button on the Android screen\", \"what can I tap here\", \"read the uiautomator dump\", or when a tap keeps hitting the wrong control.", "stages": [6], "all_stages": false, "maturity": "beta", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-devices/android-ui-tree", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/android-ui-tree/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/android-ui-tree/SKILL.md"}, {"path": "scripts/uitree.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/android-ui-tree/scripts/uitree.py"}]},
 {"id": "foundry-devices/device-doctor", "plugin": "foundry-devices", "type": "skill", "name": "device-doctor", "dir": "device-doctor", "description": "Preflight a device QA lane before testing anything. Checks that the host OS matches the platform (ios, android, windows, macos) and that the tools the lane needs (xcrun simctl, adb, emulator, Maestro, pywinauto, osascript, screencapture, Accessibility permission) are installed and actually respond, with a timeout on every call. Writes .qa/<platform>/doctor.json and prints READY or the exact fixes. Use when someone says \"is my machine ready to test iOS/Android/Windows/macOS\", \"run the device doctor\", \"why won't the simulator start\", or before any ios-qa, android-qa, windows-qa or macos-qa run.", "stages": [6], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-devices/device-doctor", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/device-doctor/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/device-doctor/SKILL.md"}, {"path": "scripts/doctor.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/device-doctor/scripts/doctor.py"}]},
 {"id": "foundry-devices/device-matrix", "plugin": "foundry-devices", "type": "skill", "name": "device-matrix", "dir": "device-matrix", "description": "Decide which device QA agents to run for a set of user stories, run them as parallel lanes (ios-qa, android-qa, windows-qa, macos-qa, a real iPhone, web), and merge their results into one PASS/FAIL/INCONCLUSIVE matrix. Use when someone says \"test this on every device\", \"which devices do we need to test\", \"run the device matrix\", \"cross-platform QA\", \"test on iOS and Android\", or when user stories carry a devices[] field.", "stages": [3, 6], "all_stages": false, "maturity": "new", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-devices/device-matrix", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/device-matrix/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/device-matrix/SKILL.md"}, {"path": "scripts/device_matrix.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/device-matrix/scripts/device_matrix.py"}, {"path": "templates/maestro/android-sign-in.yaml", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/device-matrix/templates/maestro/android-sign-in.yaml"}, {"path": "templates/maestro/ios-sign-in.yaml", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/device-matrix/templates/maestro/ios-sign-in.yaml"}, {"path": "templates/matrix.template.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/device-matrix/templates/matrix.template.md"}, {"path": "templates/results.example.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/device-matrix/templates/results.example.json"}, {"path": "templates/stories.example.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/device-matrix/templates/stories.example.json"}]},
 {"id": "foundry-devices/macos-ax-tree", "plugin": "foundry-devices", "type": "skill", "name": "macos-ax-tree", "dir": "macos-ax-tree", "description": "Read and act on a macOS app's accessibility tree through System Events instead of guessing click coordinates. Dumps the tree to JSON, outlines it, finds elements by role, name, description, value or identifier, presses one with AXPress, and prints a window's bounds for screencapture -R. Use when driving a Mac desktop app (AppKit, SwiftUI, Catalyst, Electron), when someone wants a script that clicks a button or key in a Mac app (for example the Calculator equals key) without hardcoding pixel coordinates, or says \"what buttons does this Mac app have\", \"click X in the Mac app\", \"press Sign In in the Mac app\", \"dump the accessibility tree\", or \"screenshot just the app window\".", "stages": [6], "all_stages": false, "maturity": "beta", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-devices/macos-ax-tree", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/macos-ax-tree/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/macos-ax-tree/SKILL.md"}, {"path": "scripts/ax_tree.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/skills/macos-ax-tree/scripts/ax_tree.py"}]},
 {"id": "foundry-devices/android-qa", "plugin": "foundry-devices", "type": "agent", "name": "android-qa", "description": "QA agent for native Android apps on an emulator or a USB device. Creates and boots an AVD, installs the APK with adb, drives the app with adb input or Maestro flows (optional Appium), reads the UI tree from uiautomator dump instead of guessing coordinates, catches crashes in logcat, captures evidence to .qa/android/, and reports PASS/FAIL/INCONCLUSIVE per user story. Use when asked to \"test the Android app\", \"run it on the emulator\", \"QA the APK\", or when a story lists \"android\" in devices[].", "stages": [6], "all_stages": false, "maturity": "beta", "install_mode": "needs-skill", "requires_skills": ["foundry-devices/device-doctor", "foundry-devices/android-ui-tree", "foundry-devices/device-matrix"], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-devices/android-qa", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/agents/android-qa.md", "files": [{"path": "android-qa.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/agents/android-qa.md"}]},
 {"id": "foundry-devices/ios-qa", "plugin": "foundry-devices", "type": "agent", "name": "ios-qa", "description": "QA agent for native iOS apps on the iOS Simulator. Boots a simulator with xcrun simctl, installs and launches the app, drives it with Maestro flows (optional XCUITest), reads the UI hierarchy instead of guessing coordinates, captures screenshots, video and logs to .qa/ios/, and reports PASS/FAIL/INCONCLUSIVE per user story. Use when asked to \"test the iOS app\", \"run it on the simulator\", \"QA the iPhone build in the simulator\", or when a story lists \"ios\" in devices[]. For a real iPhone, use the foundry-iphone-mirror plugin instead.", "stages": [6], "all_stages": false, "maturity": "beta", "install_mode": "needs-skill", "requires_skills": ["foundry-devices/device-doctor", "foundry-devices/device-matrix"], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-devices/ios-qa", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/agents/ios-qa.md", "files": [{"path": "ios-qa.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/agents/ios-qa.md"}]},
 {"id": "foundry-devices/macos-qa", "plugin": "foundry-devices", "type": "agent", "name": "macos-qa", "description": "QA agent for macOS desktop apps (AppKit, SwiftUI, Catalyst, Electron). Launches the app, reads its accessibility tree through System Events (osascript), presses controls with AXPress or types with keystroke, falls back to cliclick for coordinates, drives Electron apps with Playwright's _electron, captures window screenshots with screencapture and logs to .qa/macos/, and reports PASS/FAIL/INCONCLUSIVE per user story. Use when asked to \"test the Mac app\", \"QA the desktop build on macOS\", \"drive the Electron app\", or when a story lists \"macos\" in devices[].", "stages": [6], "all_stages": false, "maturity": "beta", "install_mode": "needs-skill", "requires_skills": ["foundry-devices/device-doctor", "foundry-devices/macos-ax-tree"], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-devices/macos-qa", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/agents/macos-qa.md", "files": [{"path": "macos-qa.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/agents/macos-qa.md"}]},
 {"id": "foundry-devices/windows-qa", "plugin": "foundry-devices", "type": "agent", "name": "windows-qa", "description": "QA agent for Windows desktop apps (Win32, WPF, WinForms, UWP/WinUI, Electron). Launches the app with pywinauto on the UI Automation (UIA) backend, finds controls by automation id, name and control type, clicks and types, reads the control tree instead of guessing coordinates, captures screenshots and event logs to .qa\\windows\\, and reports PASS/FAIL/INCONCLUSIVE per user story. Also covers Playwright for web apps on Windows and WinAppDriver/Appium as an optional path. Use when asked to \"test the Windows app\", \"QA the desktop build on Windows\", or when a story lists \"windows\" in devices[].", "stages": [6], "all_stages": false, "maturity": "beta", "install_mode": "needs-skill", "requires_skills": ["foundry-devices/device-doctor"], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-devices/windows-qa", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/agents/windows-qa.md", "files": [{"path": "windows-qa.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-devices/agents/windows-qa.md"}]},
 {"id": "foundry-iphone-mirror/iphone-mirror", "plugin": "foundry-iphone-mirror", "type": "skill", "name": "iphone-mirror", "dir": "iphone-mirror", "description": "Drive a real iPhone from this Mac through macOS iPhone Mirroring, using a screenshot, read, act, verify loop (tap, type, swipe, home), and check that a real-iPhone setup is ready (helper app plus Accessibility, Screen Recording and Automation permissions). Load it BEFORE calling any iphone_* MCP tool or the iphone-mirror CLI; it holds the doctor-first rule and the stop conditions. Use when a task must happen ON the iPhone and has no Mac-side API, such as QA of an iOS app on a real device, walking through an onboarding flow, toggling a Setting, or building a Shortcut. Trigger phrases include \"on my iPhone\", \"on my actual phone\", \"QA on my real iPhone\", \"is my setup ready to test on my real iPhone\", \"set up iPhone Mirroring for Claude\", \"check the phone connection\", \"tap through the app on the phone\", \"test the iOS build on a real device\", \"iPhone Mirroring\", \"screenshot my phone\", \"drive the phone\". For the iOS Simulator use foundry-devices instead. Long tasks go to the iphone-driver agent.", "stages": [6], "all_stages": false, "maturity": "new", "install_mode": "plugin-only", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-iphone-mirror/iphone-mirror", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-iphone-mirror/skills/iphone-mirror/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-iphone-mirror/skills/iphone-mirror/SKILL.md"}]},
 {"id": "foundry-iphone-mirror/iphone-driver", "plugin": "foundry-iphone-mirror", "type": "agent", "name": "iphone-driver", "description": "Drives a real iPhone end to end through macOS iPhone Mirroring (screenshot, read, tap/type/swipe, verify) and returns only the outcome. Delegate a WHOLE on-phone task to it, such as \"walk through the sign-up flow of my iOS build and report each step\", \"turn on Dark Mode in Settings\", or \"run these 6 acceptance checks on the device\", so the dozens of screenshots stay in its context, not yours. Runs iphone-mirror doctor first and stops with the exact fix if a requirement is missing (helper app, or its Accessibility, Screen Recording and Automation permissions). Delegate only a task the user asked to have done on the phone; for \"is my setup ready\" use the iphone-mirror skill.", "stages": [6], "all_stages": false, "maturity": "new", "install_mode": "plugin-only", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-iphone-mirror/iphone-driver", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-iphone-mirror/agents/iphone-driver.md", "files": [{"path": "iphone-driver.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-iphone-mirror/agents/iphone-driver.md"}]},
 {"id": "foundry-evals/hillclimb", "plugin": "foundry-evals", "type": "skill", "name": "hillclimb", "dir": "hillclimb", "description": "Improve a prompt, skill, agent config or model choice against an evalkit suite by changing one thing at a time, rerunning, and keeping only changes that beat the noise band, while watching cost. Use when someone says \"make X better\", \"improve the prompt\", \"hill-climb\", \"tune the agent\", \"make X cheaper without losing quality\", \"try a smaller model\", or \"why did the score drop after my edit\".", "stages": [8], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-evals/hillclimb", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/hillclimb/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/hillclimb/SKILL.md"}, {"path": "scripts/evalkit.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/hillclimb/scripts/evalkit.py"}]},
 {"id": "foundry-evals/new-eval", "plugin": "foundry-evals", "type": "skill", "name": "new-eval", "dir": "new-eval", "description": "Scaffold an eval suite for an agent, prompt, skill or pipeline with evalkit - cases.jsonl, a target runner, code graders first, a binary LLM judge only where code cannot grade, do-nothing and pushover negative controls that must score low, and a pass threshold. Use when someone says \"add an eval for X\", \"does X have an eval\", \"how do I test my prompt\", \"build evals for my agent\", \"write eval cases\", \"make an LLM judge\", or \"set up a regression gate\".", "stages": [2, 5], "all_stages": false, "maturity": "beta", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-evals/new-eval", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/new-eval/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/new-eval/SKILL.md"}, {"path": "scripts/evalkit.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/new-eval/scripts/evalkit.py"}, {"path": "scripts/judge_claude.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/new-eval/scripts/judge_claude.py"}, {"path": "templates/example-suite/README.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/new-eval/templates/example-suite/README.md"}, {"path": "templates/example-suite/cases.jsonl", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/new-eval/templates/example-suite/cases.jsonl"}, {"path": "templates/example-suite/controls/do_nothing.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/new-eval/templates/example-suite/controls/do_nothing.py"}, {"path": "templates/example-suite/controls/pushover.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/new-eval/templates/example-suite/controls/pushover.py"}, {"path": "templates/example-suite/prompt.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/new-eval/templates/example-suite/prompt.md"}, {"path": "templates/example-suite/suite.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/new-eval/templates/example-suite/suite.json"}, {"path": "templates/example-suite/target_claude.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/new-eval/templates/example-suite/target_claude.py"}, {"path": "templates/example-suite/target_rules.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/new-eval/templates/example-suite/target_rules.py"}]},
 {"id": "foundry-evals/run-eval", "plugin": "foundry-evals", "type": "skill", "name": "run-eval", "dir": "run-eval", "description": "Run an evalkit suite, read the report, and compare it with the last run honestly - score with a confidence interval, pass@k and pass^k, errors kept out of the score, case-by-case changes, cost. Use when someone asks \"run the evals\", \"what does X score\", \"is X getting better or worse\", \"did my change help\", \"is this ready to ship\", \"can this run on its own\", or \"compare with the last run\".", "stages": [8], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-evals/run-eval", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/run-eval/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/run-eval/SKILL.md"}, {"path": "scripts/evalkit.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/skills/run-eval/scripts/evalkit.py"}]},
 {"id": "foundry-evals/eval-auditor", "plugin": "foundry-evals", "type": "agent", "name": "eval-auditor", "description": "Audits an evalkit suite (suite.json + cases.jsonl + the latest run under .evals/) for problems that make a score untrustworthy - ambiguous cases, unstated expectations, cheatable or over-strict graders, missing hold cases, missing oracles or controls, judges with multi-part or scaled rubrics, and saturated or noisy results. Use when someone asks \"is my eval any good\", \"audit this eval\", \"why is this case always failing\", or before trusting a new baseline.", "stages": [5], "all_stages": false, "maturity": "verified", "install_mode": "needs-skill", "requires_skills": ["foundry-evals/run-eval"], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-evals/eval-auditor", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/agents/eval-auditor.md", "files": [{"path": "eval-auditor.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-evals/agents/eval-auditor.md"}]},
 {"id": "foundry-builder-kit/add-auth", "plugin": "foundry-builder-kit", "type": "skill", "name": "add-auth", "dir": "add-auth", "description": "Add authentication (sign-in, sign-up, sign-out, protected routes) to a web project end to end. Audits the framework and existing auth, recommends a provider with the trade-off stated, implements it, and verifies with a real build. Use when the user says \"add auth\", \"add sign-in\", \"add login\", \"users need to sign in\", \"protect this page\", or \"add authentication\". Pass a provider name (clerk, supabase, better-auth, authjs) to skip the recommendation, or --dry-run to audit only.", "stages": [4], "all_stages": false, "maturity": "beta", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-builder-kit/add-auth", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/add-auth/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/add-auth/SKILL.md"}]},
 {"id": "foundry-builder-kit/cheap-llm-routing", "plugin": "foundry-builder-kit", "type": "skill", "name": "cheap-llm-routing", "dir": "cheap-llm-routing", "description": "Route a narrow, schema-pinned LLM task (extraction, classification, scoring, short structured grading) to a free or cheap model instead of a frontier model, without leaking user data and without making the feature depend on a free tier. Covers the privacy bar (check the provider's data policy before its rate limit), the forced tool-call pattern, schema validation, key-format gating, and the paid fallback. Use when the user says \"make this feature free\", \"this API bill is too high\", \"use a cheaper model for this\", \"use Groq / Gemini / OpenRouter / Ollama\", \"don't burn API credits on this\", or before sending user-submitted data to any free-tier model.", "stages": [4], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-builder-kit/cheap-llm-routing", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/cheap-llm-routing/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/cheap-llm-routing/SKILL.md"}, {"path": "examples/mock-fallthrough.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/cheap-llm-routing/examples/mock-fallthrough.json"}, {"path": "examples/mock.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/cheap-llm-routing/examples/mock.json"}, {"path": "examples/providers.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/cheap-llm-routing/examples/providers.json"}, {"path": "examples/ticket-schema.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/cheap-llm-routing/examples/ticket-schema.json"}, {"path": "examples/ticket.txt", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/cheap-llm-routing/examples/ticket.txt"}, {"path": "scripts/structured_router.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/cheap-llm-routing/scripts/structured_router.py"}]},
 {"id": "foundry-builder-kit/scale-10k", "plugin": "foundry-builder-kit", "type": "skill", "name": "scale-10k", "dir": "scale-10k", "description": "Audit a web app for launch at 10,000+ users and fix what will break first. Covers the app's own process model and state (in-memory state, single process, slow endpoints, double-submit duplicates), auth provider cost, database and connection pooling, sessions, rate limiting and bot protection, transactional email, privacy compliance, and monitoring, then produces a scorecard, a cost projection, and an ordered fix list. Use when the user says \"scale to 10k\", \"prepare for launch\", \"production-ready\", \"handle more users\", \"will this survive a launch\", or \"what breaks at scale\". Pass an area (app, auth, database, sessions, rate-limiting, email, compliance, infra), --audit-only, or --cost-estimate to narrow it.", "stages": [7], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-builder-kit/scale-10k", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/scale-10k/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/scale-10k/SKILL.md"}]},
 {"id": "foundry-builder-kit/scheduled-agents", "plugin": "foundry-builder-kit", "type": "skill", "name": "scheduled-agents", "dir": "scheduled-agents", "description": "Run Claude Code as an unattended job on a schedule (cron, macOS launchd, Linux systemd, Windows Task Scheduler, or GitHub Actions) and know when it silently stops. Covers headless `claude -p` auth, locks and timeouts, success-only heartbeats, a separate deadman check, alert verification, and the rule that background tasks die when a headless turn ends. Use when the user says \"run this every morning\", \"schedule an agent\", \"cron job for claude\", \"run claude headless\", \"nightly agent\", \"automate this daily\", \"why did my scheduled job stop\", or \"my cron job runs but does nothing\".", "stages": [7], "all_stages": false, "maturity": "beta", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-builder-kit/scheduled-agents", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/scheduled-agents/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/scheduled-agents/SKILL.md"}, {"path": "scripts/deadman.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/scheduled-agents/scripts/deadman.py"}, {"path": "scripts/run_headless.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/scheduled-agents/scripts/run_headless.py"}, {"path": "templates/crontab.txt", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/scheduled-agents/templates/crontab.txt"}, {"path": "templates/github-actions.yml", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/scheduled-agents/templates/github-actions.yml"}, {"path": "templates/launchd-deadman.plist", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/scheduled-agents/templates/launchd-deadman.plist"}, {"path": "templates/launchd.plist", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/scheduled-agents/templates/launchd.plist"}, {"path": "templates/task-scheduler.ps1", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/scheduled-agents/templates/task-scheduler.ps1"}]},
 {"id": "foundry-builder-kit/secrets-hygiene", "plugin": "foundry-builder-kit", "type": "skill", "name": "secrets-hygiene", "dir": "secrets-hygiene", "description": "Keep API keys and passwords out of git, scan a repo for keys before you commit or push, and rotate one correctly when it leaks. Sets up .env patterns, .gitignore, a gitleaks pre-commit hook and CI scan, then runs the probe-first rotation flow (probe the leaked key, map every consumer, mint new, swap all consumers, revoke old, re-probe until dead). Use when the user says \"I committed my API key\", \"a key leaked\", \"GitHub sent a secret scanning alert\", \"rotate this key\", \"set up .env\", \"keep secrets out of git\", \"add gitleaks\", \"make sure I'm not leaking any keys\", \"am I about to commit a secret\", \"scan for API keys or secrets\", \"check for leaked credentials before I push\", or before a repo goes public.", "stages": [4, 7], "all_stages": false, "maturity": "verified", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-builder-kit/secrets-hygiene", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/secrets-hygiene/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/secrets-hygiene/SKILL.md"}, {"path": "scripts/commit_secret_guard.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/secrets-hygiene/scripts/commit_secret_guard.py"}, {"path": "scripts/probe_key.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/secrets-hygiene/scripts/probe_key.py"}, {"path": "scripts/scan_secrets.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/secrets-hygiene/scripts/scan_secrets.py"}, {"path": "templates/env.example", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/secrets-hygiene/templates/env.example"}, {"path": "templates/gitignore-secrets.txt", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/secrets-hygiene/templates/gitignore-secrets.txt"}, {"path": "templates/pre-commit-config.yaml", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/secrets-hygiene/templates/pre-commit-config.yaml"}, {"path": "templates/pre-commit.sh", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/secrets-hygiene/templates/pre-commit.sh"}, {"path": "templates/secret-scan.yml", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/secrets-hygiene/templates/secret-scan.yml"}]},
 {"id": "foundry-builder-kit/tmux-agents", "plugin": "foundry-builder-kit", "type": "skill", "name": "tmux-agents", "dir": "tmux-agents", "description": "Drive interactive CLIs and long-running processes from an agent through tmux. Start a REPL, dev server, database shell, SSH session, or another coding agent in a detached pane, type into it, wait for a prompt or a log line, read the output, and clean up. Includes running several coding agents in parallel in separate git worktrees. Use when the user says \"run this in tmux\", \"keep the dev server running\", \"drive this REPL\", \"interactive prompt\", \"the command needs a TTY\", \"run several agents in parallel\", \"watch the logs while you work\", or when a command hangs waiting for input.", "stages": [4, 5], "all_stages": false, "maturity": "beta", "install_mode": "standalone", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-builder-kit/tmux-agents", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/tmux-agents/SKILL.md", "files": [{"path": "SKILL.md", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/tmux-agents/SKILL.md"}, {"path": "scripts/tmux_agent.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/tmux-agents/scripts/tmux_agent.py"}]},
 {"id": "foundry-builder-kit/commit-secret-guard", "plugin": "foundry-builder-kit", "type": "hook", "name": "commit-secret-guard", "description": "`skills/secrets-hygiene/scripts/commit_secret_guard.py`, wired in `hooks/hooks.json`. Blocks a `git commit` the agent runs when the commit would contain a secret: the index plus whatever the same command stages first (`git add -A && git commit`, `git commit -am`)", "stages": [4], "all_stages": false, "maturity": "verified", "install_mode": "plugin-only", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/foundry-builder-kit/commit-secret-guard", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/secrets-hygiene/scripts/commit_secret_guard.py", "files": [{"path": "hooks/hooks.json", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/hooks/hooks.json"}, {"path": "skills/secrets-hygiene/scripts/commit_secret_guard.py", "raw_url": "https://raw.githubusercontent.com/ai-foundry-byu/foundry-marketplace/main/plugins/foundry-builder-kit/skills/secrets-hygiene/scripts/commit_secret_guard.py"}]},
 {"id": "recruit/recruit", "plugin": "recruit", "type": "plugin", "name": "recruit", "description": "External (MIT). Resume builder and job finder: merge your resumes into one experience bank, score roles against your goals, build a tailored ATS-safe resume per job, and check a machine can read it. It never applies for you.", "stages": [], "all_stages": false, "maturity": "beta", "install_mode": "plugin-only", "requires_skills": [], "uses_agents": [], "page_url": "https://ai-foundry-byu.github.io/foundry-marketplace/#/item/recruit/recruit", "raw_url": "", "files": [], "source_url": "https://github.com/jddavenportOpen/recruit-copilot"}
]
}
