Skip to content

PR panel: new advisory improvement-signal section #4744

Description

@JSONbored

Context

Part of #4737 (parent epic — surfacing phase). Depends on the deterministic
aggregate sub-score and the LLM-tier ModelReview extension (sibling sub-issues in this epic).

The problem

Neither tier is visible to a maintainer until something renders them. This repo already has one managed
PR panel (src/github/comments.ts) with a per-row show/hide toggle mechanism
(.gittensory.yml fields: — keys linkedIssue | relatedWork | reviewLoad | validationEvidence | openPrQueue | contributorContext | gateResult, all default-shown) and an established static-template
pattern for a headline number that needs to bypass the public sanitizer safely ("**Readiness score: ${readiness.total}/100**", src/signals/engine.ts:4459).

Fix

Add a new panel section combining both tiers: the deterministic band (static template label — safe,
bypasses the sanitizer the same way readiness does) plus, where the LLM tier is also enabled, its ordinal
judgment and a sanitized one-line rationale. Add a corresponding new key to the fields: toggle list
(e.g. improvementSignal) so a maintainer can hide it like any other row, default-shown when the feature
itself is enabled for the repo.

Requirements

  • Static template copy for the band/label itself (e.g. "Improvement: moderate"), matching the
    readiness-score precedent — this is what keeps it sanitizer-safe regardless of the underlying words
    used for band names.
  • The LLM tier's rationale text still goes through the existing sanitizer pipeline even though it
    was prompt-engineered to avoid trigger words (sibling sub-issue) — defense in depth, don't skip the
    existing gate just because the prompt tries to avoid it.
  • Render only the tiers that are actually enabled/available for this repo (deterministic-only if the LLM
    tier is off; nothing at all if improvementSignal itself is off) — no placeholder/empty section.
  • Follow the existing "Nits"-style collapsible-detail convention already used elsewhere in the panel
    (see any existing PR panel comment) if the structured findings list is long, rather than dumping every
    finding inline.
  • Update .gittensory.yml.example's fields: documentation block with the new key.

Acceptance criteria

  • New panel section renders the deterministic band unconditionally when improvementSignal resolves
    true for the repo, and the LLM-tier judgment additionally when that sub-feature is also active.
  • New fields: toggle key wired through the same show/hide mechanism as its six siblings, documented
    in .gittensory.yml.example.
  • A public-comment test asserts the rendered section never contains forbidden vocabulary regardless
    of what findings/rationale feed it (mirrors this repo's existing "public output contains no
    wallet/hotkey/trust/reward terms" invariant-test style).
  • Screenshot/visual evidence of the new panel section in a real PR comment (this repo's own
    contributor rules require UI evidence for any visible-surface change — hold this PR to the same
    bar even though it's maintainer-authored).

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions