title: "## Create pipeio-flow-create skill and pixecog-flow-setup skill status: done created: 2026-04-10 updated: 2026-04-10 timestamp: 20260410-150432-267829 tags: [issue] source: agent-observation project_primary: projio capture_id: 20260410-150430-ba76e8 confidence: 1.0 transcript_file: /storage2/arash/worklog/workflow/captures/20260410-150430-ba76e8/transcript.txt
Create pipeio-flow-create skill and pixecog-flow-setup skill¶
Background¶
During a pixecog session creating the preprocess_motion pipeline flow, an agent hit multiple frictions that a skill would have prevented:
1. Overwrote scaffolded Makefile (unnecessary)
2. Removed configfile: "config.yml" directive (wrong — flows run from their own dir)
3. Forgot to call pipeio_registry_scan after pipeio_flow_new
4. Used manual conda run instead of pipeio_run MCP tool
5. Didn't know the pipeline env was cogpy
Two idea notes were filed:
- projio idea: generic pipeio-flow-create skill for the projio skill ecosystem
- pixecog idea: project-local pixecog-flow-setup skill layering project-specific conventions
Task¶
1. Create pipeio-flow-create skill in projio¶
A projio-level skill that guides agents through creating a new pipeline flow. Steps to encode:
- Survey — examine existing flows for patterns (use
pipeio_flow_list,pipeio_mod_list) - Scaffold — call
pipeio_flow_new(flow=name), thenpipeio_registry_scan() - Config — write config.yml: pybids_inputs section, registry groups (base_input + bids root/datatype + members), processing params
- Snakefile — write rules following the pattern:
configfile: "config.yml"+ manualsafe_load(pipelinepath / "config.yml")override,BidsPathsadapter,in_paths/out_pathshelpers, dynamic input functions for conditional rules - Scripts — write processing scripts with standard template: docstring (Title/Status/Summary), snakemake mock for IDE,
repo_absfor paths,mkdirfor outputs - Datalad — create subdataset before first run
- Verify — dry-run via
pipeio_run(dryrun=True)
Key conventions to encode:
- Don't overwrite scaffolded files (Makefile, notebook.yml)
- configfile: "config.yml" is correct — flows run from their own directory
- Use pipeio_run MCP tool, never manual conda/snakemake commands
- After scaffold, must call pipeio_registry_scan
2. Create pixecog-flow-setup skill in pixecog¶
A project-local skill that references pipeio-flow-create and adds pixecog-specific conventions:
- Pipeline env is cogpy
- Raw data layout: raw/sub-XX/ses-XX/<modality>/, registry at raw/registry.yml
- Datalad subdataset: datalad run-procedure create-reckless-subdataset derivatives/<name>
- labpy imports: timefrequency.behavior.locomotion for motion; always codio_func_doc via sirocampus before using cogpy/labpy
- sub-test/ses-test is debug only; sub-05 has best coverage
- Snakefile pattern: configfile + safe_load override + BidsPaths
Look at existing skills in projio (e.g., pipeio-guide) for the format and registration pattern. Use skill_read("pipeio-guide") to understand the template.
Source context: pixecog¶
PixEcog (pixecog): Neuropixels and ECoG dataset and analysis
Recent commits:
27a75e5 Preprocess_ieeg DAG redesign: ttl_removal before interpolate, two-tier badlabel, auto-skip TTL, pre-lowpass LNR
42cf0d9 Preprocess_ieeg redesign: DAG reorder, two-tier badlabel, auto-skip TTL, pre-lowpass LNR, cross-subject TTL analysis, notebooks published
6b295b2 Update badlabel audit note: full pipeline comparison (85 new vs 7 legacy vs 71 TTL), zarr fix confirmed, 97.2% TTL catch rate
README:
type: readme
Quick Start for Collaborators¶
Follow this checklist to get started with Pixecog documentation and workflows.
🐀 Pixecog Project — Compact Overview¶
Core principles
- One immutable BIDS raw dataset (
raw/) as the canonical baseline - Each analysis pipeline ha
Related Notes¶
- issue-arash-20260410-145955-796957.md — Directly related: the missing auto-register after pipeio_flow_new is one of the friction points this skill would encode (step 2: scaffold → registry_scan)
- issue-arash-20260410-150323-441517.md — Both are about improving the projio skill ecosystem; retro skill dispatching tasks is a companion workflow improvement
- issue-arash-20260409-232034-115590.md — pipeio_nb_exec env issue is the same category of friction (wrong env used); skill step 4 encodes cogpy env convention to prevent this
- issue-arash-20260409-232128-727233.md — pipeio_run flag issues are related to the friction point of using manual conda run instead of pipeio_run MCP tool
- issue-arash-20260409-232102-577698.md — pipeio_run_status crash is another pipeio execution friction that the skill aims to route around by using the correct MCP tools