WORK-651
ID:WORK-651Status:done

section declares its body role

section's sections declare preamble, headline and blurb but no body, so reading and dropcap silently do nothing on a section. This is the case packages/transform/src/section-roles.ts exists to catch (SPEC-160 D1). It stands on its own and is the first step of SPEC-160's order.

Priority:highComplexity:trivialMilestone:v0.43.0Source:SPEC-160

Criteria completion

Criteria completion: 2 of 2 (100%) checked; history from Oct 24 to Oct 260%25%50%75%100%Oct 24Oct 26
Branches 3
History 4
  1. 99d5ec2
    • ☑ `sectionSections` declares `body: 'body'`, and `reading` / `dropcap` take effect on a section's body, asserted in a test
    • ☑ Every existing `section` fixture renders unchanged apart from the body role, and the contract diff on both copies is reviewed
    by bjornolofandersson
  2. a554ab9
    statusdraft→ready
    by bjornolofandersson
  3. a0cdd51
    Created (draft)by bjornolofandersson
  4. abc833f
    Content editedby Claude
    plan: v0.41.3, v0.42.0 and v0.43.0 milestones

Acceptance Criteria

  • sectionSections declares body: 'body', and reading / dropcap take effect on a section's body, asserted in a test
  • Every existing section fixture renders unchanged apart from the body role, and the contract diff on both copies is reviewed

References

  • SPEC-160: D1.
  • ADR-041.

Resolution

Completed: 2026-10-26

Branch: claude/v0-43-0-review-ny4nl1

What was done

  • packages/runes/src/tags/section.ts: sectionSections declares body: 'body', and the schema declares provides: ['prose']. packages/runes/src/config.ts: the Section entry declares provides: ['prose'].
  • packages/runes/test/section-roles.test.ts: tests that data-section="body", data-reading and data-dropcap land on a section's body.
  • packages/lumina/test/prose-capability.test.ts: the body-role audit counts 33. section is audited as a prose body.
  • Contracts: Section no longer lists reading and dropcap as unavailable.

Notes

  • The body role alone was not enough. reading is offered only on a rune that provides prose, which is default-off, so section needed both, the way card has them.