skills/create-dart-bg-activity/SKILL.md
Create a Dart-based macOS background activity process managed by launchd. Use when Codex needs to scaffold or fix a LaunchAgent for a Dart program, generate the executable entrypoint, write the plist, or ensure App Background Activity shows the intended process name instead of a shell wrapper.
npx skillsauth add hu-wentao/wyatt_skills create-dart-bg-activityInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Check repo and environment first.
fvm.daemon/bin/<service_name> or bin/<service_name>.Define the background process shape.
Label, for example com.example.sync_agent.dart runexecs the real process/bin/zsh -lc ....Create the Dart entrypoint.
bin/<service_name>.dart.Create a real executable for launchd.
/bin/zsh, /bin/bash, or sh as ProgramArguments[0].dart compile exe bin/<service_name>.dart -o daemon/bin/<service_name>
#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
exec dart run "$REPO_ROOT/bin/<service_name>.dart"
Write the LaunchAgent plist.
~/Library/LaunchAgents/<label>.plist for per-user jobs unless the user explicitly needs a system daemon.LabelProgramArguments with the real executable as the first itemRunAtLoadKeepAlive if continuous restart is desiredWorkingDirectory if the service depends on relative pathsStandardOutPath and StandardErrorPath for debuggingEnvironmentVariables in the plist or explicit setup in the launcher script.Load and verify the service.
uid=$(id -u)
launchctl bootout "gui/$uid/<label>" >/dev/null 2>&1 || true
launchctl bootstrap "gui/$uid" "$HOME/Library/LaunchAgents/<label>.plist"
launchctl print "gui/$uid/<label>"
plutil -p "$HOME/Library/LaunchAgents/<label>.plist"
program or arguments[0] points to the intended executable path, not a shell wrapper.Validate runtime behavior.
tail -n 100 "$HOME/Library/Logs/<app>/<stderr-log>"
ps aux | rg "<service_name>"
lsof -nP -iTCP:<port> -sTCP:LISTEN
Reflect the result back into source code.
exec -a is not a durable fix if ProgramArguments[0] is still a shell.~/Library/LaunchAgents is the default target; use LaunchDaemons only when the user explicitly needs a machine-wide service.development
Proven patterns for building or refining Reflex admin dashboards, user portals, operations consoles, and classic sidebar-plus-content management UIs. Use when editing `.py` files that import `reflex as rx`, creating metric cards, left navigation sidebars, status panels, action forms, code or result blocks, or responsive dashboard pages. When bootstrapping a new Reflex app, prefer `reflex init --template dashboard` by default, and switch to `customer_data_app` or `api_admin_panel` only when the product shape matches those templates more closely.
development
Build, debug, and refactor Streamlit apps and widgets. Use when Codex works on Streamlit UI files, session_state behavior, rerun/callback bugs, st.data_editor or dataframe widgets, layout parameters, widget keys, Streamlit version compatibility, or deprecated/new parameters such as width="stretch" replacing older container-width patterns.
development
Merge a specified branch into the current branch with a merge commit. Use this when the user wants to merge one branch into the current branch, or when Codex should auto-detect the source branch that has commits after the current branch. The skill checks whether the source branch and target branch have uncommitted work in any active git worktree, and resolves merge conflicts autonomously by default.
development
Prepare, build, and publish a Flutter Web app to S3-compatible object storage. Use when Codex needs to bump or update pubspec.yaml version, create a Flutter Web release tag, configure S3 deployment, build build/web, upload or promote web assets, or inspect a Flutter Web S3 release workflow.