Skip to content

Token efficiency: pm context agenda events re-embed full item payloads already listed in the same response (~35% of brief output) #591

Closed

Description

@unbraind

Version: pm 2026.7.18

In pm context (default depth brief), every agenda.events[] entry re-embeds a near-full item payload (item_title, item_type, item_status, item_priority, item_assignee, item_deadline, item_tags) for items that are already fully listed in high_level/low_level of the same response.

Measurement (28-item workspace, toon output)

  • Total pm context output: 5794 bytes; agenda section: 2032 bytes (~35%).
  • All 6 agenda events referenced items already present in the same response (2 in high_level, 4 in low_level) — every embedded field was a duplicate except at/date/kind.
agenda:
  events:
    - at: "2026-08-01T08:15:37.365Z"
      date: "2026-08-01"
      kind: "deadline"
      item_id: "uxt-jw5v"
      item_title: "Rotate Stripe webhook secrets"   # duplicate of low_level row
      item_type: "Chore"                            # duplicate
      item_status: "open"                           # duplicate
      item_priority: 2                              # duplicate
      item_assignee: "eve"                          # duplicate
      item_deadline: "2026-08-01T08:15:37.365Z"     # duplicate (== at)
      item_tags: ["ops", "security"]                # duplicate

Expected vs actual

  • Expected: agenda events reference items by item_id (+ at, kind, and maybe item_title for readability) when the item already appears in the same context response; full embedding only for items not otherwise present.
  • Actual: unconditional full embedding — on deadline-heavy workspaces the agenda approaches a second copy of the item lists.

Why it matters for agents

pm context is the command agents are told to run first and most often; every duplicated field is context-window tax paid on each call. A dedup here cuts brief-mode output ~25-30% on realistic workspaces with deadlines, with zero information loss. Sibling of open GH-445 (repeated tags within low-level rows) — that one is within-row redundancy, this is cross-section duplication.

Activity

  1. coderabbitai commented on Jul 18, 2026

    @coderabbitai
    🔗 Related PRs

    #77 - Speed up list/search/health via metadata + drift caches; fix health ok:false [closed]
    #196 - Add linked-test selectors and aggregate completion [closed]
    #234 - pm context --depth full + --parent subtree scope; pm list --no-truncate (GH-156, GH-154, GH-155, GH-223) [closed]
    #431 - Add SDK boundary inventory ratchet [merged]
    #559 - SDK durable relationship history and bounded context adapters [merged]


    📝 Issue Planner

    Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

  2. unbraind commented on Jul 18, 2026

    @unbraind
    OwnerAuthor

    pm tracker item: pm-6m1i

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions