You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .hermes/skills/devlog-architecture-harness/SKILL.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -75,6 +75,10 @@ Ask the user before editing when:
75
75
- A shared type is being moved only because multiple modules need access.
76
76
- Firebase/Auth/Firestore/Functions/Messaging-specific logic would leave Infra.
77
77
- WidgetCore would depend on Domain, Data, Infra, Persistence, Presentation, or App.
78
+
- DevLogWidget would depend on Domain, Infra, Persistence, Presentation, or App.
79
+
- DevLogWidget would use WidgetKit for anything beyond the app-side widget reload bridge.
80
+
- Widget sync ownership would move away from the preferred split: Data contracts and snapshot repositories, DevLogWidget app-side bridge/snapshot update orchestration, WidgetCore snapshot models/factories/store contracts, and WidgetExtension rendering.
81
+
- Persistence would gain widget snapshot generation, WidgetCore, WidgetKit reload, or DevLogWidget bridge ownership.
78
82
- Presentation would depend on Data, Infra, Persistence, or App.
79
83
- Data would gain concrete SDK or storage implementation details.
80
84
- Data or Presentation would expand platform SDK usage beyond the existing narrow cancellation-classification or notification-badge patterns.
@@ -122,6 +126,8 @@ After completion, report only:
122
126
- Do not infer project-specific architecture policy from generic Clean Architecture rules when DevLog already has a concrete pattern.
123
127
- Do not move domain entities to Core just because multiple modules need them.
124
128
- Do not inject same-layer dependencies except from SwiftUI `View` files in `Application/DevLogPresentation` into same-layer presentation objects for UI composition.
129
+
- Do not collapse the current DevLogWidget bridge back into Data, Persistence, App, or WidgetCore without explicit boundary approval.
130
+
- Route app-side widget bridge and snapshot update orchestration through DevLogWidget.
125
131
- Do not hide architecture decisions inside build-fix wording.
126
132
- Do not broaden a modularization task into unrelated Firestore, Messaging, or UI safety edits.
127
133
- Do not mark work complete if the diff contains unrelated project-file or lockfile churn.
Copy file name to clipboardExpand all lines: .hermes/skills/devlog-architecture-harness/references/devlog-workflow-rules.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -88,7 +88,10 @@ This reference holds DevLog-specific working rules that should live with the pro
88
88
89
89
- Widget UI should consume snapshot data, not app/domain services.
90
90
-`DevLogWidgetCore` should stay free of Domain, Data, Infra, Persistence, Presentation, and App dependencies unless the user explicitly approves a boundary change.
91
-
- Prefer an app-driven snapshot flow: app/runtime data fetch, snapshot generation, App Group storage, WidgetCore model/factory, WidgetExtension rendering.
91
+
-`DevLogWidget` owns the app-side widget bridge: sync event bus implementation, sync event handlers, session sync handler, auth-session sync provider, snapshot generation/persistence orchestration, WidgetKit reload bridge, and `WidgetAssembler`.
92
+
-`DevLogData` owns widget-related contracts and repository implementations, including `WidgetSyncEventBus`, `WidgetSnapshotUpdater`, and `WidgetTodoSnapshotRepository`. Data should not own concrete widget handlers, WidgetCore snapshot model/factory usage, or WidgetKit reload behavior.
93
+
-`DevLogPersistence` owns local persistence, user defaults, image store, and non-widget app persistence.
94
+
- Prefer an app-driven snapshot flow: app/runtime event, DevLogWidget sync handler, Data snapshot input fetch, DevLogWidget snapshot update, App Group storage through WidgetCore contracts, WidgetExtension rendering.
92
95
-`WidgetTodoSnapshot` is a lightweight snapshot value, not a full domain `Todo`.
93
96
- Do not make `Todo.number` or `WidgetTodoSnapshot.number` non-optional without a separate saved-vs-draft model decision.
94
97
- If a widget sync flow needs one timestamp for multiple snapshots, capture `Date()` once and pass it through to avoid midnight or quarter-boundary drift.
Copy file name to clipboardExpand all lines: AGENTS.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -79,6 +79,12 @@ Ask the user before editing when any of these are true:
79
79
- Firebase, GoogleSignIn, AuthenticationServices, UserNotifications, LinkPresentation, Network, WidgetKit, or storage implementation details would move to another layer.
80
80
- A repository protocol, service protocol, assembler, or DI ownership boundary would change.
81
81
- WidgetCore would start depending on app/domain/data implementation concepts.
82
+
- DevLogWidget would start depending on Domain, Infra, Persistence, Presentation, or App.
83
+
- DevLogWidget would use WidgetKit for anything beyond the app-side widget reload bridge.
84
+
- Widget sync ownership would move away from the preferred split: Data contracts and snapshot repositories, DevLogWidget app-side bridge/snapshot update orchestration, WidgetCore snapshot models/factories/store contracts, and WidgetExtension rendering.
85
+
- Persistence would gain widget snapshot generation, WidgetCore, WidgetKit reload, or DevLogWidget bridge ownership.
86
+
- Data or Presentation would expand platform SDK usage beyond the existing narrow cancellation-classification or notification-badge patterns.
87
+
- Infra would add any Domain dependency, source import, or SDK service contract coupling.
82
88
- A same-layer dependency would be injected outside a SwiftUI `View` file in `Application/DevLogPresentation`.
83
89
- The requested change suggests cleanup outside the current issue or PR scope.
0 commit comments