diff --git a/docs/04-reelee-core.md b/docs/04-reelee-core.md index 4baff47..6fcf764 100644 --- a/docs/04-reelee-core.md +++ b/docs/04-reelee-core.md @@ -3,7 +3,7 @@ **What this file is for.** You are about to design a library that turns instructional media (a video of a choreographer + a doc + a steering prompt) into an intermediate annotated representation and then renders that into guides. The user wants it to live in — or at least -integrate with — the `video_gen` federation whose top application package is **reelee**. This +integrate with — the `av` (formerly `video_gen`) federation whose top application package is **reelee**. This file is a first-hand read of the reelee codebase (and its two siblings `reelee-org`, `reelee-web`) so you do not have to rediscover: what reelee actually is, what a *genre* is (it's an `nw` concept, not a reelee one), what a project is on disk, whether the diff --git a/docs/05-fleet-inventory.md b/docs/05-fleet-inventory.md index 195bb84..268da96 100644 --- a/docs/05-fleet-inventory.md +++ b/docs/05-fleet-inventory.md @@ -1,4 +1,4 @@ -# 05 — The `video_gen` fleet: what already exists +# 05 — The `av` fleet (formerly `video_gen`): what already exists **What this file is for.** You are about to design and build `stepped`, a library that parses instructional media (a video + a doc + a steering prompt) into a time-aligned @@ -32,8 +32,8 @@ behaviour, and whether the module graph has real depth. **Two corrections to your brief.** -1. The member list you were given is not the `video_gen` workspace. The real file, - `$PP/vs_workspaces/video_gen.code-workspace`, also contains **`reelee`** +1. The member list you were given is not the `av` workspace. The real file, + `$PP/vs_workspaces/av.code-workspace`, also contains **`reelee`** (`$PP/tt/reelee`) and **`reelee-web`** (`$PP/tt/reelee-web`). A parallel manifest at `~/.cache/reelee-review-main/docs/video_gen_manifest.json` adds **`wrapex`** (legacy, superseded by `acture`). `reelee` is the most relevant package in the fleet and was @@ -575,7 +575,7 @@ acquire (yb) ─► pose (rtmlib / YOLO, tracked tori/uke) ─► segment (motio |---|---|---| | `acquire.py` | `download_techniques(...)`, `download_source(...)`, `list_techniques(...)`, `local_clips(dir)`, `canonical_technique_key(title)` | Thin wrapper over `yb.download`, keeping the source URL with every clip. | | `pose.py` / `track.py` | `PoseSequence`, `estimate_poses(video)`, `estimate_poses_tracked(video, source_url=…)`, `identity_swap_rate(seq)` | Pose extraction with persistent person identity — **the obvious enrichment for a dance-step AST**. | -| `segment.py` | `pose_motion_energy(seq)`, `optical_flow_energy(video, frame_range=…)`, `find_segments(energy, frames, fps, **kw)`, `self_similarity_matrix`, `estimate_period`, `segment_demonstrations(seq, *, min_two_person_frac=0.0, use_optical_flow=False, **kw)`, `Segment` | **Unsupervised segmentation of a continuous take into repeated moves.** Hysteresis thresholding so slow-motion reps are not split; a RepNet-style autocorrelation cross-check on rep count. A *better* fit for "segment a dance run-through" than anything in the `video_gen` fleet. | +| `segment.py` | `pose_motion_energy(seq)`, `optical_flow_energy(video, frame_range=…)`, `find_segments(energy, frames, fps, **kw)`, `self_similarity_matrix`, `estimate_period`, `segment_demonstrations(seq, *, min_two_person_frac=0.0, use_optical_flow=False, **kw)`, `Segment` | **Unsupervised segmentation of a continuous take into repeated moves.** Hysteresis thresholding so slow-motion reps are not split; a RepNet-style autocorrelation cross-check on rep count. A *better* fit for "segment a dance run-through" than anything in the `av` fleet. | | `compare.py` | `joint_angles(kp)`, `angle_features(seq)`, `compare(a, b) -> dict` (DTW distance + warping path), `distance_matrix(seqs)`, `per_angle_deviation(result)`, `time_stretch(...)` | "Am I doing it right?" scoring. Honest caveat in the docstring: 2D joint angles are **not** viewpoint-invariant. | | `store.py` | `pose_store(dir)`, `segments_store(dir)`, `sequence_to_tidy_df(seq)`, `sequence_to_parquet_bytes`, `load_all_tidy(store)`, `check_tidy_integrity`, `store_integrity_report()` | dol-backed; tidy/long Parquet as the analysis SSOT. | | `viz.py` | `render_skeleton_video(seq, out_path=…, source_video=…, blank_canvas=…)`, `log_to_rerun(...)` | A skeleton-on-blank-canvas render **is** a face-anonymised, stylized clip — free and deterministic, as an alternative to the AnimeGAN path. | diff --git a/docs/06-surfaces-and-conventions.md b/docs/06-surfaces-and-conventions.md index 3ee4915..c4509d6 100644 --- a/docs/06-surfaces-and-conventions.md +++ b/docs/06-surfaces-and-conventions.md @@ -710,7 +710,7 @@ From `python-project-structure`, `python-iterables`, `python-storage` and the us **Ecosystem plugin pattern, if you need one:** `xdol.Registry` — a typed, dict-backed `MutableMapping` plugin registry with `on_conflict` policy and `subscribe()` -(`$PP/i/xdol/xdol/registry.py:134`, VERIFIED). The video_gen +(`$PP/i/xdol/xdol/registry.py:134`, VERIFIED). The `av` (formerly `video_gen`) workspace overview names it "the ecosystem-wide plugin pattern". Note the tension with `architecture-first` test 2 (a seam that grew a registry means you over-built) — a Registry is justified when *third parties* register into it (as genres do in `nw`), not to make your own @@ -814,8 +814,8 @@ Facts you need up front: ## 13. Fleet context you should not re-discover - The federation overview lives at - `$PP/t/priv/data/groups/video_gen/workspace_overview.md` - (note: `t/priv/data/…`, **not** `t/priv/priv/data/…`). It has the ASCII stack diagram, + `$PP/g/av/workspace_overview.md` + (the `av` group repo; formerly `t/priv/data/groups/video_gen/`). It has the ASCII stack diagram, ~22 packages with one concern each, and the **prime directive**: *"We work from the top of the stack but do as little work as possible in either [app]. Whenever something looks like it could be useful to a second application — or already has a natural home in the substrate diff --git a/docs/README.md b/docs/README.md index 946c0d2..838eb40 100644 --- a/docs/README.md +++ b/docs/README.md @@ -13,7 +13,7 @@ a dance, plus a hand-written HTML aide-mémoire, plus a paragraph of steering pr deployed interactive practice page: . The user now wants that generalised into a library, integrated with the **reelee** / -`video_gen` fleet. Your job is to research, design and build it. **This folder exists so you +`av` (formerly `video_gen`) fleet. Your job is to research, design and build it. **This folder exists so you do not start from scratch.** It records what was built, the parameters that were expensive to find, the failures and what each one teaches, the user's own framing of the generalisation, and an inventory of what already exists in the fleet. @@ -28,7 +28,7 @@ Nothing here is a design you must follow. It is evidence and framing. Argue with | 2 | **`03-design-brief.md`** | The user's own framing: the parse→AST→render metaphor they explicitly asked to have recorded, the three generalisation axes, and the constraints the POC discovered. | | 3 | **`04-reelee-core.md`** | What reelee is, what a reelee "genre" is, and what to reuse. **This determines the package boundary**, so read it before deciding anything structural. | | 4 | **`07-annotation-model.md`** | The proposed shape of the AST — the contract between analysis and rendering. | -| 5 | **`05-fleet-inventory.md`** | What already exists across `video_gen`, and honestly which parts are stubs. | +| 5 | **`05-fleet-inventory.md`** | What already exists across `av`, and honestly which parts are stubs. | | 6 | **`02-technical-recipes.md`** | Every technique with working parameters. Reference, not narrative — come back to it when implementing. | | 7 | **`06-surfaces-and-conventions.md`** | House style: architecture-first seams, qh, py2mcp, storage, frontend, deploy. | | 8 | **`08-naming-candidates.md`** | PyPI-verified name options, and a better word for the "subject" axis. | @@ -37,7 +37,7 @@ Nothing here is a design you must follow. It is evidence and framing. Argue with | — | **`adr/`** | The decisions. **`0003` `video + segmenter`** — read it before designing the analysis phase. `0002` the name. `0001` the alignment engine (intent) — note that much of what you'd otherwise build already exists in `muvid`, `mixing` and `kodokan`. | | — | **`alignment/`** | The research behind that ADR: one file per method family, prepared so you don't start from a literature search. | | — | **`KICKOFF.md`** | A paste-ready prompt to start a fresh session on this. | -| — | **`REGISTRATION.md`** | **One command still pending** to register `paces` in the `video_gen` group, and why `priv pkg add-package` is deliberately deferred. | +| — | **`REGISTRATION.md`** | **One command still pending** to register `paces` in the `av` group, and why `priv pkg add-package` is deliberately deferred. | | — | **`poc-reference/`** | The actual scripts and data. Read `poc-reference/README.md` first — several of those files are recorded dead ends. | ## The one-paragraph version diff --git a/docs/REGISTRATION.md b/docs/REGISTRATION.md index fae2c62..5d9cb62 100644 --- a/docs/REGISTRATION.md +++ b/docs/REGISTRATION.md @@ -1,7 +1,7 @@ # Fleet registration — DONE (kept as the record of how and why) *Status as of 2026-08-29 (kickoff session): **all registration is complete.** The -`video_gen` group membership landed (the manifest lists `t/paces`), the package was +`av` (formerly `video_gen`) group membership landed (the manifest lists `t/paces`), the package was scaffolded (`pyproject.toml` + wads CI), `priv pkg add-package` ran with it, and the PyPI name was claimed by an actual publish (paces 0.0.1). The interpreter breakage described at the bottom turned out to be scoped: the pyenv fallback outside `$HOME` is broken, but the @@ -11,26 +11,26 @@ The sections below are kept as the reasoning of record.* ## Do now — one command ```bash -priv group add video_gen $PP/t/paces +priv group add av $PP/t/paces ``` That is the whole registration for a docs-only package. It edits the **SSOT** -(`$PP/t/priv/data/groups/video_gen/manifest.json`, git-tracked in `thorwhalen/priv`) and +(`$PP/g/av/manifest.json`, git-tracked in `thorwhalen/av`) and regenerates the workspace from it. -Then commit the SSOT change in the `priv` repo — it is tracked, so leaving it dirty is drift: +Then commit the SSOT change in the `av` group repo — it is tracked, so leaving it dirty is drift: ```bash -cd $PP/t/priv && git status --short data/groups/video_gen/manifest.json +cd $PP/g/av && git status --short manifest.json ``` ### Do NOT hand-edit the workspace file -`$PP/vs_workspaces/video_gen.code-workspace` is a **symlink** to -`$PP/t/priv/data/groups/video_gen/video_gen.code-workspace`, which is **generated** by +`$PP/vs_workspaces/av.code-workspace` is a **symlink** to +`$PP/g/av/av.code-workspace`, which is **generated** by `_generate_code_workspace()` (`priv/group.py:381`) from the manifest, and is gitignored -(`t/priv/.gitignore:128`). Any hand-edit is destroyed by the next -`priv group materialize video_gen` — the same failure mode `CLAUDE.md` warns about for +(`*.code-workspace` in the group repo's `.gitignore`). Any hand-edit is destroyed by the next +`priv group materialize av` — the same failure mode `CLAUDE.md` warns about for `my_packages.pth`. ## Do NOT do yet — `priv pkg add-package` diff --git a/docs/alignment/README.md b/docs/alignment/README.md index d51d5a6..da45109 100644 --- a/docs/alignment/README.md +++ b/docs/alignment/README.md @@ -1,7 +1,7 @@ # Alignment research *What this folder is for: preparation for a possible dedicated **alignment tool** in the -`video_gen` / reelee fleet — the thing that answers "given some artifacts and some media, +`av` (formerly `video_gen`) / reelee fleet — the thing that answers "given some artifacts and some media, which span of the media does each artifact correspond to?". The decision to build it is recorded as an intent in `../adr/0001-alignment-engine-as-a-fleet-package.md`; **read that first**, then come here for the method-by-method detail.*