Repository navigation
v1.5.0
How to install
Designed to work with any AI coding assistant that reads AGENTS.md. Built and tested on Claude Code; other assistants are untested.
Your app needs git (git init if it has none) and no uncommitted changes. You also need bash (on Windows: Git for Windows) and gitleaks ≥ 8.18.0, except 8.19.0, which can't scan: use 8.19.1 or later (macOS: brew install gitleaks; Windows: winget install gitleaks).
Option 1: npx skill. In your app's folder, run:
npx skills add Freakling/App-Director
That installs the app-director skill for the assistant you choose in the prompt; in Claude Code it becomes the /app-director slash command. Ask your assistant to set up App Director. The skill fetches the latest App Director release outside your app and runs onboarding. To pick up a newer release later, run the command again.
Option 2: Claude Code plugin. In Claude Code:
/plugin marketplace add Freakling/App-Director
/plugin install app-director@app-director
The plugin installs the latest release. Then open a new Claude Code session in your app's folder (or run /reload-plugins), and run /app-director:app-director.
Option 3: manual clone. Clone the latest release next to your app as App-Director/. The release's tag is v followed by its version number, and the Releases page shows the latest one; replace <tag> in this command with it:
git clone --branch <tag> --depth 1 https://github.com/Freakling/App-Director.git App-Director
Then ask your assistant:
Read App-Director/ONBOARDING.md and follow it to install App Director into this project.
Upgrading: run /app-director (or /app-director:app-director with the plugin), or ask your assistant to run onboarding. It detects the existing install and carries out the upgrade steps of each CHANGELOG entry newer than your version, in order.
What's changed
- The manual install clones the latest release. The README's manual option cloned
main, the integration branch, so a manual install got unreleased changes. It now clones the release tag (git clone --branch <tag> --depth 1), and says the tag isvfollowed by the version and where the latest one is listed. The manual upgrade wording still holds: put the new folder in and ask for ONBOARDING.md again. - The selftest expects setup-clone's refusal of gitleaks 8.19.0.
tools/setup-clone.shrefuses gitleaks 8.19.0 before it installs the pre-commit hook. The selftest's check for the installed hook now expects that refusal (exit 3, no hook) when the gitleaks on PATH is 8.19.0, and still expects the hook otherwise. A stand-in gitleaks 8.19.0 test proves the refusal in a fresh repository on any machine. The selftest's passthrough stand-in had hidden a real 8.19.0 from the check, so the check never reached the refusal. - Every install path gets the latest release. The skill, the fetch script and the Claude Code plugin now install the release tagged
v<version>;mainis where changes are integrated, not what people install. BothSKILL.mdfiles clone--branch v<version>into a fresh temporary folder, the way SaaSAllTheThings does, and delete it after onboarding. They no longer callscripts/fetch-app-director.sh, whose path (${CLAUDE_PLUGIN_ROOT}/scripts/...) doesn't exist outside the plugin. The fetch script fetches its own release tag, and a folder left by an earlier run moves to it instead of pullingmain. The marketplace names the plugin as agithubsource withrefv<version>, because Claude Code's relative-path source (./) can't pin a ref. The rootSKILL.mdandpackage.jsonsaid 1.0.0, andskills/app-director/SKILL.mdcarried no version; all now followVERSION.CLAUDE.md› For a release lists every file that carries the version and says each release is taggedv<version>once its pull request is merged.selftest.shchecks that they all agree withVERSION, and that the fetch script moves a reused folder to a new tag (a local repository stands in for GitHub). - The marketplace's
owneris an object..claude-plugin/marketplace.jsonhad"owner": "Freakling", whichclaude plugin validaterejects (expected object, received string). It is now{ "name": "Freakling" }, as in the other two frameworks.
Upgrade steps
None required for existing installs.