Skip to content

relix init: create a project's .relix directory #55

Closed

Description

@david-Darkcollective

Today everything in docs/design.md §5 assumes a .relix/ directory already exists and was written by hand: the catalog files, profiles.json at the right permissions, the trust record. relix init creates it, so a new project's first query needs no hand-editing.

relix init                                   # .relix/ in the working directory
relix init ~/work/acme --root --profile=staging --output=csv
Writes When
.relix/catalog/ always
.relix/relixrc when --output or --profile is given, with those keys
.relix/root with --root (§5.2: the walk up stops here)
.relix/profiles.json always, as {}, mode 0600
.relix/.gitignore always, holding profiles.json
  • Refuses when .relix/ exists (exit 2). Re-running it is never how a project is repaired.
  • Trusts what it wrote: records the trust hash (§5.4) after writing, exactly as relix catalog trust would, so the first run shows no "not trusted" warning.
  • profiles.json is git-ignored from the start. The .gitignore sits inside .relix/, so init never edits a file of the user's and behaves the same in or out of a repository.
  • Outside $HOME it warns that only the working directory's .relix/ is read from there (§5.2).
  • Messages go to stderr; init writes nothing to stdout.

Done when

relix init (with and without each flag) produces the tree above at the right permissions, a following relix run in that directory shows no trust warning, and a second init exits 2 without touching anything.

Activity

  1. added this to the 1.0.0 milestone on Oct 14, 2026
  2. github-actions commented on Oct 16, 2026

    @github-actions

    Done in #61, merged to develop (e6fcaa8).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:cliThe relix command itselfenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions