{"type":"meta","slug":"2026-06-30-marathon-dynwf","codex_impl_model":"gpt-5.4","codex_impl_effort":"low","codex_impl_timeout":3480,"codex_review_model":"gpt-5.4","codex_review_effort":"low","base_branch":"master","gate0_cmd":"pnpm install --frozen-lockfile && pnpm --filter zync-api run typecheck"}
{"type":"task","id":"foundation-monorepo","wave":0,"desc":"Audit spec docs/specs/2026-05-30-foundation-monorepo.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-foundation-monorepo.md"],"depends_on":[],"status":"COMMITTED"}
{"type":"task","id":"foundation-design-system","wave":1,"desc":"Audit spec docs/specs/2026-05-30-foundation-design-system.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-foundation-design-system.md"],"depends_on":["foundation-monorepo"],"status":"COMMITTED"}
{"type":"task","id":"auth-2fa","wave":2,"desc":"Audit spec docs/specs/2026-05-31-auth-2fa.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-auth-2fa.md"],"depends_on":[],"status":"COMMITTED"}
{"type":"task","id":"customers-module","wave":2,"desc":"Audit spec docs/specs/2026-05-30-customers-module.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-customers-module.md"],"depends_on":["foundation-design-system"],"status":"COMMITTED"}
{"type":"task","id":"dark-light-theme","wave":2,"desc":"Audit spec docs/specs/2026-05-31-dark-light-theme.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-dark-light-theme.md"],"depends_on":["foundation-design-system"],"status":"COMMITTED"}
{"type":"task","id":"error-empty-states","wave":2,"desc":"Audit spec docs/specs/2026-05-31-error-empty-states.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-error-empty-states.md"],"depends_on":["foundation-design-system"],"status":"COMMITTED"}
{"type":"task","id":"module-management","wave":2,"desc":"Audit spec docs/specs/2026-05-31-module-management.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-module-management.md"],"depends_on":[],"status":"COMMITTED"}
{"type":"task","id":"system-ai","wave":2,"desc":"Audit spec docs/specs/2026-05-31-system-ai.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-system-ai.md"],"depends_on":["foundation-monorepo"],"status":"COMMITTED"}
{"type":"task","id":"system-communications-notifications","wave":2,"desc":"Audit spec docs/specs/2026-05-30-system-communications-notifications.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-system-communications-notifications.md"],"depends_on":["foundation-monorepo"],"status":"COMMITTED"}
{"type":"task","id":"system-i18n","wave":2,"desc":"Audit spec docs/specs/2026-05-30-system-i18n.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-system-i18n.md"],"depends_on":["foundation-monorepo"],"status":"COMMITTED"}
{"type":"task","id":"admin-dashboard","wave":3,"desc":"Audit spec docs/specs/2026-05-30-admin-dashboard.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-admin-dashboard.md"],"depends_on":["foundation-design-system","system-i18n"],"status":"COMMITTED"}
{"type":"task","id":"ai-assistant","wave":3,"desc":"Audit spec docs/specs/2026-05-30-ai-assistant.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-ai-assistant.md"],"depends_on":["foundation-monorepo","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"app-shell","wave":3,"desc":"Audit spec docs/specs/2026-05-30-app-shell.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-app-shell.md"],"depends_on":["foundation-design-system","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"projects-module","wave":3,"desc":"Audit spec docs/specs/2026-05-30-projects-module.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-projects-module.md"],"depends_on":["customers-module"],"status":"COMMITTED"}
{"type":"task","id":"tenant-audit-log","wave":3,"desc":"Audit spec docs/specs/2026-05-31-tenant-audit-log.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-tenant-audit-log.md"],"depends_on":["foundation-monorepo","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"wcag-accessibility","wave":3,"desc":"Audit spec docs/specs/2026-05-31-wcag-accessibility.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-wcag-accessibility.md"],"depends_on":["dark-light-theme","foundation-design-system"],"status":"COMMITTED"}
{"type":"task","id":"zync-subscription","wave":3,"desc":"Audit spec docs/specs/2026-05-31-zync-subscription.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-zync-subscription.md"],"depends_on":["system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"keyboard-shortcuts","wave":4,"desc":"Audit spec docs/specs/2026-06-01-keyboard-shortcuts.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-keyboard-shortcuts.md"],"depends_on":["app-shell"],"status":"COMMITTED"}
{"type":"task","id":"notification-center","wave":4,"desc":"Audit spec docs/specs/2026-05-31-notification-center.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-notification-center.md"],"depends_on":["app-shell","error-empty-states","foundation-design-system","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"rtl-hebrew-ui","wave":4,"desc":"Audit spec docs/specs/2026-05-31-rtl-hebrew-ui.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-rtl-hebrew-ui.md"],"depends_on":["app-shell","foundation-design-system"],"status":"COMMITTED"}
{"type":"task","id":"search-completeness","wave":4,"desc":"Audit spec docs/specs/2026-05-31-search-completeness.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-search-completeness.md"],"depends_on":["app-shell","foundation-design-system","module-management"],"status":"COMMITTED"}
{"type":"task","id":"system-status-page","wave":4,"desc":"Audit spec docs/specs/2026-05-31-system-status-page.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-system-status-page.md"],"depends_on":["admin-dashboard","foundation-monorepo"],"status":"COMMITTED"}
{"type":"task","id":"tasks-board-engine","wave":4,"desc":"Audit spec docs/specs/2026-05-30-tasks-board-engine.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-tasks-board-engine.md"],"depends_on":["foundation-design-system","projects-module"],"status":"COMMITTED"}
{"type":"task","id":"tax-rates-seed-data","wave":4,"desc":"Audit spec docs/specs/tax-rates-seed-data.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/tax-rates-seed-data.md"],"depends_on":["admin-dashboard"],"status":"COMMITTED"}
{"type":"task","id":"upgrade-upsell-modal","wave":4,"desc":"Audit spec docs/specs/2026-05-31-upgrade-upsell-modal.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-upgrade-upsell-modal.md"],"depends_on":["app-shell","foundation-design-system","zync-subscription"],"status":"COMMITTED"}
{"type":"task","id":"zync-www-marketing-site","wave":4,"desc":"Audit spec docs/specs/2026-05-31-zync-www-marketing-site.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-zync-www-marketing-site.md"],"depends_on":["foundation-design-system","foundation-monorepo","system-i18n","zync-subscription"],"status":"COMMITTED"}
{"type":"task","id":"calendar-module","wave":5,"desc":"Audit spec docs/specs/2026-05-30-calendar-module.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-calendar-module.md"],"depends_on":["customers-module","projects-module","system-communications-notifications","tasks-board-engine"],"status":"COMMITTED"}
{"type":"task","id":"expense-personal-business-split","wave":5,"desc":"Audit spec docs/specs/2026-05-31-expense-personal-business-split.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-expense-personal-business-split.md"],"depends_on":[],"status":"COMMITTED"}
{"type":"task","id":"expense-reports-ui","wave":5,"desc":"Audit spec docs/specs/2026-05-31-expense-reports-ui.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-expense-reports-ui.md"],"depends_on":[],"status":"COMMITTED"}
{"type":"task","id":"hebrew-locale-dates","wave":5,"desc":"Audit spec docs/specs/2026-05-31-hebrew-locale-dates.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-hebrew-locale-dates.md"],"depends_on":["rtl-hebrew-ui"],"status":"COMMITTED"}
{"type":"task","id":"real-time-infrastructure","wave":5,"desc":"Audit spec docs/specs/2026-05-31-real-time-infrastructure.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-real-time-infrastructure.md"],"depends_on":["foundation-monorepo","notification-center"],"status":"COMMITTED"}
{"type":"task","id":"recurring-tasks-templates","wave":5,"desc":"Audit spec docs/specs/2026-05-31-recurring-tasks-templates.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-recurring-tasks-templates.md"],"depends_on":["projects-module","tasks-board-engine"],"status":"COMMITTED"}
{"type":"task","id":"task-dependencies","wave":5,"desc":"Audit spec docs/specs/2026-05-31-task-dependencies.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-task-dependencies.md"],"depends_on":["projects-module","tasks-board-engine"],"status":"COMMITTED"}
{"type":"task","id":"tasks-detail-communication","wave":5,"desc":"Audit spec docs/specs/2026-05-30-tasks-detail-communication.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-tasks-detail-communication.md"],"depends_on":["foundation-design-system","system-communications-notifications","tasks-board-engine"],"status":"COMMITTED"}
{"type":"task","id":"trial-expiry-conversion-ui","wave":5,"desc":"Audit spec docs/specs/2026-05-31-trial-expiry-conversion-ui.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-trial-expiry-conversion-ui.md"],"depends_on":["app-shell","upgrade-upsell-modal","zync-subscription"],"status":"COMMITTED"}
{"type":"task","id":"mobile-pwa","wave":6,"desc":"Audit spec docs/specs/2026-05-31-mobile-pwa.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-mobile-pwa.md"],"depends_on":["app-shell","foundation-design-system","foundation-monorepo","notification-center","real-time-infrastructure"],"status":"COMMITTED"}
{"type":"task","id":"project-hourly-budget","wave":6,"desc":"Audit spec docs/specs/2026-05-31-project-hourly-budget.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-project-hourly-budget.md"],"depends_on":["projects-module","real-time-infrastructure"],"status":"COMMITTED"}
{"type":"task","id":"project-templates","wave":6,"desc":"Audit spec docs/specs/2026-06-01-project-templates.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-project-templates.md"],"depends_on":["projects-module","tasks-detail-communication"],"status":"COMMITTED"}
{"type":"task","id":"task-estimates-burndown","wave":6,"desc":"Audit spec docs/specs/2026-05-31-task-estimates-burndown.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-task-estimates-burndown.md"],"depends_on":["projects-module","tasks-board-engine"],"status":"COMMITTED"}
{"type":"task","id":"time-reports","wave":6,"desc":"Audit spec docs/specs/2026-05-31-time-reports.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-time-reports.md"],"depends_on":["projects-module"],"status":"COMMITTED"}
{"type":"task","id":"bulk-invoice-generation","wave":7,"desc":"Audit spec docs/specs/2026-05-31-bulk-invoice-generation.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-bulk-invoice-generation.md"],"depends_on":["projects-module"],"status":"COMMITTED"}
{"type":"task","id":"contractor-payouts","wave":7,"desc":"Audit spec docs/specs/2026-05-30-contractor-payouts.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-contractor-payouts.md"],"depends_on":["projects-module"],"status":"COMMITTED"}
{"type":"task","id":"customer-dedup-merge","wave":7,"desc":"Audit spec docs/specs/2026-05-31-customer-dedup-merge.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-customer-dedup-merge.md"],"depends_on":["customers-module","projects-module"],"status":"COMMITTED"}
{"type":"task","id":"data-import","wave":7,"desc":"Audit spec docs/specs/2026-05-31-data-import.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-data-import.md"],"depends_on":["customers-module","foundation-design-system","system-communications-notifications","zync-subscription"],"status":"COMMITTED"}
{"type":"task","id":"expense-to-invoice-line","wave":7,"desc":"Audit spec docs/specs/2026-05-31-expense-to-invoice-line.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-expense-to-invoice-line.md"],"depends_on":["projects-module"],"status":"COMMITTED"}
{"type":"task","id":"home-dashboard","wave":7,"desc":"Audit spec docs/specs/2026-05-31-home-dashboard.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-home-dashboard.md"],"depends_on":["app-shell","calendar-module","customers-module","foundation-design-system","projects-module","tasks-board-engine"],"status":"COMMITTED"}
{"type":"task","id":"invoice-approval-workflow","wave":7,"desc":"Audit spec docs/specs/2026-06-01-invoice-approval-workflow.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-invoice-approval-workflow.md"],"depends_on":["foundation-design-system"],"status":"COMMITTED"}
{"type":"task","id":"invoice-draft-library","wave":7,"desc":"Audit spec docs/specs/2026-05-31-invoice-draft-library.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-invoice-draft-library.md"],"depends_on":["customers-module"],"status":"COMMITTED"}
{"type":"task","id":"invoices-adapters","wave":7,"desc":"Audit spec docs/specs/2026-05-30-invoices-adapters.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-invoices-adapters.md"],"depends_on":[],"status":"COMMITTED"}
{"type":"task","id":"marketing-leads-pipeline","wave":7,"desc":"Audit spec docs/specs/2026-05-30-marketing-leads-pipeline.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-marketing-leads-pipeline.md"],"depends_on":["calendar-module","customers-module","projects-module","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"project-analytics","wave":7,"desc":"Audit spec docs/specs/2026-05-31-project-analytics.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-project-analytics.md"],"depends_on":["projects-module"],"status":"COMMITTED"}
{"type":"task","id":"project-archive-complete","wave":7,"desc":"Audit spec docs/specs/2026-05-31-project-archive-complete.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-project-archive-complete.md"],"depends_on":["projects-module","tasks-board-engine"],"status":"COMMITTED"}
{"type":"task","id":"project-milestones","wave":7,"desc":"Audit spec docs/specs/2026-05-31-project-milestones.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-project-milestones.md"],"depends_on":["projects-module"],"status":"COMMITTED"}
{"type":"task","id":"settings-projects","wave":7,"desc":"Audit spec docs/specs/2026-06-01-settings-projects.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-settings-projects.md"],"depends_on":["project-hourly-budget","projects-module"],"status":"COMMITTED"}
{"type":"task","id":"ticket-sla-escalation","wave":7,"desc":"Audit spec docs/specs/2026-05-31-ticket-sla-escalation.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-ticket-sla-escalation.md"],"depends_on":["system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"time-to-invoice","wave":7,"desc":"Audit spec docs/specs/2026-05-31-time-to-invoice.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-time-to-invoice.md"],"depends_on":["projects-module"],"status":"COMMITTED"}
{"type":"task","id":"unified-attachments","wave":7,"desc":"Audit spec docs/specs/2026-05-31-unified-attachments.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-unified-attachments.md"],"depends_on":["foundation-design-system","tasks-detail-communication"],"status":"COMMITTED"}
{"type":"task","id":"billing-module","wave":8,"desc":"Audit spec docs/specs/2026-05-30-billing-module.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-billing-module.md"],"depends_on":["customers-module","invoices-adapters","projects-module"],"status":"COMMITTED"}
{"type":"task","id":"bulk-operations","wave":8,"desc":"Audit spec docs/specs/2026-05-31-bulk-operations.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-bulk-operations.md"],"depends_on":["customers-module","data-import","foundation-design-system","system-i18n","tasks-board-engine"],"status":"COMMITTED"}
{"type":"task","id":"calendar-event-detail","wave":8,"desc":"Audit spec docs/specs/2026-05-31-calendar-event-detail.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-calendar-event-detail.md"],"depends_on":["calendar-module","marketing-leads-pipeline","projects-module"],"status":"COMMITTED"}
{"type":"task","id":"contractor-management-ui","wave":8,"desc":"Audit spec docs/specs/2026-05-31-contractor-management-ui.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-contractor-management-ui.md"],"depends_on":["contractor-payouts","projects-module"],"status":"COMMITTED"}
{"type":"task","id":"contracts-esignature","wave":8,"desc":"Audit spec docs/specs/2026-05-31-contracts-esignature.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-contracts-esignature.md"],"depends_on":["customers-module","marketing-leads-pipeline"],"status":"COMMITTED"}
{"type":"task","id":"lead-form-builder","wave":8,"desc":"Audit spec docs/specs/2026-05-31-lead-form-builder.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-lead-form-builder.md"],"depends_on":["marketing-leads-pipeline"],"status":"COMMITTED"}
{"type":"task","id":"lead-to-customer-conversion","wave":8,"desc":"Audit spec docs/specs/2026-05-31-lead-to-customer-conversion.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-lead-to-customer-conversion.md"],"depends_on":["customers-module","marketing-leads-pipeline","projects-module"],"status":"COMMITTED"}
{"type":"task","id":"profitability-reports","wave":8,"desc":"Audit spec docs/specs/2026-05-31-profitability-reports.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-profitability-reports.md"],"depends_on":["contractor-payouts","projects-module"],"status":"COMMITTED"}
{"type":"task","id":"project-gantt","wave":8,"desc":"Audit spec docs/specs/2026-06-01-project-gantt.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-project-gantt.md"],"depends_on":["project-milestones","projects-module","tasks-detail-communication"],"status":"COMMITTED"}
{"type":"task","id":"revenue-forecasting","wave":8,"desc":"Audit spec docs/specs/2026-05-31-revenue-forecasting.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-revenue-forecasting.md"],"depends_on":["marketing-leads-pipeline","projects-module"],"status":"COMMITTED"}
{"type":"task","id":"saved-list-filters","wave":8,"desc":"Audit spec docs/specs/2026-05-31-saved-list-filters.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-saved-list-filters.md"],"depends_on":["customers-module","foundation-design-system","marketing-leads-pipeline","projects-module","tasks-board-engine"],"status":"COMMITTED"}
{"type":"task","id":"sla-config-ui","wave":8,"desc":"Audit spec docs/specs/2026-05-31-sla-config-ui.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-sla-config-ui.md"],"depends_on":["foundation-design-system","ticket-sla-escalation"],"status":"COMMITTED"}
{"type":"task","id":"team-time-overview","wave":8,"desc":"Audit spec docs/specs/2026-05-31-team-time-overview.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-team-time-overview.md"],"depends_on":["contractor-payouts","projects-module"],"status":"COMMITTED"}
{"type":"task","id":"telegram-bot","wave":8,"desc":"Audit spec docs/specs/2026-05-31-telegram-bot.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-telegram-bot.md"],"depends_on":["ai-assistant","marketing-leads-pipeline","system-communications-notifications","tasks-board-engine"],"status":"COMMITTED"}
{"type":"task","id":"time-entry-locking","wave":8,"desc":"Audit spec docs/specs/2026-05-31-time-entry-locking.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-time-entry-locking.md"],"depends_on":["time-to-invoice"],"status":"COMMITTED"}
{"type":"task","id":"billing-plans-management-ui","wave":9,"desc":"Audit spec docs/specs/2026-05-31-billing-plans-management-ui.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-billing-plans-management-ui.md"],"depends_on":["billing-module","customers-module","projects-module"],"status":"COMMITTED"}
{"type":"task","id":"calendar-task-creation","wave":9,"desc":"Audit spec docs/specs/2026-05-31-calendar-task-creation.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-calendar-task-creation.md"],"depends_on":["calendar-event-detail","calendar-module","tasks-board-engine"],"status":"COMMITTED"}
{"type":"task","id":"contract-to-invoice","wave":9,"desc":"Audit spec docs/specs/2026-05-31-contract-to-invoice.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-contract-to-invoice.md"],"depends_on":["contracts-esignature","customers-module"],"status":"COMMITTED"}
{"type":"task","id":"marketing-catalogs-campaigns","wave":9,"desc":"Audit spec docs/specs/2026-05-30-marketing-catalogs-campaigns.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-marketing-catalogs-campaigns.md"],"depends_on":["billing-module","calendar-module","customers-module","marketing-leads-pipeline","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"notification-preferences","wave":9,"desc":"Audit spec docs/specs/2026-05-31-notification-preferences.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-notification-preferences.md"],"depends_on":["contracts-esignature","project-hourly-budget","system-communications-notifications","tasks-board-engine"],"status":"COMMITTED"}
{"type":"task","id":"bank-statement-import","wave":10,"desc":"Audit spec docs/specs/2026-06-01-bank-statement-import.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-bank-statement-import.md"],"depends_on":[],"status":"COMMITTED"}
{"type":"task","id":"calendar-integration-settings-ui","wave":10,"desc":"Audit spec docs/specs/2026-05-31-calendar-integration-settings-ui.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-calendar-integration-settings-ui.md"],"depends_on":["calendar-module"],"status":"COMMITTED"}
{"type":"task","id":"custom-smtp-email-whitelabel","wave":10,"desc":"Audit spec docs/specs/2026-05-31-custom-smtp-email-whitelabel.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-custom-smtp-email-whitelabel.md"],"depends_on":["system-communications-notifications","zync-subscription"],"status":"COMMITTED"}
{"type":"task","id":"customer-portal-access-control","wave":10,"desc":"Audit spec docs/specs/2026-05-31-customer-portal-access-control.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-customer-portal-access-control.md"],"depends_on":["customers-module","projects-module"],"status":"COMMITTED"}
{"type":"task","id":"data-export-gdpr","wave":10,"desc":"Audit spec docs/specs/2026-05-31-data-export-gdpr.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-data-export-gdpr.md"],"depends_on":["foundation-monorepo","system-communications-notifications","zync-subscription"],"status":"COMMITTED"}
{"type":"task","id":"email-marketing-sequences","wave":10,"desc":"Audit spec docs/specs/2026-05-31-email-marketing-sequences.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-email-marketing-sequences.md"],"depends_on":["marketing-catalogs-campaigns","marketing-leads-pipeline","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"expense-settings-ui","wave":10,"desc":"Audit spec docs/specs/2026-05-31-expense-settings-ui.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-expense-settings-ui.md"],"depends_on":[],"status":"COMMITTED"}
{"type":"task","id":"invoice-adapter-setup-ui","wave":10,"desc":"Audit spec docs/specs/2026-05-31-invoice-adapter-setup-ui.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-invoice-adapter-setup-ui.md"],"depends_on":["invoices-adapters"],"status":"COMMITTED"}
{"type":"task","id":"invoice-settings-page","wave":10,"desc":"Audit spec docs/specs/2026-05-31-invoice-settings-page.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-invoice-settings-page.md"],"depends_on":[],"status":"COMMITTED"}
{"type":"task","id":"ita-einvoice","wave":10,"desc":"Audit spec docs/specs/2026-06-01-ita-einvoice.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-ita-einvoice.md"],"depends_on":[],"status":"COMMITTED"}
{"type":"task","id":"lead-to-proposal-flow","wave":10,"desc":"Audit spec docs/specs/2026-05-31-lead-to-proposal-flow.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-lead-to-proposal-flow.md"],"depends_on":["marketing-catalogs-campaigns","marketing-leads-pipeline"],"status":"COMMITTED"}
{"type":"task","id":"mileage-logbook","wave":10,"desc":"Audit spec docs/specs/2026-06-01-mileage-logbook.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-mileage-logbook.md"],"depends_on":[],"status":"COMMITTED"}
{"type":"task","id":"multi-currency","wave":10,"desc":"Audit spec docs/specs/2026-05-31-multi-currency.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-multi-currency.md"],"depends_on":["contractor-payouts"],"status":"COMMITTED"}
{"type":"task","id":"payment-gateway-adapters","wave":10,"desc":"Audit spec docs/specs/2026-05-31-payment-gateway-adapters.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-payment-gateway-adapters.md"],"depends_on":[],"status":"COMMITTED"}
{"type":"task","id":"product-service-library","wave":10,"desc":"Audit spec docs/specs/2026-05-31-product-service-library.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-product-service-library.md"],"depends_on":[],"status":"COMMITTED"}
{"type":"task","id":"proposal-to-contract","wave":10,"desc":"Audit spec docs/specs/2026-05-31-proposal-to-contract.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-proposal-to-contract.md"],"depends_on":["contracts-esignature","marketing-catalogs-campaigns","marketing-leads-pipeline"],"status":"COMMITTED"}
{"type":"task","id":"recurring-expenses","wave":10,"desc":"Audit spec docs/specs/2026-06-01-recurring-expenses.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-recurring-expenses.md"],"depends_on":[],"status":"COMMITTED"}
{"type":"task","id":"settings-time-tracking","wave":10,"desc":"Audit spec docs/specs/2026-06-01-settings-time-tracking.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-settings-time-tracking.md"],"depends_on":[],"status":"COMMITTED"}
{"type":"task","id":"staff-portal-detail","wave":10,"desc":"Audit spec docs/specs/2026-05-31-staff-portal-detail.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-staff-portal-detail.md"],"depends_on":["app-shell","error-empty-states","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"subscription-cancellation-flow","wave":10,"desc":"Audit spec docs/specs/2026-05-31-subscription-cancellation-flow.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-subscription-cancellation-flow.md"],"depends_on":["system-communications-notifications","zync-subscription"],"status":"COMMITTED"}
{"type":"task","id":"team-users-settings","wave":10,"desc":"Audit spec docs/specs/2026-05-31-team-users-settings.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-team-users-settings.md"],"depends_on":["foundation-design-system"],"status":"COMMITTED"}
{"type":"task","id":"time-approval-workflow","wave":10,"desc":"Audit spec docs/specs/2026-05-31-time-approval-workflow.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-time-approval-workflow.md"],"depends_on":["contractor-payouts","notification-center","projects-module","time-entry-locking"],"status":"COMMITTED"}
{"type":"task","id":"white-label-api","wave":10,"desc":"Audit spec docs/specs/2026-05-30-white-label-api.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-white-label-api.md"],"depends_on":["system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"api-keys-ui","wave":11,"desc":"Audit spec docs/specs/2026-05-31-api-keys-ui.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-api-keys-ui.md"],"depends_on":["white-label-api"],"status":"COMMITTED"}
{"type":"task","id":"audit-compliance","wave":11,"desc":"Audit spec docs/specs/2026-05-30-audit-compliance.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-30-audit-compliance.md"],"depends_on":["foundation-monorepo","white-label-api"],"status":"COMMITTED"}
{"type":"task","id":"contract-signing-page","wave":11,"desc":"Audit spec docs/specs/2026-05-31-contract-signing-page.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-contract-signing-page.md"],"depends_on":["contracts-esignature","foundation-design-system","white-label-api"],"status":"COMMITTED"}
{"type":"task","id":"contractor-settings","wave":11,"desc":"Audit spec docs/specs/2026-05-31-contractor-settings.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-contractor-settings.md"],"depends_on":["contractor-payouts","time-approval-workflow"],"status":"COMMITTED"}
{"type":"task","id":"custom-domain-settings-ui","wave":11,"desc":"Audit spec docs/specs/2026-05-31-custom-domain-settings-ui.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-custom-domain-settings-ui.md"],"depends_on":["white-label-api"],"status":"COMMITTED"}
{"type":"task","id":"customer-portal-settings-ui","wave":11,"desc":"Audit spec docs/specs/2026-05-31-customer-portal-settings-ui.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-customer-portal-settings-ui.md"],"depends_on":["customer-portal-access-control"],"status":"COMMITTED"}
{"type":"task","id":"email-template-editor","wave":11,"desc":"Audit spec docs/specs/2026-05-31-email-template-editor.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-email-template-editor.md"],"depends_on":["custom-smtp-email-whitelabel","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"expense-approval-workflow","wave":11,"desc":"Audit spec docs/specs/2026-05-31-expense-approval-workflow.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-expense-approval-workflow.md"],"depends_on":["expense-settings-ui","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"field-level-permissions","wave":11,"desc":"Audit spec docs/specs/2026-05-31-field-level-permissions.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-field-level-permissions.md"],"depends_on":["projects-module","staff-portal-detail"],"status":"COMMITTED"}
{"type":"task","id":"integration-hub","wave":11,"desc":"Audit spec docs/specs/2026-05-31-integration-hub.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-integration-hub.md"],"depends_on":["calendar-module","contractor-payouts","custom-smtp-email-whitelabel","invoices-adapters","payment-gateway-adapters"],"status":"COMMITTED"}
{"type":"task","id":"invoice-payment-ux","wave":11,"desc":"Audit spec docs/specs/2026-05-31-invoice-payment-ux.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-invoice-payment-ux.md"],"depends_on":["payment-gateway-adapters"],"status":"COMMITTED"}
{"type":"task","id":"invoice-pdf-customization","wave":11,"desc":"Audit spec docs/specs/2026-05-31-invoice-pdf-customization.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-invoice-pdf-customization.md"],"depends_on":["invoice-settings-page"],"status":"COMMITTED"}
{"type":"task","id":"partial-payment-recording","wave":11,"desc":"Audit spec docs/specs/2026-05-31-partial-payment-recording.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-partial-payment-recording.md"],"depends_on":["billing-module","payment-gateway-adapters"],"status":"PENDING"}
{"type":"task","id":"payment-retry-dunning","wave":11,"desc":"Audit spec docs/specs/2026-05-31-payment-retry-dunning.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-payment-retry-dunning.md"],"depends_on":["payment-gateway-adapters","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"portal-file-sharing","wave":11,"desc":"Audit spec docs/specs/2026-05-31-portal-file-sharing.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-portal-file-sharing.md"],"depends_on":["customer-portal-access-control","customers-module","projects-module"],"status":"COMMITTED"}
{"type":"task","id":"proposal-editor","wave":11,"desc":"Audit spec docs/specs/2026-05-31-proposal-editor.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-proposal-editor.md"],"depends_on":["customers-module","marketing-catalogs-campaigns","product-service-library"],"status":"COMMITTED"}
{"type":"task","id":"proposal-to-invoice-direct","wave":11,"desc":"Audit spec docs/specs/2026-05-31-proposal-to-invoice-direct.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-proposal-to-invoice-direct.md"],"depends_on":["invoice-settings-page","marketing-catalogs-campaigns","proposal-to-contract"],"status":"PENDING"}
{"type":"task","id":"public-api-docs","wave":11,"desc":"Audit spec docs/specs/2026-05-31-public-api-docs.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-public-api-docs.md"],"depends_on":["foundation-design-system","white-label-api","zync-www-marketing-site"],"status":"COMMITTED"}
{"type":"task","id":"public-catalog-page","wave":11,"desc":"Audit spec docs/specs/2026-05-31-public-catalog-page.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-public-catalog-page.md"],"depends_on":["foundation-design-system","marketing-catalogs-campaigns","white-label-api"],"status":"PENDING"}
{"type":"task","id":"public-proposal-view","wave":11,"desc":"Audit spec docs/specs/2026-05-31-public-proposal-view.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-public-proposal-view.md"],"depends_on":["marketing-catalogs-campaigns","system-communications-notifications","white-label-api"],"status":"PENDING"}
{"type":"task","id":"settings-customers","wave":11,"desc":"Audit spec docs/specs/2026-06-01-settings-customers.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-settings-customers.md"],"depends_on":["customer-portal-access-control","customers-module"],"status":"COMMITTED"}
{"type":"task","id":"settings-roles","wave":11,"desc":"Audit spec docs/specs/2026-06-01-settings-roles.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-settings-roles.md"],"depends_on":["team-users-settings"],"status":"COMMITTED"}
{"type":"task","id":"tenant-public-api","wave":11,"desc":"Audit spec docs/specs/2026-05-31-tenant-public-api.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-tenant-public-api.md"],"depends_on":["white-label-api"],"status":"COMMITTED"}
{"type":"task","id":"timezone-handling","wave":11,"desc":"Audit spec docs/specs/2026-05-31-timezone-handling.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-timezone-handling.md"],"depends_on":["system-i18n"],"status":"PENDING"}
{"type":"task","id":"vendors-suppliers","wave":11,"desc":"Audit spec docs/specs/2026-06-01-vendors-suppliers.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-vendors-suppliers.md"],"depends_on":["contractor-payouts","expense-reports-ui","unified-attachments"],"status":"PENDING"}
{"type":"task","id":"webhook-endpoint-detail","wave":11,"desc":"Audit spec docs/specs/2026-05-31-webhook-endpoint-detail.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-webhook-endpoint-detail.md"],"depends_on":["white-label-api"],"status":"PENDING"}
{"type":"task","id":"activity-timeline","wave":12,"desc":"Audit spec docs/specs/2026-05-31-activity-timeline.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-activity-timeline.md"],"depends_on":["audit-compliance","customers-module","projects-module"],"status":"PENDING"}
{"type":"task","id":"admin-impersonation","wave":12,"desc":"Audit spec docs/specs/2026-05-31-admin-impersonation.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-admin-impersonation.md"],"depends_on":["admin-dashboard","audit-compliance"],"status":"COMMITTED"}
{"type":"task","id":"api-usage-quota-ui","wave":12,"desc":"Audit spec docs/specs/2026-05-31-api-usage-quota-ui.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-api-usage-quota-ui.md"],"depends_on":["api-keys-ui","white-label-api"],"status":"COMMITTED"}
{"type":"task","id":"ar-aging-report","wave":12,"desc":"Audit spec docs/specs/2026-05-31-ar-aging-report.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-ar-aging-report.md"],"depends_on":["customers-module","partial-payment-recording"],"status":"COMMITTED"}
{"type":"task","id":"bad-debt-writeoff","wave":12,"desc":"Audit spec docs/specs/2026-06-01-bad-debt-writeoff.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-bad-debt-writeoff.md"],"depends_on":["partial-payment-recording"],"status":"COMMITTED"}
{"type":"task","id":"contract-renewal-amendment","wave":12,"desc":"Audit spec docs/specs/2026-05-31-contract-renewal-amendment.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-contract-renewal-amendment.md"],"depends_on":["audit-compliance","contracts-esignature"],"status":"COMMITTED"}
{"type":"task","id":"invoice-credit-notes","wave":12,"desc":"Audit spec docs/specs/2026-05-31-invoice-credit-notes.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-invoice-credit-notes.md"],"depends_on":["audit-compliance"],"status":"PENDING"}
{"type":"task","id":"invoice-payment-link-generation","wave":12,"desc":"Audit spec docs/specs/2026-05-31-invoice-payment-link-generation.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-invoice-payment-link-generation.md"],"depends_on":["invoice-payment-ux","payment-gateway-adapters"],"status":"COMMITTED"}
{"type":"task","id":"kb-article-editor","wave":12,"desc":"Audit spec docs/specs/2026-05-31-kb-article-editor.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-kb-article-editor.md"],"depends_on":["email-template-editor"],"status":"PENDING"}
{"type":"task","id":"multi-signatory-coordination","wave":12,"desc":"Audit spec docs/specs/2026-05-31-multi-signatory-coordination.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-multi-signatory-coordination.md"],"depends_on":["contract-signing-page","contracts-esignature"],"status":"COMMITTED"}
{"type":"task","id":"oauth-authorization-code","wave":12,"desc":"Audit spec docs/specs/2026-06-01-oauth-authorization-code.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-oauth-authorization-code.md"],"depends_on":["tenant-public-api","white-label-api"],"status":"COMMITTED"}
{"type":"task","id":"operational-audit-trail","wave":12,"desc":"Audit spec docs/specs/2026-05-31-operational-audit-trail.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-operational-audit-trail.md"],"depends_on":["audit-compliance","tenant-audit-log"],"status":"COMMITTED"}
{"type":"task","id":"payment-reconciliation","wave":12,"desc":"Audit spec docs/specs/2026-06-01-payment-reconciliation.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-payment-reconciliation.md"],"depends_on":["multi-currency","partial-payment-recording"],"status":"COMMITTED"}
{"type":"task","id":"proposal-expiry-deadline","wave":12,"desc":"Audit spec docs/specs/2026-05-31-proposal-expiry-deadline.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-proposal-expiry-deadline.md"],"depends_on":["marketing-catalogs-campaigns","public-proposal-view","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"expense-ocr-correction-ux","wave":13,"desc":"Audit spec docs/specs/2026-05-31-expense-ocr-correction-ux.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-expense-ocr-correction-ux.md"],"depends_on":["audit-compliance","expense-approval-workflow","operational-audit-trail"],"status":"COMMITTED"}
{"type":"task","id":"financial-statements","wave":13,"desc":"Audit spec docs/specs/2026-06-01-financial-statements.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-financial-statements.md"],"depends_on":["bad-debt-writeoff","multi-currency","partial-payment-recording"],"status":"COMMITTED"}
{"type":"task","id":"invoice-email-history","wave":13,"desc":"Audit spec docs/specs/2026-05-31-invoice-email-history.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-invoice-email-history.md"],"depends_on":["activity-timeline","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"invoice-payment-reminders","wave":13,"desc":"Audit spec docs/specs/2026-05-31-invoice-payment-reminders.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-invoice-payment-reminders.md"],"depends_on":["email-template-editor","invoice-payment-link-generation","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"kb-versioning","wave":13,"desc":"Audit spec docs/specs/2026-05-31-kb-versioning.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-kb-versioning.md"],"depends_on":["kb-article-editor","operational-audit-trail"],"status":"COMMITTED"}
{"type":"task","id":"leads-detail-view","wave":13,"desc":"Audit spec docs/specs/2026-05-31-leads-detail-view.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-leads-detail-view.md"],"depends_on":["activity-timeline","marketing-catalogs-campaigns","marketing-leads-pipeline","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"proposals-list","wave":13,"desc":"Audit spec docs/specs/2026-06-01-proposals-list.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-proposals-list.md"],"depends_on":["lead-to-proposal-flow","marketing-catalogs-campaigns","proposal-editor","proposal-expiry-deadline"],"status":"COMMITTED"}
{"type":"task","id":"reports-navigation-hub","wave":13,"desc":"Audit spec docs/specs/2026-05-31-reports-navigation-hub.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-reports-navigation-hub.md"],"depends_on":["api-usage-quota-ui","expense-reports-ui","profitability-reports","revenue-forecasting","tenant-audit-log","time-reports"],"status":"COMMITTED"}
{"type":"task","id":"settings-contracts","wave":13,"desc":"Audit spec docs/specs/2026-06-01-settings-contracts.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-settings-contracts.md"],"depends_on":["contract-renewal-amendment","contracts-esignature"],"status":"COMMITTED"}
{"type":"task","id":"uniform-format-export","wave":13,"desc":"Audit spec docs/specs/2026-06-01-uniform-format-export.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-uniform-format-export.md"],"depends_on":["invoice-credit-notes","system-i18n","vendors-suppliers"],"status":"COMMITTED"}
{"type":"task","id":"zapier-make-integration","wave":13,"desc":"Audit spec docs/specs/2026-06-01-zapier-make-integration.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-zapier-make-integration.md"],"depends_on":["marketing-leads-pipeline","oauth-authorization-code","tenant-public-api","white-label-api"],"status":"PENDING"}
{"type":"task","id":"lead-lost-re-engagement","wave":14,"desc":"Audit spec docs/specs/2026-05-31-lead-lost-re-engagement.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-lead-lost-re-engagement.md"],"depends_on":["email-marketing-sequences","leads-detail-view","marketing-leads-pipeline"],"status":"COMMITTED"}
{"type":"task","id":"lead-qualification-scoring","wave":14,"desc":"Audit spec docs/specs/2026-05-31-lead-qualification-scoring.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-05-31-lead-qualification-scoring.md"],"depends_on":["leads-detail-view","marketing-leads-pipeline"],"status":"COMMITTED"}
{"type":"task","id":"proposal-pdf-export","wave":14,"desc":"Audit spec docs/specs/2026-06-01-proposal-pdf-export.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-proposal-pdf-export.md"],"depends_on":["marketing-catalogs-campaigns","proposal-editor","proposals-list"],"status":"COMMITTED"}
{"type":"task","id":"settings-kb","wave":14,"desc":"Audit spec docs/specs/2026-06-01-settings-kb.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-settings-kb.md"],"depends_on":["kb-article-editor","kb-versioning"],"status":"COMMITTED"}
{"type":"task","id":"bituach-leumi","wave":15,"desc":"Audit spec docs/specs/2026-06-01-bituach-leumi.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-bituach-leumi.md"],"depends_on":["financial-statements"],"status":"COMMITTED"}
{"type":"task","id":"print-layouts","wave":15,"desc":"Audit spec docs/specs/2026-06-01-print-layouts.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-print-layouts.md"],"depends_on":["contracts-esignature","proposal-pdf-export"],"status":"COMMITTED"}
{"type":"task","id":"scheduled-reports","wave":15,"desc":"Audit spec docs/specs/2026-06-01-scheduled-reports.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-scheduled-reports.md"],"depends_on":["financial-statements","system-communications-notifications"],"status":"COMMITTED"}
{"type":"task","id":"settings-crm","wave":15,"desc":"Audit spec docs/specs/2026-06-01-settings-crm.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-settings-crm.md"],"depends_on":["lead-qualification-scoring","marketing-leads-pipeline","revenue-forecasting"],"status":"COMMITTED"}
{"type":"task","id":"customer-statement","wave":16,"desc":"Audit spec docs/specs/2026-06-01-customer-statement.md against the implementation and fix ALL divergences to production-ready.\n\nRead the spec file first — it is the source of truth. Do NOT edit it.\nIf you find the spec itself is wrong (implementation is correct for the real need), do NOT bend the code — note it as a spec_doubt in your commit message and continue.\n\nScope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.\n\nWhen done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.\nCommit all changes.","files":["docs/specs/2026-06-01-customer-statement.md"],"depends_on":["ar-aging-report","customers-module","hebrew-locale-dates","invoice-credit-notes","multi-currency","partial-payment-recording","print-layouts"],"status":"COMMITTED"}
