D60_FULL_POSITION_VALIDATION_2026 10 07 - TheDaniel166/moira GitHub Wiki
D60 full-position validation receipt
Date: 7 October 2026. Outcome: the named modern pvr_textbook_linear profile
is locally implemented and validated. Classical continuous-degree attribution
and a qualified published planetary full-D60 oracle remain unestablished.
The completed broader comparison
adds 24,432 independent-software comparisons, frozen external coordinates,
all-shape REST checks and sixteen real-reader chart batches. Modern computational
validation is complete within that declared scope; historical source admission
remains a separate frontier. Earlier runs below retain their original scope.
The completed follow-up evidence adjudication
adds independent source signs and one conditional rounded arudha-point pair;
its execution is recorded separately at the end of this receipt.
The source/admission packet
and owning standard govern
the composed profile and evidence limits.
Environment and ownership
Checkout C:\dev\moira, branch main, starting HEAD
67b66de14cde0447730b0c9b57e5e14c1edd9935, version 6.9.9. Executions use the
project .venv\Scripts\python.exe (Python 3.14.3) and the installed
moira/_moira_native.cp314-win_amd64.pyd. The Varga doctrine has no admitted
native counterpart; no native port or rebuild was required. Reader integration
uses installed C:\Users\nilad\.moira\kernels\de441.bsp with downloads
disabled. Real-chart tests confirm engine-to-REST consistency in the returned
sidereal frame; they are not external astronomical accuracy comparisons.
The earlier locally verified Chara/sign/deity package is preserved. This
extension edits the Varga doctrine, Vedic facade, Varga models/services/shared
serializer, focused tests, owning standards/references/register/Home/changelog
and adds this receipt and source packet. No other doctrine family, website,
Urania, build/harness policy, known-issues exemption, golden/snapshot baseline,
validation tolerance or generated moira.wiki is changed. The current package
remains uncommitted/unpushed; release and deployment are separate authorization.
Implemented contract and evidence
| Surface | Verification |
|---|---|
moira/varga.py |
Strict enum and finite inputs for the opt-in profile, shared circular normalization, natal-sign sequence, linear within-part degree mapping and independent deity reversal. Both positional authorities returned by canonical point/strength properties. |
| Vedic facade | Scalar/named, chart, Shodashvarga and Shodashvarga chart methods apply the selected method; unrelated divisions and sign-only selections fail before chart/resource work. |
| Seven REST request shapes | Scalar/batch, Shodashvarga/batch and three chart shapes apply the same profile and source receipts. OpenAPI declares exactly harmonic/PVR full-position methods. Invalid, null, sign-only and inapplicable selections give the validation envelope before chart work. |
| Strict new-profile transport | Bool, numeric string, NaN, infinity and overflowing integer cases rejected in direct scalar/batch requests. Legacy harmonic and generic request contracts preserved. |
| Generic and non-D60 | Generic D60 stays harmonic with deity=null. Non-D60 results have no applied D60 method and empty authority arrays. Shodashvarga changes only D60. |
| Vimshopaka | PVR and Santhanam sign methods give identical sign-dependent entries while retaining different actual authority receipts. Hand-derived Venus contribution delta is -11*weight/20, with D60 weights 5/4 retained. |
tests/unit/test_d60_full_position.py uses a Fraction oracle independent of
engine helpers for all 720 half-degree segments, testing exact starts,
the representable point after each start, midpoints, the representable point
before each end, and exact ends with circular wrap: 3,600 positions. It
checks sign, degree, mapped-domain containment, deity parity and method receipt.
Additional literal fixtures cover parity and zodiac wrap, normalization and
invalid values, facade preflight and strength consequences. Harmonic numeric
defaults are checked over all 720 midpoints and by existing regression tests.
Source evidence is deliberately separated. The textbook's Jupiter-to-Sagittarius sign is published; its mapped 28-degree result is independently derived. The 2013 article's D9 worked numeral is inconsistent with its stated multiplication: the law gives 12 degrees 45 minutes, versus printed 13 degrees 45 minutes. The test preserves that discrepancy and follows exact arithmetic, with the article's consistent D24 reverse example as corroboration. Published D60 coordinates without natal D1 pairs are contextual evidence, not replayed oracles. No assertion of a classical D60 degree verse, current JHora agreement, predictive effectiveness or whole-literature completeness follows.
Commands and outcomes
All pytest commands ran with MOIRA_TEST_MODE=1,
MOIRA_STRICT_KNOWN_ISSUES=1, MOIRA_NO_DOWNLOAD=1, the unchanged
deny-by-default network harness and -m 'not external_network'. Marked server
tests permit loopback; no external-network tests were selected.
.\.venv\Scripts\python.exe -m pytest tests/unit/test_d60_full_position.py tests/unit/test_vedic_chara_d60_admission.py tests/server/test_d60_full_position.py tests/server/test_vedic_chara_d60_admission.py -q -m 'not external_network' --junitxml=C:/dev/outputs/vedic-d60-full-position-2026-10-07/focused.xml
.\.venv\Scripts\python.exe -m pytest tests/unit/test_varga.py tests/unit/test_shodashvarga.py tests/unit/test_d60_deities.py tests/unit/test_vedic_facade.py tests/server/test_server_varga_routes.py -q -m 'not external_network' --junitxml=C:/dev/outputs/vedic-d60-full-position-2026-10-07/regression.xml
.\.venv\Scripts\python.exe -m pytest tests/server/test_server_vedic_phase2_routes.py -k vimshopaka -q -m 'not external_network' --junitxml=C:/dev/outputs/vedic-d60-full-position-2026-10-07/strength_regression.xml
Results: 964 focused + 155 regression + 3 strength regression = 1,122 distinct tests passed, zero failures/errors/skips in those final runs. Focused harness receipts recorded nine resource uses, all successful, content-probed DE441. The new profile includes three real-reader chart shapes; separate stubbed contexts isolate transport and preflight. This is focused acceptance and regression coverage, not the whole repository suite or native Varga parity.
The initial 846-test unit run had two failures: the source arithmetic error
above and a missing _reader_obj=None setup in a pure-facade test fixture.
Both were adjudicated explicitly; the final focused run re-executed those
nodes successfully. No harness policy, baseline or threshold was weakened.
.\.venv\Scripts\python.exe -m ruff check --output-format=json moira/varga.py moira/_facade_vedic.py moira_server/models/varga.py moira_server/services/varga.py moira_server/serializers/varga.py tests/unit/test_d60_full_position.py tests/server/test_d60_full_position.py tests/server/test_vedic_chara_d60_admission.py
.\.venv\Scripts\python.exe scripts/check_doc_consistency.py
.\.venv\Scripts\python.exe scripts/sync_rest_api_reference.py --check
git diff --check
Lint: zero diagnostics in this extension's runtime/test files. Documentation
guard, generated REST inventory, whitespace, executable API snippet and
in-memory owning wiki render/link checks are recorded in the private
document_validation.json. Generated wiki files are not written by this check.
The earlier package's unrelated root/facade baseline lint findings remain
outside this extension and were not concealed by a whole-repository clean claim.
Bounded evidence follow-up
The agreed finite review is complete with no new classical full-degree
admission or runtime repair. The governing computational object remains
pvr_textbook_linear, an explicit Moira composition of two dated prescriptions.
The inspected second BPHS edition is Girish Chand Sharma's 1999 reprint;
its D60 passage is chapter 7.33-41. Private source hashes, page identities,
visual review and ambiguity decisions are in the linked adjudication.
This pass adds tests/unit/test_d60_published_evidence.py and
wiki/06_roadmap/D60_EVIDENCE_ADJUDICATION_2026-10-07.md; updates the D60
source standard, full-position research packet, Vedic work register, Home,
changelog and this protected validation receipt. The earlier engine/facade/REST
package, harness, known issues, goldens, snapshots and generated wiki are
preserved. Sources remain private; no commit, push, release or deployment.
The new tests contain 75 cases: 72 comparisons against three literal published Sharma table rows over twelve natal signs and two admitted sign methods, two comparisons against its worked Gemini-to-Scorpio example, and one conditional rounded arudha-point comparison. Table samples are interior test inputs, not additional source-published coordinates. The point fixture preserves the exact printed-center mismatch of 23 D60 arcminutes, proves interval compatibility only under nearest-minute rounding, and records that truncation would fail. These are precision-derived intervals, not a changed engine tolerance or an exact planetary oracle. No ephemeris/resource is used.
With the same environment flags and network selection above:
.\.venv\Scripts\python.exe -m pytest tests/unit/test_d60_published_evidence.py tests/unit/test_d60_full_position.py tests/unit/test_vedic_chara_d60_admission.py -q -m 'not external_network' --junitxml=C:/dev/outputs/vedic-d60-evidence-pass-2026-10-07/units.xml
.\.venv\Scripts\python.exe -m ruff check tests/unit/test_d60_published_evidence.py
.\.venv\Scripts\python.exe C:/dev/outputs/vedic-d60-evidence-pass-2026-10-07/verify.py
921 unit cases passed, zero failures/errors/skips: 75 new evidence cases
and 846 re-executed admission/profile cases. The earlier 1,122-test checkpoint
is retained as historical execution evidence; the 75 new nodes bring its
distinct verified-node union to 1,197, not 2,043. Server/reader tests were
not rerun for this source/test/document-only follow-up. Lint, document guard,
REST inventory, whitespace and in-memory owning wiki render/link checks are
recorded in private verification.json. The package remains locally verified
and uncommitted; no classical, current-software or predictive validation claim
is inferred from passing these tests.