VantagePoint
Created by Luke H · doorwayagi.com
Structured thinking methodology as an installable Python package. Five phases: provocation, expedition, vantage, paths, receipt.
Part of Doorway. Works completely standalone.
Install
pip install vantagepoint-doorway
Or from source:
pip install -r requirements.txt
Three Operating Modes
VantagePoint auto-detects its mode from environment variables:
| Priority | Env Var | Mode | What Powers Analysis |
|---|---|---|---|
| 1 | DOORWAY_API_URL |
Doorway | Full geometric reasoning at every step |
| 2 | ANTHROPIC_API_KEY |
LLM | AI-assisted analysis, no geometric layer |
| 3 | Neither | Standalone | User drives all analysis manually |
# Standalone — no env vars needed
# Doorway mode (takes priority if both set)
export DOORWAY_API_URL=http://localhost:8000
# LLM mode (used only if DOORWAY_API_URL not set)
export ANTHROPIC_API_KEY=sk-ant-xxx
# Optional: cloud chain sync
export PRUV_API_KEY=pv_live_xxx
All five phases run in every mode. The mode determines what powers the analysis, not what analysis is available.
CLI
# Start the API server (port 8001)
python cli.py serve
python cli.py serve --port 9000
# Start an interactive session
python cli.py run "Our deploys keep breaking"
API Endpoints
VantagePoint runs on port 8001. All session endpoints follow the methodology phases.
Health
GET /health
→ {"status": "ok", "engine": "vantagepoint", "mode": "standalone"}
Provocation
POST /session/start
{"friction": "Our deploys keep breaking"}
→ {"session_id": "...", "mode": "standalone", "phase": "provocation"}
POST /session/{id}/calibrate
{"what_wrong": "CI fails randomly", "how_long": "3 months", "what_right": "zero-flake pipeline"}
→ {"friction_statement": "Friction: ..."}
POST /session/{id}/provocation/complete
→ {"phase": "expedition"}
Expedition
POST /session/{id}/expedition/expand
{"focus": "CI infrastructure"} (focus is optional)
→ {"prompt": "...", "instruction": "..."} (standalone)
→ {"nodes_added": [...], "threshold": 0.5, "recommendation": "continue"} (llm/doorway)
POST /session/{id}/expedition/node
{"label": "Jenkins is CI", "node_type": "ground", "significance": 0.9}
→ {"id": "...", "label": "...", "type": "ground", "significance": 0.9}
POST /session/{id}/expedition/assumption
{"statement": "staging required", "classification": "convention", "evidence": ""}
→ {"statement": "...", "classification": "convention", "evidence": ""}
Vantage
POST /session/{id}/vantage/consolidate
→ {"territory_covered": 5, "ground": 2, "convention": 2, "unknown": 1, ...}
POST /session/{id}/vantage/goal
{"goal": "Eliminate CI flakiness"}
→ {"goal": "Eliminate CI flakiness"}
POST /session/{id}/vantage/complete
→ {"phase": "paths"}
Paths
POST /session/{id}/paths/generate
→ {"paths": [{"path_id": "A", "label": "Maximum divergence", ...}, ...]}
POST /session/{id}/paths/commit
{"path_id": "B"}
→ {"chosen_path": {...}, "phase": "receipt"}
Receipt
POST /session/{id}/receipt
→ {"session_id": "...", "chain": {"chain_verified": true, ...}, ...}
Session State
GET /session/{id}
→ Full session state as JSON
Python API
from main import (
start_session, calibrate, complete_provocation,
add_node, classify_assumption,
consolidate, set_goal, complete_vantage,
generate_paths, commit_path,
generate_receipt,
)
session = start_session("Our deploys keep breaking")
calibrate(session, "CI fails randomly", "3 months", "zero-flake pipeline")
complete_provocation(session)
add_node(session, "Jenkins is CI", "ground", 0.9)
classify_assumption(session, "staging required", "convention")
session.advance_phase("vantage")
consolidate(session)
set_goal(session, "Eliminate CI flakiness")
complete_vantage(session)
paths = generate_paths(session)
commit_path(session, "B")
receipt = generate_receipt(session)
print(receipt["chain"]["chain_verified"]) # True
Testing
python -m pytest tests/ -v
License
Apache License 2.0 · © 2026 Doorway
Metadata
Release files for vantagepoint-doorway 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vantagepoint_doorway-0.1.0.tar.gz | 25.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vantagepoint_doorway-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 44.8 kB
Release files / vantagepoint_doorway-0.1.0.tar.gz
| Download URL | vantagepoint_doorway-0.1.0.tar.gz |
|---|---|
| Size | 25.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9959bfe19e262edc0c30f6f96940f1b3260ba933a3fc9ad15f8a2e76780565cd
|
|
BLAKE2b-256 checksum How to use checksums |
35a561ede12aefc2b464cbb71a3a4d55829eb78a90b539b520b09ff3cf93f144
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 28, 2026.
Transparency logRelease files / vantagepoint_doorway-0.1.0-py3-none-any.whl
| Download URL | vantagepoint_doorway-0.1.0-py3-none-any.whl |
|---|---|
| Size | 19.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3994e2c3bf0f0562024cfa6cf24fbc54e82d020e283b656f5599e5355220e62e
|
|
BLAKE2b-256 checksum How to use checksums |
fdbe0e14a8fb45264558f22ab7be9f7a2e56adf3b9c4cd2dddb7726ec297d553
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 28, 2026.
Transparency log