Context
Three INTERIM constants in council-automation were tuned via single-anecdote extrapolation (the 2026-05-27 /extended-research audit verdict: STRUCTURAL-UNRESOLVABLE). They need empirical re-evaluation against real-world data, NOT another guess.
This issue lives outside the codebase so the inline # INTERIM PENDING PHASE 4 CALIBRATION comments don't silently rot if Phase 4 review slips.
INTERIM constants to calibrate
| File |
Constant |
Current value |
Original value |
council-automation/extended_research_runner.py |
ARTIFACT_TEXT_TOKEN_CAP |
5000 (~20 KB) |
8000 (~32 KB) |
council-automation/council_browser.py |
_is_reasoning_trail_only char threshold |
2500 |
1500 |
council-automation/extended_research_runner.py |
pre-flight oversize WARN |
16 KB |
18 KB |
Kept-at-200 in this round (Step 8 critique reverted my proposed lowering): synthesis-mount wait_for_function threshold in council_browser.py.
Source-of-truth commits
d90e4cf — Phase 1-3 of empirical reassessment (instrument + parser provisions + cap relaxation)
4c9ae9a — Phase 1 of follow-ups (keeper-core trio commit)
- Phase 2-3 of follow-ups (commit pending) — calibration aggregator + per-query instrumentation
Pre-state recovery anchor: tag pre-perplexity-reassessment-20260529.
Trigger condition
After Phase 1 instrumentation accumulates ≥20 entries in ~/.claude/council-automation/calibration-summary.jsonl from real /extended-research runs, evaluate:
```bash
python ~/.claude/council-automation/calibration_log.py 20
```
Decision matrix
| Signal |
Threshold |
Action |
pct_retry_fired |
> 25% |
Investigate parser-vs-Perplexity attribution (Phase 2+3 confound documented) |
pct_parse_failed |
> 10% |
Likely needs Phase 5 prompt-architecture refactor |
mean_raw_response_chars |
< 1000 |
Caps may be too tight; consider raising ARTIFACT_TEXT_TOKEN_CAP |
pct_partial_prefix_salvage |
> 5% |
Truncation issue is real; consider DECOMPOSE 1x → 1.25x (carefully) |
chrome_path_used shows >5% local_* or cdp_busy |
— |
Keeper architecture has a regression to chase |
Banned rollback combination
Per Step 8 critique Q1: if Phase 2 wrapper-extraction parser provisions in extract_json are ever reverted, the reasoning-trail threshold MUST also revert to ≤1500 in the same change. The 2500 threshold widens the zone Phase 2 covers; without Phase 2, 2500 leaks valid wrapper-format responses past the heuristic.
Phase 5 (prompt-architecture refactor) trigger
If after 20+ runs, INCOMPLETE_RESPONSE rate > 15% on small artifacts (< 10 KB) where caps cannot be the cause → trigger Phase 5 plan synthesis.
Definition of done
- Run
python calibration_log.py 20 and paste the output here.
- Apply the decision-matrix recommendation OR document why no change is warranted.
- Update the INTERIM comments at the constant sites (either remove "INTERIM" qualifier if values confirmed, or update with the new tuned value + revision date).
- Close this issue.
Context
Three INTERIM constants in council-automation were tuned via single-anecdote extrapolation (the 2026-05-27 /extended-research audit verdict: STRUCTURAL-UNRESOLVABLE). They need empirical re-evaluation against real-world data, NOT another guess.
This issue lives outside the codebase so the inline
# INTERIM PENDING PHASE 4 CALIBRATIONcomments don't silently rot if Phase 4 review slips.INTERIM constants to calibrate
council-automation/extended_research_runner.pyARTIFACT_TEXT_TOKEN_CAPcouncil-automation/council_browser.py_is_reasoning_trail_onlychar thresholdcouncil-automation/extended_research_runner.pyKept-at-200 in this round (Step 8 critique reverted my proposed lowering): synthesis-mount
wait_for_functionthreshold in council_browser.py.Source-of-truth commits
d90e4cf— Phase 1-3 of empirical reassessment (instrument + parser provisions + cap relaxation)4c9ae9a— Phase 1 of follow-ups (keeper-core trio commit)Pre-state recovery anchor: tag
pre-perplexity-reassessment-20260529.Trigger condition
After Phase 1 instrumentation accumulates ≥20 entries in
~/.claude/council-automation/calibration-summary.jsonlfrom real /extended-research runs, evaluate:```bash
python ~/.claude/council-automation/calibration_log.py 20
```
Decision matrix
pct_retry_firedpct_parse_failedmean_raw_response_charspct_partial_prefix_salvagechrome_path_usedshows >5% local_* or cdp_busyBanned rollback combination
Per Step 8 critique Q1: if Phase 2 wrapper-extraction parser provisions in
extract_jsonare ever reverted, the reasoning-trail threshold MUST also revert to ≤1500 in the same change. The 2500 threshold widens the zone Phase 2 covers; without Phase 2, 2500 leaks valid wrapper-format responses past the heuristic.Phase 5 (prompt-architecture refactor) trigger
If after 20+ runs, INCOMPLETE_RESPONSE rate > 15% on small artifacts (< 10 KB) where caps cannot be the cause → trigger Phase 5 plan synthesis.
Definition of done
python calibration_log.py 20and paste the output here.