Skip to content

feat(read): today dissolve — flat items[] + meta.counts; badge purge (read-shape doctrine PR 1) - #375

Merged
mikegreiling merged 1 commit into
mainfrom
mg/today-dissolve
Aug 3, 2026
Merged

feat(read): today dissolve — flat items[] + meta.counts; badge purge (read-shape doctrine PR 1)#375
mikegreiling merged 1 commit into
mainfrom
mg/today-dissolve

Conversation

@mikegreiling

Copy link
Copy Markdown
Owner

First of five sequential PRs implementing the ratified read-shape doctrine (docs/design/read-shape-doctrine.md): JSON models semantic state; the TTY projects GUI placement. This PR dissolves the today view and finalizes the doctrine doc (closing draft #374).

What changed (breaking, ALPHA)

  • data shape: today's data is now { items } — one flat list of Today members in comparator order (Today-proper and This-Evening interleaved by their SQL position), each row carrying its when ("today"/"evening") and provisional. stage is still dropped (every Today member is stage-pure anytime, R13); when — previously section-dropped — is now KEPT on every row. The former data.sections ([{key:"today"},{key:"evening"}]) is gone.
  • Count → meta.counts: the former data.badge {dueOrOverdue, other} moves to meta.counts (the app's sidebar count over OPEN members), so data stays pure domain rows. Over MCP the count rides the result metadata block beside truncation.
  • "badge" purged from all consumer-facing surfaces (JSON keys, TTY, --help, MCP descriptions, contract) and added to the banned-vocabulary regression lists (docs/design/surface-copy.md rule 6; test/cli/help-contract.test.ts, test/mcp/server.test.ts). Evidence docs describing the app's GUI badge are untouched.
  • TTY redesign (maintainer-specified): clean ── ★ Today ── header; the counts render at the top as card-style metadata lines ( due/overdue: N / other: M, the project show/area show convention). This Evening is re-projected from when; its honesty hint under truncation is preserved via meta.truncation.sections (completeness metadata for the two TTY render sections, not a data bucket).
  • --evening, --area, --overdue, tag filters, per-call tz — behavior unchanged.

Doc / doctrine

  • docs/design/read-shape-doctrine.md finalized and marked RATIFIED (rulings #C1–#C6 baked into the per-view verdicts; today marked landed, PRs 2–5 marked planned). Closes [DRAFT — do not merge] docs(design): read-shape doctrine audit #374.
  • docs/contract.md, docs/design/contracts.md updated for the flat shape + meta.counts; envelope schema regenerated; skills/things-cli/references/model.md de-falsified (the comprehensive skill sweep is PR 5).

Verification

npm run check green (typecheck + oxlint + fmt:check + 2310 tests). Envelope schema three-way sync test passes.

🤖 Generated with Claude Code

…(read-shape doctrine PR 1)

Dissolve the `today` view's Today/This-Evening `sections` into one flat
`items[]` (comparator order, each row carrying `when`), and move the count to
`meta.counts`. First of five PRs implementing the ratified read-shape doctrine
(docs/design/read-shape-doctrine.md): JSON models semantic state; the TTY
projects GUI placement.

- data: `{ items }` — flat Today members, `when` kept per row, stage dropped
  (stage-pure `anytime`). `data.sections` and `data.badge` gone.
- meta.counts `{dueOrOverdue, other}` (the app's sidebar count, OPEN members);
  over MCP it rides the result metadata block beside `truncation`.
- "badge" purged from all consumer copy; added to the banned-vocabulary
  regression lists (surface-copy.md rule 6, help-contract + mcp tests).
- TTY: clean `── ★ Today ──` header; counts render at the top as card-style
  metadata lines; This Evening re-projected from `when`; evening honesty hint
  preserved via `meta.truncation.sections` (TTY render-section metadata).
- doctrine doc finalized/ratified; contract.md + design/contracts.md updated;
  envelope schema regen; skill model.md sentence de-falsified.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RYbJensXxHpJK1v1VDXYUD
@mikegreiling
mikegreiling merged commit ce4fa4d into main Aug 3, 2026
1 check passed
@mikegreiling
mikegreiling deleted the mg/today-dissolve branch August 3, 2026 18:10
mikegreiling added a commit that referenced this pull request Aug 5, 2026
… re-audit (#398)

* Revert "docs(read): ordering contract + skill sweep for the read-shape doctrine (PR 5) (#379)"

This reverts commit debbe6f.

* Revert "feat(read): area-view direct to-dos dissolve to flat items[] (read-shape doctrine PR 4) (#378)"

This reverts commit 044ffd0.

* Revert "feat(read): project-view headings catalog + logbook flatten (read-shape doctrine PR 3) (#377)"

This reverts commit 94f1dda.

* Revert "feat(read): project-view children dissolve to flat items[] (read-shape doctrine PR 2) (#376)"

This reverts commit 57321bc.

* Revert "feat(read): today dissolve — flat items[] + meta.counts; badge purge (read-shape doctrine PR 1) (#375)"

This reverts commit ce4fa4d.

* chore(read): post-revert bookkeeping — CHANGELOG, doctrine status, skill floor

Follow-up to the five read-shape doctrine reverts (#375-#379):

- CHANGELOG: add a breaking Unreleased entry documenting the wholesale
  revert and the return to pre-0.13.0 bucketed today/project/area shapes;
  meta.counts removed. Clean revert, no compat shims (ALPHA-CONTRACT).
- docs/design/read-shape-doctrine.md: restored (the PR-1 revert deleted it)
  with its status changed to REVERTED (dated) — retained as the input to a
  design re-audit of the read-shape approach.
- skills/things-cli/SKILL.md: reconcile the npx floor sentence. The skill
  again teaches the bucketed read shapes, which 0.13.0 does NOT have; anchor
  the floor to the skill's publish-stamped version (the release that ships
  these shapes) instead of the now-false "below 0.13.0" literal.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C1g2PkB43exMAfFdg6QnMT

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant