# Actives Rota - a weekly skincare rotation for the actives on your shelf > Paste the skincare products on your shelf (name | when | key ingredients). The browser spots the active families in each product - retinoids, AHA, BHA and PHA exfoliants, benzoyl peroxide, vitamin C, copper peptides, azelaic acid, niacinamide, sunscreen, fragrance, barrier support - guesses each product's layer, lays everything into a seven-day AM/PM week from a night pattern (X exfoliation, R retinoid, C recovery), puts each session in layering order and lists the same-session clashes and the flags - free. Then ask for an audit of the week (keep, move, pause or patch test each product; change nights) or log a reaction (likely culprits, what to pause, a plan, and when to see a clinician). Every reply cites the page's products, sessions, clashes and flags by id and is checked against them. URL: https://actives-rota.skillsafe.ai/ API: https://actives-rota.skillsafe.ai/api.html Built on the SkillSafe skill @huifer/skin-health-analyzer (skincare routine evaluation, adverse-reaction and allergy risk, sun protection, with a firm "see a dermatologist" boundary). ## What runs free in the browser (rotakit.js, grid.js) - Shelf parsing: one product per line - name, then optionally AM / PM / AM/PM and "new", then the key ingredients or the full ingredient list. Pipes, tabs or "name: ingredients". .txt/.csv files by picker or drag-and-drop. Products get ids P1, P2, ... - Active detection from names and ingredient text only (no formula, pH or exact strength is known). Strengths written as "10%" are read and are the only percentages a reply may quote. - Night patterns: gentle (2 retinoid, 1 exfoliation, 4 recovery), four-night cycle (exfoliate, retinoid, recover, recover), steady (3 retinoid, 2 exfoliation, 2 recovery) or custom (tap a night). Placements default by family - retinoids on R nights, leave-on acids on X nights, copper peptides on recovery nights, vitamin C, azelaic acid and benzoyl peroxide in the morning, sunscreen AM only - and can be overridden per product, including paused. - Clashes (C1, C2, ...) inside one session, at three levels: two retinoids or a retinoid with a leave-on acid (high); retinoid with benzoyl peroxide, two leave-on exfoliants, copper peptide with vitamin C or an acid, vitamin C with an acid, benzoyl peroxide with vitamin C (medium); wash-off versions and copper with a retinoid (low). - Flags: pregnancy with retinoids or leave-on salicylic acid, a retinoid in the morning, no sunscreen, prescription-looking products, fragrance, fewer than 2 recovery nights, 6+ active nights, a new user on more than 2 retinoid nights, several new products at once, empty or unused night types, products with no ingredients, paused products. - Reaction prescan: red-flag symptoms (swelling, hives, blisters, oozing, the eye area, spreading, feeling unwell) set the floor to see a clinician; candidates are what touched the skin in the session before it started plus anything new. - Exports: Markdown, a weekly .ics calendar of AM and PM reminders, CSV, JSON and a printable mirror card. ## The two metered tasks (model gpt-terra) - `rota` - verdict `ready`, `adjust` (1-3 changes) or `rebuild` (4 or more), counted from moves, pauses and night changes; for each product `keep`, `move` (to am, pm, x_nights, r_nights or c_nights), `pause` or `patch_test`; night changes; cautions. One click puts the changes on the grid. Can take an earlier reaction result and rebuild around it. - `reaction` - verdict `adjust`, `pause_actives` or `see_clinician` (required when a red flag is ticked); suspects rated likely, possible or unlikely; the products to pause now; a step plan; when to get help. One click pauses the products and, for a pause or a clinician verdict, turns every night into a recovery night. - Both: no brands, no diagnosis, no prescription advice, strengths only from the shelf, prescribed products routed to the prescriber. `RotaKit.reconcile` checks that every product or suspect is on the shelf and answered once, that moves have destinations and are not no-ops, that the verdict matches the count, that red flags force a clinician verdict, that a pause covers every active, that any high-level clash surviving the changes is named, and that every cited id and every strength is on the page. ## Notes - Rules of thumb from common skincare guidance - not medical advice and not a diagnosis. Sample products are generic, not real brands. - Saved rotas go to the signed-in user's own collection (`rotas`), only when they press save.