windows-local-build
Skill from yybd/app-factory
Install
npx skills add yybd/app-factory --skill windows-local-build
Runs the open skills CLI and installs the skill for your agent (Claude Code, Codex, Cursor …). Alternatively copy the skill folder into .claude/skills/ or upload it in Claude.ai under Settings → Skills.
As a Claude Code plugin
/plugin marketplace add yybd/app-factory
/plugin install windows-track@app-factory
This skill is part of the plugin “windows-track”. In Claude Code the plugin installs it together with the plugin’s other skills, commands and hooks.
What does the windows-local-build skill do?
Description from the SKILL.md in the source repository.
Questions about windows-local-build
What does the windows-local-build skill do?
Build a Tauri app's Windows version on a Mac and test it in a local VM, with no GitHub Actions and no Windows PC: cross-compile the exe and NSIS installer with cargo-xwin, then install, run a windowless self-test, screenshot, cut the network and roll back snapshots in a Parallels VM through prlctl. Use when the user wants a Windows build without CI, has run out of Actions minutes, asks to cross-compile for Windows, test in Parallels or compare x64 and arm64, when makensis crashes with std::bad_alloc, or says "לבנות לווינדוס מהמק", "לבדוק בווינדוס בלי GitHub", "בנייה מקומית לווינדוס". It does NOT add the updater or write the feed (windows-direct-distribution), does not Authenticode-sign, and does not measure speed on real x64 hardware.
How do I install windows-local-build?
In a terminal: npx skills add yybd/app-factory --skill windows-local-build. The skills CLI asks which agents to install it for. In Claude.ai you can upload the skill folder as a ZIP under Settings → Skills.
Which agents can use windows-local-build?
Skills use the open SKILL.md format, which Claude Code, Claude.ai, the Claude API, OpenAI Codex, Cursor, Gemini CLI and other agents support.
Is windows-local-build safe to use?
Our automatic check found no risky patterns (piped shell scripts, hidden characters, secret access, prompt overrides). It is not a full audit – read the SKILL.md and any scripts before installing.
More skills from yybd/app-factory
Find real bugs and broken flows in a Capacitor app — the JavaScript that runs inside the WebView and the seams where it meets the native shell. Use when a Capacitor/Ionic app misbehaves on one platform but not the other, when a button does nothing, when something is slow or unresponsive, when a change does not appear on the device after a rebuild, before shipping a release, or when asked to QA or debug such an app ("באג בקפסיטור", "לא עובד במכשיר"). It carries a catalog of WebView traps measured on real devices, and the recipe for driving the WebView from the Mac over devtools instead of tapping the user's phone. For a native Swift app use apple-bug-flow-review; its analyzer, sanitizers and XCUITest have nothing to work on here.
Build an app's product profile — the one document every piece of copy about it is later derived from: store listings, site pages, campaigns. Use when onboarding a new app, before writing any copy for it, or when the user asks to "analyze my app", "write up what my app does", "build the marketing profile", "document the app's advantages" ("נתח את האפליקציה", "בנה פרופיל"). It reads the app's source like a product analyst, interviews the owner for what code cannot reveal, researches the real competitors, and proposes a feature and advantage list for the owner to edit before anything is written. Writes `profile.md`, an owner-facing translation beside it, and prepares the media folder. It does NOT capture media (appstore-media does), does NOT write store listing text (store-metadata-writer does), and never writes the app's name or subtitle — those live in the app's README, owned by app-identity.
Decide an app's NAME for both stores, and own the project README as the source of truth for the name, subtitle / short description, and detected feature list. Use when the user wants to name or rename an app, asks "what should I call my app", wants to change the name under the icon or in a store listing, or wants the README's feature list written or refreshed ("תן שם לאפליקציה", "עדכן את ה-README"). Run it when the app is feature-complete, and always BEFORE app-store-metadata, play-store-metadata, aso-keywords and appstore-media, which all read the name and feature list from here. It scans the code for features and monetization, proposes ASO-aware candidates, and DISCUSSES them: it never picks a name on its own. Once decided it writes the display name into the Apple build settings and into Android's strings.xml, and owns the README's version label and changelog. It does NOT write the store metadata files or the keyword field — app-store-metadata, play-store-metadata and aso-keywords own those.
Set up the app factory in a repo, or say why its skills are not loading. Use when a store or release skill that should exist is missing, when the user asks "why aren't the skills loading here", "set up the factory", "enable the tracks", "which tracks does this repo need" ("למה אין לי את הסקילים", "תפעיל את המסלולים"), or after installing the marketplace for the first time. It reads the repo to decide what it is, proposes the tracks that follow, and writes the repo's own .claude/settings.json. It does NOT install plugins, does NOT change the machine's global settings, and does NOT commit — enabling a track is a fact about one repo.
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling or beautifying any web UI; "תעצב את הדף", "שפר את העיצוב"). Generates creative, polished code and UI design that avoids generic AI aesthetics. It does NOT decide a page's structure — `page-builder` does that first — and does NOT audit the result (`web-design-guidelines`).
Audit and manage the in-app localization of a Capacitor / web-shell app, whose UI strings live in JavaScript and HTML rather than in .strings, .xcstrings or strings.xml. Use whenever such an app needs a language checked, added or fixed, when a screen shows the wrong language or an empty label, when asked to find untranslated or hardcoded UI text, or when handling RTL in a bilingual app ("שפה לא נכונה", "תרגום באפליקציה"). It finds the failure this architecture hides: a lookup that falls back instead of failing, so a missing translation ships silently as the wrong language. For an Xcode project whose strings really are in String Catalogs, use localization-i18n instead — that skill has nothing to work on here. It covers the web layer's strings; native Apple localization is localization-i18n's job.
Take a built macOS app from an Xcode archive, package it into a signed DMG, notarize it with Apple, staple the ticket, and verify that everything — the app AND the DMG — is properly signed and notarized for direct (non-App-Store) distribution. Use this whenever the user wants to ship a Mac app outside the Mac App Store ("נוטריזציה", "קובץ DMG"): build/create a DMG, sign with Developer ID, notarize, staple, fix "app is damaged / can't be opened / unidentified developer" Gatekeeper errors, or verify notarization status. Covers the Developer ID flow only (for Mac App Store builds, that's a different signing path). It signs, notarizes and packages; setting up the Sparkle update channel is macos-direct-distribution's job.
Audit and manage IN-APP localization for a macOS or iOS Xcode project — the user-facing strings inside the app (Localizable.strings / .xcstrings String Catalogs), NOT the App Store listing text. Use this whenever the user wants to localize or translate the app's UI ("תתרגם את האפליקציה", "תוסיף שפה"), add or check a language, find hardcoded (un-localized) strings in Swift, check that all locales have all keys (no missing / empty / untranslated strings), find unused or undefined string keys, migrate to String Catalogs, or handle RTL (e.g. Hebrew) and pluralization. For App Store listing metadata (name/description/keywords per language), that's the separate app-store-metadata skill.
Related skills in Testing & QA
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
Use when implementing any feature or bugfix, before writing implementation code
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
Browser automation for AI agents via inference.sh. Navigate web pages, interact with elements using @e refs, take screenshots, record video. Capabilities: web scraping, form filling, clicking, typing, drag-drop, file upload, JavaScript execution. Use for: web automation, data extraction, testing, agent browsing, research. Triggers: browser, web automation, scrape, navigate, click, fill form, screenshot, browse web, playwright, headless browser, web agent, surf internet, record video