ACE - Support Config

Shared configuration cascade primitives for ACE libraries and tools. ACE Logo

Gem Version Ruby License: MIT

Works with: Claude Code, Codex CLI, OpenCode, Gemini CLI, pi-agent, and more.

Usage Guide ace-support-config provides layered configuration loading and merging for ACE, resolving values from .ace project files, user home defaults, and gem-bundled defaults with deterministic precedence. Used by ace-llm, ace-search, ace-review, and most other ACE packages.

ace-config CLI

This package now owns the ace-config executable for managing .ace configuration files and templates.

ace-config sync [GEM] [--force] [--dry-run] [--global] [--verbose]
ace-config doctor [--json] [--hygiene] [--probe] [--no-probe] [--verbose] [--quiet] [--no-color]
ace-config diff [GEM] [--global] [--local] [--file PATH] [--one-line]
ace-config list [--verbose]
ace-config version
ace-config help

Use ace-config doctor after a fresh setup to check quick-start readiness without mutating the project. By default it prints each fast setup check as it completes, streams concurrent ace-llm TARGET "ping" --no-fallback results for deduped _utility and commit role candidates, and then prints a final doctor report. The report separates health warnings from informational config-default drift and hidden-by-default hygiene findings. Add --hygiene to print full hygiene details, --json for machine-readable output, or --no-probe to skip live provider pings.

Testing

ace-support-config uses the ACE deterministic test taxonomy:

ace-test ace-support-config        # fast (default)
ace-test ace-support-config feat   # deterministic feature coverage
ace-test ace-support-config all    # fast + feat

This package does not define a package-owned e2e layer in this migration.

How It Works

  1. A resolver builds a configuration cascade from the nearest .ace directory up to user-home and gem-default layers.
  2. Resolved values are merged using configurable merge strategies with deterministic precedence.
  3. Consumers access resolved config by namespace, file path, or direct lookup.

Use Cases

Load layered configuration safely - combine project, user, and default values with deterministic precedence for any ACE package.

Support project-specific overrides - place .ace files near the execution context to customize behavior while keeping defaults stable across tools like ace-llm and ace-review.

Resolve namespaces consistently - access configuration across tools using shared resolver methods, so ace-llm-providers-cli and ace-search get the same cascade behavior.


Usage Guide | Part of ACE