Skip to content

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:

  1. Survey — examine existing flows for patterns (use pipeio_flow_list, pipeio_mod_list)
  2. Scaffold — call pipeio_flow_new(flow=name), then pipeio_registry_scan()
  3. Config — write config.yml: pybids_inputs section, registry groups (base_input + bids root/datatype + members), processing params
  4. Snakefile — write rules following the pattern: configfile: "config.yml" + manual safe_load(pipelinepath / "config.yml") override, BidsPaths adapter, in_paths/out_paths helpers, dynamic input functions for conditional rules
  5. Scripts — write processing scripts with standard template: docstring (Title/Status/Summary), snakemake mock for IDE, repo_abs for paths, mkdir for outputs
  6. Datalad — create subdataset before first run
  7. 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