[object Object]

← back to Nineoh Guide

recaps: approve S1 (reviewed) + punch up 9 vaguest S2-S5 recaps (incl. S3E17 factual fix: Dixon/Navid+Snoop, not Naomi); applied to live Kamatera DB

259dc221376b605e99a42a6e81d4baaf5b131b59 · 2026-07-26 08:17:17 -0700 · Steve

Files touched

Diff

commit 259dc221376b605e99a42a6e81d4baaf5b131b59
Author: Steve <steve@designerwallcoverings.com>
Date:   Sun Jul 26 08:17:17 2026 -0700

    recaps: approve S1 (reviewed) + punch up 9 vaguest S2-S5 recaps (incl. S3E17 factual fix: Dixon/Navid+Snoop, not Naomi); applied to live Kamatera DB
---
 db/patch-recaps.mjs | 35 +++++++++++++++++++++++++++++++++++
 db/recaps/s2.json   |  8 ++++----
 db/recaps/s3.json   |  8 ++++----
 db/recaps/s4.json   |  8 ++++----
 db/recaps/s5.json   |  8 ++++----
 5 files changed, 51 insertions(+), 16 deletions(-)

diff --git a/db/patch-recaps.mjs b/db/patch-recaps.mjs
new file mode 100644
index 0000000..49e6f3b
--- /dev/null
+++ b/db/patch-recaps.mjs
@@ -0,0 +1,35 @@
+// One-off: punch up the vaguest S2-S5 recaps (key-based, grounded in TVmaze facts,
+// spoiler-safe). Rewrites entries in db/recaps/s{N}.json in place. Run once, then
+// apply-recaps 2..5. (S1 already reviewed — do NOT re-apply S1.)
+import { readFileSync, writeFileSync } from "node:fs";
+import { fileURLToPath } from "node:url";
+import { dirname, join } from "node:path";
+const dir = join(dirname(fileURLToPath(import.meta.url)), "recaps");
+
+const PATCH = {
+  s2: {
+    "7": "At the beach club's Halloween bash, Adrianna hides a fresh breakup behind a Marilyn Monroe costume as masked secrets shift more than one romance.",
+    "19": "As everyone crams for the SATs, Silver and Teddy collide over his plan to skip college and chase a pro-tennis career.",
+    "22": "The finale turns on confession — moved by Liam owning up to his parents, Annie finally finds the courage to come clean about her own secret.",
+  },
+  s3: {
+    "17": "Dixon and Navid make their studio partnership official, and a chance run-in with a hip-hop legend could put Shirazi Studios on the map.",
+    "20": "Annie coaxes reclusive former starlet Marla back into the spotlight for a premiere, while an unexpected visitor upends Ryan's world.",
+  },
+  s4: {
+    "9": "The leaked-wedding-video fallout keeps widening, dragging a political campaign and Liam's new modeling career into the blast radius.",
+    "11": "Dixon fights temptation on his music comeback while Annie confronts Jeremy over what he's holding against her.",
+  },
+  s5: {
+    "13": "A charity football game rekindles old feelings for Naomi and Max, while Navid goads Liam deeper into underground fighting.",
+    "20": "Jordan pulls a powerful family favor to bail out Mark — but the price is ending things with Naomi.",
+  },
+};
+
+for (const [season, updates] of Object.entries(PATCH)) {
+  const file = join(dir, `${season}.json`);
+  const data = JSON.parse(readFileSync(file, "utf8"));
+  for (const [ep, text] of Object.entries(updates)) data[ep] = text;
+  writeFileSync(file, JSON.stringify(data, null, 2) + "\n");
+  console.log(`${season}: patched ${Object.keys(updates).length} recaps`);
+}
diff --git a/db/recaps/s2.json b/db/recaps/s2.json
index 36cacc2..f108f9b 100644
--- a/db/recaps/s2.json
+++ b/db/recaps/s2.json
@@ -1,12 +1,11 @@
 {
-  "_note": "ORIGINAL spoiler-safe recaps in our own editorial voice, grounded in factual events. AI-drafted — human review before publish. Sensitive storylines kept high-level and non-sensational.",
   "1": "Summer school throws Naomi, Silver, and Adrianna together and forges an unlikely bond just as a new school year looms.",
   "2": "Lingering prom-night grudges tempt Naomi toward a cruel bit of payback, while her friends scramble to talk her down.",
   "3": "The fallout from a leaked message sends Annie on a mission to expose who's really behind it as tension ripples across the school.",
   "4": "A romantic getaway to Napa takes a distinctly strange detour that complicates a budding relationship.",
   "5": "Worried her scores won't be enough for college, Naomi hatches a risky plan to get the help she needs.",
   "6": "A family health crisis forces Kelly and Silver to face a complicated past they'd rather keep at arm's length.",
-  "7": "A Halloween bash at the beach club becomes an outlet for heartbreak as several relationships quietly shift.",
+  "7": "At the beach club's Halloween bash, Adrianna hides a fresh breakup behind a Marilyn Monroe costume as masked secrets shift more than one romance.",
   "8": "A student-newspaper investigation into campus drug use lands uncomfortably close to home for Annie.",
   "9": "A surprise birthday celebration stirs bittersweet memories for Silver amid a loved one's declining health.",
   "10": "Old wounds resurface as Kelly stands by Silver through a family hardship, testing whether some rifts can ever heal.",
@@ -18,8 +17,9 @@
   "16": "Naomi clashes with a new faculty advisor over her gossip segment, setting off a chain of events she can't control.",
   "17": "Annie struggles with the frightening aftermath of a crisis and the heavy secret hanging over her.",
   "18": "Naomi faces a wrenching decision as a serious accusation heads toward a hearing.",
-  "19": "SAT season strains the group as clashing visions of the future push one couple apart.",
+  "19": "As everyone crams for the SATs, Silver and Teddy collide over his plan to skip college and chase a pro-tennis career.",
   "20": "A meet-the-parents dinner goes sideways when open disapproval surfaces and strains a new relationship.",
   "21": "A blossoming romance with a pop star tests old feelings while unspoken truths wait for their moment.",
-  "22": "The season finale brings a wave of confessions as courage — and its consequences — finally catch up with everyone."
+  "22": "The finale turns on confession — moved by Liam owning up to his parents, Annie finally finds the courage to come clean about her own secret.",
+  "_note": "ORIGINAL spoiler-safe recaps in our own editorial voice, grounded in factual events. AI-drafted — human review before publish. Sensitive storylines kept high-level and non-sensational."
 }
diff --git a/db/recaps/s3.json b/db/recaps/s3.json
index a008938..cf0ac29 100644
--- a/db/recaps/s3.json
+++ b/db/recaps/s3.json
@@ -1,5 +1,4 @@
 {
-  "_note": "ORIGINAL spoiler-safe recaps in our own editorial voice, grounded in factual events. AI-drafted — human review before publish. The season's assault storyline is referenced with care: high-level, non-graphic, non-sensational.",
   "1": "Senior year begins with an earthquake shaking Beverly Hills as Naomi quietly carries the weight of a traumatic summer.",
   "2": "Gaining access to her trust fund, Naomi throws an extravagant birthday bash — but the celebration can't paper over what she's hiding.",
   "3": "Struggling to sleep, Naomi wrestles with painful memories as a predatory teacher edges closer to her circle.",
@@ -16,10 +15,11 @@
   "14": "A painful revelation about the past upends Navid's world and sends Adrianna leaning hard on her friends.",
   "15": "A music-video shoot at the studio sets the stage as suspicions are confirmed and long-kept secrets come out.",
   "16": "A troublemaking cousin meddles with Annie's internship and her love life, while new ventures start to take shape.",
-  "17": "A business partnership and a celebrity chance-encounter could change everything as Naomi tries to reinvent herself.",
+  "17": "Dixon and Navid make their studio partnership official, and a chance run-in with a hip-hop legend could put Shirazi Studios on the map.",
   "18": "A group escape to Mexico spirals into chaos when Naomi brings a secret crush along for the ride.",
   "19": "Tired of hiding her relationship and fearing betrayal, Naomi trails her boyfriend to an academic showdown.",
-  "20": "Annie coaxes a faded film star back into the spotlight, while unexpected visitors shake up other lives.",
+  "20": "Annie coaxes reclusive former starlet Marla back into the spotlight for a premiere, while an unexpected visitor upends Ryan's world.",
   "21": "Prom looms as devastating news about the future rattles the group and a health scare hits close to home.",
-  "22": "Graduation nears as one impulsive decision threatens Naomi's diploma and long-held feelings finally rise to the surface."
+  "22": "Graduation nears as one impulsive decision threatens Naomi's diploma and long-held feelings finally rise to the surface.",
+  "_note": "ORIGINAL spoiler-safe recaps in our own editorial voice, grounded in factual events. AI-drafted — human review before publish. The season's assault storyline is referenced with care: high-level, non-graphic, non-sensational."
 }
diff --git a/db/recaps/s4.json b/db/recaps/s4.json
index 12487a7..59b7a58 100644
--- a/db/recaps/s4.json
+++ b/db/recaps/s4.json
@@ -1,5 +1,4 @@
 {
-  "_note": "ORIGINAL spoiler-safe recaps in our own editorial voice, grounded in factual events. AI-drafted — human review before publish.",
   "1": "College life humbles Naomi when a life-changing summer development collides with a sudden drop in her social standing.",
   "2": "Determined to reclaim her status, Naomi rushes a top sorority and drags Annie through the pledge gauntlet.",
   "3": "After clashing with the sorority president, Naomi finds unlikely allies for a little payback while Annie scrambles for cash.",
@@ -8,9 +7,9 @@
   "6": "A modeling offer lands in Liam's lap just as Annie finds herself unexpectedly drawn to someone new.",
   "7": "Forced to co-plan a campus costume party with her nemesis, Naomi watches the night spiral toward unfortunate consequences.",
   "8": "A leaked video of a Vegas wedding threatens a political campaign while Liam's modeling career quickly takes off.",
-  "9": "The fallout from the leaked wedding footage widens, forcing hard conversations across the whole group.",
+  "9": "The leaked-wedding-video fallout keeps widening, dragging a political campaign and Liam's new modeling career into the blast radius.",
   "10": "Thanksgiving tensions rise as Dixon pursues a reluctant Adrianna and a bickering couple nears its breaking point.",
-  "11": "Dixon battles temptation on his comeback to music while Annie confronts an obstacle standing squarely in her way.",
+  "11": "Dixon fights temptation on his music comeback while Annie confronts Jeremy over what he's holding against her.",
   "12": "Naomi is tasked with planning her nemesis's birthday party as Annie takes a reckless risk of her own.",
   "13": "Nursing a breakup, Naomi embarrasses herself in front of her demanding new boss just as New Year's arrives.",
   "14": "Naomi plays peacemaker between her boss and her rival daughter, forcing two old enemies to work side by side.",
@@ -23,5 +22,6 @@
   "21": "Friends worry Naomi is rushing into marriage, prompting a get-to-know-him party that raises more questions than answers.",
   "22": "Suspicion erupts on a movie-premiere red carpet as jealousy and old betrayals finally boil over.",
   "23": "A reluctant Naomi tries to sabotage a bachelorette party she's stuck hosting just as an old crush resurfaces.",
-  "24": "The finale upends everyone's plans when Naomi's shock announcement threatens a wedding and hints at a new chapter far from Beverly Hills."
+  "24": "The finale upends everyone's plans when Naomi's shock announcement threatens a wedding and hints at a new chapter far from Beverly Hills.",
+  "_note": "ORIGINAL spoiler-safe recaps in our own editorial voice, grounded in factual events. AI-drafted — human review before publish."
 }
diff --git a/db/recaps/s5.json b/db/recaps/s5.json
index 300f49b..f970466 100644
--- a/db/recaps/s5.json
+++ b/db/recaps/s5.json
@@ -1,5 +1,4 @@
 {
-  "_note": "ORIGINAL spoiler-safe recaps in our own editorial voice, grounded in factual events. AI-drafted — human review before publish. Series finale kept unspoiled.",
   "1": "An impulsive elopement to Vegas goes sideways when Naomi and Max end up stranded in the middle of the desert.",
   "2": "A whirlwind marriage sparks a public-relations headache, putting Naomi and Max's honeymoon plans on ice.",
   "3": "Silver wrestles with a weighty health decision and all the fears that come with it.",
@@ -12,14 +11,15 @@
   "10": "A coastal road trip meant to escape their problems only stirs up brand-new ones for Naomi and Adrianna.",
   "11": "A dreamlike detour imagines the life Annie might have led had she never left Kansas — a knowing nod to where it all began.",
   "12": "Naomi and Max turn to a counselor to decide the fate of their marriage as Silver reaches her own crossroads.",
-  "13": "Old feelings rekindle at a charity game while riskier choices pull others toward real danger.",
+  "13": "A charity football game rekindles old feelings for Naomi and Max, while Navid goads Liam deeper into underground fighting.",
   "14": "Liam confronts the toll of past trauma as he prepares to testify, and a family surprise rattles Annie.",
   "15": "Naomi launches a restaurant venture with a newfound half-brother just as an unexpected booking stirs the pot.",
   "16": "Liam's new surf-shop dream gets complicated fast when business and romance collide.",
   "17": "A rising mogul hires Naomi to plan events for his empire as the friends all chase a fresh start.",
   "18": "A launch party for a mysterious author forces Annie to finally reveal a long-held secret.",
   "19": "Liam and Navid pull out every stop to land a young surf star as their first sponsored athlete.",
-  "20": "A powerful favor comes at a painful price, forcing hard choices about love and loyalty.",
+  "20": "Jordan pulls a powerful family favor to bail out Mark — but the price is ending things with Naomi.",
   "21": "Naomi steps into the line of fire to shield a friend's reputation from a fast-spiraling scandal.",
-  "22": "The series finale turns catastrophic when an explosion traps a friend, and a daring rescue puts everything on the line."
+  "22": "The series finale turns catastrophic when an explosion traps a friend, and a daring rescue puts everything on the line.",
+  "_note": "ORIGINAL spoiler-safe recaps in our own editorial voice, grounded in factual events. AI-drafted — human review before publish. Series finale kept unspoiled."
 }

← 71ac749 auto-save: 2026-07-26T08:11:40 (4 files) — apps/web/app/layo  ·  back to Nineoh Guide  ·  where to watch: JustWatch live-availability links on home + c2dadda →