docs(phase-08): complete phase execution

This commit is contained in:
formax68 2026-05-17 16:40:36 +03:00
parent 5e98d96a0a
commit 1236c789da
2 changed files with 19 additions and 19 deletions

View file

@ -9,7 +9,7 @@ Requirements for the v1.15 Directory Compliance milestone. Closes the Obsidian c
### Directory scorecard findings
- [ ] **DIR-01**: No `console.log` / `console.info` / `console.debug` / `console.warn` / `console.error` calls remain in shipped code at the four flagged sites (`CalendarService.ts:249, 282, 324` and `SettingsTab.ts:1720`); the codebase is audited for the same pattern and any remaining sites are either removed or gated behind a developer-only debug flag that is `false` by default
- [x] **DIR-01**: No `console.log` / `console.info` / `console.debug` / `console.warn` / `console.error` calls remain in shipped code at the four flagged sites (`CalendarService.ts:249, 282, 324` and `SettingsTab.ts:1720`); the codebase is audited for the same pattern and any remaining sites are either removed or gated behind a developer-only debug flag that is `false` by default
- [ ] **DIR-02**: No `.innerHTML` or `.outerHTML` write occurs anywhere in shipped code; every site is rewritten using `createEl({ cls, text, attr })`, `createDiv({ cls })`, `setText()`, or `createElementNS` for SVG
- [ ] **DIR-03**: No `element.style.<property>` assignment occurs in shipped code; every flagged property (`border, color, cursor, display, fontSize, height, left, margin, marginTop, opacity, padding, position, textAlign, top, width`) is replaced with a CSS class addition / removal or `setCssProps({ ... })` for dynamic values
- [ ] **DIR-04**: All DOM-construction sites in `CalendarView`, `EmbeddedCalendarView`, `EmbeddedAgendaView`, `SettingsTab`, and `viewRenderers` use the Obsidian `createEl` / `createDiv` / `createSpan` helpers exclusively — no `document.createElement(...)` and no string-literal HTML
@ -17,8 +17,8 @@ Requirements for the v1.15 Directory Compliance milestone. Closes the Obsidian c
- [ ] **DIR-06**: All `document` references that should reflect the active popout use `activeDocument`; all `setTimeout` / `setInterval` calls that fire in a view context use `activeWindow.setTimeout` / `activeWindow.setInterval` (or the workspace-aware equivalent)
- [ ] **DIR-07**: No `as TFile` cast occurs in shipped code; every site that consumes a `TAbstractFile` narrows via `instanceof TFile` first
- [ ] **DIR-08**: No floating promise occurs in shipped code; every `Promise`-returning call is either `await`ed, given an explicit `.catch` handler, or marked with the `void` operator. `EmbeddedCalendarView` and `EmbeddedAgendaView` lifecycle methods (`onload`, `onunload`) match the synchronous return type required by `MarkdownRenderChild`
- [ ] **DIR-09**: No `any` type appears in shipped source code (test fixtures and `.d.ts` shims excepted); `??` operators do not appear with a constant left-hand side; no lexical declarations appear inside `case` blocks without a block scope; no unnecessary escape characters remain in regular expression literals
- [ ] **DIR-10**: ESLint reports zero `@typescript-eslint/no-unused-vars` violations across the source tree (the 21 names flagged by the scorecard — `App`, `CalendarEvent`, `CalendarNotesSettings`, `controls`, `convertTimezone`, `date`, `DateElements`, `DEFAULT_CALENDAR_URLS`, `DropdownComponent`, `e`, `error`, `isNewNote`, `MemoChronSettings`, `Notice`, `plugin`, `Property`, `renderAgendaList`, `target`, `TextAreaComponent`, `TFile`, `title` — are all either deleted or genuinely used)
- [x] **DIR-09**: No `any` type appears in shipped source code (test fixtures and `.d.ts` shims excepted); `??` operators do not appear with a constant left-hand side; no lexical declarations appear inside `case` blocks without a block scope; no unnecessary escape characters remain in regular expression literals
- [x] **DIR-10**: ESLint reports zero `@typescript-eslint/no-unused-vars` violations across the source tree (the 21 names flagged by the scorecard — `App`, `CalendarEvent`, `CalendarNotesSettings`, `controls`, `convertTimezone`, `date`, `DateElements`, `DEFAULT_CALENDAR_URLS`, `DropdownComponent`, `e`, `error`, `isNewNote`, `MemoChronSettings`, `Notice`, `plugin`, `Property`, `renderAgendaList`, `target`, `TextAreaComponent`, `TFile`, `title` — are all either deleted or genuinely used)
- [x] **DIR-11**: `manifest.json` `description` field ends with `.`, `!`, or `?`
- [x] **DIR-12**: The GitHub release workflow that publishes `manifest.json`, `main.js`, and `styles.css` attaches a GitHub artifact attestation to every release asset
@ -29,7 +29,7 @@ Requirements for the v1.15 Directory Compliance milestone. Closes the Obsidian c
### Documentation & guardrails
- [x] **DOC-01**: A working ESLint configuration (`.eslintrc.json` or `eslint.config.js`) is installed and enforces — at minimum — `no-console`, `no-inner-html`, the Obsidian community linting rules (no inline styles, no `as TFile` cast, no view-in-`registerView`, popout-window helpers), `@typescript-eslint/no-floating-promises`, `@typescript-eslint/no-explicit-any`, and `@typescript-eslint/no-unused-vars`. `npm run lint` is a script in `package.json`. CI (`.github/workflows/`) runs lint on every push and PR. A failing lint blocks the build
- [ ] **DOC-02**: `CLAUDE.md` and `.planning/codebase/CONVENTIONS.md` (new or merged into existing codebase docs) carry a "Directory Compliance" do/don't section — one short rule per scorecard finding, each with a one-line rationale and a link to the relevant Obsidian docs page — so future plans land compliant by default
- [x] **DOC-02**: `CLAUDE.md` and `.planning/codebase/CONVENTIONS.md` (new or merged into existing codebase docs) carry a "Directory Compliance" do/don't section — one short rule per scorecard finding, each with a one-line rationale and a link to the relevant Obsidian docs page — so future plans land compliant by default
## v2 Requirements
@ -94,7 +94,7 @@ Explicitly excluded for this milestone. Documented to prevent scope creep.
| Requirement | Phase | Status |
|-------------|-------|--------|
| DIR-01 | Phase 8 | Pending |
| DIR-01 | Phase 8 | Complete |
| DIR-02 | Phase 6 | Pending |
| DIR-03 | Phase 6 | Pending |
| DIR-04 | Phase 6 | Pending |
@ -102,13 +102,13 @@ Explicitly excluded for this milestone. Documented to prevent scope creep.
| DIR-06 | Phase 7 | Pending |
| DIR-07 | Phase 7 | Pending |
| DIR-08 | Phase 7 | Pending |
| DIR-09 | Phase 8 | Pending |
| DIR-10 | Phase 8 | Pending |
| DIR-09 | Phase 8 | Complete |
| DIR-10 | Phase 8 | Complete |
| DIR-11 | Phase 5 | Complete |
| DIR-12 | Phase 5 | Complete |
| BUG-07 | Phase 7 | Pending |
| DOC-01 | Phase 5 | Complete |
| DOC-02 | Phase 8 | Pending |
| DOC-02 | Phase 8 | Complete |
**Coverage:**
- v1 requirements: 15 total

View file

@ -2,15 +2,15 @@
gsd_state_version: 1.0
milestone: v1.15
milestone_name: Directory Compliance
status: executing
stopped_at: Phase 8 context gathered
last_updated: "2026-05-17T07:03:18.393Z"
status: milestone_complete
stopped_at: Milestone complete (Phase 08 was final phase)
last_updated: 2026-05-17T13:38:46.565Z
last_activity: 2026-05-16 -- Phase 08 execution started
progress:
total_phases: 8
completed_phases: 7
total_plans: 46
completed_plans: 41
completed_plans: 46
percent: 88
---
@ -21,20 +21,20 @@ progress:
See: .planning/PROJECT.md (updated 2026-05-13)
**Core value:** Show the user's calendar inside Obsidian and let them turn any event into a structured note in one click — reliably, across desktop and mobile.
**Current focus:** Phase 08 — type-hygiene-conventions
**Current focus:** Milestone complete
## Current Position
Phase: 08 (type-hygiene-conventions) — EXECUTING
Plan: 1 of 5
Status: Executing Phase 08
Last activity: 2026-05-16 -- Phase 08 execution started
Phase: 08
Plan: Not started
Status: Milestone complete
Last activity: 2026-05-17
## Performance Metrics
**Velocity:**
- Total plans completed: 35 (v1.14.0)
- Total plans completed: 40 (v1.14.0)
- Average duration: -
- Total execution time: 0 hours (v1.15)
@ -49,7 +49,7 @@ Last activity: 2026-05-16 -- Phase 08 execution started
| 05 | TBD | - | - |
| 06 | 5 | - | - |
| 07 | 7 | - | - |
| 08 | TBD | - | - |
| 08 | 5 | - | - |
**Recent Trend:**