Research-backed, and it has to prove it
Zenith publishes training content that claims to be grounded in real science. That claim is only worth something if the system can't fake it. So every stage, sourcing, sorting, sequencing, citing, is built so the model can never invent a source or overstate a finding. Here's the pipeline.
The foundation of the whole honesty claim: sources come from PubMed, pulled live through NCBI's API, parsed, and quality-scored. Nothing downstream can cite a paper that wasn't actually fetched here. The model is never the source of a citation, it only ever works with real papers this stage returned.
And they're not treated equally. Each paper is scored on study type (a meta-analysis outranks a case report) and recency, so stronger evidence surfaces first.
// papers scored on evidence quality, not just relevance breakdown.studyType = bestType * cfg.weights.studyType; // meta > RCT > ... const age = new Date().getFullYear() - paper.year; if (age <= cfg.recency.fullCreditYears) recencyPts = 10; // recent = full credit else if (age >= cfg.recency.zeroCreditYears) recencyPts = 0; // old = none
This is a pattern the system uses in two places, and it's my favorite piece of the design. Before anything goes to the model, a deterministic pass resolves every case it can for free. A movement whose muscle clearly belongs to the topic is relevant; one that clearly belongs to a different topic is irrelevant. Only the genuinely ambiguous middle, where cheap logic can't decide, is sent to Claude.
// each topic maps to the muscle tags that legitimately belong to it const TOPIC_MUSCLES = { hamstring: ['hamstrings'], glute: ['glutes'], core: ['abdominals', 'lower_back'], /* ... */ }; // obvious match -> relevant (free) | obvious mismatch -> irrelevant (free) // everything else -> the Claude pass, batched — only the ambiguous middle
It's cheaper, and it's more honest: the model isn't asked to re-decide things that were never in doubt, so there's less surface for it to get a clear case wrong. The same shape is reused for research relevance and for exercise matching.
When the builder assembles a session, warmup then main work then cooldown, that ordering is fully deterministic. The comment in the file says it plainly: "Claude no longer orders movements." Exercises are bucketed by their source metadata and name signals, so the same selection always produces the same sequence, and partner or machine-only moves are auto-excluded and reported as gaps rather than silently dropped.
// deterministically bucket SOURCED exercises — same input, same output exercises.forEach((e) => { if (isWarmup(e)) warmup.push(e); else if (isCooldown(e)) cooldown.push(e); else main.push(e); }); // partner/machine moves -> excluded, reported as gaps (not hidden)
The final gate, and the strictest. Every finding in a generated entry passes two checks and a topicality test. Check one is deterministic: the cited URL must trace to a paper actually in the fetched set. Check two is auditable model judgment: does the abstract actually support the claim, supported, overstated, or unsupported. And a finding can be perfectly supported yet still be the wrong kind of source (a supplement or off-topic clinical study), so it only passes if it's also on-topic.
// a finding PASSES only if all three hold: pass: c.inSet // URL traces to a real fetched paper && verdict === 'supported' // abstract backs the claim (model, audited) && !offTopic; // not a supplement/off-topic study
It doesn't rewrite anything. It reports how many findings passed and which need review, and a human decides. A mismatch is a flag, never something to smooth over in the prose.
Every stage draws the same line in a different place. Sourcing pulls real papers so citations can't be invented. Classification lets cheap logic handle the clear cases and only spends the model on genuine ambiguity. Sequencing is fully deterministic. And the citation gate treats any mismatch as a review flag, on purpose, its output shape deliberately mirrors the exercise-relevance check so both feed the same editorial gate. The system is built so that "research-backed" is a property it can actually enforce, not a phrase in the marketing.