diff --git a/.beads/.gitignore b/.beads/.gitignore deleted file mode 100644 index eb82c48..0000000 --- a/.beads/.gitignore +++ /dev/null @@ -1,72 +0,0 @@ -# Dolt database (managed by Dolt, not git) -dolt/ - -# Runtime files -bd.sock -bd.sock.startlock -sync-state.json -last-touched -.exclusive-lock - -# Daemon runtime (lock, log, pid) -daemon.* - -# Interactions log (runtime, not versioned) -interactions.jsonl - -# Push state (runtime, per-machine) -push-state.json - -# Lock files (various runtime locks) -*.lock - -# Credential key (encryption key for federation peer auth — never commit) -.beads-credential-key - -# Local version tracking (prevents upgrade notification spam after git ops) -.local_version - -# Worktree redirect file (contains relative path to main repo's .beads/) -# Must not be committed as paths would be wrong in other clones -redirect - -# Sync state (local-only, per-machine) -# These files are machine-specific and should not be shared across clones -.sync.lock -export-state/ -export-state.json - -# Ephemeral store (SQLite - wisps/molecules, intentionally not versioned) -ephemeral.sqlite3 -ephemeral.sqlite3-journal -ephemeral.sqlite3-wal -ephemeral.sqlite3-shm - -# Dolt server management (auto-started by bd) -dolt-server.pid -dolt-server.log -dolt-server.lock -dolt-server.port -dolt-server.activity - -# Corrupt backup directories (created by bd doctor --fix recovery) -*.corrupt.backup/ - -# Backup data (auto-exported JSONL, local-only) -backup/ - -# Per-project environment file (Dolt connection config, GH#2520) -.env - -# Legacy files (from pre-Dolt versions) -*.db -*.db?* -*.db-journal -*.db-wal -*.db-shm -db.sqlite -bd.db -# NOTE: Do NOT add negation patterns here. -# They would override fork protection in .git/info/exclude. -# Config files (metadata.json, config.yaml) are tracked by git by default -# since no pattern above ignores them. diff --git a/.beads/README.md b/.beads/README.md deleted file mode 100644 index 1029bf1..0000000 --- a/.beads/README.md +++ /dev/null @@ -1,81 +0,0 @@ -# Beads - AI-Native Issue Tracking - -Welcome to Beads! This repository uses **Beads** for issue tracking - a modern, AI-native tool designed to live directly in your codebase alongside your code. - -## What is Beads? - -Beads is issue tracking that lives in your repo, making it perfect for AI coding agents and developers who want their issues close to their code. No web UI required - everything works through the CLI and integrates seamlessly with git. - -**Learn more:** [github.com/steveyegge/beads](https://github.com/steveyegge/beads) - -## Quick Start - -### Essential Commands - -```bash -# Create new issues -bd create "Add user authentication" - -# View all issues -bd list - -# View issue details -bd show - -# Update issue status -bd update --status in_progress -bd update --status done - -# Sync with Dolt remote -bd dolt push -``` - -### Working with Issues - -Issues in Beads are: -- **Git-native**: Stored in `.beads/issues.jsonl` and synced like code -- **AI-friendly**: CLI-first design works perfectly with AI coding agents -- **Branch-aware**: Issues can follow your branch workflow -- **Always in sync**: Auto-syncs with your commits - -## Why Beads? - -✨ **AI-Native Design** -- Built specifically for AI-assisted development workflows -- CLI-first interface works seamlessly with AI coding agents -- No context switching to web UIs - -🚀 **Developer Focused** -- Issues live in your repo, right next to your code -- Works offline, syncs when you push -- Fast, lightweight, and stays out of your way - -🔧 **Git Integration** -- Automatic sync with git commits -- Branch-aware issue tracking -- Intelligent JSONL merge resolution - -## Get Started with Beads - -Try Beads in your own projects: - -```bash -# Install Beads -curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash - -# Initialize in your repo -bd init - -# Create your first issue -bd create "Try out Beads" -``` - -## Learn More - -- **Documentation**: [github.com/steveyegge/beads/docs](https://github.com/steveyegge/beads/tree/main/docs) -- **Quick Start Guide**: Run `bd quickstart` -- **Examples**: [github.com/steveyegge/beads/examples](https://github.com/steveyegge/beads/tree/main/examples) - ---- - -*Beads: Issue tracking that moves at the speed of thought* ⚡ diff --git a/.beads/config.yaml b/.beads/config.yaml deleted file mode 100644 index 56db572..0000000 --- a/.beads/config.yaml +++ /dev/null @@ -1,42 +0,0 @@ -# Beads Configuration File -# This file configures default behavior for all bd commands in this repository -# All settings can also be set via environment variables (BD_* prefix) -# or overridden with command-line flags - -# Issue prefix for this repository (used by bd init) -# If not set, bd init will auto-detect from directory name -# Example: issue-prefix: "myproject" creates issues like "myproject-1", "myproject-2", etc. -# issue-prefix: "" - -# Use no-db mode: load from JSONL, write back after each command -# When true, bd will use .beads/issues.jsonl as the source of truth -# instead of the Dolt database -# no-db: false - -# Enable JSON output by default -# json: false - -# Default actor for audit trails (overridden by BD_ACTOR or --actor) -# actor: "" - -# Export events (audit trail) to .beads/events.jsonl on each flush/sync -# When enabled, new events are appended incrementally using a high-water mark. -# Use 'bd export --events' to trigger manually regardless of this setting. -# events-export: false - -# Multi-repo configuration (experimental - bd-307) -# Allows hydrating from multiple repositories and routing writes to the correct JSONL -# repos: -# primary: "." # Primary repo (where this database lives) -# additional: # Additional repos to hydrate from (read-only) -# - ~/beads-planning # Personal planning repo -# - ~/work-planning # Work planning repo - -# Integration settings (access with 'bd config get/set') -# These are stored in the database, not in this file: -# - jira.url -# - jira.project -# - linear.url -# - linear.api-key -# - github.org -# - github.repo diff --git a/.beads/hooks/post-checkout b/.beads/hooks/post-checkout deleted file mode 100755 index b8938d3..0000000 --- a/.beads/hooks/post-checkout +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env sh -# bd-shim v1 -# bd-hooks-version: 0.56.1 -# -# bd (beads) post-checkout hook - thin shim -# -# This shim delegates to 'bd hooks run post-checkout' which contains -# the actual hook logic. This pattern ensures hook behavior is always -# in sync with the installed bd version - no manual updates needed. - -# Check if bd is available -if ! command -v bd >/dev/null 2>&1; then - # Silently skip - post-checkout is called frequently - exit 0 -fi - -exec bd hooks run post-checkout "$@" diff --git a/.beads/hooks/post-merge b/.beads/hooks/post-merge deleted file mode 100755 index 57fc73a..0000000 --- a/.beads/hooks/post-merge +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env sh -# bd-shim v1 -# bd-hooks-version: 0.56.1 -# -# bd (beads) post-merge hook - thin shim -# -# This shim delegates to 'bd hooks run post-merge' which contains -# the actual hook logic. This pattern ensures hook behavior is always -# in sync with the installed bd version - no manual updates needed. - -# Check if bd is available -if ! command -v bd >/dev/null 2>&1; then - echo "Warning: bd command not found in PATH, skipping post-merge hook" >&2 - echo " Install bd: brew install beads" >&2 - echo " Or add bd to your PATH" >&2 - exit 0 -fi - -exec bd hooks run post-merge "$@" diff --git a/.beads/hooks/pre-commit b/.beads/hooks/pre-commit deleted file mode 100755 index 15e5262..0000000 --- a/.beads/hooks/pre-commit +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env sh -# bd-shim v2 -# bd-hooks-version: 0.56.1 -# -# bd (beads) pre-commit hook — thin shim -# -# Delegates to 'bd hooks run pre-commit' which contains the actual hook -# logic. This pattern ensures hook behavior is always in sync with the -# installed bd version — no manual updates needed. - -# Check if bd is available -if ! command -v bd >/dev/null 2>&1; then - echo "Warning: bd command not found in PATH, skipping pre-commit hook" >&2 - echo " Install bd: brew install beads" >&2 - echo " Or add bd to your PATH" >&2 - exit 0 -fi - -exec bd hooks run pre-commit "$@" diff --git a/.beads/hooks/pre-push b/.beads/hooks/pre-push deleted file mode 100755 index fff1a0d..0000000 --- a/.beads/hooks/pre-push +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env sh -# bd-shim v1 -# bd-hooks-version: 0.56.1 -# -# bd (beads) pre-push hook - thin shim -# -# This shim delegates to 'bd hooks run pre-push' which contains -# the actual hook logic. This pattern ensures hook behavior is always -# in sync with the installed bd version - no manual updates needed. - -# Check if bd is available -if ! command -v bd >/dev/null 2>&1; then - echo "Warning: bd command not found in PATH, skipping pre-push hook" >&2 - echo " Install bd: brew install beads" >&2 - echo " Or add bd to your PATH" >&2 - exit 0 -fi - -exec bd hooks run pre-push "$@" diff --git a/.beads/hooks/prepare-commit-msg b/.beads/hooks/prepare-commit-msg deleted file mode 100755 index 316ab46..0000000 --- a/.beads/hooks/prepare-commit-msg +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env sh -# bd-shim v1 -# bd-hooks-version: 0.48.0 -# -# bd (beads) prepare-commit-msg hook - thin shim -# -# This shim delegates to 'bd hooks run prepare-commit-msg' which contains -# the actual hook logic. This pattern ensures hook behavior is always -# in sync with the installed bd version - no manual updates needed. -# -# Arguments: -# $1 = path to the commit message file -# $2 = source of commit message (message, template, merge, squash, commit) -# $3 = commit SHA-1 (if -c, -C, or --amend) - -# Check if bd is available -if ! command -v bd >/dev/null 2>&1; then - echo "Warning: bd command not found in PATH, skipping prepare-commit-msg hook" >&2 - echo " Install bd: brew install beads" >&2 - echo " Or add bd to your PATH" >&2 - exit 0 -fi - -exec bd hooks run prepare-commit-msg "$@" diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl deleted file mode 100644 index fa00c67..0000000 --- a/.beads/issues.jsonl +++ /dev/null @@ -1,11 +0,0 @@ -{"id":"src-5xo","title":"Study memllib and memlp submodule interfaces","description":"Check out the submodules (git submodule update --init --recursive) and study the key interfaces that the firmware depends on. Focus on: AudioAppBase\u003cNPARAMS\u003e (Setup/Process/ProcessParams/SendParamsToQueue), AudioDriver (GetSampleRate, SetBlockCallback), InterfaceBase (setup, SendParamsToQueue), InterfaceRL (full RL wrapper: bindInterface, bindMIDI, readAnalysisParameters, INPUT_MODES, rlStatsView), MEMLNaut singleton (hardware abstraction), SharedBuffer\u003cT,N\u003e (lock-free inter-core), stereosample_t, memory placement macros (AUDIO_MEM, AUDIO_FUNC, APP_SRAM), timer macros (PERIODIC_RUN_US), and the embedded MLP.h/Dataset.hpp from memlp. Document what each provides and how nisps-core diverges from memlp.","status":"open","priority":1,"issue_type":"task","owner":"w1n5t0n@lnfinitemonkeys.org","created_at":"2026-03-04T23:14:24Z","created_by":"w1n5t0n","updated_at":"2026-03-04T23:14:24Z","dependency_count":0,"dependent_count":0,"comment_count":0} -{"id":"src-sas","title":"Study the playground JS port and verify ML fidelity","description":"Read all playground/js/nisps/ files (iml.js, mlp.js, layer.js, node.js, dataset.js) and compare line-by-line against nisps-core C++ headers. Document any differences in: activation functions, forward pass, backprop, weight init, moveWeights noise generation, training convergence, dataset management. Then read app.js (446 lines) for the two learning modes (examples vs RL), the RL reward loop (thumbsUp saves+trains+decays noise, thumbsDown amplifies noise+moveWeights), gamepad support, localStorage persistence, presets. Read the UI files (visualizer.js flow-field, joystick.js touch handling, controls.js, param-display.js) to understand the full demo architecture.","status":"open","priority":1,"issue_type":"task","owner":"w1n5t0n@lnfinitemonkeys.org","created_at":"2026-03-04T23:14:17Z","created_by":"w1n5t0n","updated_at":"2026-03-04T23:14:17Z","dependency_count":0,"dependent_count":0,"comment_count":0} -{"id":"src-767","title":"Study XIASRIAudioApp and XiasriAnalysis audio feature extraction","description":"Read XIASRIAudioApp.hpp (234 lines): reverb/FX engine with 4 delay lines, 6 all-pass filters, 2 comb filters, DC blocker, daisysp PitchShifter, OnePoleSmoother for parameter smoothing. Then read XiasriAnalysis.hpp/.cpp (62+170 lines): the 6-parameter feature extraction pipeline (pitch via zero-crossing + MedianFilter + CircularBuffer, aperiodicity as relative MAD, energy via envelope follower + log scaling, attack as energy derivative, brightness as HP/LP band ratio). Document the per-sample processing pipeline, normalization ranges, and how features flow from Core 1 analysis through SharedBuffer to Core 0 ML input.","status":"open","priority":1,"issue_type":"task","owner":"w1n5t0n@lnfinitemonkeys.org","created_at":"2026-03-04T23:14:12Z","created_by":"w1n5t0n","updated_at":"2026-03-04T23:14:12Z","dependency_count":0,"dependent_count":0,"comment_count":0} -{"id":"src-v1r","title":"Study ChannelStripAudioApp and console emulation voice spaces","description":"Read ChannelStripAudioApp.hpp (641 lines). Document: the full signal chain (pre-gain tanh → HP+LP input filters → 2x peak + low/high shelf EQ → dynamics → post-gain), stereo processing, the inline maxiDynamicsLite implementation (~290 lines: compander with knee, RMS/peak detection, attack/release ADSRLite envelopes, look-ahead delay, bezier knee curves), maxiRingBufLite, controlMessages enum for bypass toggles via queue_t. Then study voicespaces/ChannelStrip/basic.hpp (179 lines): 6 console emulation macros (Neve 1066, SSL 4K/9K, Male/Female Vox, Neve 80). Note the Neve 80 stepped-switch emulation using constexpr arrays + index math.","status":"open","priority":1,"issue_type":"task","owner":"w1n5t0n@lnfinitemonkeys.org","created_at":"2026-03-04T23:14:06Z","created_by":"w1n5t0n","updated_at":"2026-03-04T23:14:06Z","dependency_count":0,"dependent_count":0,"comment_count":0} -{"id":"src-eie","title":"Study PAFSynthAudioApp and PAF voice spaces","description":"Read PAFSynthAudioApp.hpp (358 lines). Document: 4 maxiPAFOperator instances, oscillator chaining (geometric detuning: freq0 → freq1=freq0*detune1 → freq2=freq1*detune2 → freq3=freq2*detune3), effects chain (ring mod → sine shaper → delay → tanh soft-clip), MIDI note queue handling via queue_t, and the 7 voice spaces (VoiceSpace1/2/Perc/Single1/QuadDetune/QuadOct/QuadDist). For each voice space macro, document which PAF operators are active, key parameter routings, and sonic character. Note the VoiceSpace\u003cNPARAMS\u003e struct (name + lambda) and VoiceSpaceFn type alias.","status":"open","priority":1,"issue_type":"task","owner":"w1n5t0n@lnfinitemonkeys.org","created_at":"2026-03-04T23:14:00Z","created_by":"w1n5t0n","updated_at":"2026-03-04T23:14:00Z","dependency_count":0,"dependent_count":0,"comment_count":0} -{"id":"src-mw5","title":"Study the Mode system and MEMLNautMode C++20 concept","description":"Read modes/MEMLNautMode.hpp (concept definition) and all four mode implementations: MEMLNautModePAFSynth (3 inputs, PAF synth), MEMLNautModeChannelStrip (4 inputs, channel strip), MEMLNautModeXIASRI (6 audio-feature inputs, reverb/FX), MEMLNautModeSoundAnalysisMIDI (9 inputs, audio+joystick, MIDI output). Document: how the concept enforces the interface without inheritance (duck typing), kN_InputParams per mode, how each mode configures InterfaceRL (input mode, dimensionality), MIDI setup patterns, display view creation, and the SharedBuffer pattern used by analysis modes for cross-core audio feature transport.","status":"open","priority":1,"issue_type":"task","owner":"w1n5t0n@lnfinitemonkeys.org","created_at":"2026-03-04T23:13:54Z","created_by":"w1n5t0n","updated_at":"2026-03-04T23:13:54Z","dependency_count":0,"dependent_count":0,"comment_count":0} -{"id":"src-6jj","title":"Study dual-core architecture and inter-core communication","description":"Read MEMLNaut-NISPS.ino (230 lines) focusing on the dual-core RP2040 design. Document: Core 0 responsibilities (UI loop, ML inference, hardware polling at 5ms), Core 1 responsibilities (audio processing, MIDI polling at 10ms), startup synchronization (4 volatile bool flags + MEMORY_BARRIER/WRITE_VOLATILE/READ_VOLATILE), the audio_block_callback signature and execution context, ROSC entropy seed generation, PERF timing macros, and the compile-time mode selection via #define MEMLNAUT_MODE_TYPE. Map the three inter-core communication patterns: (1) volatile flags + memory barriers, (2) RP2040 queue_t for MIDI/control, (3) SharedBuffer\u003cT,N\u003e for analysis params.","status":"open","priority":1,"issue_type":"task","owner":"w1n5t0n@lnfinitemonkeys.org","created_at":"2026-03-04T23:13:47Z","created_by":"w1n5t0n","updated_at":"2026-03-04T23:13:47Z","dependency_count":0,"dependent_count":0,"comment_count":0} -{"id":"src-0tr","title":"Study the original IMLInterface.hpp and InterfaceRL integration","description":"Read IMLInterface.hpp (276 lines) — the firmware-side ML interface inheriting InterfaceBase. Document: MLP architecture [n_inputs+bias, 10, 10, 14, n_outputs], training params (1000 iter, LR=1.0, convergence=0.00001), the INFERENCE_MODE/TRAINING_MODE state machine, STORE_VALUE_MODE vs STORE_POSITION_MODE for the two-step example capture, MLRandomise_/MLTraining_ flow, SendParamsToQueue for cross-core output delivery. Then study how InterfaceRL (from memllib submodule) wraps this with RL reward, INPUT_MODES (JOYSTICK, MACHINE_LISTENING, JOYSTICK_AND_MACHINE_LISTENING), and joystick/MIDI binding.","status":"open","priority":1,"issue_type":"task","owner":"w1n5t0n@lnfinitemonkeys.org","created_at":"2026-03-04T23:13:43Z","created_by":"w1n5t0n","updated_at":"2026-03-04T23:13:43Z","dependency_count":0,"dependent_count":0,"comment_count":0} -{"id":"src-ucr","title":"Study nisps-core MLP implementation (Node → Layer → MLP)","description":"Deep-read the core ML engine in nisps-core/include/nisps/. Start from utils.hpp (activation functions, math), then node.hpp (single neuron forward/backward), layer.hpp (vector of nodes, backprop), mlp.hpp + mlp_impl.hpp (full network: Train, TrainBatch, MoveWeights, SmoothUpdateWeights, policy gradient, Xavier init, NaN recovery). Document: weight initialization strategies, forward pass data flow, backprop implementation, gradient accumulation, loss functions (loss.hpp), and the CheckAndFixWeights safety net. Note differences between supervised and RL training paths.","status":"open","priority":1,"issue_type":"task","owner":"w1n5t0n@lnfinitemonkeys.org","created_at":"2026-03-04T23:13:40Z","created_by":"w1n5t0n","updated_at":"2026-03-04T23:13:40Z","dependency_count":0,"dependent_count":0,"comment_count":0} -{"id":"src-vah","title":"Study Dataset and IML interface (nisps-core)","description":"Read dataset.hpp + dataset_impl.hpp (max 100 examples, FIFO/RANDOM forget modes, ReplayMemory), sample.hpp (legacy Sample/TrainingSample), then iml.hpp + iml_impl.hpp (the user-facing API). Document: the two-step save_example() hardware workflow vs direct add_example() API, Mode::Inference vs Mode::Training state machine, how training is triggered on mode switch, weight randomisation + restoration pattern, input clamping, and the logger callback system. Compare with the original IMLInterface.hpp to understand what was extracted vs what's firmware-specific.","status":"open","priority":1,"issue_type":"task","owner":"w1n5t0n@lnfinitemonkeys.org","created_at":"2026-03-04T23:13:40Z","created_by":"w1n5t0n","updated_at":"2026-03-04T23:13:40Z","dependency_count":0,"dependent_count":0,"comment_count":0} -{"id":"src-kqa","title":"Write comprehensive architecture notes to memory","description":"After completing all study issues, synthesize findings into structured memory files. Create: (1) architecture.md — system overview, dual-core design, data flow diagrams (input → ML → voice space → audio), inter-core patterns. (2) ml-engine.md — MLP architecture, training modes, RL vs supervised, weight management. (3) audio-dsp.md — all audio apps, voice spaces, signal chains, feature extraction. (4) playground-port.md — JS/C++ correspondence, any divergences found. (5) Update MEMORY.md with index and key insights. Goal: these notes should be detailed enough to rewrite the system in any architecture.","status":"open","priority":2,"issue_type":"task","owner":"w1n5t0n@lnfinitemonkeys.org","created_at":"2026-03-04T23:14:29Z","created_by":"w1n5t0n","updated_at":"2026-03-04T23:14:29Z","dependency_count":0,"dependent_count":0,"comment_count":0} diff --git a/.beads/metadata.json b/.beads/metadata.json deleted file mode 100644 index 3854f78..0000000 --- a/.beads/metadata.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "database": "dolt", - "backend": "dolt", - "dolt_mode": "embedded", - "dolt_database": "beads_meml", - "project_id": "876a8fcd-79fc-4727-a69a-b6bf58c616e9" -} \ No newline at end of file