1. 02 Jun, 2026 40 commits
    • Clarify that the pipeline already mixes random sampling with librosa-guided candidate selection, while keeping heavier structural segmentation as a later optimization path.
      
      Constraint: Must avoid staging local datasets and transient smoke artifacts
      Rejected: Full librosa.segment.* default rollout | Too CPU-heavy and too distribution-shaping for current smoke/training stage
      Confidence: high
      Scope-risk: narrow
      Directive: Keep future segmentation comparisons capped by equal query budgets when reporting quality deltas
      Tested: py_compile for evaluate/external_adapters/ab_smoke_segmentation; evaluate.py --max-queries 5; ab_smoke_segmentation end-to-end smoke with max_test_queries=5
      Not-tested: Multi-strategy medium-size capped A/B benchmark on larger real FMA subset
      cnb.bofCdSsphPA authored
    • Constraint: Strategy comparisons need real-audio evidence, but the benchmark must stay cheap enough to run repeatedly on CPU during active development
      Rejected: Judge winners only by top1/topk on a tiny subset | ties hide the practical value of strategies that generate far more usable queries
      Confidence: medium
      Scope-risk: narrow
      Directive: Keep num_queries as a tie-breaker for tiny-smoke comparisons; increase subset size before promoting benchmark winners to default training policy
      Tested: /usr/local/miniconda3/bin/python acr-engine/scripts/ab_smoke_segmentation.py --dataset fma --input-dir acr-engine/data/raw/fma_small_audio --work-root /tmp/ab_smoke_seg --subset-size 8 --query-duration 8 --train-epochs 1 --batch-size 2 --device cpu --output-json /tmp/ab_smoke_seg/report.json; post-run ranking verification from /tmp/ab_smoke_seg/report.json
      Not-tested: Larger FMA subsets or difficult internal query mixes in the same benchmark script
      cnb.bofCdSsphPA authored
    • Constraint: Music retrieval should sample repeated hook-like regions without adding heavyweight structure models or breaking the existing lightweight candidate stack
      Rejected: Reserve repeated-section logic for a later dedicated chorus detector | delays a practical chorus-like signal that can already improve query realism today
      Confidence: medium
      Scope-risk: moderate
      Directive: Treat repeated_section_aware as a lightweight chorus proxy; future chorus ranking should refine rather than discard these candidates
      Tested: /usr/local/miniconda3/bin/python -m py_compile acr-engine/src/data/dataset.py acr-engine/src/data/manifest_tools.py acr-engine/train.py acr-engine/src/data/external_adapters.py; synthetic_v2 dry-run with --segment-strategy repeated_section_aware; handcrafted 24s repeated-motif fixture with repeated_section_aware and hybrid offset checks
      Not-tested: Full end-to-end metric impact on FMA/internal datasets with repeated_section_aware enabled
      cnb.bofCdSsphPA authored
    • Constraint: Music queries often begin near stable pulse locations, but beat tracking can fail on sparse or synthetic signals and must degrade safely
      Rejected: Depend on beat tracking alone for all rhythmic sampling | too brittle when beat extraction is weak or absent
      Confidence: high
      Scope-risk: moderate
      Directive: Keep beat_aware as a lightweight candidate generator with onset fallback; future chorus/repeated-section logic should compose with beat-aware rather than bypass it
      Tested: /usr/local/miniconda3/bin/python -m py_compile acr-engine/src/data/dataset.py acr-engine/src/data/manifest_tools.py acr-engine/train.py acr-engine/src/data/external_adapters.py; synthetic_v2 dry-run with --segment-strategy beat_aware; handcrafted 20s pulse-track fixture with beat_aware and hybrid offset checks
      Not-tested: Full retraining/evaluation impact on open/internal datasets using beat_aware end-to-end
      cnb.bofCdSsphPA authored
    • Constraint: Music ACR queries should be closer to choruses, strong rhythmic sections, and attack regions without giving up the existing random and silence-aware fallbacks
      Rejected: Add only heavier beat/chorus modeling first | higher complexity and more brittle than lightweight energy/onset heuristics for the current training pipeline
      Confidence: high
      Scope-risk: moderate
      Directive: Keep high_energy/onset_aware as heuristic candidate generators; future beat/chorus logic should layer on top of them rather than replace the fallback stack
      Tested: /usr/local/miniconda3/bin/python -m py_compile acr-engine/src/data/dataset.py acr-engine/src/data/manifest_tools.py acr-engine/train.py acr-engine/src/data/external_adapters.py; synthetic_v2 dry-run with --segment-strategy high_energy and onset_aware; handcrafted 20s audio fixture with high_energy/onset_aware query offset checks
      Not-tested: Full retraining/evaluation impact on FMA or internal production datasets
      cnb.bofCdSsphPA authored
    • Constraint: smoke-local must recover long CPU index builds automatically, but partial embeddings from an older model must never contaminate a newly trained index
      Rejected: Always reuse any existing partial checkpoint | can silently blend embeddings from different model generations into one index
      Confidence: high
      Scope-risk: moderate
      Directive: Keep model-signature checks on all future index resume paths; auto-resume should fall back to clean rebuild on any signature mismatch
      Tested: /usr/local/miniconda3/bin/python -m py_compile acr-engine/src/engines/ecapa_embedder.py acr-engine/src/data/external_adapters.py acr-engine/run_demo.py; same-model partial checkpoint resume vs fresh rebuild equality; mismatched-model checkpoint rejection and clean rebuild equality
      Not-tested: Reattaching the currently running real FMA smoke process after an external interruption
      cnb.bofCdSsphPA authored
    • Constraint: Real FMA smoke indexing can run for a long time on CPU and synthetic/root-layout datasets must still use the same build-index entrypoint
      Rejected: Treat build-index as all-or-nothing and require full reruns after interruption | wastes hours on CPU and obscures whether work was already completed
      Confidence: high
      Scope-risk: moderate
      Directive: Preserve checkpoint file compatibility; future smoke-local automation should prefer resume before rebuilding from scratch
      Tested: /usr/local/miniconda3/bin/python -m py_compile acr-engine/src/engines/ecapa_embedder.py acr-engine/src/engines/chromaprint_matcher.py acr-engine/run_demo.py; synthetic_v2 partial-checkpoint resume vs fresh rebuild equality check (shape/ids/embeddings/progress)
      Not-tested: In-place resumption of the currently running real FMA process after an actual external kill/restart
      cnb.bofCdSsphPA authored
    • Constraint: Real music queries often include long silence heads/tails, but the pipeline still needs random-crop generalization and simple CLI controls
      Rejected: Replace all random crops with structure-aware segmentation | would overfit to curated boundaries and diverge from messy real-world query distributions
      Confidence: high
      Scope-risk: moderate
      Directive: Keep random as fallback; layer beat/onset/chorus-aware segmentation on top instead of removing silence-aware and sliding paths
      Tested: /usr/local/miniconda3/bin/python -m py_compile acr-engine/src/data/dataset.py acr-engine/src/data/manifest_tools.py acr-engine/train.py acr-engine/src/data/external_adapters.py; external_adapters.py prepare-local fma /tmp/segtest_audio --query-strategy silence_aware; train.py --data data/synthetic_v2 --dry-run --segment-strategy hybrid
      Not-tested: Full FMA smoke retraining/eval with the new segmentation strategies
      cnb.bofCdSsphPA authored
    • Constraint: Internal assets must support both manually labeled clips and whole-track auto-window generation without breaking pgvector export
      Rejected: Treat missing query duration as full audio duration | prevents multi-window query expansion for long source audio
      Confidence: high
      Scope-risk: narrow
      Directive: Keep explicit CSV offset authoritative; only auto-expand when offset is absent and query_stride is set
      Tested: /usr/local/miniconda3/bin/python -m py_compile acr-engine/scripts/internal_asset_type_mapper.py; local 30s/40s WAV fixture export with manifest + pgvector verification
      Not-tested: End-to-end retraining with newly expanded internal manifests
      cnb.bofCdSsphPA authored
    • Constraint: Internal short-video and demo assets need explicit duration/offset semantics before they can behave like real training or pgvector segment records
      Rejected: Leave query offsets empty by default | Produces weaker provenance and less useful downstream segment metadata
      Confidence: high
      Scope-risk: narrow
      Directive: Prefer source CSV timing when available, then fall back to inspected audio duration and conservative default offsets
      Tested: Sample CSV run confirmed one query used CSV duration/offset (5.0/12.5) and another fell back to inspected duration/default offset (6.5/0.0), with pgvector segments matching
      Not-tested: Complex multi-segment offset generation from long-form internal masters
      cnb.bofCdSsphPA authored
    • Constraint: Internal CSV ingestion should reach a pgvector-ready payload without requiring a second custom export path
      Rejected: Limit the mapper to manifest outputs only | Forces another transformation layer before database loading
      Confidence: high
      Scope-risk: narrow
      Directive: Keep pgvector payloads aligned with the shared songs/references/segments contract while preserving internal asset metadata fields
      Tested: internal_asset_type_mapper.py with --emit-pgvector-json produced songs=2 references=2 segments=2 and included audio_role/asset_type_code/validation_status in sample rows
      Not-tested: Direct bulk load into PostgreSQL using a live pgvector database
      cnb.bofCdSsphPA authored
    • Constraint: Internal CSV exports should expose missing audio and usable durations before they are treated as train-ready manifests
      Rejected: Defer path and duration checks to later training failures | Would make ingestion debugging slow and noisy
      Confidence: high
      Scope-risk: narrow
      Directive: Keep internal asset validation lightweight at mapping time; surface existence and duration early, then layer richer QC rules incrementally
      Tested: internal_asset_type_mapper.py with --audio-root on a 6-row sample detected missing_audio=2 and emitted durations for existing reference/query assets
      Not-tested: Production-scale scans over the full internal asset repository
      cnb.bofCdSsphPA authored
    • Constraint: Internal asset exports should reach train/test-ready manifests without repeated manual reshaping
      Rejected: Stop at references/queries JSON only | Still leaves each import needing custom bundle assembly and split logic
      Confidence: high
      Scope-risk: narrow
      Directive: Keep internal manifest emission conservative and deterministic; preserve train/test query presence even on tiny exports
      Tested: internal_asset_type_mapper.py sample run with --emit-manifests produced catalog/train/test/val and balanced 1 query in both train and test
      Not-tested: Duration/offset enrichment from live source metadata and audio-path existence checks on production exports
      cnb.bofCdSsphPA authored
    • Constraint: Internal type enums need a repeatable mapping path into manifest-ready buckets before bulk database exports begin
      Rejected: Leave type handling as documentation only | Would force repeated manual filtering and inconsistent ingestion decisions
      Confidence: high
      Scope-risk: narrow
      Directive: Keep internal asset mapping defaults conservative; conditional instrumental variants should stay opt-in until version-aware training is ready
      Tested: internal_asset_type_mapper.py on a 6-row sample CSV produced references=2 queries=2 metadata_only=1 excluded=1 with expected type routing
      Not-tested: Direct SQL export integration against the live source database
      cnb.bofCdSsphPA authored
    • Constraint: Internal media types need a clear training whitelist and versioning policy before they are mapped into manifests and pgvector
      Rejected: Treat all audio-like assets as the same training label source | Would blur original-vs-instrumental semantics and degrade retrieval quality
      Confidence: high
      Scope-risk: narrow
      Directive: Keep original recordings, instrumental variants, and short-video clips explicitly separated by audio_role and version semantics during ingestion
      Tested: Verified new documentation anchors and mapping tables in training-data-and-pgvector-guide.md
      Not-tested: Automated import from the upstream SQL type enum into manifests
      cnb.bofCdSsphPA authored
    • Constraint: Open-dataset ingestion needs a way to generate multiple overlapping queries per track, otherwise training/eval coverage stays too sparse
      Rejected: Keep only one random external query per track | Leaves long songs underrepresented and weakens reproducibility
      Confidence: high
      Scope-risk: moderate
      Directive: Preserve single-query behavior as the default, but keep overlap-query generation configurable through query_stride for future corpora
      Tested: manifest_tools audio-dir-to-splits --help shows --query-stride; prepare-local on data/synthetic_v2/songs with query_duration=8.0 and query_stride=4.0 produced 72 queries with query_index fields
      Not-tested: Full end-to-end smoke-local completion on the still-running real FMA corpus with overlap-query mode enabled
      cnb.bofCdSsphPA authored
    • Constraint: Real-data smoke reports must distinguish manifest query duration from training segment duration to avoid 5s-vs-8s confusion across runs
      Rejected: Keep a single ambiguous query_duration field | Makes cross-run analysis and handoff error-prone
      Confidence: high
      Scope-risk: narrow
      Directive: Preserve explicit duration semantics in future smoke/report artifacts and keep legacy aliases only for compatibility
      Tested: build_smoke_config_summary() emits manifest_query_duration=8.0 and train_segment_duration=5.0 using configs/default.yaml
      Not-tested: End-to-end regeneration of the still-running real FMA smoke report bundle with the new config schema
      cnb.bofCdSsphPA authored
    • Constraint: Future sessions need startup memory for user preferences, real-data status, and the current FMA bottleneck without re-discovery
      Rejected: Leave continuity only in transient chat context | Would force every new session to reconstruct state from scratch
      Confidence: high
      Scope-risk: narrow
      Directive: Keep AGENTS continuity memory concise, code-true, and refreshed when project direction or bottlenecks materially change
      Tested: AGENTS.md anchor search for continuity keys; verified host CUDA snapshot; verified build-index progress logs on small smoke artifacts
      Not-tested: Full completion of the long-running real FMA CPU build-index stage
      cnb.bofCdSsphPA authored
    • Constraint: Real FMA smoke is already running on CPU, but future smoke runs must be able to target GPU without manually splitting the pipeline
      Rejected: Pass through raw 'auto' everywhere | run_demo/evaluate embedder paths cannot consume torch.device('auto') safely
      Confidence: high
      Scope-risk: narrow
      Directive: Keep smoke orchestration device handling normalized at the adapter boundary unless all downstream CLIs gain native auto-device support
      Tested: smoke-local --help shows --device; resolve_device('auto') returns cpu on this host; smoke-local synthetic run prints Device: cpu; manual build-index and evaluate succeed on smoke artifacts with top1=1.0 topk=1.0
      Not-tested: End-to-end smoke-local completion on the long-running real FMA job and a live CUDA host path
      cnb.bofCdSsphPA authored
    • Constraint: Must document code-true behavior for training crops, retrieval windows, GPU support, and FMA reuse before more dataset automation lands
      Rejected: Leave docs at high-level abstractions only | Would hide 5s-vs-8s and CPU-vs-GPU operational realities
      Confidence: high
      Scope-risk: narrow
      Directive: Keep future dataset docs aligned with actual code paths and artifact timestamps, not intended architecture alone
      Tested: Source review of dataset.py manifest_tools.py external_adapters.py utils/audio.py ecapa_embedder.py train.py; live FMA smoke progress observed through epoch completion
      Not-tested: Markdown renderer-specific Mermaid rendering and every relative link target in external viewers
      cnb.bofCdSsphPA authored
    • Constraint: The user asked for continuous staged commits, and the real milestone is the pipeline crossing from download-gated to actual dataset execution.
      Rejected: Waiting for the entire smoke pipeline to finish before checkpointing | The phase transition itself is significant and already verified.
      Confidence: high
      Scope-risk: narrow
      Directive: Keep the smoke run going, then checkpoint again with concrete train/index/eval results once the real-data pipeline completes.
      Tested: Verified the archive reached full expected size, confirmed local FMA readiness with 8000 audio files and 7994 eligible queries, and observed the real smoke pipeline enter epoch-1 training with 6381 classes.
      Not-tested: The full smoke pipeline outcome (final training artifact, index, and evaluation metrics) is still in progress.
      cnb.bofCdSsphPA authored
    • Constraint: The real-data lane remains gated on archive bytes, so progress reports should continue to be evidence-backed and operationally meaningful.
      Rejected: Waiting until ninety percent to report again | The current increase is material and confirms continued guard stability.
      Confidence: high
      Scope-risk: narrow
      Directive: Keep checkpointing only meaningful transfer/guard milestones until downstream extraction can actually start.
      Tested: Verified the detached guard remained alive for more than nine minutes, confirmed log growth through nineteen polling cycles, re-ran archive inspect, and confirmed readiness is still blocked only by incomplete bytes.
      Not-tested: Extraction and real-data smoke remain pending until archive completion.
      cnb.bofCdSsphPA authored
    • Constraint: The long-running real-data gate still calls for evidence-backed progress updates while downstream validation remains blocked on bytes.
      Rejected: Waiting for the exact eighty-five-percent threshold | The current progress jump is material and verified.
      Confidence: high
      Scope-risk: narrow
      Directive: Keep capturing only meaningful progress/guard milestones until the archive completes and phase transition begins.
      Tested: Verified the detached guard remained alive for more than eight minutes, confirmed log growth through seventeen polling cycles, re-ran archive inspect, and confirmed readiness is still blocked only by incomplete bytes.
      Not-tested: Extraction and real-data smoke remain pending until archive completion.
      cnb.bofCdSsphPA authored
    • Constraint: The active real-data gate still needs evidence-backed progress while the archive remains incomplete.
      Rejected: Skipping this milestone because completion is not far off | Eighty percent is a meaningful operational checkpoint for the long-running lane.
      Confidence: high
      Scope-risk: narrow
      Directive: Continue logging only material milestones and guard-runtime evidence until the archive completes and downstream validation can begin.
      Tested: Verified the detached guard remained alive for more than seven minutes, confirmed log growth through fifteen polling cycles, re-ran archive inspect, and confirmed readiness is still blocked only by incomplete bytes.
      Not-tested: Extraction and real-data smoke remain pending until archive completion.
      cnb.bofCdSsphPA authored
    • Constraint: The ongoing Ralph loop still needs concrete operational evidence while the real-data path remains blocked on bytes, not logic.
      Rejected: Waiting for a round-number milestone like eighty percent | The current progress jump is already material and verified.
      Confidence: high
      Scope-risk: narrow
      Directive: Continue capturing substantial progress and guard-runtime evidence until the archive completes and the phase can change.
      Tested: Verified the detached guard remained alive for more than six minutes, confirmed log growth through thirteen polling cycles, re-ran archive inspect, and confirmed readiness is still blocked only by incomplete bytes.
      Not-tested: Extraction and real-data smoke remain pending until archive completion.
      cnb.bofCdSsphPA authored
    • Constraint: While the dataset gate is still byte-bound, the user expects continued verifiable milestone tracking rather than idle waiting.
      Rejected: Deferring updates until completion | That would lose evidence about guard durability and long-transfer behavior.
      Confidence: high
      Scope-risk: narrow
      Directive: Continue capturing substantial percentage gains and guard-runtime evidence until the readiness gate finally opens.
      Tested: Verified the detached guard remained alive for more than five minutes, confirmed log growth through eleven polling cycles, re-ran archive inspect, and confirmed readiness is still blocked only by incomplete bytes.
      Not-tested: Extraction and real-data smoke remain pending until the archive is complete.
      cnb.bofCdSsphPA authored
    • Constraint: The active Ralph loop still needs concrete, incremental verification while the real-data gate remains download-bound.
      Rejected: Compressing multiple progress milestones into silence | The user explicitly asked for continuous staged progress with commits.
      Confidence: high
      Scope-risk: narrow
      Directive: Keep checkpointing only material byte-progress and guard-liveness milestones until the archive completes.
      Tested: Verified the detached guard remained alive for more than four minutes, confirmed log growth through nine polling cycles, re-ran archive inspect, and confirmed readiness is still blocked only by incomplete bytes.
      Not-tested: Extraction and real-data smoke remain pending until the archive is complete.
      cnb.bofCdSsphPA authored
    • Constraint: Long-running progress evidence should keep proving both transfer health and guard durability until the gate opens.
      Rejected: Waiting silently for completion | The user asked for continuous optimization and verifiable staged updates.
      Confidence: high
      Scope-risk: narrow
      Directive: Keep recording material progress jumps and guard liveness rather than emitting redundant no-change updates.
      Tested: Verified the detached guard was still alive after more than three minutes, confirmed log growth through seven polling cycles, re-ran archive inspect, and confirmed readiness remains blocked only by incomplete bytes.
      Not-tested: Extraction and real-data smoke still await full archive completion.
      cnb.bofCdSsphPA authored
    • Constraint: The real-data lane depends on confidence that the unattended guard will survive for the rest of the download, not just a short sample window.
      Rejected: Declaring the guard fully solved after the prior check | More elapsed time and more cycles give stronger operational proof.
      Confidence: high
      Scope-risk: narrow
      Directive: Continue pairing guard-runtime evidence with readiness checks until the archive completes and phase transition occurs.
      Tested: Verified the detached guard was still alive after more than two minutes, observed log growth through five polling cycles, re-ran archive inspect, and confirmed readiness is still blocked only by incomplete bytes.
      Not-tested: The completed handoff through extraction and smoke is still pending archive completion.
      cnb.bofCdSsphPA authored
    • Constraint: We need evidence that the new guard launcher solved the earlier drop behavior before trusting it for the rest of the transfer.
      Rejected: Assuming success from one or two polls alone | A longer runtime and multiple cycles provide stronger evidence.
      Confidence: high
      Scope-risk: narrow
      Directive: Keep verifying guard liveness alongside archive progress until readiness opens and the pipeline can switch phases.
      Tested: Checked the detached guard's pid/runtime, confirmed three logged polling cycles, re-ran archive inspect, and confirmed the readiness gate is still blocked only by incomplete bytes.
      Not-tested: Extraction and real-data smoke remain pending until the archive reaches full size.
      cnb.bofCdSsphPA authored
    • Constraint: A multi-hour download needs a background guard that survives shell teardown, not just a logically correct polling loop.
      Rejected: More ad-hoc nohup restarts | They obscured whether the issue was loop logic or process detachment.
      Confidence: high
      Scope-risk: narrow
      Directive: Use the guard launcher for future unattended waits and keep pid/log artifacts so later sessions can verify liveness quickly.
      Tested: Ran a foreground three-cycle control experiment, launched the new setsid-based guard, then verified the detached process survived with PPID 1 and emitted at least two polling cycles in the log.
      Not-tested: Full handoff through completed download, extraction, and smoke still awaits archive completion.
      cnb.bofCdSsphPA authored
    • Constraint: The real-data lane still needs a reliable unattended handoff process, and fresh evidence now shows the first durability fix was incomplete.
      Rejected: Treating the restarted waiter as fully solved | The second drop proves more diagnosis is required.
      Confidence: medium
      Scope-risk: narrow
      Directive: Investigate why the waiter exits after the first logged poll instead of assuming the infinite-loop change alone solved stability.
      Tested: Re-checked archive progress, confirmed the waiter process was absent, inspected the single-entry log file, and restarted the waiter successfully.
      Not-tested: Root-cause isolation for the second waiter drop remains pending.
      cnb.bofCdSsphPA authored
    • Constraint: The real dataset download lasts far longer than the waiter's original three-cycle lifetime, so the handoff process must survive unattended.
      Rejected: Repeatedly restarting a short-lived waiter by hand | That is fragile and defeats the point of automation.
      Confidence: high
      Scope-risk: narrow
      Directive: Keep the waiter long-lived by default and preserve progress logs so future sessions can see active polling immediately.
      Tested: Diagnosed the original max-cycles behavior, ran a short two-cycle verification showing archive growth, then relaunched the long-lived waiter and confirmed live process plus log output.
      Not-tested: The completed handoff path from full archive to extraction has not fired yet because the download is still in progress.
      cnb.bofCdSsphPA authored
    • Constraint: The real-data lane should not rely on a dead background handoff process while a long download is still in flight.
      Rejected: Assuming the prior waiter was still alive | A direct process check showed it was gone.
      Confidence: high
      Scope-risk: narrow
      Directive: Re-check waiter liveness during subsequent progress audits and restart it whenever it drops before archive completion.
      Tested: Re-ran archive inspect, verified the waiter was absent, confirmed the empty log file, restarted the waiter, and validated the new live process.
      Not-tested: The restarted waiter has not yet handed off to extraction because the archive remains incomplete.
      cnb.bofCdSsphPA authored
    • Constraint: The dataset gate is long-running, so progress should continue without manual babysitting once the archive finishes.
      Rejected: Pure polling without a handoff process | That would still require manual intervention at completion time.
      Confidence: high
      Scope-risk: narrow
      Directive: Leave the waiter in place until it hands off to post-download preparation, then capture the resulting extraction evidence.
      Tested: Re-ran archive inspect, confirmed no prior waiter, started wait_for_fma_and_prepare in the background, and verified the live process plus log file.
      Not-tested: The waiter has not yet reached extraction because the archive is still incomplete.
      cnb.bofCdSsphPA authored
    • Constraint: The active Ralph loop needs current operational evidence while the dataset gate is still waiting on download completion.
      Rejected: Relying on byte growth alone | We also need process-level proof that the transfer path is still alive.
      Confidence: high
      Scope-risk: narrow
      Directive: Keep validating both archive growth and transfer liveness until readiness opens, then switch to extraction immediately.
      Tested: Re-ran inspect, watchdog, and process checks; all confirmed higher byte counts, a live curl process, and no restart needed.
      Not-tested: Real-data extraction and smoke remain blocked by the incomplete archive.
      cnb.bofCdSsphPA authored
    • Constraint: We need script-backed evidence for whether the pipeline can advance beyond download waiting.
      Rejected: Assuming the next phase is ready from percentage alone | Readiness must be validated by the post-download gate script.
      Confidence: high
      Scope-risk: narrow
      Directive: Use the readiness script, not only byte counts, before switching to extraction and smoke.
      Tested: Re-ran archive inspect and the post-download readiness check, which confirmed progress growth but a still-blocked archive_not_complete gate.
      Not-tested: Extraction and smoke remain deferred until the readiness script reports completion.
      cnb.bofCdSsphPA authored
    • Constraint: Ralph requires new verification evidence while the real-data gate remains unresolved.
      Rejected: Repeating the prior status without a fresh measurement | It would not prove continued forward progress.
      Confidence: high
      Scope-risk: narrow
      Directive: Keep recording byte-level progress until the archive completes, then switch immediately to extraction and smoke validation.
      Tested: Re-ran inspect and watchdog checks, confirming higher byte counts and a live curl process without restart.
      Not-tested: Extraction and real-data smoke remain blocked on archive completion.
      cnb.bofCdSsphPA authored
    • Constraint: Real-data smoke cannot be claimed before the user-provided archive is fully downloaded and locally inspectable.
      Rejected: Pretending readiness from partial bytes | That would create false verification evidence for the dataset lane.
      Confidence: high
      Scope-risk: narrow
      Directive: Do not run real FMA extraction or smoke until inspect reports the full expected archive size.
      Tested: Re-ran the archive inspect command and confirmed the active background curl process plus current local file size.
      Not-tested: Extraction, local preparation, and real FMA smoke remain pending until the archive completes.
      cnb.bofCdSsphPA authored
    • Constraint: The guidance had to align with the repo's existing manifest and pgvector templates while staying usable for later industrial ingestion.
      Rejected: A purely conceptual note | It would not be actionable for future sessions or data engineering work.
      Confidence: high
      Scope-risk: narrow
      Directive: Keep future dataset onboarding and pgvector ingestion changes anchored on manifest-first contracts and stable song identifiers.
      Tested: Relative markdown links for the updated docs were validated locally and repository anchor files were confirmed present.
      Not-tested: No model retraining or database ingestion was run in this documentation-only stage.
      cnb.bofCdSsphPA authored