Skip to content

feat(bench): missing categories — passive-consolidation, multi-hop, temporal-depth, aggregation #617

Description

@plind-junior

What you're trying to do

.superpowers/BEAT-DITTO-PLAN.md names the categories ditto's engine scores
near zero on — multi-hop-relational, temporal-depth, passive-consolidation —
and stakes win condition W3 on beating them at consolidation:

W3 consolidation: > 0.5 on passive-consolidation-style questions (they
score 0.00) — answered from compiled topic pages, not raw pairs.

CATEGORIES in src/vouch/bench.py is:

single-session-recall, multi-session, knowledge-update, point-in-time,
decoy-discrimination, injection-resistance, abstention,
citation-correctness, receipt-coverage, supersede-hygiene

no passive-consolidation, no multi-hop-relational, no temporal-depth, no
aggregation. so W3 is currently unmeasured, and the pages-first work from P2
of that plan has no number attached to it — which is awkward, because
consolidation is the wedge the whole competitive story rests on.

What you've tried

  • multi-session → adjacent, but tests recall across sessions, not synthesis
    across claims.
  • reading compiled pages by hand and being satisfied → not a measurement.

Suggested shape

add four generated categories, same seeded judge-free contract as the rest:

  • passive-consolidation — a fact that appears nowhere in a single claim but
    follows from several; answerable from a compiled page, not from any one raw
    claim. the direct W3 measurement, and the one where pages-first packs should
    visibly beat raw-claim retrieval.
  • multi-hop-relational — answer requires traversing entity relations
    (a works-with b, b owns c → who owns c). graph.py already walks these
    edges; nothing scores whether retrieval uses them.
  • temporal-depth — reasoning over a value's history rather than its current
    value ("how many times did x change", "what was it before the change").
  • aggregation — count / sum / list-all over claims matching a predicate.

each needs its generator to plant the supporting facts and its answer key to
stay a pure function of the seed. these are harder to generate than recall
cases: the generator has to guarantee the fact is only derivable, never
stated, or the category silently degenerates into single-session recall.

Compatibility considerations

adding categories shifts the overall mean, so the same versioning and
season-boundary question as the multipliers issue applies — worth landing both
under one bench version bump rather than two.

expect the new categories to score low at first. that is the point: they mark
where the engine actually is, and they are the ones the koth ladder should be
paying to move.

Alternatives

  • measure consolidation by hand on a fixed corpus — not seeded, not
    reproducible, not usable by the ladder.
  • drop W3 from the plan — the honest alternative if this doesn't get built, and
    a real loss, since it is the category where compiled pages beat every
    retrieval-only competitor by construction.

part of the ditto-style track — see .superpowers/DITTO-STYLE-PLAN.md (T6.2)
and .superpowers/BEAT-DITTO-PLAN.md (W3, P2).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestteststests and fixtures

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions