docs: scaffold operator manual as a Quarto book#52
Conversation
Set up a Quarto book under docs/manual/ that renders the operator manual to PDF (milestone 1), with HTML configured for a future in-app Help button from the same Markdown sources. - _quarto.yml: book config, PDF + HTML formats, parts/appendix structure - index + 8 chapters: overview, installation, hardware/LSL, Phase 1, Phase 2, configuration reference, troubleshooting, debug appendix - README with one-time Quarto/TinyTeX setup and build commands - gitignore _book/ and .quarto/ build output - link the manual from docs/README.md Quarto is a standalone binary (not pip), so nothing is added to requirements*.txt. https://claude.ai/code/session_01PWymtXNS69ww3hD8wkbeMM
| @@ -0,0 +1,82 @@ | |||
| # Installation {#sec-installation} | |||
There was a problem hiding this comment.
Installation explanation isnt correct. Should describe the expected exe planned
|
|
||
| | Property | Value | | ||
| |---|---| | ||
| | Stream name | `NeuroneStream` | |
There was a problem hiding this comment.
I believe the app can accept different streams names
| ::: callout-warning | ||
| **Sampling rate must be confirmed in the lab.** It is configured in NeurOne as | ||
| 1000 Hz, but a session has been observed reporting 5000 Hz. The sampling rate | ||
| materially affects preprocessing, so verify it before a real session. | ||
| ::: |
There was a problem hiding this comment.
Nothing to confirm 1000hz stream is a hard constraint
| `LSLReceiver` is a pure consumer — it resolves and pulls from a stream but | ||
| never publishes one. Publishing onto the network is the job of a | ||
| **`StreamSource`**: |
There was a problem hiding this comment.
Overly specific implementation details.
| ## Units | ||
|
|
||
| ::: callout-note | ||
| The proxy applies NeurOne's Tesla AC scaling before publishing, so LSL values | ||
| are already in **microvolts**. Whether the online preprocessing needs to | ||
| rescale these to SI volts has **not yet been verified in the lab**. Replay via | ||
| recorded BrainVision files delivers data already in SI volts, so no scaling is | ||
| applied for replay-based validation. | ||
| ::: |
There was a problem hiding this comment.
This is unecessary - no unit issue. This is irrlevant to users
|
|
||
| - Click **Run Evaluation**. The app scores candidate decoding timepoints and | ||
| plots an AUC curve. | ||
| - Pick a timepoint on the chart. |
There was a problem hiding this comment.
We pick a timepoint per decoder
| ::: callout-note | ||
| On real hardware the app starts the LSL proxy as part of discovery and reuses | ||
| it for the run that follows — it is not relaunched between discovery and start. | ||
| ::: |
There was a problem hiding this comment.
Again unnecessary callout. This part is focused on production, and we can assume this operates on real hardware
| @@ -0,0 +1,77 @@ | |||
| # Configuration reference {#sec-configuration} | |||
There was a problem hiding this comment.
We need to specify supported options for each field.
| A minimal two-decoder demo config ships as `experiment_config.yaml`; the full | ||
| configuration that trained the bundled artifact is in | ||
| `experiment_config.full.yaml`. |
There was a problem hiding this comment.
These aren't shipped with the app. Just examples used and shoudlnt be mentioned int he manual
| ::: callout-note | ||
| The legacy `bandpass` / `resample` / `reject_criteria` sections no longer | ||
| exist. Both phases consume the same positional `online_state` produced from | ||
| this block — no channel names are carried through. |
There was a problem hiding this comment.
No need to mention legacy, this is a first version of the app
Set up a Quarto book under docs/manual/ that renders the operator
manual to PDF (milestone 1), with HTML configured for a future in-app
Help button from the same Markdown sources.
Phase 2, configuration reference, troubleshooting, debug appendix
Quarto is a standalone binary (not pip), so nothing is added to
requirements*.txt.
https://claude.ai/code/session_01PWymtXNS69ww3hD8wkbeMM