uttrflow / uttrflow/uttrflow-swift

The Style page and the tidying explanation say Light keeps filler words; the rules engine removes them

Open Beginner friendly
#674 0 comments 0 reactions 0 assignees View on GitHub
area:dictation bug good first issue P2
Dominant language
Swift
Stars
4
Forks
17
Avg merge
3h 32m
Merged PRs (30d)
277

Description

## What happens

The Style page's worked example and the tidying row's explanation both say the Light level keeps filler words. It does not.

- Example, `StylePagePresenter.tidied(at:)` (`Sources/UttrflowUX/StylePagePresentation.swift:158-163`): You said "um so i think we should uh ship it on friday"; Light gives "Um, so I think we should, uh, ship it on Friday."; Standard gives "I think we should ship it on Friday."
- Row explanation, shown on the Style page and in Settings → Languages (`Sources/UttrflowUX/SettingsChoices.swift:25-28`): "Light fixes punctuation, capitalisation and spacing. Standard also removes filler words and repairs grammar."
- When Standard is unavailable (`Sources/UttrflowUX/SettingsEditor.swift:207`): "Full tidying is not available on this Mac yet, so Uttrflow will punctuate only."

Light means the rules engine alone (`SettingsTidyingLevel.preference`, `SettingsChoices.swift:40-44`). The rules engine runs every clean-up step the user has left on, and `FillersPass` is the first of them (`Sources/UttrflowAI/Passes/CleaningPipeline+Standard.swift:27-33`); all steps are on by default (`CleaningSteps.default`). Measured with the rules engine on the page's own sentence:

```
$ uttrflow-dev clean "um so i think we should uh ship it on friday" --engine rules
raw um so i think we should uh ship it on friday
as plain
clean So I think we should ship it on friday.
by rules in 0.00s
```

So on Light the fillers go, "so" stays, and "friday" is not capitalised. None of the three sentences above describes that.

## Why it matters

The page exists to help someone choose a level. Someone who wants their "um"s kept picks Light because of the example and still loses them, and someone who wants them removed may believe they need Standard, which needs an on-device model some Macs do not have. The "punctuate only" sentence tells a user on such a Mac they get far less than they do.

## How to reproduce

Run the command above from a build of `uttrflow-dev`, and compare with the Style page.

## Acceptance criteria

- The Light line of the example is what the rules engine actually produces for the example sentence with default steps (check with `uttrflow-dev clean … --engine rules` and paste the output in the pull request).
- `SettingsTidyingLevel.rowExplanation` describes the difference truthfully, for example that both levels remove filler words and stammers and that Standard also rewrites grammar and word choice where an on-device model is available. Keep it to two short sentences.
- The unavailable-Standard sentence no longer says "punctuate only".
- Optional but useful: a test that runs the example sentence through `CleaningPipeline.standard` and compares it with the Light line, so the two cannot drift again.

## Where to start

- `Sources/UttrflowUX/StylePagePresentation.swift:158-163`, `Sources/UttrflowUX/SettingsChoices.swift:25-28`, `Sources/UttrflowUX/SettingsEditor.swift:207`.
- Tests to update: `Tests/UttrflowUXTests/StylePagePresentationTests.swift` (line 65 checks "punctuate only") and any expectation on the explanation in `Tests/UttrflowUXTests/SettingsPresenterTests.swift`.
- Run `make verify` (export `DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer` first) and read CONTRIBUTING.md.

**Size:** S, about 1–2 hours.

Contributor guide

Open the contributing guide

Research direction

Start with the cited example and explanations in Sources/UttrflowUX/StylePagePresentation.swift, SettingsChoices.swift, and SettingsEditor.swift. Update the Light wording and unavailable-Standard wording to match the rules engine, then revise the expectations in the cited UX tests. Run the example through uttrflow-dev clean --engine rules and finish with make verify.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
desktop
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
88/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.