30ef6afea7
The upstream interview playbook and evidence thresholds resolve task 0. Upstream stops and reports when evidence is thin — fewer than three dated events, fewer than two domains, or a tie — while this repo treats the same kind of thresholds as a confirmation gate and keeps asking when they are not met. Its label ladder has no confirmed rung at all, and every contract test asserts candidate_range_not_birth_time_truth. Task 1 capped the interview by round count, which is half of it. Task 6 adds the evidence-state stop rules, reframes exhausted as a normal delivery, adopts the upstream label ladder and closing wording, and keeps the 4/3 confirmation gate separate from the 3/2 delivery floor. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0155nFCgCHtoA7jhSDGmZmMu
71 lines
2.2 KiB
Markdown
71 lines
2.2 KiB
Markdown
# Interview Playbook
|
|
|
|
## Intake
|
|
|
|
Collect birth date, birthplace, timezone, known time/range, source of the time, confidence in that source, and the user's priority domain. Ask permission before collecting dated life events.
|
|
|
|
## Routes
|
|
|
|
### `range`
|
|
|
|
For a remembered time or bounded interval:
|
|
|
|
1. Restate the interval in clock time.
|
|
2. Split it into `early / middle / late`.
|
|
3. Ask 3-5 A/B/C/D questions across education, relocation, relationship, career, and recent learning/expression.
|
|
4. Request dated events only in the strongest 2-3 domains.
|
|
|
|
### `block`
|
|
|
|
For `morning`, `afternoon`, `evening`, family recollections, or zodiac-hour style descriptions:
|
|
|
|
1. Convert the label into a stated coarse interval.
|
|
2. Split that interval into `early / middle / late`.
|
|
3. Ask the same domain questions.
|
|
4. Request events from the leading domains only.
|
|
|
|
### `unknown`
|
|
|
|
For no usable time memory:
|
|
|
|
1. State that the first valid result can only be a broad block.
|
|
2. Compare `morning / afternoon / evening / night` through high-signal domains.
|
|
3. Do not refine the winning block until enough dated evidence exists.
|
|
4. If one broad block leads, begin the next round by splitting only that block.
|
|
|
|
## Event Ledger
|
|
|
|
Use one row per event with:
|
|
|
|
- `id`
|
|
- `domain`
|
|
- `date`
|
|
- `precision` (`day`, `month`, `year`)
|
|
- `reliability` (`high`, `medium`, `low`)
|
|
- `user wording`
|
|
- `supports` (candidate labels helped by this event)
|
|
- `conflicts` (candidate labels weakened by this event)
|
|
|
|
Confirm date precision instead of inventing a day.
|
|
|
|
## Question Rhythm
|
|
|
|
- First round: 3-5 high-information A/B/C/D questions.
|
|
- Second round: ask only for dated events in the strongest domains.
|
|
- Third round: ask only the next 1-3 events that could separate the top candidates.
|
|
- Never collect a long autobiography before the first route decision.
|
|
|
|
## Stop Rules
|
|
|
|
Stop and report the current interval when any is true:
|
|
|
|
- fewer than three dated events
|
|
- fewer than two domains
|
|
- tied first-place candidates
|
|
- user uncertainty is too high to map support/conflict reliably
|
|
- an optional adapter was promised but cannot be executed and the user wants an audited result
|
|
|
|
## Final Wording
|
|
|
|
State: "当前最优结果是候选时间段,而不是已经确认的唯一出生分钟。临时代表时间仅用于下一轮验证与比较。"
|