ADLC
Toolkit

init

Idempotently bootstrap the committable ADLC runtime and current project-scoped Codex agents.

adlc init

This command is implemented in the current source but is not in the older registry release. From a checkout, use node packages/init/bin/adlc-init.mjs; use adlc init after the matching suite release is published.

Initialize a repository without writing to user-global harness configuration:

adlc init

The command creates .adlc/config.json, .adlc/specs/, safe .gitignore entries, and three standalone .codex/agents/*.toml roles. It preserves every existing project-owned file, refuses symlink escapes from the project root, and produces the same result when run again.

adlc init --root ./other-repo --json
adlc init --no-codex-agents

Use $adlc-init inside Codex to run the same initializer. The Codex skill does not maintain a second scaffold implementation.

Exit code 0 means initialization completed, including a no-change rerun; exit code 1 means an operational or input error.

When .adlc/config.json is present but is not readable JSON, adlc init records a warning and exits 1 without overwriting the broken file. The same holds when --harness is passed and the config's harnesses field is present but not an object: the harness cannot be registered, so the run fails instead of reporting success. When .gitignore contains mis-ordered rules that cause required committable paths to be ignored, adlc init records a warning and exits 1 without reporting the file unchanged. If the file has no .adlc/* anchor yet, adlc init appends the whole ADLC stanza and moves any stanza line found above it into place, so its own append never leaves a negation dead. The rules are checked with git check-ignore: in the repository when git can open it, otherwise in a throwaway repository holding only the .gitignore (for example before git init). Only without a git binary does a built-in matcher decide, and it follows git's rule that nothing under an ignored directory can be re-included.

On this page