# Pinned source ledger Reference repository: `Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows`, commit `daab60ce05c8f0e78cc51b5e7974120f81aed79c`. All paths below are relative to that commit's `local/workspace/Horosa-Web-55c75c5b088252fbd718afeffa6d5bcb59254a0c/astrostudyui/src/`. The machine-readable ledger includes exact SHA-256 and permalink for each read file. Reference code was read only. It was neither run nor copied into the prototype. The arithmetic source is the executable utility, with contradictions in comments/UI snapshots recorded separately. ## Balbillus convention File: `utils/balbillus.js`. - Lines21–49: lesser years N={Sun19,Moon25,Saturn30,Jupiter12,Mars15,Venus8,Mercury20}, total129; exaltation absolute longitudes E={Sun19,Moon33,Saturn201,Jupiter105,Mars298,Venus357,Mercury165}. Stable sort seed Sun,Moon,Saturn,Jupiter,Mars,Venus,Mercury determines exact-conjunction ties in modern stable JavaScript sorting. - Lines51–74: executable year mapping solar365.24219879, hellenistic360; defaults Sun/nearest/solar/depth5/maxAge120. - Lines100–124: forward d=(longitude−E) modulo360; nearest e=min(d,360−d). Only nearest mode applies Sun0.9431e+19.47, Moon0.9592e+14.76, Mars0.9268e+24.39; other planets use e. Clamp adjusted distance to0…360. Reduced years = N×(1−adjusted/360). - Lines126–131: ascending natal normalized longitude, rotated to selected start planet. The prototype requires already normalized complete input, but retains the mathematical order and tie seed. - Lines172–175: layer unit = selected yearDays/12^(level−1). - Lines178–195: each root duration = reducedYears×yearDays. Repeat order while its start lies before maxAge×yearDays. Keep full final root; source limits iteration to200. - Lines198–222: each child restarts natal order at its parent lord. Receivers one through six take their reducedYears×layerUnit, capped by remaining parent time. Receiver seven takes all remaining parent time, even when longer than its nominal duration. No extra cycle within a parent. Stop at parent end or requested depth. - Lines154–167: source displays a date-only label using its Moment environment. We preserve raw elapsed-day period mathematics and use precise explicit-offset UTC instants instead; date-only rendering/local DST/rounding artifacts are not reproduced. ### Conflicts in reference text - Initial lines14–20 still describe recursive proportional129-weight subdivision and default360-day conversion. The executable routine/defaults differ. - Year comment lines51–53 says the Egyptian/Hellenistic option is only a label, but the live mapping and computation use its360-day number. - Snapshot line241 still describes129-weight subdivisions. The later UI component `components/astro/AstroBalbillus.js` correctly explains unit-based splitting/remainder filling and the three fitted coefficients. Neither stale text nor modern prose is copied. - Historical/empirical justifications for the coefficient fit are not established here. The implementation labels these as **source-software adjustments**, never as ancient prescriptions or independently validated empirical results. ## Triplicity convention File: `utils/triplicityRulers.js`. - Lines18–56 and63–89: select Sun for day, Moon for night; use that luminary's sign. Dorothean swaps first and second at night and retains third. Ptolemaic uses the corresponding two rulers for fire/earth/air. Its standard water row is Mars alone. Water variant day Mars/Venus, night Mars/Moon. - `constants/AstroConst.js` lines173–280: Dorothean factual rows by element: fire Sun/Jupiter/Saturn; earth Venus/Moon/Mars; air Saturn/Mercury/Jupiter; water Venus/Mars/Moon. The same file supplies traditional domicile/exaltation/detriment/fall sign checks. - `divination/data/hellenisticData.json` lines25–38: Ptolemaic day/night rows and water variants; read through `hellenisticData.js` lines4,14. No extra schedule rule comes from this table. - Lines158–180: source state annotation is house angularity, retrograde flag and first matching dignity, precedence domicile→exaltation→detriment→fall. These descriptive flags are retained; source forecasts and evaluative prose are not copied. Missing state is unknown in the prototype. - Lines201–222: period date endpoints round(age×365.2422) to whole days. Lesser-year number is appended as an annotation; it does not determine the age splits. - Lines225–265: Dorothean thirds: three consecutive equal thirds. Dorothean halves: first/second half plus third ruler throughout. Ptolemaic/variant two distinct rulers: halves regardless of thirds/halves selector. Standard Ptolemaic water: single whole-span Mars period. - Lines299–305: reference current snapshot computes a Moment fractional-calendar age, which differs from its fixed rounded-day endpoint clock. Prototype current lookup consistently uses the displayed exact interval endpoints. ## Deliberate scope differences 1. Strict finite complete input and explicit timezone/sect/location replace permissive fallback, host-local date parsing and implicit missing-data assumptions. 2. Reference partial-planet and missing-longitude fallback behavior is not emulated. All seven traditional bodies are required. 3. Date mapping is ordinary elapsed UTC days. Balbillus raw source durations are preserved without Moment whole-day/local-DST display behavior. Triplicity retains source whole-day endpoint rounding while standardizing lookup to those endpoints. 4. Nonpositive or submillisecond periods and resource-limit incomplete timelines throw explicitly. No empty or silently incomplete result masquerades as success. 5. Triplicity parallel companion is separate from sequential `periods`, but is included in active lookup and evidence; it is not an accidental overlapping timeline row. 6. Pure engine uses caller-supplied sect; adapter offers explicit solar-center astronomical selection using existing own code. Balbillus does not derive start planet from sect, matching its source control. 7. No lifespan estimate, medical/financial/relationship outcome, twelve-house divinatory prose corpus, AI snapshot service or upstream code is carried over. Conditional interpretation is original and describes limits. 8. Stable exact-conjunction order is explicitly fixed to the source seed rather than delegated to runtime sort behavior. 9. Source defaults are retained in the engine; demonstration initially requests2 levels to keep first interaction compact. All5 levels remain selectable and tested. 10. Data ranges are bounded for operational safety: Balbillus horizon1–500, depth1–5, max200 roots /200000 nodes; triplicity span1–120. Source UI used30–120 for its span while utility accepted any positive value. The permitted range here is disclosed as a software bound. ## Licensing boundary The audited reference is AGPL-3.0-only. No reference implementation, stylesheet, rendered assets, forecasts, translated passages or upstream test harness is bundled. Original code and prose in this directory are MIT licensed. Public numeric constants and mathematical relations are attributed to the pinned reference as the exact convention being reconstructed. This attribution does not certify historical or scientific validity.