Warm-up
The warm-up makes an account look used before it sells: Listaro's five Facebook activities run as recorded flows (log facebook warmup stages), and the Reels activity (log facebook warmup reel) watches reels the way a real person with the account's persona would, each step checked against what it must achieve. Rules 36, 49 and 50, with the command forms of rules 60 and 63 and the code layout of rule 64.
Stages
REQ-WARMUP-01: The stages are Listaro's five activities, each a flow of its own
The stages are feedBrowse, marketplaceBrowse, createAccessCheck, sellingVisit and messagesVisit, in that order, each scripted from Listaro's account-warmup.ts and each turned into its own flow (warmupFeedBrowse and so on).
Checked by: code (anchors)
REQ-WARMUP-02: Recording turns each activity into a flow, never from a broken recording
log facebook warmup stages record runs each activity's steps in one open browser, and saves each activity whose steps all worked as a flow from the recording. An activity whose step failed, or that met a checkpoint, is not saved as a flow.
Checked by: code and SubQ
REQ-WARMUP-03: Running needs every flow recorded, and runs them in turn in one browser
log facebook warmup stages run is refused with flowNotRecorded while any picked activity's flow is missing. Otherwise the warm-up machine runs each activity's flow in turn in the one open browser, with a gap between activities (10 s by default, --gapSeconds).
Checked by: code and SubQ
REQ-WARMUP-04: A checkpoint, login wall or restriction stops the stages
When an activity ends on a checkpoint, a login wall or a policy restriction, the warm-up machine stops in its blocked state and the issue is recorded on the account. A noted issue (marketplaceMayNotPost) is written down and the warm-up carries on.
Checked by: code and SubQ
REQ-WARMUP-05: Each stage event goes to the stage log
Every start, activity, step, gap, note, stop and end of a stages run is written as one line to the stage log (~/.logCli/runs/warmup/stageLog.jsonl), read with log facebook warmup stages log.
Checked by: code and SubQ
Reels steps
REQ-WARMUP-06: Reels start with the sound on
The Reels activity opens Reels and then presses Unmute before the first watch, since reels start muted.
Checked by: code and SubQ
REQ-WARMUP-07: Every Reels step says what it must achieve
Each Reels step that acts carries what it must achieve: a swipe presses Next card and must change the URL to another /reel/ page, opening the comments must show the Comments heading and closing them must hide it, and a step is checked against that when it returns.
Checked by: code and SubQ
REQ-WARMUP-08: The comments are scrolled over the panel
Reading the comments scrolls with the wheel over the Comments panel (scrollIn on the Comments heading), not over the video.
Checked by: code and SubQ
REQ-WARMUP-09: Each run writes the outline of the steps that did not work
A Reels or other activity record or run writes warmup_<platform>_<activity>.json in the browser's run folder, with every step's outcome and the ones that did not do what they should.
Checked by: code and SubQ
REQ-WARMUP-10: A drawn session skips most reels after a glance
A drawn Reels session (reel plan, reel run) draws its length from a range (8 to 20 reels by default) and skips a reel after a 1 to 3 s glance with a chance of 0.6 by default (--skip), often a few in a row; only the others are watched, and on those the comments, the profile and a like may follow.
Checked by: code and SubQ
REQ-WARMUP-11: Likes need --likes, clicks need --live
A step that likes is skipped unless the run has --likes, and a step that clicks on the page is skipped unless it has --live, in the drawn session, the persona session and the stages alike. The persona's allowed actions allow a like only with both --live and --likes.
Checked by: code and SubQ
Persona
REQ-WARMUP-12: One persona, one real viewer and one pack per account
--persona keeps one persona per account, drawn once from the datasets and saved, one real KuaiRand-1K viewer matched to the persona's scroll speed and saved beside it, and one persona pack built from both. They are reused on every later run unless --newPersona is given.
Checked by: code and SubQ
REQ-WARMUP-13: SubQ reads each reel from its frame
When a reel lands, SubQ is sent its frame (the screenshot), its caption and creator, the persona and its pack, and asked what the reel is, whether it is this persona's kind of content, and the one action they would pick among those the run allows.
Checked by: code and SubQ
REQ-WARMUP-14: The watch is the viewer's real play scaled by the interest effect
The watch time of a reel is the real viewer's next play, moved within the viewer's own plays by whether the reel is theirs, scaled by the interest effect measured on KuaiRand-Pure's random log, and capped at the pack's attention span.
Checked by: code and SubQ
REQ-WARMUP-15: The watch counts from when the reel landed
The watch time counts from when the reel landed, so the time SubQ takes to read it is part of the watch: only what is left of the watch is waited.
Checked by: code and SubQ
REQ-WARMUP-16: At most one action per reel, by its score
Each reel gets at most one action (like, open the comments, open the profile), drawn by its score: its chance in the pack times the interest effect, times the segment's weight, times how well the watch fits the viewer's attention. An action the run does not allow scores 0, and a like scores 0 within 3 reels of the last like.
Checked by: code and SubQ
REQ-WARMUP-17: A close call is settled by SubQ's pick
When the two best actions score within 20 percent of the best and the drawn action is one of them, SubQ's pick decides between them when it named one of the two.
Checked by: code and SubQ
REQ-WARMUP-18: rea reads each step without holding up the next
Each Reels persona step is sent with reaLater, so rea reads its recording without the next step waiting for it.
Checked by: code and SubQ