β: This English translation is in beta — the Traditional-Chinese original is the authoritative version.
Changelog
This page preserves, in full, the version-by-version history that used to live in build_report (v1→v8, including audit processes, correction incidents, and deployment notes). If you only want the current site state and honesty principles, see build_report; this page is for readers who want to trace how a particular number or equation evolved over time.
Newest version first.
v10: Subharmonic injection, the injection/frequency-conversion mini-chapter, growth-debt payoff
Rollback points: v9-stable (ab33656) / branch backup/v9-stable / v9 live gh-pages 0bd6af7b4; intermediate v10-w1-partial (dd35ce7).
- Subharmonic injection (headline): subharmonic_injection — from [P3] p.2112 (impulse train every M periods = subharmonic locking, transcribed verbatim) and [P4] Eq.(28)–(30): only the N-th harmonic of the injection waveform couples to the ISF fundamental () ⇒ a pure sub-harmonic sinusoid does not lock to first order; impulse-train route ; realignment factor ; discrete-time noise loop, corner, closed-form output jitter (MC ratio 0.999); ILCM vs PLL vs sub-sampling table. Two brief assumptions corrected honestly: the ring's edge comes from (×100), not ISF slope; no interior optimum in N at fixed (the real optimum is in β). lab_40 (six experiments: 1/N slope −1.000, pulse train 15/15 locks vs pure sine 0/15, measured β 0.0486 vs 0.0498, spur error ≤0.01 dB) + SubharmonicInjectionExplorer widget.
- Standalone ILFD page: injection_locked_division (divider↔multiplier duality; M:N noise corner = [P4] Eq.(32)).
- [P4] large-injection model & transients: paper_004_large_injection_transient + lab_41.
- Theory map: theory_map (236 breadcrumb edges, 56-node mermaid).
- Growth debt: chapter 06 regrouped into 3 sub-categories and 3 orphaned sidebar entries restored; print CSS; GitHub Discussions + issue templates; deprecation warning fixed; EN full parity pass over 91 pages (8 fixes).
- Pagefind evaluation: NO-GO (Chinese recall ~1% on core terms; report in
scripts/pagefind_integration_patch.md); current search kept. - Process note: fable 5 hit 529 overload three times; the S2 page was finished by sonnet from the already-verified simulation; an unquoted
:in the EN lab_40 front matter broke the en build again — fixed and now part of the gate. - Scale: 97 pages × 2 locales, 56 figures, 49 simulations, 21 interactive components, 160 checkable examples (147 auto-pass / 0 errors).
v9: growth-debt payoff + learning path v2 + EN audit + paper finishers (G1–G4)
- equation_index 28→62 rows; figure_index 52→53 figures, zero orphans; cheat_sheet v2;
scripts/update_stats.pykeeps facade stats in sync; build_report slimmed + this changelog split out. - learning_path 9→12 steps (12-item progress checklist); quizzes 10→33; final_exam (10 cross-chapter questions); capstone toolbox pointers.
- EN: 92-file terminology audit (0 real drift; 4 files fixed), 16-page parity spot-check all pass; widget a11y (12 components).
- [P2] Appendix A as a teaching asset (actual location p.802–803); [P1] Fig.29/30 conceptual replica.
- Scale: 92 pages × 2, 53 figures, 46 sims, 20 widgets, 156 examples (145/0/0).
v8: three enhancement waves (A/B/C/D, all delivered)
All 23 units delivered (hard units → fable, mechanical/interactive units → sonnet; every unit also got its English sibling written in the same pass):
- Paper-verbatim math (7): App.B asymmetric-ISF closed forms Eq.(52)–(57) (lab_33; closed form vs. numeric agree to 1.6e-9; a new corner∝1/N design rule; also caught a 2× DC-bookkeeping convention gap between [P1] Eq.24 and [P2] Eq.7, honestly dual-listed on both pages); [P1] appendix's three ISF-extraction methods Eq.(31)–(38) (a three-way comparison; honestly discloses the closed-form method's O(μ) isochron-shear error); differential-ring degradation with N (Eq.31–35, p.796); [P3] optimal injection waveform Eq.(43)–(45) (Cauchy–Schwarz, lab_39); correlated-supply N·f₀ selection rule Eq.(37)–(38) (lab_34); [P4] M:N subharmonic locking Eq.(28)–(30) (lab_37; c₂=0 means you cannot divide by 2); [P3] impulse-train locking Eq.(19)–(23).
- Derivations/examples (5): flicker ADEV floor = √(2ln2·h₋₁) (rigorous proof that ∫sin⁴u/u³=ln2, plus lab_19 verifying the absolute value); [P2] Fig.16 two-regime jitter (lab_24 Part 5; found a printing erratum in the paper: ζ=2.5e5 should read 2.5e-5, confirmed via 6× zoom and honestly flagged); PLL peaking closed form (ζ=0.707→2.09 dB @0.786fₙ) plus the fractional-N ΔΣ third-order term; [P1] Sec.V real-silicon ring fully re-derived numerically (found the paper's p.191 "58.8 fF" should read fC); large-angle Bessel sideband ladder plus a multi-source superposition example.
- Interactivity (8 new bilingual widgets): AsymmetricIsfExplorer (2646-combination sweep, 0 NaN), AdlerWashboard (washboard potential plus cycle-slip counting), PullingSpectrumExplorer (built-in radix-2 FFT, ω_b error 0.59% @ r=1.5), HtmFoldingExplorer, DualDiracFitter, EffectiveIsfExplorer, LineshapeExplorer (RBW smearing), AdevLiveExplorer (error bars for finite data).
- New simulations (6): lab_33 asymmetric corner, lab_34 correlated-supply selection rule, lab_35 cross-correlation measurement (floor∝1/√M), lab_36 lock acquisition plus Kramers escape, lab_38 first-principles K_push (2.936 GHz/V, FM sideband ratio 1.002), lab_39 optimal injection.
Site size: 90 pages × 2 locales, 52 figures, 45 simulations, 20 interactive components, 144 checkable examples (133 auto-pass, 0 errors).
v7: re-audit of [P2] Eq.(16) ring 's N-scaling (radical-scope misreading fixed)
Ruling (triple-locked evidence, verified against high-resolution renders of p.794/p.803): the correct reading of [P2] Eq.(16) is that the radical covers only the constant, i.e. , so (not the that v3 mistakenly changed it to). Triple evidence: (1) the paper's body text states outright " dependence of "; (2) the numerical anchor — the text gives the solid line as , and plugging in checks out (if were inside the radical this would instead give , contradicting the text); (3) App.B Eq.(52)+(54) independently derives , consistent with . History: v1 originally wrote (correct); the v3 audit misread the radical's scope and "corrected" it to , mislabeling it "verified" — the same type of misreading as the FOM incident. v7 checked it against the original text, restored it, and recorded the incident here. All affected pages site-wide (real_oscillator_topologies, waveform_slope, references, etc.) have had the exponent and related numbers corrected in step (e.g. the ratio changed from / dB to / dB). The N-independence of the Eq.(23) FOM, , , Eq.(15) , and Eq.(17)/(18)/(21) are all unaffected.
v6: interactivity, content, English version, and polish (waves C+D)
- Interactivity: 9 instant-graded exercises across three chapters (NumericQuiz); the impulse→phase animation on isf_definition (tangential/radial decomposition, ghost reference, Δφ accumulation); the ISF sandbox (drag the waveform → live c_n/Γrms/L/corner, slope approximation, sinusoidal anchor verified at −145 dBc/Hz); learning_path progress checkmarks (localStorage); 7 downloadable Jupyter notebooks (all executed and verified with nbclient).
- Content: lab_32 MOS Level-1 equation-level ring (Shichman–Hodges; impulse-method extraction of the true ISF; Parseval 1.7308 vs 1.7309; energy concentrated in transitions, consistent with [P2]); sampling/sub-sampling PLLs, crystal/MEMS reference sources, a gallery of common mistakes (12 entries, all drawn from errors this site actually caught).
- English β: en locale + language switcher + UI translation + 7 core pages translated (the rest fall back to Chinese).
- Polish/bugs: favicon + logo + og social card; mobile horizontal-scroll fix (slider rows flexWrap, measured to zero at 375px); LICENSE (content CC BY-NC-SA 4.0 / code MIT); README, repo topics, editUrl.
- [P2] p.803 verified verbatim: Eq.(45)–(51) transcribed; the coefficient 8 in (49) = double-sided spectrum (exactly equivalent to the single-sided 4sin² kernel in jitter_kernels); (50) κ value cross-locks at 2.0×10⁻⁹√s; (51) as printed has no √2 (definition difference noted).
- Lighthouse baseline (live site): Performance 89 / Accessibility 93 / SEO 100.
- Honestly rejected (reverted after measurement): zh-only search index (only −2%), lossless PNG re-encoding (+10%).
- Deployment note: the bilingual build is ~200MB; Pages once hung at "building" for 35 minutes, and a rebuild via
POST /pages/buildsfinished in 30 seconds — use this trick when a large deployment gets stuck.
v5: theory-deepening wave (12 items) plus one caught factor-2
v5 added 12 theory units (8 new pages + 2 expanded pages + 9 new labs + 2 fig scripts); each one is "a derivation page + a simulation actually run to obtain the numbers before writing the page":
- diffusion_dictionary: κ↔D↔linewidth↔ADEV↔S_φ — five representations of the same quantity reconciled in one pass (lab_23: one simulation, four extraction routes, all yielding the same 0.125).
- jitter_kernels: TIE / period / cycle-to-cycle kernels (4sin², 16sin⁴) derived from first principles + MC (theory/measured ratio 0.999–1.001); the white-noise closed form exactly reproduces [P2] Eq.(8). Closes the site's last theory TODO.
- Floquet/PPV made numerical (derivation_floquet_ppv expanded + lab_25): computed the monodromy (μ₁=1.000000), adjoint-extracted v₁, overlaid with the impulse-method ISF at rms 0.0016 — "PPV=ISF" goes from prose to a computed fact.
- injection_locking_noise (lab_26/27): locking = first-order PLL (own noise high-passed, reference low-passed, corner=ω_L cosθ_ss) plus the asymmetric beat spectrum under pulling.
- Full AM-noise spectrum (phase_vs_amplitude_noise expanded + lab_28): OU process → flat-topped Lorentzian (corner=ω₀/2Q).
- beyond_lorentzian (lab_29): under flicker the lineshape departs from Lorentzian (near-Gaussian core), plus the non-stationarity point that "a free-running oscillator strictly has no S_φ".
- adc_aperture_jitter (lab_30): SNR=−20log₁₀(2πf·σ_t) derivation plus the ENOB table for 447.9 fs.
- dj_dual_dirac (lab_31): dual-Dirac, TJ@BER, and the honest distinction DJ_δδ≤DJ_pp.
- clock_chain_budget: the four bookkeeping rules for ×N/÷N/PLL/buffer plus a full-chain worked example.
- fom_limit: FOM ceiling = 173.8−10log₁₀F_eff dB@300K (self-computed and verified, not a memorized value).
v5's factor-2 catch: the jitter_kernels MC cross-check caught a 2× error in the D mapping of spec item 11.2 — v3 had taken the variance growth rate κ² ([P2] Eq.11) as the diffusion constant D and plugged it into Δf=D/π. Adjudicated by lab_23 and an independent MC + Lorentzian fit (fitted FWHM/κ²·2π=0.992), then corrected site-wide: D=Γ²rms·S_i/(4q²max)=κ²/2; representative linewidth 40→19.9 mHz, true LC 80→39.8 mHz, −100 dBc/Hz anchor 1257→628 Hz (lorentzian / capstone / lab_22 / spec 11.2 updated together). Scalings and the −145/−148 dBc/Hz values are unaffected.
v4: deep audit and improvement pass (research-style multi-agent harness)
Round four ran a deep audit and fix pass over the whole site with a "research-style multi-agent
harness", staged with a gate after each stage (run_all_sims + verify_examples +
check_site_quality + npm run build + math scan):
- WF-1 multi-lens audit: 7 lenses (correctness / pedagogy / citation / consistency / completeness / figure / code) plus page-by-page deep reading, yielding ~45 structured findings.
- WF-2 PDF citation verification: for every citation finding, the original PDF pages were actually rendered and checked verbatim (adversarial).
- WF-3 fixes: one owner agent per page applying a unified correction spec; added 3 pages (varactor tuning / supply pushing, quadrature / coupled oscillators, tank Q and energy restoration), lab_22 end-to-end simulation, 4 conceptual figures, 3 interactive widgets (injection-locking Adler, Allan deviation, PLL loop-BW), and site-wide navigation (breadcrumbs / further reading / goal-based landing).
- WF-4 + round-2/3 re-review: page-by-page deep reading caught round-1 leftovers and new bugs, then fixed them.
Key outcomes (all verified against the original PDFs):
- Ring FOM prefactor re-corrected
8/(3γ)→8/(3η)(v2 had mis-edited it and mislabeled it "verified verbatim"; γ enters only throughV_char=ΔV/γ); the worked example moved−89.2→−91.0 dBc/Hz, 57 dB from ideal LC. [P4]ISF/APF figureFig.3→Fig.5, p.2126; APF definition Eq.(18)–(22), ideal-LC quadrature Eq.(26) p.2128 (not the old "Eq.25/26/27" labels).- Citation page/equation corrections:
Fig.17 p.800→p.802,Sec.VIII p.1163→p.2135,Fig.4 p.182→p.181,f₀=1/(2Nτ_D)citationEq.(14)→Eq.(15)(Eq.14 is actually the normalized stage delayt̂_D). - Closed the closable TODOs: cyclostationary
[P1] Eq.(25)–(27) p.186, generalized Adler[P3] Eq.(30)/(35), ΓrmsEq.(16) p.794; unified the Chinese term for "cyclostationary" site-wide. - Code bugs: lab_05 Parseval DC double-counted (
c₀²→c₀²/2, giving2Γ²rmsafter the fix),accumulated_jitter_curvebroken call signature; lab_06/07/15 gained numerical-consistency metrics; lab_10/20 figure fixes;verify_examplesregex tightened. - Honestly blocked one false fix: the audit claimed "κ Eq.(12) is missing ω₀"; zooming into the original PDF p.793 confirmed Eq.(12) never
had ω₀ — κ√Δt is the phase jitter
σ_Δφ(Eq.11), and only the time jitter is÷ω₀(Eq.10). No blind edit was made. - External literature now carries CrossRef-verified DOIs: Leeson 1966 (10.1109/PROC.1966.4682), Demir PPV 2000 (10.1109/81.847872), Kärtner 1990 (10.1002/cta.4490180505), Adler 1946 (10.1109/JRPROC.1946.229930).
Convergence (loop is dry): all substantive findings from 3 audit rounds are handled;
verify_examples shows, of 88 verifiable blocks, 73 pass with 0 errors; the remaining 13 are
verifier false positives on "formula constants / contextual numbers / deliberately blank exercises"
(manually confirmed correct). Final site size: 74 pages, 30 figures, 25 simulation scripts, 6
interactive widgets; final gate: build green, 0 broken links, 0 KaTeX errors, 0 content issues, 0
soft warnings.
Process limitation (honest disclosure): WF-4's parallel fix agents repeatedly hit Anthropic-side server throttling ("not your usage limit", i.e. not an account usage cap), so citation-type and mechanical fixes were completed inline instead and verified item by item.
v3: worked-example numerical QA plus ring-constant audit corrections
Added scripts/verify_examples.py: it actually runs every Python worked example in docs that has a
"reference answer" (# ->) and checks the numbers. Of 80 verifiable blocks, 65 pass automatically
with 0 errors; the remaining 14 were manually confirmed correct (the verifier misjudges formula
constants in comments, such as the "2" in , or comparison numbers like "much smaller
than 447.9 fs"). The process fixed real bugs: np.trapz→np.trapezoid (NumPy 2.0) ×3, a broken
import (added simulations/__init__.py to make the package importable), and 2 wrong example
numbers (the in effective_isf, and in the PLL optimal-BW example). Also fixed
dark-mode figures: matplotlib PNGs get a white card background in dark mode (.markdown img
CSS).
[P2] ring constants were verified verbatim against the original PDF (high-resolution rendering) and corrected:
- Eq.(23) FOM: the prefactor was mis-edited to (v2 had mislabeled it "verified verbatim"); corrected against the original PDF p.796 to