Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# 0011 — Foundation adoption + process discipline (post-launch sweep)

> **Last validated:** 2026-05-04 by @zlupa005. **Next review:** 2026-08-02.
> **Status:** Proposed (Phase 1 freeze-compatible — старт 2026-05-05; Phases 2–4 заплановані пост-0010-launch ≥ 2026-06-01)
> **Last validated:** 2026-05-04 by @Skords-01. **Next review:** 2026-08-02.
> **Status:** Phase 1 ~70% done (1.1/1.2/1.3 merged; 1.4 pending). Phase 2 in flight: 2.2 merged (#1696); 2.4 (#1703) + 2.5 (#1709) + 2.6 (#1713) + 2.7 (#1714) opened 2026-05-04 (DataState consumer adoption — finyk + fizruk + nutrition + routine; 2.8 HubChat/coach/digest залишається).
Comment on lines +3 to +4
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Status field must use a lifecycle badge per coding guidelines.

Line 4 contains detailed progress prose instead of the required status badge. As per coding guidelines, docs/**/*.md files must "declare status (Active, Scaffolded, Deprecated, Archived) in a status badge under the freshness marker."

The detailed progress information is valuable but should be moved to a separate field or the document body. The Status field should use one of the four allowed lifecycle values.

📋 Proposed fix to comply with guidelines
 > **Last validated:** 2026-05-04 by `@Skords-01`. **Next review:** 2026-08-02.
-> **Status:** Phase 1 ~70% done (1.1/1.2/1.3 merged; 1.4 pending). Phase 2 in flight: 2.2 merged (`#1696`); 2.4 (`#1703`) + 2.5 (`#1709`) + 2.6 (`#1713`) + 2.7 (`#1714`) opened 2026-05-04 (DataState consumer adoption — finyk + fizruk + nutrition + routine; 2.8 HubChat/coach/digest залишається).
+> **Status:** Active
+> **Progress:** Phase 1 ~70% done (1.1/1.2/1.3 merged; 1.4 pending). Phase 2 in flight: 2.2 merged (`#1696`); 2.4 (`#1703`) + 2.5 (`#1709`) + 2.6 (`#1713`) + 2.7 (`#1714`) opened 2026-05-04 (DataState consumer adoption — finyk + fizruk + nutrition + routine; 2.8 HubChat/coach/digest залишається).

As per coding guidelines, the status badge pattern enables automation and maintains consistency across documentation files.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/initiatives/0011-foundation-adoption-and-process-discipline.md` around
lines 3 - 4, Replace the prose on the "Status:" field (the line beginning with
"Status:") with a lifecycle badge using one of the allowed values (Active,
Scaffolded, Deprecated, Archived) per the docs conventions (e.g., "Status:
Active" as the badge), and move the detailed progress prose currently on that
line into a new "Progress" or "Notes" section in the document body so the
detailed update remains but the Status field is machine-readable.

> **Priority:** P1 (subordinate to 0010-revenue-first-launch scope-freeze)
> **Owner:** `@Skords-01`
> **ETA:** 7 тижнів (Phase 1 — паралельно з 0010 freeze; Phases 2–4 — після 0010 launch)
Expand Down Expand Up @@ -126,13 +126,15 @@

Цільові 15 файлів — top-of-funnel high-traffic екрани. Розбиваємо по доменах:

| PR | Назва | Файли (приклад) | ETA |
| --- | -------------------------------------------------------------- | ---------------------------------------------------- | ------ |
| 2.4 | `refactor(web): adopt <DataState> in finyk Mono panels` | MonoTransactionsPanel, BudgetPanel, MonoAccountsList | +3 дні |
| 2.5 | `refactor(web): adopt <DataState> in fizruk panels` | WorkoutHistoryPanel, BiometricsPanel | +3 дні |
| 2.6 | `refactor(web): adopt <DataState> in nutrition panels` | NutritionMealsPanel, BarcodeScannerPanel | +3 дні |
| 2.7 | `refactor(web): adopt <DataState> in routine panels` | RoutineList, StreakCalendarPanel | +3 дні |
| 2.8 | `refactor(web): adopt <DataState> in HubChat / coach / digest` | HubChatHistoryPanel, CoachInsightsPanel, DigestPanel | +3 дні |
| PR | Назва | Файли (фактичні споживачі) | Status |
| --- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| 2.4 | `refactor(web): adopt <DataState> in finyk Mono panels` | `Overview.tsx`, `budgets/Budgets.tsx`, `transactions/TransactionList.tsx` (+ `TransactionList.test.tsx`) | **Opened 2026-05-04 — [#1703](https://github.com/Skords-01/Sergeant/pull/1703)** |
| 2.5 | `refactor(web): adopt <DataState> in fizruk Workouts journal` | `pages/Workouts.tsx` (єдина Skeleton-based loading site у fizruk модулі) | **Opened 2026-05-04 — [#1709](https://github.com/Skords-01/Sergeant/pull/1709)** |
| 2.6 | `refactor(web): adopt <DataState> in nutrition panels` | `NutritionApp.tsx` Menu "plan" tab (єдиний Skeleton-based loading site у nutrition модулі) | **Opened 2026-05-04 — [#1713](https://github.com/Skords-01/Sergeant/pull/1713)** |
| 2.7 | `refactor(web): adopt <DataState> in routine panels` | `RoutineTimeline.tsx` calendar branch (єдиний Skeleton-based loading site у routine модулі) | **Opened 2026-05-04 — [#1714](https://github.com/Skords-01/Sergeant/pull/1714)** |
| 2.8 | `refactor(web): adopt <DataState> in HubChat / coach / digest` | HubChatHistoryPanel, CoachInsightsPanel, DigestPanel | +3 дні |

> **Note (2026-05-04):** Файли в колонці «Файли» для 2.4–2.7 — actual landed targets, а не initial guess. Початкові приклади (`MonoTransactionsPanel`, `BudgetPanel`, `MonoAccountsList`, `WorkoutHistoryPanel`, `BiometricsPanel`, `NutritionMealsPanel`, `BarcodeScannerPanel`, `RoutineList`, `StreakCalendarPanel`) виявилися застарілими — фізичних компонентів з такими іменами в репі немає. Замість того ми мігрували реальні Skeleton-based loading sites у кожному модулі: усі три finyk-сторінки з `if (loadingTx && realTx.length === 0)` патерном (PR 2.4); `view === "log" && !workoutsLoaded` guard у `Workouts.tsx` (PR 2.5 — у fizruk саме одне таке місце, інші pages працюють синхронно з local-first MMKV-web даними); день-плановий `dayPlanBusy` skeleton у `NutritionApp.tsx` Menu "plan" branch (PR 2.6 — у nutrition тільки `NutritionApp.tsx` імпортує `@shared/components/ui/Skeleton`, food-search dropdown — inline list-state, не panel-level); calendar `isHabitPending && mainTab === "calendar"` skeleton у `RoutineTimeline.tsx` (PR 2.7 — єдиний Skeleton-importer у routine модулі).

> **Кожен PR — 1 child-Devin-сесія максимум.** Скоуп = 2–4 файли, ~150–300 LOC change. Поведінка не змінюється — той самий empty-state, той самий error-state, той самий retry. Лише уніфікований wrapper.

Expand Down
Loading