Skip to content

Repository files navigation

AURORA

Finds industries that may be forming but do not have a name yet.

License: MIT Engine

Core: Python 3.9+

It reads patents, hiring, capex, supply chain, standards, news, and notes. It clusters what repeats across those sources, then says whether that looks like a new industry, a rebrand, hype, or not enough evidence.

It is not a stock tool. No BUY/SELL, no target prices, no LLM at runtime.

Design principles: local-first · single-user · reproducible · evidence-grounded · time-aware · auditable · no external API / LLM at runtime · no fabricated evidence · no future-data leakage · no forced industry conclusion.

Why this is not “summarize articles with an LLM”

Every classification is a deterministic, explainable function of the data. The engine clusters cross-source structure, compares to a known taxonomy, hunts counterevidence, and can re-run at a historical cutoff with a hard leakage check.

Status Meaning
INDUSTRY_CANDIDATE Structurally complete, demand-backed, not just narrative
EXISTING_INDUSTRY_VARIANT Looks like a rebrand of a known industry
HYPE_CLUSTER Loud but hollow
INSUFFICIENT_EVIDENCE Not enough independent signal
REJECTED / DORMANT Counterevidence dominates

Quick start

Requirements: The stdlib-only core supports Python 3.9+. The optional API and full test stack require Python 3.10+ (3.11+ recommended).

git clone https://github.com/taipei49314/aurora.git
cd aurora

# optional on Python 3.10+: API + full tests (needs SQLAlchemy)
python -m pip install -r backend/requirements.txt

# Python 3.9, or Windows without C++ Build Tools: engine tests only
python -m pip install -r backend/requirements-engine-test.txt

# Windows PowerShell
$env:PYTHONPATH = "backend"
# Unix
# export PYTHONPATH=backend

python backend/aurora/cli.py          # demo: generate corpus → classify
# optional: send the same FINDING report into an md-brain Vault (proposal only)
python backend/aurora/cli.py --brain C:\vaults\nelson
python backend/aurora/cli.py --atlas  # findings only; no invented baseline

# real offline data (the synthetic demo corpus is never involved):
python backend/aurora/cli.py --package datasets/sodium-ion-us-2025/package.json --out-dir runs/demo-real
# same package + config + cutoff replay to the same run_id and result hash
# artifacts: runs/demo-real/{run.md, run_manifest.json, findings.jsonl}
# Atlas submission defaults to http://127.0.0.1:8137 (the launcher's port)
python scripts/check_engine.py        # engine gate (skips API/SQL tests)
python -m pytest tests/ -q            # full suite (needs full requirements)
python scripts/check_all.py --engine-only   # same as check_engine
python scripts/check_all.py           # full pre-push: tests + cases + resolve smoke

With Make (if available):

make demo
make test
make check-all    # recommended before release push
make backtest
make docker-audit # static Docker/Compose contract check; does not start Docker
make api          # FastAPI :8000
make frontend     # Vite :5173

Demo output (Northstar synthetic corpus)

STATUS                       OVERALL  HYPE CONTRA   SIM  NAME
INDUSTRY_CANDIDATE              73.8     7      5  0.00  analog-inference-compute-in-memory ...
HYPE_CLUSTER                    27.9    89      0  0.00  quantum-mining-superposition-hash
INSUFFICIENT_EVIDENCE           25.0    73     55  0.00  volumetric-display-free-space-optics

Optional companions: Frontier Atlas and md-brain

Both companions are private, single-user projects and are not published. --atlas and --brain are opt-in, off by default, and fail open. AURORA is a complete tool without either: nothing on this page requires them, and no test in this repo contacts them.

Frontier Atlas keeps claims. md-brain keeps identity and experience.

Feeding md-brain (experience, not claims)

After a run, --brain <vault> writes the same contract-shaped FINDING report the mothership adapter would submit, then calls the mdbrain CLI (ingest --module aurora). That opens an episodic proposal. Nothing is written into memory/ until a person approves it.

$env:PYTHONPATH = "backend"
python backend/aurora/cli.py --brain C:\vaults\nelson

A failed ingest never fails the research run. This tool does not import md-brain; the engine stays stdlib-only. Override the binary with --brain-bin if mdbrain is not on PATH. Without --brain, AURORA does not touch a Vault.

Submitting to Frontier Atlas (claims)

--atlas [URL] is the claim-ledger sibling (default http://127.0.0.1:8000). It submits the same FINDING report. The demo CLI does not invent a retention baseline, so predictions are skipped until a measured backtest is supplied. A failed submit never fails the research run. Without --atlas, AURORA does not contact the mothership.

The client for this is vendored, not installed: backend/aurora/_vendor/atlas_client.py is a copy of the mothership's single-file SDK, kept so the engine stays stdlib-only. Do not edit it in place — tests/test_vendored_sdk_pinned.py pins its digest and will fail if you do.

Bring your own data (import package)

Guide for real offline dumps: docs/real-dump-guide.md.

AURORA does not crawl the web. Feed a JSON package:

{ "entities": [], "sources": [], "observations": [] }
Resource Purpose
docs/import-schema.md Field contract, dates, independence, real-source mapping
examples/real_mini_package.json Multi-source hand-authored sample
examples/schemas/import-package.schema.json JSON Schema
adapters/ Offline converters (USPTO-shaped, PatentsView-compatible, jobs, news, merge)
cases/ Scorecarded demos (merge, retro cutoffs, PatentsView sample)
# validate a package
PYTHONPATH=backend python scripts/validate_package.py examples/real_mini_package.json --run

# offline PatentsView-shaped dump → package
python -m adapters patentsview cases/patentsview-sample/dump.json --validate --strict

# temporal honesty gates (curated timeline — not real-world lead-time proof)
PYTHONPATH=backend python scripts/run_retro_case.py cases/iron-air-retro

A small real, offline, public-domain package ships in-repo: datasets/sodium-ion-us-2025/ (see its README for provenance, license, and honest scope). Run it with --package; the synthetic demo stays separate.

Architecture

Snapshot → Features → Clustering → Taxonomy → Naming gap
        → Value chain → Bottleneck → Hype + counterevidence
        → Transparent scoring → Classification → Research run

Docs: architecture · scoring · hype filter · leakage · import schema · self-audit · evolution loop

Honesty (read before starring)

  • Not investment advice. No trading outputs.
  • Northstar demo metrics are on a synthetic corpus with ground truth.
  • Retro case (cases/iron-air-retro) tests engine time behavior on curated data — it does not claim real-world early discovery of iron-air storage.
  • PatentsView sample dump is a format-compatible fixture by default; replace dump.json with a real export without code changes.
  • See docs/self-audit.md for PASS / PARTIAL items (e.g. Docker not verified on all machines).
  • python scripts/docker_audit.py checks the Docker/Compose contract offline; it does not replace starting the stack on a Docker host.

Layout

backend/aurora/   discovery engine (pure stdlib) + CLI
backend/api.py    FastAPI layer
adapters/         offline source converters
cases/            release demos + scorecards
datasets/         Northstar generator + taxonomy
docs/             architecture, models, import-schema, release notes
examples/         import packages + JSON Schema
frontend/         Vite + React + TS (8 pages)
scripts/          validate / retro / scorecard helpers
tests/            pytest (unit / integration / e2e)

Version

Language policy (UI / cases)

Layer Language
Engine, API field names, statuses, logs English-first (stable machine contract)
Frontend chrome (nav, labels) English
Case honesty notes / scorecards English primary; bilingual Chinese optional for human narrative
Imported source text / excerpts Preserve source language as-is

Do not localize enum values (INDUSTRY_CANDIDATE, observation types, etc.) — adapters and tests depend on the English controlled vocabulary.

Citation

If AURORA helps your research, please cite the repository URL and version tag (e.g. v0.1.1). A formal paper is not required for use.

About

Finds unnamed industries from evidence. No LLM. No stock tips.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages