Skip to content

Single source of truth for all numeric thresholds, periods, and weights. The implementation cites this file (or the underlying spec section) whenever it pins a constant.

CONSTANTS

Single source of truth for all numeric thresholds, periods, and weights. Implementations MUST cite this file (or the underlying spec section) when defining a constant. If a value here disagrees with a spec section, the spec wins — open an ADR and update this file.

All values were extracted from THEORY_V5.md and components/P1-P7 on 2026-05-05.

Lifecycle (P1 Runtime)

Constant Value Citation
HEARTBEAT_BASE_PERIOD_S configurable per substrate; demo: 60 THEORY_V5 §3, P1 §D2
HEARTBEAT_HIBERNATING_PERIOD_S 86400 (24h) P1 §D6 line 73
HEARTBEAT_DECAYED_PERIOD_S (alias for HIBERNATING) 86400 (24h) kept for back-compat; see D003
HEARTBEAT_SUNK_LIVENESS_PERIOD_S 600 (10 min) THEORY_V5 §4.2 / §3 line 340
IDEMPOTENCY_WINDOW_S 86400 (24h) P1 §3.2
STALE_AFTER_HIBERNATING_DAYS 30 P1 §D6, line 156
WARMUP_WINDOW_S 86400 (24h) P1 §3.3.1, line 191
WARMUP_REQUIRED_HEARTBEATS 5 P1 §3.3.1, line 205
STYLO_DRIFT_THRESHOLD 3.5 (Mahalanobis) THEORY_V5 §3, line 152

State transitions (event-driven thresholds, not pure time-elapsed):

Transition Trigger Notes
Active → Hibernating budget exhausted OR explicit signal NOT a sinking signal (主持人裁決 2026-05-01)
Hibernating → Stale-flag ≥ 30 days no service Aggregator filters from default search
Stale → Active warmup completes (5 valid heartbeats in 24h, embedding within distribution) else → security_review
Any → Sunk reputation/quality signal (NOT budget) terminal
Sunk → Archived 180 days post-Sunk THEORY_V5 §3, line 318

Review limits (P1)

Constant Value Citation
REVIEW_LIMIT_PER_TARGET_24H 3 P1 line 259
REVIEW_LIMIT_PER_DOMAIN_24H 20 P1 line 260
PEER_REVIEW_BLOOM_TTL_S 86400 P1 line 249

Reputation (P3)

Per-dimension half-life (days) and Beta priors

Dim Half-life α₀ β₀ Source
Factual (F) 90 1.0 1.0 P3 §3.2 (D008 §A: 1.5 in older table was L1-applied)
Logical (L) 180 1.0 1.0 P3 §3.2
Relevance (R) 60 1.0 1.0 P3 §3.2
Honesty (H) 30 2.0 1.0 P3 §3.2
Adoption (A) 90 1.0 3.0 P3 §3.2

Source weights (signal multipliers)

Source Weight Dimensions affected
caller_review 0.6 F, R, H (gap)
peer_review 0.4 F, L, R
self_eval 0.05 H gap only
adoption_event 0.3 / citation A
redteam_probe 0.8 F, L, H

(P3 lines 155–159)

Collusion / discount factors

Constant Value Citation
Same-base-model peer review discount 0.5 P3 line 165
Same-model >5 reviews/30d → discount 0.25 P3 line 167
Reviewer credibility floor 0.3 P3 line 174
Novelty decay coefficient 0.4 P3 line 181
Collusion density threshold τ_d 0.6 P3 line 194
Collusion reciprocity threshold τ_r 0.7 P3 line 194
Severe collusion density 0.8 → multiplier 0.1 P3 line 196
SAME_SIGNAL_DISCOUNT_FLOOR 0.1 D015 (cost-raising-not-preventing)

UCB exploration

Constant Value Citation
UCB_C_BASE 1.0 P3 line 309
UCB_C_EXPLORE 0.5 P3 line 309
UCB_CONSERVATIVE_C_EXPLORE 0.1 P3 line 343
Network-level exploration floor (new vacants) 1% of traffic P3 line 343
N_MIN (per-dim effective sample for stable score) 30 P3 line 381

Cold-start attestation floors (UCB lower bound when n_eff < N_min)

Level Floor
L0 0.0
L1 0.05
L2 0.10
L3 0.15

(P3 line 338)

Cold-start α boosts

Source Boost Citation
L1 attestation (signed capability card) +0.5 α to all dims P3 line 358
Stake bonus min(2.0, log(1 + stake/S_REF)) split across dims P3 line 362
L3 vouch (per L1+ voucher) +0.3 α to H P3 line 367
S_REF 100 USDC equivalent P3 line 335

Anomaly thresholds

Constant Value Citation
Jeffreys vs Wilson disagreement (anomaly flag) 0.1 P3 line 133
Suspicious obfuscation: behavior entropy < 0.3 · log(8) AND μ > 0.9 P3 line 281
Dimension correlation alert threshold 0.6 P3 line 290
Redteam probe rate 3% when call_count ≥ 100 P3 line 261
Honesty gap → 0 mapping: max(0, 1 - 2·gap) P3 line 227

Cumulative drift detection (Padv-P3 / D010 §2)

Constant Value Citation
CUMULATIVE_DRIFT_WINDOW_EPOCHS 5 D010 §2
CUMULATIVE_DRIFT_THRESHOLD_MULTIPLIER 1.5 D010 §2

Identity (P2)

Wash cost formula and concrete coefficient values: see components/P2_identity.md §3. Open ADR if values are not pinned there.

Constant Value Citation
Federation root threshold (MVP) 2-of-5 T4_attestation_bootstrap
Federation root threshold (long-term target) 3-of-9 T4_attestation_bootstrap
PEER_ATTESTATION_FRESHNESS_WINDOW_DAYS 30 P2_identity §4
MIN_VOUCHERS_FOR_L3_PROMOTION 3 P2_identity §2
FEDERATION_ROOT_THRESHOLD_MVP / FEDERATION_ROOT_COUNT_MVP 2 / 5 T4_attestation_bootstrap
FEDERATION_ROOT_THRESHOLD_TARGET / FEDERATION_ROOT_COUNT_TARGET 3 / 9 T4_attestation_bootstrap
WASH_COST_FALSE_CLAIM_WEIGHT_DEFAULT 1.0 P2 §3 / D004 §A
ED25519_MULTICODEC_PREFIX 0xed01 W3C did:key §6.1

Registry (P4)

Constant Value Citation
MERKLE_SNAPSHOT_INTERVAL_S 3600 (1 hour) P4 §3
Sequence-number monotonicity tolerance 0 (strict) P4 §3
EVENT_LOG_DEFAULT_PAGE_SIZE / EVENT_LOG_MAX_PAGE_SIZE 100 / 500 P4 §3.2
ANOMALY_REP_JUMP_THRESHOLD / ANOMALY_REP_JUMP_WINDOW_S 0.4 / 60 P4 §3.2 anomaly table
ANOMALY_REVIEW_PER_TARGET_HOUR 5 P4 §3.2 anomaly table
ANOMALY_SPAWN_PER_PARENT_HOUR 10 P4 §3.2 anomaly table
REGISTRY_DB_DEFAULT_URL sqlite+aiosqlite:///:memory: D006 §B (test default)

Protocol (P6)

Constant Value Citation
A2A_VACANT_METADATA_KEY urn:vacant:v1 P6 §3.2
CALL_TIMEOUT_DEFAULT_S 60 P6 §3.4
REGISTRY_CACHE_TTL_S 300 P6 §3.4

Composite (P5)

Constant Value Citation
Graduation rate limit per parent per 24h: see P5 spec P5 §graduation
Closed-child default visibility NONE P5 §1
GRADUATION_RATE_LIMIT_PER_PARENT_24H 3 D012 §A
GRADUATION_COLLUSION_THRESHOLD 0.6 D012 §B

Demo (P7)

Default seeds for reproducible scenario runs:

Scenario Seed
law_firm 42
code_review 137
multilingual_translation 271
self_replication 314

(See dispatch/P7_demo_seed.md for expected outputs at these seeds.)

How to use this in code

# src/vacant/core/constants.py
from typing import Final

# Citation format: see CONSTANTS.md row + spec section
HEARTBEAT_DECAYED_PERIOD_S: Final[int] = 86400  # CONSTANTS.md §Lifecycle / P1 §D5
STYLO_DRIFT_THRESHOLD: Final[float] = 3.5        # CONSTANTS.md §Lifecycle / THEORY_V5 §3
N_MIN: Final[int] = 30                           # CONSTANTS.md §Reputation/UCB / P3 §3.7

A new constant MUST appear in this file before being used in code. PRs that introduce a magic number without updating CONSTANTS.md will be rejected in review.