A notebook should leave you space to think. I built Pencil Page’s timing policy to wait for enough new writing, then choose a quieter moment for feedback.
Recorded Swift decisions. Illustrative writing. Synthetic drawing changes, selected check times and fictional response readiness. No model, network, handwriting recognition or app timer runs here.
Timing lab / Pencil Page
Leave room for the thought.
The app asks two different questions: may I review the writing? Then, if feedback is ready, may I show a note?
Four more timing cases
A brief thought
A short passage and a pause. Is there enough new work to justify a review?
FIELD NOTES / 0112.5 s
The margin waitsNo note presentation check yet.
Illustration only. Pen marks do not represent recognized text or measured handwriting.
Review check1 / 3
Wait before reviewing
The pen is still active. Give the person room to keep writing.
Active new writing
13 s
New strokes
26
Since last pen event
0.5 s
Last review checkWait
Last note checkNot checked
Next check: 16 s into the case.
Selected evaluations / not a live clock
30 s elapsed
A pause alone is not a reason to interrupt.
Inspect this case’s exact events
Every row below is output from the unmodified Swift source. “Begin”, “ready”, “failed” and “shown” are supplied fixture transitions. The controls above select recorded decisions; they do not calculate the policy.
A brief thought does not need an interruption
Time
Event
Result
Source reason
12 s
write-range
write-range
Synthetic drawing-change series
12.5 s
decide
wait
writing
16 s
decide
wait
short pause
30 s
decide
wait
pause, but only 13 s / 26 strokes of new work
What this replay proves Source & limits
The original timing policy ran.
The unmodified Swift scheduler at Pencil Page revision 07474bf was compiled on macOS. Nine fictional scenarios produced 34 review and presentation decisions. All matched the expected sequences. Eleven original extracted scheduler and ledger tests passed.
Drawing changes, timestamps, request success or failure, visible-note counts and response readiness are synthetic. Checks occur only at the listed times.
This does not exercise PencilKit, recognition, model transport, the app coordinator’s timer or native note layout. A permitted review is not proof that a model answered. A permitted note is not proof that the app displayed it.
Read all nine recorded cases Also available without JavaScript
A brief thought
A short passage and a pause. Is there enough new work to justify a review? A pause alone is not a reason to interrupt.
12.5 s · Wait before reviewingwriting
16 s · Wait before reviewingshort pause
30 s · Wait before reviewingpause, but only 13 s / 26 strokes of new work
A substantial pause
A longer passage, then the pen stops. Step through the pause and the separate permission to show a note. Enough new writing earns a review. Showing feedback has its own check.
60 s · Wait before reviewingwriting
64 s · Wait before reviewingshort pause
67 s · Review permittedpause after 61 s / 122 strokes of new work
75 s · Note permittedThe timing policy permits a note
A long stretch
The writing has accumulated for 150 active seconds. A small settling pause gives the review a quieter opening. New strokes add to the writing time. A small pause can release the waiting review.
149 s · Wait before reviewingdeadline reached; waiting for pen to settle
150.5 s · Review permitteddeadline: 150 s of unreviewed writing
Feedback while writing
A review was permitted. Its fictional response becomes ready just as the person starts writing again. Ready feedback can wait for the person.
67 s · Review permittedpause after 61 s / 122 strokes of new work
75 s · Hold the noteuser writing
77.5 s · Note permittedThe timing policy permits a note
A failed review
A review fails. The writing stays available for the next check, and repeated failures leave more time between attempts. Keep the work. Leave space before trying again.
70 s · Review permittedpause after 61 s / 122 strokes of new work
90 s · Wait before reviewingbacking off after failure (30 s)
110 s · Review permittedpause after 61 s / 122 strokes of new work
150 s · Wait before reviewingbacking off after failure (60 s)
175 s · Review permittedpause after 61 s / 122 strokes of new work
An untouched page
Check the same unchanged page five times, up to an hour later. Elapsed time does not turn an unchanged page into new work.
0 s · No new workunchanged
10 s · No new workunchanged
60 s · No new workunchanged
300 s · No new workunchanged
3600 s · No new workunchanged
Writing without a pause
The person keeps writing past the usual settling window. Accumulated work eventually reaches the hard deadline. Continuous writing cannot postpone the review indefinitely.
149 s · Wait before reviewingdeadline reached; waiting for pen to settle
208 s · Wait before reviewingdeadline reached; waiting for pen to settle
209.1 s · Review permittedhard deadline: 210 s of writing without a pause
Room in the margin
Compare a recent note, a longer wait, and one versus two notes already visible. Unsolicited notes respect time and available space.
11 s · Hold the noteuser writing
14 s · Note permittedThe timing policy permits a note
50 s · Hold the notecooldown 39 s
90 s · Note permittedThe timing policy permits a note
90 s · Hold the note2 unsolicited notes already visible
Writing during a request
New work accumulates while a request is in flight. Afterward it still observes the spacing between calls. New work stays available for the next check.
70 s · Review permittedpause after 61 s / 122 strokes of new work
90 s · Wait before reviewingrequest in flight; new work coalesces into the next check
99 s · Wait before reviewingcall spacing
100 s · Review permittedpause after 24 s / 200 strokes of new work
A separate native demonstration
What a note looks like.
This real iPad Simulator recording shows a manual review, an actual Opus 5.5 response, a follow-up and a folded note thread.
The ink is synthetic PencilKit input. Manual Review starts the request. This clip demonstrates native feedback; it does not run the automatic timing cases above end to end.
Actual native app · iPad Simulator · synthetic Danish exercise ink · real Opus feedbackManual Review asks for feedback on a fictional Danish exercise. A margin card appears, a question continues its thread, and the card folds and unfolds. Waiting is cut from the recording. This is separate from the pure scheduling replay.What happens in this recording
Actual native app · iPad Simulator · synthetic Danish exercise ink · real Opus feedback
Manual Review asks for feedback on a fictional Danish exercise. A margin card appears, a question continues its thread, and the card folds and unfolds. Waiting is cut from the recording. This is separate from the pure scheduling replay.
Two timing decisions
Read the work. Respect the person.
Accumulated writing decides when there is enough to review. Presentation makes a separate decision about whether to show an unsolicited note. A response can be ready while its note still waits: the person may be writing, a recent note may need time, or the margin may already be full.
After a failed request, the policy keeps the writing available for another review and delays the next attempt. The goal is a useful companion that keeps track without turning every pause into an interruption.