Дмитрий
0da8dbf042
feat(graph): when+limits content for memory files (15) — all 73 nodes done
2026-05-14 09:20:54 +03:00
Дмитрий
a19bee28be
feat(graph): when+limits content for lefthook jobs (10)
2026-05-14 09:19:38 +03:00
Дмитрий
0634426c30
feat(graph): when+limits content for MCP servers (7)
2026-05-14 09:18:45 +03:00
Дмитрий
ee958f884a
feat(graph): when+limits content for hooks (5) + agents (11)
2026-05-14 09:17:37 +03:00
Дмитрий
2b38e7be32
feat(graph): when+limits content for skills (14 SP + 2 проектных)
2026-05-14 09:16:02 +03:00
Дмитрий
413803e569
feat(graph): when+limits content for rules + plugins (9 nodes)
2026-05-14 09:14:10 +03:00
Дмитрий
1a7cd90c32
feat(graph): nd() helper supports when+limits fields; showLegend renders them
2026-05-14 09:10:57 +03:00
Дмитрий
40b437ccb7
feat(graph): legend panel — add «Когда используется» and «Ограничения» sections
2026-05-14 09:10:15 +03:00
Дмитрий
aa258e1ad0
fix(graph): remove edge labels from canvas, move to hover tooltips
2026-05-14 09:09:42 +03:00
Дмитрий
5c2556b73f
fix(graph): canvas rendering artifacts — explicit canvas bg + remove hideEdgesOnDrag
2026-05-14 09:09:01 +03:00
Дмитрий
e3974482a9
docs(plan): automation-graph refactor — 10 atomic tasks
...
Implementation plan для spec 2026-05-14-automation-graph-refactor-design.md.
10 tasks, каждый = 1 коммит, в порядке:
1. canvas rendering fix
2. edge labels → tooltips
3. HTML legend sections (когда + ограничения)
4. nd() helper signature + render
5a-5f. when+limits content для 73 узлов (rules+plugins / skills / hooks+agents / MCP / lefthook / memory)
6. radial-sector positioning (ring + sectorAngle на 73 NODES + pos() helper)
7. physics off + button handlers + smooth continuous
8. final smoke + data integrity check
Self-review: spec coverage ✅ , no placeholders ✅ , type consistency ✅ ,
backward-compat nd() handler в Task 4 (for intermediate state).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 09:05:21 +03:00
Дмитрий
b747880ddc
docs(spec): automation-graph refactor — 4 fixes (фон / подписи / радиальная иерархия / when+limits)
...
Дизайн рефакторинга docs/automation-graph.html после визуальной проверки
коммита 7ee78a9 :
- canvas background на самом canvas + удаление hideEdgesOnDrag (artifacts)
- удаление labels с edges, переход на title-tooltip + legend section
- radial-sector layout: 6 колец × 4 функциональных сектора, physics off
- 2 новые секции легенды: «Когда используется» + «Ограничения»
cspell: +mgmt (валидный идентификатор узла claude_md_mgmt)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 08:55:32 +03:00
Дмитрий
ae20033652
docs(claude.md): v1.92 → v1.93 — sync schema header drift 62→63 (Audit #3 P2)
...
Tail closure of Audit #3 P2 «schema.sql header drift» finding. Schema
source-of-truth was already updated in commit e746b3c (db/schema.sql:4
header «62 базовые таблицы» → «63 (61 regular + 2 partitioned parents:
deals + supplier_lead_costs)»). This commit syncs three CLAUDE.md
references to match.
Touch points:
- Header version 1.92 → 1.93 + description of session
- §0 «Источник истины» row «Схема БД» — 62 → 63 baseline
- §2 «Стек проекта» БД row — 62 → 63 baseline
- §8 self-review triggers row `db/schema.sql` — 62 → 63 baseline
- §9 history — new v1.93 entry summarising 5-commit sprint
(8ba9c55..c524227), closure tally (1 P1 + 7 P2 + 4 P3), and regression
check (Pest 742/739/3sk/0, Vitest 91f/736/3sk/0, gitleaks 0/442,
lychee 325/0).
Via `/claude-md-management:claude-md-improver` per CLAUDE.md §5 п.10
(only sanctioned channel for direct CLAUDE.md edits).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-14 08:47:42 +03:00
Дмитрий
c5242271d7
chore(p3): close P3 tooling and structural mini-fixes
...
Closes Audit #3 P3 batch.
Changes:
1. **knip.config.ts cleanup** — remove 4 stale config hints flagged in
Audit #3 Phase 1B (`ignore: tests/**` redundant since `project` is
`resources/js/**`; `ignoreDependencies` for vitest/@vue/test-utils/jsdom
redundant since knip auto-detects test frameworks). Add `histoire.config.ts`
+ `resources/js/histoire.setup.ts` to entry — closes 2 documented FPs
(histoire.setup.ts + @histoire/plugin-vue unused-flag). Verified:
`npx knip` exits 0 clean.
2. **Admin table actions column header label** — change `title: ''` →
`title: 'Действия'` in:
- TenantsTable.vue (actions column, /admin/tenants)
- AdminSupplierPricesView.vue (actions column, /admin/supplier-prices)
Closes axe-core `empty-table-header` violation seen in Audit #3 Phase 7
on /admin/tenants. Header is now visible in UI (better UX than sr-only
sleight-of-hand).
3. **npm overrides for lodash** in `package.json` — pin `pa11y-ci > lodash`
to ^4.17.21. Verified: `npm ls lodash` resolves to lodash@4.17.23 (latest
4.x; CVE-2021-23337 + GHSA-f23m patched in <4.17.21, our version is above
that). npm audit may still surface advisory ranges as informational.
4. **Decision doc for pgFormatter (Q.HARD.002)** — explicit FIX-DEFER with
3-hypothesis comparison (Strawberry Perl install vs sqlfluff replacement
vs Docker pg_format vs drop SQL formatting). Decision: drop automated
SQL formatting until Б-1 closure; squawk (linter) covers correctness.
Addendum: axe-core .v-overlay-container region landmark — no permanent
axe-core test setup exists, so no whitelist needed at this point.
Verification:
- knip: 0 issues
- vue-tsc: 0 errors
- ESLint: 0 errors
- Vitest: 91 files / 736 passed / 3 skipped (no regressions)
- Vite build: 2.03s
Plan: docs/superpowers/plans/2026-05-14-audit3-deferred-fixes.md Task 4.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-14 08:38:51 +03:00
Дмитрий
c5c0e76950
test(coverage): close F-COV-01/02/03 — ReminderDialog + AdminLayout + api/admin
...
Closes Audit #2+#3 P2 carryforward triplet (low-coverage files at risk
of silent regression).
Coverage results (Vitest --coverage --coverage.include per-file):
| File | Stmts before | Stmts now | Δ |
|---|---|---|---|
| ReminderDialog.vue | 0% | 95.38% | +95 pp |
| AdminLayout.vue | 9.09% | 95.45% | +86 pp |
| api/admin.ts | 11.53% | 100% | +88 pp |
Branches/Funcs deltas (subagent reports):
- ReminderDialog: Branch 0→97.56%, Funcs 0→85.71%, Lines 0→96.61%
- AdminLayout: Branch 0→90%, Funcs 0→90%, Lines 9.09→94.73%
- api/admin: Branch 0→100%, Funcs 27.27→100%, Lines 11.53→100%
Approach: TDD via @vue/test-utils + Vuetify global plugin + vi.mock for
store/api. Three parallel subagents (general-purpose), each focused on
single target — no production code changes, only test infrastructure.
Coverage areas:
- ReminderDialog (19 specs): rendering, watch(dialogOpen) populate/reset,
submit create-mode happy + 3 errors, submit edit-mode happy + 1 error,
cancel, common validation paths
- AdminLayout (16 specs): brand block, 5 nav items, count badges (142/3),
breadcrumb per route (5 cases + fallback), userInitials computed (4
cases incl. fallback), userShortName (4 cases), handleLogout call-order,
active state, aria-label
- api/admin (18 specs): 11 exported functions × happy-path; 2 encodeURI
edge cases; 4 ensureCsrfCookie call-order verifications via
invocationCallOrder; 2 error-propagation tests
Verification (full sweep after merge):
- Vitest: 91 files / 736 passed / 3 skipped / 0 failed (+3 files, +53 specs
from Audit #3 baseline 88/683/3sk)
- Pest --parallel: 742/739/3sk/0 (identical to baseline, 0 regressions)
- Vite build: 2.03s
- vue-tsc: 0 errors
- ESLint: 0 errors
Plan: docs/superpowers/plans/2026-05-14-audit3-deferred-fixes.md Task 3.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-14 08:37:26 +03:00
Дмитрий
e746b3c9a4
chore(cleanup): dead code removal + DemoSeeder env-conditional + schema header drift
...
Closes Audit #3 P2 batch (knip dead exports/components, DemoSeeder
hygiene, schema header drift).
- Remove app/resources/js/views/admin/AdminPlaceholderView.vue
(unreferenced placeholder view — confirmed via repo-wide grep, only
doc references remain)
- npm uninstall concurrently (no script invoked it; --legacy-peer-deps
for Histoire 1.0-beta.1 peerDep quirk)
- 12 unused exports → internal types (remove `export` keyword):
- api/admin.ts: AdminTenantsStats, ApiTenantMetrics,
ApiAdminBillingSummary, ApiAdminIncidentsSummary
- api/notifications.ts: NotificationEvent
- api/reports.ts: ApiReportType, ApiReportFormat, ApiReportParameters,
ReportCounts, ReportQuota
- composables/mockBilling.ts: TxType
- composables/useStatusPill.ts: StatusPillSlug
All 12 are used INSIDE their own file (response shapes), just not
exported externally — converting to internal types satisfies knip
without losing type-checking inside the file.
- DatabaseSeeder::run() — DemoSeeder runs only in local+testing envs
(`migrate:fresh --seed` in dev now produces demo tenant + admin@demo.local
+ 3 projects + ~14 demo deals; prod environments skip)
- db/schema.sql header line 4: «62 базовые таблицы» → «63 базовые
таблицы (61 regular + 2 partitioned parents: deals + supplier_lead_costs)»
Closes schema header drift finding from Phase 3.
Verification:
- vue-tsc --noEmit: 0 errors
- ESLint on touched files: 0 errors
- Pest --parallel: 742/739/3sk/0 failed (identical to baseline, no regressions)
- 2243 assertions / 34.46s
Plan: docs/superpowers/plans/2026-05-14-audit3-deferred-fixes.md Task 2.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-14 08:28:44 +03:00
Дмитрий
0c36b7a28d
feat(a11y): migrate Pa11y scope from handoff prototypes to live Vue app
...
Closes Audit #3 sole P1 (F-A11Y-PA11Y-SCOPE-01).
Pa11y was scanning handoff HTML prototypes from liderra_v8_handoff/concepts/
(3 URLs, ~10 contrast violations), NOT the live Vue app. Audit #2 baseline
"0 errors" was inaccurate — real portal was never covered.
Changes:
- pa11y.config.json: now targets http://localhost:8000/ <route> for 7 guest
pages (login, register, forgot, 2fa, recovery, 403, 500)
- pa11y-handoff.config.json: preserves historical handoff baseline as
opt-in (`npm run a11y:handoff`)
- package.json: new `a11y:handoff` script; `a11y` repointed to live target
- RecoveryCodesView.vue: scoped CSS override fixes Vuetify warning-tonal
alert content contrast (2.03:1 → ≥4.5:1, color #0a0700 per Pa11y rec)
- .github/workflows/a11y.yml: new CI job with dev-server lifecycle
(php artisan serve + curl wait-on + Pa11y + screenshot artifact upload)
- docs/audit-baseline-pa11y.md: first live baseline document with per-URL
status, ignore selectors rationale, re-run instructions
Local verification:
- npm run a11y: 7/7 URLs passed (0 violations)
- vue-tsc: 0 errors
- ESLint: 0 errors
- Vitest: 88 files / 683 passed / 3 skipped / 0 failed (no regressions)
Plan: docs/superpowers/plans/2026-05-14-audit3-deferred-fixes.md Task 1.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-14 08:25:14 +03:00
Дмитрий
8ba9c55724
docs(plan): Audit #3 deferred fixes sprint plan
...
25 deferred findings (1 P1 + 11 P2 + 14 P3) → 4 task batches:
1. P1 Pa11y scope migration to live Vue app
2. P2 dead code + dev hygiene (knip findings + DemoSeeder + schema header)
3. P2 coverage debt (ReminderDialog + AdminLayout + api/admin via TDD)
4. P3 tooling + structural mini-fixes
Plan: docs/superpowers/plans/2026-05-14-audit3-deferred-fixes.md
Source audit: docs/superpowers/audits/2026-05-14-portal-full-audit-report.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-14 08:24:49 +03:00
Дмитрий
f9d2452386
docs(audit): finalize portal full audit #3 — report (2026-05-14)
2026-05-14 07:52:27 +03:00
Дмитрий
301334c288
docs(audit): Phase 14 final regression (audit #3 )
2026-05-14 07:46:56 +03:00
Дмитрий
abb8a5135e
docs(audit): Phase 13 categorization + fix decisions (audit #3 )
...
Final audit rollup: 0 P0 / 1 P1 / 11 P2 / 14 P3 (26 total).
Pa11y P1 decision: FIX-DEFER with concrete migration plan
(6 acceptance criteria + 60-120 min estimate). Decision driven by
3-hypothesis analysis: (1) config-only swap surfaces new live-app
violations (color-contrast on DevIndexBadge, region landmarks),
(2) additive both-kept keeps handoff failures blocking CI,
(3) deferred migration with proper sprint task is cleanest path.
Both decision-matrix triggers from brief apply: risk of new
failures without follow-up plan + new CI infra requirement
(live dev server lifecycle).
Carryforward audit: 9 items still open from Audit #2 (all
P2/P3, no regressions). 11 Audit #2 items verified closed in
this audit (bf84568 aria fix, CTO-19 Lucide, Q.DEFER.001-004,
quirks #62/#72/#80, cron, RUNBOOK.md).
FIX-NOW this session: 0 commits (Pa11y deferred per matrix).
FIX-NOW earlier in audit: 1 commit (823da29 cspell inline).
FIX-DEFER documented: 25.
BLOCKED: 0.
Verdict: GREEN — 0 P0, sole P1 is methodology audit-fidelity gap
(Pa11y declared but not exercised against live code); axe-core
via Playwright in Phase 7 provides actual a11y coverage with 0
real prod issues against DevIndexBadge temp feature.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-14 07:38:25 +03:00
Дмитрий
4b4705295c
docs(audit): Phase 10-12 pre-prod/TODO/untracked findings (audit #3 )
2026-05-14 07:34:35 +03:00
Дмитрий
9d27783729
docs: commit untracked plan files + parse-bundle-analyze.mjs (audit #3 )
2026-05-14 07:29:47 +03:00
Дмитрий
51664a0aa4
docs(audit): Phase 9 bundle analyzer delta (audit #3 )
2026-05-14 07:27:36 +03:00
Дмитрий
ad89473331
docs(audit): Phase 8 coverage targeted (audit #3 )
2026-05-14 07:24:12 +03:00
Дмитрий
8fa545e113
docs(audit): Phase 7 a11y targeted Pa11y+axe-core (audit #3 )
2026-05-14 07:20:49 +03:00
Дмитрий
8ec7a8c116
docs(audit): Phase 6 cross-doc integrity findings (audit #3 )
2026-05-14 07:14:59 +03:00
Дмитрий
1f43beacc3
docs(audit): Phase 5 UI smoke 22-view Playwright sweep (audit #3 )
2026-05-14 07:12:48 +03:00
Дмитрий
9e2914a72d
docs(audit): Phase 4 security findings (audit #3 )
...
CI workflows: 3 (sast/dependency-check/trivy), unchanged from Audit #2 .
gitleaks delta (9e175a1..HEAD): 0 leaks / 18 commits.
gitleaks full history: 0 leaks / 426 commits.
gitleaks no-git app/: 1847 matches all in gitignored vendor/ +
phpstan-cache; P2: GITHUB_TOKEN env var captured in gitignored
nette DI container cache (not in git history, mitigations in place);
P3: generic-api-key FPs in phpstan.phar / cache suggest gitleaks.toml.
cspell-words.txt +3: nette, phar, serialises.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 06:29:31 +03:00
Дмитрий
93a3c667e0
docs(audit): Phase 3 schema integrity findings (audit #3 )
...
Query results A-G: root_tables=63 (61r+2p), partitions=12,
indexes=289, RLS=39, functions=5 (correct names), triggers=13
logical/19 total, orphan_FK=0. One P2 finding: schema.sql v8.20
header "62 базовые таблицы" drift → actual 63 (deals +
supplier_lead_costs both partitioned parents). All invariants
RLS/functions/orphan-FK pass.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 06:23:25 +03:00
Дмитрий
af97885266
docs(audit): Phase 2 test suite findings (audit #3 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 06:19:50 +03:00
Дмитрий
4a5ecb085a
docs(audit): Phase 1D SQL static analysis + Phase 1 итог (audit #3 )
...
squawk v2.51.0 — 0 issues (bin\squawk.exe db/schema.sql, exit 0).
pgFormatter — N/A (perl not in PATH, known Q.HARD.002 carryforward).
Phase 1 combined итог: P0=0 P1=0 P2=4 P3=2.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 06:13:04 +03:00
Дмитрий
823da293de
docs(audit): Phase 1C docs static analysis findings + cspell words (audit #3 )
...
markdownlint=0, cspell=0 (+3 words: shapkas/SUT/SUT's), lychee=318 OK/0 errors.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 06:09:29 +03:00
Дмитрий
362af8c981
docs(audit): Phase 1B frontend static analysis findings (audit #3 )
2026-05-14 06:06:54 +03:00
Дмитрий
85d79499e9
docs(audit): Phase 0 addendum + Phase 1A backend static analysis (audit #3 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 06:02:45 +03:00
Дмитрий
07a483333c
docs(audit): Phase 0 pre-flight skeletons (audit #3 )
2026-05-14 05:59:55 +03:00
Дмитрий
08605cf640
fix(tests): Bus::fake partial + session mock — close quirk #72
...
CsvReconcileJobTest used Bus::fake() (all jobs), silencing dispatch_sync of
RefreshSupplierSessionJob when a parallel afterEach wiped supplier:session.
Now: Bus::fake([RouteSupplierLeadJob::class]) + anonymous mock that re-puts
the session in handle(), making race-window recovery deterministic.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 05:35:06 +03:00
Дмитрий
9a45346205
fix(tests): RefreshDatabase on LookupsTest + ProjectExtensionsTest — close quirk #62
...
DatabaseTransactions did not prevent cross-session data accumulation in
liderra_testing; count assertions drifted (1465 managers, 519 projects).
RefreshDatabase runs migrate:fresh once per session (RefreshDatabaseState::migrated)
so stale data is wiped at start of each composer test run.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 05:29:34 +03:00
Дмитрий
7ee78a9ad0
feat(docs): interactive automation graph — 73 nodes, 6 conflicts, Solarized dark vis.js
...
Single-file HTML visualization of Лидерра CRM automation system.
vis.js 9.1.9 force-directed graph: 9 color groups (rules/plugins/skills/hooks/
agents/MCP/lefthook/memory), 6 red dashed conflict edges, click-to-legend panel
with 5 sections (что делает / кому подчиняется / кто / одновременно / конфликты),
search + freeze/unfreeze/reset/clear toolbar. Solarized dark theme.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 17:05:59 +03:00
Дмитрий
9b21bbc1fd
docs(spec): automation graph design spec — vis.js Solarized dark, 72 nodes, 6 conflicts
2026-05-13 16:43:13 +03:00
Дмитрий
7007379b40
docs(plans): add test-quality-preprod sprint plan + fix lychee/cspell
...
Sprint plan B.1/B.2/B.3/A.1/A.2/A.3. Fixes: broken ../../../memory/
link → plain text; cspell-words.txt +аутит (Russian IT verb).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 13:41:59 +03:00
Дмитрий
bf84568837
fix(a11y): add aria-label to VTooltip on /admin/tenants impersonate btn
...
Audit #2 Phase 10.2 P2: axe-core 4.10 reported aria-tooltip-name
violation — <div role="tooltip"> had no accessible name. Adding
aria-label to <v-tooltip> passes it through to the rendered overlay.
Verified: axe-core on /admin/tenants — 0 tooltip violations post-fix.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 13:38:21 +03:00
Дмитрий
b241c79773
docs: add RUNBOOK.md — production deployment runbook
...
Audit #2 Phase 14 P2 fix. Covers: system requirements, DB setup
(ICU collation + roles + migrations + grants), partition bootstrap,
frontend build, Supervisor queue config, cron scheduler, Nginx,
health checks, rolling update sequence, rollback, dev seed,
common issues. cspell-words.txt +mbstring +pcntl (PHP ext names).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 13:35:19 +03:00
Дмитрий
9530d17981
fix(schedule): register partitions:create-months as daily cron
...
Audit #2 Phase 14 P2: partition tables were not auto-created.
Without this entry the scheduler never called partitions:create-months,
causing partition exhaustion on the first day of each new month.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 13:32:56 +03:00
Дмитрий
219f262655
fix(test): ProjectFactory unique name + test:parallel composer alias
...
fake()->unique()->words(3,true) fixes quirk #77 deterministic collision
on projects(tenant_id,name) UNIQUE in --parallel runs.
test:parallel alias = pest --parallel --recreate-databases (quirk #62/#73).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 13:32:00 +03:00
Дмитрий
e280edd431
style(frontend): apply prettier --write — fix formatting drift
...
4 files reformatted (import list expansion, line-length wrapping).
Vitest 88/683+3sk green.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 13:30:51 +03:00
Дмитрий
58986a2d74
test(vitest): add testTimeout: 10000 — fix quirk #80 router.spec.ts coverage timeout
...
v8 coverage instrumentation adds ~10x overhead to router-guard async tests,
pushing past the 5000ms default. Audit #2 Phase 13 finding.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 12:48:40 +03:00
Дмитрий
9e175a1fd6
docs(audit): Phase 10.2 axe-core + Q.DEFER.001+002 closure — audit #2 follow-up
...
axe-core 4.10 на 16 auth views: P2=1 (aria-tooltip-name VTooltip /admin/tenants),
P3=4 кат. (region sitewide, DevIndexBadge temp, empty-table-header 2 views,
page-has-heading-one 1 view). P0/P1=0.
Q.DEFER.001 (Phase 5 24-view smoke) + Q.DEFER.002 (axe-core 16 auth) оба CLOSED.
blocked.md + report.md обновлены. Verdict 🟡 YELLOW, 0 открытых Q-items.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-13 11:52:59 +03:00
Дмитрий
ec0dd00a93
docs(audit): Phase 5 full 24-view smoke — Q.DEFER.001 closure (audit #2 follow-up)
...
Playwright MCP iteration по 24 URL (auth + main + admin + 404).
Login/logout flow verified. CTO-19 Lucide icons confirmed holding.
25 screenshots в audit-screens/2026-05-13/. 0 реальных дефектов.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-13 11:41:11 +03:00
Дмитрий
43f9c257bc
docs(audit): finalize portal full audit #2 — Phase 7-9 + report (2026-05-13)
...
Phase 7 — Categorize: severity rollup 37 findings (P0=0 / P1=5 / P2=14 / P3=18).
vs 12.05 baseline (P0=1 / P1=47 / P2=339 / P3=6) — massive improvement.
Phase 8 — Fix loop SKIPPED per hybrid: 0 P0 + 5 P1 все FIX-DEFER known quirks
(квирки 62/72 + router coverage timeout), не FIX-NOW eligible. 0 atomic
fix-commits в этой session.
Phase 9 — Final regression: 0 regressions vs Phase 2 baseline (742/738/1/3 Pest,
88/683/3 Vitest, 35/63 Histoire, 2.15s Vite). Все baseline metrics preserved.
Report.md filled: TL;DR + Phase summaries + метрики до/после + verdict 🟡 YELLOW
+ commits + 3 new quirks (78 branch contention, 79 CWD double-cd, 80 vitest
coverage v8 timeout).
Q-items: Q.DEFER.001 (Phase 5 full smoke) + Q.DEFER.002 (Phase 10 axe auth) deferred.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-13 11:13:44 +03:00