算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
desktop-packaging【设计与创意】Build and troubleshoot MineContext desktop packaging, including the PyInstaller backend, Electron packages, frontend backend copy, and macOS helper binaries.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this sub-skill when a task asks to build or troubleshoot the MineContext
standalone desktop application: the PyInstaller opencontext backend
executable, copying that backend into frontend/backend/, Electron packaging
from the frontend/ package, macOS helper binaries, signing/notarization
preflight, or failures in the build scripts.
Route backend server startup, FastAPI routes, runtime configuration, and
opencontext start behavior to runtime-service
instead of diagnosing them here. This sub-skill only owns build/package
mechanics and package-time file placement.
Use this sub-skill for requests that mention:
pnpm build:mac, pnpm build:win, pnpm build:linux, or Electron packaging;build.sh, build.bat, PyInstaller, or opencontext.spec;copy-prebuilt-backend, missing frontend/backend/main, missing dist/main/main, or backend executable copy failures;window_inspector, window_capture, Quartz, macOS helper binaries, screen helper build skips, or helper dist/ outputs;electron-builder, frozen-lockfile failures, or build script failures.Confirm the agent is operating from a MineContext checkout or has a repo root
path. Package scripts expect a root containing opencontext.spec,
hook-opencontext.py, build.sh, and frontend/package.json.
Run the bundled preflight before any mutating build:
bash path/to/desktop-packaging/scripts/check_packaging_env.sh --repo-root .
scripts/check_packaging_env.sh reports Python, uv, Node, pnpm, platform, required packaging files, helper-binary paths, and backend-copy readiness without installing anything.
If the task is only to produce the backend executable, use the safer backend wrapper and explicitly acknowledge its mutation of build outputs:
bash path/to/desktop-packaging/scripts/build_backend.sh --repo-root . --yes
scripts/build_backend.sh wraps the repo backend
PyInstaller build, verifies dist/main/main or dist/main/main.exe, and can
optionally copy the built backend into frontend/backend/.
If the task needs packaged app artifacts, read references/build-and-package.md for the exact backend, dependency, frontend copy, and Electron command sequence.
If the failure involves window_inspector, window_capture, Quartz, or a
non-macOS helper skip, read
references/helper-binaries.md.
If a command failed, map the symptom in references/troubleshooting.md before reinstalling dependencies or deleting outputs.
| Surface | Owned here | Key expectation |
|---|---|---|
| Backend executable | Yes | Root build.sh/build.bat invoke PyInstaller with opencontext.spec and produce dist/main/main or dist/main/main.exe. |
| Frontend backend copy | Yes | frontend/scripts/copy-prebuilt-backend.js deletes and recreates frontend/backend/ from root dist/main/ plus dist/config/. |
| Electron package | Yes | Run package scripts from frontend/, not the root package.json. macOS/Windows package scripts copy the backend first; Linux currently requires an explicit backend copy before packaging. |
| macOS helpers | Yes | window_inspector and window_capture are Quartz/PyObjC helpers copied into the macOS app as bin/window_inspector and bin/window_capture. |
| Server behavior | No | Route CLI flags, FastAPI health/API behavior, backend logs at runtime, and config semantics to runtime-service. |
build.sh, build.bat, pnpm run build*, electron-builder, and
backend copy commands as mutating. They may delete or recreate root dist/,
root build/, frontend/dist/, and frontend/backend/.copy-prebuilt-backend failures by reinstalling frontend
dependencies first. Check whether the root backend executable exists.window_inspector/window_capture build is
expected for the JavaScript helper build path because those helpers use macOS
Quartz APIs.