Skip to content

S14.08: Make SolidSyslogFormatter private to the library #548

Description

@DavidCozens

Parent epic: #64

Context

With SD authoring (S14.06) and header fields (S14.07) both off the public
formatter, SolidSyslogFormatter has no remaining public consumer. Move it out of
the public interface entirely — the structural payoff of the epic — and write the
design note that records the new SD-authoring API.

What changes

  • Move SolidSyslogFormatter.h from Core/Interface/ to Core/Source/.
  • Remove the now-unnecessary struct SolidSyslogFormatter; forward declarations
    from any public headers / callback typedefs.
  • Update the CLAUDE.md public-header table: remove the SolidSyslogFormatter
    row; add SolidSyslogSdElement / SolidSyslogSdValue / the header-field-writer
    rows.
  • Author docs/structured-data.md — the design note (two-type writer,
    escaping, streaming + Option-B continuation state, SD-NAME validation, custom
    SD-ID), which becomes the skeleton for the S14.09 integrator guide.

Acceptance criteria

  • No file under Core/Interface/ or Platform/*/Interface/ references
    SolidSyslogFormatter.
  • Library + tests build with the formatter private (formatter primitives still used
    freely inside Core/Source — timestamp formatter, block-device filenames, the SD
    / token writers).
  • CLAUDE.md public-header table updated.
  • docs/structured-data.md exists and describes the agreed design.
  • DEVLOG + memory updated per cadence.

Out of scope

  • The integrator how-to / worked example / oracle BDD (S14.09).

Areas affected

Core/Interface/, Core/Source/, CLAUDE.md, docs/structured-data.md.
Largely a mechanical move plus documentation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    storyStory issue

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions