| name | diagnostico |
| description | NAM-rs user troubleshooting diagnostic skill. Paste the support request and the AI performs full triage. |
Skill: NAM-rs Error Diagnostic
When to use this skill
When the end user post technical support request.
Instructions
Phase 1: Extraction and Triage (Skill: debugger)
Trigger the debugger skill and execute the following steps:
1.1. Parse the Support Block
Be a empathic help desk analyst and try to understand holistically the end user request.
Extract from the text pasted by the user:
- Error code (
Exxxx) and mnemonic (e.g., NAMB_CRC32_MISMATCH)
- Contextual parameters (file, size, rate, etc.)
- System information (version, arch, avx2/fma, os, kernel)
- Timestamp of the occurrence
If the user pasted only the friendly message (without the technical block), ask them to paste the complete block from the shell/terminal — including the "Support information" section that NAM-rs generates. The user can obtain it via nam-rs --diagnose (standalone), the CLAP GUI status bar "Copy Diagnostic" button, or an auto-captured crash report (~/.cache/nam-rs/crash-*.txt) — see README.md for the end-user instructions.
A nominal bundle looks like this (paths/model names are redacted by default — see --diagnose-full for the unredacted variant):
──── NAM-rs Diagnostic ────────────────────────────────────────────────
nam-rs v1.6.0
──── Runtime State ─────────────────────────────────────────────
model=NEVE1073-Standard.nam
sample_rate=48000
arch=x86_64
os=linux kernel=7.0.0-22-generic
pipewire=1.6.2
features=none (baseline x86-64-v3 only)
timestamp=2026-06-06T19:24:27Z
────────────────────────────────────────────────
1.2. Source Code Location
-
Locate the corresponding NamErrorCode in src/common/diagnostics/error_codes.rs.
-
Use the range table to direct the investigation:
| Range | Where to investigate |
|---|
E1xxx | src/loader/, src/loader/mod.rs (load_and_build_model) |
E2xxx | src/standalone/pw_host/, src/dsp/resampler.rs |
E3xxx | src/common/spsc.rs, src/main.rs (cli_loop) |
E4xxx | src/main.rs (cli_loop), src/standalone/cli.rs (parse_args) |
E5xxx | src/main.rs (main) |
-
Read the module and function in the source code where the message is emitted to understand the context of the situation.
1.3. Root Cause Diagnosis
Example questions that may arise from the extracted data:
- E1xxx (Model): Does the file exist? Is the format (JSON/binary) intact? Does the CRC match? Is the topology (WaveNet/LSTM) supported? Are the weights sufficient?
- E2xxx (Audio): Is PipeWire running? Is the sample rate supported? Did the resampler succeed in creating the resampler? Is there SCHED_FIFO permission?
- E3xxx (SPSC): Is the channel full because the DSP is stuck? Was the previous model consumed?
- E4xxx (CLI): Did the user type a valid command? Is the gain value a valid number?
- E5xxx (System): Does the CPU have AVX2+FMA? Is memory sufficient?
Phase 2: Solution Proposal to User (Skill: debugger)
With the diagnostic concluded, present to the user:
- What happened — explanation in accessible language of the root cause.
- What to do — concrete steps the user can take (e.g., re-download model, check permissions, update kernel, etc.).
- If applicable: report whether it is a NAM-rs bug (proceeds to Phase 3) or a user environment/configuration issue (ends here with guidance).
Phase 3: Fix Task Assessment (Skill: planejador-arquiteto)
If Phase 2 concludes it is a NAM-rs bug or deficiency:
- Trigger the
planejador-arquiteto skill.
- Assess the severity and urgency of the problem.
- Propose to the developer whether a technical fix task needs to be created, detailing:
- Affected module(s) and relevant code lines
- Impact (crash? degradation? inconvenience?)
- Estimated complexity (trivial / moderate / complex)
- Proposed fix — outline of the technical correction
- If the user approves, create the task using the
tarefa skill or proceed directly to the fix using the implementador skill.