rsvp-reading
RSVP Reading Skill
Rapid Serial Visual Presentation (RSVP) is a speed reading method popularized by tools like Spritz. Words are flashed one at a time in a fixed position, while one letter per word is highlighted (typically in red) as an eye anchor — the Optimal Recognition Point (ORP). This eliminates horizontal eye movement, the primary bottleneck of traditional reading, enabling speeds of 200-600+ WPM with solid comprehension.
This skill converts any document into an RSVP token stream: each word paired with its ORP index and a calibrated display delay based on your target WPM.
Full architecture:
references/architecture.mdAcceptance criteria:references/acceptance-criteria.mdFallback tree:references/fallback-tree.mdToken stream schema:references/token-stream-schema.md
Trigger Conditions
Invoke this skill when the user:
- Says "speed read [file]", "RSVP [file]", or "read [file] at [N] WPM"
- Uploads or references a document and asks to "read it fast"
- Requests a token stream or reading session from a document
Discovery Phase
Before executing, collect:
- Input file path - What file should be parsed? (
.txt,.md,.pdf,.docx) - WPM - Reading speed in words-per-minute. Default:
300. Range:100-1000. - Output format - Where to save the token stream JSON? Default:
./rsvp_output.json
If any are missing, ask for them before proceeding.
Execution
Step 1: Parse the Document
python3 ./scripts/parse_document.py \
--input <file_path> \
--output /tmp/rsvp_words.json
Step 2: Generate Token Stream
python3 ./scripts/orp_engine.py \
--input /tmp/rsvp_words.json \
--wpm <wpm> \
--output <output_path>
Step 3: Confirm Output
Report to the user:
- Total word count
- Estimated reading time at the chosen WPM
- Output file path
- Preview of first 5 tokens
Output Format
Each token in the stream follows the schema in references/token-stream-schema.md:
{"w": "Hello", "orp": 1, "delay_ms": 200, "is_sentence_end": false, "is_para_end": false}
Confirmation Gate
Before generating for files > 50,000 words, display:
This document contains ~{word_count} words.
At {wpm} WPM this will take ~{minutes} minutes to read.
Generating token stream (~{token_count} tokens) to {output_path}.
Proceed? [yes/no]
Next Actions
After successful generation, offer:
- Open the reading session with the
rsvp-comprehension-agent - Adjust WPM and regenerate
- Parse a different document