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
* test: LoginView 기능 테스트 추가
* refactor: TCA의 Store과 매칭방지를 위해 기존의 Store -> StorePattern로 수정
* test: TCA용으로 주입부만 수정
* chore: DevLog 에이전트 검증 규칙 정리
* chore: LoginViewModel 제거
* refactor: LoginFeature 구현 및 적용
* refactor: 콤마 린트 해결
* refactor: LoginFeature Store 주입 구조 개선
* refactor: SignInUseCase에 Sendable 채택
* refactor: Sendable 채택
* refactor: UserDefaults에 대해 Sendable 래퍼 구현 및 적용
* refactor: Firebase에 대해 Sendable 래퍼 구현 및 적용
* refactor: Store에서 State 프로퍼티 래퍼 제거
Copy file name to clipboardExpand all lines: .hermes/skills/devlog-architecture-harness/references/devlog-workflow-rules.md
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,10 @@ This reference holds DevLog-specific working rules that should live with the pro
10
10
11
11
## Verification
12
12
13
+
- Follow `AGENTS.md` for the canonical lint and build verification policy.
14
+
- Run Homebrew SwiftLint (`swiftlint`) on changed Swift files.
15
+
- Lint production Swift files with the applicable source `.swiftlint.yml` config.
16
+
- Lint test Swift files with `.swiftlint-tests.yml` or the module `Tests/.swiftlint.yml` that inherits from it. Do not use the root production config for tests.
13
17
- Prefer Xcode Local MCP for iOS project code changes.
14
18
- If Xcode Local MCP is unavailable or fails because of session transport, state that explicitly before using a fallback.
15
19
- This repository is workspace-based. Prefer workspace/scheme context over standalone project builds when dependencies cross module projects.
@@ -61,9 +65,9 @@ This reference holds DevLog-specific working rules that should live with the pro
61
65
- For example, keep the app-facing Domain query separate from an Infra-facing Data query when that avoids Domain coupling in service protocols.
62
66
- Firebase-specific error detection belongs in Infra; Data should handle domain-level errors after mapping.
Copy file name to clipboardExpand all lines: AGENTS.md
+8-13Lines changed: 8 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,6 @@ These instructions apply only to the repository root.
18
18
19
19
## Naming and Swift style
20
20
21
-
- Set variables named after a type using the type's full name in camel case.
22
21
- In Swift, do not write explicit type annotations unless required.
23
22
- Use `opfic` in new Swift file headers.
24
23
- Prefer `<` and `<=` over `>` and `>=` when writing comparisons, if the condition can be expressed clearly that way.
@@ -37,7 +36,7 @@ Treat this repository as a Tuist-generated, workspace-based modular iOS app. The
37
36
4. Classify the change as mechanical, architectural, or ambiguous.
38
37
5. For ambiguous architecture changes, stop and ask the user before editing.
39
38
6. Keep the diff limited to the requested architecture scope.
40
-
7. After Swift/iOS code changes, verify with Xcode Local MCP.
39
+
7. After Swift/iOS code changes, follow the Verification section.
41
40
8. Report the changed files, architecture decision, and verification result.
42
41
43
42
### Current layer map
@@ -53,10 +52,10 @@ Treat this repository as a Tuist-generated, workspace-based modular iOS app. The
53
52
-`Widget/DevLogWidgetExtension`: WidgetKit UI, widget providers, entries, timelines, and extension resources. It should consume WidgetCore outputs rather than app/domain services directly.
54
53
-`Firebase/functions`: TypeScript Cloud Functions. Deploy updated functions one by one separately.
55
54
56
-
### Store flow
55
+
### StorePattern flow
57
56
58
-
- Preserve the existing Presentation `Store` pattern.
59
-
-`Store` is `@MainActor` and uses `State`, `Action`, `SideEffect`, and the `send -> reduce -> run` flow.
57
+
- Preserve the existing Presentation `StorePattern`.
58
+
-`StorePattern` is `@MainActor` and uses `State`, `Action`, `SideEffect`, and the `send -> reduce -> run` flow.
60
59
- Reducers should compute state and return side effects.
61
60
- I/O belongs in `run` or injected services, not in reducer state computation.
62
61
- Ask before changing reducer, side-effect, or ViewModel responsibility boundaries.
@@ -86,7 +85,10 @@ These may proceed after inspection when they do not change architecture meaning:
86
85
87
86
## Verification
88
87
89
-
- If iOS project code changes, test build with Xcode Local MCP.
88
+
- If Swift files change, run Homebrew SwiftLint (`swiftlint`) on the changed Swift files.
89
+
- For production Swift files, use the applicable source `.swiftlint.yml` config.
90
+
- For test Swift files, use `.swiftlint-tests.yml` or the module `Tests/.swiftlint.yml` that inherits from it. Do not lint tests with the root production config.
91
+
- If iOS project code changes, verify with Xcode Local MCP when it is available.
90
92
- If Xcode Local MCP is unavailable, state that explicitly before using a fallback.
91
93
- Do not claim architecture work is complete without checking the diff scope.
92
94
- Do not spend time on unrelated generated project or lockfile churn. Keep generated workspace/project and `Package.resolved` changes out of source control unless they are part of an explicitly approved dependency-lock policy.
@@ -98,10 +100,3 @@ These may proceed after inspection when they do not change architecture meaning:
98
100
- Treat `AGENTS.md` and `.hermes/skills/devlog-architecture-harness` as the canonical DevLog AI working rules.
99
101
- If global memory conflicts with this repository, follow this repository.
100
102
- For PR, commit, Xcode project, CI, widget, Store, localization, or release workflow details, read `.hermes/skills/devlog-architecture-harness/references/devlog-workflow-rules.md`.
101
-
102
-
## Sub-agent use
103
-
104
-
- Consider sub-agent use on every non-trivial task.
105
-
- Use sub-agents only for independent research, verification, or disjoint implementation work.
106
-
- Do not use sub-agents for sequential steps, overlapping file edits, or tightly coupled refactors.
107
-
- The main agent remains responsible for planning, integration, final verification, and user communication.
0 commit comments