7.1 KiB
JHora/PyJHora External Evidence Capture Guide
This guide turns the first Dasha/Shadbala oracle sample from a draft into a reviewable external evidence packet. It is for manual black-box capture only: do not copy JHora/PyJHora implementation code, formulas, constants, or private reports into this repository.
Safe Case Choice
Start with one of these public or synthetic tasks:
template_steve_jobs_dasha_lahiri: public-figure Dasha boundary sample.template_private_oracle_redacted: user-template sample; use only if the screenshot is heavily redacted.
Avoid private client material for the first pass. If a private screenshot is
unavoidable, it 必须打码 before it enters references/oracle/artifacts/.
Privacy Rules
- Store evidence only under
references/oracle/artifacts/. source_artifactmust be a repo-relative path such asreferences/oracle/artifacts/jhora_steve_jobs_dasha_lahiri_v1.png.- 必须打码 names, addresses, account names, notifications, file paths, browser tabs, and any personally identifying text.
- 不得提交私人 PDF 原件.
- 不得提交完整出生报告.
- 不得提交浏览器 scratch folders, cookies, account sessions, tokens, desktop notifications, or downloaded temp folders.
External Tool Setup
For JHora:
- Open a clean chart in JHora.
- Enter the exact date, time, timezone, latitude, and longitude from
references/oracle/dasha_shadbala_oracle_cases.json. - Set ayanamsa explicitly. The first pass should use Lahiri; later samples should repeat with Raman and KP.
- Record whether the tool is using mean node or true node. The packet metadata
must write this exactly as
mean nodeortrue node. - Keep the tool version, build date, or download URL visible in notes if possible.
For PyJHora:
- Use an isolated environment and treat output as a black-box external reference.
- Record the package version and command or script path in operator notes.
- Capture stdout as a text artifact only if it contains the requested target values and no private data.
- Because PyJHora license metadata can vary by source, use it as an external behavior oracle unless a separate license review approves direct reuse.
Required Screenshots Or Stdout
Capture enough external evidence to fill every requested target field.
Moon sidereal longitude
Required for template_private_oracle_redacted.
- Capture Moon sidereal longitude in absolute 0-360 degrees if available.
- Also capture sign-local degrees/minutes/seconds when the tool shows it.
- Record ayanamsa, timezone, and node mode beside the value.
Vimshottari start date
Required for template_private_oracle_redacted,
template_steve_jobs_dasha_lahiri, and
template_historical_epoch_lahiri.
- Capture the Vimshottari start date or first Mahadasha boundary shown by the external tool.
- Write it as ISO date in
target.vimshottari_start_date, for example1986-05-18. - If the tool uses a visible year length, DST, or local sunrise policy, record
that in
operator_note.
Shadbala 七曜六分量
Required for every task whose target includes shadbala_components.
The packet must include all seven planets:
- Sun
- Moon
- Mars
- Mercury
- Jupiter
- Venus
- Saturn
Each planet must include all six components:
sthanadigkalachestanaisargikadrik
Do not fill only a total. Do not apply a global scaling factor. If the tool
shows Rupa and Virupa, record the unit in operator_note and preserve the
component numbers exactly as read from the screenshot or stdout.
Artifact Naming
Use short, stable names:
references/oracle/artifacts/jhora_steve_jobs_lahiri_dasha_v1.pngreferences/oracle/artifacts/jhora_steve_jobs_lahiri_shadbala_v1.pngreferences/oracle/artifacts/pyjhora_steve_jobs_lahiri_stdout_v1.txtreferences/oracle/artifacts/private_oracle_redacted.png
If a screenshot is corrected, keep the old artifact only if it is already referenced by a packet; otherwise replace the draft before review.
Packet Fill Procedure
Generate the current queue:
python3 scripts/oracle_collection_queue.py \
--oracle-file references/oracle/dasha_shadbala_oracle_cases.json \
--format json > /tmp/jyotish_oracle_queue_capture.json
Choose the task matching the external tool output, then fill:
evidence_packet.status:external_verifiedevidence_packet.metadata.tool_name:JHoraorPyJHoraevidence_packet.metadata.tool_version_or_urlevidence_packet.metadata.capture_dateevidence_packet.metadata.source_artifactevidence_packet.metadata.ayanamsa:Lahiri,Raman, orKPevidence_packet.metadata.node_mode:mean nodeortrue nodeevidence_packet.metadata.timezoneevidence_packet.metadata.operator_noteevidence_packet.target_placeholders.target.moon_sidereal_longitude_degevidence_packet.target_placeholders.target.vimshottari_start_dateevidence_packet.target_placeholders.target.shadbala_components
For a valid first Shadbala row, the component object must look like this shape:
{
"Sun": {"sthana": 0, "dig": 0, "kala": 0, "chesta": 0, "naisargika": 0, "drik": 0},
"Moon": {"sthana": 0, "dig": 0, "kala": 0, "chesta": 0, "naisargika": 0, "drik": 0},
"Mars": {"sthana": 0, "dig": 0, "kala": 0, "chesta": 0, "naisargika": 0, "drik": 0},
"Mercury": {"sthana": 0, "dig": 0, "kala": 0, "chesta": 0, "naisargika": 0, "drik": 0},
"Jupiter": {"sthana": 0, "dig": 0, "kala": 0, "chesta": 0, "naisargika": 0, "drik": 0},
"Venus": {"sthana": 0, "dig": 0, "kala": 0, "chesta": 0, "naisargika": 0, "drik": 0},
"Saturn": {"sthana": 0, "dig": 0, "kala": 0, "chesta": 0, "naisargika": 0, "drik": 0}
}
Replace every 0 with the external value. A zero is valid only if the external
tool literally shows zero.
Validation
Run the validator against the filled queue:
python3 scripts/oracle_evidence_validator.py \
--queue-file /tmp/jyotish_oracle_queue_capture.json
The first successful sample should move the summary from valid_packets: 0 to
valid_packets: 1, and from ready_for_calibration: 0 to
ready_for_calibration: 1. This does not allow production tuning by itself; it
only means one packet is review-ready.
Reject And Recapture Cases
Reject the packet and recapture if any of these occur:
missing_external_artifactstatus_not_external_verified:draftlocal_engine_artifact_rejectedmissing_shadbala_component:all_planetsmissing_shadbala_component:Sun.kalaor any other component-level error- Screenshot does not show ayanamsa.
- Screenshot does not show whether mean node or true node was used.
- Source artifact contains unredacted private data.
- Source artifact is a private PDF original or complete birth report.
- Values came from this repository's local engine instead of JHora/PyJHora or another external oracle.
Minimal Recapture Checklist
If the screenshot is not enough, recapture only the missing evidence:
- Tool/version and settings screen.
- Moon sidereal longitude screen.
- Vimshottari start date screen.
- Shadbala component table with all seven planets and six components.
- A short operator note explaining ayanamsa, node mode, timezone, and unit.