PANCHA_PAKSHI_FREE_ENHANCED_PRODUCT_PLAN - TheDaniel166/moira GitHub Wiki
Pancha Pakshi Free and Enhanced Product Plan
Status: Core product shipped; Enhanced workflow expansion and launch observation remain in progress.
Current production boundary (2026-07-22): The website is pinned to
moira-astro 5.1.2, all 19 admitted REST operations are contract-accounted
for, and the public /pancha-pakshi product is live. The current production
website artifact is a387a51ac8f3f5048f85c028e0fe028161fc9ff8.
Completion boundary
The package release, website adapter, and Free public beta in Phases 1–3 are
complete. The first Enhanced workflow is also live: entitled Enhanced,
Workspace, and administrator users may explore an exact caller-selected local
date and time through the protected atInstant path.
The shipped product includes both admitted identity methods, manual natal data entry, birth-data import from an existing saved chart, explicit timing and Sookshma policy selection, one frozen-instant composition path, the dial and current-half timeline, interval inspection, relation and derivation evidence, method and source receipts, honest non-selection states, responsive presentation, and production entitlement enforcement.
Phase 4 is not complete. Its remaining Enhanced product work is:
- a bounded 31-day planner;
- side-by-side timing and Sookshma policy comparison;
- multi-subject comparison for up to five subjects;
- dedicated account-persistent Pancha Pakshi subjects and locations (saved chart birth-data import already exists, but is not this complete workflow);
- bounded CSV, ICS, and PDF export; and
- user-authored transition reminders.
Phase 5 is active rather than complete: production observation began with the 2026-07-22 public launch. Presentation and reliability may be tuned from that evidence, but doctrine, source boundaries, and the prohibition on scoring remain unchanged.
Product constitution
- The MIT package and its self-hosted REST server expose every admitted Pancha Pakshi computation. Commercial entitlements do not belong in the engine.
- Website Free exposes a genuinely useful present-time product, including its method, policy, provenance, omissions, and failure state.
- Website Enhanced sells workflow: arbitrary-time exploration, ranges, saved subjects, comparison, export, reminders, and higher operational scale.
- The same frozen request must produce identical computational truth for Free, Enhanced, Workspace, and self-hosted callers.
- Source-admission privacy is not a premium tier. Private Uromarisi research remains private for every user; only its admitted governance status is public.
- No tier receives a numerical score, percentage, generic good/bad judgment, prognosis, medical interpretation, or automatic "best time" ranking.
- Profile, timing, and Sookshma policies remain explicit. The website may remember a user's choice only after the user makes it; it must not invent a universal default.
The commercial principle is: truth is not paywalled; convenience, planning, automation, persistence, and presentation may be.
Tier matrix
| Capability | MIT package and self-hosted REST | Website Free | Website Enhanced |
|---|---|---|---|
| All 19 admitted REST operations | Complete | Used through curated workflows | Same engine operations |
| Profile catalog, sources, omissions, admission status | Complete | Public, no account | Same |
| Uromarisi constitutional status | Status only | Public transparency panel | Same; no extra research data |
| Aksara identity | Complete | One active, session-local subject | Saved and multiple subjects |
| Natal-Moon identity | Complete | One active, session-local subject | Saved and multiple subjects |
| Nakshatra mapping, Padu, first-EAT seed, directed relation | Complete | Visible in derivation | Same, plus comparisons |
| Present astronomical paksha and local-solar context | Complete | Yes | Yes |
| Fixed-clock and solar-proportional current cells | Complete | Yes | Yes |
| Timing and Sookshma policy selection | Caller explicit | User explicit | User explicit, plus side-by-side comparison |
| Present major and subordinate activity | Complete | Yes | Yes |
| Current solar-half timeline | Caller composes | Yes | Yes |
| Caller-selected date or time | Complete | Present time only | Yes |
| Range planner | Caller composes | No | Up to 31 days per request |
| Multi-subject comparison | Caller composes | No | Up to five subjects per view |
| Saved subjects and locations | Caller owns storage | Session-local | Account-persistent |
| CSV, ICS, and PDF export | Caller composes | No | Up to 31 days per export |
| Boundary reminders | Caller composes | No | User-selected categorical transitions |
| Scores, percentages, best-time ranking | Not admitted | No | No |
| Private research corpus | Not exposed | No | No |
Free interactive use should not gain a new daily quota. It should use the website's existing public-compute concurrency and rate guard. Its scope is structural: the server freezes one present instant and accepts no caller-supplied instant. Enhanced accepts explicit instants and bounded ranges.
The feature joins the existing Moira Enhanced plan at the existing product price. Workspace and administrator accounts inherit Enhanced through the existing entitlement ladder.
Website product
The public route should be /pancha-pakshi and should proceed in this order:
- Explain and require an identity method: the 1879 name/query-initial product or the 2024 natal-Moon composition.
- Resolve the subject bird and display the exact source-scoped derivation.
- Require explicit timing and Sookshma policy choices.
- Freeze one instant for the entire composed calculation.
- Display the major activity, subordinate activity, exact interval, next transition, directed relation facts, and current-half timeline.
- Keep a persistent Method and sources drawer containing profile IDs, policy IDs, source locators, omissions, modern-composition notices, exact fractions, and failure statuses.
- Offer Enhanced actions using honest language: Explore another date, Compare policies, Plan 31 days, Save subjects, Export, and Set a transition reminder.
The interface must use neutral visual language. It must not use red/green favorability colors, gauges, stars, scores, or auspicious/inauspicious badges. When a fixed-clock policy has an unmaterialized tail, display the engine's non-selection state; never silently switch to the proportional policy.
Enhanced reminders are user-authored predicates such as "notify me when my bird enters Rule." They are not Moira-selected favorable windows.
Transport and entitlement architecture
The open-source moira_server remains an unentitled transport over the complete
admitted engine. Hosted commercial enforcement belongs in the website server.
Create one website composition function, provisionally
buildPanchaPakshiSnapshot, used by every tier. It receives a frozen instant,
explicit profile IDs, subject bird, timing policy, and Sookshma policy, then
preserves the engine result losslessly.
Recommended tRPC surface:
panchaPakshi.catalog— public metadata and admission status.panchaPakshi.resolveAksara— public compute.panchaPakshi.resolveNatalIdentity— public compute.panchaPakshi.current— public compute; the server supplies one frozen instant.panchaPakshi.atInstant— Enhanced; the caller supplies the instant.panchaPakshi.planRange— Enhanced; maximum 31 days per request.panchaPakshi.compareSubjects— Enhanced; maximum five subjects.panchaPakshi.export— Enhanced; maximum 31 days.panchaPakshi.reminders— Enhanced persistence and delivery.
Use the existing website mechanisms:
publicComputeProcedurefor anonymous/free computation;protectedEnhancedProcedurefor arbitrary time, ranges, persistence, export, and reminders;hasEnhanced()so Workspace and administrators inherit access;LockedFeaturefor discoverable UI affordances, never as the security gate;TRACKED_TOOLSand privacy-safe usage receipts.
Required invariants:
- entitlement rejection occurs before input parsing and engine work;
- the browser is never the access authority;
- the production engine REST service remains internal;
- one frozen instant is reused across paksha, solar context, current-cell, and Sookshma composition;
- profile capabilities are discovered and checked, never assumed;
- policy IDs, profile IDs, provenance, omissions, fractions, and non-selection statuses survive serialization;
- current results are never cached beyond their next boundary;
- telemetry contains no name, birth data, raw coordinate, or source text.
Implementation sequence
1. Package closure and release — Complete
- Finish and isolate the existing Pancha Pakshi work from unrelated changes.
- Correct the current changelog route-count drift (
17must become19). - Confirm all 19 public methods and routes are complete and documented.
- Bump
pyproject.tomlandmoira/facade.pyto5.1.0. - Add
RELEASE_NOTES_5.1.0.mdandCOMPATIBILITY_NOTES_5.1.0.md. - Build and inspect the wheel and sdist, including all admitted manifest data.
- Tag and publish only after the release identity and public-surface gates pass.
Completed through the patched moira-astro 5.1.2 release. The original
5.1.0 target remains below as historical implementation intent; subsequent
patches are the production authority.
Likely package files:
pyproject.tomlmoira/facade.pyCHANGELOG.mdREADME.mdwiki/03_release/RELEASE_NOTES_5.1.0.mdwiki/03_release/COMPATIBILITY_NOTES_5.1.0.md
No engine-semantic change is expected for tiering.
2. Website engine adapter — Complete
- Pin staging and production to
moira-astro 5.1.0. - Assert the exact Pancha Pakshi OpenAPI contract before enabling the feature.
- Add the lossless composition helper and typed shared contract.
- Register public and Enhanced tRPC procedures behind a feature kill switch.
Production uses exact engine-version and OpenAPI admission checks, a lossless
shared contract, one frozen-instant composition function, public catalog and
identity procedures, Free current, protected Enhanced atInstant, tier
inheritance, privacy-safe usage receipts, and a fail-closed feature switch.
Likely website files:
server/_core/panchaPakshi.tsserver/routers/panchaPakshi.tsserver/routers.tsshared/panchaPakshi.tsshared/tiers.ts
3. Free public beta — Complete
- Ship identity selection, explicit policies, present snapshot, current-half timeline, relation facts, provenance, and boundary/failure handling.
- Add
/pancha-pakshirouting, navigation, route metadata, prerendering, documentation, and accessibility coverage. - Do not advertise Enhanced Pancha features until the entitlement path exists.
The public route, presentation, accessibility coverage, explicit evidence boundaries, and entitlement-aware Enhanced entry point are live.
4. Enhanced workflow — In progress
- Add arbitrary-time exploration, 31-day planning, policy comparison, multi-subject comparison, saved subjects, exports, and reminders.
- Add a database table and migration only when persistence/reminders begin; do not mix this with unrelated schema work.
- Update Pricing and FAQ copy only after anonymous and Enhanced staging smokes.
Shipped: exact arbitrary-time exploration for Enhanced, Workspace, and administrator users, plus reuse of existing saved-chart birth data.
Remaining: the 31-day planner, side-by-side policy comparison, multi-subject comparison, dedicated Pancha Pakshi persistence, CSV/ICS/PDF export, and transition reminders. Existing saved-chart import must not be reported as completion of the dedicated persistence workflow.
5. Observe and harden — Active
- Observe for 30 days.
- Tune batching, caching, and presentation only; do not alter doctrine or add scoring in response to engagement metrics.
The observation window began with the 2026-07-22 public production launch.
Verification gates
Package validation must include targeted Pancha tests first, the complete
non-network suite, documentation consistency, release identity, wheel/sdist
build, package-content inspection, and twine check using the project .venv.
Website tests must prove:
- Free and Enhanced return identical engine truth for the same frozen request.
- Missing explicit profile or policy is rejected.
- Anonymous/free callers cannot invoke arbitrary-date, range, save, export, or reminder procedures.
- Rejections happen before any engine call.
- Workspace and administrator accounts inherit Enhanced.
- All 19 engine operations are contract-accounted for.
- No score, generic favorability, private research, prognosis, or medical field leaks through any response or presentation.
- Sunrise/sunset boundaries, paksha boundaries, exact cell endpoints, fixed-clock tails, DST display, polar failure, 422 input errors, timeouts, and engine-unavailable states remain honest.
- Focused tests, the complete website test suite, type check, production build, strict prerender, anonymous/Enhanced staging smokes, and exact-artifact promotion all pass.
Launch measures
Hard correctness and reliability targets:
- zero Free/Enhanced computational parity differences;
- zero private-data or scoring-contract leaks;
- at least 99.5% successful present-snapshot requests;
- present snapshot p95 below 2 seconds;
- 31-day planner p95 below 8 seconds, otherwise move it to an asynchronous job.
Privacy-safe product measures:
- identity-form completion;
- successful present snapshot;
- policy switches;
- planner, comparison, export, and reminder use;
- Enhanced CTA selection and conversion;
- seven-day return after a completed snapshot.
Engagement metrics may improve workflow and presentation. They must never be used to justify invented doctrine, hidden defaults, scoring, or stronger claims.