From e750140e10ed9568fac82f0c7ed15d73c1624b49 Mon Sep 17 00:00:00 2001
From: chris harris <283105756+Chris-ObtuseAI@users.noreply.github.com>
Date: Wed, 29 Jul 2026 03:49:05 -0500
Subject: [PATCH] feat: launch Jester v0.2 causal research platform
---
.github/workflows/pages.yml | 31 +
.gitignore | 3 +
ARCHITECTURE.md | 155 +-
JESTER_CONSTITUTION.md | 59 +-
QUALITY_GATES.yaml | 50 +-
README.md | 470 ++-
RESEARCH_FOUNDATIONS.md | 107 +
design-system/jester-observatory/MASTER.md | 227 ++
docs/.nojekyll | 1 +
docs/images/jester-observatory-desktop.png | Bin 0 -> 99459 bytes
.../jester-observatory-dream-foundry.png | Bin 0 -> 85660 bytes
docs/images/jester-observatory-mobile.png | Bin 0 -> 35272 bytes
docs/index.html | 401 +++
docs/showcase.css | 1083 +++++++
docs/showcase.js | 129 +
.../attention/synthetic_ranked_manifest.json | 32 +
fixtures/literature/live_query_template.json | 24 +
fixtures/literature/synthetic_arxiv_feed.xml | 52 +
fixtures/literature/synthetic_query.json | 20 +
fixtures/meta/synthetic_meta_config.json | 21 +
pyproject.toml | 2 +-
reports/JESTER_COGNITION_ARSENAL_PROOF.md | 123 +
reports/JESTER_OBSERVATORY_PROOF.md | 125 +
reports/JESTER_V0_2_PROOF.md | 99 +
schemas/cognition_arsenal_v1.schema.json | 225 ++
.../literature_learning_batch_v1.schema.json | 101 +
schemas/meta_research_v1.schema.json | 142 +
schemas/meta_research_v2.schema.json | 129 +
.../search_attention_snapshot_v1.schema.json | 78 +
scripts/validate_public_release.py | 146 +
src/jester/__init__.py | 5 +-
src/jester/api.py | 37 +-
src/jester/attention.py | 550 ++++
src/jester/attention_types.py | 98 +
src/jester/cli.py | 475 ++-
src/jester/cognition.py | 1018 +++++++
src/jester/cognition_types.py | 184 ++
src/jester/counterfactuals.py | 202 ++
src/jester/data_pipelines.py | 381 +++
src/jester/forge.py | 130 +-
src/jester/intelligence.py | 254 ++
src/jester/ladder.py | 276 ++
src/jester/literature.py | 588 ++++
src/jester/literature_types.py | 103 +
src/jester/meta_evolution.py | 162 +
src/jester/meta_pipeline.py | 191 ++
src/jester/meta_types.py | 237 ++
src/jester/metacognition.py | 312 ++
src/jester/observatory.py | 427 +++
src/jester/packs.py | 171 ++
src/jester/pipeline.py | 2 +
src/jester/quality_diversity.py | 214 ++
src/jester/research_memory.py | 105 +
src/jester/research_sources.py | 145 +
src/jester/simulators.py | 185 ++
src/jester/types.py | 2 +
tests/test_api.py | 35 +
tests/test_attention_observatory.py | 127 +
tests/test_catalogs.py | 58 +
tests/test_cognition.py | 153 +
tests/test_counterfactuals.py | 43 +
tests/test_earnings_pipeline.py | 4 +-
tests/test_literature_lab.py | 75 +
tests/test_meta_research.py | 89 +
tests/test_research_memory.py | 36 +
tests/test_simulation_ladder.py | 46 +
ui/index.html | 18 +
ui/package-lock.json | 2114 +++++++++++++
ui/package.json | 28 +
ui/src/App.tsx | 1107 +++++++
ui/src/SurfaceScene.tsx | 88 +
ui/src/WorldScene.tsx | 243 ++
ui/src/hooks.ts | 62 +
ui/src/main.tsx | 16 +
ui/src/styles.css | 2634 +++++++++++++++++
ui/src/types.ts | 233 ++
ui/src/vite-env.d.ts | 1 +
ui/tsconfig.app.json | 28 +
ui/tsconfig.json | 7 +
ui/tsconfig.node.json | 18 +
ui/vite.config.ts | 22 +
uv.lock | 2 +-
82 files changed, 17628 insertions(+), 148 deletions(-)
create mode 100644 .github/workflows/pages.yml
create mode 100644 RESEARCH_FOUNDATIONS.md
create mode 100644 design-system/jester-observatory/MASTER.md
create mode 100644 docs/.nojekyll
create mode 100644 docs/images/jester-observatory-desktop.png
create mode 100644 docs/images/jester-observatory-dream-foundry.png
create mode 100644 docs/images/jester-observatory-mobile.png
create mode 100644 docs/index.html
create mode 100644 docs/showcase.css
create mode 100644 docs/showcase.js
create mode 100644 fixtures/attention/synthetic_ranked_manifest.json
create mode 100644 fixtures/literature/live_query_template.json
create mode 100644 fixtures/literature/synthetic_arxiv_feed.xml
create mode 100644 fixtures/literature/synthetic_query.json
create mode 100644 fixtures/meta/synthetic_meta_config.json
create mode 100644 reports/JESTER_COGNITION_ARSENAL_PROOF.md
create mode 100644 reports/JESTER_OBSERVATORY_PROOF.md
create mode 100644 reports/JESTER_V0_2_PROOF.md
create mode 100644 schemas/cognition_arsenal_v1.schema.json
create mode 100644 schemas/literature_learning_batch_v1.schema.json
create mode 100644 schemas/meta_research_v1.schema.json
create mode 100644 schemas/meta_research_v2.schema.json
create mode 100644 schemas/search_attention_snapshot_v1.schema.json
create mode 100644 src/jester/attention.py
create mode 100644 src/jester/attention_types.py
create mode 100644 src/jester/cognition.py
create mode 100644 src/jester/cognition_types.py
create mode 100644 src/jester/counterfactuals.py
create mode 100644 src/jester/data_pipelines.py
create mode 100644 src/jester/intelligence.py
create mode 100644 src/jester/ladder.py
create mode 100644 src/jester/literature.py
create mode 100644 src/jester/literature_types.py
create mode 100644 src/jester/meta_evolution.py
create mode 100644 src/jester/meta_pipeline.py
create mode 100644 src/jester/meta_types.py
create mode 100644 src/jester/metacognition.py
create mode 100644 src/jester/observatory.py
create mode 100644 src/jester/packs.py
create mode 100644 src/jester/quality_diversity.py
create mode 100644 src/jester/research_memory.py
create mode 100644 src/jester/research_sources.py
create mode 100644 src/jester/simulators.py
create mode 100644 tests/test_attention_observatory.py
create mode 100644 tests/test_catalogs.py
create mode 100644 tests/test_cognition.py
create mode 100644 tests/test_counterfactuals.py
create mode 100644 tests/test_literature_lab.py
create mode 100644 tests/test_meta_research.py
create mode 100644 tests/test_research_memory.py
create mode 100644 tests/test_simulation_ladder.py
create mode 100644 ui/index.html
create mode 100644 ui/package-lock.json
create mode 100644 ui/package.json
create mode 100644 ui/src/App.tsx
create mode 100644 ui/src/SurfaceScene.tsx
create mode 100644 ui/src/WorldScene.tsx
create mode 100644 ui/src/hooks.ts
create mode 100644 ui/src/main.tsx
create mode 100644 ui/src/styles.css
create mode 100644 ui/src/types.ts
create mode 100644 ui/src/vite-env.d.ts
create mode 100644 ui/tsconfig.app.json
create mode 100644 ui/tsconfig.json
create mode 100644 ui/tsconfig.node.json
create mode 100644 ui/vite.config.ts
diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml
new file mode 100644
index 0000000..cd53b57
--- /dev/null
+++ b/.github/workflows/pages.yml
@@ -0,0 +1,31 @@
+name: Pages
+
+on:
+ push:
+ branches: ["main"]
+ workflow_dispatch:
+
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+concurrency:
+ group: pages
+ cancel-in-progress: false
+
+jobs:
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v7.0.1
+ - uses: actions/configure-pages@v6.0.0
+ - uses: actions/upload-pages-artifact@v5.0.0
+ with:
+ path: ./docs
+ - name: Deploy public showcase
+ id: deployment
+ uses: actions/deploy-pages@v5.0.0
diff --git a/.gitignore b/.gitignore
index a6bf1bf..273dbab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,8 @@ __pycache__/
.coverage
htmlcov/
dist/
+node_modules/
+.vite/
build/
*.egg-info/
.env
@@ -21,3 +23,4 @@ checkpoints/
*.sqlite
*.sqlite3
*.db
+*.log
diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md
index 9c38c6d..c178d6d 100644
--- a/ARCHITECTURE.md
+++ b/ARCHITECTURE.md
@@ -7,32 +7,177 @@ INGEST -> NORMALIZE -> PERCEIVE -> BELIEF -> INTERVENE -> SIMULATE
-> PRICE -> STRATEGIZE -> EVOLVE -> PROVE -> EXPORT
```
-The first release implements an Earnings Pack vertical slice across all stages. The core is
-deterministic and CPU-first. Learned generative models are optional model-family adapters and may
-activate only after accepted point-in-time training evidence and calibration exist.
+The deterministic Earnings Pack implements a vertical slice across all stages. The v0.2
+meta-research plane operates over immutable pipeline artifacts; it does not modify the runtime
+that produced them. Learned generative models are optional model-family adapters and may activate
+only after accepted point-in-time training evidence, calibration, and independent validation exist.
## Layers
```text
-Read-only API / CLI / governor bundle exporter
+Read-only API / CLI / signed candidate exporter
Proof Court / Holdability Gate / signature verifier
Idea Forge / Belief Exchange / quality-diversity archive
+Dream Foundry / cognitive immune court / invention archive / failure museum
Game Arena / Market Society / option outcome field
Causal scenario lattice / market and volatility twins
Scuttlebutt claim graph / point-in-time world-state graph
Immutable evidence vault / event log / clocks / semantic RNG
```
+## Protected meta-research plane
+
+```text
+Base artifact
+ -> explicit simulator and market-pack catalogs
+ -> social counterfactual ablation
+ -> competing causal-graph tournament
+ -> Levels 0-7 simulation ladder
+ -> bounded deterministic island evolution
+ -> bounded wake-dream-consolidate-awaken cognition
+ -> evidence-debt and falsification immune court
+ -> invention quality-diversity archive and failure museum
+ -> quality-diversity archive
+ -> prediction-before-outcome and interoception
+ -> authority-monotone budget controller
+ -> independent research gates
+ -> append-only research memory
+```
+
+The controller may only preserve or reduce a requested candidate budget. Evolution may change
+hypothesis genomes but every descendant is proposal-only until independently resimulated.
+Evaluators, sealed tests, source code, signing policy, and authority rules are protected targets.
+
+## Cognitive invention plane
+
+```text
+Immutable hypothesis + failure library + causal disagreement
+ + admitted zero-credit scientific cognition seeds
+ -> semantic selection from 24 typed cognitive operators
+ -> REM divergence
+ -> NREM semantic fingerprinting and compression
+ -> lucid counter-evidence plus hard-constraint reinstatement
+ -> awakening extraction of mechanism, countermechanism, and falsifiers
+ -> seven-check cognitive immune court
+ -> evidence-debt-aware multi-objective scoring
+ -> invention quality-diversity archive
+ -> museum of beautiful failures
+ -> independent resimulation proposal only
+```
+
+The cognition plane is generative research infrastructure, not an empirical model.
+It may create synthetic worlds and invention blueprints. It may not fabricate
+evidence, grant causal credit, mutate code or evaluators, alter gates, activate an
+adapter, construct an order, or increase authority. A dream temperature changes the
+number of composed cognitive operators only. The same semantic seed, parent artifact,
+budget, cycles, and temperature reproduce the same lineage and content hash.
+Later dream phases carry explicit parent-dream identities and recursive ablations;
+they refine a proposal lineage without modifying the runtime that generated it.
+
+Simulator families are registered, never silently substituted. An adapter contract with missing
+data, implementation, or calibration is reported as blocked and contributes no empirical credit.
+Competing causal graphs are scored independently and expose disagreement.
+
+## Simulation ladder
+
+| Level | Environment | Evidence class |
+|---|---|---|
+| 0 | Exact replay | Mechanics |
+| 1 | Historical perturbation | Mechanics |
+| 2 | Regime-conditioned synthetic worlds | Mechanics |
+| 3 | Causal intervention | Mechanics |
+| 4 | Agent society | Mechanics |
+| 5 | Adversarial worlds | Mechanics |
+| 6 | Forward shadow | Point-in-time research |
+| 7 | Bounded paper outcomes | Forward paper |
+
+Passing a higher synthetic level never substitutes for missing Level 6 or 7 evidence.
+
+## Scientific Literature Lab
+
+```text
+Reviewed source query
+ -> versioned Atom metadata
+ -> point-in-time and category admission
+ -> immutable paper record
+ -> deterministic theme mapping
+ -> falsifiable research capsule
+ -> experiment proposal with zero empirical credit
+ -> append-only research memory
+```
+
+The implemented source is arXiv descriptive metadata. Full-text files are linked but not
+downloaded or mirrored. Crossref enrichment remains an adapter contract. Papers cannot activate
+simulators, mutate source, or bypass independent reproduction.
+
+## Attention Observatory
+
+```text
+Permitted ranked-search export
+ -> explicit host and terms allowlist
+ -> robots.txt decision
+ -> metadata-only page fetch
+ -> immutable ranked attention snapshot
+ -> chronological churn/rank/metadata delta
+ -> social ablation and proof gates
+```
+
+Search prominence, Wikipedia pageviews, and web-crawl presence are distinct proxies. None is
+silently relabeled as query volume, user intent, or causal market demand. General search-engine
+HTML scraping, authentication, redirects, CAPTCHA bypass, and anti-bot evasion are prohibited.
+
The runtime stores content-addressed evidence and append-only indexes outside the source tree.
Repository fixtures prove mechanics only and never certify market fidelity or predictive edge.
The ordinary option lane rejects 0DTE contracts whose lifecycle crosses the permitted exit.
A dedicated jump- and expiry-aware 0DTE pricer remains fail-closed and is not implemented in
the first public vertical slice.
+## Evidence and intelligence mesh
+
+Jester registers source capability before connector implementation. A pipeline contract fixes:
+
+```text
+identity + access mode + cadence
+ + event/publication/availability/ingestion/revision clocks
+ + retained fields + permissions
+ + intelligence consumers + quality gates
+ + activation requirements + limitations
+```
+
+The initial mesh covers official filing, macro-vintage, Treasury, regulatory-positioning,
+clinical-trial, patent, scholarly, public-attention, licensed-options, and licensed-order-book
+planes. Only immutable local artifacts, arXiv metadata, and admitted ranked-search metadata are
+operational. All other entries are visible adapter or licensing contracts and receive no data or
+model credit.
+
+Intelligence services compose over admitted pipelines. Temporal fusion, entity resolution,
+contradiction preservation, attention divergence, scientific-claim firewalls, causal-graph
+committees, provenance-poisoning defense, and bounded active-research routing have deterministic
+mechanics. Source calibration, revision surprise, cross-market transmission, the option-expression
+critic, and simulation-gap direction remain gated by missing resolved or licensed evidence.
+Every intelligence service has `authority_effect=none`.
+
+## 3D read-only observatory
+
+The React 19 and Three.js interface consumes `/observatory/bootstrap` plus the catalog endpoints.
+Its five inspectable modes are:
+
+- World: orbitable causal topology with an accessible system-selector mirror.
+- Options: joint moneyness/tenor/IV geometry and pathwise option failure table.
+- Meta: quality-diversity niches, interoception, simulation ladder, and paper capsules.
+- Dream: wake/dream/consolidation phases, 24 cognition operators, inventions,
+ immune checks, evidence debt, and failure memory.
+- Sources: filterable pipeline contracts and their composable intelligence mesh.
+
+Charts have text or table equivalents, controls are keyboard reachable, touch targets meet the
+mobile minimum, motion respects `prefers-reduced-motion`, and layouts are validated at desktop,
+phone, and landscape breakpoints. The frontend is observability only; no API mutation or execution
+route exists.
+
## External boundaries
- Credential-free official sources may be fetched by reviewed connector classes.
- Market, options, transcript, and social evidence arrive through operator-staged manifests.
- Intelligence providers receive only records whose permission allows external processing.
-- Governor export is a signed file protocol. No downstream repository is imported.
+- Candidate export is a signed file protocol. No external repository is imported.
- Read-only observability is exposed over localhost. Mutation remains CLI/config controlled.
diff --git a/JESTER_CONSTITUTION.md b/JESTER_CONSTITUTION.md
index 3cda9cc..53804b5 100644
--- a/JESTER_CONSTITUTION.md
+++ b/JESTER_CONSTITUTION.md
@@ -1,6 +1,6 @@
# Jester Constitution
-Version: `jester-constitution-v1`
+Version: `jester-constitution-v2`
## Authority
@@ -9,9 +9,9 @@ counterfactual scenarios, simulate markets and options, evolve research hypothes
beliefs, and export signed research candidates.
Jester has no authority to connect to a broker, inspect an account, size against buying power,
-construct an executable order, cancel an order, or submit capital. A downstream human-owned
-governor independently decides whether a signed research candidate may enter its own proof and
-paper lifecycle.
+construct an executable order, cancel an order, or submit capital. An independent,
+operator-controlled policy decides whether a signed research candidate may enter a separate
+proof and paper lifecycle.
## Evidence law
@@ -38,3 +38,54 @@ Jester may autonomously evolve hypothesis genomes, belief calibration, bounded n
parameters, archive occupancy, and research scheduling. It may emit source-code mutation
proposals, but it may not apply or merge them. Source code, evaluators, sealed test data, proof
gates, signing policy, and authority rules are protected mutation targets.
+
+Every autonomous cycle must:
+
+1. Predict a resolvable research outcome before observing it.
+2. Preserve parent identities and mutation lineage.
+3. Label unresimulated descendants as proposals with no empirical credit.
+4. Keep competing causal graphs separate and expose their disagreement.
+5. Persist resolved failures and calibration errors in append-only memory.
+6. Preserve or reduce requested budgets when pressure rises; it may never expand authority.
+7. Require independent evaluation before any research promotion.
+
+An adapter contract is not an implementation. A mechanics-validated baseline is not an
+empirically calibrated market simulator. Synthetic diversity is not profitability.
+
+## Cognitive-invention law
+
+1. Dream worlds are synthetic stress artifacts and receive zero empirical or causal credit.
+2. Cognitive operators must be typed, content-addressed, deterministic, and independently
+ evaluable; prose variation alone is not novelty.
+3. Every invention must expose a countermechanism, assumptions, evidence debt, a minimal
+ decisive experiment, and at least two falsifiers.
+4. Cross-domain analogies transfer structural relations only. They never transfer observed
+ frequencies, market truth, or evidence status.
+5. The cognitive immune court may quarantine ideas but the invention process may not modify
+ that court, its thresholds, evaluator contracts, or sealed evidence.
+6. Dream temperature may change compositional breadth only. It may not increase authorized
+ budgets, system authority, empirical credit, or promotion status.
+7. Under-evidenced, displaced, and quarantined inventions remain in the append-only failure
+ museum with a revival condition.
+8. Every invention is proposal-only, auto-apply disabled, live blocked, incapable of order
+ construction, and requires independent full-ladder resimulation.
+
+## Scientific-learning law
+
+1. Paper title, abstract, authors, identifier, category, and version are evidence with distinct
+ update and ingestion clocks.
+2. A preprint is an unverified claim, not peer review, replication, or market truth.
+3. Literature-derived changes begin as falsifiable experiment proposals with zero empirical
+ credit.
+4. Full text may not be mirrored without an explicit compatible license and reviewed policy.
+5. Paper revisions append; prior versions and capsules are never silently overwritten.
+6. Literature may not activate simulators, mutate proof gates, or increase authority.
+
+## Attention-collection law
+
+1. Every scraped host requires explicit policy and terms admission plus an allowing robots rule.
+2. Authentication, credentials, redirects, CAPTCHA solving, and anti-bot bypass are forbidden.
+3. Only metadata and response hashes persist; HTML bodies do not.
+4. Rank, churn, metadata change, pageviews, and crawl presence remain distinct proxy classes.
+5. A prominence proxy may generate or reweight a hypothesis but receives no causal or trading
+ credit without timing controls, ablation, and independent proof.
diff --git a/QUALITY_GATES.yaml b/QUALITY_GATES.yaml
index c35abe0..65a76d3 100644
--- a/QUALITY_GATES.yaml
+++ b/QUALITY_GATES.yaml
@@ -1,4 +1,4 @@
-version: 1
+version: 2
authority:
broker_dependency_allowed: false
credential_storage_allowed: false
@@ -27,6 +27,54 @@ autonomy:
source_auto_apply_allowed: false
failed_trial_ledger_required: true
quarantine_and_rollback_required: true
+ prediction_before_outcome_required: true
+ proposal_resimulation_required: true
+ authority_monotonicity_required: true
+ append_only_research_memory_required: true
+ lineage_preservation_required: true
+simulation_ladder:
+ exact_replay_level_0_required: true
+ mechanics_levels_0_through_5_required: true
+ forward_shadow_level_6_requires_resolved_outcomes: true
+ bounded_paper_level_7_requires_forward_shadow: true
+ synthetic_levels_may_substitute_for_forward_evidence: false
+meta_evaluation:
+ competing_causal_graphs_required: true
+ silent_model_averaging_allowed: false
+ social_counterfactual_ablation_required: true
+ quality_diversity_archive_required: true
+ held_out_meta_non_regression_required_for_promotion: true
+cognitive_invention:
+ typed_operator_catalog_required: true
+ semantic_determinism_required: true
+ dream_worlds_synthetic_only_required: true
+ dream_worlds_may_receive_empirical_credit: false
+ countermechanism_required: true
+ evidence_debt_required: true
+ falsifiers_required: true
+ cognitive_immune_court_required: true
+ lineage_fingerprinting_required: true
+ failure_museum_required: true
+ prior_art_challenge_required: true
+ code_mutation_allowed: false
+ evaluator_mutation_allowed: false
+ auto_apply_allowed: false
+ order_construction_allowed: false
+scientific_learning:
+ point_in_time_paper_version_required: true
+ abstract_claims_authoritative: false
+ peer_review_may_be_inferred_from_preprint: false
+ independent_replication_required: true
+ paper_derived_source_auto_apply_allowed: false
+ unlicensed_full_text_mirroring_allowed: false
+attention:
+ explicit_source_terms_required: true
+ robots_allow_required: true
+ authentication_allowed: false
+ anti_bot_bypass_allowed: false
+ page_body_persistence_allowed: false
+ search_prominence_may_be_labeled_search_volume: false
+ attention_proxy_may_receive_direct_causal_credit: false
claims:
synthetic_mechanics_may_certify_forward_edge: false
reconstructed_results_may_certify_forward_performance: false
diff --git a/README.md b/README.md
index 68e47d4..38a18ba 100644
--- a/README.md
+++ b/README.md
@@ -1,178 +1,418 @@
+
+
# Jester
-**A causal market-world, narrative-intelligence, game-theory, and long-option
-research engine.**
+### Simulate the market world, not just the price.
+
+**A deterministic causal market-imagination engine for point-in-time evidence,
+narrative propagation, strategic participants, volatility surfaces, executable
+long-option outcomes, and open-ended scientific discovery.**
+
+[](https://github.com/ObtuseAI/jester/actions/workflows/quality.yml)
+[](https://github.com/ObtuseAI/jester/releases/tag/v0.2.0)
+[](https://www.python.org/)
+[](#authority-boundary)
+[](LICENSE)
+
+[**Explore the interactive showcase**](https://obtuseai.github.io/jester/) ·
+[Architecture](ARCHITECTURE.md) ·
+[Research foundations](RESEARCH_FOUNDATIONS.md) ·
+[Run locally](#quick-start)
+
+
-Jester asks a narrower and harder question than a stock predictor:
+Jester asks:
> Given only the information available at this exact moment, which market worlds
-> are plausible—and can a real long call or long put survive volatility, liquidity,
-> timing, and a downstream governor's holding constraints?
+> are plausible, how could participants react, how might price and the volatility
+> surface evolve, and can an executable long call or put survive the configured
+> execution and holding constraints?
+
+[](https://obtuseai.github.io/jester/)
+
+## At a glance
+
+| 24 cognition operators | 15 data pipelines | 13 intelligence services |
+|---:|---:|---:|
+| **10** simulator families | **8** market packs | **37** integration and proof tests |
+
+Jester is not a stock screener with an extra language-model layer. It is an
+event-sourced research instrument that preserves what was knowable, builds
+competing causal explanations, places diverse participants inside simulated
+market worlds, evolves hypotheses without erasing failures, and translates every
+surviving thesis into the pathwise economics of the actual option.
-The first public release is a deterministic Earnings Pack vertical slice. It turns
-point-in-time evidence into a signed, replayable candidate bundle without possessing
-broker credentials, order authority, or a live-submit path.
+The **Jester Observatory** is a responsive, read-only 3D research cockpit. It lets
+an operator orbit the causal market world, inspect the option-volatility surface,
+replay the proof ladder, explore the quality-diversity archive, and audit every
+data-pipeline, intelligence, dream, and invention contract. It deliberately contains no order,
+broker, credential, or execution control.
-## The research chain
+Jester v0.2 expands the deterministic Earnings Pack into a recursively composable
+research system. It preserves competing causal explanations, searches a diverse
+ecology of hypothesis lineages, predicts its own research progress before seeing
+the result, and reduces its search budget when internal pressure rises.
+
+It does **not** possess broker credentials, construct orders, submit capital,
+mutate its evaluators, or apply its own source-code proposals.
+
+## Architecture
```mermaid
flowchart LR
- A["Immutable Evidence Vault"] --> B["Scuttlebutt claim graph"]
+ A["Immutable evidence vault"] --> B["Narrative claim graph"]
A --> C["Point-in-time world state"]
- B --> D["Competing causal worlds"]
+ B --> D["Competing causal graph tournament"]
C --> D
- D --> E["Numerical market society"]
- E --> F["Strategic game arena"]
- F --> G["Evolutionary idea forge"]
- G --> H["Option outcome field"]
- H --> I["Independent proof court"]
- I --> J["Signed governor candidate"]
- J --> K["Downstream governor decides"]
+ D --> E["Simulation ladder: Levels 0-7"]
+ E --> F["Market society and game arena"]
+ F --> G["Option outcome field"]
+ G --> H["Protected island evolution"]
+ H --> I["Oneiric cognition arsenal"]
+ I --> J["Cognitive immune court"]
+ J --> K["Quality-diversity archives"]
+ K --> L["Prediction and interoception"]
+ L --> M["Independent proof gates"]
+ M --> N["Signed research candidate"]
```
-Every candidate traverses the complete chain. Social activity can generate or
-reweight hypotheses, but it cannot authorize a candidate. A directionally correct
-stock thesis can still be rejected when the option loses through IV crush, decay,
-spread, fill risk, or an earliest-exit mismatch.
-
-## What exists today
-
-- Immutable evidence identities with distinct event, publication, market-availability,
- ingestion, and revision clocks.
-- Claim graphs that preserve originality, propagation, incentives, contradiction,
- saturation, manipulation risk, and price-leading versus price-following behavior.
-- Multiple causal graphs and explicit observed, candidate-causal, supported-intervention,
- and stress-only edges.
-- A six-world Earnings Pack lattice spanning guidance conflict, IV crush, narrative
- reflexivity, catalyst delay, and adversarial liquidity.
-- Thirteen numerical participant classes and Bayesian, signaling, congestion,
- adverse-selection, and repeated-session games.
-- Correlation-clustered specialist beliefs with Brier and log-loss settlement.
-- A lineage-preserving hypothesis genome and quality-diversity archive primitive.
-- Joint underlying/IV/liquidity option paths, Black–Scholes baseline repricing,
- static-arbitrage checks, fill modeling, P&L attribution, and a hard Holdability Gate.
-- An independent proof manifest and canonical Ed25519 candidate signing.
-- A bounded inbox supervisor and local read-only observatory API.
-
-Advanced stochastic-volatility, rough-volatility, generative order-book, and calibrated
-full-surface models are extension interfaces—not claimed as implemented or validated in
-this release.
+The integration traces the complete chain:
-## Authority boundary
+```text
+claim -> belief -> participant reaction -> order-flow pressure
+ -> underlying/IV/liquidity path -> executable option outcome
+```
-Jester is structurally research-only:
+## System overview
+
+- Exact, hash-chained point-in-time replay with semantic deterministic randomness.
+- Structured claims with provenance, incentive, propagation, contradiction,
+ saturation, manipulation, and price-leading controls.
+- Seven social counterfactual ablations, including absent, inverted, delayed,
+ manipulated, confirmed, and contradicted narrative worlds.
+- Multiple causal graphs scored independently; silent ensemble averaging is forbidden.
+- A Level 0–7 simulation ladder:
+ exact replay, historical perturbation, synthetic regimes, causal interventions,
+ agent society, adversarial worlds, forward shadow, and bounded paper outcomes.
+- Thirteen numerical participant classes and Bayesian-information, signaling,
+ congestion, adverse-selection, and repeated-session games.
+- Joint price/IV/liquidity option paths, static-arbitrage checks, fill modeling,
+ attribution, and a hard Holdability Gate.
+- A simulator registry that distinguishes operational baselines from blocked
+ neural/rough-volatility/order-book adapter contracts.
+- Eight market-pack contracts with explicit evidence, simulator, and validation gates.
+- Deterministic island evolution with half-life mutation, regime transplantation,
+ evidence ablation, adversarial inversion, and cross-lineage crossover.
+- A 24-mode cognition arsenal spanning abductive, analogical, dialectical,
+ counterfactual, strategic, temporal, compressive, divergent, adversarial, and
+ falsification-first invention.
+- A four-phase Dream Foundry: REM divergence, NREM consolidation, lucid
+ intervention, and awakening debrief.
+- Typed invention blueprints with countermechanisms, structural analogy maps,
+ evidence debt, minimum decisive experiments, prior-art challenges, and falsifiers.
+- A cognitive immune court that rejects authority leakage, evidence-lineage
+ violations, circular explanations, analogy overreach, and unfalsifiable output.
+- A Museum of Beautiful Failures that preserves under-evidenced, dominated, and
+ quarantined lineages without granting empirical credit.
+- A MAP-Elites-style quality-diversity archive that preserves distinct niches.
+- Prediction-before-outcome, proper-score resolution, interoceptive pressure
+ diagnosis, and an authority-monotone budget controller.
+- Append-only SQLite research memory protected against update and deletion.
+- A Scientific Literature Lab that discovers versioned arXiv metadata, applies
+ point-in-time cutoffs, and converts abstracts into falsifiable zero-credit
+ research capsules.
+- A robots-aware Attention Observatory for staged ranked-search URLs, metadata
+ mutation, result churn, rank movement, and source-diversity proxies.
+- Fifteen permissioned pipeline contracts spanning immutable artifacts, arXiv,
+ staged search metadata, SEC EDGAR, FRED/ALFRED vintages, Treasury curves,
+ FINRA short volume, CFTC positioning, Crossref/retractions, ClinicalTrials.gov,
+ Wikimedia, USPTO, licensed option chains, and licensed order books.
+- Thirteen composable intelligence contracts for temporal fusion, entity resolution,
+ contradiction, attention divergence, scientific claim firewalls, revision surprise,
+ cross-market transmission, option-expression criticism, simulation-gap direction,
+ provenance defense, and active research routing.
+- Independent proof manifests, Ed25519 research-bundle signing, a bounded supervisor,
+ and a read-only observatory.
+
+All evolved descendants are `proposal_only` and `requires_resimulation`. Archive
+novelty is not evidence of edge.
+
+## Dream Foundry and cognition arsenal
+
+
+
+Jester does not ask an unconstrained model to brainstorm. It composes inspectable
+cognitive operators over an immutable hypothesis, assigns each imagined world a
+semantic RNG lineage, and separates divergent invention from independent evaluation.
+Every dream is `synthetic_only=true`, `stress_only=true`, and
+`empirical_credit=false`.
+
+Dream output is useful only as a falsifiable research blueprint. Each blueprint
+records:
+
+- the problem gap and proposed mechanism;
+- the strongest countermechanism;
+- a relation-level cross-domain analogy and explicit break tests;
+- expected state, underlying, IV-surface, and narrative paths;
+- assumptions, evidence debt, required measurements, and transfer tests;
+- a minimal decisive experiment and concrete falsifiers;
+- a lineage fingerprint and a bounded novelty claim;
+- `auto_apply=false`, `requires_independent_resimulation=true`,
+ `live_blocked=true`, and `order_construction_allowed=false`.
+
+The quality-diversity archive retains strong inventions by cognitive niche. Ideas
+below the frozen utility floor are not erased: they enter the failure museum with
+their lesson and a strict revival condition. Dream temperature increases operator
+composition breadth; it never expands authority, empirical credit, or research
+budget.
+
+Autonomous scientific capsules may seed this process. Their paper and capsule IDs,
+unverified trust state, proposed mechanism, experiment, and falsification question
+remain attached. A seeded dream gains replication debt—not empirical credit—and
+every subsequent recursive dream preserves an explicit parent-dream ID plus an
+ablation that can remove the inherited structure.
+
+## Autonomous scientific learning
+
+The literature loop uses the official arXiv Atom metadata API. It freezes the paper
+version, publication/update/ingestion clocks, categories, identifiers, license URI,
+abstract, and raw/normalized hashes. It then maps each abstract to:
+
+- candidate mechanisms;
+- affected Jester systems;
+- sealed experiment blueprints;
+- explicit falsification questions;
+- limitations and replication requirements.
+
+Every capsule is an `unverified_scientific_claim` with `auto_apply=false` and
+`empirical_credit=false`. Jester does not mirror PDFs, infer peer review from an
+arXiv record, activate an adapter, or relax a gate because a paper claims success.
+An identical autonomous query is limited to one refresh per day, with one connection
+and source-compliant retry pacing.
+
+## Attention Observatory
+
+Jester can collect metadata for a staged ranked-search result set when an operator
+supplies the provider's permitted export and an explicit domain/terms policy. Before
+fetching each page it requires HTTPS, an admitted host, and an allowing `robots.txt`.
+It refuses authentication, redirects, CAPTCHA/anti-bot bypass, non-HTML content, and
+undeclared sources.
+
+Across snapshots it measures result churn, rank movement, metadata mutation,
+reciprocal-rank mass, and source diversity. These are labeled **search-prominence
+proxies**. They are not represented as search volume, user intent, or causal market
+signals. Direct scraping of unapproved search-engine result pages is prohibited.
+
+## Honest simulator catalog
+
+Operational mechanics include exact replay, deterministic regime resampling,
+typed causal intervention, numerical market society, and adversarial world
+construction.
+
+The repository also defines fail-closed adapter contracts for TNCM-VAE causal
+simulation, multidimensional queue-reactive order books, LOB diffusion, conditional
+IV-surface diffusion, and rough volatility. Those adapters remain blocked until
+accepted data, implementation, calibration, and independent validation exist.
+No baseline is relabeled as a learned frontier model.
+
+See [RESEARCH_FOUNDATIONS.md](RESEARCH_FOUNDATIONS.md) for the primary research
+basis and exact claim boundary.
+
+## Authority boundary
| Capability | Status |
|---|---|
-| Generate market-world hypotheses | Allowed |
+| Generate and evolve market hypotheses | Allowed |
| Simulate long calls and long puts | Allowed |
-| Produce paper candidate artifacts | Allowed |
-| Sign replayable research bundles | Allowed |
+| Preserve research memory and failed lineages | Allowed |
+| Reduce its own research budget | Allowed |
+| Produce and sign paper candidate artifacts | Allowed |
+| Activate uncalibrated simulator adapters | Blocked |
+| Mutate evaluators or proof gates | Prohibited |
+| Auto-apply source changes | Prohibited |
| Read broker credentials | Absent |
| Construct or submit orders | Prohibited |
-| Decide downstream acceptance | Prohibited |
-| Auto-apply self-written code | Prohibited |
+| Self-authorize promotion | Prohibited |
-Candidate bundles carry `paper_only=true`, `live_blocked=true`,
-`order_construction_allowed=false`, and `execution_authority=none`. The schema is in
-[`schemas/governor_candidate_bundle_v1.schema.json`](schemas/governor_candidate_bundle_v1.schema.json).
+Candidate and meta artifacts carry explicit paper-only, live-blocked, no-order,
+no-execution authority. An independent operator policy accepts or rejects them.
## Quick start
-Requirements: Python 3.12 or 3.13 and
-[`uv`](https://docs.astral.sh/uv/).
+Requirements: Python 3.12 or 3.13 and [uv](https://docs.astral.sh/uv/).
```powershell
uv sync --extra dev
+
uv run jester run `
--input fixtures/earnings/synthetic_candidate.json `
--output artifacts/synthetic-candidate.json
-uv run jester inspect --artifact artifacts/synthetic-candidate.json
+
+uv run jester meta-run `
+ --input fixtures/earnings/synthetic_candidate.json `
+ --output artifacts/meta-synthetic.json `
+ --memory artifacts/research-memory.sqlite3 `
+ --created-at 2026-07-29T12:00:00Z `
+ --pack earnings `
+ --generations 4 `
+ --candidate-budget 16 `
+ --islands 4 `
+ --root-seed 2202 `
+ --cognition-budget 12 `
+ --dream-cycles 4 `
+ --dream-temperature 0.72 `
+ --forward-outcomes 0 `
+ --paper-outcomes 0 `
+ --required-forward-outcomes 50 `
+ --required-paper-outcomes 30 `
+ --resimulated-descendants 0 `
+ --gap-observations 0 `
+ --gap-pressure 0.5
+
+uv run jester catalog --output artifacts/catalog.json
```
-The included fixture is deliberately synthetic and redistributable. It proves replay,
-economics, rejection, and authority behavior; it is not evidence of market performance.
+Run the cognition plane independently when an inspectable invention artifact is
+needed without the rest of the meta pipeline:
+
+```powershell
+uv run jester cognition-run `
+ --input fixtures/earnings/synthetic_candidate.json `
+ --literature-batch artifacts/literature-replay-v0.2-final.json `
+ --output artifacts/cognition-synthetic.json `
+ --memory artifacts/research-memory.sqlite3 `
+ --created-at 2026-07-29T12:00:00Z `
+ --root-seed 2202 `
+ --dream-budget 12 `
+ --authorized-dream-budget 8 `
+ --dream-cycles 4 `
+ --dream-temperature 0.72
+```
-Run the complete release gate:
+After the target cycle resolves, close the prediction with an explicit outcome
+and persist its proper score:
```powershell
-uv run ruff format --check .
-uv run ruff check .
-uv run mypy
-uv run pytest
-uv build
-uv run python scripts/validate_public_release.py
+uv run jester meta-resolve `
+ --input artifacts/meta-synthetic.json `
+ --output artifacts/meta-resolution.json `
+ --memory artifacts/research-memory.sqlite3 `
+ --actual-archive-gain 0.2 `
+ --non-regression true `
+ --resolved-at 2026-08-01T12:00:00Z
```
-## Signed handoff
+The public fixture is synthetic and redistributable. It proves mechanics,
+determinism, rejection, and authority behavior—not market fidelity or performance.
+Its expected honest state is Levels 0–5 passed and Levels 6–7 blocked.
-Jester never creates or stores a signing key. Supply a 32-byte Ed25519 seed owned by
-the operator:
+Run one live, bounded scientific metadata scan after setting a real project contact
+in the user agent:
```powershell
-uv run jester sign `
- --input artifacts/unsigned-bundle.json `
- --output artifacts/signed-bundle.json `
- --key .operator/jester-ed25519.key `
- --key-id operator-research-key
+uv run jester literature-scan `
+ --manifest fixtures/literature/live_query_template.json `
+ --output artifacts/literature-batch.json `
+ --memory artifacts/research-memory.sqlite3 `
+ --ingestion-time 2026-07-29T18:00:00Z `
+ --user-agent "JesterResearch/0.2 (mailto:operator@example.com)" `
+ --timeout-seconds 30 `
+ --retries 3
+```
-uv run jester verify --bundle artifacts/signed-bundle.json
+The deterministic public replay does not use the network:
+
+```powershell
+uv run jester literature-replay `
+ --manifest fixtures/literature/synthetic_query.json `
+ --feed fixtures/literature/synthetic_arxiv_feed.xml `
+ --output artifacts/literature-replay.json `
+ --memory artifacts/research-memory.sqlite3 `
+ --ingestion-time 2026-07-29T12:01:00Z
```
-The synthetic pipeline result contains its unsigned bundle under `unsigned_bundle`.
-Extract and sign it outside the evidence plane:
+`literature-supervise` runs the same scan as a bounded daily loop. It requires
+`cutoff_policy=scan_time`, an explicit cycle limit, and a polling interval no shorter
+than the manifest's daily refresh boundary.
+
+Attention collection uses `attention-scrape` with an admitted ranked-URL manifest;
+`attention-compare` produces the chronological delta. No general-purpose or
+unapproved SERP scraper exists.
+
+## 3D Observatory
+
+The UI requires Node.js and npm. Run the API and Vite development server in
+separate terminals:
```powershell
-uv run jester export-bundle `
- --result artifacts/synthetic-candidate.json `
- --output artifacts/unsigned-bundle.json
+uv run jester serve `
+ --artifact-root artifacts `
+ --host 127.0.0.1 `
+ --port 8000
+
+Set-Location ui
+npm.cmd install
+npm.cmd run dev
```
-Production integrations should pass the signed artifact to a downstream governor through
-a file or equivalent one-way transport.
+Open `http://127.0.0.1:5173`. Vite proxies only read requests to the localhost
+Jester API. The displayed reference world is explicitly labeled
+`synthetic_mechanics_fixture`; an unavailable API produces a visible hard error,
+not a hidden fallback.
+
+Validate the frontend with:
+
+```powershell
+Set-Location ui
+npm.cmd run typecheck
+npm.cmd run build
+```
-## Bounded autonomy
+Desktop and mobile reference renders are stored in
+`docs/images/jester-observatory-desktop.png` and
+`docs/images/jester-observatory-mobile.png`. The fifth **Dream** mode exposes the
+cycle topology, all 24 operators, invention blueprints, cognitive immune court,
+and failure museum. Its dedicated reference render is
+`docs/images/jester-observatory-dream-foundry.png`.
-The supervisor processes immutable JSON manifests. It never deletes or moves source
-inputs, never retries a failed item silently, and emits an explicit blocked artifact:
+## Validation
```powershell
-uv run jester supervise `
- --inbox .operator/inbox `
- --outbox .operator/outbox `
- --errors .operator/errors `
- --max-cycles 10 `
- --max-items 100 `
- --poll-seconds 5
+uv run ruff format --check .
+uv run ruff check .
+uv run mypy
+uv run pytest
+uv build
+uv run python scripts/validate_public_release.py
```
-Evolution is also bounded. Jester may mutate research genomes, measure niche diversity,
-and write code-change proposals. `auto_apply` is always false; independent evaluation
-and an operator-controlled software workflow remain required.
+## Signed handoff
-## Optional narrative model
+Jester never creates or stores a signing key. An operator may supply a 32-byte
+Ed25519 seed outside the evidence plane:
-`OpenRouterClient` is a permission-gated connector for claim interpretation and
-behavioral variation. It is not used for pricing, proof, calibration, or authority
-decisions. Inputs may be sent only when the evidence record permits external-model
-processing. Provider failure is explicit after the configured retry budget; there is
-no hidden model fallback.
+```powershell
+uv run jester export-bundle `
+ --result artifacts/synthetic-candidate.json `
+ --output artifacts/unsigned-bundle.json
-## Evidence and data
+uv run jester sign `
+ --input artifacts/unsigned-bundle.json `
+ --output artifacts/signed-bundle.json `
+ --key .operator/jester-ed25519.key `
+ --key-id operator-research-key
-No proprietary, licensed, scraped, or historical market dataset is distributed here.
-See [`DATA_NOTICE.md`](DATA_NOTICE.md). Real research intake must preserve permissions,
-retention, content hashes, and all point-in-time clocks. A repaired volatility surface
-must be labeled repaired and cannot be represented as an observed simulator output.
+uv run jester verify --bundle artifacts/signed-bundle.json
+```
## Status standard
-Jester is **state-of-the-art-inspired**, not proven state of the art. Promotion requires
-a frozen forward-paper A/B comparison against the same universe, cutoff, capital,
-contracts, execution simulator, holding rules, and costs—and independent replication
-of improved executable P&L, calibration, downside control, holdability, fill realism,
-false-positive rejection, and simulation-to-forward agreement.
+Jester is **state-of-the-art-inspired and architecturally novel**, not proven
+state of the art. That stronger claim requires frozen forward-paper A/B results
+against the same universe, evidence cutoff, capital rules, contract eligibility,
+execution simulator, holding restrictions, and costs—followed by independent
+replication.
-Architecture and invariants are detailed in
-[`ARCHITECTURE.md`](ARCHITECTURE.md) and
-[`JESTER_CONSTITUTION.md`](JESTER_CONSTITUTION.md).
+See [ARCHITECTURE.md](ARCHITECTURE.md),
+[JESTER_CONSTITUTION.md](JESTER_CONSTITUTION.md), and
+[QUALITY_GATES.yaml](QUALITY_GATES.yaml) for the enforceable boundaries.
diff --git a/RESEARCH_FOUNDATIONS.md b/RESEARCH_FOUNDATIONS.md
new file mode 100644
index 0000000..8f6694a
--- /dev/null
+++ b/RESEARCH_FOUNDATIONS.md
@@ -0,0 +1,107 @@
+# Research foundations and claim boundary
+
+Jester v0.2 is an original integration informed by primary research. The repository
+implements deterministic contracts, baselines, evaluation boundaries, and protected
+meta-research mechanics. It does not claim to reproduce paper results, training data,
+weights, or empirical performance.
+
+## Causal market simulation
+
+- [Towards Causal Market Simulators](https://arxiv.org/abs/2511.04469) motivates learned
+ causal trajectories and counterfactual interventions. Jester implements typed competing
+ causal graphs and an adapter contract; it does not claim a trained TNCM-VAE.
+
+## Market microstructure
+
+- [Deep Learning Meets Queue-Reactive](https://arxiv.org/abs/2501.08822) motivates
+ multidimensional queue-reactive event simulation.
+- [Painting the Market](https://arxiv.org/abs/2509.05107) motivates spatiotemporal LOB
+ diffusion, controllable inpainting, and explicit benchmark scrutiny.
+
+Jester registers both as blocked adapters pending licensed book data, market-specific
+calibration, implementation, and independent stylized-fact and fill validation.
+
+## Volatility-surface generation
+
+- [Forecasting Implied Volatility Surface with Generative Diffusion Models](https://arxiv.org/abs/2511.07571)
+ motivates conditional surface generation and arbitrage-aware training.
+- [Volatility is Rough](https://arxiv.org/abs/1410.3394) is used here only as the
+ registered rough-volatility research lineage.
+
+Jester's implemented public baseline remains ordinary deterministic option repricing.
+The IV-diffusion and rough-volatility entries are blocked adapter contracts.
+
+## Open-ended algorithm discovery
+
+- [AlphaEvolve](https://arxiv.org/abs/2506.13131) motivates a program database,
+ evaluator-guided evolution, and diverse search.
+- [CORAL](https://arxiv.org/abs/2604.01658) motivates persistent memory, isolated work,
+ evaluator separation, and sustained multi-agent research.
+
+Jester applies those principles to typed hypothesis genomes, not autonomous source changes.
+Its proof court, authority constitution, and tests cannot be mutated by the research loop.
+
+## Structured invention and dream consolidation
+
+- [MAP-Elites](https://arxiv.org/abs/1504.04909) motivates preserving the best
+ qualitatively different solutions across an explicit behavior space instead of
+ converging on one global champion.
+- [Surprise Search](https://arxiv.org/abs/1706.02556) motivates deviation from
+ predicted future archive behavior, distinct from merely differing from past items.
+- [DreamCoder](https://arxiv.org/abs/2006.08381) motivates wake-sleep alternation,
+ imagined problems, replay, compositional abstraction, and interpretable knowledge
+ consolidation.
+- [Tree of Thoughts](https://arxiv.org/abs/2305.10601) motivates explicit branching,
+ self-evaluation, lookahead, and backtracking rather than one irreversible reasoning path.
+- [Preliminary Analysis of Simple Novelty Search](https://doi.org/10.1162/evco_a_00334)
+ motivates coverage measurement and stagnation detection rather than assuming novelty
+ search diverges forever.
+
+Jester translates these ideas into deterministic typed operators and artifacts; it
+does not reproduce their experiments or claim human cognition. "Dream" names a
+synthetic counterfactual phase. It is never evidence, memory consolidation is
+content-addressed rather than neurological, and operator diversity is never treated
+as market edge.
+
+## Autonomous scientific learning
+
+- [The AI Scientist-v2](https://arxiv.org/abs/2504.08066) motivates progressive
+ agentic tree search over hypotheses and experiments.
+- [Kosmos](https://arxiv.org/abs/2511.02824) motivates a persistent structured world
+ model shared across literature, analysis, and hypothesis cycles.
+- The [arXiv API manual](https://info.arxiv.org/help/api/user-manual.html) defines the
+ Atom metadata contract and recommends conservative request pacing.
+- The [arXiv API terms](https://info.arxiv.org/help/api/tou.html) permit transformation
+ of descriptive metadata while restricting redistribution of most full texts.
+
+Jester implements a bounded metadata learner, not an autonomous scientific truth engine.
+It records preprint versions and generates falsifiable experiment capsules. It neither
+mirrors PDFs nor treats paper claims as verified.
+
+## Attention metadata
+
+- [RFC 9309](https://www.rfc-editor.org/rfc/rfc9309.html) defines the Robots Exclusion
+ Protocol used by Jester's metadata collector.
+- The [Wikimedia Pageviews definition](https://doc.wikimedia.org/generated-data-platform/aqs/analytics-api/concepts/page-views.html)
+ informs a future aggregate-attention adapter.
+- [Common Crawl](https://commoncrawl.org/) informs a future historical web-presence
+ metadata adapter.
+
+The implemented attention surface consumes staged ranked URLs and robots-permitted page
+metadata. It does not scrape unapproved SERPs and does not claim to observe search volume.
+
+## Selective calibration
+
+- [Conformal Alignment of Predictions](https://www.jmlr.org/papers/v26/24-0452.html)
+ motivates explicit abstention and calibration under distribution shift.
+
+Jester v0.2 provides prediction-before-outcome records, proper-score resolution, and
+insufficient-evidence gates. A production conformal controller remains future work and
+must not be inferred from these mechanics.
+
+## State-of-the-art standard
+
+The architecture is state-of-the-art-inspired. It becomes eligible for a stronger
+performance claim only after frozen forward-paper A/B evaluation and independent
+replication under identical evidence, universe, contracts, costs, fills, risk, and holding
+rules.
diff --git a/design-system/jester-observatory/MASTER.md b/design-system/jester-observatory/MASTER.md
new file mode 100644
index 0000000..5f4f948
--- /dev/null
+++ b/design-system/jester-observatory/MASTER.md
@@ -0,0 +1,227 @@
+# Design System Master File
+
+> **LOGIC:** When building a specific page, first check `design-system/pages/[page-name].md`.
+> If that file exists, its rules **override** this Master file.
+> If not, strictly follow the rules below.
+
+---
+
+**Project:** Jester Observatory
+**Generated:** 2026-07-29 02:29:35
+**Category:** AI/Chatbot Platform
+**Design Dials:** Variance 8/10 (Bold / Asymmetric) | Motion 8/10 (Complex) | Density 8/10 (Dense / Dashboard)
+
+---
+
+## Global Rules
+
+### Color Palette
+
+| Role | Hex | CSS Variable |
+|------|-----|--------------|
+| Primary | `#7C3AED` | `--color-primary` |
+| On Primary | `#FFFFFF` | `--color-on-primary` |
+| Secondary | `#6366F1` | `--color-secondary` |
+| Accent/CTA | `#EC4899` | `--color-accent` |
+| Background | `#FAF5FF` | `--color-background` |
+| Foreground | `#0F172A` | `--color-foreground` |
+| Muted | `#F7F3FD` | `--color-muted` |
+| Border | `#EFE7FC` | `--color-border` |
+| Destructive | `#DC2626` | `--color-destructive` |
+| Ring | `#7C3AED` | `--color-ring` |
+
+**Color Notes:** AI purple + generation pink
+
+### Typography
+
+- **Heading Font:** Inter
+- **Body Font:** Inter
+- **Mood:** dark, cinematic, technical, precision, clean, premium, developer, professional, high-end utility
+- **Google Fonts:** [Inter + Inter](https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap)
+
+**CSS Import:**
+```css
+@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
+```
+
+### Spacing Variables
+
+*Density: 8/10 — Dense / Dashboard*
+
+| Token | Value | Usage |
+|-------|-------|-------|
+| `--space-xs` | `2px` / `0.125rem` | Tight gaps |
+| `--space-sm` | `4px` / `0.25rem` | Icon gaps, inline spacing |
+| `--space-md` | `8px` / `0.5rem` | Standard padding |
+| `--space-lg` | `12px` / `0.75rem` | Section padding |
+| `--space-xl` | `16px` / `1rem` | Large gaps |
+| `--space-2xl` | `24px` / `1.5rem` | Section margins |
+| `--space-3xl` | `32px` / `2rem` | Hero padding |
+
+### Shadow Depths
+
+| Level | Value | Usage |
+|-------|-------|-------|
+| `--shadow-sm` | `0 1px 2px rgba(0,0,0,0.05)` | Subtle lift |
+| `--shadow-md` | `0 4px 6px rgba(0,0,0,0.1)` | Cards, buttons |
+| `--shadow-lg` | `0 10px 15px rgba(0,0,0,0.1)` | Modals, dropdowns |
+| `--shadow-xl` | `0 20px 25px rgba(0,0,0,0.15)` | Hero images, featured cards |
+
+---
+
+## Component Specs
+
+### Buttons
+
+```css
+/* Primary Button */
+.btn-primary {
+ background: #EC4899;
+ color: white;
+ padding: 12px 24px;
+ border-radius: 8px;
+ font-weight: 600;
+ transition: all 200ms ease;
+ cursor: pointer;
+}
+
+.btn-primary:hover {
+ opacity: 0.9;
+ transform: translateY(-1px);
+}
+
+/* Secondary Button */
+.btn-secondary {
+ background: transparent;
+ color: #7C3AED;
+ border: 2px solid #7C3AED;
+ padding: 12px 24px;
+ border-radius: 8px;
+ font-weight: 600;
+ transition: all 200ms ease;
+ cursor: pointer;
+}
+```
+
+### Cards
+
+```css
+.card {
+ background: #FAF5FF;
+ border-radius: 12px;
+ padding: 24px;
+ box-shadow: var(--shadow-md);
+ transition: all 200ms ease;
+ cursor: pointer;
+}
+
+.card:hover {
+ box-shadow: var(--shadow-lg);
+ transform: translateY(-2px);
+}
+```
+
+### Inputs
+
+```css
+.input {
+ padding: 12px 16px;
+ border: 1px solid #E2E8F0;
+ border-radius: 8px;
+ font-size: 16px;
+ transition: border-color 200ms ease;
+}
+
+.input:focus {
+ border-color: #7C3AED;
+ outline: none;
+ box-shadow: 0 0 0 3px #7C3AED20;
+}
+```
+
+### Modals
+
+```css
+.modal-overlay {
+ background: rgba(0, 0, 0, 0.5);
+ backdrop-filter: blur(4px);
+}
+
+.modal {
+ background: white;
+ border-radius: 16px;
+ padding: 32px;
+ box-shadow: var(--shadow-xl);
+ max-width: 500px;
+ width: 90%;
+}
+```
+
+---
+
+## Style Guidelines
+
+**Style:** Bento Grids
+
+**Keywords:** Apple-style, modular, cards, organized, clean, hierarchy, grid, rounded, soft
+
+**Best For:** Product features, dashboards, personal sites, marketing summaries, galleries
+
+**Key Effects:** Hover scale (1.02), soft shadow expansion, smooth layout shifts, content reveal
+
+### Page Pattern
+
+**Pattern Name:** AI Personalization Landing
+
+- **Conversion Strategy:** 20%+ conversion with personalization. Requires analytics integration. Fallback for new users.
+- **CTA Placement:** Context-aware placement based on user segment
+- **Section Order:** 1. Dynamic hero (personalized), 2. Relevant features, 3. Tailored testimonials, 4. Smart CTA
+
+---
+
+## Motion
+
+**Hover Micro-interaction** (Complex) — Trigger: hover + mousemove | Duration: 300-500ms | Easing: `elastic.out(1,0.4)`
+
+```js
+const xTo = gsap.quickTo(el, 'x', { duration: 0.4, ease: 'elastic.out(1,0.4)' }); const yTo = gsap.quickTo(el, 'y', { duration: 0.4, ease: 'elastic.out(1,0.4)' }); el.addEventListener('mousemove', (e) => { const r = el.getBoundingClientRect(); xTo((e.clientX - r.left - r.width/2) * 0.3); yTo((e.clientY - r.top - r.height/2) * 0.3); });
+```
+
+**Framework notes:** Debounce is not needed since quickTo interpolates; remove listeners on component unmount in React/Vue to avoid leaks
+
+- ✅ Clamp the pull strength (e.g. * 0.3) so the element never fully leaves its hit box
+- ❌ Don't apply magnetic effect to more than 1-2 focal elements per screen; it becomes noisy
+- ⚡ Use will-change: transform on the target element for smoother compositing
+
+---
+
+## Anti-Patterns (Do NOT Use)
+
+- ❌ Heavy chrome
+- ❌ Slow response feedback
+
+### Additional Forbidden Patterns
+
+- ❌ **Emojis as icons** — Use SVG icons (Heroicons, Lucide, Simple Icons)
+- ❌ **Missing cursor:pointer** — All clickable elements must have cursor:pointer
+- ❌ **Layout-shifting hovers** — Avoid scale transforms that shift layout
+- ❌ **Low contrast text** — Maintain 4.5:1 minimum contrast ratio
+- ❌ **Instant state changes** — Always use transitions (150-300ms)
+- ❌ **Invisible focus states** — Focus states must be visible for a11y
+
+---
+
+## Pre-Delivery Checklist
+
+Before delivering any UI code, verify:
+
+- [ ] No emojis used as icons (use SVG instead)
+- [ ] All icons from consistent icon set (Heroicons/Lucide)
+- [ ] `cursor-pointer` on all clickable elements
+- [ ] Hover states with smooth transitions (150-300ms)
+- [ ] Light mode: text contrast 4.5:1 minimum
+- [ ] Focus states visible for keyboard navigation
+- [ ] `prefers-reduced-motion` respected
+- [ ] Responsive: 375px, 768px, 1024px, 1440px
+- [ ] No content hidden behind fixed navbars
+- [ ] No horizontal scroll on mobile
diff --git a/docs/.nojekyll b/docs/.nojekyll
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/docs/.nojekyll
@@ -0,0 +1 @@
+
diff --git a/docs/images/jester-observatory-desktop.png b/docs/images/jester-observatory-desktop.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d332530344a78263f6662129bc35c86814c0e97
GIT binary patch
literal 99459
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