Add per-flow CHANGELOG.md convention to pipeio
Proposal¶
Introduce a convention for each pipeio flow to have its own CHANGELOG.md at the
flow root (e.g. code/pipelines/<flow>/CHANGELOG.md). This captures high-level
design history that git log can't easily convey.
What belongs in a flow CHANGELOG¶
- Strategy shifts — e.g. "template subtraction → time-sample masking", with rationale linking to meeting/idea notes
- DAG reorganizations — when rule order changes and why (e.g. "ttl_removal moved before feature extraction so badlabel sees clean data")
- Architecture decisions — tier structures, auto-skip logic, method choices
- Key discoveries that drive design — e.g. "TDM row scan order", "sub-01-only contamination", pulse properties
- Cross-references to notio notes (meetings, ideas, results) and external refs
What doesn't belong¶
- Every bug fix or parameter tweak (git log is authoritative)
- Internal refactors that don't change behavior
- Info already in CLAUDE.md, theory.md, or flow spec
Why this is valuable¶
- Onboarding — new agent/human can read the CHANGELOG to understand why the flow looks the way it does, without grepping through months of commits
- Meeting handoffs — decisions made in meetings (e.g. Ramon's masking strategy) often span multiple commits; CHANGELOG captures the "why" once, linked to the meeting note
- Regret prevention — documents what was tried and why it was abandoned, so nobody reintroduces it six months later
- Memory scaffolding — agent memory can reference CHANGELOG entries instead of caching the same info
Example¶
Created today for pixecog's preprocess_ieeg flow:
code/pipelines/preprocess_ieeg/CHANGELOG.md — two entries documenting:
- 2026-04-11: template subtraction → time-sample masking (with DAG reorder)
- 2026-04-10: two-tier badlabel, auto-skip TTL, pre-lowpass LNR
Each entry has strategy, why, refs to notio notes. ~60 lines of markdown total.
Possible pipeio integration¶
pipeio_flow_newcould scaffold an emptyCHANGELOG.mdwith a header templatepipeio_mod_audit/pipeio_docs_collectcould surface CHANGELOG in the flow index / docs sitepipeio_flow_statuscould show "last changelog entry: YYYY-MM-DD" as a freshness signal- Optional
pipeio_changelog_addtool that takes a date + title + rationale and appends a properly-formatted entry with notio note auto-linking
Relation to existing docs¶
theory.mddescribes current state (how the mod works now)spec.mddescribes interface (inputs/outputs/params)CHANGELOG.mddescribes history (why we're here, what we tried)
All three are complementary. Theory goes stale if not updated when strategy changes; CHANGELOG provides the audit trail that motivates theory rewrites.
Raised from pixecog preprocess_ieeg after the TTL removal strategy change (template subtraction → time-sample masking, 2026-04-11 Ramon meeting).
Source context: pixecog¶
PixEcog (pixecog): Neuropixels and ECoG dataset and analysis
Recent commits:
ef3592f preprocess_motion: report, updated index with report link, docs collect
456d660 Update preprocess_motion flow index, docs collect, snakemake report
d57e895 Add preprocess_motion flow: pipeline code, rawprep, utils, docs, CHANGELOG
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¶
- idea-arash-20260407-010140-074558.md — Direct overlap: both propose automated CHANGELOG generation from project activity; this note's manual convention could complement or inform that auto-generation approach
- idea-arash-20260410-150021-808875.md — pipeio-flow-create skill scaffold should include CHANGELOG.md creation as part of the guided flow setup workflow
- idea-arash-20260409-135130-379286.md — Both address pipeio per-flow documentation conventions; CHANGELOG fits within the docs_collect manifest discussion
- idea-arash-20260407-171834-423514.md — Configurable docs paths for subsystem-owned docs is directly relevant — CHANGELOG.md at flow root is an instance of this pattern
- idea-arash-20260408-035035-245990.md — Auto-QC flow-specific notebooks and per-flow CHANGELOGs are both flow-local artifact conventions; both address capturing structured history per flow