LifeStack / docs /scripts.md
Soham Banerjee
deploy: pure lifestack with partitioned wisdom pool
77da5ce

scripts.md — Other Scripts Reference

Reference for scripts not covered by dedicated doc files.


scripts/run_episode.py

Runs a single full episode with the LLM agent (requires API key).

python scripts/run_episode.py
python scripts/run_episode.py --difficulty 3 --verbose

Returns a result dict with total_reward, steps, domain.


scripts/train.py

Legacy training loop (pre-TRL). Uses a simple policy gradient loop without curriculum. Prefer train_trl.py for new training runs.


scripts/smoke_test.py

Quick sanity check — imports all core modules, resets the env once, takes one step. No agent required. Exits with code 0 on success.

python scripts/smoke_test.py

scripts/test_lifestack.py

Full edge-case test suite (11 tests). Does not use pytest runner by default — run directly or via pytest scripts/test_lifestack.py.

python scripts/test_lifestack.py
pytest scripts/test_lifestack.py -v

Tests requiring OPENAI_API_KEY are automatically skipped when the key is absent.

Tests

# Name What it checks
1 Cascade floor Metrics never go below 0
2 Cascade ceiling Metrics never exceed 100
3 Resource exhaustion deduct() returns False without going negative
4 Inaction penalty INACTION_PENALTY fires when actions_taken=0
5 Critical floor penalty CRITICAL_FLOOR_VIOLATION fires below threshold
6 Cascade dampening Second-order deltas < first-order delta
7 SimPerson uptake bounds All uptake values in [0.1, 1.0]
8 Memory threshold Only reward >= 2.0 stored
9 Episode termination done=True after horizon steps
10 Task-driven smoke Inspect + Route execute without crash
11 Full episode smoke run_episode() returns float reward (skipped without API key)

scripts/longitudinal_demo.py

Seeds Arjun's multi-week journey into ChromaDB and renders a comparison view. Used by Tab 4 (Arjun's Journey) in app.py.


scripts/validate_simperson.py

Validates all SimPerson personality trait combinations produce valid uptake values.


Change Log

Date Change
2026-04-23 test_lifestack.pysteps<=5 assertion fixed to steps<=30; import pytest added; @pytest.mark.skipif added to test 11