IfDocumentation Index
Fetch the complete documentation index at: https://docs.getgaal.com/llms.txt
Use this file to discover all available pages before exploring further.
gaal sync or gaal doctor is reporting an error, find it on this page. Each entry covers what triggered it, what gaal is actually checking, and the fix.
”config not found”
- You meant to be in a project directory,
cdto it. - You haven’t initialised yet, run
gaal init. - You’re scripting gaal in a non-standard location, pass
--config /path/to/file.yaml.
”schema validation failed”
skills[2].agents), go to that location and compare against the schema reference.
Tip: install the JSON Schema (gaal schema -f schema.json) and your editor will catch this before you save.
”scope-restricted field in workspace”
telemetry key is restricted to the user (~/.config/gaal/config.yaml) and system (/etc/gaal/config.yaml) scopes. The workspace value is ignored. Move it to the user scope.
”source not reachable”
source: URL doesn’t resolve. Either:
- The repo was renamed or deleted, update the URL.
- It’s a private repo and your local credentials don’t grant access, check your SSH key /
~/.netrc. - You’re offline, pass
--offlinetodoctoror wait until you’re online.
”destination is not empty”
repositories: at a different path.
”remote URL mismatch”
origin. It does not silently retarget the working copy. Either update url: in gaal.yaml to match the checkout, or run git remote set-url origin <url> in the working copy.
”MCP target file not writable”
- The file’s permissions are wrong,
chmod 644it. - The parent directory exists but isn’t user-writable, fix the permissions.
- The path crosses a read-only mount.
”MCP target file is not valid JSON”
”target field is deprecated”
target: field on mcps[] still works but logs a warning on every sync. Replace it with agents: + global: so gaal resolves the path from the registry. See Configure MCP servers → Migrating from target:.
”custom agent overrides built-in”
my-cursor) or remove it.
”agent skills directory not detected”
agents: ["*"] and one of the registry agents wasn’t detected. By default gaal only installs into agents it detects. If you want to install regardless, for example, to pre-stage a fresh machine, pass --force:
“service mode rejected”
--service is a continuous loop; --dry-run would do nothing forever, and --prune is a destructive operation that doesn’t belong in an unattended loop. Run those one-shot.
”VCS binary not found”
brew install subversion, apt install subversion, …) or convert the repository to a Git mirror.
Still stuck?
Open an issue at github.com/getgaal/gaal with:- The exact command you ran.
- The output of
gaal doctor -o json. - The version from
gaal version.