feat(ariadne): add CLI skeleton

This commit was merged in pull request #31.
This commit is contained in:
2026-09-09 18:23:29 -04:00
parent 01f47b419d
commit 3538297991
8 changed files with 270 additions and 17 deletions

View File

@@ -1,18 +1,53 @@
# Ariadne
Ariadne analyzes Clew output for a local Ren'Py game install.
Keep project-owned source under `src/ariadne/`.
Keep game-derived files local and ignored under `src/ariadne/output/`.
Ariadne analyzes Clew-produced data for local Ren'Py projects.
Clew owns extraction, preparation, and Ren'Py AST export.
Ariadne consumes Clew's `clew-renpy-ast-v1` JSON from `output/ast/`.
Ariadne maps that data into internal analysis state.
Ariadne consumes Clew output and builds analysis artifacts from it.
Keep project-owned source under `src/ariadne/`; keep generated or game-derived files out of Git.
## Bazel shape
## CLI
Run the current placeholder CLI with:
Run the default target, `all`:
```sh
bazel run //src/ariadne:ariadne
```
By default, Ariadne writes output under `output/`.
Use `--output-dir` to choose a different output directory:
```sh
bazel run //src/ariadne:ariadne -- --output-dir scratch/ariadne-output
```
Run through a specific target stage and its prerequisites:
```sh
bazel run //src/ariadne:ariadne -- parse
bazel run //src/ariadne:ariadne -- add-jump-edges
```
Available target stages:
- `all`
- `parse`
- `add-implicit-edges`
- `add-init-edges`
- `add-jump-edges`
Relative `--output-dir` paths resolve from the workspace root when Ariadne runs through `bazel run`.
## Pipeline skeleton
Ariadne currently has pipeline scaffolding only.
Each executable stage prepares an output directory at:
```text
<output-dir>/graph/<stage>/
```
If a stage output directory already exists and is not empty, Ariadne fails unless `--force` is set.
With `--force`, Ariadne removes the existing stage output directory before recreating it.
Stage implementations are placeholders and do not write graph artifacts yet.