Skip to content

knowledge: docpage-digest's truncated-quote ellipsis rule contradicts the exact-substring fence gate #7284

Closed

Description

@kyle-sexton

Summary

/knowledge:docpage-digest tells authors that a truncated key-claim quote carries an ellipsis, but the standing fence gate requires every fence payload to be an exact contiguous substring of source.md. A truncated quote written as the skill says fails the gate, so an author can satisfy the rule or the gate, never both.

Affected area / component

plugins/knowledge/skills/docpage-digest (SKILL.md, scripts/digest_fences.py, scripts/check-fences-exact.py)

Steps to reproduce

  1. In any slice, write a **CN.** key-claim fence whose quote is truncated with …, as SKILL.md requires.
  2. Run check-fences-exact.py over the slice.
  3. The claim fails: the ellipsis is not a substring of source.md.

Expected behavior

The rule and the gate agree on how a truncated quote is written.

Actual behavior

  • SKILL.md:186 ("Verbatim means verbatim"): "in 'Key claims (verbatim)', a truncated quote carries an ellipsis".
  • scripts/digest_fences.py:297-298 (payload_in_source): "Exact contiguous match. No strip, no whitespace forgiveness." The module has no ellipsis handling; its only … is in its own output-truncation code at :288.
  • scripts/check-fences-exact.py:111 fails a claim whose payload is not found by payload_in_source.

Suggested fix

Either have payload_in_source split a payload on a declared ellipsis marker and match the segments in order, or change SKILL.md to say a truncated quote stays an exact contiguous substring and the truncation is recorded outside the fence. Add a negative-control fixture for whichever form is chosen.

Environment

knowledge plugin 0.21.1 (line numbers from main on 2026-10-12).

Found during the upstream-pointer sweep (PRs #7061-#7274).

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 12, 2026
  2. added theissue type on Oct 12, 2026
  3. github-actions commented on Oct 12, 2026

    @github-actions
    Contributor

    Thanks for the report. Automated triage handed this issue to a maintainer.

    Automated triage. A maintainer reviews it.

  4. added
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 12, 2026
  5. removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 12, 2026
  6. kyle-sexton commented on Oct 13, 2026

    @kyle-sexton
    MemberAuthor

    Decision recorded. The owner approved applying independently verified recommendations on 2026-10-12.

    • How is a truncated quote written? → The quote stays an exact contiguous substring and the truncation is recorded outside the fence; change SKILL.md
      Basis: plugins/knowledge/skills/docpage-digest/scripts/digest_fences.py:297-298; plugins/knowledge/skills/docpage-digest/SKILL.md:186-187

    SKILL.md says a truncated key-claim quote carries an ellipsis, but the fence gate requires each payload to be an exact contiguous substring of source.md, so the rule and the gate cannot both pass. Both are unchanged on main.

    Verification notes:

    • The same SKILL.md bullet also says 'joined source lines declare their join convention', which equally cannot pass an exact contiguous match; the doc change should cover joins too, not only ellipses.
    • Assumption about existing slices is unverifiable here (slices live outside this repo) but moot: an ellipsis fence already fails the gate.

    Verified by an independent fresh-context check (confirmed, risk low): gh issue view 7284 (open, no owner decision); origin/main plugins/knowledge/skills/docpage-digest/SKILL.md:186-187; origin/main scripts/digest_fences.py:285-305 (payload_in_source exact contiguous; only … is output truncation at :288); git grep check-fences-exact.py: gate parses CN. under Key claims; git log docpage-digest (latest #7268, #7214 unrelated); gh pr list docpage-digest: no fix

    Admission to an agent lane stays with the work-class rules and owner ratification.

  7. kyle-sexton commented on Oct 13, 2026

    @kyle-sexton
    MemberAuthor

    Owner batch-ratified this admission in an attended session on 2026-10-12: work-class: scoped. Rule: class C1-C3, no trust surface, the independent check confirmed the recorded decision, and no owner step remains.

  8. added
    work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    priority: mediumReal value, no hard deadline; normal backlog flow.
    and removed
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Oct 13, 2026
  9. kyle-sexton commented on Oct 18, 2026

    @kyle-sexton
    MemberAuthor

    Agent Brief

    Type: Bug
    Summary: Make docpage-digest's truncated-quote rule agree with the exact-substring fence gate.

    Current behavior:
    The skill says a truncated key-claim quote carries an ellipsis and joined source lines declare their join convention, but the standing fence gate requires every fence payload to be an exact contiguous substring of the source. A quote written as the skill says fails the gate.

    Desired behavior:
    The skill says a key-claim fence payload is always an exact contiguous substring of the source. Truncation, and any join of source lines, is recorded outside the fence (for example in the line after it), never inside the payload. The gate is unchanged.

    Key interfaces:

    • The skill's 'Verbatim means verbatim' rule.
    • The fence gate's exact-match contract: unchanged.

    Acceptance criteria:

    • The skill no longer tells authors to put an ellipsis or a join marker inside a key-claim fence.
    • The skill says truncation and joins are recorded outside the fence.
    • The fence gate scripts are unchanged.
    • CI's skill-quality passes on the PR (a PR check; this run does not run it).
    • scripts/check-changelog-fragments.sh passes with a knowledge entry.

    Out of scope:

    • Rewriting existing slices.
    • Ellipsis segment matching in the gate.

    This was generated by AI during backlog shaping. Held, not admitted: this brief is drafted and checked, but the issue lane would stop on it today. It is admitted, by adding agent-ready, once the lane can run the skill-quality check scripts (Automation Lanes' PR #7912). Held under the owner's 2026-10-18 lane-narrowing course correction.

  10. added
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    and removed
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 18, 2026
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

    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.priority: mediumReal value, no hard deadline; normal backlog flow.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions