Skip to content

Comment

Commentable is a mixin that adds stakeholder discussion and rationale to an entity without altering its core fields. Entities that include it gain a comments field holding an immutable set of Comment records that accumulate across scope merges — no comment is ever discarded.

UserStory and Task carry Commentable.

Comment

Comment

Bases: BaseModel

A comment attached to a Commentable entity.

Attributes:

Name Type Description
id int

Integer identifier used as an external reference handle. Not a merge key; union semantics preserve all comments from both sides.

body str

The comment text. Must be non-empty.

timestamp datetime

When the comment was recorded (must be timezone-aware).

author str | None

Who wrote the comment. Free-text string; defaults to None.

Commentable

Commentable

Bases: BaseModel

Mixin that adds a set of comments to an entity.

Entities inheriting this mixin carry a comments field holding an immutable set of :class:~fushinryu_model.comment.Comment records.

Merge semantics: comments accumulate — both sides are unioned. Two comments are equal only when every field matches; identical comments appear once.

Attributes:

Name Type Description
comments frozenset[Comment]

Attached comments. Defaults to an empty frozenset.