docs(schedule): record the deliberate ExecutionResult dataclass upgrade

Review (2026-08-21) found that stage 1 promoted ExecutionResult from a
plain class to @dataclass(frozen=True) along the way. No caller mutates
or compares these objects by identity, so the only externally visible
change is structured log output. User opted to keep the upgrade.

- domain/execution.py module docstring: explicit note that the frozen +
  value-equality form is a deliberate enhancement, not a behavioral
  accident
- CLAUDE.md "Schedule service layering" lesson: add a "don't silently
  upgrade dataclass-ness during a structural-only refactor" note so
  future refactors copy class definitions verbatim unless they intend
  to tighten semantics explicitly

No code change; tests still 29 green.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
tao.chen
2026-08-21 15:38:31 +08:00
co-authored by Claude
parent 80130c6d77
commit 9f6466335c
2 changed files with 7 additions and 0 deletions
@@ -2,6 +2,12 @@
Pure value objects — no I/O, no logging, no model imports. Safe to import
from any layer.
Note: ``ExecutionResult`` is a frozen dataclass here, while the pre-refactor
flat ``schedule/execution.py`` defined it as a plain class. The frozen +
value-equality upgrade is a deliberate enhancement (review verification,
2026-08-21): no caller mutates the object and no caller relies on identity
comparison, so the only visible change is structured log output.
"""
from __future__ import annotations