From 8a7f932170aec3d2cb77ad471edee40528d7eba0 Mon Sep 17 00:00:00 2001 From: vadimwit Date: Mon, 15 Jun 2026 08:34:21 +0100 Subject: [PATCH] =?UTF-8?q?docs:=20CONTRIBUTING.md=20+=20issue=20templates?= =?UTF-8?q?=20=E2=80=94=20the=20musician=20contribution=20path=20(task=20H?= =?UTF-8?q?-02)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 'Add a style without deep coding' centerpiece: KB data contract, mirror gospel pack, register, run validator; explains why the validator exists; /kb-expand assisted path; PR checklist. add-style/bug_report/feature_request templates + config.yml. License flagged unsettled, not decided. Critic PASS (all links/commands verified, schema-faithful). Co-Authored-By: Claude Fable 5 --- .github/ISSUE_TEMPLATE/add-style.md | 46 ++++++ .github/ISSUE_TEMPLATE/bug_report.md | 31 ++++ .github/ISSUE_TEMPLATE/config.yml | 8 ++ .github/ISSUE_TEMPLATE/feature_request.md | 26 ++++ CONTRIBUTING.md | 163 ++++++++++++++++++++++ 5 files changed, 274 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/add-style.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 CONTRIBUTING.md diff --git a/.github/ISSUE_TEMPLATE/add-style.md b/.github/ISSUE_TEMPLATE/add-style.md new file mode 100644 index 0000000..b0bae6a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/add-style.md @@ -0,0 +1,46 @@ +--- +name: Propose or contribute a style +about: Suggest a genre for the knowledgebase, or offer to author one +title: "[Style] " +labels: ["style", "content"] +--- + + + +## Which style / genre? + + + +## Signature progressions (3–5) + +For each, give the **Roman numerals** and an **example song** that uses it. + + + +1. +2. +3. + +## What makes it sound like itself? + + + +## Will you author the voicings, or want help? + +- [ ] I'll author the pack myself (guitar voicings / comping / improv) and open a PR +- [ ] I can supply the progressions and theory, but want help turning them into the data files +- [ ] I'm proposing the style for someone else to build + +## Anything else? + + diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..14b7abe --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,31 @@ +--- +name: Bug report +about: Something isn't working as expected +title: "[Bug] " +labels: ["bug"] +--- + +## What happened? + + + +## Steps to reproduce + +1. +2. +3. + +## What you expected instead + + + +## Environment + +- OS: +- How you ran it: +- Instrument / input: + +## Screenshots, console output, or audio notes + + diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..7afd76c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: true +contact_links: + - name: The roadmap & vision (GOAL.md) + url: https://github.com/whattheflat/whattheflat/blob/main/GOAL.md + about: Where JamBuddy is headed — read this before proposing a big feature. + - name: How to contribute a style (CONTRIBUTING.md) + url: https://github.com/whattheflat/whattheflat/blob/main/CONTRIBUTING.md + about: Add a genre to the knowledgebase without deep coding. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..7b0a801 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,26 @@ +--- +name: Feature request +about: Suggest an idea or improvement +title: "[Feature] " +labels: ["enhancement"] +--- + + + +## The problem / the jam moment + + + +## What you'd like to see + + + +## How it fits the roadmap + + + +## Alternatives or references + + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..98f2da9 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,163 @@ +# Contributing to JamBuddy + +JamBuddy is two things at once: a live **jam companion** that hears your key and chords and shows you how to play over them, and an open **learning platform** for the style knowledge behind those changes. The full vision is in [`GOAL.md`](GOAL.md). + +The best part: **the style packs are data, not code.** If you're a gigging musician who knows how a style is voiced and played, you can teach JamBuddy a new genre by filling in a structured file — no audio or detection internals required. This guide is about that path. + +--- + +## Quick start (setup) + +You'll need [Node.js](https://nodejs.org/) (18+) and, for the live app, a microphone. + +```bash +git clone https://github.com/whattheflat/whattheflat.git +cd whattheflat +npm install + +# Desktop app — Vite dev server + Electron window, hot reload, mic access +npm run electron:dev + +# Or browser-only (no Electron shell) — then open http://localhost:5173 +npm run dev +``` + +You do **not** need the app running to add a style — adding a style is editing data files and running one validator command. But it's nice to see your pack light up live once it's in. + +--- + +## Add a music style without deep coding + +This is the heart of contributing. A "style" is a genre pack: the standard progressions of that style, plus idiomatic ways to play each one. One pack renders in **all 12 keys** automatically, because everything is stored key-agnostically (scale degrees, not chord names). + +The data contract you're filling is [`src/data/kb/SCHEMA.md`](src/data/kb/SCHEMA.md) — read it; it's the source of truth. The steps below are the workflow around it. + +### Step 1 — Copy an existing pack as your template + +A style lives in `src/data/kb/