Skip to content

Add provenance and repository grounding to ooo auto interview answers #640

@shaun0927

Description

@shaun0927

Status (synced 2026-05-07)

Done

In review (this issue's remaining slices)

Tracked separately (do not address inside #640)

Closing criteria

Once #693 and #695 merge, this issue can close — the remaining repo-grounding and selected-driver work is owned by the trackers above.


Problem

The current ooo auto interview answerer is conservative and deterministic, but it is not sufficiently repository-aware. It answers interview questions from generic heuristics rather than grounded facts about the current codebase unless external facts are explicitly provided by another layer.

That makes it hard for users to trust that ooo auto selected the right implementation constraints for brownfield or repository-specific tasks.

Evidence

AutoAnswerer is intentionally bounded and heuristic-driven. It handles broad question classes such as:

  • non-goals
  • verification
  • acceptance criteria
  • actor / input / output
  • runtime
  • default conservative answers

This is safe, but it means ooo auto can produce plausible answers without proving that the answers match the active repository.

User impact

For tasks like validating GitHub issues/PRs, checking existing implementation behavior, or modifying an established project, users need to know whether auto-selected answers came from:

  • direct repository inspection
  • existing project memory
  • user-provided constraints
  • generic fallback assumptions

Without that distinction, the resulting Seed may look authoritative while being based on defaults.

Proposed fix

Introduce explicit evidence provenance for auto interview answers:

  • distinguish repo_fact, user_constraint, memory, policy_default, and fallback_assumption
  • include citations/file references when an answer is based on repo inspection
  • optionally add a bounded repository discovery pass before answering brownfield questions
  • block or ask the user when a required answer would otherwise be a risky fallback

Acceptance criteria

  • Auto interview answers include machine-readable provenance.
  • The final Seed or ledger shows which constraints are evidence-backed versus assumed.
  • Brownfield tasks trigger a bounded repository-context collection step or explicitly report that no repo facts were used.
  • Tests cover at least one repo-grounded answer and one fallback assumption answer.

Scope clarification

The code already defines provenance-like answer sources, including:

  • USER_GOAL
  • REPO_FACT
  • EXISTING_CONVENTION
  • CONSERVATIVE_DEFAULT
  • ASSUMPTION
  • NON_GOAL
  • BLOCKER

The missing piece is not merely adding an enum. The missing piece is a bounded context/fact input path that lets AutoAnswerer use repository facts when they are explicitly supplied.

Narrowed first PR scope

The first PR should add an explicit context/fact injection interface without implementing broad repository crawling.

Suggested shape:

  • introduce an optional AutoAnswerContext or RepoFactProvider input
  • allow AutoAnswerer to use supplied repo facts for runtime/framework/project-structure questions
  • preserve current conservative fallback behavior when no facts are supplied
  • record whether an answer came from a repo fact or from a fallback assumption/default

First PR tests

Add tests for:

  1. repo fact supplied → answer uses repo_fact / existing_convention provenance
  2. no repo fact supplied → answer remains conservative default or assumption
  3. risky/unsafe questions still block rather than using a weak repo fact

Explicitly out of scope for the first PR

  • full repository scanning/crawling
  • network access
  • large project indexing
  • changing Seed review/repair gates
  • changing MCP dispatch behavior

A bounded repository discovery pass can be designed as a follow-up once the answer context interface exists.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or meaningful improvementneeds-humanAutomated fix failed, needs human implementation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions