Skip to content

v1.4.0

Choose a tag to compare

@Freakling Freakling released this 15 Oct 18:39
· 33 commits to main since this release
53769f5

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 App Director outside your app and runs onboarding.

Option 2: Claude Code plugin. In Claude Code:

/plugin marketplace add Freakling/App-Director
/plugin install app-director@app-director

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 this repository next to your app as App-Director/:

git clone 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 fast check notices a removed or changed gitleaks. tools/check.sh --if-changed repeated the last result while the files were unchanged, so a gitleaks that was removed, or changed (such as to 8.19.0, which can't scan), went unnoticed until a file changed. The cached result now records gitleaks's version, or that it's missing, and a change to either runs the secrets step again. The fast path still makes one gitleaks version call. selftest.sh checks a reused pass, a changed version, the 8.19.0 downgrade, a removed gitleaks and a repeated failure with a stand-in gitleaks.
  • The secrets check says when gitleaks can't scan. gitleaks 8.19.0 fails every scan command, which the check read as credentials found on a clean tree. tools/check.sh now exits 3 and says that gitleaks couldn't scan, with its own error line, and asks for gitleaks 8.19.1 or later. Any scan that fails with no finding in its report is reported that way, never as a finding. The minimum stays 8.18.0.
  • setup-clone.sh and the README no longer accept gitleaks 8.19.0. setup-clone.sh reported 8.19.0 as found and installed the pre-commit hook on it. It now exits 3 with the hint "gitleaks 8.19.0 can't scan (every command fails). Upgrade to 8.19.1 or later.", and the README names 8.19.0 as the exception. The minimum stays 8.18.0.
  • The upgrade-file check ignores nested clones. git ls-files lists a nested repository in an ignored folder (such as a clone in work/) as a directory, which blocked every commit while no upgrade file existed. The pre-commit hook, the /align check and onboarding now keep only paths that end in .adir-new, so a real upgrade file still blocks the commit.
  • selftest.sh checks that a nested clone in an ignored folder doesn't block a commit, and that a real upgrade file still does.
  • The secrets check names the file with a finding, and works with gitleaks 8.18 and 8.30. The check printed only the report path, so the file with a secret wasn't named; it now lists each file with a finding (paths only; the values stay redacted). gitleaks 8.18 has no dir command, so the check scans with gitleaks detect --no-git there and with gitleaks dir from 8.19.1; 8.19.0 can't scan at all.
  • The pre-commit hook names the file with a secret. When gitleaks finds a secret in the staged changes, the hook lists each file with a finding (paths only; the values stay redacted), and gives the report's path for the Fingerprint. A scan that can't run is no longer reported as a finding: the hook says so and asks for 8.19.1 or later. The staged scan (gitleaks protect --staged --report-path) works on the gitleaks releases checked from 8.18.0 to 8.30.1, all but 8.19.0.
  • A run can also be asked for as "grab tasks until you're blocked". next-task.md (the request list and step 7), the /next-task skill description, the README's day-to-day table and the behaviour scenarios now name it next to "the next N tasks" and "work through the queue". Each task in a run commits without pausing; the run stops when an item is blocked on the human, a build fails, or the human declines a commit. A single /next-task still pauses for approval. git commit is already allowed in settings.json; pushing and deploying keep asking.
  • README: Part of Director-Driven Development. A new section after the opening description links the Director-Driven Development article and the three frameworks built on it (Godot-Director, App-Director, SaaSAllTheThings).

Upgrade steps

None required for existing installs. The framework files arrive on upgrade; restart Claude Code so the changed skill description loads.