uttrflow / uttrflow/uttrflow-swift
Spoken "quote … unquote" and "open/close parenthesis" are not recognised as punctuation
- Dominant language
- Swift
- Stars
- 4
- Forks
- 17
- Avg merge
- 3h 32m
- Merged PRs (30d)
- 277
Description
## What happens
`SpokenPunctuationPass.pairs` holds one pair, `open quote … close quote` (`Sources/UttrflowAI/Passes/SpokenPunctuationPass.swift:20-22`). The other common spoken forms are left as words:
`uttrflow-dev bench` on main, all three voices, shipping and rules identical:
| Said | Inserted |
|---|---|
| "She said quote ready unquote and left full stop" | `She said quote ready unquote and left.` |
| "Add the flag open parenthesis optional close parenthesis to the list full stop" | `Add the flag open parenthesis optional close parenthesis to the list full stop.` (the recogniser wrote "parentheses" for the Indian English voice) |
In the second row "full stop" also stays a word; that is the determiner look-back in #435.
## Why it matters
"Quote, unquote" is the usual way to dictate a quotation in English, and brackets are routine in notes and technical writing. Both land as words that must be deleted by hand.
## Acceptance criteria
- `quote … unquote` / `quote … end quote` map to a quotation, and `open/close parenthesis` (and "parentheses", "bracket", "open bracket/close bracket") to `(` `)`, with the same mention guard the existing pair uses ("the word quote", "a parenthesis is").
- `Docs/cleanup.md`'s spoken punctuation row lists them.
- Unit tests in `Tests/UttrflowAITests/Passes/` and corpus cases for use and mention.
`needs-info`: whether "bracket" should mean `(` or `[` for British and Indian English users.
Contributor guide
Research direction
Start in Sources/UttrflowAI/Passes/SpokenPunctuationPass.swift:20-22 and compare the existing spoken quote pair and mention guard. Add the requested quote and parenthesis/bracket forms, then update Docs/cleanup.md and add use/mention cases in Tests/UttrflowAITests/Passes/ plus the corpus. Resolve whether “bracket” maps to parentheses or square brackets before considering the work done.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- accessibility, desktop, documentation, testing
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 64/100