Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Design follow-ups from the pre-OSS audit (7 items, non-blocking)

Đang mở
#4 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
go
Lĩnh vực
documentation, tooling

Hướng nghiên cứu

Bắt đầu với audits/2026-06-30-pre-oss-audit.md, sau đó chọn một mục và đọc tệp được mục đó tham chiếu: docs/06-schema-reference.md, internal/schema/v1/modelith.schema.json, internal/lint/lint.go, docs/05-parking-garage/garage.modelith.yaml hoặc docs/04-reading-the-diagrams.md. Xác nhận phạm vi và quyết định thiết kế với các maintainer trước khi thay đổi bất kỳ điều gì; được coi là hoàn tất khi vấn đề đã chọn được xử lý bằng tài liệu, mã, ví dụ hoặc bài kiểm thử tương ứng.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Parked design items from audits/2026-06-30-pre-oss-audit.md — none blocked
the public launch, but they were meant to be tracked as issues rather than
left sitting only in the audit file. Filing as one issue to avoid spawning
seven low-traffic tickets; split any of these out separately if one actually
gets worked.

  1. DDD omissions undocumented — docs/06-schema-reference.md:79. Add a
    "What this format deliberately leaves out" section covering aggregates,
    value objects, domain events, bounded contexts, with a per-item
    out-of-scope/roadmap call. Probably the highest-leverage item here for
    credibility with a DDD-literate audience.

  2. Glossary/entity namespace collision unguarded —
    internal/schema/v1/modelith.schema.json:28. A glossary key that promotes
    to an entity is silently ambiguous. Add a lint error, next to the existing
    duplicate-invariant-id check.

  3. Completeness check pressures junk invariants —
    internal/lint/lint.go:496. The "entity has no invariants" warning +
    strict CI + the author skill together teach newcomers to invent
    cardinality-restating filler invariants. Soften the message; document that
    genuinely rule-free entities are fine.

  4. Ticket as value object in the flagship example —
    docs/05-parking-garage/garage.modelith.yaml:222. Ticket is a textbook
    value object modeled as an owned 1:1 entity, since the format has no
    first-class value-object concept. The worked example should name this
    tension explicitly, turning a hidden limitation into a teaching moment.

  5. Cardinality optionality foot-gun —
    internal/schema/v1/modelith.schema.json:148. 1:n carries no
    optionality; minimums live as invariants instead. The Mermaid renderer
    always emits ||--o{ (zero-or-many) even when an invariant says "at
    least one." Document this in schema-reference and cross-check
    04-reading-the-diagrams.md.

  6. Example violates its own relationship guidance —
    docs/06-schema-reference.md:113. The reference recommends declaring a
    relationship from a single side, but example.modelith.yaml declares
    Project↔User n:n redundantly from both ends. Either fix the example or
    make it the explicit "both ends add clarity" exception, with an
    explanation.

  7. Scenario steps have no stress-test convention —
    docs/06-schema-reference.md:188. The reference calls scenarios
    "diagnostics," but nothing enforces or teaches the
    violation-then-refusal pattern (at least one scenario per invariant that
    attempts to violate it and shows the refusal).

Context / priority

All non-urgent — none of these blocked launch, and the audit only flagged
them as design (needs a decision/discussion), not easy. Pick off
individually as time allows; #1 and #3 probably have the best
credibility/clarity payoff for the effort.

Ngôn ngữ chính
Go
Star
35
Fork
5
Merge trung bình
5 giờ 7 phút
Pull request đã merge (30 ngày)
6

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của stacklok/modelith

Tất cả issue của stacklok/modelith

Issue tương tự

Thêm issue về Go

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.