Skip to content
Back to skills

App It Windows

ASecurity

Create Windows beta desktop launchers for local web projects: WPF + WebView2 .exe, Start Menu shortcut, .ico, warm server, quit cleanup. Use when the user asks for app-it-windows, a Windows app, .exe launcher, Start Menu shortcut, Windows package, or desktop icon. CI-guarded but untested on Windows hardware; never claim runtime success without a Windows maintainer.

  • 217 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added June 7, 2026
developmentrustgoshellapifrontendbackend

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned June 7, 2026

npx -y skills add Christian-Katzmann/app-it --skill app-it-windows --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of App It Windows?

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

Security grade badge for App It Windows
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/christian-katzmann-app-it-windows/badge)](https://www.skillsdirectory.com/skills/christian-katzmann-app-it-windows)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: app-it-windows
description: >-
  Create Windows beta desktop launchers for local web projects: WPF + WebView2
  .exe, Start Menu shortcut, .ico, warm server, quit cleanup. Use when the user
  asks for app-it-windows, a Windows app, .exe launcher, Start Menu shortcut,
  Windows package, or desktop icon. CI-guarded but untested on Windows hardware;
  never claim runtime success without a Windows maintainer.
---

# app-it-windows - Make a project launchable on Windows (beta)

**Windows beta: scaffolded, untested on real hardware, maintainer wanted.**

The macOS `app-it` lane is proven. This Windows sibling mirrors the contract
with Windows primitives, but every runtime behavior that needs a real Windows
desktop must be marked deferred: `this needs a Windows maintainer - see
docs/WINDOWS.md`.

## Non-Negotiables

1. Run `templates/inspect.ps1` first and read the output before editing.
2. Trust disk over docs. Verify project type, scripts, ports, and desktop
   signals from files.
3. Build everything a Mac or CI can build; never claim Windows runtime behavior
   works unless it was verified on real Windows hardware.
4. Prefer the WPF + WebView2 host. Edge `--app=` is a fallback, not the default.
5. Keep Windows visibly beta in every report and user-facing summary.
6. Copy shipped templates and customize through `scripts\app-it.config.json`.
   Do not re-derive launcher patterns.
7. Verify build/lint/config checks, then list hardware-only checks as deferred.

## Reference Map

Open only what the inspection or chosen path needs:

- `references/maintainer-contract.md` - what a Mac can produce, what must be
  deferred, and the exact Windows-maintainer phrase.
- `references/inspection-and-strategies.md` - project inspection, toolchain
  probes, strategy tree, W-Native, W-Edge, W-Static, W-Multi, B, and D.
- `references/generated-files.md` - template roster, allowed target files,
  config JSON, package scripts, and Start Menu destination.
- `references/wrapper-host.md` - WebView2 host, lifecycle, Job Object ownership,
  single-instance behavior, and wrapper argument contract.
- `references/verification.md` - buildable checks, Windows-only checks, and
  deferred rows.
- `references/report-template.md` - exact beta report format.

## Templates

Templates live next to this file in `templates/`. Copy them into the target
project and keep their contracts intact:

```text
templates/
  wrapper-windows/
  desktop-build.ps1
  desktop-install.ps1
  desktop-quit.ps1
  inspect.ps1
  run-template.ps1
  run-template-edge.ps1
  desktop-icons.ps1
  placeholder-icon-gen.ps1
  PSScriptAnalyzerSettings.psd1
  app-it.config.example.json
```

The comments inside templates encode Windows traps: PATH augmentation,
WebView2/.NET prerequisites, free-port probing, Job Object ownership, Start Menu
shortcuts, SmartScreen, and icon-cache behavior. Read the matching reference
before changing launcher internals.

## Workflow

### 1. Inspect

Run the bundled probe from the target project root:

```powershell
pwsh -File path\to\plugins\app-it-windows\skills\app-it-windows\templates\inspect.ps1
```

Read `references/inspection-and-strategies.md` before deciding project shape,
ports, existing desktop tooling, names, icons, or strategy.

### 2. Decide

For each user-facing app:

```text
Existing Electron/Tauri/NW.js Windows target?
  yes -> Strategy B
  no  -> native desktop requirement beyond web shell?
           yes -> Strategy D
           no  -> .NET 8 buildable and WebView2 expected?
                    no  -> W-Edge fallback
                    yes -> static built bundle, no server?
                             yes -> W-Static
                             no  -> cohabiting frontend + backend?
                                      yes -> W-Multi
                                      no  -> W-Native (default)
```

WebView2 is Chromium, so File System Access and other Chromium APIs are reasons
to prefer the WPF host, not reasons for a polyfill.

### 3. Build

Touch as little project surface as possible. Copy the selected templates, write
`scripts\app-it.config.json`, add `desktop:*` package scripts, and generate the
`.ico`/published output when tooling is present.

Read `references/generated-files.md` before editing scripts/config/docs, and
`references/wrapper-host.md` before changing the host or PowerShell lifecycle.

### 4. Verify

On macOS, only claim buildable evidence: .NET publish when available,
PowerShell lint when available, manifest/config parse, and placeholder icon
round-trip in Windows CI. Everything involving a real window, Taskbar identity,
tray Quit, Start Menu icon cache, SmartScreen, DPI, or Job Object tree reaping
stays deferred with the maintainer phrase.

Read `references/verification.md` before reporting results.

### 5. Report

Use `references/report-template.md` inline and in
`docs\desktop-launcher.app-it-report.md`. Keep beta wording visible, separate
build/lint evidence from runtime unknowns, and append decision history.

Stage files only when the local convention or user request asks for it. Do not
commit unless asked.

## Quick Defaults

- Install destination:
  `%APPDATA%\Microsoft\Windows\Start Menu\Programs\app-it\`.
- Runtime state:
  `%LOCALAPPDATA%\app-it\<slug>\`.
- Bundle ID/key prefix: `com.user.<slug>`.
- Default strategy: W-Native when .NET 8 can build and WebView2 is expected.
- Fallback: W-Edge only when host prerequisites are unavailable.
- Icon sizes: `16, 32, 48, 64, 128, 256`.
- First-run signing stance: unsigned; SmartScreen click-through documented.

## Stop Signs

Stop and mark deferred or blocked when only Windows hardware can decide, when
the required build toolchain is missing and no fallback fits, when a port cannot
be made env-driven, when a template needed for the selected strategy is absent,
or when the requested claim would imply real Windows runtime verification that
has not happened.

Files in this skill

  • SKILL.md5.8 KB
  • references/generated-files.md1.7 KB
  • references/inspection-and-strategies.md2.2 KB
  • references/maintainer-contract.md1.5 KB
  • references/report-template.md2.4 KB
  • references/verification.md1 KB
  • references/wrapper-host.md1.7 KB
  • templates/PSScriptAnalyzerSettings.psd11000 B
  • templates/app-it.config.example.json3.5 KB
  • templates/desktop-build.ps111.5 KB
  • templates/desktop-icons.ps18.6 KB
  • templates/desktop-install.ps14 KB
  • templates/desktop-quit.ps17.9 KB
  • templates/inspect.ps19.5 KB
  • templates/placeholder-icon-gen.ps111 KB
  • templates/run-template-edge.ps111 KB
  • templates/run-template.ps17.5 KB
  • templates/wrapper-windows/.gitignore85 B
  • templates/wrapper-windows/App.xaml670 B
  • templates/wrapper-windows/App.xaml.cs2.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…