Skip to content

planning: say "decided after you answered" on a stale question and show the review count in the meter #5908

Description

@kyle-sexton

Severity: low

Problem

The group header and the filter now show questions that need re-review (the Review filter and "N to review", #5903), and the meter already leaves stale questions out of "answered" (settled, index.html:642 and 852). Two gaps remain:

  • The stale banner says "Stale: Q5 changed." (index.html:1067) even when Q5 did not change: it was decided for the first time after this question was answered. staleBy() (index.html:606-610) returns those prerequisites, but the banner text does not tell the two cases apart.
  • The header meter reads "40 of 103 answered" and does not say how many answered questions are waiting for review, so a stale question drops out of the count with no explanation.

Expected

  • The banner reads "Q5 was decided after you answered this" when the prerequisite had no earlier decision, and "Q5 changed" only when an earlier decision was replaced.
  • The meter shows "· N to review" beside the pending-research count when any answered question needs review.

Suggested fix

  • index.html:1067: for each id in staleBy(q), check whether that prerequisite had a decision event older than this question's last decision (lastDecisionSeq, index.html:605, applied to earlier events). If it had none, word it "was decided after you answered this".
  • renderHeader (index.html:853): count live(q) && isAnswered(stateOf(q)) && needsYou(q) and append "· N to review". This is the same predicate as the Review filter.

Acceptance criteria

  • If Q6 was accepted before Q5 was ever decided, Q6's banner reads "Q5 was decided after you answered this".
  • With one stale answered question, the meter shows "1 to review", and that question is not counted as answered.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: lowNice-to-have, cosmetic, or speculative; opportunistic.status: readyTriaged, unblocked, and fully specified; eligible to pick up.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions