Agente que entrevista o músico, pesquisa o rig real do artista/música na internet, mapeia para os modelos reais da GP-100 (catálogo firmware 2.0/2.1) e entrega patches documentados + arquivos
.prstimportáveis. 📚 Navegue pela biblioteca — busca client-side e página por patch, publicada direto do defs. Roda no Freebuff — o agente de código gratuito.
Este projeto roda sobre o Freebuff, o agente de programação gratuito (CLI, Desktop, Web, Cloud e Chat) — sem assinatura, sem créditos e sem chave de API, sustentado por anúncios de texto.
💜 Apoie o projeto usando meu link de indicação — cadastros por indicação rendem sessões extras para você:
| Produto | Para quê | Começar |
|---|---|---|
| Freebuff CLI | Rodar este agente no terminal, nesta pasta | npm install -g freebuff |
| Freebuff Desktop | Vários agentes em paralelo, cada um em workspace isolado | Download |
| Freebuff Web / Cloud | Agentes em nuvem, conectados a repositórios GitHub | Site |
| Freebuff Chat | Pesquisa e estudo (ex.: consultar este README em campo) | Site |
Modelos: o catálogo inclui GLM 5.3 Flash (padrão, raciocínio profundo), DeepSeek V4.1 Flash (rápido), GPT-5.6 Luna, MiMo 2.5 e outros — a troca é feita no seletor do CLI. Indicações e bounties rendem sessões extras além da franquia diária gratuita.
Requisito único: Node.js 18+ (macOS, Windows ou Linux).
# 1. Instale o CLI (uma vez)
npm install -g freebuff
# 2. Entre na pasta deste projeto (o nome tem espaços — use aspas)
cd "GP-100 Patch Architect"
# 3. Inicie o agente
freebuffÉ isso — sem chave de API, sem cartão, sem configuração obrigatória. Descreva o que quer em português e o Freebuff orquestra os agentes. 💡 Dica: instale pela página de indicação para ganhar as sessões extras desde o primeiro dia.
O comportamento do agente é 100% definido por arquivos versionados nesta pasta — qualquer Freebuff (CLI ou Desktop) os carrega sozinho ao abrir o projeto:
| Camada | Arquivos | Papel |
|---|---|---|
| Orquestração | .agents/gp100-patch-architect.ts |
Agente-mestre: recebe o pedido, pesquisa o rig real, distribui o trabalho |
| Skills por efeito | .agents/gp100-{pre,dst,amp,cab-ir,eq,mod,nr,dly,rvb,globals}.ts |
Uma skill por bloco da cadeia, com todos os parâmetros, ranges, "o que evitar" e sugestões |
| Skills de apoio | .agents/gp100-{tone-research,tone-mapper,ir-research,ir-fit,manual-reader,patch-validator}.ts |
Pesquisa de referência, mapeamento rig→GP-100, política de IRs, validação |
| Regras de ouro | knowledge.md |
Convenções do projeto (patches por música, nomenclatura, política de IR) |
| Base técnica | reference/00…17 |
Manual V1.8 transcrito + catálogo empírico do firmware 2.0/2.1 |
| Persistência | data/defs/ (fragmentos por álbum, schema v2) |
Fonte única do patch: _albums.json + um JSON por álbum; o pipeline (gp100 build) gera patch.md e .prst a partir deles |
| Prompts prontos | prompts/*.md |
Fluxos de criação, ajuste, sugestão e pesquisa |
Abra o Freebuff nesta pasta e peça um patch:
Criar patch GP-100 com referência
Artista/música: <artista ou música>
O que quero extrair: <base, solo, som geral — uma camada por pedido>
Captador que usarei: <bridge / neck / posição 2–4 / decida o melhor e documente>
Contexto: <gravar em casa com fone / ensaio / show>
IR de terceiros: pesquisar IR; caso não encontre, use uma de fábrica
Fluxos prontos em
prompts/· Exemplos reais navegáveis no site da biblioteca: Pulse (Pink Floyd — 24 músicas → 38 patches, ordem do álbum em U25–U62), Wishkah (Nirvana — 17 músicas → 31 patches, U63–U93), Abbey Road (14 músicas → 20 patches), Uncle Remus (Zappa), Piece of My Heart (Janis Joplin) e Smooth (Santana — 4 patches com stomps, U94–U97).
Regra central: patches são por MÚSICA — cada faixa tem seu conjunto exclusivo, dividido nas camadas que ela contém (base, solo, riff, clean…). Nome no painel = MÚSICA+CAMADA (máx. 12 caracteres): STH01BA = Something · base · CT01RIF = Come Together · riff · PMH01SO = Piece of My Heart · solo.
Cada patch entrega:
| Arquivo | O que é |
|---|---|
<NOME>.prst |
Importável no GP-100 Edits ou direto na pedaleira (formato single-patch, firmware 2.1) |
patch.md |
Doc prática-primeiro: 🎸 guitarra (seletor/volume/tone/técnica) → 🔧 ajustes finos → 📡 seção exclusiva de IR → 🔊 objetivo do som → 📚 dossiê do rig real com fontes → 🎛️ parâmetros e receita de digitação |
📡 Política de IR — a seção exclusiva de cada
patch.mdsegue sempre: 1. o que o.prstusa agora (CAB de fábrica, funciona imediatamente) → 2. captura melhor no banco localimpulse_responses/(arquivo exato + slot User IR + passo a passo) → 3. download gratuito na internet quando nem banco nem fábrica cobrem → 4. fallback garantido no CAB de fábrica.
Fonte única dos patches:
data/defs/(schema v2) · regenerar comuv run gp100 build.
├── src/gp100_architect/ # PACOTE Python (domain · application · infrastructure · interfaces)
├── docs/ # ADRs (docs/decisions/) — documentação de engenharia
├── .agents/ # 21 agentes + 11 skills (agents/skills/) — configuração do Freebuff
├── reference/ # base de conhecimento: manual V1.8 + catálogo fw 2.0/2.1 + catálogos de IR
├── prompts/ # fluxos prontos (criar, ajustar, sugerir, pesquisar referência)
├── data/ # dados do pipeline: defs/, factory-catalog.json, ir-library.json
├── patches/ # biblioteca (saída de script): Banda/Álbum/Música/PATCH (.prst + patch.md)
├── impulse_responses/ # banco local de IRs (WAV 44.1 kHz) — indexado por gp100 build
│ # ⚠️ os WAV NÃO são versionados (licença de terceiro)
├── tests/ # suíte (unit/ em pytest + testes históricos do pipeline)
├── .github/ # CI · segurança (CodeQL) · release · templates de issue/PR · CODEOWNERS
├── pyproject.toml # pacote: metadados, deps, entry point `gp100` e config dos gates
├── uv.lock # resolução travada — o CI instala com `uv sync --frozen`
├── ARCHITECTURE.md # arquitetura em 1 página (resumo; a decisão vive nos ADRs)
├── DEVELOPMENT.md # setup, comandos do dia a dia, regras que o CI cobra
├── knowledge.md # regras de ouro do projeto
├── CONTRIBUTING.md # ambiente, pipeline obrigatório, Conventional Commits, fluxo develop → main
├── SECURITY.md # escopo de segurança, prazos e canal de divulgação privada
├── CODE_OF_CONDUCT.md # Contributor Covenant 2.1
├── CHANGELOG.md # gerado pelo comando gp100 changelog a partir dos commits
├── VERSION # fonte única da versão (SemVer) — lida pelo CI de release
├── manual.pdf # manual oficial (V1.8) — NÃO versionado: obtenha no site do fabricante
├── .editorconfig # indentação e fim de linha (CRLF em .prst e docs de patch)
├── .gitattributes # .prst fixado em CRLF · WAV/PDF tratados como binários
└── .gitignore # banco de IRs e manual.pdf fora do git · caches · estado local
📡 O banco de IRs e o
manual.pdfnão vivem no repositório. As licenças são de terceiros — a IR-Cab Library V3 é gratuita com cadastro no site da Origin Effects, mas não concede redistribuição. O que é versionado é o catálogo derivado (data/ir-library.json+reference/16-ir-library.md), porque é ele que diz a cadapatch.mdqual arquivo exato do banco usar. Detalhes:impulse_responses/README.md.
| Comando / caminho | Uso | O que faz |
|---|---|---|
gp100 |
uv run gp100 <comando> |
CLI oficial (Typer + Rich) — consulta: find · show · diff · export; produção: build · verify · setlist · release; utilidades: validate · analyze · manual-page · changelog · site · version. Saídas --json estáveis para agentes |
gp100 build |
uv run gp100 build [--with-user-ir] |
O pipeline completo in-process (application/pipeline.py) — indexa impulse_responses/ → data/ir-library.json + reference/16-ir-library.md, gera patch.md + .prst via codec in-memory (ADR-0013) e regenera os MAPA-DO-ALBUM.md + patches/README.md. Com --with-user-ir (issue #10), escreve também as variantes experimentais -USERIR |
gp100 analyze |
uv run gp100 analyze <arquivo>.prst [--json out.json] |
Disseca qualquer export .prst (modelos, ranges empíricos de params, catálogo) — é dele que nasceu o catálogo fw 2.0 (data/factory-catalog.json) |
gp100 manual-page |
uv run gp100 manual-page 21 [22 …] · --all |
Renderiza páginas do manual.pdf sob demanda (requer pymupdf; PNG alta + JPG leve em manual_pages/, efêmero) — página impressa NN = arquivo NN+2 |
gp100 changelog |
uv run gp100 changelog [--version X.Y.Z] [--write] |
Changelog derivado dos commits (Conventional Commits): agrupa por tipo, isola breaking changes e sugere o bump SemVer |
gp100 badges |
uv run gp100 badges [--destino site] |
Badges derivados (issue #117): badges/*.json (endpoint do shields.io) com release, agentes, skills, patches, Python, cobertura e testes — contagens de fonte única (VERSION, git ls-files, defs, pyproject, coleção pytest), geradas no deploy do Pages. Os badges do README consomem as URLs do Pages: dado derivado não se edita, se regenera |
gp100 site |
uv run gp100 site [--destino dist/site] [--base-url /gp-100-patch-architect/] |
Site estático da biblioteca (issue #11) + catálogo JSON (issue #90 fase 1): página por álbum e por patch + busca client-side sobre busca.json minúsculo — derivado do defs, sem backend. Publicado no GitHub Pages a cada push na develop: lucascantarelli.github.io/gp-100-patch-architect · catálogo em /catalog/ (index, patches/<NOME>, irs, schema) |
tests/ |
uv run pytest |
Suíte em pirâmide (issue #34): unit (regras puras) → integration (defs real) → contract (formato .prst e CLI gp100) → e2e (derivados e guardas, incluindo a sincronia do pipeline). Fatias: uv run pytest -m unit, -m "not slow" |
data/ |
— | Dados versionados do pipeline: defs/ (fonte única, schema v2), factory-catalog.json (catálogo empírico do firmware) e ir-library.json (manifesto do banco local de IRs, gerado) |
scripts/purge_redistributed_assets.sh |
CONFIRMAR=1 bash scripts/purge_redistributed_assets.sh |
Ferramenta de manutenção: plano/execução de remoção de ativos redistribuíveis (licença) |
.github/scripts/audit_workflows.py |
python .github/scripts/audit_workflows.py |
Guarda dos workflows — reprova permissões ausentes ou ACIMA DO TETO declarado por arquivo, job sem timeout, injeção em run: e pull_request_target; avisa sobre Action não fixada por SHA |
.github/scripts/audit_agents.py |
python .github/scripts/audit_agents.py |
Guarda da camada de IA (issue #63) — reprova caminho citado por agente inexistente no git, contrato ADR-0008 incompleto e skill fora da curadoria (doc 23); avisa sobre skill sem consumidor |
Cadeia típica ao acrescentar um álbum: crie data/defs/<CHAVE>.json (e declare a chave em _albums.json) → uv run gp100 build → rode a suíte de testes (ela inclui o guarda de determinismo). Baixou packs de IR? Extraia em impulse_responses/<Pack>/ → uv run gp100 build. Downloads recomendados: reference/17-free-ir-packs.md.
Acrescentou elemento novo? (música, camada, patch, efeito, momento de toggle, pack de IR) O pipeline é obrigatório, e o guarda de determinismo da suíte reprova o PR que esquecer de regenerar:
uv run gp100 build
Tudo que descreve uma música, um álbum ou uma IR vive só em data/defs/ (albums → banda/ano/pasta/título/dossiê do rig · ir_local → captura recomendada por CAB · cada música → song, pasta, display, patches). O pacote é o renderizador: nenhum módulo tem lista de músicas ou de cabs. Foi a duplicação dessas tabelas que fez o mapa do álbum recomendar "fábrica" enquanto o patch.md mandava carregar uma IR do banco nos 38 patches do Pulse — hoje o teste TestB_FonteUnica_IR reprova isso.
Cada PR (e cada push em main e develop) roda o workflow CI: três jobs em paralelo (fase 1) e um portão de veredito único (fase 2) — é o check exigido pelas regras de proteção das duas branches:
| Job | O que faz |
|---|---|
🚦 ci-gate |
Portão do CI — reprova se qualquer job da fase 1 falhou e publica o resumo dos resultados |
🧪 test-suite |
instala o ambiente do lockfile (uv sync --frozen), verifica o runtime (trava Python 3.14. como primeiro passo*) e executa a suíte (contagem derivada — badge testes e /stats/) com pytest e cobertura do pacote com piso de 90% (hoje 90,81%), incluindo o guarda de determinismo: o pipeline roda numa cópia temporária e tem de reproduzir exatamente o que o defs determina (em clone limpo, a biblioteca inteira — patches/** não é commitado). Nada é escrito no repositório: o workflow roda com contents: read, então nenhum ator automatizado pode empurrar no main e a branch protection não precisa de exceção para o bot |
🧹 quality |
ruff check + ruff format --check + mypy --strict — no pacote src/gp100_architect e em toda a suíte tests/ |
🔍 typecheck |
tsc --noEmit nos 21 agentes, com cache do TypeScript |
Todos os jobs têm timeout e o resultado da sincronia dos dados é publicado no resumo da execução (Step Summary) do GitHub.
Para rodar igual na sua máquina:
uv run pytest # pirâmide completa (unit, integration, contract, e2e)
uv run pytest -m unit # só a fatia rápida, quando estiver iterandoA suíte cobre as invariantes que já quebraram uma vez neste projeto:
| Camada / guarda | O que reprova |
|---|---|
e2e · fonte única de IR |
mapa do álbum e seção 📡 do patch.md discordando sobre a IR (bug dos 38 patches do Pulse) |
e2e · .prst |
.prst fora do formato single fw 2.1 (ppIRInfo, ordem dos módulos, x, 15 params, ppName ≠ pasta) |
e2e · patch.md |
doc sem uma das 9 seções, HTML cru no Markdown ou rótulo placeholder ((pN)/pN solto em ajustes e tabelas) |
e2e · momentos |
momento de toggle inválido (módulo inexistente, estado já ativo, ou tentativa de desligar AMP/CAB) |
e2e · guardas |
modelo ligado em patch sem tabela de nomes (allowlist consciente) ou tabela com placeholder; índice defasado (esqueceu de rodar gen_indexes.py); ordem de artefato dependente de SO |
e2e · sincronia (TestH) |
guarda de determinismo: o pipeline rodado numa cópia limpa do repo tem de reproduzir os derivados byte a byte — prova que o defs determina a biblioteca e pega hand-edit em arquivo gerado; time do .prst ignorado, CRLF≡LF e mudança de parâmetro não mascarada |
unit + integration |
regras puras e casos de uso sobre o defs real — validação com caminho JSON, resolução de pedidos, empacotamento e changelog |
- Precedência do catálogo fw 2.0/2.1 (nomes reais:
Blues OD,Green OD,Dark Twin,DarkTW 2x12,Spring...) sobre o manual impresso V1.8 — verreference/15-firmware2-effects.md. - Nomes de parâmetro 100% oficiais (manual do firmware V2.0):
Saturate= Gain/Mix/Output/H-Cut ·Red Haze= Fuzz/VOL · família DLY = Mix/Time/Fdbk · RVB começa por Mix ·Vibe= Depth/Rate/Sync. Zero rótulopNna documentação: os slots internos do firmware (que o editor não expõe) não são setados nem rotulados — tabela completa e a exceção doT-Echoemreference/15-firmware2-effects.md. - Patches por música, nunca compartilhados; camadas separadas quando o timbre muda de verdade — e momentos de toggle documentados: a GP-100 liga/desliga módulos em tempo real (painel ou modo STOMP), então um patch de base com DLY sobressalente vira solo ao ligar o eco, sem trocar de patch.
- NR obrigatório com ganho ≥ 55; um efeito espacial dominante por patch.
- Perfis por captador da Strat single coil (bridge/neck/posições 2–4).
.prstsai sempre no formato single com CAB de fábrica; IRs de terceiros são documentadas, nunca embutidas.
- ✅
.prstcomparados estruturalmente com o export single que importou com sucesso no aparelho (7 checks), formato firmware 2.1 — o formato está registrado no gerador. - ✅ 103 patches em biblioteca (Abbey Road, Apostrophe ('), Are You Experienced, Cheap Thrills, Pulse, From the Muddy Banks of the Wishkah e Supernatural — 61 músicas), XMLs validados, 0 HTML cru e slots U01–U103 mapeados; pipeline idempotente e reprodutível (regenerar não muda nada — o timestamp
preset_info/@timeé determinístico). - ✅ Seções obrigatórias presentes nos 97 docs (guitarra → ajustes finos → IR → modos de atuação → objetivo → dossiê → parâmetros → carga → evite) e 67 momentos de toggle validados contra o spec.
- ✅ Zero rótulo
pNnos 97 docs: os 40patch.mddo Pulse e as 28 menções em textos de ajustes/evite passaram a usar os nomes do manual V2.0 (rótulos acima); os slots internos do firmware (que o editor não expõe) não são setados nem rotulados — ficam no default de fábrica. - ✅ Dossiê de rig de Cheap Thrills (Big Brother & The Holding Company): duas guitarras em Gibson SG (Gurley e Andrew), Fender Twin Reverb, Maestro FZ-1 no Gurley — e o achado que fecha o timbre da faixa: Piece of My Heart sem fuzz (Gurley limpo, Sam sujo no Twin estourado); o mapa da Janis voltou a ter seção de rig, com fontes.
- ✅ CI + suíte de testes (
.github/workflows/ci.yml): a suíte pytest (contagem derivada no badge) valida defs, formato dos 103.prst, docs, momentos, nomes de parâmetro, drift dos índices, a ordem estável entre OS e o determinismo dos derivados — o guarda de sincronia (TestH) roda o pipeline completo numa cópia temporária e compara com o que o defs produz (em clone limpo, a biblioteca inteira; só o timestamppreset_info/@timeé ignorado); nenhum job escreve no repositório (auditoria--guarda-repo), e o portãoci-gateconcentra o veredito final. - ✅ Pipeline reprodutível entre sistemas: a ordem dos artefatos derivados não depende do SO — a comparação de
Pathusanormcase(minúsculas no Windows, identidade no Linux) e fazia o manifesto de IRs divergir entre a máquina e o CI; a ordenação agora é por string (ordem de code point), com teste travando a regressão (TestI_OrdemEstavel). - ✅ Typecheck
tsc --noEmitlimpo nos 21 agentes. - ✅ Manual V1.8 transcrito página a página para
reference/+ catálogo empírico extraído do export de fábrica (data/factory-catalog.json, 99 presets · 117 modelos). - ✅ Banco local de IRs indexado (291 WAVs — Origin Effects IR-Cab Library V3).
- ✅ Limpeza: export de fábrica, arquivos de exemplo e páginas pré-renderizadas do manual removidos — todo o conhecimento drenado para
reference/e o pacote; manual renderizável sob demanda.
Preciso instalar ou baixar alguma coisa para usar os patches?
Não. O .prst sai com CAB de fábrica e funciona ao importar. IR de terceiro é
uma camada opcional de refinamento — a seção 📡 do patch.md explica qual usar.
O patch não importou na pedaleira. Por onde começo?
Confira três coisas, nesta ordem: (1) o firmware é 2.1 (o formato é single fw 2.1);
(2) o arquivo veio de patches/** sem edição manual — os .prst são gerados e validados
pelo pipeline; (3) você está importando em SYSTEM → USB → Import, com o GP-100 Edits
atualizado. Se ainda falhar, abra uma issue com o template de bug (bug_report.yml)
informando o nome do patch e a versão de firmware.
O som não ficou igual ao disco. O patch está errado? Provavelmente não — e a diferença costuma ter causa identificável. Compare o captador (cada patch documenta o perfil: bridge, neck, posições 2–4), o volume e o tone da guitarra, a técnica (palhetada, posição da mão) e o monitor: fone e monitor de estúdio mostram um som bem mais aberto que um amp real acima do volume de ensaio. Só depois disso a diferença é do patch.
Onde estão os arquivos .prst?
Em patches/<Banda>/<Álbum>/<Música>/<PATCH>/. Para achar rápido pela música, use o
mapa por álbum (MAPA-DO-ALBUM.md) ou a biblioteca completa no site, que
lista os 103 patches com nome, captador, IR recomendada e slot.
Os patches servem para outra pedaleira?
Não. O formato é o XML single da GP-100, com os modelos e ranges do firmware 2.0/2.1.
A documentação (patch.md) é útil como receita de timbre em qualquer plataforma, mas o
.prst só importa na GP-100.
Preciso do banco de IRs que você indexou?
Não é obrigatório — e ele não está no repositório, por licença. Os catálogos
(data/ir-library.json e reference/16-ir-library.md) ficam versionados e continuam
dizendo qual arquivo exato usar. O fluxo de download está em
impulse_responses/README.md.
Por que os patches são por música e não compartilhados? Porque o ponto do projeto é o timbre daquela faixa: divisões de amplificador, pedais e captadores mudam de música para música, e até entre camadas da mesma música. Um patch "genérico de Pink Floyd" não tem a informação que faz a diferença.
O que é "momento de toggle"?
É a instrução de ligar/desligar um módulo em tempo real (painel ou modo STOMP)
durante a música — por exemplo, um patch de base com DLY sobressalente vira solo ao
ligar o eco, sem trocar de patch. Os momentos vivem em doc.momentos no
data/defs/ e são validados pela camada e2e da suíte (momentos).
O projeto tem dependências?
Não. Os scripts usam só a biblioteca padrão do Python; o TypeScript dos agentes é baixado
sob demanda pelo npx no typecheck. Isso é uma decisão consciente — e é também por isso
que as Actions são praticamente o único item que o Dependabot vigia.
Posso usar os patches em show/gravação comercial?
O código e a documentação são MIT (ver LICENSE). Nomes de artista, título de
música, marca e modelo são citados de forma nominativa e descritiva, e nada aqui é
afiliado ou endossado pelos fabricantes. Se você redistribuir os packs de IR, a licença
deles é que manda.
Por onde começar — guias por público (cada um com caminho de leitura e o próximo passo):
| Guia | Leia se você quer… |
|---|---|
docs/guia-usuario.md |
usar a biblioteca: instalar, gravar IRs, subir patch na pedaleira, resolver tone-mismatch |
docs/guia-contribuidor.md |
contribuir: setup em máquina limpa, PR aceitável, como um patch é validado |
docs/guia-mantenedor.md |
gerir: release (ADR-0010), triagem, review, board |
docs/faq.md |
a resposta das dúvidas que o histórico do repo já respondeu |
docs/exemplos.md |
ver o fluxo acontecer, comando a comando |
| Documento | Conteúdo |
|---|---|
ARCHITECTURE.md |
Arquitetura em 1 página: camadas, estrutura, portões de qualidade |
DEVELOPMENT.md |
Setup com uv, comandos do dia a dia e as regras que o CI cobra |
docs/decisions/ |
ADRs 0001–0010: pacote/uv, camadas, CLI, UI, qualidade, CI, docs, agentes, governança, release |
knowledge.md |
Regras de ouro e convenções que os agentes seguem |
CONTRIBUTING.md |
Ambiente, pipeline obrigatório, Conventional Commits e o fluxo develop → main |
SECURITY.md |
Escopo de segurança, prazos de resposta e canal privado |
CODE_OF_CONDUCT.md |
Contributor Covenant 2.1 |
CHANGELOG.md |
Histórico de versões (gerado dos commits) |
LICENSE |
MIT (texto canônico, para detecção automática) |
NOTICE.md |
Escopo da licença: o que não é coberto (marcas, títulos, manual, packs de IR) |
.agents/README.md |
Arquitetura dos 21 agentes e como criar um novo |
ARCHITECTURE.md |
Camadas do pacote e fluxo de dados do pipeline |
reference/README.md |
Índice da base de conhecimento + ordem de precedência das fontes |
impulse_responses/README.md |
Banco local de IRs: política, formato aceito e fluxo de indexação |
reference/00-signal-chain.md |
Visão da cadeia de sinal da GP-100 |
reference/01–10 |
Módulos bloco a bloco: PRE, DST, AMP, CAB/IR, EQ, MOD, NR, DLY, RVB, globais |
reference/11-ir-guide.md |
Guia de Impulse Response na GP-100 |
reference/12-workflow.md |
Workflow de criação de patch |
reference/13-preset-list.md |
Os 99 presets de fábrica |
reference/14-glossario.md |
Glossário de termos |
reference/15-firmware2-effects.md |
Catálogo real fw 2.0/2.1 (fonte da precedência) |
reference/16-ir-library.md |
Catálogo do banco local de IRs (gerado) |
reference/17-free-ir-packs.md |
Packs de IR gratuitos para download |
reference/19-roadmap-v2.md |
Roadmap da v2.0: schema v2 do defs, CLI unificada, site estático e meta de 100+ patches |
prompts/ |
Fluxos prontos de pedido ao agente |
patches/README.md |
Biblioteca completa + nomenclatura + mapas (derivado — no site) |
Contribuições são bem-vindas — conteúdo (patch novo, música, álbum) e código
(scripts, agentes, docs). O ponto de partida é o CONTRIBUTING.md,
e ele tem uma regra que muda tudo: patches/** é saída de script.
# Antes de abrir um PR, rode o que o CI roda:
uv run pytest
# Se você mexeu em dados, o pipeline (a suíte cuida do guarda de determinismo):
uv run gp100 buildFluxo: desenvolve na develop (push direto, CI a cada push, Conventional Commit
que alimenta o CHANGELOG.md) e release aprovada alimenta a
main via PR develop → main (merge commit) com o portão
🚦 Veredito do CI verde. Nada de editar à mão arquivo gerado — a
.github/PULL_REQUEST_TEMPLATE.md traz o
checklist completo das invariantes do projeto.
Participando, você aceita o CODE_OF_CONDUCT.md.
Não abra issue pública para vulnerabilidade. Use o
Security Advisory privado
— escopo, prazos e controles ativos estão no SECURITY.md.
O que o repositório roda sozinho, a cada push, PR e semanalmente:
| Workflow | O que garante |
|---|---|
ci.yml |
Dados em sincronia + suíte completa + typecheck dos agentes (contagem no badge derivado) (Python 3.14 fixado e travado no job) |
security.yml |
CodeQL (Python e TypeScript), revisão de dependências em PR e auditoria de permissões dos próprios workflows |
release.yml |
Release automática no merge para a main: tag SemVer a partir do VERSION e ZIPs publicados |
pages.yml |
Um deploy, dois sites: biblioteca na raiz + docs de engenharia em /docs/ — derivados do checkout fresco a cada push na develop |
project-automation.yml |
Board (Project #7): entra/move cards, guardian de PR e relatório de milestone — escrita via PAT, nunca pelo GITHUB_TOKEN |
O antigo
docs-pages.ymlfoi unificado nopages.yml(auditoria pré-2.0.1): odeploy-pages@v4não tem input de subcaminho — dois deploys no mesmo Pages eram last-writer-wins, e o último derrubava o site do outro.
Além disso: secret scanning com push protection, alertas e correções
automáticas do Dependabot, e branch protection na main (aplicável com
setup_repo.sh).
MIT — código, scripts, agentes, documentação e os .prst gerados por
este projeto. Não são cobertos: marcas e modelos de equipamento, nomes de
artistas e títulos de músicas (citados de forma nominativa e descritiva), o manual
da Valeton e os packs de IR de terceiros — que por isso não são versionados
aqui. Nada neste repositório é afiliado ou endossado pelos fabricantes citados.
O detalhamento de cada caso está em NOTICE.md.
🎸 Biblioteca de patches · 🤖 Agentes · 📚 Reference · 💜 Criar conta no Freebuff