From 76071cd218e1c92857daf00b84bf53e925de1f56 Mon Sep 17 00:00:00 2001 From: Marius1311 Date: Wed, 21 Oct 2026 15:08:44 +0200 Subject: [PATCH 1/3] Promote working objects into processed/working/ Other promoted objects go into subdirectories named for their content. Release 0.6.0. Co-Authored-By: Claude Opus 5.5 --- .claude-plugin/plugin.json | 2 +- skills/analysis-workflow/SKILL.md | 9 +++++---- skills/analysis-workflow/assets/task_template/README.md | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 98a47e8..eff25db 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "analysis-workflow", - "version": "0.5.0", + "version": "0.6.0", "description": "Conventions for analysis repos where humans (notebooks) and coding agents (scripts) work side by side: one task per session, worktree and directory; worktree-safe output paths; additive write-back to AnnData zarr working objects. Ships a skill, guard hooks and the analysis_workflow Python package.", "author": { "name": "quadbio" diff --git a/skills/analysis-workflow/SKILL.md b/skills/analysis-workflow/SKILL.md index e8dc8da..031ae78 100644 --- a/skills/analysis-workflow/SKILL.md +++ b/skills/analysis-workflow/SKILL.md @@ -80,8 +80,8 @@ repo, a short summary. 1. The agreed deliverables, and the README brought up to date, its jobs counted with the compute environment's tools. 2. Write back: dry run, sign-off on that diff, then `yes=True`. -3. An object other tasks will load is promoted to `data//processed/` at sign-off. Ask which subdirectory; - record the path. +3. An object other tasks will load is promoted to `data//processed/` at sign-off: a working object into + `working/`, anything else into a subdirectory named for what it holds. Confirm the path, then record it. 4. `analysis-workflow check layout`, then push. 5. Open the PR, its body from the PR template; then add it with a short summary to the README and push again. The body is edited until the merge, never after. @@ -93,10 +93,11 @@ repo, a short summary. | --- | --- | --- | | `raw/` | bytes as they arrived | nobody, after arrival | | `resources/` | curated inputs that are not data: gene lists, marker tables | a human, rarely | -| `processed/` | objects code loads, the working objects among them | notebooks; tasks by promotion | +| `processed/` | objects code loads: working objects in `working/`, others in subdirectories named for their content | notebooks; tasks by promotion | | `results/` | a notebook's own outputs, prefixed with its stem | humans only | -**Working objects** are AnnData zarr stores, `_.zarr`, in which results accumulate. +**Working objects** are AnnData zarr stores, `processed/working/_.zarr`, in which results +accumulate. - Read only what you need: `ad.io.read_elem(zarr.open_group(path)["obs"])`, or `ad.experimental.read_lazy`. - Write back only through `commit_adata`: additions only. Never write an in-memory object over a working object. Changing or removing a key means a new dated copy; recomputing an existing key is a silent no-op. diff --git a/skills/analysis-workflow/assets/task_template/README.md b/skills/analysis-workflow/assets/task_template/README.md index a6c0da4..1b8c934 100644 --- a/skills/analysis-workflow/assets/task_template/README.md +++ b/skills/analysis-workflow/assets/task_template/README.md @@ -22,7 +22,7 @@ here too. --> -- Working object: `data//processed/.../.zarr`, and the label keys used +- Working object: `data//processed/working/.zarr`, and the label keys used - Other artifacts consumed: `analysis////outputs/`, `data//processed/` ## Write-back From bf5a1bc6e05e420223d259772f836514057976cf Mon Sep 17 00:00:00 2001 From: Marius1311 Date: Wed, 21 Oct 2026 15:09:46 +0200 Subject: [PATCH 2/3] Keep asking which subdirectory; descriptive names Co-Authored-By: Claude Opus 5.5 --- skills/analysis-workflow/SKILL.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/skills/analysis-workflow/SKILL.md b/skills/analysis-workflow/SKILL.md index 031ae78..60a5a9c 100644 --- a/skills/analysis-workflow/SKILL.md +++ b/skills/analysis-workflow/SKILL.md @@ -81,7 +81,7 @@ repo, a short summary. tools. 2. Write back: dry run, sign-off on that diff, then `yes=True`. 3. An object other tasks will load is promoted to `data//processed/` at sign-off: a working object into - `working/`, anything else into a subdirectory named for what it holds. Confirm the path, then record it. + `working/`, anything else into a subdirectory with a descriptive name. Ask which subdirectory; record the path. 4. `analysis-workflow check layout`, then push. 5. Open the PR, its body from the PR template; then add it with a short summary to the README and push again. The body is edited until the merge, never after. @@ -93,7 +93,7 @@ repo, a short summary. | --- | --- | --- | | `raw/` | bytes as they arrived | nobody, after arrival | | `resources/` | curated inputs that are not data: gene lists, marker tables | a human, rarely | -| `processed/` | objects code loads: working objects in `working/`, others in subdirectories named for their content | notebooks; tasks by promotion | +| `processed/` | objects code loads: working objects in `working/`, others in descriptively named subdirectories | notebooks; tasks by promotion | | `results/` | a notebook's own outputs, prefixed with its stem | humans only | **Working objects** are AnnData zarr stores, `processed/working/_.zarr`, in which results From b511b1188da1c3273a7d4acc72b3e0f44f69fde5 Mon Sep 17 00:00:00 2001 From: Marius1311 Date: Wed, 21 Oct 2026 15:54:59 +0200 Subject: [PATCH 3/3] Task template: other processed objects sit in a subdirectory too Co-Authored-By: Claude Opus 5.5 --- skills/analysis-workflow/assets/task_template/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skills/analysis-workflow/assets/task_template/README.md b/skills/analysis-workflow/assets/task_template/README.md index 1b8c934..9740870 100644 --- a/skills/analysis-workflow/assets/task_template/README.md +++ b/skills/analysis-workflow/assets/task_template/README.md @@ -23,7 +23,7 @@ here too. --> - Working object: `data//processed/working/.zarr`, and the label keys used -- Other artifacts consumed: `analysis////outputs/`, `data//processed/` +- Other artifacts consumed: `analysis////outputs/`, `data//processed//` ## Write-back