Skip to content

docs: post-architecture-deepening audit — trim PLAN.md, fix CLAUDE.md drift#143

Merged
eschizoid merged 1 commit into
mainfrom
docs/claude-md-audit
May 31, 2026
Merged

docs: post-architecture-deepening audit — trim PLAN.md, fix CLAUDE.md drift#143
eschizoid merged 1 commit into
mainfrom
docs/claude-md-audit

Conversation

@eschizoid

@eschizoid eschizoid commented May 31, 2026

Copy link
Copy Markdown
Owner

Summary

Follow-up to the architecture-deepening squash (#141 / 50c7dbf). Three concerns bundled into one commit since they're all documentation/housekeeping with no code impact.

PLAN.md trim (259 → 172 lines, -87)

  • Header rewritten — was pointing at 1.13 / "1.14 in flight"; both shipped, 1.15 is current. Stops re-asserting per-release detail that belongs in git history + CLAUDE.md §19/§20.
  • Score table updated for the deepening pass: Discovery 8.5→9, Type safety 9→9.5, aggregate 8.7→8.8 (Result<T> switch is now the only way to get a pipeline outcome, enforced by the compiler).
  • "Developer-ergonomics — 1.14 in flight" section collapsed to just the deferred-decisions list — the part that still has forward signal. Shipped items live in commits + §16/§19.
  • "Strengths to preserve" section deleted — 100% verbatim duplication of CLAUDE.md core invariants + §3-§14. Two sources of truth for the same content always drift.
  • Per-module contents table deleted — restated package contents already recoverable from settings.gradle + CLAUDE.md §9. Kept the ASCII dep diagram and the "Still planned" mini-table.
  • Open question Add retry tests #3 ("Confluent SR scope... schedule for 1.14?") removed — answered, shipped, doctrine in §19.

CLAUDE.md audit + fixes

Three parallel Explore agents audited §7/§8/§17, §10/§11/§12, §18/§20 + invariants against current code. Eight substantive drift items fixed:

  • §7 vs §8 helper-name inconsistency. §7 said public helpers are on MessageProcessorRegistry; §8 said RegistryFunctions with withConsumerErrorHandling for sinks. Verified public face is on MessageProcessorRegistry; rewrote §8 to match and note the internal delegation as a historical artifact.
  • §11 unpark sources. Bullet still named processRecord()'s finally as the third unpark site; it moved to afterRecordComplete() (the dispatcher's onComplete callback) in 1.15.
  • §11 markOffsetProcessed-before-errorHandler invariant. Added the one real exception (handleParallelRejection during shutdown).
  • §12 byte-level entry points bullet. Said apply / processToSink / processToValue "preserve pre-1.13 contracts." Methods are gone; replaced with an inverted bullet explaining WHY they're gone.
  • §12 real-world burn paragraph. Dropped the stale processTypedRecord method name.
  • §17 capability table. Four rows had wrong method names:
    • withConsumerProvider → actually withConsumer(Supplier<Consumer<K,byte[]>>)
    • withDeadLetterBundle(...) → actually withDeadLetterQueue(String, KPipeProducer)
    • withOffsetManager(Provider) → actually withOffsetManagerProvider(Function<Consumer<K,byte[]>, OffsetManager<K>>)
    • withRebalanceListener(...) → doesn't exist as a public Builder method; lives on OffsetManager.createRebalanceListener()
  • §18 offset-commit bullet. Generalized from batch-only to ALL offset bookkeeping — the deepening pass extended what was a 1.12-batch-only optimization to every processing mode.
  • §18 shutdown drain order. Updated to point at the four named phases of the split close() instead of a flat sequence that no longer matches the code structure.
  • Coding standards. Added the accumulator-pattern exception to "final var for locals" — one site in the codebase legitimately needs reassignment.

Verified accurate and left untouched: §10 OTel metric table, top-level Core invariants, §13, §14, §15, §16, §19, §20.

Housekeeping

  • Removed plans/2026-05-24-fastjson2-migration.md — that migration shipped as 70cb470; the plan file was scratch state.
  • Gradle wrapper bump pulled in by the rebase.

Test plan

  • ./gradlew spotlessMarkdownCheck — green
  • Every modified CLAUDE.md claim re-verified against a specific file + line number before editing
  • Net diff against main confirmed: only the two doc files + wrapper + the plan deletion

Follow-up to the architecture-deepening squash that merged as 50c7dbf.
Three concerns bundled into one commit since they're all
documentation/housekeeping with no code impact.

**PLAN.md trim (259 → 172 lines, -87).**
- Header rewritten — was pointing at 1.13 / "1.14 in flight"; both
  shipped, 1.15 is current. Stops re-asserting per-release detail that
  belongs in git history + CLAUDE.md §19/§20.
- Score table updated for the deepening pass: Discovery 8.5→9, Type
  safety 9→9.5, aggregate 8.7→8.8 (Result<T> switch is now the only
  way to get a pipeline outcome, enforced by the compiler).
- "Developer-ergonomics — 1.14 in flight" section collapsed to just
  the deferred-decisions list — the part that still has forward signal.
  Shipped items live in commits + §16/§19.
- "Strengths to preserve" section deleted — 100% verbatim duplication
  of CLAUDE.md core invariants + §3-§14. Two sources of truth for the
  same content always drift.
- Per-module contents table deleted — restated package contents
  already recoverable from settings.gradle + CLAUDE.md §9. Kept the
  ASCII dep diagram and the "Still planned" mini-table.
- Open question #3 ("Confluent SR scope... schedule for 1.14?")
  removed — answered, shipped, doctrine in §19.

**CLAUDE.md audit + fixes.** Three parallel Explore agents
audited §7/§8/§17, §10/§11/§12, §18/§20 + invariants against current
code. Eight substantive drift items fixed:
- §7 vs §8 helper-name inconsistency. §7 said the public helpers are
  on MessageProcessorRegistry; §8 said RegistryFunctions with
  `withConsumerErrorHandling` for sinks. Verified public face is on
  MessageProcessorRegistry; rewrote §8 to match and note the
  internal delegation as a historical artifact.
- §11 unpark sources. Bullet still named processRecord()'s finally
  as the third unpark site; it moved to afterRecordComplete() (the
  dispatcher's onComplete callback) in 1.15.
- §11 markOffsetProcessed-before-errorHandler invariant. Added the
  one real exception (handleParallelRejection during shutdown).
- §12 byte-level entry points bullet. Said `apply` / `processToSink` /
  `processToValue` "preserve pre-1.13 contracts." Methods are gone;
  replaced with an inverted bullet explaining WHY they're gone.
- §12 real-world burn paragraph. Dropped the stale
  processTypedRecord method name.
- §17 capability table. Four rows had wrong method names:
  withConsumerProvider → withConsumer; withDeadLetterBundle →
  withDeadLetterQueue(String, KPipeProducer); withOffsetManager(Provider)
  → withOffsetManagerProvider(Function<Consumer, OffsetManager>);
  withRebalanceListener → doesn't exist as a public Builder method
  (lives on OffsetManager.createRebalanceListener()).
- §18 offset-commit bullet. Generalized from batch-only to ALL offset
  bookkeeping — the deepening pass extended what was a 1.12-batch-only
  optimization to every processing mode.
- §18 shutdown drain order. Updated to point at the four named phases
  of the split close() instead of a flat sequence that no longer
  matches the code structure.
- Coding standards. Added the accumulator-pattern exception to "final
  var for locals" — one site in the codebase legitimately needs
  reassignment.

Verified accurate and left untouched: §10 OTel metric table, top-level
Core invariants, §13, §14, §15, §16, §19, §20.

**Housekeeping.**
- Removed plans/2026-05-24-fastjson2-migration.md — that migration
  shipped as 70cb470; the plan file was scratch state.
- Gradle wrapper bump pulled in by the rebase.
@eschizoid eschizoid force-pushed the docs/claude-md-audit branch from 1e7dba8 to e9a4e49 Compare May 31, 2026 01:20
@eschizoid eschizoid changed the base branch from docs/trim-plan-md to main May 31, 2026 01:21
@eschizoid eschizoid changed the title docs(claude): audit + fix CLAUDE.md drift against current code docs: post-architecture-deepening audit — trim PLAN.md, fix CLAUDE.md drift May 31, 2026
@eschizoid eschizoid merged commit b8376ee into main May 31, 2026
1 check passed
@eschizoid eschizoid deleted the docs/claude-md-audit branch June 4, 2026 13:44
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