Config schema reference
A curated guide to the fields operators change most often, followed by the complete list of keys, generated from the Pydantic TRWConfig model. Run trw-mcp config-reference for the same fields with their environment variables.
File location
The config file lives at .trw/config.yaml at the repo root. It is created by trw-mcp init-project. Initialization writes a small baseline plus selected targets and overrides; unspecified fields inherit the remaining defaults.
Precedence (highest wins):
- Environment variables prefixed
TRW_. .trw/config.yamloverrides.- Machine defaults in
~/.trw/config.yaml. - Field defaults declared in
models/config/_fields_*.py.
Unknown keys (in both env and config.yaml) are ignored - model_config.extra = "ignore" on the BaseSettings class. A retired key is ignored too, with a warning that names it.
Top-level keys
The flat keys you see in config.yaml are the same as the field names on TRWConfig. A curated list of the keys users touch most often:
- Key
- framework_version
- Type
- str
- Default
- "v27.6_TRW"
- Description
- Pinned framework version for this repo.
- Key
- target_platforms
- Type
- list[str]
- Default
- ["claude-code"]
- Description
- Selected client targets. Dedicated integrations sync native surfaces; the first entry resolves the primary profile.
- Key
- ceremony_mode
- Type
- "full" | "light"
- Default
- "full"
- Description
- Profile-derived when unchanged. light suppresses chatty nudges.
- Key
- response_format
- Type
- "yaml" | "json"
- Default
- "yaml"
- Description
- MCP tool response format.
- Key
- installation_id
- Type
- str
- Default
- ""
- Description
- Installation ID used for telemetry correlation. Hashed (non-reversible double SHA-256) before transmission — the raw value never leaves the machine.
- Key
- parallelism_max
- Type
- int
- Default
- 10
- Description
- Maximum concurrent shards or waves during orchestration.
- Key
- timebox_hours
- Type
- int
- Default
- 8
- Description
- Total session timebox in hours.
- Key
- task_root
- Type
- str
- Default
- "docs"
- Description
- Root directory for PRDs and task artifacts.
- Key
- runs_root
- Type
- str
- Default
- ".trw/runs"
- Description
- Directory for run artifacts.
- Key
- build_check_enabled
- Type
- bool
- Default
- true
- Description
- Whether recorded build-check evidence participates in delivery gating.
- Key
- embeddings_enabled
- Type
- bool
- Default
- true
- Description
- Dense vector embeddings on by default (needs the trw-memory[embeddings] embedder, which the installer adds unless --no-embeddings).
- Key
- platform_url
- Type
- str
- Default
- ""
- Description
- Primary platform URL for sync and telemetry.
- Key
- platform_api_key
- Type
- SecretStr
- Default
- ""
- Description
- Deprecated config-file credential. Use TRW_PLATFORM_API_KEY or .trw/credentials.yaml.
| Key | Type | Default | Description |
|---|---|---|---|
| framework_version | str | "v27.6_TRW" | Pinned framework version for this repo. |
| target_platforms | list[str] | ["claude-code"] | Selected client targets. Dedicated integrations sync native surfaces; the first entry resolves the primary profile. |
| ceremony_mode | "full" | "light" | "full" | Profile-derived when unchanged. light suppresses chatty nudges. |
| response_format | "yaml" | "json" | "yaml" | MCP tool response format. |
| installation_id | str | "" | Installation ID used for telemetry correlation. Hashed (non-reversible double SHA-256) before transmission — the raw value never leaves the machine. |
| parallelism_max | int | 10 | Maximum concurrent shards or waves during orchestration. |
| timebox_hours | int | 8 | Total session timebox in hours. |
| task_root | str | "docs" | Root directory for PRDs and task artifacts. |
| runs_root | str | ".trw/runs" | Directory for run artifacts. |
| build_check_enabled | bool | true | Whether recorded build-check evidence participates in delivery gating. |
| embeddings_enabled | bool | true | Dense vector embeddings on by default (needs the trw-memory[embeddings] embedder, which the installer adds unless --no-embeddings). |
| platform_url | str | "" | Primary platform URL for sync and telemetry. |
| platform_api_key | SecretStr | "" | Deprecated config-file credential. Use TRW_PLATFORM_API_KEY or .trw/credentials.yaml. |
Check source for the hundreds of fields in the complete model: src/trw_mcp/models/config/. Run trw-mcp config-reference for a generated list keyed by env var name.
Curated field groups
These tables group related flat fields for reading; their headings are not all runtime property names. Actual type-narrowed projections include config.build, config.memory, config.orchestration, and config.tools. Ceremony controls remain flat or surface through config.ceremony_feedback and config.surfaces. Projection models are defined in _sub_models.py. At the YAML layer, the listed settings remain flat keys.
build
- Key
- build_check_enabled
- Default
- true
- Description
- Require recorded build-check evidence at the delivery gate; does not run tests.
- Key
- build_check_coverage_min
- Default
- 85.0
- Description
- Minimum coverage percentage to pass the gate.
- Key
- build_gate_enforcement
- Default
- "lenient"
- Description
- One of strict, lenient, off.
| Key | Default | Description |
|---|---|---|
| build_check_enabled | true | Require recorded build-check evidence at the delivery gate; does not run tests. |
| build_check_coverage_min | 85.0 | Minimum coverage percentage to pass the gate. |
| build_gate_enforcement | "lenient" | One of strict, lenient, off. |
memory
- Key
- learning_max_entries
- Default
- 500
- Description
- Cap on total learnings before pruning runs.
- Key
- recall_max_results
- Default
- 25
- Description
- Default result cap for trw_recall.
- Key
- dedup_skip_threshold
- Default
- 0.95
- Description
- Cosine threshold above which dedupe treats entries as duplicates.
- Key
- dedup_merge_threshold
- Default
- 0.85
- Description
- Cosine threshold above which near-duplicates merge.
- Key
- memory_consolidation_enabled
- Default
- true
- Description
- Periodic cluster consolidation of related entries.
- Key
- recall_user_tier_cap
- Default
- 5
- Description
- Max user:local hits allowed into one recall result, so machine-wide entries cannot bury project precision.
| Key | Default | Description |
|---|---|---|
| learning_max_entries | 500 | Cap on total learnings before pruning runs. |
| recall_max_results | 25 | Default result cap for trw_recall. |
| dedup_skip_threshold | 0.95 | Cosine threshold above which dedupe treats entries as duplicates. |
| dedup_merge_threshold | 0.85 | Cosine threshold above which near-duplicates merge. |
| memory_consolidation_enabled | true | Periodic cluster consolidation of related entries. |
| recall_user_tier_cap | 5 | Max user:local hits allowed into one recall result, so machine-wide entries cannot bury project precision. |
orchestration
- Key
- parallelism_max
- Default
- 10
- Description
- Maximum parallel shards.
- Key
- timebox_hours
- Default
- 8
- Description
- Session timebox.
- Key
- auto_recall_enabled
- Default
- true
- Description
- Allow contextual recall in the trw_session_start pipeline; not per-tool injection.
| Key | Default | Description |
|---|---|---|
| parallelism_max | 10 | Maximum parallel shards. |
| timebox_hours | 8 | Session timebox. |
| auto_recall_enabled | true | Allow contextual recall in the trw_session_start pipeline; not per-tool injection. |
ceremony fields
- Key
- nudge_enabled
- Default
- null
- Description
- Null defers to profile. Set explicit true or false to force.
- Key
- phase_gate_enforcement
- Default
- "lenient"
- Description
- strict, lenient, or off.
- Key
- cleanup_on_boot
- Default
- true
- Description
- Run the stale-pin and stale-run sweep on server startup.
- Key
- run_staleness_hours
- Default
- 48
- Description
- Hours with no activity before a run is sweep-eligible.
| Key | Default | Description |
|---|---|---|
| nudge_enabled | null | Null defers to profile. Set explicit true or false to force. |
| phase_gate_enforcement | "lenient" | strict, lenient, or off. |
| cleanup_on_boot | true | Run the stale-pin and stale-run sweep on server startup. |
| run_staleness_hours | 48 | Hours with no activity before a run is sweep-eligible. |
tools projection
- Key
- tool_resolution_mode
- Default
- "standard"
- Description
- standard (default) or all. The surface is flat either way: every session sees the always-on tools plus each config-gated tool whose flag (comms_enabled, dispatch_tools_exposed, assess_enabled) is on. all additionally turns on the comms tools and trw_assess, never trw_dispatch.
| Key | Default | Description |
|---|---|---|
| tool_resolution_mode | "standard" | standard (default) or all. The surface is flat either way: every session sees the always-on tools plus each config-gated tool whose flag (comms_enabled, dispatch_tools_exposed, assess_enabled) is on. all additionally turns on the comms tools and trw_assess, never trw_dispatch. |
Example config
Trimmed and commented example of .trw/config.yaml. Every field not listed falls back through the machine layer and then its built-in default.
# .trw/config.yaml framework_version: v27.6_TRW # Orchestration parallelism_max: 10 timebox_hours: 8 # Platform sync (optional - local runs work without these) platform_urls: - https://api.trwframework.com - http://localhost:8000 platform_telemetry_enabled: true installation_id: trw-framework-dev # Client profiles to keep in sync. target_platforms: - claude-code - cursor-ide - cursor-cli - opencode - codex - copilot - antigravity-cli # Memory embeddings_enabled: true # Secrets belong in TRW_PLATFORM_API_KEY or .trw/credentials.yaml.
Generate your own with trw-mcp init-project; it writes the baseline keys plus your selected targets and overrides.
Env var overrides
Flat fields on TRWConfig accept environment-variable overrides with the TRW_ prefix. The lookup is case-insensitive; unknown vars are ignored (the same policy used for unknown YAML keys).
- Pattern
- Scalar
- Example variable
- TRW_TASK_ROOT=docs
- Maps to config key
- task_root
- Pattern
- Number
- Example variable
- TRW_BUILD_CHECK_COVERAGE_MIN=90
- Maps to config key
- build_check_coverage_min
- Pattern
- Bool
- Example variable
- TRW_EMBEDDINGS_ENABLED=true
- Maps to config key
- embeddings_enabled
- Pattern
- List (JSON)
- Example variable
- TRW_TARGET_PLATFORMS=["cursor-ide","codex"]
- Maps to config key
- target_platforms
- Pattern
- Secret
- Example variable
- TRW_PLATFORM_API_KEY=trw_dk_…
- Maps to config key
- platform_api_key
| Pattern | Example variable | Maps to config key |
|---|---|---|
| Scalar | TRW_TASK_ROOT=docs | task_root |
| Number | TRW_BUILD_CHECK_COVERAGE_MIN=90 | build_check_coverage_min |
| Bool | TRW_EMBEDDINGS_ENABLED=true | embeddings_enabled |
| List (JSON) | TRW_TARGET_PLATFORMS=["cursor-ide","codex"] | target_platforms |
| Secret | TRW_PLATFORM_API_KEY=trw_dk_… | platform_api_key |
Generator for the full list: trw-mcp config-reference. Prefix configured in _main_fields.py via SettingsConfigDict(env_prefix="TRW_").
All keys
Every one of the 310 keys TRWConfig reads, generated from the model on each release, so this list cannot fall behind the code.
Show all 310 keys
- Key
- aaref_version
- Type
- str
- Default
- "v3.3.0"
- Description
- AARE-F requirements-framework version stamp deployed with the project.
- Key
- access_count_utility_boost_cap
- Type
- float
- Default
- 0.15
- Description
- Largest utility bonus a learning can earn from being recalled often.
- Key
- additional_repo_roots
- Type
- list[str]
- Default
- computed
- Description
- Sibling repository roots for multi-repo workspaces, so PRD key-file references into sibling repos resolve instead of failing as missing paths.
- Key
- agent_report_max_chars
- Type
- int
- Default
- 800
- Description
- Character limit each bundled agent is asked to keep its final report within (guidance to the model); 0 renders no limit.
- Key
- agents_enabled
- Type
- bool | None
- Default
- null
- Description
- Install bundled sub-agent definitions; unset follows the client profile.
- Key
- agents_md_enabled
- Type
- bool
- Default
- true
- Description
- Write TRW's block into `AGENTS.md`.
- Key
- ambiguity_rate_max
- Type
- float
- Default
- 0.05
- Description
- Highest allowed share of ambiguous terms in a PRD (0-1).
- Key
- anchor_validity_verified_floor
- Type
- float
- Default
- 1.0
- Description
- Minimum recomputed anchor_validity for a 'verified' verification verdict.
- Key
- assertion_failure_penalty
- Type
- float
- Default
- 0.15
- Description
- Recall-rank penalty (0-1) for a learning whose stored assertions fail verification, scaled by the failing fraction.
- Key
- assertion_stale_threshold_days
- Type
- int
- Default
- 30
- Description
- Days after which a learning's assertion verification is stale and due for re-verification.
- Key
- assess_enabled
- Type
- bool
- Default
- false
- Description
- Expose the assess_support capability pack (trw_assess) on the resolved tool surface.
- Key
- auto_checkpoint_pre_compact
- Type
- bool
- Default
- true
- Description
- Write a checkpoint automatically before the client compacts context.
- Key
- auto_recall_enabled
- Type
- bool
- Default
- true
- Description
- Let the prompt hook inject relevant learnings before each prompt (the master `learning_recall_enabled` switch outranks it).
- Key
- auto_recall_max_results
- Type
- int
- Default
- 3
- Description
- Most learnings the prompt hook injects per prompt.
- Key
- auto_recall_max_tokens
- Type
- int
- Default
- 100
- Description
- Token budget for the learnings the prompt hook injects per prompt.
- Key
- auto_recall_min_score
- Type
- float
- Default
- 0.35
- Description
- Minimum relevance (0-1, IDF-weighted share of prompt keywords a learning covers) a learning needs to be injected by the prompt hook.
- Key
- auto_recall_scan_cap
- Type
- int
- Default
- 10000
- Description
- Most stored learnings the prompt hook's auto-recall scorer scans per prompt (0 or a small value scores only a recent window).
- Key
- backend_api_key
- Type
- str
- Default
- ""
- Description
- API key for the sync backend; empty means none configured.
- Key
- backend_url
- Type
- str
- Default
- ""
- Description
- Base URL of the sync backend; empty means no backend configured.
- Key
- backup_remote_enabled
- Type
- bool
- Default
- false
- Description
- Allow uploading a backup archive of the local store to the platform; off by default because the archive is the raw local store.
- Key
- boot_deferred_work_budget_ms
- Type
- int
- Default
- 5000
- Description
- Budget (ms) for the post-'initialize' backend-sync resolution scheduled by PRD-CORE-248 FR01.
- Key
- boot_gc_deferred
- Type
- bool
- Default
- true
- Description
- When True, the boot-time stale-run + stale-pin sweep runs in a daemon background thread ('trw-boot-gc') instead of synchronously before the MCP initialize handshake, so large repos do not stall client connect (production feedback sub_psVs_nUWnLJGvOs3).
- Key
- build_check_coverage_min
- Type
- float
- Default
- 85.0
- Description
- Minimum test coverage percentage a build check must report to pass the build gate.
- Key
- build_check_enabled
- Type
- bool
- Default
- true
- Description
- Run the build-check gate; false turns the build-check requirement off for validation and deliver.
- Key
- build_gate_enforcement
- Type
- Literal['strict', 'lenient', 'off']
- Default
- "lenient"
- Description
- How the build gate reacts to a failed check: `strict` blocks, `lenient` warns, `off` ignores it.
- Key
- ceremony_feedback_escalation_threshold
- Type
- float
- Default
- 60.0
- Description
- Ceremony score below which recent sessions escalate the ceremony level.
- Key
- ceremony_feedback_escalation_window
- Type
- int
- Default
- 5
- Description
- Number of recent sessions considered when deciding to escalate ceremony.
- Key
- ceremony_feedback_min_samples
- Type
- int
- Default
- 10
- Description
- Sessions needed before ceremony feedback adjusts the ceremony level.
- Key
- ceremony_feedback_quality_threshold
- Type
- float
- Default
- 0.9
- Description
- Outcome quality (0-1) at or above which a session counts as good for feedback.
- Key
- ceremony_feedback_score_threshold
- Type
- float
- Default
- 80.0
- Description
- Ceremony score at or above which a session counts as well-run for feedback.
- Key
- ceremony_mode
- Type
- Literal['full', 'light']
- Default
- "full"
- Description
- Ceremony weight: `full` or `light` (shorter guidance and fewer nudges).
- Key
- changelog_advisory_enabled
- Type
- bool
- Default
- false
- Description
- Warn at deliver when source changed but the package changelog did not; off by default.
- Key
- checkpoint_suggest_hours
- Type
- int
- Default
- 4
- Description
- Heartbeat-age threshold (hours) at which trw_checkpoint(heartbeat=True) reports should_checkpoint=True to the caller.
- Key
- cleanup_on_boot
- Type
- bool
- Default
- true
- Description
- When True, the MCP server runs the stale-pin + stale-run sweep on startup.
- Key
- code_index_bounds
- Type
- CodeIndexBounds
- Default
- computed
- Description
- PRD-CORE-300-FR15 build and query budgets for the local code index: directory entries, files, source bytes and wall-clock per build; query characters and terms, candidate rows, response bytes and wall-clock per query.
- Key
- code_index_exclude_dirs
- Type
- list[str]
- Default
- computed
- Description
- Directory names the code index skips when scanning the project.
- Key
- code_index_include_extensions
- Type
- list[str]
- Default
- computed
- Description
- File extensions the code index includes when scanning the project.
- Key
- code_index_max_file_bytes
- Type
- int
- Default
- 1000000
- Description
- Largest file the code index reads.
- Key
- comms_body_max_bytes
- Type
- int
- Default
- 8192
- Description
- Maximum comms message body size, in UTF-8 bytes.
- Key
- comms_candidate_ttl_seconds
- Type
- int
- Default
- 3600
- Description
- Seconds an announced comms candidate stays admissible.
- Key
- comms_enabled
- Type
- bool
- Default
- true
- Description
- Enable the swarm comms tools; they do nothing until a formation is joined.
- Key
- comms_fetch_max_items
- Type
- int
- Default
- 16
- Description
- Maximum messages returned by a single comms fetch page.
- Key
- comms_group_body_budget_bytes
- Type
- int
- Default
- 16777216
- Description
- Live message-body bytes one comms group may hold.
- Key
- comms_group_row_limit
- Type
- int
- Default
- 4096
- Description
- Lifetime rows (messages incl.
- Key
- comms_lease_ttl_seconds
- Type
- int
- Default
- 120
- Description
- Comms endpoint lease lifetime, in seconds.
- Key
- comms_message_ttl_seconds
- Type
- int
- Default
- 86400
- Description
- Seconds an unacknowledged comms message stays deliverable.
- Key
- comms_poll_interval_seconds
- Type
- int
- Default
- 15
- Description
- Advertised comms poll interval, in seconds.
- Key
- comms_recipient_outstanding_limit
- Type
- int
- Default
- 64
- Description
- Maximum unacknowledged messages outstanding for one recipient.
- Key
- comms_response_max_bytes
- Type
- int
- Default
- 65536
- Description
- Maximum canonical JSON comms tool response, in UTF-8 bytes, excluding MCP framing.
- Key
- comms_retry_grace_seconds
- Type
- int
- Default
- 3600
- Description
- Seconds a terminal message body is kept past its deadline.
- Key
- comms_scope_max_bytes
- Type
- int
- Default
- 1024
- Description
- Maximum comms scope path length, in UTF-8 bytes.
- Key
- comms_scope_max_recipients
- Type
- int
- Default
- 4
- Description
- Maximum peers one scoped comms notify may reach.
- Key
- comms_sender_admissions_per_minute
- Type
- int
- Default
- 32
- Description
- Committed admissions allowed per sender per 60 seconds.
- Key
- comms_sqlite_busy_timeout_ms
- Type
- int
- Default
- 5000
- Description
- Bounded SQLite busy timeout for comms transactions, in ms.
- Key
- comms_wait_interval_ms
- Type
- int
- Default
- 1000
- Description
- Sleep between bounded inbox wait attempts, in milliseconds.
- Key
- comms_wait_max_seconds
- Type
- int
- Default
- 30
- Description
- Maximum bounded inbox wait a caller may request, in seconds; 0 disables.
- Key
- compact_instructions_template
- Type
- str
- Default
- ""
- Description
- Custom text for the instructions preserved across context compaction; empty uses the built-in template.
- Key
- completeness_min
- Type
- float
- Default
- 0.85
- Description
- Lowest allowed PRD completeness score (0-1).
- Key
- complexity_hard_override_threshold
- Type
- int
- Default
- 2
- Description
- Number of active risk signals at which the run is forced to the highest complexity tier regardless of score.
- Key
- complexity_tier_comprehensive
- Type
- int
- Default
- 6
- Description
- Complexity score at or above (this value plus one) that classifies a run as COMPREHENSIVE.
- Key
- complexity_tier_minimal
- Type
- int
- Default
- 1
- Description
- Complexity score at or below which a run is classified MINIMAL.
- Key
- complexity_weight_architecture_change
- Type
- int
- Default
- 3
- Description
- Complexity points added when the task changes architecture.
- Key
- complexity_weight_cross_cutting
- Type
- int
- Default
- 2
- Description
- Complexity points added when the task is cross-cutting.
- Key
- complexity_weight_external_integration
- Type
- int
- Default
- 2
- Description
- Complexity points added when the task integrates an external system.
- Key
- complexity_weight_files_affected_max
- Type
- int
- Default
- 5
- Description
- Cap on the complexity points contributed by the number of files a task affects.
- Key
- complexity_weight_large_refactoring
- Type
- int
- Default
- 1
- Description
- Complexity points added when the task is a large refactoring.
- Key
- complexity_weight_novel_patterns
- Type
- int
- Default
- 3
- Description
- Complexity points added when the task introduces novel patterns.
- Key
- compliance_changelog_filename
- Type
- str
- Default
- "CHANGELOG.md"
- Description
- File name of the project changelog the deliver changelog advisory looks at (default `CHANGELOG.md`).
- Key
- compliance_dir
- Type
- str
- Default
- "compliance"
- Description
- Directory under the TRW state dir that holds compliance records (default `compliance`).
- Key
- compliance_review_retention_days
- Type
- int
- Default
- 365
- Description
- Days automated review records are kept before they may be pruned.
- Key
- context_dir
- Type
- str
- Default
- "context"
- Description
- Directory under the TRW state dir that holds live session context files (default `context`).
- Key
- cross_model_provider
- Type
- str
- Default
- ""
- Description
- Dispatch client id (for example `codex`) used for cross-model review; empty means no reviewer.
- Key
- cross_model_review_enabled
- Type
- bool
- Default
- false
- Description
- Ask a second model family for a review of the diff in addition to the local review; off by default.
- Key
- cross_model_review_timeout_secs
- Type
- int
- Default
- 30
- Description
- Seconds to wait for the cross-model reviewer before giving up.
- Key
- ctx_isolation_enabled
- Type
- bool
- Default
- true
- Description
- Master kill-switch for per-connection pin isolation.
- Key
- debug
- Type
- bool
- Default
- false
- Description
- Enable DEBUG-level logging and the .trw/logs/ file sink for every MCP client
- Key
- dedup_enabled
- Type
- bool
- Default
- true
- Description
- Check a new learning against existing ones and skip or merge near-duplicates.
- Key
- dedup_merge_threshold
- Type
- float
- Default
- 0.85
- Description
- Similarity (0-1) at or above which a new learning is merged into an existing one.
- Key
- dedup_skip_threshold
- Type
- float
- Default
- 0.95
- Description
- Similarity (0-1) at or above which a new learning is skipped as a duplicate.
- Key
- deferred_batch_max_seconds
- Type
- int
- Default
- 300
- Description
- Seconds the whole deferred post-deliver batch may run.
- Key
- deferred_lock_stale_seconds
- Type
- int
- Default
- 600
- Description
- Seconds after which a deferred-delivery lock is treated as abandoned and taken over.
- Key
- deferred_step_max_seconds
- Type
- int
- Default
- 60
- Description
- Seconds one deferred post-deliver maintenance step may run before it is abandoned.
- Key
- degenerate_result_cooldown_calls
- Type
- int
- Default
- 20
- Description
- Matching tool results to skip after an advisory fires, per session (NFR06 noise budget).
- Key
- degenerate_result_deadline_ms
- Type
- int
- Default
- computed
- Description
- Self-imposed wall-clock deadline; past it the adapter exits 0 without emitting (NFR01).
- Key
- degenerate_result_freshness_commands
- Type
- list[str]
- Default
- computed
- Description
- Command prefixes whose undated output cannot distinguish 'nothing there' from 'could not look'.
- Key
- degenerate_result_max_read_bytes
- Type
- int
- Default
- 65536
- Description
- Cap on bytes read from a PostToolUse tool_response before shape classification (NFR03).
- Key
- degenerate_result_truncation_markers
- Type
- list[str]
- Default
- computed
- Description
- Literal markers whose presence means the result was capped rather than complete.
- Key
- degraded_detect_grace_seconds
- Type
- int
- Default
- 180
- Description
- Seconds after the SessionStart epoch marker before the absent-MCP-surface detector may conclude the surface is absent.
- Key
- degraded_detect_min_prompts
- Type
- int
- Default
- 2
- Description
- Minimum prompt index in this session before the absent-MCP-surface detector may fire.
- Key
- degraded_event_tail_lines
- Type
- int
- Default
- 500
- Description
- PRD-FIX-128 external audit row 7.
- Key
- degraded_marker_retention_hours
- Type
- int
- Default
- 24
- Description
- How long an epoch marker or emission latch belonging to an identity with NO live pin is kept before the SessionStart sweep reclaims it.
- Key
- deliver_gate_mode
- Type
- Literal['advisory', 'block_coding', 'block_all']
- Default
- "block_coding"
- Description
- Deliver gate posture: `advisory` warns only, `block_coding` blocks a missing build check for coding-type tasks, `block_all` blocks for every task type.
- Key
- deliver_gate_task_type_overrides
- Type
- dict[str, str]
- Default
- computed
- Description
- Per-task-type override of `deliver_gate_mode`, e.g.
- Key
- deliver_gate_unclassified_change_threshold
- Type
- int
- Default
- 1
- Description
- Number of distinct files a session must modify before the missing-build deliver gate arms for a task type that does not inherently expect a build.
- Key
- deliver_graph_backfill_deadline_seconds
- Type
- float
- Default
- 2.0
- Description
- Seconds the deliver-time knowledge-graph backfill may run before it stops.
- Key
- deliver_graph_backfill_enabled
- Type
- bool
- Default
- true
- Description
- On deliver, build knowledge-graph edges for not-yet-graphed learnings within a small time budget.
- Key
- delivery_busy_timeout_ms
- Type
- int
- Default
- 5000
- Description
- SQLite busy timeout for the delivery operation store.
- Key
- delivery_operations_mode
- Type
- Literal['off', 'observe', 'enforce']
- Default
- "enforce"
- Description
- Delivery journal mode: `off` disables it, `observe` records without acting, `enforce` acts on it.
- Key
- delivery_queue_depth_max
- Type
- int
- Default
- 128
- Description
- Bounded deferred FIFO queue depth (FR06).
- Key
- delivery_stale_lease_minutes
- Type
- int
- Default
- 15
- Description
- Minutes a pending lease must be stale before FR04 takeover.
- Key
- dispatch_child_trw_access
- Type
- bool
- Default
- false
- Description
- Default for dispatch --with-trw: inject ONLY TRW's own stdio trw-mcp server into the child's argv so a dispatched peer can use TRW session/memory tools.
- Key
- dispatch_default_client
- Type
- str | None
- Default
- "codex"
- Description
- Client used when --client is omitted; None requires an explicit --client.
- Key
- dispatch_default_effort
- Type
- Literal['low', 'medium', 'high', 'xhigh', 'max'] | None
- Default
- null
- Description
- Effort for dispatched children when the request names none; overrides the role's table row.
- Key
- dispatch_default_efforts
- Type
- dict[Literal['claude', 'codex', 'agy', 'opencode', 'cursor-cli', 'copilot', 'grok'], Literal['low', 'medium', 'high', 'xhigh', 'max']]
- Default
- computed
- Description
- Per-client effort for dispatched children (e.g.
- Key
- dispatch_default_max_turns
- Type
- int
- Default
- 30
- Description
- Turn cap for dispatched children (clients with a verified flag only); 0 disables it.
- Key
- dispatch_default_models
- Type
- dict[str, str]
- Default
- computed
- Description
- Per-client model override applied when --model is omitted (e.g.
- Key
- dispatch_default_read_only
- Type
- bool
- Default
- true
- Description
- Default read-only posture for dispatched children; --allow-writes overrides to False.
- Key
- dispatch_default_timeout_s
- Type
- int
- Default
- 600
- Description
- Wall-clock timeout (seconds) applied when --timeout is omitted.
- Key
- dispatch_enabled_clients
- Type
- list[Literal['claude', 'codex', 'agy', 'opencode', 'cursor-cli', 'copilot', 'grok']]
- Default
- computed
- Description
- Dispatch targets the CLI may launch; a client outside this list is rejected.
- Key
- dispatch_fallback_clients
- Type
- list[str]
- Default
- computed
- Description
- Clients tried in order after quota_exhausted or a launch failure; --fallback-clients overrides.
- Key
- dispatch_max_concurrent_children
- Type
- int
- Default
- 0
- Description
- Per-user cap on concurrently running dispatch children across processes; 0 disables it.
- Key
- dispatch_require_effort
- Type
- bool
- Default
- false
- Description
- Refuse (exit 2) a dispatch with no effort from --effort, dispatch_default_effort or the role table when its client and model accept an effort; clients without a carrier pass.
- Key
- dispatch_slot_wait_s
- Type
- float
- Default
- 600.0
- Description
- Seconds a top-level dispatch waits for a free child slot before refusing with silence_reason concurrency_cap; a nested dispatch never waits.
- Key
- dispatch_tools_exposed
- Type
- bool
- Default
- false
- Description
- Expose the dispatch capability pack (trw_dispatch: launch, status and the AgentWorkEvidence modes) on the resolved tool surface.
- Key
- dispatch_version_probe_timeout_s
- Type
- int
- Default
- 5
- Description
- Per-client wall-clock bound (seconds) on the doctor formation-readiness version probe; N enabled clients are bounded by N times this value.
- Key
- display_timezone
- Type
- str
- Default
- "UTC"
- Description
- IANA timezone used to render local times in `trw_status`; stored and compared times stay UTC.
- Key
- dry_check_enabled
- Type
- bool
- Default
- true
- Description
- Run the duplicate-code (DRY) check in the build gate.
- Key
- dry_check_min_block_size
- Type
- int
- Default
- 5
- Description
- Fewest identical lines that count as a duplicated block in the DRY check.
- Key
- embeddings_coverage_warn_threshold
- Type
- float
- Default
- 0.1
- Description
- Share (0-1) of learnings without embeddings above which the pipeline-health check warns.
- Key
- embeddings_enabled
- Type
- bool
- Default
- true
- Description
- Governs this trw-mcp process only (dedup, the installer/swap extras, retrieval probes); it does not switch off the shared per-user memory daemon, whose embeddings are set by MEMORY_EMBEDDINGS_ENABLED=false in the daemon's environment (then restart it).
- Key
- entries_dir
- Type
- str
- Default
- "entries"
- Description
- Directory under the learnings dir that holds individual learning entries (default `entries`).
- Key
- events_file
- Type
- str
- Default
- "events.jsonl"
- Description
- File name of the per-run event log (default `events.jsonl`).
- Key
- evidence_receipt_mode
- Type
- Literal['observe', 'enforce']
- Default
- "enforce"
- Description
- Evidence receipt compatibility: `observe` writes typed receipts alongside the legacy files, `enforce` requires the typed receipts.
- Key
- extra_prd_categories
- Type
- list[str]
- Default
- computed
- Description
- Project-specific PRD category names accepted in addition to the built-in generic set (CORE, QUAL, INFRA, LOCAL, EXPLR, RESEARCH, FIX).
- Key
- factory_enabled
- Type
- bool
- Default
- false
- Description
- Enable the experimental software-factory commands (status, receipts, factory checkpoints); off unless you opt in.
- Key
- feedback
- Type
- FeedbackFields
- Default
- computed
- Description
- Settings for the feedback channel behind `trw_status(feedback=...)`.
- Key
- formation_activity_stall_seconds
- Type
- int
- Default
- 1800
- Description
- Seconds without activity after which a formation member is reported as stalled.
- Key
- formation_deliver_gate
- Type
- Literal['block', 'advisory']
- Default
- "block"
- Description
- Whether delivering while a joined formation member is mid-work blocks (`block`) or only warns (`advisory`).
- Key
- formation_hook_ownership_mode
- Type
- Literal['warn', 'off']
- Default
- "warn"
- Description
- PreToolUse ownership check for formation members: `warn` reports an unowned edit, `off` disables it (never blocks).
- Key
- formation_manifest_lock_timeout_seconds
- Type
- float
- Default
- 10.0
- Description
- Bounded wait for the formation manifest lock, in seconds.
- Key
- formation_ownership_enforcement
- Type
- Literal['refuse', 'warn']
- Default
- "refuse"
- Description
- Commit-boundary check that a member only commits paths it owns: `refuse` blocks the commit, `warn` only reports it.
- Key
- formation_status_member_limit
- Type
- int
- Default
- 16
- Description
- Maximum member rows assembled by the formation status roll-up.
- Key
- framework_md_enabled
- Type
- bool | None
- Default
- null
- Description
- Deploy the framework document into the project; unset follows the client profile.
- Key
- framework_read_scope
- Type
- Literal['phase', 'full']
- Default
- "phase"
- Description
- Whether the SessionStart framework read directive names only the sections for the current phase ('phase', the default, at most 6349 characters) or the whole 35073-character document ('full').
- Key
- framework_version
- Type
- str
- Default
- "v27.6_TRW"
- Description
- Framework version stamp deployed with the project (managed by `make framework-bump`, not by hand).
- Key
- frameworks_dir
- Type
- str
- Default
- "frameworks"
- Description
- Directory under the TRW state dir where the deployed framework documents live (default `frameworks`).
- Key
- hint_delivery_canary_window
- Type
- int
- Default
- 200
- Description
- Newest N pre-edit hint records the hint_delivery doctor row inspects (20-5000).
- Key
- hint_delivery_fallback_warn_share
- Type
- float
- Default
- 0.5
- Description
- Fallback-status share of the hint_delivery window at/above which the row WARNs (0-1).
- Key
- hint_delivery_receipt_stale_days
- Type
- int
- Default
- 7
- Description
- Post-commit sidecar receipt age (days) after which hint_delivery WARNs when trw-distill is installed.
- Key
- hint_hub_downrank
- Type
- bool
- Default
- true
- Description
- On a hub file (more anchored lessons than `hint_hub_threshold`), list anchor-only lessons after the text-matched ones; false restores anchored-first ordering.
- Key
- hint_hub_threshold
- Type
- int
- Default
- 67
- Description
- Anchored lessons above which a file is a hub whose anchor-only lessons the pre-edit hint shows after text-matched ones (1-9999; lower flags more files, each edit fetches this + 1 rows).
- Key
- hint_recall_deadline_ms
- Type
- int
- Default
- 600
- Description
- Wall-clock budget (ms) for the pre-edit hint's T1 learnings recall (50-10000); past it the hint returns no learnings as recall_timeout rather than block the T2 sidecar hint.
- Key
- hint_sidecar_ancestor_enabled
- Type
- bool
- Default
- true
- Description
- Let the pre-edit hint use a proven-ancestor commit's sidecar when the exact-HEAD one is missing, instead of no sidecar half at all.
- Key
- hint_sidecar_max_commits_behind
- Type
- int
- Default
- 500
- Description
- Commits an ancestor sidecar may trail HEAD by and still serve the pre-edit hint (1-10000; lower refuses older sidecars as sidecar_too_far_behind).
- Key
- hint_sidecar_rebuild_after_commits
- Type
- int
- Default
- 150
- Description
- Commits behind HEAD at which a served ancestor sidecar triggers a rebuild request (1-10000, capped at hint_sidecar_max_commits_behind; lower rebuilds more often).
- Key
- hint_sidecar_rebuild_min_interval_minutes
- Type
- int
- Default
- 15
- Description
- Minimum minutes between two detached sidecar rebuild requests (1-1440; lower starts builds more often, higher leaves the sidecar older).
- Key
- hint_sidecar_refresh_enabled
- Type
- bool
- Default
- true
- Description
- Post-commit hook and session start request a detached rebuild of the trw-distill pre-edit-hint sidecar (post-commit also refreshes the risk report); false stops both.
- Key
- hooks_enabled
- Type
- bool
- Default
- true
- Description
- Master switch for every bundled hook; false disables them all.
- Key
- hybrid_rrf_k
- Type
- int
- Default
- 60
- Description
- Reciprocal-rank-fusion constant used to merge keyword and vector recall rankings.
- Key
- index_auto_sync_on_status_change
- Type
- bool
- Default
- true
- Description
- Regenerate the PRD index automatically when a PRD's status changes.
- Key
- installation_id
- Type
- str
- Default
- ""
- Description
- Explicit installation identifier; empty derives a stable `inst-<hash>` from the project root path.
- Key
- installer_answers
- Type
- dict[str, bool]
- Default
- computed
- Description
- Answers the installer remembers so it never asks twice: key -> true/false (for example ai_extras, proprietary_upgrade, migrate_learnings, platform_connect, system_python_<id>).
- Key
- instruction_backup_dir
- Type
- str
- Default
- ".trw/backups/instructions"
- Description
- Project-relative directory where instruction-file backups are written before a guarded rewrite.
- Key
- instruction_backup_retention
- Type
- int
- Default
- 5
- Description
- Pre-write backup copies retained per instruction filename (PRD-FIX-123-FR04).
- Key
- instruction_catalogue_mode
- Type
- Literal['pointer', 'verbatim']
- Default
- "pointer"
- Description
- Whether a full-ceremony client's generated protocol block carries a pointer to trw_status(detail="surface") ('pointer', the default) or the verbatim tool table ('verbatim').
- Key
- instruction_dry_run_diff_max_lines
- Type
- int
- Default
- 400
- Description
- Maximum unified-diff lines returned per target by a dry-run instruction sync (PRD-FIX-123-FR03).
- Key
- instruction_size_gate_mode
- Type
- Literal['warn', 'block'] | None
- Default
- null
- Description
- Whether an over-size TRW instruction block only warns (`warn`) or is refused (`block`); unset lets the client profile decide.
- Key
- instruction_write_block_delta_tolerance_bytes
- Type
- int
- Default
- 64
- Description
- Bytes of slack when testing whether a total-size drop is explained by the TRW block's own size change (PRD-FIX-123-FR02).
- Key
- instruction_write_max_total_shrink_fraction
- Type
- float
- Default
- 0.25
- Description
- Largest fraction of an instruction file's total bytes a guarded write may remove before it is refused without force (PRD-FIX-123-FR02).
- Key
- intel_cache_enabled
- Type
- bool
- Default
- true
- Description
- Cache fetched intelligence payloads locally for `intel_cache_ttl_seconds`.
- Key
- intel_cache_ttl_seconds
- Type
- int
- Default
- 3600
- Description
- Seconds a fetched intelligence payload stays cached before it is refetched.
- Key
- knowledge_jaccard_threshold
- Type
- float
- Default
- 0.3
- Description
- Tag-overlap (Jaccard) similarity at which two learnings are linked in the knowledge topology.
- Key
- knowledge_min_cluster_size
- Type
- int
- Default
- 3
- Description
- Fewest learnings a topic cluster needs to be written out.
- Key
- knowledge_output_dir
- Type
- str
- Default
- "knowledge"
- Description
- Directory under the TRW state dir where knowledge-topology pages are written (default `knowledge`).
- Key
- knowledge_sync_threshold
- Type
- int
- Default
- 50
- Description
- Number of new learnings that triggers a knowledge-topology rebuild.
- Key
- learn_journal_drain_budget_ms
- Type
- int
- Default
- 3000
- Description
- Milliseconds a session-start learn-journal sweep may spend replaying before it stops and leaves the rest.
- Key
- learn_journal_drain_limit
- Type
- int
- Default
- 50
- Description
- Most pending learn-journal records replayed per session-start sweep; the rest drain on later sweeps.
- Key
- learn_journal_enabled
- Type
- bool
- Default
- true
- Description
- Durably journal an accepted `trw_learn` before the slow store pipeline so a crash mid-write loses nothing; replayed at the next session start.
- Key
- learn_journal_max_replay_attempts
- Type
- int
- Default
- 5
- Description
- Replay attempts before a record that keeps failing transiently is dead-lettered instead of retried forever.
- Key
- learning_auto_prune_cap
- Type
- int
- Default
- 150
- Description
- Active learnings kept by the auto-prune pass; lowest-value ones beyond it are pruned.
- Key
- learning_auto_prune_max_seconds
- Type
- int
- Default
- 30
- Description
- Wall-clock budget in seconds for one auto-prune pass; a pass that hits it returns the partial result.
- Key
- learning_auto_prune_min_interval_hours
- Type
- int
- Default
- 24
- Description
- Least hours between two auto-prune passes (a pass is expensive on large stores).
- Key
- learning_auto_prune_on_deliver
- Type
- bool
- Default
- true
- Description
- Prune low-value learnings automatically after deliver.
- Key
- learning_decay_half_life_days
- Type
- float
- Default
- 14.0
- Description
- Days for a learning's utility to halve when unused.
- Key
- learning_decay_use_exponent
- Type
- float
- Default
- 0.6
- Description
- Exponent applied to use count when slowing a learning's decay.
- Key
- learning_max_entries
- Type
- int
- Default
- 500
- Description
- Most learnings kept in the store; the lowest-value ones beyond it are dropped by maintenance.
- Key
- learning_outcome_correlation_scope
- Type
- str
- Default
- "session"
- Description
- Which recalls an outcome is attributed to: `session` or a wider scope.
- Key
- learning_outcome_correlation_window_minutes
- Type
- int
- Default
- 7
- Description
- Minutes after a recall within which a build outcome is attributed to the learnings shown.
- Key
- learning_recall_enabled
- Type
- bool
- Default
- true
- Description
- Master switch for learnings reaching the agent through recall, hints and hooks; false keeps them all off.
- Key
- learning_repeated_op_threshold
- Type
- int
- Default
- 3
- Description
- Times the same operation must recur before it is suggested as a learning.
- Key
- learning_sharing_enabled
- Type
- bool
- Default
- false
- Description
- Separate consent to publish learning content (summary and detail) to the platform; off by default and distinct from usage telemetry.
- Key
- learning_utility_delete_threshold
- Type
- float
- Default
- 0.05
- Description
- Utility below which a learning is deleted outright.
- Key
- learning_utility_prune_threshold
- Type
- float
- Default
- 0.1
- Description
- Utility below which a learning becomes a prune candidate.
- Key
- learnings_dir
- Type
- str
- Default
- "learnings"
- Description
- Directory under the TRW state dir that holds learnings (default `learnings`).
- Key
- llm_default_model
- Type
- str
- Default
- "haiku"
- Description
- Model alias used for TRW's own small LLM calls (default `haiku`).
- Key
- llm_usage_log_enabled
- Type
- bool
- Default
- true
- Description
- Log every TRW LLM call's usage to `llm_usage_log_file`.
- Key
- llm_usage_log_file
- Type
- str
- Default
- "llm_usage.jsonl"
- Description
- File name of the LLM usage log (default `llm_usage.jsonl`).
- Key
- logs_dir
- Type
- str
- Default
- "logs"
- Description
- Directory under the TRW state dir that holds log and usage files (default `logs`).
- Key
- maintain_verify_batch_limit
- Type
- int
- Default
- 1000
- Description
- Max entries per maintain-verify page; the explicit sweep traverses all eligible pages.
- Key
- max_auto_lines
- Type
- int
- Default
- 300
- Description
- Line limit for the whole instruction file after TRW's block is merged in; a write that would exceed it is refused, never truncated.
- Key
- max_consolidated_tags
- Type
- int
- Default
- 20
- Description
- Most tags kept on a consolidated (merged) learning.
- Key
- memory_consolidation_enabled
- Type
- bool
- Default
- true
- Description
- Run periodic consolidation that merges clusters of similar learnings.
- Key
- memory_consolidation_max_per_cycle
- Type
- int
- Default
- 50
- Description
- Most learnings consolidated in one cycle.
- Key
- memory_consolidation_min_cluster
- Type
- int
- Default
- 3
- Description
- Fewest similar learnings that form a cluster worth consolidating.
- Key
- memory_consolidation_similarity_threshold
- Type
- float
- Default
- 0.75
- Description
- Similarity (0-1) two learnings need to be clustered for consolidation.
- Key
- meta_tune
- Type
- MetaTuneConfig
- Default
- computed
- Description
- Nested meta-tuning settings (`meta_tune.enabled` mirrors `meta_tune_enabled`).
- Key
- meta_tune_enabled
- Type
- bool
- Default
- false
- Description
- Enable the meta-tuning loop (self-modification sandbox); off by default and only supported on Linux.
- Key
- migration_gate_enabled
- Type
- bool
- Default
- true
- Description
- Run the database-migration check in the build gate.
- Key
- model_family
- Type
- str
- Default
- ""
- Description
- Model family tag for surface telemetry and nudge logs (C-5).
- Key
- nudge_density
- Type
- Literal['low', 'medium', 'high'] | None
- Default
- null
- Description
- Nudge injection density: low=less frequent, high=more frequent; None defers to profile default.
- Key
- nudge_enabled
- Type
- bool | None
- Default
- null
- Description
- Show ceremony nudges to the agent; unset follows the client profile.
- Key
- nudge_messenger
- Type
- Literal['standard', 'minimal', 'contextual', 'contextual_action', 'contextual_distress', 'silent_flow', 'cod', 'stepback', 'anchor', 'negative', 'governance'] | None
- Default
- null
- Description
- Nudge wording variant (`standard`, `minimal`, `contextual`, ...); unset follows the client profile.
- Key
- nudge_pool_cooldown_after
- Type
- int
- Default
- 3
- Description
- Times a pooled nudge may show before it goes on cooldown.
- Key
- nudge_pool_cooldown_calls
- Type
- int
- Default
- 10
- Description
- Tool calls a pooled nudge stays silent once it is on cooldown.
- Key
- nudge_pool_cooldown_wall_clock_max_hours
- Type
- int
- Default
- 24
- Description
- Max wall-clock hours a nudge pool stays cooled down before re-engaging.
- Key
- nudge_pool_weights
- Type
- models._client_profile.NudgePoolWeights | None
- Default
- null
- Description
- Project override for nudge pool routing weights (must sum to 100); None defers to profile.
- Key
- nudge_variant
- Type
- str | None
- Default
- null
- Description
- Label stamped on nudge events to compare arms in live traffic; routing still follows `nudge_messenger`.
- Key
- otel_enabled
- Type
- bool
- Default
- false
- Description
- Set up OpenTelemetry tracing at startup; off by default.
- Key
- parallelism_max
- Type
- int
- Default
- 10
- Description
- Parallelism ceiling written into a new project's `config.yaml` at init (default 10).
- Key
- path_index_exclude_dirs
- Type
- list[str]
- Default
- computed
- Description
- Extra directory names pruned from the PRD path-index walk, unioned with the built-in PATH_INDEX_EXCLUDE_DIRS.
- Key
- path_index_max_files
- Type
- int
- Default
- 1000000
- Description
- RUNAWAY GUARD (not the latency control) on files scanned while building the bare-filename basename index.
- Key
- path_index_max_seconds
- Type
- float
- Default
- 5.0
- Description
- RUNAWAY GUARD (wall-clock seconds) on the bare-filename basename index walk.
- Key
- patterns_dir
- Type
- str
- Default
- "patterns"
- Description
- Directory under the TRW state dir that holds recorded patterns (default `patterns`).
- Key
- phase_gate_enforcement
- Type
- Literal['strict', 'lenient', 'off']
- Default
- "lenient"
- Description
- How phase-exit gates react to unmet criteria: `strict` blocks, `lenient` warns, `off` ignores.
- Key
- pin_ttl_hours
- Type
- int
- Default
- 24
- Description
- Time-to-live (hours) for entries in the persistent pin store before GC evicts them.
- Key
- pipeline_health_gate_enabled
- Type
- bool
- Default
- true
- Description
- Master kill switch for the FR06 fail-closed pipeline-health gate.
- Key
- pipeline_health_gate_failure_threshold
- Type
- int
- Default
- 10
- Description
- Consecutive push failures before the FR06 gate fails closed.
- Key
- pipeline_health_gate_graph_min_corpus
- Type
- int
- Default
- 50
- Description
- Young-store threshold: an empty knowledge graph fails the FR06 gate, and low embedding coverage degrades the pipeline, only for a store holding more memories than this.
- Key
- pipeline_health_gate_stale_hours
- Type
- float
- Default
- 6.0
- Description
- Hours since last successful push before the FR06 gate fails closed.
- Key
- platform_api_key
- Type
- SecretStr
- Default
- ""
- Description
- API key for the TRW platform (kept secret in output); empty means none configured.
- Key
- platform_contact_enabled
- Type
- bool
- Default
- true
- Description
- Master veto on every network call to the TRW platform (sync, backup, telemetry uploads); false keeps the install fully offline.
- Key
- platform_telemetry_enabled
- Type
- bool
- Default
- false
- Description
- Send anonymous usage telemetry to the TRW platform; off by default and separate from learning sharing.
- Key
- platform_url
- Type
- str
- Default
- ""
- Description
- Base URL of the TRW platform this install talks to; empty means none configured.
- Key
- platform_urls
- Type
- list[str]
- Default
- computed
- Description
- Ordered list of platform URLs; the first is used and the rest are fallbacks.
- Key
- post_commit_distill_incremental
- Type
- bool
- Default
- false
- Description
- Let the post-commit hook run `trw-distill run --incremental --live-ingest`, which may call an LLM and writes lessons into the store; off unless you choose it.
- Key
- prd_min_content_density
- Type
- float
- Default
- 0.3
- Description
- Least content density a PRD needs to move from DRAFT to REVIEW.
- Key
- prd_required_status_for_implement
- Type
- str
- Default
- "approved"
- Description
- PRD status required before the implement phase may start (default `approved`).
- Key
- prd_transition_gate
- Type
- Literal['warn', 'block']
- Default
- "block"
- Description
- Whether moving a PRD to implemented without accepted evidence only warns (`warn`) or is blocked (`block`).
- Key
- prd_validate_budget_seconds
- Type
- float
- Default
- 60.0
- Description
- Wall-clock budget (seconds) for trw_prd_validate's dynamic checks; on breach the remaining check groups are skipped and the result is flagged validation_partial (PRD-FIX-112).
- Key
- prd_validation_cache_maintenance_interval
- Type
- int
- Default
- 32
- Description
- Number of successful shard writes between bounded maintenance sweeps.
- Key
- prd_validation_cache_max_entries
- Type
- int
- Default
- 512
- Description
- Maximum number of cached pure-validation shards.
- Key
- prd_validation_cache_max_entry_bytes
- Type
- int
- Default
- 4194304
- Description
- Maximum size of a single cached shard.
- Key
- prd_validation_cache_max_total_bytes
- Type
- int
- Default
- 67108864
- Description
- Maximum aggregate on-disk bytes across all cached pure-validation shards.
- Key
- prds_relative_path
- Type
- str
- Default
- "docs/requirements-aare-f/prds"
- Description
- Project-relative directory that holds PRD documents (default `docs/requirements-aare-f/prds`).
- Key
- pricing_table_path
- Type
- str
- Default
- ""
- Description
- Path to a custom model pricing table for cost estimates; empty uses the bundled one.
- Key
- profile_domain_path_map
- Type
- dict[str, str]
- Default
- computed
- Description
- Source-path prefix -> profile 'domain' layer name, used by infer_domain when no explicit domain is supplied.
- Key
- profile_system_enabled
- Type
- bool
- Default
- true
- Description
- Resolve and apply the layered client/domain profile at session start; false skips profile resolution.
- Key
- project_handoff_path
- Type
- str
- Default
- ".trw/HANDOFF.md"
- Description
- Project-relative path of the deliver-time handoff file (PRD-CORE-249-FR01).
- Key
- project_namespace
- Type
- str
- Default
- ""
- Description
- Stable memory-store namespace for this project once migrated to the machine-local daemon store; empty means the checkout keeps its own `.trw/memory` store.
- Key
- protection_tier_prune_discount
- Type
- dict[str, float]
- Default
- computed
- Description
- Multiplier on the utility threshold an entry must fall below before an automatic prune, tier demotion or purge may nominate it (PRD-CORE-244 FR10).
- Key
- recall_internal_fields
- Type
- frozenset[str]
- Default
- ["access_count", "anchor_validity", "combined_score", "last_accessed_at", "outcome_history", "recall_count", "recurrence", "session_count"]
- Description
- Learning fields removed from recall results because they are internal.
- Key
- recall_max_results
- Type
- int
- Default
- 25
- Description
- Most learnings `trw_recall` returns for one query.
- Key
- recall_provenance_inline
- Type
- bool
- Default
- true
- Description
- Show source and scope inline in each recalled learning stub so provenance is checked before a claim is reused.
- Key
- recall_user_tier_cap
- Type
- int
- Default
- 5
- Description
- Maximum number of user-tier hits that may enter a single federated recall result, so a flood of low-value user hits cannot bury a precise project hit (PRD-CORE-185 FR06 / D3 / R4).
- Key
- recall_utility_lambda
- Type
- float
- Default
- 0.3
- Description
- Weight of utility in targeted recall ranking; 0 disables utility preferences (query relevance always wins).
- Key
- receipts_dir
- Type
- str
- Default
- "receipts"
- Description
- Directory under the TRW state dir that holds build/review receipts (default `receipts`).
- Key
- reflect_max_success_patterns
- Type
- int
- Default
- 5
- Description
- Most success patterns kept per reflection.
- Key
- reflections_dir
- Type
- str
- Default
- "reflections"
- Description
- Directory under the TRW state dir that holds reflection outputs (default `reflections`).
- Key
- requirement_drift_gate
- Type
- Literal['warn', 'block'] | None
- Default
- null
- Description
- Deliver-time requirement-drift gate: `warn` or `block`; unset keeps the per-PRD default (block for safety-critical PRDs, warn otherwise).
- Key
- response_format
- Type
- Literal['yaml', 'json']
- Default
- "yaml"
- Description
- Format of tool responses: `yaml` or `json`.
- Key
- review_confidence_threshold
- Type
- int
- Default
- 80
- Description
- Minimum finding confidence (0-100) for an automated review finding to be reported.
- Key
- review_gate_mode
- Type
- Literal['warn', 'block']
- Default
- "warn"
- Description
- Whether a STANDARD or COMPREHENSIVE run that reaches deliver with no recorded review only warns (`warn`) or is blocked (`block`).
- Key
- review_mandate_advisory_enabled
- Type
- bool
- Default
- true
- Description
- Tell the agent up front that STANDARD and COMPREHENSIVE runs need a review before deliver (advisory only).
- Key
- review_signoff_ttl_hours
- Type
- int
- Default
- 24
- Description
- Max validity window of an operator review sign-off, in hours.
- Key
- review_verdict_ttl_hours
- Type
- int
- Default
- 24
- Description
- Hours a recorded review verdict stays valid at deliver time; older ones are treated as expired even if the reviewed bytes did not move.
- Key
- risk_scaling_enabled
- Type
- bool
- Default
- true
- Description
- Scale PRD validation thresholds by the PRD's risk level.
- Key
- run_auto_close_enabled
- Type
- bool
- Default
- true
- Description
- Close stale runs automatically when run status is assembled.
- Key
- run_stale_ttl_hours
- Type
- int
- Default
- 48
- Description
- Hours without activity after which a run counts as stale and may be auto-closed.
- Key
- run_staleness_grace_hours
- Type
- int
- Default
- 12
- Description
- Grace window (hours) appended to run_staleness_hours; runs inside this window emit run_near_stale_warning but are not abandoned.
- Key
- run_staleness_hours
- Type
- int
- Default
- 48
- Description
- Age (hours) beyond which an active run with no activity is eligible for the stale-run sweep.
- Key
- runs_root
- Type
- str
- Default
- ".trw/runs"
- Description
- Project-relative directory where run directories are created (default `.trw/runs`).
- Key
- scoring_default_days_unused
- Type
- int
- Default
- 30
- Description
- Days-unused value assumed for a learning with no recorded last use.
- Key
- scripts_dir
- Type
- str
- Default
- "scripts"
- Description
- Directory under the TRW state dir that holds generated helper scripts (default `scripts`).
- Key
- security
- Type
- SecurityConfig
- Default
- computed
- Description
- Nested security settings for the MCP trust boundary.
- Key
- semantic_checks_enabled
- Type
- bool
- Default
- true
- Description
- Run semantic checks in the build gate in addition to syntax checks.
- Key
- session_start_recall_enabled
- Type
- bool | None
- Default
- null
- Description
- Recall learnings at session start; unset follows `learning_recall_enabled`.
- Key
- shared_mcp
- Type
- SharedMcpConfig
- Default
- computed
- Description
- Opt-in shared MCP server settings: `enabled` makes clients launch `trw-mcp-proxy` against one shared server instead of one stdio server each.
- Key
- skills_enabled
- Type
- bool | None
- Default
- null
- Description
- Install bundled skills; unset follows the client profile.
- Key
- source_human_utility_boost
- Type
- float
- Default
- 0.1
- Description
- Utility bonus for learnings a human wrote or confirmed.
- Key
- state_learning_default_ttl_days
- Type
- dict[str, int]
- Default
- computed
- Description
- Default validity window in days, per learning type, proposed for a state-asserting learning (PRD-CORE-244 FR05).
- Key
- sub_claude_md_max_lines
- Type
- int
- Default
- 50
- Description
- Line limit for a module-level (sub-scope) instruction file.
- Key
- surface_role
- Type
- Literal['agent', 'reviewer']
- Default
- "agent"
- Description
- MCP surface role: `agent` is the normal full surface, `reviewer` a read-only report surface for dispatched review sessions (normally set by the environment, not here).
- Key
- sync_health_failure_threshold
- Type
- int
- Default
- 10
- Description
- Consecutive push failures before sync_health marks degraded.
- Key
- sync_health_stale_hours
- Type
- float
- Default
- 6.0
- Description
- Hours since last successful push before sync_health marks degraded.
- Key
- sync_interval_seconds
- Type
- int
- Default
- 300
- Description
- Seconds between team-sync push/pull cycles.
- Key
- sync_pull_timeout_seconds
- Type
- float
- Default
- 5.0
- Description
- Seconds to wait for a pull request before giving up.
- Key
- sync_push_batch_size
- Type
- int
- Default
- 100
- Description
- Most learnings pushed to the backend in one batch.
- Key
- sync_push_timeout_seconds
- Type
- float
- Default
- 10.0
- Description
- Seconds to wait for a push request before giving up.
- Key
- target_platforms
- Type
- list[str]
- Default
- computed
- Description
- Platforms to sync instruction files for.
- Key
- task_root
- Type
- str
- Default
- "docs"
- Description
- Project-relative directory that holds task directories (default `docs`).
- Key
- team_sync_all_projects
- Type
- bool
- Default
- false
- Description
- Rank other projects' team learnings like unrecorded ones in recall instead of lower (default: lower).
- Key
- team_sync_enabled
- Type
- bool
- Default
- false
- Description
- Enable team sync of learnings with the backend; off by default.
- Key
- team_sync_fresh_after_seconds
- Type
- int
- Default
- 300
- Description
- Pull team learnings before recall when the last pull is older than this (0: never).
- Key
- telemetry
- Type
- bool
- Default
- false
- Description
- Legacy usage-telemetry switch copied into a new project's `config.yaml` at init; the live switch is `telemetry_enabled`.
- Key
- telemetry_enabled
- Type
- bool
- Default
- true
- Description
- Record local tool-call telemetry under the logs directory.
- Key
- telemetry_file
- Type
- str
- Default
- "tool-telemetry.jsonl"
- Description
- File name of the local tool-call telemetry log (default `tool-telemetry.jsonl`).
- Key
- telemetry_log_max_bytes
- Type
- int
- Default
- 10485760
- Description
- Pipeline telemetry-log rotation threshold in bytes (FR04)
- Key
- templates_dir
- Type
- str
- Default
- "templates"
- Description
- Directory under the TRW state dir that holds generated templates (default `templates`).
- Key
- time_tracking_enabled
- Type
- bool
- Default
- true
- Description
- Track elapsed time and ETAs for task-scaled runs and show them in `trw_status`, checkpoints and deliver.
- Key
- timebox_hours
- Type
- int
- Default
- 8
- Description
- Default time box in hours written into a new project's `config.yaml` at init (default 8).
- Key
- tool_output_size_warning_bytes
- Type
- int
- Default
- 8192
- Description
- Rendered PostToolUse tool_response byte length above which a size advisory fires (PRD-INFRA-194-FR04).
- Key
- tool_resolution_mode
- Type
- Literal['standard', 'all']
- Default
- "standard"
- Description
- Which tool packs the MCP server exposes: `standard` is the kernel plus every pack whose flag is on, `all` also enables the comms and assess packs.
- Key
- traceability_coverage_min
- Type
- float
- Default
- 0.9
- Description
- Lowest allowed share of requirements traced to code or tests (0-1).
- Key
- transition_nudges_enabled
- Type
- bool
- Default
- true
- Description
- Allow phase-transition nudge lines (learning and suggestion lines) to reach the agent; independent of `nudge_enabled`.
- Key
- trust_crawl_boundary
- Type
- int
- Default
- 50
- Description
- Session count up to which an agent stays in the `crawl` trust tier; above it the tier is `walk`.
- Key
- trust_walk_boundary
- Type
- int
- Default
- 200
- Description
- Session count up to which an agent stays in the `walk` trust tier; above it the tier is `run`.
- Key
- trw_dir
- Type
- str
- Default
- ".trw"
- Description
- Name of the TRW state directory inside the project (default `.trw`).
- Key
- validation_density_weight
- Type
- float
- Default
- 20.0
- Description
- Points a PRD can earn for content density in the validation score.
- Key
- validation_draft_threshold
- Type
- float
- Default
- 60.0
- Description
- Validation score at or above which a PRD is at least REVIEW quality.
- Key
- validation_implementation_readiness_weight
- Type
- float
- Default
- 25.0
- Description
- Points a PRD can earn for implementation readiness in the validation score.
- Key
- validation_review_threshold
- Type
- float
- Default
- 85.0
- Description
- Validation score at or above which a PRD is APPROVED quality.
- Key
- validation_skeleton_threshold
- Type
- float
- Default
- 30.0
- Description
- Validation score at or above which a PRD is at least DRAFT quality (below it: skeleton).
- Key
- validation_structure_weight
- Type
- float
- Default
- 20.0
- Description
- Points a PRD can earn for structure in the validation score.
- Key
- validation_traceability_weight
- Type
- float
- Default
- 35.0
- Description
- Points a PRD can earn for traceability in the validation score.
- Key
- verification_cache_ttl_seconds
- Type
- int
- Default
- 3600
- Description
- Freshness window for last-known evidence; never proves current-tree validity or triggers verification.
- Key
- version_check_interval_seconds
- Type
- float
- Default
- 300.0
- Description
- Interval (seconds) between cached booted-vs-installed trw-mcp version-drift checks on the tool-call middleware path (PRD-CORE-215-FR02).
- Key
- wal_checkpoint_max_age_seconds
- Type
- int
- Default
- 3600
- Description
- Seconds since the last SUCCESSFUL checkpoint after which one is due regardless of WAL size.
- Key
- wal_checkpoint_threshold_mb
- Type
- int
- Default
- 10
- Description
- WAL size (MiB) at or above which a checkpoint is due.
- Key
- wiring_gate_mode
- Type
- Literal['warn', 'block']
- Default
- "warn"
- Description
- Whether a PRD whose requirements are not wired to code only warns (`warn`) or fails validation (`block`).
- Key
- wiring_gate_mode_overrides
- Type
- dict[str, Literal['warn', 'block']]
- Default
- computed
- Description
- Per-PRD override of `wiring_gate_mode` (PRD id or category to `warn`/`block`); empty means every PRD uses the global mode.
| Key | Type | Default | Description |
|---|---|---|---|
| aaref_version | str | "v3.3.0" | AARE-F requirements-framework version stamp deployed with the project. |
| access_count_utility_boost_cap | float | 0.15 | Largest utility bonus a learning can earn from being recalled often. |
| additional_repo_roots | list[str] | computed | Sibling repository roots for multi-repo workspaces, so PRD key-file references into sibling repos resolve instead of failing as missing paths. |
| agent_report_max_chars | int | 800 | Character limit each bundled agent is asked to keep its final report within (guidance to the model); 0 renders no limit. |
| agents_enabled | bool | None | null | Install bundled sub-agent definitions; unset follows the client profile. |
| agents_md_enabled | bool | true | Write TRW's block into `AGENTS.md`. |
| ambiguity_rate_max | float | 0.05 | Highest allowed share of ambiguous terms in a PRD (0-1). |
| anchor_validity_verified_floor | float | 1.0 | Minimum recomputed anchor_validity for a 'verified' verification verdict. |
| assertion_failure_penalty | float | 0.15 | Recall-rank penalty (0-1) for a learning whose stored assertions fail verification, scaled by the failing fraction. |
| assertion_stale_threshold_days | int | 30 | Days after which a learning's assertion verification is stale and due for re-verification. |
| assess_enabled | bool | false | Expose the assess_support capability pack (trw_assess) on the resolved tool surface. |
| auto_checkpoint_pre_compact | bool | true | Write a checkpoint automatically before the client compacts context. |
| auto_recall_enabled | bool | true | Let the prompt hook inject relevant learnings before each prompt (the master `learning_recall_enabled` switch outranks it). |
| auto_recall_max_results | int | 3 | Most learnings the prompt hook injects per prompt. |
| auto_recall_max_tokens | int | 100 | Token budget for the learnings the prompt hook injects per prompt. |
| auto_recall_min_score | float | 0.35 | Minimum relevance (0-1, IDF-weighted share of prompt keywords a learning covers) a learning needs to be injected by the prompt hook. |
| auto_recall_scan_cap | int | 10000 | Most stored learnings the prompt hook's auto-recall scorer scans per prompt (0 or a small value scores only a recent window). |
| backend_api_key | str | "" | API key for the sync backend; empty means none configured. |
| backend_url | str | "" | Base URL of the sync backend; empty means no backend configured. |
| backup_remote_enabled | bool | false | Allow uploading a backup archive of the local store to the platform; off by default because the archive is the raw local store. |
| boot_deferred_work_budget_ms | int | 5000 | Budget (ms) for the post-'initialize' backend-sync resolution scheduled by PRD-CORE-248 FR01. |
| boot_gc_deferred | bool | true | When True, the boot-time stale-run + stale-pin sweep runs in a daemon background thread ('trw-boot-gc') instead of synchronously before the MCP initialize handshake, so large repos do not stall client connect (production feedback sub_psVs_nUWnLJGvOs3). |
| build_check_coverage_min | float | 85.0 | Minimum test coverage percentage a build check must report to pass the build gate. |
| build_check_enabled | bool | true | Run the build-check gate; false turns the build-check requirement off for validation and deliver. |
| build_gate_enforcement | Literal['strict', 'lenient', 'off'] | "lenient" | How the build gate reacts to a failed check: `strict` blocks, `lenient` warns, `off` ignores it. |
| ceremony_feedback_escalation_threshold | float | 60.0 | Ceremony score below which recent sessions escalate the ceremony level. |
| ceremony_feedback_escalation_window | int | 5 | Number of recent sessions considered when deciding to escalate ceremony. |
| ceremony_feedback_min_samples | int | 10 | Sessions needed before ceremony feedback adjusts the ceremony level. |
| ceremony_feedback_quality_threshold | float | 0.9 | Outcome quality (0-1) at or above which a session counts as good for feedback. |
| ceremony_feedback_score_threshold | float | 80.0 | Ceremony score at or above which a session counts as well-run for feedback. |
| ceremony_mode | Literal['full', 'light'] | "full" | Ceremony weight: `full` or `light` (shorter guidance and fewer nudges). |
| changelog_advisory_enabled | bool | false | Warn at deliver when source changed but the package changelog did not; off by default. |
| checkpoint_suggest_hours | int | 4 | Heartbeat-age threshold (hours) at which trw_checkpoint(heartbeat=True) reports should_checkpoint=True to the caller. |
| cleanup_on_boot | bool | true | When True, the MCP server runs the stale-pin + stale-run sweep on startup. |
| code_index_bounds | CodeIndexBounds | computed | PRD-CORE-300-FR15 build and query budgets for the local code index: directory entries, files, source bytes and wall-clock per build; query characters and terms, candidate rows, response bytes and wall-clock per query. |
| code_index_exclude_dirs | list[str] | computed | Directory names the code index skips when scanning the project. |
| code_index_include_extensions | list[str] | computed | File extensions the code index includes when scanning the project. |
| code_index_max_file_bytes | int | 1000000 | Largest file the code index reads. |
| comms_body_max_bytes | int | 8192 | Maximum comms message body size, in UTF-8 bytes. |
| comms_candidate_ttl_seconds | int | 3600 | Seconds an announced comms candidate stays admissible. |
| comms_enabled | bool | true | Enable the swarm comms tools; they do nothing until a formation is joined. |
| comms_fetch_max_items | int | 16 | Maximum messages returned by a single comms fetch page. |
| comms_group_body_budget_bytes | int | 16777216 | Live message-body bytes one comms group may hold. |
| comms_group_row_limit | int | 4096 | Lifetime rows (messages incl. |
| comms_lease_ttl_seconds | int | 120 | Comms endpoint lease lifetime, in seconds. |
| comms_message_ttl_seconds | int | 86400 | Seconds an unacknowledged comms message stays deliverable. |
| comms_poll_interval_seconds | int | 15 | Advertised comms poll interval, in seconds. |
| comms_recipient_outstanding_limit | int | 64 | Maximum unacknowledged messages outstanding for one recipient. |
| comms_response_max_bytes | int | 65536 | Maximum canonical JSON comms tool response, in UTF-8 bytes, excluding MCP framing. |
| comms_retry_grace_seconds | int | 3600 | Seconds a terminal message body is kept past its deadline. |
| comms_scope_max_bytes | int | 1024 | Maximum comms scope path length, in UTF-8 bytes. |
| comms_scope_max_recipients | int | 4 | Maximum peers one scoped comms notify may reach. |
| comms_sender_admissions_per_minute | int | 32 | Committed admissions allowed per sender per 60 seconds. |
| comms_sqlite_busy_timeout_ms | int | 5000 | Bounded SQLite busy timeout for comms transactions, in ms. |
| comms_wait_interval_ms | int | 1000 | Sleep between bounded inbox wait attempts, in milliseconds. |
| comms_wait_max_seconds | int | 30 | Maximum bounded inbox wait a caller may request, in seconds; 0 disables. |
| compact_instructions_template | str | "" | Custom text for the instructions preserved across context compaction; empty uses the built-in template. |
| completeness_min | float | 0.85 | Lowest allowed PRD completeness score (0-1). |
| complexity_hard_override_threshold | int | 2 | Number of active risk signals at which the run is forced to the highest complexity tier regardless of score. |
| complexity_tier_comprehensive | int | 6 | Complexity score at or above (this value plus one) that classifies a run as COMPREHENSIVE. |
| complexity_tier_minimal | int | 1 | Complexity score at or below which a run is classified MINIMAL. |
| complexity_weight_architecture_change | int | 3 | Complexity points added when the task changes architecture. |
| complexity_weight_cross_cutting | int | 2 | Complexity points added when the task is cross-cutting. |
| complexity_weight_external_integration | int | 2 | Complexity points added when the task integrates an external system. |
| complexity_weight_files_affected_max | int | 5 | Cap on the complexity points contributed by the number of files a task affects. |
| complexity_weight_large_refactoring | int | 1 | Complexity points added when the task is a large refactoring. |
| complexity_weight_novel_patterns | int | 3 | Complexity points added when the task introduces novel patterns. |
| compliance_changelog_filename | str | "CHANGELOG.md" | File name of the project changelog the deliver changelog advisory looks at (default `CHANGELOG.md`). |
| compliance_dir | str | "compliance" | Directory under the TRW state dir that holds compliance records (default `compliance`). |
| compliance_review_retention_days | int | 365 | Days automated review records are kept before they may be pruned. |
| context_dir | str | "context" | Directory under the TRW state dir that holds live session context files (default `context`). |
| cross_model_provider | str | "" | Dispatch client id (for example `codex`) used for cross-model review; empty means no reviewer. |
| cross_model_review_enabled | bool | false | Ask a second model family for a review of the diff in addition to the local review; off by default. |
| cross_model_review_timeout_secs | int | 30 | Seconds to wait for the cross-model reviewer before giving up. |
| ctx_isolation_enabled | bool | true | Master kill-switch for per-connection pin isolation. |
| debug | bool | false | Enable DEBUG-level logging and the .trw/logs/ file sink for every MCP client |
| dedup_enabled | bool | true | Check a new learning against existing ones and skip or merge near-duplicates. |
| dedup_merge_threshold | float | 0.85 | Similarity (0-1) at or above which a new learning is merged into an existing one. |
| dedup_skip_threshold | float | 0.95 | Similarity (0-1) at or above which a new learning is skipped as a duplicate. |
| deferred_batch_max_seconds | int | 300 | Seconds the whole deferred post-deliver batch may run. |
| deferred_lock_stale_seconds | int | 600 | Seconds after which a deferred-delivery lock is treated as abandoned and taken over. |
| deferred_step_max_seconds | int | 60 | Seconds one deferred post-deliver maintenance step may run before it is abandoned. |
| degenerate_result_cooldown_calls | int | 20 | Matching tool results to skip after an advisory fires, per session (NFR06 noise budget). |
| degenerate_result_deadline_ms | int | computed | Self-imposed wall-clock deadline; past it the adapter exits 0 without emitting (NFR01). |
| degenerate_result_freshness_commands | list[str] | computed | Command prefixes whose undated output cannot distinguish 'nothing there' from 'could not look'. |
| degenerate_result_max_read_bytes | int | 65536 | Cap on bytes read from a PostToolUse tool_response before shape classification (NFR03). |
| degenerate_result_truncation_markers | list[str] | computed | Literal markers whose presence means the result was capped rather than complete. |
| degraded_detect_grace_seconds | int | 180 | Seconds after the SessionStart epoch marker before the absent-MCP-surface detector may conclude the surface is absent. |
| degraded_detect_min_prompts | int | 2 | Minimum prompt index in this session before the absent-MCP-surface detector may fire. |
| degraded_event_tail_lines | int | 500 | PRD-FIX-128 external audit row 7. |
| degraded_marker_retention_hours | int | 24 | How long an epoch marker or emission latch belonging to an identity with NO live pin is kept before the SessionStart sweep reclaims it. |
| deliver_gate_mode | Literal['advisory', 'block_coding', 'block_all'] | "block_coding" | Deliver gate posture: `advisory` warns only, `block_coding` blocks a missing build check for coding-type tasks, `block_all` blocks for every task type. |
| deliver_gate_task_type_overrides | dict[str, str] | computed | Per-task-type override of `deliver_gate_mode`, e.g. |
| deliver_gate_unclassified_change_threshold | int | 1 | Number of distinct files a session must modify before the missing-build deliver gate arms for a task type that does not inherently expect a build. |
| deliver_graph_backfill_deadline_seconds | float | 2.0 | Seconds the deliver-time knowledge-graph backfill may run before it stops. |
| deliver_graph_backfill_enabled | bool | true | On deliver, build knowledge-graph edges for not-yet-graphed learnings within a small time budget. |
| delivery_busy_timeout_ms | int | 5000 | SQLite busy timeout for the delivery operation store. |
| delivery_operations_mode | Literal['off', 'observe', 'enforce'] | "enforce" | Delivery journal mode: `off` disables it, `observe` records without acting, `enforce` acts on it. |
| delivery_queue_depth_max | int | 128 | Bounded deferred FIFO queue depth (FR06). |
| delivery_stale_lease_minutes | int | 15 | Minutes a pending lease must be stale before FR04 takeover. |
| dispatch_child_trw_access | bool | false | Default for dispatch --with-trw: inject ONLY TRW's own stdio trw-mcp server into the child's argv so a dispatched peer can use TRW session/memory tools. |
| dispatch_default_client | str | None | "codex" | Client used when --client is omitted; None requires an explicit --client. |
| dispatch_default_effort | Literal['low', 'medium', 'high', 'xhigh', 'max'] | None | null | Effort for dispatched children when the request names none; overrides the role's table row. |
| dispatch_default_efforts | dict[Literal['claude', 'codex', 'agy', 'opencode', 'cursor-cli', 'copilot', 'grok'], Literal['low', 'medium', 'high', 'xhigh', 'max']] | computed | Per-client effort for dispatched children (e.g. |
| dispatch_default_max_turns | int | 30 | Turn cap for dispatched children (clients with a verified flag only); 0 disables it. |
| dispatch_default_models | dict[str, str] | computed | Per-client model override applied when --model is omitted (e.g. |
| dispatch_default_read_only | bool | true | Default read-only posture for dispatched children; --allow-writes overrides to False. |
| dispatch_default_timeout_s | int | 600 | Wall-clock timeout (seconds) applied when --timeout is omitted. |
| dispatch_enabled_clients | list[Literal['claude', 'codex', 'agy', 'opencode', 'cursor-cli', 'copilot', 'grok']] | computed | Dispatch targets the CLI may launch; a client outside this list is rejected. |
| dispatch_fallback_clients | list[str] | computed | Clients tried in order after quota_exhausted or a launch failure; --fallback-clients overrides. |
| dispatch_max_concurrent_children | int | 0 | Per-user cap on concurrently running dispatch children across processes; 0 disables it. |
| dispatch_require_effort | bool | false | Refuse (exit 2) a dispatch with no effort from --effort, dispatch_default_effort or the role table when its client and model accept an effort; clients without a carrier pass. |
| dispatch_slot_wait_s | float | 600.0 | Seconds a top-level dispatch waits for a free child slot before refusing with silence_reason concurrency_cap; a nested dispatch never waits. |
| dispatch_tools_exposed | bool | false | Expose the dispatch capability pack (trw_dispatch: launch, status and the AgentWorkEvidence modes) on the resolved tool surface. |
| dispatch_version_probe_timeout_s | int | 5 | Per-client wall-clock bound (seconds) on the doctor formation-readiness version probe; N enabled clients are bounded by N times this value. |
| display_timezone | str | "UTC" | IANA timezone used to render local times in `trw_status`; stored and compared times stay UTC. |
| dry_check_enabled | bool | true | Run the duplicate-code (DRY) check in the build gate. |
| dry_check_min_block_size | int | 5 | Fewest identical lines that count as a duplicated block in the DRY check. |
| embeddings_coverage_warn_threshold | float | 0.1 | Share (0-1) of learnings without embeddings above which the pipeline-health check warns. |
| embeddings_enabled | bool | true | Governs this trw-mcp process only (dedup, the installer/swap extras, retrieval probes); it does not switch off the shared per-user memory daemon, whose embeddings are set by MEMORY_EMBEDDINGS_ENABLED=false in the daemon's environment (then restart it). |
| entries_dir | str | "entries" | Directory under the learnings dir that holds individual learning entries (default `entries`). |
| events_file | str | "events.jsonl" | File name of the per-run event log (default `events.jsonl`). |
| evidence_receipt_mode | Literal['observe', 'enforce'] | "enforce" | Evidence receipt compatibility: `observe` writes typed receipts alongside the legacy files, `enforce` requires the typed receipts. |
| extra_prd_categories | list[str] | computed | Project-specific PRD category names accepted in addition to the built-in generic set (CORE, QUAL, INFRA, LOCAL, EXPLR, RESEARCH, FIX). |
| factory_enabled | bool | false | Enable the experimental software-factory commands (status, receipts, factory checkpoints); off unless you opt in. |
| feedback | FeedbackFields | computed | Settings for the feedback channel behind `trw_status(feedback=...)`. |
| formation_activity_stall_seconds | int | 1800 | Seconds without activity after which a formation member is reported as stalled. |
| formation_deliver_gate | Literal['block', 'advisory'] | "block" | Whether delivering while a joined formation member is mid-work blocks (`block`) or only warns (`advisory`). |
| formation_hook_ownership_mode | Literal['warn', 'off'] | "warn" | PreToolUse ownership check for formation members: `warn` reports an unowned edit, `off` disables it (never blocks). |
| formation_manifest_lock_timeout_seconds | float | 10.0 | Bounded wait for the formation manifest lock, in seconds. |
| formation_ownership_enforcement | Literal['refuse', 'warn'] | "refuse" | Commit-boundary check that a member only commits paths it owns: `refuse` blocks the commit, `warn` only reports it. |
| formation_status_member_limit | int | 16 | Maximum member rows assembled by the formation status roll-up. |
| framework_md_enabled | bool | None | null | Deploy the framework document into the project; unset follows the client profile. |
| framework_read_scope | Literal['phase', 'full'] | "phase" | Whether the SessionStart framework read directive names only the sections for the current phase ('phase', the default, at most 6349 characters) or the whole 35073-character document ('full'). |
| framework_version | str | "v27.6_TRW" | Framework version stamp deployed with the project (managed by `make framework-bump`, not by hand). |
| frameworks_dir | str | "frameworks" | Directory under the TRW state dir where the deployed framework documents live (default `frameworks`). |
| hint_delivery_canary_window | int | 200 | Newest N pre-edit hint records the hint_delivery doctor row inspects (20-5000). |
| hint_delivery_fallback_warn_share | float | 0.5 | Fallback-status share of the hint_delivery window at/above which the row WARNs (0-1). |
| hint_delivery_receipt_stale_days | int | 7 | Post-commit sidecar receipt age (days) after which hint_delivery WARNs when trw-distill is installed. |
| hint_hub_downrank | bool | true | On a hub file (more anchored lessons than `hint_hub_threshold`), list anchor-only lessons after the text-matched ones; false restores anchored-first ordering. |
| hint_hub_threshold | int | 67 | Anchored lessons above which a file is a hub whose anchor-only lessons the pre-edit hint shows after text-matched ones (1-9999; lower flags more files, each edit fetches this + 1 rows). |
| hint_recall_deadline_ms | int | 600 | Wall-clock budget (ms) for the pre-edit hint's T1 learnings recall (50-10000); past it the hint returns no learnings as recall_timeout rather than block the T2 sidecar hint. |
| hint_sidecar_ancestor_enabled | bool | true | Let the pre-edit hint use a proven-ancestor commit's sidecar when the exact-HEAD one is missing, instead of no sidecar half at all. |
| hint_sidecar_max_commits_behind | int | 500 | Commits an ancestor sidecar may trail HEAD by and still serve the pre-edit hint (1-10000; lower refuses older sidecars as sidecar_too_far_behind). |
| hint_sidecar_rebuild_after_commits | int | 150 | Commits behind HEAD at which a served ancestor sidecar triggers a rebuild request (1-10000, capped at hint_sidecar_max_commits_behind; lower rebuilds more often). |
| hint_sidecar_rebuild_min_interval_minutes | int | 15 | Minimum minutes between two detached sidecar rebuild requests (1-1440; lower starts builds more often, higher leaves the sidecar older). |
| hint_sidecar_refresh_enabled | bool | true | Post-commit hook and session start request a detached rebuild of the trw-distill pre-edit-hint sidecar (post-commit also refreshes the risk report); false stops both. |
| hooks_enabled | bool | true | Master switch for every bundled hook; false disables them all. |
| hybrid_rrf_k | int | 60 | Reciprocal-rank-fusion constant used to merge keyword and vector recall rankings. |
| index_auto_sync_on_status_change | bool | true | Regenerate the PRD index automatically when a PRD's status changes. |
| installation_id | str | "" | Explicit installation identifier; empty derives a stable `inst-<hash>` from the project root path. |
| installer_answers | dict[str, bool] | computed | Answers the installer remembers so it never asks twice: key -> true/false (for example ai_extras, proprietary_upgrade, migrate_learnings, platform_connect, system_python_<id>). |
| instruction_backup_dir | str | ".trw/backups/instructions" | Project-relative directory where instruction-file backups are written before a guarded rewrite. |
| instruction_backup_retention | int | 5 | Pre-write backup copies retained per instruction filename (PRD-FIX-123-FR04). |
| instruction_catalogue_mode | Literal['pointer', 'verbatim'] | "pointer" | Whether a full-ceremony client's generated protocol block carries a pointer to trw_status(detail="surface") ('pointer', the default) or the verbatim tool table ('verbatim'). |
| instruction_dry_run_diff_max_lines | int | 400 | Maximum unified-diff lines returned per target by a dry-run instruction sync (PRD-FIX-123-FR03). |
| instruction_size_gate_mode | Literal['warn', 'block'] | None | null | Whether an over-size TRW instruction block only warns (`warn`) or is refused (`block`); unset lets the client profile decide. |
| instruction_write_block_delta_tolerance_bytes | int | 64 | Bytes of slack when testing whether a total-size drop is explained by the TRW block's own size change (PRD-FIX-123-FR02). |
| instruction_write_max_total_shrink_fraction | float | 0.25 | Largest fraction of an instruction file's total bytes a guarded write may remove before it is refused without force (PRD-FIX-123-FR02). |
| intel_cache_enabled | bool | true | Cache fetched intelligence payloads locally for `intel_cache_ttl_seconds`. |
| intel_cache_ttl_seconds | int | 3600 | Seconds a fetched intelligence payload stays cached before it is refetched. |
| knowledge_jaccard_threshold | float | 0.3 | Tag-overlap (Jaccard) similarity at which two learnings are linked in the knowledge topology. |
| knowledge_min_cluster_size | int | 3 | Fewest learnings a topic cluster needs to be written out. |
| knowledge_output_dir | str | "knowledge" | Directory under the TRW state dir where knowledge-topology pages are written (default `knowledge`). |
| knowledge_sync_threshold | int | 50 | Number of new learnings that triggers a knowledge-topology rebuild. |
| learn_journal_drain_budget_ms | int | 3000 | Milliseconds a session-start learn-journal sweep may spend replaying before it stops and leaves the rest. |
| learn_journal_drain_limit | int | 50 | Most pending learn-journal records replayed per session-start sweep; the rest drain on later sweeps. |
| learn_journal_enabled | bool | true | Durably journal an accepted `trw_learn` before the slow store pipeline so a crash mid-write loses nothing; replayed at the next session start. |
| learn_journal_max_replay_attempts | int | 5 | Replay attempts before a record that keeps failing transiently is dead-lettered instead of retried forever. |
| learning_auto_prune_cap | int | 150 | Active learnings kept by the auto-prune pass; lowest-value ones beyond it are pruned. |
| learning_auto_prune_max_seconds | int | 30 | Wall-clock budget in seconds for one auto-prune pass; a pass that hits it returns the partial result. |
| learning_auto_prune_min_interval_hours | int | 24 | Least hours between two auto-prune passes (a pass is expensive on large stores). |
| learning_auto_prune_on_deliver | bool | true | Prune low-value learnings automatically after deliver. |
| learning_decay_half_life_days | float | 14.0 | Days for a learning's utility to halve when unused. |
| learning_decay_use_exponent | float | 0.6 | Exponent applied to use count when slowing a learning's decay. |
| learning_max_entries | int | 500 | Most learnings kept in the store; the lowest-value ones beyond it are dropped by maintenance. |
| learning_outcome_correlation_scope | str | "session" | Which recalls an outcome is attributed to: `session` or a wider scope. |
| learning_outcome_correlation_window_minutes | int | 7 | Minutes after a recall within which a build outcome is attributed to the learnings shown. |
| learning_recall_enabled | bool | true | Master switch for learnings reaching the agent through recall, hints and hooks; false keeps them all off. |
| learning_repeated_op_threshold | int | 3 | Times the same operation must recur before it is suggested as a learning. |
| learning_sharing_enabled | bool | false | Separate consent to publish learning content (summary and detail) to the platform; off by default and distinct from usage telemetry. |
| learning_utility_delete_threshold | float | 0.05 | Utility below which a learning is deleted outright. |
| learning_utility_prune_threshold | float | 0.1 | Utility below which a learning becomes a prune candidate. |
| learnings_dir | str | "learnings" | Directory under the TRW state dir that holds learnings (default `learnings`). |
| llm_default_model | str | "haiku" | Model alias used for TRW's own small LLM calls (default `haiku`). |
| llm_usage_log_enabled | bool | true | Log every TRW LLM call's usage to `llm_usage_log_file`. |
| llm_usage_log_file | str | "llm_usage.jsonl" | File name of the LLM usage log (default `llm_usage.jsonl`). |
| logs_dir | str | "logs" | Directory under the TRW state dir that holds log and usage files (default `logs`). |
| maintain_verify_batch_limit | int | 1000 | Max entries per maintain-verify page; the explicit sweep traverses all eligible pages. |
| max_auto_lines | int | 300 | Line limit for the whole instruction file after TRW's block is merged in; a write that would exceed it is refused, never truncated. |
| max_consolidated_tags | int | 20 | Most tags kept on a consolidated (merged) learning. |
| memory_consolidation_enabled | bool | true | Run periodic consolidation that merges clusters of similar learnings. |
| memory_consolidation_max_per_cycle | int | 50 | Most learnings consolidated in one cycle. |
| memory_consolidation_min_cluster | int | 3 | Fewest similar learnings that form a cluster worth consolidating. |
| memory_consolidation_similarity_threshold | float | 0.75 | Similarity (0-1) two learnings need to be clustered for consolidation. |
| meta_tune | MetaTuneConfig | computed | Nested meta-tuning settings (`meta_tune.enabled` mirrors `meta_tune_enabled`). |
| meta_tune_enabled | bool | false | Enable the meta-tuning loop (self-modification sandbox); off by default and only supported on Linux. |
| migration_gate_enabled | bool | true | Run the database-migration check in the build gate. |
| model_family | str | "" | Model family tag for surface telemetry and nudge logs (C-5). |
| nudge_density | Literal['low', 'medium', 'high'] | None | null | Nudge injection density: low=less frequent, high=more frequent; None defers to profile default. |
| nudge_enabled | bool | None | null | Show ceremony nudges to the agent; unset follows the client profile. |
| nudge_messenger | Literal['standard', 'minimal', 'contextual', 'contextual_action', 'contextual_distress', 'silent_flow', 'cod', 'stepback', 'anchor', 'negative', 'governance'] | None | null | Nudge wording variant (`standard`, `minimal`, `contextual`, ...); unset follows the client profile. |
| nudge_pool_cooldown_after | int | 3 | Times a pooled nudge may show before it goes on cooldown. |
| nudge_pool_cooldown_calls | int | 10 | Tool calls a pooled nudge stays silent once it is on cooldown. |
| nudge_pool_cooldown_wall_clock_max_hours | int | 24 | Max wall-clock hours a nudge pool stays cooled down before re-engaging. |
| nudge_pool_weights | models._client_profile.NudgePoolWeights | None | null | Project override for nudge pool routing weights (must sum to 100); None defers to profile. |
| nudge_variant | str | None | null | Label stamped on nudge events to compare arms in live traffic; routing still follows `nudge_messenger`. |
| otel_enabled | bool | false | Set up OpenTelemetry tracing at startup; off by default. |
| parallelism_max | int | 10 | Parallelism ceiling written into a new project's `config.yaml` at init (default 10). |
| path_index_exclude_dirs | list[str] | computed | Extra directory names pruned from the PRD path-index walk, unioned with the built-in PATH_INDEX_EXCLUDE_DIRS. |
| path_index_max_files | int | 1000000 | RUNAWAY GUARD (not the latency control) on files scanned while building the bare-filename basename index. |
| path_index_max_seconds | float | 5.0 | RUNAWAY GUARD (wall-clock seconds) on the bare-filename basename index walk. |
| patterns_dir | str | "patterns" | Directory under the TRW state dir that holds recorded patterns (default `patterns`). |
| phase_gate_enforcement | Literal['strict', 'lenient', 'off'] | "lenient" | How phase-exit gates react to unmet criteria: `strict` blocks, `lenient` warns, `off` ignores. |
| pin_ttl_hours | int | 24 | Time-to-live (hours) for entries in the persistent pin store before GC evicts them. |
| pipeline_health_gate_enabled | bool | true | Master kill switch for the FR06 fail-closed pipeline-health gate. |
| pipeline_health_gate_failure_threshold | int | 10 | Consecutive push failures before the FR06 gate fails closed. |
| pipeline_health_gate_graph_min_corpus | int | 50 | Young-store threshold: an empty knowledge graph fails the FR06 gate, and low embedding coverage degrades the pipeline, only for a store holding more memories than this. |
| pipeline_health_gate_stale_hours | float | 6.0 | Hours since last successful push before the FR06 gate fails closed. |
| platform_api_key | SecretStr | "" | API key for the TRW platform (kept secret in output); empty means none configured. |
| platform_contact_enabled | bool | true | Master veto on every network call to the TRW platform (sync, backup, telemetry uploads); false keeps the install fully offline. |
| platform_telemetry_enabled | bool | false | Send anonymous usage telemetry to the TRW platform; off by default and separate from learning sharing. |
| platform_url | str | "" | Base URL of the TRW platform this install talks to; empty means none configured. |
| platform_urls | list[str] | computed | Ordered list of platform URLs; the first is used and the rest are fallbacks. |
| post_commit_distill_incremental | bool | false | Let the post-commit hook run `trw-distill run --incremental --live-ingest`, which may call an LLM and writes lessons into the store; off unless you choose it. |
| prd_min_content_density | float | 0.3 | Least content density a PRD needs to move from DRAFT to REVIEW. |
| prd_required_status_for_implement | str | "approved" | PRD status required before the implement phase may start (default `approved`). |
| prd_transition_gate | Literal['warn', 'block'] | "block" | Whether moving a PRD to implemented without accepted evidence only warns (`warn`) or is blocked (`block`). |
| prd_validate_budget_seconds | float | 60.0 | Wall-clock budget (seconds) for trw_prd_validate's dynamic checks; on breach the remaining check groups are skipped and the result is flagged validation_partial (PRD-FIX-112). |
| prd_validation_cache_maintenance_interval | int | 32 | Number of successful shard writes between bounded maintenance sweeps. |
| prd_validation_cache_max_entries | int | 512 | Maximum number of cached pure-validation shards. |
| prd_validation_cache_max_entry_bytes | int | 4194304 | Maximum size of a single cached shard. |
| prd_validation_cache_max_total_bytes | int | 67108864 | Maximum aggregate on-disk bytes across all cached pure-validation shards. |
| prds_relative_path | str | "docs/requirements-aare-f/prds" | Project-relative directory that holds PRD documents (default `docs/requirements-aare-f/prds`). |
| pricing_table_path | str | "" | Path to a custom model pricing table for cost estimates; empty uses the bundled one. |
| profile_domain_path_map | dict[str, str] | computed | Source-path prefix -> profile 'domain' layer name, used by infer_domain when no explicit domain is supplied. |
| profile_system_enabled | bool | true | Resolve and apply the layered client/domain profile at session start; false skips profile resolution. |
| project_handoff_path | str | ".trw/HANDOFF.md" | Project-relative path of the deliver-time handoff file (PRD-CORE-249-FR01). |
| project_namespace | str | "" | Stable memory-store namespace for this project once migrated to the machine-local daemon store; empty means the checkout keeps its own `.trw/memory` store. |
| protection_tier_prune_discount | dict[str, float] | computed | Multiplier on the utility threshold an entry must fall below before an automatic prune, tier demotion or purge may nominate it (PRD-CORE-244 FR10). |
| recall_internal_fields | frozenset[str] | ["access_count", "anchor_validity", "combined_score", "last_accessed_at", "outcome_history", "recall_count", "recurrence", "session_count"] | Learning fields removed from recall results because they are internal. |
| recall_max_results | int | 25 | Most learnings `trw_recall` returns for one query. |
| recall_provenance_inline | bool | true | Show source and scope inline in each recalled learning stub so provenance is checked before a claim is reused. |
| recall_user_tier_cap | int | 5 | Maximum number of user-tier hits that may enter a single federated recall result, so a flood of low-value user hits cannot bury a precise project hit (PRD-CORE-185 FR06 / D3 / R4). |
| recall_utility_lambda | float | 0.3 | Weight of utility in targeted recall ranking; 0 disables utility preferences (query relevance always wins). |
| receipts_dir | str | "receipts" | Directory under the TRW state dir that holds build/review receipts (default `receipts`). |
| reflect_max_success_patterns | int | 5 | Most success patterns kept per reflection. |
| reflections_dir | str | "reflections" | Directory under the TRW state dir that holds reflection outputs (default `reflections`). |
| requirement_drift_gate | Literal['warn', 'block'] | None | null | Deliver-time requirement-drift gate: `warn` or `block`; unset keeps the per-PRD default (block for safety-critical PRDs, warn otherwise). |
| response_format | Literal['yaml', 'json'] | "yaml" | Format of tool responses: `yaml` or `json`. |
| review_confidence_threshold | int | 80 | Minimum finding confidence (0-100) for an automated review finding to be reported. |
| review_gate_mode | Literal['warn', 'block'] | "warn" | Whether a STANDARD or COMPREHENSIVE run that reaches deliver with no recorded review only warns (`warn`) or is blocked (`block`). |
| review_mandate_advisory_enabled | bool | true | Tell the agent up front that STANDARD and COMPREHENSIVE runs need a review before deliver (advisory only). |
| review_signoff_ttl_hours | int | 24 | Max validity window of an operator review sign-off, in hours. |
| review_verdict_ttl_hours | int | 24 | Hours a recorded review verdict stays valid at deliver time; older ones are treated as expired even if the reviewed bytes did not move. |
| risk_scaling_enabled | bool | true | Scale PRD validation thresholds by the PRD's risk level. |
| run_auto_close_enabled | bool | true | Close stale runs automatically when run status is assembled. |
| run_stale_ttl_hours | int | 48 | Hours without activity after which a run counts as stale and may be auto-closed. |
| run_staleness_grace_hours | int | 12 | Grace window (hours) appended to run_staleness_hours; runs inside this window emit run_near_stale_warning but are not abandoned. |
| run_staleness_hours | int | 48 | Age (hours) beyond which an active run with no activity is eligible for the stale-run sweep. |
| runs_root | str | ".trw/runs" | Project-relative directory where run directories are created (default `.trw/runs`). |
| scoring_default_days_unused | int | 30 | Days-unused value assumed for a learning with no recorded last use. |
| scripts_dir | str | "scripts" | Directory under the TRW state dir that holds generated helper scripts (default `scripts`). |
| security | SecurityConfig | computed | Nested security settings for the MCP trust boundary. |
| semantic_checks_enabled | bool | true | Run semantic checks in the build gate in addition to syntax checks. |
| session_start_recall_enabled | bool | None | null | Recall learnings at session start; unset follows `learning_recall_enabled`. |
| shared_mcp | SharedMcpConfig | computed | Opt-in shared MCP server settings: `enabled` makes clients launch `trw-mcp-proxy` against one shared server instead of one stdio server each. |
| skills_enabled | bool | None | null | Install bundled skills; unset follows the client profile. |
| source_human_utility_boost | float | 0.1 | Utility bonus for learnings a human wrote or confirmed. |
| state_learning_default_ttl_days | dict[str, int] | computed | Default validity window in days, per learning type, proposed for a state-asserting learning (PRD-CORE-244 FR05). |
| sub_claude_md_max_lines | int | 50 | Line limit for a module-level (sub-scope) instruction file. |
| surface_role | Literal['agent', 'reviewer'] | "agent" | MCP surface role: `agent` is the normal full surface, `reviewer` a read-only report surface for dispatched review sessions (normally set by the environment, not here). |
| sync_health_failure_threshold | int | 10 | Consecutive push failures before sync_health marks degraded. |
| sync_health_stale_hours | float | 6.0 | Hours since last successful push before sync_health marks degraded. |
| sync_interval_seconds | int | 300 | Seconds between team-sync push/pull cycles. |
| sync_pull_timeout_seconds | float | 5.0 | Seconds to wait for a pull request before giving up. |
| sync_push_batch_size | int | 100 | Most learnings pushed to the backend in one batch. |
| sync_push_timeout_seconds | float | 10.0 | Seconds to wait for a push request before giving up. |
| target_platforms | list[str] | computed | Platforms to sync instruction files for. |
| task_root | str | "docs" | Project-relative directory that holds task directories (default `docs`). |
| team_sync_all_projects | bool | false | Rank other projects' team learnings like unrecorded ones in recall instead of lower (default: lower). |
| team_sync_enabled | bool | false | Enable team sync of learnings with the backend; off by default. |
| team_sync_fresh_after_seconds | int | 300 | Pull team learnings before recall when the last pull is older than this (0: never). |
| telemetry | bool | false | Legacy usage-telemetry switch copied into a new project's `config.yaml` at init; the live switch is `telemetry_enabled`. |
| telemetry_enabled | bool | true | Record local tool-call telemetry under the logs directory. |
| telemetry_file | str | "tool-telemetry.jsonl" | File name of the local tool-call telemetry log (default `tool-telemetry.jsonl`). |
| telemetry_log_max_bytes | int | 10485760 | Pipeline telemetry-log rotation threshold in bytes (FR04) |
| templates_dir | str | "templates" | Directory under the TRW state dir that holds generated templates (default `templates`). |
| time_tracking_enabled | bool | true | Track elapsed time and ETAs for task-scaled runs and show them in `trw_status`, checkpoints and deliver. |
| timebox_hours | int | 8 | Default time box in hours written into a new project's `config.yaml` at init (default 8). |
| tool_output_size_warning_bytes | int | 8192 | Rendered PostToolUse tool_response byte length above which a size advisory fires (PRD-INFRA-194-FR04). |
| tool_resolution_mode | Literal['standard', 'all'] | "standard" | Which tool packs the MCP server exposes: `standard` is the kernel plus every pack whose flag is on, `all` also enables the comms and assess packs. |
| traceability_coverage_min | float | 0.9 | Lowest allowed share of requirements traced to code or tests (0-1). |
| transition_nudges_enabled | bool | true | Allow phase-transition nudge lines (learning and suggestion lines) to reach the agent; independent of `nudge_enabled`. |
| trust_crawl_boundary | int | 50 | Session count up to which an agent stays in the `crawl` trust tier; above it the tier is `walk`. |
| trust_walk_boundary | int | 200 | Session count up to which an agent stays in the `walk` trust tier; above it the tier is `run`. |
| trw_dir | str | ".trw" | Name of the TRW state directory inside the project (default `.trw`). |
| validation_density_weight | float | 20.0 | Points a PRD can earn for content density in the validation score. |
| validation_draft_threshold | float | 60.0 | Validation score at or above which a PRD is at least REVIEW quality. |
| validation_implementation_readiness_weight | float | 25.0 | Points a PRD can earn for implementation readiness in the validation score. |
| validation_review_threshold | float | 85.0 | Validation score at or above which a PRD is APPROVED quality. |
| validation_skeleton_threshold | float | 30.0 | Validation score at or above which a PRD is at least DRAFT quality (below it: skeleton). |
| validation_structure_weight | float | 20.0 | Points a PRD can earn for structure in the validation score. |
| validation_traceability_weight | float | 35.0 | Points a PRD can earn for traceability in the validation score. |
| verification_cache_ttl_seconds | int | 3600 | Freshness window for last-known evidence; never proves current-tree validity or triggers verification. |
| version_check_interval_seconds | float | 300.0 | Interval (seconds) between cached booted-vs-installed trw-mcp version-drift checks on the tool-call middleware path (PRD-CORE-215-FR02). |
| wal_checkpoint_max_age_seconds | int | 3600 | Seconds since the last SUCCESSFUL checkpoint after which one is due regardless of WAL size. |
| wal_checkpoint_threshold_mb | int | 10 | WAL size (MiB) at or above which a checkpoint is due. |
| wiring_gate_mode | Literal['warn', 'block'] | "warn" | Whether a PRD whose requirements are not wired to code only warns (`warn`) or fails validation (`block`). |
| wiring_gate_mode_overrides | dict[str, Literal['warn', 'block']] | computed | Per-PRD override of `wiring_gate_mode` (PRD id or category to `warn`/`block`); empty means every PRD uses the global mode. |
Retired keys
Keys that earlier releases read and this one does not. A retired key left in .trw/config.yaml is ignored, and trw-mcp warns about it and names its replacement when there is one.
Show all 212 retired keys
- Retired key
- adaptation_auto_approve_threshold
- Replacement
- None: the setting was removed
- Retired key
- agents_md_learning_injection
- Replacement
- None: the setting was removed
- Retired key
- agents_md_learning_max
- Replacement
- None: the setting was removed
- Retired key
- agents_md_learning_min_impact
- Replacement
- None: the setting was removed
- Retired key
- anchor_shared_set_migration_threshold
- Replacement
- None: the setting was removed
- Retired key
- api_fuzz_base_url
- Replacement
- None: the setting was removed
- Retired key
- api_fuzz_level
- Replacement
- None: the setting was removed
- Retired key
- api_fuzz_timeout_secs
- Replacement
- None: the setting was removed
- Retired key
- atdd_enabled
- Replacement
- None: the setting was removed
- Retired key
- audit_pattern_promotion_threshold
- Replacement
- None: the setting was removed
- Retired key
- auto_checkpoint_enabled
- Replacement
- None: the setting was removed
- Retired key
- auto_checkpoint_tool_interval
- Replacement
- None: the setting was removed
- Retired key
- auto_upgrade
- Replacement
- None: the setting was removed
- Retired key
- build_check_mypy_args
- Replacement
- None: the setting was removed
- Retired key
- build_check_pytest_args
- Replacement
- None: the setting was removed
- Retired key
- build_check_pytest_cmd
- Replacement
- None: the setting was removed
- Retired key
- build_check_timeout_secs
- Replacement
- None: the setting was removed
- Retired key
- build_freshness_window_secs
- Replacement
- None: the setting was removed
- Retired key
- ceremony_alert_consecutive
- Replacement
- None: the setting was removed
- Retired key
- ceremony_alert_threshold
- Replacement
- None: the setting was removed
- Retired key
- checkpoint_secs
- Replacement
- None: the setting was removed
- Retired key
- checkpoints_file
- Replacement
- None: the setting was removed
- Retired key
- claude_md_max_lines
- Replacement
- None: the setting was removed
- Retired key
- code_index_enabled
- Replacement
- None: the setting was removed
- Retired key
- commit_fr_trailer_enabled
- Replacement
- None: the setting was removed
- Retired key
- comms_group_admission_limit
- Replacement
- comms_group_row_limit
- Retired key
- compact_after_turns
- Replacement
- None: the setting was removed
- Retired key
- completion_hooks_blocking
- Replacement
- None: the setting was removed
- Retired key
- compliance_history_file
- Replacement
- None: the setting was removed
- Retired key
- compliance_long_session_event_threshold
- Replacement
- None: the setting was removed
- Retired key
- compliance_pass_threshold
- Replacement
- None: the setting was removed
- Retired key
- compliance_strictness
- Replacement
- None: the setting was removed
- Retired key
- compliance_warning_threshold
- Replacement
- None: the setting was removed
- Retired key
- confidence_threshold
- Replacement
- None: the setting was removed
- Retired key
- consensus_quorum
- Replacement
- None: the setting was removed
- Retired key
- consistency_validation_min
- Replacement
- None: the setting was removed
- Retired key
- contradiction_penalty_reward
- Replacement
- None: the setting was removed
- Retired key
- debt_actionable_threshold
- Replacement
- None: the setting was removed
- Retired key
- debt_auto_promote_threshold
- Replacement
- None: the setting was removed
- Retired key
- debt_budget_critical_ratio
- Replacement
- None: the setting was removed
- Retired key
- debt_budget_high_ratio
- Replacement
- None: the setting was removed
- Retired key
- debt_decay_assessment_rate
- Replacement
- None: the setting was removed
- Retired key
- debt_decay_base_score
- Replacement
- None: the setting was removed
- Retired key
- debt_decay_daily_rate
- Replacement
- None: the setting was removed
- Retired key
- debt_default_wave_size
- Replacement
- None: the setting was removed
- Retired key
- debt_id_prefix
- Replacement
- None: the setting was removed
- Retired key
- debt_initial_decay_score
- Replacement
- None: the setting was removed
- Retired key
- debt_registry_filename
- Replacement
- None: the setting was removed
- Retired key
- decision_enabled
- Replacement
- assess_enabled
- Retired key
- density_weight_default
- Replacement
- None: the setting was removed
- Retired key
- density_weight_functional_requirements
- Replacement
- None: the setting was removed
- Retired key
- density_weight_problem_statement
- Replacement
- None: the setting was removed
- Retired key
- density_weight_traceability_matrix
- Replacement
- None: the setting was removed
- Retired key
- dispatch_role_client
- Replacement
- dispatch_default_client (or pass --client); a role no longer picks the client
- Retired key
- doctor_thread_hotspot_min_seconds
- Replacement
- None: the setting was removed
- Retired key
- doctor_thread_hotspot_share
- Replacement
- None: the setting was removed
- Retired key
- embeddings_auto_backfill_on_low_coverage
- Replacement
- None: the setting was removed
- Retired key
- external_store_recall_cap
- Replacement
- None: the setting was removed
- Retired key
- extra_read_stores
- Replacement
- None: the setting was removed
- Retired key
- finding_dedup_threshold
- Replacement
- None: the setting was removed
- Retired key
- findings_dir
- Replacement
- None: the setting was removed
- Retired key
- findings_entries_dir
- Replacement
- None: the setting was removed
- Retired key
- findings_registry_file
- Replacement
- None: the setting was removed
- Retired key
- framework_overhead_threshold
- Replacement
- None: the setting was removed
- Retired key
- gate_architecture_score_penalty
- Replacement
- None: the setting was removed
- Retired key
- gate_critic_overhead_multiplier
- Replacement
- None: the setting was removed
- Retired key
- gate_tokens_per_1k_chars
- Replacement
- None: the setting was removed
- Retired key
- grooming_max_iterations
- Replacement
- None: the setting was removed
- Retired key
- grooming_partial_density_threshold
- Replacement
- None: the setting was removed
- Retired key
- grooming_placeholder_density_threshold
- Replacement
- None: the setting was removed
- Retired key
- grooming_research_scope
- Replacement
- None: the setting was removed
- Retired key
- grooming_target_completeness
- Replacement
- None: the setting was removed
- Retired key
- hint_sidecar_auto_refresh_enabled
- Replacement
- hint_sidecar_refresh_enabled (the pre-edit hint no longer requests builds; post-commit and session start do)
- Retired key
- hint_sidecar_refresh_file_cap
- Replacement
- None: the setting was removed
- Retired key
- hybrid_bm25_candidates
- Replacement
- None: the setting was removed
- Retired key
- hybrid_search_candidate_pool_size
- Replacement
- None: the setting was removed
- Retired key
- hybrid_vector_candidates
- Replacement
- None: the setting was removed
- Retired key
- impact_decay_half_life_days
- Replacement
- None: the setting was removed
- Retired key
- impact_forced_distribution_enabled
- Replacement
- None: the setting was removed
- Retired key
- impact_high_threshold_pct
- Replacement
- None: the setting was removed
- Retired key
- impact_tier_critical_cap
- Replacement
- None: the setting was removed
- Retired key
- impact_tier_high_cap
- Replacement
- None: the setting was removed
- Retired key
- incremental_validation_enabled
- Replacement
- None: the setting was removed
- Retired key
- instruction_external_filename
- Replacement
- None: the setting was removed
- Retired key
- instruction_externalize
- Replacement
- None: the setting was removed
- Retired key
- learn_journal_drain_min_batch
- Replacement
- None: the setting was removed
- Retired key
- learn_journal_pending_max_age_hours
- Replacement
- None: the setting was removed
- Retired key
- learning_outcome_history_cap
- Replacement
- None: the setting was removed
- Retired key
- learning_promotion_impact
- Replacement
- None: the setting was removed
- Retired key
- learning_prune_age_days
- Replacement
- None: the setting was removed
- Retired key
- lifecycle_use_fsrs
- Replacement
- None: the setting was removed
- Retired key
- llm_utility_filter_enabled
- Replacement
- None: the setting was removed
- Retired key
- max_audit_cycles
- Replacement
- None: the setting was removed
- Retired key
- max_child_depth
- Replacement
- None: the setting was removed
- Retired key
- max_cluster_size
- Replacement
- None: the setting was removed
- Retired key
- max_research_waves
- Replacement
- None: the setting was removed
- Retired key
- mcp_server_instructions_enabled
- Replacement
- None: the setting was removed
- Retired key
- memory_cold_threshold_days
- Replacement
- None: the setting was removed
- Retired key
- memory_consolidation_interval_days
- Replacement
- None: the setting was removed
- Retired key
- memory_decay_batch_size
- Replacement
- MEMORY_DECAY_BATCH_SIZE (environment variable, daemon-side MemoryConfig.decay_batch_size)
- Retired key
- memory_decay_cutoff_days
- Replacement
- MEMORY_DECAY_CUTOFF_DAYS (environment variable, daemon-side MemoryConfig.decay_cutoff_days)
- Retired key
- memory_hot_ttl_days
- Replacement
- None: the setting was removed
- Retired key
- memory_retention_days
- Replacement
- None: the setting was removed
- Retired key
- memory_store_path
- Replacement
- None: the setting was removed
- Retired key
- min_shards_floor
- Replacement
- None: the setting was removed
- Retired key
- min_shards_target
- Replacement
- None: the setting was removed
- Retired key
- minimal_after_turns
- Replacement
- None: the setting was removed
- Retired key
- mutation_critical_paths
- Replacement
- None: the setting was removed
- Retired key
- mutation_enabled
- Replacement
- None: the setting was removed
- Retired key
- mutation_experimental_paths
- Replacement
- None: the setting was removed
- Retired key
- mutation_threshold
- Replacement
- None: the setting was removed
- Retired key
- mutation_threshold_critical
- Replacement
- None: the setting was removed
- Retired key
- mutation_threshold_experimental
- Replacement
- None: the setting was removed
- Retired key
- mutation_timeout_secs
- Replacement
- None: the setting was removed
- Retired key
- nudge_budget_chars
- Replacement
- None: the setting was removed
- Retired key
- nudge_dedup_enabled
- Replacement
- None: the setting was removed
- Retired key
- nudge_pool_weight_ceremony
- Replacement
- nudge_pool_weights.ceremony
- Retired key
- nudge_pool_weight_context
- Replacement
- nudge_pool_weights.context
- Retired key
- nudge_pool_weight_learnings
- Replacement
- nudge_pool_weights.learnings
- Retired key
- nudge_pool_weight_workflow
- Replacement
- nudge_pool_weights.workflow
- Retired key
- nudge_urgency_mode
- Replacement
- None: the setting was removed
- Retired key
- observation_masking
- Replacement
- None: the setting was removed
- Retired key
- otel_capture_messages
- Replacement
- None: the setting was removed
- Retired key
- otel_endpoint
- Replacement
- None: the setting was removed
- Retired key
- otel_semconv
- Replacement
- None: the setting was removed
- Retired key
- outcome_weight_learning_rate
- Replacement
- None: the setting was removed
- Retired key
- outcome_weight_p0_defects
- Replacement
- None: the setting was removed
- Retired key
- outcome_weight_rework
- Replacement
- None: the setting was removed
- Retired key
- outcome_weight_velocity
- Replacement
- None: the setting was removed
- Retired key
- pause_after_compaction
- Replacement
- None: the setting was removed
- Retired key
- phase_cap_deliver
- Replacement
- None: the setting was removed
- Retired key
- phase_cap_implement
- Replacement
- None: the setting was removed
- Retired key
- phase_cap_plan
- Replacement
- None: the setting was removed
- Retired key
- phase_cap_research
- Replacement
- None: the setting was removed
- Retired key
- phase_cap_review
- Replacement
- None: the setting was removed
- Retired key
- phase_cap_validate
- Replacement
- None: the setting was removed
- Retired key
- phase_exposure_enabled
- Replacement
- None: the setting was removed
- Retired key
- phase_transition_withhold_rate
- Replacement
- None: the setting was removed
- Retired key
- pipeline_health_bandit_probe_enabled
- Replacement
- None: the setting was removed
- Retired key
- pipeline_health_bandit_stale_days
- Replacement
- None: the setting was removed
- Retired key
- provenance_enabled
- Replacement
- None: the setting was removed
- Retired key
- proximal_reward_weight
- Replacement
- None: the setting was removed
- Retired key
- q_cold_start_threshold
- Replacement
- None: the setting was removed
- Retired key
- q_learning_rate
- Replacement
- None: the setting was removed
- Retired key
- q_recurrence_bonus
- Replacement
- None: the setting was removed
- Retired key
- recall_receipt_max_entries
- Replacement
- None: the setting was removed
- Retired key
- recall_verification_budget_ms
- Replacement
- None: the setting was removed
- Retired key
- reflect_max_positive_learnings
- Replacement
- None: the setting was removed
- Retired key
- reflect_q_value_threshold
- Replacement
- None: the setting was removed
- Retired key
- reflect_sequence_lookback
- Replacement
- None: the setting was removed
- Retired key
- retrieval_embedding_dim
- Replacement
- None: the setting was removed
- Retired key
- retrieval_embedding_model
- Replacement
- MEMORY_EMBEDDING_MODEL (environment variable, daemon-wide)
- Retired key
- reversion_rate_concerning
- Replacement
- None: the setting was removed
- Retired key
- reversion_rate_elevated
- Replacement
- None: the setting was removed
- Retired key
- run_archive_hours
- Replacement
- None: the setting was removed
- Retired key
- run_auto_close_age_days
- Replacement
- run_stale_ttl_hours
- Retired key
- scoring_error_fallback_reward
- Replacement
- None: the setting was removed
- Retired key
- scoring_error_keywords
- Replacement
- None: the setting was removed
- Retired key
- scoring_recency_discount_floor
- Replacement
- None: the setting was removed
- Retired key
- scout_blast_radius_threshold
- Replacement
- None: the setting was removed
- Retired key
- scout_churn_commit_threshold
- Replacement
- None: the setting was removed
- Retired key
- scout_enabled
- Replacement
- None: the setting was removed
- Retired key
- scout_max_mode3_rate
- Replacement
- None: the setting was removed
- Retired key
- scratch_dir
- Replacement
- None: the setting was removed
- Retired key
- security_check_enabled
- Replacement
- None: the setting was removed
- Retired key
- self_review_blocking
- Replacement
- None: the setting was removed
- Retired key
- session_start_defer_under_writer_pressure
- Replacement
- None: the setting was removed
- Retired key
- session_start_max_deferral_hours
- Replacement
- None: the setting was removed
- Retired key
- session_start_recent_bypass_days
- Replacement
- None: the setting was removed
- Retired key
- session_start_recent_bypass_min_impact
- Replacement
- None: the setting was removed
- Retired key
- session_start_writer_pressure_threshold
- Replacement
- None: the setting was removed
- Retired key
- simplifier_backup_dir
- Replacement
- None: the setting was removed
- Retired key
- simplifier_verification_timeout_secs
- Replacement
- None: the setting was removed
- Retired key
- simplifier_wave_size
- Replacement
- None: the setting was removed
- Retired key
- skill_active_cap
- Replacement
- None: the setting was removed
- Retired key
- skill_contribution_cold_start
- Replacement
- None: the setting was removed
- Retired key
- skill_contribution_half_life_days
- Replacement
- None: the setting was removed
- Retired key
- skill_duplicate_max_skills
- Replacement
- None: the setting was removed
- Retired key
- skill_duplicate_similarity_threshold
- Replacement
- None: the setting was removed
- Retired key
- skill_retirement_floor
- Replacement
- None: the setting was removed
- Retired key
- skill_retirement_windows
- Replacement
- None: the setting was removed
- Retired key
- skill_surface_tracking_enabled
- Replacement
- None: the setting was removed
- Retired key
- source_package_name
- Replacement
- None: the setting was removed
- Retired key
- source_package_path
- Replacement
- None: the setting was removed
- Retired key
- sprint_code_simplifier_wave_size
- Replacement
- None: the setting was removed
- Retired key
- sprint_commit_pattern
- Replacement
- None: the setting was removed
- Retired key
- sprint_integration_branch_pattern
- Replacement
- None: the setting was removed
- Retired key
- strict_input_criteria
- Replacement
- None: the setting was removed
- Retired key
- test_map_filename
- Replacement
- None: the setting was removed
- Retired key
- test_skeleton_dir
- Replacement
- None: the setting was removed
- Retired key
- tests_relative_path
- Replacement
- None: the setting was removed
- Retired key
- tool_access_grant_max_ttl_seconds
- Replacement
- None: the setting was removed
- Retired key
- tool_descriptions_variant
- Replacement
- None: the setting was removed
- Retired key
- trust_locked
- Replacement
- None: the setting was removed
- Retired key
- trust_security_tags
- Replacement
- None: the setting was removed
- Retired key
- trust_walk_sample_rate
- Replacement
- None: the setting was removed
- Retired key
- update_channel
- Replacement
- None: the setting was removed
- Retired key
- user_tier_enabled
- Replacement
- None: the setting was removed
- Retired key
- validation_ears_weight
- Replacement
- None: the setting was removed
- Retired key
- validation_fk_optimal_max
- Replacement
- None: the setting was removed
- Retired key
- validation_fk_optimal_min
- Replacement
- None: the setting was removed
- Retired key
- validation_readability_weight
- Replacement
- None: the setting was removed
- Retired key
- validation_smell_weight
- Replacement
- None: the setting was removed
- Retired key
- velocity_alert_min_runs
- Replacement
- None: the setting was removed
- Retired key
- velocity_alert_r_squared_min
- Replacement
- None: the setting was removed
- Retired key
- velocity_confounder_jump_ratio
- Replacement
- None: the setting was removed
- Retired key
- velocity_effective_q_threshold
- Replacement
- None: the setting was removed
- Retired key
- velocity_history_max_entries
- Replacement
- None: the setting was removed
- Retired key
- velocity_sign_test_alpha
- Replacement
- None: the setting was removed
- Retired key
- velocity_stable_threshold
- Replacement
- None: the setting was removed
- Retired key
- wal_checkpoint_idle_interval_seconds
- Replacement
- None: the setting was removed
- Retired key
- worktree_dir
- Replacement
- None: the setting was removed
| Retired key | Replacement |
|---|---|
| adaptation_auto_approve_threshold | None: the setting was removed |
| agents_md_learning_injection | None: the setting was removed |
| agents_md_learning_max | None: the setting was removed |
| agents_md_learning_min_impact | None: the setting was removed |
| anchor_shared_set_migration_threshold | None: the setting was removed |
| api_fuzz_base_url | None: the setting was removed |
| api_fuzz_level | None: the setting was removed |
| api_fuzz_timeout_secs | None: the setting was removed |
| atdd_enabled | None: the setting was removed |
| audit_pattern_promotion_threshold | None: the setting was removed |
| auto_checkpoint_enabled | None: the setting was removed |
| auto_checkpoint_tool_interval | None: the setting was removed |
| auto_upgrade | None: the setting was removed |
| build_check_mypy_args | None: the setting was removed |
| build_check_pytest_args | None: the setting was removed |
| build_check_pytest_cmd | None: the setting was removed |
| build_check_timeout_secs | None: the setting was removed |
| build_freshness_window_secs | None: the setting was removed |
| ceremony_alert_consecutive | None: the setting was removed |
| ceremony_alert_threshold | None: the setting was removed |
| checkpoint_secs | None: the setting was removed |
| checkpoints_file | None: the setting was removed |
| claude_md_max_lines | None: the setting was removed |
| code_index_enabled | None: the setting was removed |
| commit_fr_trailer_enabled | None: the setting was removed |
| comms_group_admission_limit | comms_group_row_limit |
| compact_after_turns | None: the setting was removed |
| completion_hooks_blocking | None: the setting was removed |
| compliance_history_file | None: the setting was removed |
| compliance_long_session_event_threshold | None: the setting was removed |
| compliance_pass_threshold | None: the setting was removed |
| compliance_strictness | None: the setting was removed |
| compliance_warning_threshold | None: the setting was removed |
| confidence_threshold | None: the setting was removed |
| consensus_quorum | None: the setting was removed |
| consistency_validation_min | None: the setting was removed |
| contradiction_penalty_reward | None: the setting was removed |
| debt_actionable_threshold | None: the setting was removed |
| debt_auto_promote_threshold | None: the setting was removed |
| debt_budget_critical_ratio | None: the setting was removed |
| debt_budget_high_ratio | None: the setting was removed |
| debt_decay_assessment_rate | None: the setting was removed |
| debt_decay_base_score | None: the setting was removed |
| debt_decay_daily_rate | None: the setting was removed |
| debt_default_wave_size | None: the setting was removed |
| debt_id_prefix | None: the setting was removed |
| debt_initial_decay_score | None: the setting was removed |
| debt_registry_filename | None: the setting was removed |
| decision_enabled | assess_enabled |
| density_weight_default | None: the setting was removed |
| density_weight_functional_requirements | None: the setting was removed |
| density_weight_problem_statement | None: the setting was removed |
| density_weight_traceability_matrix | None: the setting was removed |
| dispatch_role_client | dispatch_default_client (or pass --client); a role no longer picks the client |
| doctor_thread_hotspot_min_seconds | None: the setting was removed |
| doctor_thread_hotspot_share | None: the setting was removed |
| embeddings_auto_backfill_on_low_coverage | None: the setting was removed |
| external_store_recall_cap | None: the setting was removed |
| extra_read_stores | None: the setting was removed |
| finding_dedup_threshold | None: the setting was removed |
| findings_dir | None: the setting was removed |
| findings_entries_dir | None: the setting was removed |
| findings_registry_file | None: the setting was removed |
| framework_overhead_threshold | None: the setting was removed |
| gate_architecture_score_penalty | None: the setting was removed |
| gate_critic_overhead_multiplier | None: the setting was removed |
| gate_tokens_per_1k_chars | None: the setting was removed |
| grooming_max_iterations | None: the setting was removed |
| grooming_partial_density_threshold | None: the setting was removed |
| grooming_placeholder_density_threshold | None: the setting was removed |
| grooming_research_scope | None: the setting was removed |
| grooming_target_completeness | None: the setting was removed |
| hint_sidecar_auto_refresh_enabled | hint_sidecar_refresh_enabled (the pre-edit hint no longer requests builds; post-commit and session start do) |
| hint_sidecar_refresh_file_cap | None: the setting was removed |
| hybrid_bm25_candidates | None: the setting was removed |
| hybrid_search_candidate_pool_size | None: the setting was removed |
| hybrid_vector_candidates | None: the setting was removed |
| impact_decay_half_life_days | None: the setting was removed |
| impact_forced_distribution_enabled | None: the setting was removed |
| impact_high_threshold_pct | None: the setting was removed |
| impact_tier_critical_cap | None: the setting was removed |
| impact_tier_high_cap | None: the setting was removed |
| incremental_validation_enabled | None: the setting was removed |
| instruction_external_filename | None: the setting was removed |
| instruction_externalize | None: the setting was removed |
| learn_journal_drain_min_batch | None: the setting was removed |
| learn_journal_pending_max_age_hours | None: the setting was removed |
| learning_outcome_history_cap | None: the setting was removed |
| learning_promotion_impact | None: the setting was removed |
| learning_prune_age_days | None: the setting was removed |
| lifecycle_use_fsrs | None: the setting was removed |
| llm_utility_filter_enabled | None: the setting was removed |
| max_audit_cycles | None: the setting was removed |
| max_child_depth | None: the setting was removed |
| max_cluster_size | None: the setting was removed |
| max_research_waves | None: the setting was removed |
| mcp_server_instructions_enabled | None: the setting was removed |
| memory_cold_threshold_days | None: the setting was removed |
| memory_consolidation_interval_days | None: the setting was removed |
| memory_decay_batch_size | MEMORY_DECAY_BATCH_SIZE (environment variable, daemon-side MemoryConfig.decay_batch_size) |
| memory_decay_cutoff_days | MEMORY_DECAY_CUTOFF_DAYS (environment variable, daemon-side MemoryConfig.decay_cutoff_days) |
| memory_hot_ttl_days | None: the setting was removed |
| memory_retention_days | None: the setting was removed |
| memory_store_path | None: the setting was removed |
| min_shards_floor | None: the setting was removed |
| min_shards_target | None: the setting was removed |
| minimal_after_turns | None: the setting was removed |
| mutation_critical_paths | None: the setting was removed |
| mutation_enabled | None: the setting was removed |
| mutation_experimental_paths | None: the setting was removed |
| mutation_threshold | None: the setting was removed |
| mutation_threshold_critical | None: the setting was removed |
| mutation_threshold_experimental | None: the setting was removed |
| mutation_timeout_secs | None: the setting was removed |
| nudge_budget_chars | None: the setting was removed |
| nudge_dedup_enabled | None: the setting was removed |
| nudge_pool_weight_ceremony | nudge_pool_weights.ceremony |
| nudge_pool_weight_context | nudge_pool_weights.context |
| nudge_pool_weight_learnings | nudge_pool_weights.learnings |
| nudge_pool_weight_workflow | nudge_pool_weights.workflow |
| nudge_urgency_mode | None: the setting was removed |
| observation_masking | None: the setting was removed |
| otel_capture_messages | None: the setting was removed |
| otel_endpoint | None: the setting was removed |
| otel_semconv | None: the setting was removed |
| outcome_weight_learning_rate | None: the setting was removed |
| outcome_weight_p0_defects | None: the setting was removed |
| outcome_weight_rework | None: the setting was removed |
| outcome_weight_velocity | None: the setting was removed |
| pause_after_compaction | None: the setting was removed |
| phase_cap_deliver | None: the setting was removed |
| phase_cap_implement | None: the setting was removed |
| phase_cap_plan | None: the setting was removed |
| phase_cap_research | None: the setting was removed |
| phase_cap_review | None: the setting was removed |
| phase_cap_validate | None: the setting was removed |
| phase_exposure_enabled | None: the setting was removed |
| phase_transition_withhold_rate | None: the setting was removed |
| pipeline_health_bandit_probe_enabled | None: the setting was removed |
| pipeline_health_bandit_stale_days | None: the setting was removed |
| provenance_enabled | None: the setting was removed |
| proximal_reward_weight | None: the setting was removed |
| q_cold_start_threshold | None: the setting was removed |
| q_learning_rate | None: the setting was removed |
| q_recurrence_bonus | None: the setting was removed |
| recall_receipt_max_entries | None: the setting was removed |
| recall_verification_budget_ms | None: the setting was removed |
| reflect_max_positive_learnings | None: the setting was removed |
| reflect_q_value_threshold | None: the setting was removed |
| reflect_sequence_lookback | None: the setting was removed |
| retrieval_embedding_dim | None: the setting was removed |
| retrieval_embedding_model | MEMORY_EMBEDDING_MODEL (environment variable, daemon-wide) |
| reversion_rate_concerning | None: the setting was removed |
| reversion_rate_elevated | None: the setting was removed |
| run_archive_hours | None: the setting was removed |
| run_auto_close_age_days | run_stale_ttl_hours |
| scoring_error_fallback_reward | None: the setting was removed |
| scoring_error_keywords | None: the setting was removed |
| scoring_recency_discount_floor | None: the setting was removed |
| scout_blast_radius_threshold | None: the setting was removed |
| scout_churn_commit_threshold | None: the setting was removed |
| scout_enabled | None: the setting was removed |
| scout_max_mode3_rate | None: the setting was removed |
| scratch_dir | None: the setting was removed |
| security_check_enabled | None: the setting was removed |
| self_review_blocking | None: the setting was removed |
| session_start_defer_under_writer_pressure | None: the setting was removed |
| session_start_max_deferral_hours | None: the setting was removed |
| session_start_recent_bypass_days | None: the setting was removed |
| session_start_recent_bypass_min_impact | None: the setting was removed |
| session_start_writer_pressure_threshold | None: the setting was removed |
| simplifier_backup_dir | None: the setting was removed |
| simplifier_verification_timeout_secs | None: the setting was removed |
| simplifier_wave_size | None: the setting was removed |
| skill_active_cap | None: the setting was removed |
| skill_contribution_cold_start | None: the setting was removed |
| skill_contribution_half_life_days | None: the setting was removed |
| skill_duplicate_max_skills | None: the setting was removed |
| skill_duplicate_similarity_threshold | None: the setting was removed |
| skill_retirement_floor | None: the setting was removed |
| skill_retirement_windows | None: the setting was removed |
| skill_surface_tracking_enabled | None: the setting was removed |
| source_package_name | None: the setting was removed |
| source_package_path | None: the setting was removed |
| sprint_code_simplifier_wave_size | None: the setting was removed |
| sprint_commit_pattern | None: the setting was removed |
| sprint_integration_branch_pattern | None: the setting was removed |
| strict_input_criteria | None: the setting was removed |
| test_map_filename | None: the setting was removed |
| test_skeleton_dir | None: the setting was removed |
| tests_relative_path | None: the setting was removed |
| tool_access_grant_max_ttl_seconds | None: the setting was removed |
| tool_descriptions_variant | None: the setting was removed |
| trust_locked | None: the setting was removed |
| trust_security_tags | None: the setting was removed |
| trust_walk_sample_rate | None: the setting was removed |
| update_channel | None: the setting was removed |
| user_tier_enabled | None: the setting was removed |
| validation_ears_weight | None: the setting was removed |
| validation_fk_optimal_max | None: the setting was removed |
| validation_fk_optimal_min | None: the setting was removed |
| validation_readability_weight | None: the setting was removed |
| validation_smell_weight | None: the setting was removed |
| velocity_alert_min_runs | None: the setting was removed |
| velocity_alert_r_squared_min | None: the setting was removed |
| velocity_confounder_jump_ratio | None: the setting was removed |
| velocity_effective_q_threshold | None: the setting was removed |
| velocity_history_max_entries | None: the setting was removed |
| velocity_sign_test_alpha | None: the setting was removed |
| velocity_stable_threshold | None: the setting was removed |
| wal_checkpoint_idle_interval_seconds | None: the setting was removed |
| worktree_dir | None: the setting was removed |