Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[Task]: shorten the todo list default summary behind a typed full-payload escape hatch (GH-C88)

オープン
#5,895 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
cli, python
領域
cli, tooling

調査の方向性

Read the todo list read projection in the CLI command layer and the todo_list spec in loopx/control_plane/testing/cli_output_budget.py. Run python3 examples/control_plane/cli-output-budget-regression-smoke.py to understand the existing budget and differential checks. The design is still open on the escape-hatch flag, summary size, and ceilings; done means the default is bounded, the escape hatch preserves the full payload shape, and the smoke and loopx check --scan-path docs/status-data-contract.md pass.

索引モデルが issue の本文から書いたものです。

説明

Task ID or area

GH-C88 (Lane B, S12 · "reduce review effort for useful changes" / #2881) — the todo list default summary

Technical direction

Core control-plane hardening

Intent

I need design feedback before implementation

Anchor type

Roadmap stream / milestone / card (S, G, R) in loopx-overall-roadmap-v0

Anchor reference

S12 · "reduce review effort for useful changes" / #2881; contributor board row GH-C88 (currently Needs design)

Goal, who is blocked, and exit

Current gap: todo list is the agent work-queue read path (qualified_default, surface todo_list), and its default JSON output is the full payload. Measured on the budget harness's crowded fixture (36 todos, 12 runs; 2244b96, native Windows host, Node 22.23.3; budget rows verified unchanged at current main): 17,450 chars / 493 lines while returning 12 of 36 todos. The structure is the problem, not just the size: 19 top-level keys with three parallel todo arrays (todos, agent_todos, user_todos — the same data grouped three ways), a per-item schema_version, and near-duplicate text/title per item. The manifest ceiling has been characterized at 82,000 chars crowded/json with a 2,050-chars-per-todo growth slope — the steepest in the matrix (next is status at 550/todo) — so agents pay a full-page readback to answer "what should I work on next", which is exactly the symptom reported in #2881.

Who is blocked without it: agents and operators who read the work queue every turn (token cost on the hot path), and reviewers who re-approve large readback diffs.

Accepted outcome (before → after): before, default todo list emits the full triple-array payload; after, the default output (both formats) is a bounded summary — envelope with ok, goal_id, todo_count / returned_todo_count / unfiltered_todo_count plus the top-N actionable todos, each carrying only todo_id, title, status, priority, claimed_by — and a typed escape-hatch flag emits the complete current payload with its shape unchanged, so existing automation keeps working untouched.

Exit condition: the default summary ships with the escape hatch, the todo_list manifest ceilings are tightened with matched measurements (proposal below), python3 examples/control_plane/cli-output-budget-regression-smoke.py (manifest + differential probe) passes, and loopx check --scan-path docs/status-data-contract.md stays clean.

Proposed scope

In scope / owner: the todo list read projection, its mode-variant/spec rows in loopx/control_plane/testing/cli_output_budget.py, and the new escape-hatch flag. Owned by @BigDataDZ.

Existing related work / dependencies: the existing budget regression smoke and its base/head differential probe; the turn-plan writeback-route discipline (compaction must not discard or redirect routing, already guarded by an assertion I will keep green).

Out of scope: the other nine qualified_default surfaces (status is the second-steepest at 550/todo and is deliberately untouched), write paths, scheduler/quota semantics, and any change to the full payload shape behind the escape hatch.

If staged: N/A — one cohesive slice.

Intended base branch

main

Relevant files or commands
  • loopx/control_plane/testing/cli_output_budget.py (todo_list spec + a new mode-variant row for the escape hatch)
  • the todo list read projection in the CLI command layer
  • python3 examples/control_plane/cli-output-budget-regression-smoke.py
  • loopx check --scan-path docs/status-data-contract.md
Validation plan

Accepted result and independent oracle: on the crowded fixture the default todo list JSON drops from the measured 17,450 chars / 493 lines to within the tightened ceiling while keeping every decision signal the summary claims (id/title/status/priority/claimed_by per surfaced todo plus the three counts); the escape hatch emits the full payload with an unchanged shape; the tightened manifest and the differential probe enforce both directions.

Actual entrypoint / safe command: python3 examples/control_plane/cli-output-budget-regression-smoke.py; a focused default-vs-escape-hatch todo list smoke.

Negative or recovery case: the differential probe's growth/duplication assertions on the default output — re-adding a parallel array or a per-item schema_version must fail the tightened ceilings.

Frontend / Lark / CLI impact: CLI only (the todo list default output).

Open design questions
  1. Escape-hatch flag name: --full-json (proposal) vs a --brief-style inversion following the heartbeat convention (--thin / --brief).
  2. Summary N: proposal N = 8 next-actionable todos in the existing stable order.
  3. Tightened ceilings: proposal crowded/json 82,000 → ~24,000 and growth 2,050 → ~600 per todo, from the measurement above; maintainers may prefer a different differential allowance.
Public/private boundary
  • This issue does not include private benchmark traces, verifier output, credentials, internal document links, raw agent sessions, or local runtime state.
  • I will not run or duplicate maintainer-owned benchmark cases unless a maintainer explicitly splits out a public task.
  • This task is not a standalone catalog entry, behavior-pinning test, fixture dimension, rename, or docs restatement; if it includes one, the anchor above names the code, test, or copy that consumes it.
主要言語
Python
スター
6.2k
フォーク
596
平均マージ
6時間 44分
マージ済み PR(30日)
915

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

loopx-project/loopx のほかの issue

loopx-project/loopx の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。