Where packs load from, in order
hooks/lib/patterns/(the built-in packs).$XDG_CONFIG_HOME/concise/patterns/, else~/.config/concise/patterns/(the user packs, loaded for every project).<cwd>/.claude/concise/patterns/.<cwd>/.codex/concise/patterns/.- Each entry in
features.aiWriting.packs, in list order.BEC_LOAD_LIB_PATHSis appended to that list.
Each source is walked recursively, sorted by name, and only .json and .mjs files are read. presets.json is skipped. A later source with the same pack id replaces the earlier pack. Two files with the same id inside one source is an error, and so is a pack whose id does not match its file name. An invalid pack is skipped and reported once per session.
An entry in features.aiWriting.packs is a file or a directory, absolute or relative to the project directory.